From 28de8ef3bcc2ea32853d15ceb0ab414f0eb17c00 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Thu, 21 May 2026 22:56:34 -0600 Subject: [PATCH 1/7] Cleanup assets --- .../CustomMethodCardFieldBlocksSummary.tsx | 4 +- ...CustomMethodCardWizardFieldBodies.view.tsx | 4 +- .../screens/upload/CommunityUploadScreen.tsx | 4 +- app/(marketing)/blog/[slug]/page.tsx | 2 +- .../cards/CaseStudy/CaseStudy.types.ts | 4 +- .../cards/CaseStudy/CaseStudy.view.tsx | 7 +- .../modals/ModalHeader/ModalHeader.view.tsx | 4 +- app/components/modals/Share/Share.view.tsx | 28 +++--- .../navigation/Top/Top.container.tsx | 4 +- app/components/navigation/Top/Top.view.tsx | 8 +- .../ContentBanner/ContentBanner.container.tsx | 3 +- .../FeatureGrid/FeatureGrid.container.tsx | 9 +- .../sections/HeroBanner/HeroBanner.tsx | 4 +- .../sections/LogoWall/LogoWall.container.tsx | 13 +-- .../QuoteBlock/QuoteBlock.container.tsx | 5 +- app/components/sections/SectionNumber.tsx | 17 +--- .../type/ContentLockup/ContentLockup.view.tsx | 2 +- docs/README.md | 2 + docs/figma-component-registry.md | 9 +- docs/guides/static-assets.md | 58 ++++++++++++ lib/assetUtils.ts | 85 ++++++++++++++---- public/assets/Avatar_1.png | Bin 2802 -> 0 bytes public/assets/Avatar_2.png | Bin 1736 -> 0 bytes public/assets/Avatar_3.png | Bin 1561 -> 0 bytes public/assets/Feature_Support.svg | 57 ------------ public/assets/GitLab_Icon.png | Bin 54599 -> 0 bytes public/assets/Section/Logo_CUBoulder.png | Bin 11689 -> 0 bytes public/assets/Section/Logo_FoodNotBombs.png | Bin 16809 -> 0 bytes public/assets/Section/Logo_Metagov.png | Bin 26374 -> 0 bytes public/assets/Section/Logo_MutualAidCO.png | Bin 18876 -> 0 bytes public/assets/Section/Logo_OpenCivics.png | Bin 53555 -> 0 bytes public/assets/Section/Logo_StartCOOP.png | Bin 35391 -> 0 bytes public/assets/SectionNumber_1.png | Bin 3409 -> 0 bytes public/assets/SectionNumber_2.png | Bin 27593 -> 0 bytes public/assets/SectionNumber_3.png | Bin 23001 -> 0 bytes public/assets/Union_xlg.svg | 3 - .../{Icon_Alert.svg => icons/icon-alert.svg} | 0 .../{Icon_Close.svg => icons/icon-close.svg} | 0 .../{Icon_Help.svg => icons/icon-help.svg} | 0 .../icon-pointer.svg} | 0 .../{Bluesky_Logo.svg => logos/bluesky.svg} | 0 .../Logo.svg => logos/community-rule.svg} | 0 public/assets/logos/gitlab.svg | 9 ++ public/assets/logos/partners/cu-boulder.svg | 33 +++++++ .../assets/logos/partners/food-not-bombs.svg | 17 ++++ public/assets/logos/partners/metagov.svg | 9 ++ .../assets/logos/partners/mutual-aid-co.svg | 34 +++++++ public/assets/logos/partners/open-civics.svg | 75 ++++++++++++++++ public/assets/logos/partners/start-coop.svg | 9 ++ public/assets/marketing/avatar-1.svg | 11 +++ public/assets/marketing/avatar-2.svg | 11 +++ public/assets/marketing/avatar-3.svg | 11 +++ .../{ => marketing}/communityrules-cover.svg | 0 .../content-banner.svg} | 0 .../feature-exercises.png} | Bin .../feature-guidance.png} | Bin .../feature-support.png} | Bin .../feature-tools.png} | Bin .../hero-image.png} | Bin .../quote-avatar.svg} | 0 public/assets/marketing/section-number-1.svg | 3 + public/assets/marketing/section-number-2.svg | 9 ++ public/assets/marketing/section-number-3.svg | 9 ++ .../content-shape-1.svg} | 0 .../content-shape-2.svg} | 0 .../{Shapes_1.svg => shapes/shapes-1.svg} | 0 .../union-sm-md-lg.svg} | 0 .../{Union.svg => shapes/union-xlg.svg} | 0 .../{Union_xsm.svg => shapes/union-xsm.svg} | 0 .../{Share/Discord.svg => share/discord.svg} | 0 .../assets/{Share/Link.svg => share/link.svg} | 0 .../assets/{Share/Mail.svg => share/mail.svg} | 0 .../{Share/Signal.svg => share/signal.svg} | 0 .../{Share/Slack.svg => share/slack.svg} | 0 public/assets/vector/default.svg | 3 - public/assets/vector/shapes.svg | 19 ---- stories/asset/Avatar.stories.js | 34 +++---- stories/asset/AvatarContainer.stories.js | 76 ++++++++-------- stories/cards/Mini.stories.js | 12 +-- stories/sections/LogoWall.stories.js | 4 +- stories/sections/QuoteBlock.stories.js | 8 +- tests/pages/blog.test.jsx | 12 +-- tests/unit/LogoWall.test.jsx | 2 +- 83 files changed, 506 insertions(+), 240 deletions(-) create mode 100644 docs/guides/static-assets.md delete mode 100644 public/assets/Avatar_1.png delete mode 100644 public/assets/Avatar_2.png delete mode 100644 public/assets/Avatar_3.png delete mode 100644 public/assets/Feature_Support.svg delete mode 100644 public/assets/GitLab_Icon.png delete mode 100644 public/assets/Section/Logo_CUBoulder.png delete mode 100644 public/assets/Section/Logo_FoodNotBombs.png delete mode 100644 public/assets/Section/Logo_Metagov.png delete mode 100644 public/assets/Section/Logo_MutualAidCO.png delete mode 100644 public/assets/Section/Logo_OpenCivics.png delete mode 100644 public/assets/Section/Logo_StartCOOP.png delete mode 100644 public/assets/SectionNumber_1.png delete mode 100644 public/assets/SectionNumber_2.png delete mode 100644 public/assets/SectionNumber_3.png delete mode 100644 public/assets/Union_xlg.svg rename public/assets/{Icon_Alert.svg => icons/icon-alert.svg} (100%) rename public/assets/{Icon_Close.svg => icons/icon-close.svg} (100%) rename public/assets/{Icon_Help.svg => icons/icon-help.svg} (100%) rename public/assets/{Icon_Pointer.svg => icons/icon-pointer.svg} (100%) rename public/assets/{Bluesky_Logo.svg => logos/bluesky.svg} (100%) rename public/assets/{logo/Logo.svg => logos/community-rule.svg} (100%) create mode 100644 public/assets/logos/gitlab.svg create mode 100644 public/assets/logos/partners/cu-boulder.svg create mode 100644 public/assets/logos/partners/food-not-bombs.svg create mode 100644 public/assets/logos/partners/metagov.svg create mode 100644 public/assets/logos/partners/mutual-aid-co.svg create mode 100644 public/assets/logos/partners/open-civics.svg create mode 100644 public/assets/logos/partners/start-coop.svg create mode 100644 public/assets/marketing/avatar-1.svg create mode 100644 public/assets/marketing/avatar-2.svg create mode 100644 public/assets/marketing/avatar-3.svg rename public/assets/{ => marketing}/communityrules-cover.svg (100%) rename public/assets/{Content_Banner.svg => marketing/content-banner.svg} (100%) rename public/assets/{Feature_Exercises.png => marketing/feature-exercises.png} (100%) rename public/assets/{Feature_Guidance.png => marketing/feature-guidance.png} (100%) rename public/assets/{Feature_Support.png => marketing/feature-support.png} (100%) rename public/assets/{Feature_Tools.png => marketing/feature-tools.png} (100%) rename public/assets/{HeroImage.png => marketing/hero-image.png} (100%) rename public/assets/{Quote_Avatar.svg => marketing/quote-avatar.svg} (100%) create mode 100644 public/assets/marketing/section-number-1.svg create mode 100644 public/assets/marketing/section-number-2.svg create mode 100644 public/assets/marketing/section-number-3.svg rename public/assets/{Content_Shape_1.svg => shapes/content-shape-1.svg} (100%) rename public/assets/{Content_Shape_2.svg => shapes/content-shape-2.svg} (100%) rename public/assets/{Shapes_1.svg => shapes/shapes-1.svg} (100%) rename public/assets/{Union_sm_md_lg.svg => shapes/union-sm-md-lg.svg} (100%) rename public/assets/{Union.svg => shapes/union-xlg.svg} (100%) rename public/assets/{Union_xsm.svg => shapes/union-xsm.svg} (100%) rename public/assets/{Share/Discord.svg => share/discord.svg} (100%) rename public/assets/{Share/Link.svg => share/link.svg} (100%) rename public/assets/{Share/Mail.svg => share/mail.svg} (100%) rename public/assets/{Share/Signal.svg => share/signal.svg} (100%) rename public/assets/{Share/Slack.svg => share/slack.svg} (100%) delete mode 100644 public/assets/vector/default.svg delete mode 100644 public/assets/vector/shapes.svg diff --git a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary.tsx b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary.tsx index bb1c53e..3585f54 100644 --- a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary.tsx +++ b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary.tsx @@ -15,7 +15,7 @@ import { useMessages, useTranslation } from "../../../contexts/MessagesContext"; import Chip from "../../../components/controls/Chip"; import IncrementerBlock from "../../../components/controls/IncrementerBlock"; import Upload from "../../../components/controls/Upload"; -import { getAssetPath } from "../../../../lib/assetUtils"; +import { ASSETS, getAssetPath } from "../../../../lib/assetUtils"; import ApplicableScopeField from "./ApplicableScopeField"; import InputLabel from "../../../components/type/InputLabel"; import type { CustomMethodCardFieldBlock } from "../../../../lib/create/customMethodCardFieldBlocks"; @@ -139,7 +139,7 @@ function CustomMethodCardUploadBlockRow({ > {/* eslint-disable-next-line @next/next/no-img-element -- matches ModalHeader close control */} {/* eslint-disable-next-line @next/next/no-img-element -- matches ModalHeader close control */} {/* eslint-disable-next-line @next/next/no-img-element -- matches ModalHeader close control */} = { @@ -12,9 +13,9 @@ const SURFACE_CLASS: Record = { /** Default art per tile: Figma-exported SVG composites (305×305 incl. rounded bg). */ const SURFACE_ART: Record = { - lavender: "/assets/case-study/case-study-mutual-aid.svg", - neutral: "/assets/case-study/case-study-food-not-bombs.svg", - rose: "/assets/case-study/case-study-boulder-county-street-medics.svg", + lavender: getAssetPath(caseStudyVisualPath("lavender")), + neutral: getAssetPath(caseStudyVisualPath("neutral")), + rose: getAssetPath(caseStudyVisualPath("rose")), }; /** Figma: ~23px corner (“Card / CaseStudy” shells). */ diff --git a/app/components/modals/ModalHeader/ModalHeader.view.tsx b/app/components/modals/ModalHeader/ModalHeader.view.tsx index 6ad6597..29aedd4 100644 --- a/app/components/modals/ModalHeader/ModalHeader.view.tsx +++ b/app/components/modals/ModalHeader/ModalHeader.view.tsx @@ -1,6 +1,6 @@ import ListItem from "../../layout/ListItem"; import Popover from "../Popover"; -import { getAssetPath } from "../../../../lib/assetUtils"; +import { ASSETS, getAssetPath } from "../../../../lib/assetUtils"; import type { ModalHeaderProps } from "./ModalHeader.types"; const iconButtonClass = @@ -37,7 +37,7 @@ export function ModalHeaderView({ > {/* eslint-disable-next-line @next/next/no-img-element -- icon asset */} } + icon={} /> } + icon={} /> } + icon={} /> } + icon={} /> } + icon={} /> diff --git a/app/components/navigation/Top/Top.container.tsx b/app/components/navigation/Top/Top.container.tsx index d20f57a..cd55ca3 100644 --- a/app/components/navigation/Top/Top.container.tsx +++ b/app/components/navigation/Top/Top.container.tsx @@ -25,9 +25,9 @@ const NAV_SIZE_TO_MENU_ITEM_SIZE: Record = { }; export const avatarImages = [ - { src: getAssetPath(ASSETS.AVATAR_1), alt: "Avatar 1" }, - { src: getAssetPath(ASSETS.AVATAR_2), alt: "Avatar 2" }, { src: getAssetPath(ASSETS.AVATAR_3), alt: "Avatar 3" }, + { src: getAssetPath(ASSETS.AVATAR_2), alt: "Avatar 2" }, + { src: getAssetPath(ASSETS.AVATAR_1), alt: "Avatar 1" }, ]; const TopContainer = memo( diff --git a/app/components/navigation/Top/Top.view.tsx b/app/components/navigation/Top/Top.view.tsx index c6f11fd..35cfa90 100644 --- a/app/components/navigation/Top/Top.view.tsx +++ b/app/components/navigation/Top/Top.view.tsx @@ -3,7 +3,7 @@ import { memo } from "react"; import Script from "next/script"; import { useTranslation } from "../../../contexts/MessagesContext"; -import { getAssetPath } from "../../../../lib/assetUtils"; +import { ASSETS, getAssetPath } from "../../../../lib/assetUtils"; import Menu from "../Menu"; import type { TopViewProps } from "./Top.types"; @@ -61,21 +61,21 @@ function TopView({ {/* Decorative Union images for tab appearance */} {/* eslint-disable-next-line @next/next/no-img-element -- decorative SVG, not content */} {/* eslint-disable-next-line @next/next/no-img-element -- decorative SVG */} {/* eslint-disable-next-line @next/next/no-img-element -- decorative SVG */} ( return contentBlogHorizontalPath(blogPost.slug); } - return getAssetPath("assets/Content_Banner.svg"); + return getAssetPath(ASSETS.CONTENT_BANNER); }; const resolveSectionImage = (blogPost: BlogPost): string => { diff --git a/app/components/sections/FeatureGrid/FeatureGrid.container.tsx b/app/components/sections/FeatureGrid/FeatureGrid.container.tsx index bb46bbc..0ebcc0a 100644 --- a/app/components/sections/FeatureGrid/FeatureGrid.container.tsx +++ b/app/components/sections/FeatureGrid/FeatureGrid.container.tsx @@ -1,6 +1,7 @@ "use client"; import { memo, useMemo } from "react"; +import { getAssetPath, featurePanelPath } from "../../../../lib/assetUtils"; import { useTranslation } from "../../../contexts/MessagesContext"; import FeatureGridView from "./FeatureGrid.view"; import type { FeatureGridProps, Feature } from "./FeatureGrid.types"; @@ -19,7 +20,7 @@ const FeatureGridContainer = memo( labelLine2: t( "pages.home.featureGrid.features.decisionMaking.labelLine2", ), - panelContent: "/assets/Feature_Support.png", + panelContent: getAssetPath(featurePanelPath("support")), ariaLabel: t("featureGrid.features.decisionMaking.ariaLabel"), href: "#decision-making", }, @@ -31,7 +32,7 @@ const FeatureGridContainer = memo( labelLine2: t( "pages.home.featureGrid.features.valuesAlignment.labelLine2", ), - panelContent: "/assets/Feature_Exercises.png", + panelContent: getAssetPath(featurePanelPath("exercises")), ariaLabel: t("featureGrid.features.valuesAlignment.ariaLabel"), href: "#values-alignment", }, @@ -43,7 +44,7 @@ const FeatureGridContainer = memo( labelLine2: t( "pages.home.featureGrid.features.membershipGuidance.labelLine2", ), - panelContent: "/assets/Feature_Guidance.png", + panelContent: getAssetPath(featurePanelPath("guidance")), ariaLabel: t("featureGrid.features.membershipGuidance.ariaLabel"), href: "#membership-guidance", }, @@ -55,7 +56,7 @@ const FeatureGridContainer = memo( labelLine2: t( "pages.home.featureGrid.features.conflictResolution.labelLine2", ), - panelContent: "/assets/Feature_Tools.png", + panelContent: getAssetPath(featurePanelPath("tools")), ariaLabel: t("featureGrid.features.conflictResolution.ariaLabel"), href: "#conflict-resolution", }, diff --git a/app/components/sections/HeroBanner/HeroBanner.tsx b/app/components/sections/HeroBanner/HeroBanner.tsx index f415731..70cecc6 100644 --- a/app/components/sections/HeroBanner/HeroBanner.tsx +++ b/app/components/sections/HeroBanner/HeroBanner.tsx @@ -4,7 +4,7 @@ import { memo } from "react"; import { useTranslation } from "../../../contexts/MessagesContext"; import ContentLockup from "../../type/ContentLockup"; import HeroDecor from "./HeroDecor"; -import { getAssetPath } from "../../../../lib/assetUtils"; +import { ASSETS, getAssetPath } from "../../../../lib/assetUtils"; interface HeroBannerProps { title?: string; @@ -48,7 +48,7 @@ const HeroBanner = memo(
{/* eslint-disable-next-line @next/next/no-img-element -- dynamic path from getAssetPath */} {imageAlt}( quoteSecondary, author = "Jo Freeman", source = "The Tyranny of Structurelessness", - avatarSrc = "/assets/Quote_Avatar.svg", + avatarSrc = getAssetPath(ASSETS.QUOTE_AVATAR), id, - fallbackAvatarSrc = "/assets/Quote_Avatar.svg", + fallbackAvatarSrc = getAssetPath(ASSETS.QUOTE_AVATAR), onError, }) => { const [imageError, setImageError] = useState(false); diff --git a/app/components/sections/SectionNumber.tsx b/app/components/sections/SectionNumber.tsx index 5c687e1..2cf6c96 100644 --- a/app/components/sections/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, sectionNumberPath } from "../../../lib/assetUtils"; interface SectionNumberProps { number: number; @@ -9,19 +9,8 @@ interface SectionNumberProps { const SectionNumber = memo(({ number }) => { const getImageSrc = (num: number): string => { - const assetPath = (() => { - switch (num) { - case 1: - return "assets/SectionNumber_1.png"; - case 2: - return "assets/SectionNumber_2.png"; - case 3: - return "assets/SectionNumber_3.png"; - default: - return "assets/SectionNumber_1.png"; - } - })(); - return getAssetPath(assetPath); + const n = num === 2 || num === 3 ? num : 1; + return getAssetPath(sectionNumberPath(n)); }; return ( diff --git a/app/components/type/ContentLockup/ContentLockup.view.tsx b/app/components/type/ContentLockup/ContentLockup.view.tsx index 614fd33..845ab2b 100644 --- a/app/components/type/ContentLockup/ContentLockup.view.tsx +++ b/app/components/type/ContentLockup/ContentLockup.view.tsx @@ -75,7 +75,7 @@ function ContentLockupView({ <> {/* eslint-disable-next-line @next/next/no-img-element -- decorative shape SVG */} .svg`** — Figma Asset / Vector marks (same kebab **`slug`** convention as **`public/assets/template-mark/`**). Use **`vectorMarkPath(slug)`** in **`lib/assetUtils.ts`**. -- **`asset/Logo`** — Community Rule **`Logo`** component (folder PascalCase, like **`Avatar/`**). +- **`public/assets/`** — lowercase kebab-case folders: **`icons/`**, **`logos/`** (incl. **`logos/partners/`**), **`marketing/`**, **`case-study/`**, **`shapes/`**, **`vector/`**, **`template-mark/`**, **`share/`**. Use helpers in **`lib/assetUtils.ts`** (`ASSETS`, `partnerLogoPath`, `vectorMarkPath`, …). +- **`public/assets/vector/.svg`** — Figma Asset / Vector marks (same kebab **`slug`** convention as **`public/assets/template-mark/`**). Use **`vectorMarkPath(slug)`**. +- **`asset/Logo`** — Community Rule **`Logo`** component (folder PascalCase, like **`Avatar/`**); brand SVG at **`public/assets/logos/community-rule.svg`**. - **`asset/Avatar`** + **`asset/AvatarContainer`** — paired circular image stacks (e.g. top nav). Fuller DS Avatar behavior (**initials**, upload routing, …) tracked as **[CR-58](https://linear.app/community-rule/issue/CR-58)**. -- **`asset/Shapes/`** — decorative blobs for **`cards/Stat`** and About header inline art (Figma **Shapes**). +- **`asset/Shapes/`** — decorative blobs for **`cards/Stat`** and About header inline art (Figma **Shapes**); static files under **`public/assets/shapes/`**. *Update this when you add a new top-level `app/components/*` package or a new Figma canvas.* diff --git a/docs/guides/static-assets.md b/docs/guides/static-assets.md new file mode 100644 index 0000000..910a1b0 --- /dev/null +++ b/docs/guides/static-assets.md @@ -0,0 +1,58 @@ +# Static assets (`public/`) + +Convention for files served from `public/`. Path helpers live in +[`lib/assetUtils.ts`](../../lib/assetUtils.ts). + +## Folder map + +``` +public/ + assets/ + icons/ # UI chrome (alert, close, help, pointer) + logos/ # Brand + social lockups + partners/ # Logo wall partner PNGs + marketing/ # Hero, feature panels, section numbers, avatars, banners, book cover + case-study/ # CaseStudy card SVG artwork (canonical) + shapes/ # Decorative ornaments (stats, quotes, unions, content shapes) + vector/ # Use-case group marks + template-mark/ # Governance template SVG marks + share/ # Share modal channel glyphs + content/ + blog/ # Per-article SVG thumbnails (see content-creation.md) +``` + +## Naming rules + +- **Directories and filenames:** lowercase kebab-case only. +- **No** PascalCase folders (`Section/`, `Share/`) or Figma-export names + at the assets root (`Feature_Support.png`, `Icon_Alert.svg`). +- **Prefer** `lib/assetUtils.ts` helpers (`partnerLogoPath`, + `shareIconPath`, `featurePanelPath`, `ASSETS`, …) over hardcoded + `/assets/...` strings in components. +- **Blog art** stays under `public/content/blog/` with + `{slug}-vertical.svg`, `-horizontal.svg`, `-section.svg`, `-tag.svg`. + +## PNG files and `.gitignore` + +`*.png` is listed in `.gitignore`, but marketing and partner PNGs remain +**git-tracked** from before that rule. New PNGs may need `git add -f` to +stage. Raster → SVG conversion is tracked in +[CR-25](https://linear.app/community-rule/issue/CR-25). + +## PNG audit (handoff to CR-25) + +| Path | Used by | Disposition | +| --- | --- | --- | +| `logos/partners/*.svg` (×6) | LogoWall | **Done** — SVG (kebab org slug, no `logo-` prefix) | +| `marketing/feature-*.png` (×4) | FeatureGrid | **Design review** — convert if vector in Figma, else keep raster | +| `marketing/section-number-*.svg` (×3) | SectionNumber | **Done** — SVG | +| `marketing/avatar-*.svg` (×3) | Avatar / ASSETS | **Done** — SVG | +| `marketing/hero-image.png` | HeroBanner | **Design review** — likely keep raster | +| `logos/gitlab.svg` | Footer / social | **Done** — SVG | + +## Related docs + +- [figma-component-registry.md](../figma-component-registry.md) — Figma Asset + canvas ↔ `app/components/asset/` and `template-mark/` / `vector/`. +- [content-creation.md](./content-creation.md) — Blog SVG naming under + `public/content/blog/`. diff --git a/lib/assetUtils.ts b/lib/assetUtils.ts index 9fb0a76..322ce53 100644 --- a/lib/assetUtils.ts +++ b/lib/assetUtils.ts @@ -2,11 +2,13 @@ * Asset path utilities for handling different environments * - Web app: uses absolute paths starting with / * - Storybook: uses relative paths for proper asset resolution + * + * Folder map: `docs/guides/static-assets.md` */ /** * Get the correct asset path based on environment - * @param assetPath - The asset path (e.g., "assets/Logo.svg") + * @param assetPath - The asset path (e.g., "assets/logos/community-rule.svg") * @returns The correct path for the current environment */ export function getAssetPath(assetPath: string): string { @@ -68,6 +70,43 @@ export function guideBannerLogoArrowPath(): string { return "assets/shapes/guide-banner-logo-arrow.svg"; } +/** Partner logo wall SVGs in `public/assets/logos/partners/`. */ +export function partnerLogoPath(slug: string): string { + return `assets/logos/partners/${slug}.svg`; +} + +/** Share modal glyphs in `public/assets/share/`. */ +export type ShareIconName = "discord" | "link" | "mail" | "signal" | "slack"; + +export function shareIconPath(name: ShareIconName): string { + return `assets/share/${name}.svg`; +} + +/** Section number badges in `public/assets/marketing/`. */ +export function sectionNumberPath(n: 1 | 2 | 3): string { + return `assets/marketing/section-number-${n}.svg`; +} + +/** Home feature grid panel art in `public/assets/marketing/`. */ +export type FeaturePanelKey = "support" | "exercises" | "guidance" | "tools"; + +export function featurePanelPath(key: FeaturePanelKey): string { + return `assets/marketing/feature-${key}.png`; +} + +/** Case study card artwork in `public/assets/case-study/`. */ +export type CaseStudyVisualKey = "lavender" | "neutral" | "rose"; + +const CASE_STUDY_VISUAL_PATHS: Record = { + lavender: "assets/case-study/case-study-mutual-aid.svg", + neutral: "assets/case-study/case-study-food-not-bombs.svg", + rose: "assets/case-study/case-study-boulder-county-street-medics.svg", +}; + +export function caseStudyVisualPath(key: CaseStudyVisualKey): string { + return CASE_STUDY_VISUAL_PATHS[key]; +} + /** Per-article thumbnail backgrounds in `public/content/blog/` (Figma Thumbnail 19428:22574). */ export function contentBlogVerticalPath(slug: string): string { return `/content/blog/${slug}-vertical.svg`; @@ -120,32 +159,42 @@ export function contentCatalogSlugForFallback( * Asset paths for common components */ export const ASSETS = { - // Logo - LOGO: "assets/logo/Logo.svg", + // Brand logo + LOGO: "assets/logos/community-rule.svg", // Avatars - AVATAR_1: "assets/Avatar_1.png", - AVATAR_2: "assets/Avatar_2.png", - AVATAR_3: "assets/Avatar_3.png", + AVATAR_1: "assets/marketing/avatar-1.svg", + AVATAR_2: "assets/marketing/avatar-2.svg", + AVATAR_3: "assets/marketing/avatar-3.svg", // Social media - BLUESKY_LOGO: "assets/Bluesky_Logo.svg", - GITLAB_ICON: "assets/GitLab_Icon.png", + BLUESKY_LOGO: "assets/logos/bluesky.svg", + GITLAB_ICON: "assets/logos/gitlab.svg", // Content page decorative shapes - CONTENT_SHAPE_1: "assets/Content_Shape_1.svg", - CONTENT_SHAPE_2: "assets/Content_Shape_2.svg", + CONTENT_SHAPE_1: "assets/shapes/content-shape-1.svg", + CONTENT_SHAPE_2: "assets/shapes/content-shape-2.svg", + + /** Default ContentBanner background when no article-specific art. */ + CONTENT_BANNER: "assets/marketing/content-banner.svg", + + /** Quote block default avatar. */ + QUOTE_AVATAR: "assets/marketing/quote-avatar.svg", /** Sections / Book cover (Figma **22137:891197**). */ - COMMUNITYRULES_COVER: "assets/communityrules-cover.svg", + COMMUNITYRULES_COVER: "assets/marketing/communityrules-cover.svg", - // Alert icons - ICON_ALERT: "assets/Icon_Alert.svg", - ICON_CLOSE: "assets/Icon_Close.svg", + // Marketing + HERO_IMAGE: "assets/marketing/hero-image.png", - // Tooltip icons - ICON_POINTER: "assets/Icon_Pointer.svg", + // Top nav union ornaments + UNION_XSM: "assets/shapes/union-xsm.svg", + UNION_SM_MD_LG: "assets/shapes/union-sm-md-lg.svg", + UNION_XLG: "assets/shapes/union-xlg.svg", - // Help icon - ICON_HELP: "assets/Icon_Help.svg", + // Alert / UI icons + ICON_ALERT: "assets/icons/icon-alert.svg", + ICON_CLOSE: "assets/icons/icon-close.svg", + ICON_POINTER: "assets/icons/icon-pointer.svg", + ICON_HELP: "assets/icons/icon-help.svg", } as const; diff --git a/public/assets/Avatar_1.png b/public/assets/Avatar_1.png deleted file mode 100644 index 30ab7100805b74da1072b55c8929ce9bf3fa13ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2802 zcmVXyi55xM;QTn*()C7HoAr&9zjK=5}vCDnl0dj0Zq5Ly&+`&zU z{Q8sSGQ$2|I=-Gc8(ld*Qp@?t(>QDs*5#=S3&_}#s(gi6ua3eIh8#wPF=f?!+%vdhJ z39WN#8llMcqBlZQ;?Y^(hYF+r4Y^c~}najiyN?vi@Qb*LO|gjmPw1AJuctOSunzr_ z;FK|Z9rpBU5Uva3l(`(vvmYWFi(&U;-$pDH!tl{I(bv(1xzH*e{`r$w96OJdB^M?} z#)yAX)DjBT=4R~s(SeWg-rxkg$|5^wF}f-oCy0|HSx+e+BV*7kn3Ikjmv? zt+ybsu!O|a7046{tcHS!tpsrDkI$n(S$2H&Zp89A!PIInh-@^5R4jfSkA!X#f+-&o zNGK>A>scX?^&iPtb}al8!cb$ES%N1q|%E6+N9@xNFZ|Y_V7{ zKRkw2Lg1mtzK>8c4pFXvWH^E{BjGhyk?93%QxOg@-x3r`4+_n|>RsN5v<$D?jp@lL zm`o<5#T**sO8oESDGUt{L#}FCuMFVf+5Q&`ag;UYfzSfqlp< zui$KO4b{awlyU{41aC`A3oM2zOwBp55?Dhvor0JY@Pngo!M?Q(?z0!b=`>hlr3gh3 z&1cd6$OBLs^c%eB5s_~jYXq3f*N{e=hyCmvAP;c z(h{K^D?MnV5`@=#E`ue?_J!X*i@Uq~aDI9cqGDOd(&=BuIp+*?3MDKAw@RbIww5+1 zskUON4DJ;_@_Y&Is~!}I7pz_DYD} z-r0c`a~*=QC^5Z=B*AT`_Uos9Z>g(?oXF>*nm5&2(B9C5xfLHIbncEF{qU`=L7Jx^ z0;}Mt{`FKEW;{X9%Sgz=fdD@G*GVXnCf;7QQ@a7766sTk5#HD7N9a@JC*19_A zv^p56d@QkAQ*A~5SZDBvvH)B{`^h9&n_EKDjvg5G2DEPLL^TDm;Bliwgqd^B5f7q- zf(m&$`^MO5$PGHIEH4v(%fu-j>0$wPjS;?J02-PFG3O%sX+pN{xdkF~HQKgr#Uk;e z5Q%RHo=ZYElgU`DXXu5$Vs&u|W~&v|?Jd~-$RHBIFs3Nu!5z0kE|=59=LOMG&@S)? z`!7+W)=&$Ykk98yL`&#(v?57DQxjap7!4UW!_qYqOASO;h7A z@uYOzWHue1o4jZ!Qrpb?eNa=jQLi7aKfj1a_uc_dDh3A;Pp?v=L@4MrTEw$y+-!H? z#KBQ1JZr?`aC6uz1t)5ypO#`Y#$VxRT+}zU*5w)(&VtSeR78GH@IsIHP z9HPh-kkGtOFtX{i!i<-Q#c(cr;G(*Iu)K(`-*peJEY3qiEh(bkbOf!KvSsiG$cB>c zFU-#1y{U0wsOe=2jC^=r5UdQ%n0Tpx7;ROmXyO^>Ti6=k8Xb)u+<&K$4BoqB$8hZM$L9SJfS2Z`r7_l4ElY0 zV750RvE*^>>fYJQ4fIB@3xHiS$KJ6OQmLV0JYfraeDFCJu(-H@UYh%vbQ*qwczZ`D zj3iEFg0nz%We&2L4041>I2uKi)-+nVprjH;C?E+9r}mwFsIxU9oJzXpR{R5x|Nd#$ zrU2s;*Yay8dcyI*u}mgwE0b7c-CiurFCa}BpK;B@6Q|*#)(X3#gj%phO=6Ue!z@(_ zWs^|{)oOI;wKSkiLuc!){U{RCJ!$scs7G5S4Qj3?P%)jK@FX;Qd{#9(UEG4q4!44KNW#%FWw)qg}mOUvysSwC~d=6 zY4~Vq?&pc1dFl`~^>l{PXfl~0Ci04@1TwWMsyElZqH#1l$0?Pr&$9oy0c-}cM9Zs! z_D2zJCjsb2<{9 diff --git a/public/assets/Avatar_2.png b/public/assets/Avatar_2.png deleted file mode 100644 index 2127a01618f382be7f2977455432d91a2b2d459d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1736 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 LNkvXXu0mjf%hBKH diff --git a/public/assets/Feature_Support.svg b/public/assets/Feature_Support.svg deleted file mode 100644 index 185289b..0000000 --- a/public/assets/Feature_Support.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/GitLab_Icon.png b/public/assets/GitLab_Icon.png deleted file mode 100644 index 94f65024d04a4e18c0611e8a7bde46a62b913353..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54599 zcmXV02{@GR*B-{c&&a-yB_jKpJ!6c0NwQ^$Y*|~ZEtX;?V;N*$ia|&S(GM9VQ7EJ& zMJOp{Nus3hO#iQ|>r$`tp65BsbD#U1=OsGWS#Yumvmp=&PD?!234vgMei?~+P5u{yV2Wdv1i$JtLY#| z#rc+Pi%TRK%ba50_RmYLq%gB5-zcR*I8W|*^*m{w$4NcZc!dwOs9m)y6->KLX7d${ zAO2=6{?*?|GmcBvOrj5daO-HvP<7=)0>*Tv+x@u{%wfyYKDqn}80#AFUm~%h2oGiK}#P5`Fv{k;bg4e}mrq68QULUgFRC z5egGKg~_AtKQ~MkxAflymWznC*XRGTy!`uq?9#@iOQ{fnffGAl_ZTsIXXdm^R-fJ2 zeOPp7&wH4=!pLj4$`}_?i4D2gUXMgETlZhu*Y`6?yK4QX^-ynz(>Vd~#`xgD-nYj1 z{!2_V0h-ZfyJ^oVe{@x}e|&@IyoTre(W#}QF}xc?+*VV4_^B;r`)68_MB~viZP>bS zQH9~BRoQvggycZYZT;@^uqnaMhtaa!L;uCF54N$!z_gO`4{&Yb3g5M~TV4n`n* zncD<={7~!MF7@9|;W_j0oNX@W_!Es0{6bj_;oJ%mP0nw_@HsNU6Mr_p?oAT5#e4)7 z&V)^c{5eixvZAEAH5^(GKDB2|m^-kbWzoON?a^4GcvOdGNR6A@=T!pXl2|7@!$K=! zUH@sy-cd@bB_(x7X^HD_H+!h>ZYE+if4K3V{#(rZ6LoH;T~yeOt^PcU(ZXZ2h7YZ4 zN0v?#B$&Hte${@o@#fFH#4f7aXJ2j1ZB7k)Nt)E)#`O-BWV+^xU%EyzvpDcXiS!A5 z)GXs&2Z>{Bar||r=sMHNwoKDfM)wzZ);%tenBLc@Zh%m7ROym_^7Vsh#C|6;87H$_ z&TmDXMiGH^MTs62NrVjTo^uNh&lG4Irw6Me(zDV9F+@HmG2Pv9F zyUV$0tU+b@D6%%6xyK|V5gS54uM1<%4ciIZk&T~+|LOVeHd;of>|}q2%FNS>=gh`) zHanf;{e(JOSBn@m9=$g~^TI<8>0b7>n{`g}z6yFNFA&5R2-!Cprsr9P9lg7(7Y)G+ zZRGn%kYLF?>1GVShQHMu9h?eTH#^=^^)KBy8^R3s#h-kdG7*8WxY?mJ_N(jPYCNb2 zT))xh)&AU|3JVYsk^Dy2Rd?@jTtfBdaP#_m*pNi@x?%DASgfa4!yzK9r+xR~f>`IP}>)6H3n{&?2ok_?;RoS=ZYr8!J)w5ncDO+<%72 zt4eP)pO6ApEmvPdFC{K$K2$;-gEYHH5w@lXdo=z!n4Faqruq1q)BKB#>jgByD+jsl zBr@eA=sbc`5q8%?Riq|eF_TlR1ZldZB%xwI<;rgM7BNWPp3A!QQC9+98&f=w*ZtRu z*Sdz+(zXdlrUjSYv>N*QPuK2>X)os(bLNCnD{4#v_eIjlR@TY3(dExhVhQzP@sfZ4 znlQ~(Y7eLQBPD_+3<9lj0(CX$x|(u-QN~d^4NZHIc@#}T%IwLOla;x~IrM0g%O5w2 zuoXqvz2T5)Bx|Rg*){a6hxjHx%@1d+pNL@32Gv9-eYP9`GePWEdSRKpmBf^-nRzpE zzKgc8dwd%)L3ed9y8pTVK-LAI>r!8~wm0#>GbPz~rm)_#lhvQUNp)JceyxuD9*kqB z$ppNtx0Ct65?K=Pl+by{>D*5YWM0J4J3qvm(^D1uep;!fJ8KY~H7Y)yPjKzzRvJH_ zW_5QK3)*HwSS08U3M?8pANd;N^Em=J_AZr3lGMEM~GF^0q3klX+MpE}ALoy<5NNKiOxPO!`+v zHq69MII-wDCUl+lJdR<1q7VJGxia57ytGvxgiJnTiKm*&P1w!-3e@Wmpoz&@4V|Kz z$~jXTl|*R)>Rr?HOL}n7M?d$=uCr%kBP9^U6CX2i;R2R8dcj+UfAv(S2Q0dM` z{`zigViaLK#eGnNry$8E`P$s9YvV7P*RlEU73Pd`!#uEV?&78I(li5zngLH!-i0be z(S1^VPj6?KuA2sOf;c1kWTHTf)Rt6+8z#doZ-%!o%qMl|m9X3_oaEpqPypQK%xcU8 zbbAdx$&L%kju-MxS-%&akV3w5Yy9;Ff>(SZ>&!Q{$g9h$$n(sn`GZO5V3JFHI8&+Y zCsjkQOU0#NSMb$qgWQS!R(a^vYv@+IUmo7i`HrDCVU}^)Cd&}Z0VxPbrg>%0fB8lD zT!M+ZEJl|{ZI_3ptn^7FdCs=xY4qGT@BS5W*mceG+@M+Hmg>2AX^NT^CF-gmBHgB9 z;mhkoS&&Qn4)h=N5je6x{I>I3bBdZJMeV?v+Qf1!b+WyF;xKJ5;814iPL^Sf3(?m? zd#-585jEu$kN#vq9V@hBXS{u}`1@~~T?gXCKhgJXx(Plo`=>_X^`234`trGSLhh-f z%n*j)W`j@d*2FJV)|v?$tmkpJ&t)dUDOll@$$Ddbj&Qo~HcdxN@9hex>8HcKoC(sX z58A2^HxC^my)41|W#j$UG#9WY5UP_G=4(>+>_m}&ZGASd8==lzsac8geRQIEQStlTG{|&9{5DUJH4!-Qt za1j?tr<->1MqVex`>Q#4E19udsLy5d80I#2RlC4HvGRZw#BF;0=PKA{zIh}BM9x*} zBKw~^BCKVT^%8jL9K5u1GLrFIm3MyiA~OJ!?agcT3E6Xpex1~3pSe&xh7%@Zg~{#p zya%7$Nc{e(z??w<%3CW<@_No!?xe;~$MWWW%NCmble0f_F&f{^J$&7}Lt=xL-EzZL zlVRKn#ti5`R}&i=r7loVmK0R5BY)!0v16}Y*b0u-f1{mCUJBNWL{R4W^y*RkhS@(M zp$Cj}O1}<#CFpuoPMXoo%OfyT#W%0f-|uq&(SgY@!DQfx=P%zMszZCy68A7v?lOi~ ziD93Ht=-;!gD1x6!Ws`#LOG|u>aByWdHEOYSI>L z6kc)bKS4d|v;UWNlQD6NlVY2XFIj0VjpOWO8m^3J)gtIvx7~#}zwmiTL3&y|TaZL` zysEcj59XB}mlMH#QC|~|S7v;t&}T=}7SjH?18s*49Q!`S=6Rv?40E=&BdqK+&lJgH zSaH3i-;pK-wdJK#Cwr*rvj%TW7rsQEtUb0dw^>IxEmCOltf7a?7>I1$4b0TBWQ$Mc zn<=Lk?DOqLFkv~^Y3H#N-4rjIHCpb&DRe@bzYn20Zel8VbSkh36611~6x%xnpTg*r z>C&FFv+8bWF0es}IGvNzKArSb=ohEh=HN@@ejpuQw4k$j}_=4*Gyosj51xT%iu32y(a0>$cuWY(EI{X|7;inQ^)8*Vm1CO&M2A zRldySk~*M-h7cg%Was@P$E+1(->F+^{%9 zexiwrY;qXt18Q6jPqF1W8JjpK7thy9U4C}@8{(gsl1Bu6`loAoIa&Xcz6Tv$b6@Va?a7-|Y}OLChw}qvGQ(3gQxS3+qW|cOyg9o9*YZ`f!n8r0h5oggAlf z(&l&@+fM|`;OtC3-?*;h&9;V)SIZTREc6y+a4fXgOJ(CurM0 z=bZl(GRaLj29{lCU}o>WqJ1PEEdf==nOE^>2XCK3ThT|h?j0FF{$)Pdam8Q$b+b<% zR3}aZ9WjrLj(gq(knO~o7y9=UIH?}J>q6D0>1z7q*6*2=W^#SxE=!yQ0Ja)5Y#yn3 zF^MK62j;L;^M67?sXxLPtb_L5Jv`$nz8MWATN5Yi{z`gYSD5I#CjCE|vTm;KOq^6w zuHyy=?Ay;dxg+UqkPJPouIiJ$Offx`=yjHiak5k?4To)jCTorFW#g86ba^q&eD(4CE-pg_C0PmYE1TW!t^AoRQ^$J=F4!M z5yyR@rMdK7r*na+dDc{4O{=eo>0kP!CkjCwsQ#Kbm#?G^dVh@$&>Z7qYs3xrw#aucW&!0aZC4H#>TTgP4N=xM2ea$pvEkp zh(Utl7A*%x(FTZs=bfc0sHIo+T;u6hlmfKj90yO3XC-z|5S))*I?XkI+Wzrm~b_EjHc`^52khUSe`=?=t(P|IUVpgDW{VgGap)qx1)zb>2uCgAj4E)N1hu zK{xZWJe%hZX8JJz!nEY6qx*@S^r9B$G>=(zw*#JA#Bl>_5rJfCkk{}70 zww0Em>0c!o-ps@#bM@O&ma_5Be5*ezqoa5W&Cj*>Qb!)^btKXx1##j?<*Gw(ysbQO zG-aYzcO&Q@Cz)vR|FmA@g6L?QD0FjeI+lf{&+P)1UD-T{UiSFcP=BLqs`@WM@#)$= zFt#Zu?)e*(BNNrmIgmA~(f>F7cn6*mp++*;hZ0DNbB@s??XrNS$MW^1@*Q|fmGaJj zBd%<6g0{S2@kn8wuPK_aA}uqx6p*j+DmF6feVx z-V8CK4{$s(qu6IkiO9y!&RGtG&mB_D60Uk4PXHZ?^0G$Q5!6}wQQ)Ec4r(v0CdP z?nILeC;14|*GZdN=;c!!xjVjVbRm_;s~0bTle}m!Z~C5z=cXg(L<`TW?E5&(g$$SX z?TI>$ykW#SXt-l|U_AkcJLl2}RX532Ykrg_GTz&dg|8W@<%p=2q}9?*`qX9yrAi!I z>?z22(_d`FO+Fy!COfE*J9Y|DVR6q-L5^>Vy5z^FNzV(bW)+95TMl&Ly`{+aA1tXQ z6cR*k4h2YevPLn$VoR!|mj|z>6^F9-RRJ$Z**t|_Ry26}vWsdE@}EYYE`a`c2Q-Rj z9F*yq9dg_0M-9?-i8QHK&ML6E;Ml#wazojd9RX@rxu3|~?zTc#b6yF3?5L%+)G4UlC?PNLEH0ScM%^;(zSb3qoHc9H}#!?Sz68Tg66M!R#ju)VptpP&wA1KUWit%&; zucT@H)TVX0`7R>phUJfoPIsj)D3C8oeZ<5{6q@CRL>UUv1YQBw9A=QHw2aP_H>9Y@ zju%)B?KsUJ*Bpvw=)ULvgGOb3jki+R&pyYB{Ov~1? z^UBS;{2laJwm2RpL()@MY96)!Sk#3A69Vn1%>02! z4%?I>r}-`D#kpfgjprna%RDW|z#3#GGHp$)Q<-4KjqwarCV_uFbtqHWuAzOw0ZF%)Cg6A6a2J$;AG zPn+Ij@x)H}8zq;(>}&tn3oFfbsKzVVr`e~{YDOmIKPbWGKA%T@ExXdmEmN$$Um=d( zwh?=z0o%X}*yE;oE)|tU50x~GtwpSpSTp7*9|%1PN3j*L#)Wm1K5(q<*V?m&Q3Fs@ zkIieKDrjbWBy@V*X_v6A#vTcVF&dpRqUlEP57>7v6!~Ip3A!-NGPao1NS=QZhHrio zz_#Zv4xo%-#s&~v%m%sTsj!YJ_Ue0oxkS;rM@aJ=+LqR#q0T1iJZ}>@U;gzEn5clt z!b}ls-1f~gKMV>pJp%T{@vE7=XKEI(?Gk%dc@A<;lh10%0^c_x{}37US*G~VL;w2> z5|VwRP8&wB<@tl$@sFiDlNjC*V}DxGK&*KZGFc(Ltu{Uz-;>vQ z*Wl9#97Q=Nq5%p86FW-poi(NTuAq9E;sehxqs*lyzdXJYPK#C2yn~m8z6QMT3!FGxu97rOspAjpDaR(BhKJ^ zL%bOZE^b|?wKB!>vTq&}I_cWT7bm~Sc4pP!D(lvvSTftuCv7(5JV^9ag0n3*U^ST` zRn6{c`pdS9KK#O+7qeGt4p-JSyPV4*=p-WX-m;y?<(ZGwD}%$-^9I9MV-n3Nv-_wp z6bl@4#%uBcGw-2t`Y?|ldn2@V9m@`07qaR4HxlpBMzv4ZT*t5=rGZ)7a<=(kZ1~Y!ZL<%pLU_FQ5{{oAh77T~3 z^YE!=ZH|QJ407%!wsXzwvRGAQho4)|$@N6?ty)E4oo?eJ#DP$b$Fa7#3!g?he1GYLq1&)ZVy&!QaV{*0T9qd z_8PXhbocBDfnrypoaZirg(7gqAo)$h(cUW{mG@(=J@F~kU_9MzJ8ra_DCbg11P0T? z6(zF#C=97=m_7xyKP1n0KxmFW}i zC=Jw%tN12Y6)`X9#5MFP{TaMUZAoM_blLzx8Ed*r-incot|sw%X_65)KnT;Q^y3g} zGm(G%X_111;m{Q9s=lYa-i)Zr=xH7w*K`dX0i&sdno($5if>zf;zNAX$BRx|w~qoL zcIp9!+iH4`ely$aoeje=sb4|!GR3;kma*rZqJ~qBo!Qs9?KTP_{QTAJE)qJ5o>xJU=+jAU%s+*a;=z83+fv`y_ZJQcz}+9 zo2)&WA@u>MhxT^vpgjJ`q`oe`(#ZNCJ6rxd_+v0z?o|2jHO%=R*t z7p_267|tiQ#ci2-9v9!FO<+PW%I43J=-@NM1;eY?iP=FIgON@qQQWk_!MOui7!*3Q zSNFR?PJJw*3%~91r}5@G+V(Q~Jj1Yb*zNTH!O;|y!>@1?VNMz0HCeJ8hu zbReMmbHI(WNv-&j2oLJy55k|DV`!~ufCckN&Z!hl;U!5sxW#}DR#RNoT|YS%IhCp@ z{O8A_Qb-#%V@r353vn!|5nrVyvL^lzaAw>!&nG5{Zv0azOJ^r=VFy3ikT&#d=6Jlc zrqYKLDOre#G~6??T2)+6*F5x{+P+^XfhKgz*yE6%NZuC{?%>Oq%Gm=C*&)DW#n)Ve zvy1`RxG#1NT#ZM?Uf2+YzbvVpxy}=lh!t)W#eG=?OL4c4KH1IQ;0fNeGmrfCy)gI& z&gumoN<2oFZN@}6ed8r?UO1G(bw3D-s21j64z~5t*3bykjJ%s<@ueA#NMx*7uqY-o zFZ3;dR>lj}ZNcF4;%!eOQCd!wxC3Mlwso%Y?G@1n2=Ie?!_iA>b77Qqy){xS@}EHU ziu@Iw?14Zd%44P6Y{_QbXbrHDTN#6 zeUXg8yLS-+6#*+SeGjYmJuRl2sd@1XHG!tY;XZSyS$*0m*-wzZ+9ME4=2B)Z$qaA$ zTBx!|ZaSj1o@`uyr7U|NIV?5#a9zn0h8o5&=AYgNKo6byb6kBIGW(}Pl}t!srD>$6-K1SEgmR6}b)^?S=7NjH`0tkT8ay{;(@`5+P^c+ZufL;hUrVYTJx zClf--`D)ZBBuV}(7h57p69{PhoPBcpP$YNV#b}E>AXo2{U$78`p-&vhK27&YdUE3T znTNFr0H-1!Culfi)GSta5k0TG_~j-Ft#z0%{NzV2f-q_!8pBDUZ_*$R_b{A21 zU-{bMn7HTG&Iv@}8(2}fd2y#Q^Yd^49Y9-mKDf;eSwQ}LN;%myuhgQw;N}*f5c?;( z(+yX2wac%4x;d@6i1TR8gm%ukvI*Sj#LA%}xHStjk+n zilu2_JNY|%!^r8+SH!!W*6Lgj*maXX43hXvCF=G9h`WZgyJ zGRN|`fd?=NI^BmZr{lUi>{xc=0_CGFwm%M{VokdMv?h8`>79_+{yuc0jzgnteLKwh zrRR=QK2EWEx&tZz2zfbqX3p*7!H=lIZ1(0$^yKseNuPR=@)19$z8FQ*q#&z;v>+E( znfL#=R^KHt=~6ij<<|{vO7$oK_gt;cLK49grzaZ{F%o+Z8EPJqiO9?k?Y$DB=or>$ zA<7B_lU#gKs?s3Q75c26>jqp=taWi)94QS@VlzS%Kx+R_pgI}*BJy)+jD87*OmFtt z(OYB}2O7=owi1vx^U;&zK*_i}kt?PlHAhe%AY}z;qE2_(H3&LM2k|3k0}4G&+VgJa zmj|3pY^8EIX|yMCOCh0M@l0**GP&}?(*mgsIO^uCPYelc{A}_ZX(y@Ws<1BgP#xIc zFBiq5DmkaiuBW{4)S!OdFU0KdRi?h|nO}gEyiTGYo|C`t1Qjakc!zL+BKuB)2}bKp z4~rd)8co`BZbp}%{OuzZE@=x_)^A{65!W96c+2oJyEsDS%9m%D0LMm|`fG6VP4$>O zEs7aXF~H;DPHJ4|KoN8}WH}So`}#Kg4m7F9ddA1*l$)7@)kT$FUj#n4nUT6?Mqx!o zo~pUEii5?xk{fwerEN3I%%14Orwx!X-phdbeS}Verruox=~*)na;eNyjuZ$!J&f%) z$JoQszdzmzcNUm&8RGVP0D&9RcxT0jgfx8a(zfb6Oskf4z?OR~@0g+`ZSzGcKCDpH&&3!P-z%p!%eZpQS_gXVU!_tebP%anus4{t6-lHWoSZfelz|q7a-L| zbJlSB$7H!@N^4~>97zk2a?DsvqtcK2|7X{~JXsI?_?IF~zB-sanYW~E%Mo_xi@(2e zI4DE=VkW{vVI5IuT5Q8y6?x9^1RZ#Q{TarN{#cSpu}u?d{iFM&rDilS1QTu%$-zQl zJ(^to!(S&yhBnVemC}z&+ujzV{^%VnGN(!1$m`}@u_*ST(`k)_ah$Z}cpH2r;Bmu~ z0qnfH@P%Cad`ech3$phI%WXP#d~R4mQb&0J3_ES_q3^M*%Z)F7$cPR?62whqmk+4=ETsW!F5-M6Zv!PqIRLqW<^va)0z(0{)0xati7pb5JNc z!`8R6)*(N;=9#w7^7q2maMy6;Gm|a|T7*diN8e*;(a!37vAz9Z+60^CRmrr-d-Ly^!SG9@=4m4Cn_E9I zQNsjd+wq#@eEHh7&aZKJ98XFd_!%FMed_y)#En7!5<;~F4ghD*gj<@O4 zvR}x}pC5Xupy@=!!IhW_!wfw?d9xrB%drZ~8>j^D0jpE{`ww2fLg_twS};mD!?}_i zpA#jl%iNZ|S>Vnyn-(esw|(w)|8XcJD11=P*}L|NUU|>>=q0)gn@Tc_?uGia=9F^w zaFF^>!oeL_a#3Uj0g3;04BZKRCXa9tR=QPu1)+@4&)(F*xFW=93Wah0QbxG(rY`hSom&6jG;P_}>PyU?aFgNU z^Y&e~+UIx~VIoH~VpV$iOQ?j?J1^RoFFBeD7!~t=A(;zhFAtrUfCb0oKNv)cTYA^> zq5hy7fehFZ;4=#!=A8R34BWI?+w@r??u6hDi{)(1kz^6jKnG!^@6+;O&$&M|^jI&3 zE9^gP2~5yJ>5Q=B9c~OXG=gtxUPRh!#8VZ(?GfrnFcOuv1wj)RioZwD{U&dQxnpMz zy#9ul*o%$p5{xHP>!E`e69y_tpCqN6P;DHRB|4^w8M}df#lGz-D%T5s^@X0gZM4 zlP6C$E_N;YUA|S#b0NQbxWxa?&+^woH;|GJ$ejOV&rP0LU7uP|^W)0-ul{#k{oiwj z?4i<_tY_O7(2f>ZtpDYij^P}FZOQ~;aKTE_i^&6*`ha|+Gd{RM-1iw$kud0|F~!ol zghHW&q<)vj2X8527g=9FV(~TwIjI)D)>uY7ioD-R_);2yFvz0tEfSNLeB zq2R8%|D34MRTdBWa&v5XVPAF0+pj`cEEd;qX6;S)l83zi8oektNmk@l&5)1vwtfzr!n`5nwKF-X-@kF4I`NHs!;qVxy~8t-P7qeW3D z^3|@0*J^VGgu$djH9!7dbEZ+Ulzf(7H-RAP%o%&~)ptJvf#5uIzczyI2w@Ph-9%10 z<3GpooAEgg%jDY_F~kU)IuKg>W+>5`x(}nyvShrsyd|vekjdf6+G~boI{9|4x-5LZ zITlN){3f>}+|21u7?jjh_=={+f(UCwA36 zW`dj)<$vAEeoy?SG$v(JG{FArS^ZQ30sqLer|l?q%9_fCQI`)7SW-1k=O9TV&$MZ%y5G<{#W%(xUC~v0d>aMoDul)3R&uOLL|Ha?!%SorZv|dw0{d=7htwDF_kc_k$G7kR+La1L+hFM z%WnRXqCy0bw_k%(3X+1c{(}6&Pb$26+CI=Urm7&0Q&D8!sRP8orgJ)+da4#oCuYC8 z%>~2CzN*dKR9@Ql<~~;+OrK+zdP*2B{6Bf!n1kH4>o1y!>Sa^C5Oz|Sv`53A zF7Jn#7fKJ~+l_2Pkj0&|a|AB8%sj@KL`ldIvKs*Tnq& zHw}ZlXBLTX+0vokX| z*Vt7=a|k{@fSt*hzL+rR=sNXt^XMW`cLVz^E(+a=&;`lQJ`tDqYe4WtbH-mYlv`jk zpU|&;wCl*lWR1XiFYZAMV=xxW`(>4AE@26e?$AgJOw<5vb#%u6eQ7_p*rK;FbsN6# zWJ!S87dA6&!-17$KKZXR-dES;;Vc)E1f(6PjVBnDL7 zWz~yW;B21BCw~-DbWr5_!nDrVALA}b2I>~#uOW;0eMNj!Br(@~*B0QE&;W&F2x+ZC zXN#p+UF3R)6)%#`>JtuF=Tf~wa2}eu|K=GDG?O7-YQOcd6erBeW0aC~)-c&Zz-#}? zQ7k3IJz#ewAg0R%%%nye8q;-OB{*LdI;XM66z895pq_pjxey0pPIGk^I*!oRbDhoU zNL0X5PGeSH4N9L`94qSO)&%3+2XtwPf&fU-ThoB7aLyF6_wH%?p|pV)jgxuxUx^od z@PIkmeqwE-vBQp!rfX2F$q;G4C_}*WO;Rsq7@#f0Gj_~1^iv4VN70cNpKVOgq^Ncs zeuX{sr6$<=0~yURMtjTAVmqdp207!qF(#=5=hqqmciShv3PM6Lw|#LFnWtAxBRF3x zYQar0E;8$Fq})EI6WAQfiHBY4^Y=eW@X`dY=v}|R!`fU6QScxTj*%r62f5koy&2yi zI8b%E2|bz>5c$PK%egQV|ZfyUs^(~AjjSHeAlyIF>%F;#O~SsROBjS#GD z|LJpeV{mIM+$dw~NBhb-?Jr$EuVQik*sQB&EFC~fm88nZyEm-{rl6R(gPHP3lmZQB zEe+t16-mwxkyj^U68NW}G7);NkRhWt7$9}keb{4}P(pm18eM|I9U?sqQ2fn+16YBr0*sGQ?hzfzrl?LNi6o#D^Q+pE+c68 zd1TQ;Z=(@1o3#qrokSp&vLyTk0~jDbAN#xP^^-WU{xAHgZ!Xvu4|beh^!Sl6lfq7A z#riK6j?pEE(8T!mtO0t-ya5FqCFb|9Nzc}=zC4f-!$Wq|V%*{fmt?(nk2!OIpo~$^ z;c(&fGNH*FAfA3XXN&cB=JQbjXg^0QofiAby8{9m2!n$MGJ4JaNi`p%6#!?UNc1i} zP1DWG6-X$XgX*zg0%8)lb`&#ruR&TrSm^+Z^u_z&RNI2o>4};Qd@2utopzDY#=daXeRoRt_8se0To_kk`K9msi zlJ)mmz|b9Wh&p5ccPbj*otX=LwxYSgnR)&pKoH$3odQOkOIvc(>q~e5Xgr^`=8tUs zZjwnLrCfn@+hMY}|Ni!?QF?nM?GgRT`Na8E6lewsNnHkL4jO?8*S|e_dV#l*&xdoJ{_LT(OUG@+h~G(EY?a- zr$V*MbidH5Lvsfh!({18^QU}NXhv77?xjJ|q{YR4T>T}d7Y;jc zRB>*9O!rHZ$jd;@3?67FEuqLQC)b>2b+5qYDmI7r_y@rY0lod9Y<=WQz6V>k^&G&c zTaz)r^}v09Pt?A#9NFf?sDB$ZEyYG&W{F7d$smxrYWh5&$e#lsn}7TL1iNk$!6x}9 zO0@6Rc@(H7bus9+u5RtaVAR*GzIPRz zemWy#nS-P-e$PlpfTi>dTs|W=^RF;pyh5XwpTt(HO{*xWk)%o|}xmkLXX?jq$% zHQqnSc{Q@4i&3}K{v8e!Y!EvQ?66fJNek=mB!k)-01*FfqZ;_&%DM+|D7m2tTquMp z6Lgg(cqt)N5MfyV6NN2ITf)44iNEGK4{yBF>fSE-xE6?7X#_#+(Kz1e@X= zmP;9|A8ne~+SqSNVRApgH+eut!GxixALIFSB~&Pdl)9p*E%%sHWY!NhH&4ACxg~Rv z1IlIYC)upnkM~ak{j=dIN!wP-#=tYr<)L&N`M|?hWNU|4M6;zZymguhF|!l(IU9`EL7XCO%Adv%A6y&?hLDPgF|(=0=}!qd)g)sW3dC}Zo2~{My&t1-V}57{xCU`hHrcT zV;`drXo(F_N`l-V*dQ)RpvcCmUYAc7u`bvYju){l2ml5+Dn6LSfsX0N#&5ltfDJ*zYp>b6scZ-6p;iGrcy*N zoPQGS&?*wGP1s>6wb(znn1mwMd7EsY?0wrnC3kABu_Sx|hy}zGGX5Aiyb>pAhFzSU z{P}h-l{H7*RJhm5ervDE^$r?E?#(-~{$%gMU+>#qhq}^1`Lz=V%3EaYU_Dz)&4u>P z@txU~-oJk(ROy`L@OKthNA5end+%4nstzYt#%lDNXUE@j60loxi|@dnO1_^Wtz(C= ziz<^lr5a-j2}9azmo(@~Sy2+vY^0yACz7hSIbczr(X%etXCzu3pTehi=4zeb#>2*S zSYxIL*Ta{rb`Q#3){y#T87;1xF>&HGTg{Fj3#=#K*uG$GA4l^+hGuR42Pm&QI=KG$ znHyoP)HdIy{=ac|Mi?UHOwLb5HFqSLQwQCA%7ksh>15$JV;WlWD88_wYh++k(7-D} zpi+C(TjxPrTwYS?6pL$0y=Q1xX5fwkd8darjYX4Cc~{+xCw*Noa6r zTsh9o<`E#x9`%z3Ux#ZYapL1_7{gsLiRe*Z2onRFjr^4HW0U>_bZhB~W~lQ*fE z4vb+iNTbr|=sVRaB7xv|r?0lH5Q*NKW?a)6DAo8FU(msy#BNd+vC!t$!Pl^^fWbIu zeq4|P@EIQ_#Or@15KQ{5c8!Od>HN=kedn>i_V>4CAW6?p#SYQ5c7aVeNZt#CPa~ZZF0V*_N6ISu4F9h_4ZWeny zr*7>kmaomQa>cT3tr#Pq8#tFUH8b$;aZ8Qp&1>^o$k;0R(;6ZolvqX}_i5Eq+ zBbbT>11wf9U(Ye(F%mo@Q`B0bqmtPLlmA>^_tR_lM#L| z=PiYV*hK@izxi%LO~`$9!dUSWpl?;*r@$XU35Uf%m5}$H0kPBiqq%3A3la)CT!hR< z3-2_?BwbFy*R>ozoNfrUDE5h`J2rU?GV_3n<-(V4JMJnItX%r{#7D7Ij&wl<=2njN zLwJs+{!V>>q>&mg+soi0#L%>CY|kd;3K#uyU5q z{nI$R?4Kz4h(NSsU!$d-}9r~#W^f8eHgpE*jcq{jy3&EroeI?kphzl#1xL4nRiD0(?ckUuu?E`Y^-u!VFscuIRcqXsi=)I) zLJ9fLo7(5k!1U&HNF($J0~L;^m5ls~g(N>j8Y~5f{Cg`_f385Z=CZ7|>goF?*nwi9 zV6QA$c*SWPb9=v@HDPeOB;(Rz;XxlwJ%bU#wwB)mA>QyPwiSc4#$fAPty$j@D4{@0 z7isJCPAFNmC4(Loo!c*p&G4*w>?3_Eb-iTJ54t%Hh)g&>)eMZ2kLbEKp@1)d0x z1^MdX7EvwXbuAvkpsv+Mz>M|xZ8qr1PP-YZ+gtLG*B1?Z6vEXkc;$5uv93Ms91m8X zFI96$?PZn`ZBMm*%=(QyAdXSb&mp-KPXJlX%+v3R%XmOy0$%!H`uwO`O=OL(JJU;r zgymL}ZeahTwEZFhTiV%?o9I)o)xYfW!n#vxRY%+A@9tlL#Iul7m=AwRFogNidhVmQ zcX%(Tm)sEMw_d4@s(vVc2IpyPIm_U3GczwP;i}(ymLMGL8P`TWL;FhF;#Ng`FD6Qb zfIQ2rtmnOLo6$y83A?BEh*qnpJt#%-OGKlab&}%h`-gPH7296ZSz-Ne#XfP$8Dpjg zo6nX<_67|Um>^L?Dy#{&HdxQuIT{8&QIE?+eIzws%n^SK-J^pRqh15Uxo8wQYT{PM zLJjSZo&IFNdDR8DrWeWROjH(QzM4~gEwVIAv5bWJK+-g3F0Cwfa<^%HutWhH{i zcWNve`+T+o{L<0cuHE$z7#${931wxO0Z~+wSM5eD~=|*H=)!P!&zAt_cY# zwhWv-&y+_P?8FzRe}J04=ukAF;{E|jpb>gY7xgMQ5*=CpRZpp0#n4j7bae2J)|^2V z^_KX4wc>R>jJo!Q@Rx72(4@&V6ucS<6G91bl z=lQ(uLS;+9iXw?aNxFmlbeNt*8y~%09*k>{%f#yC;|< z!;g$`5-6c_!NnSZtTEt~8x2}dPnBoGI6!5=IzK8ziEebTrI*O9PZAE?SM-O!H4f)^ zID_}DMM+a4bfxa@{SV!%b|Lga%2nQ{9^cY~PU-Gt=3D*9fTBl{IP!Y<@{qdpfRN?7 zQPr^CsO2{YKW3CraJj=X;Wo8+*yVGI+j%m-4XywDkK|Jhj8QmS?Y|t=OKGSDQsKJ~ zjYoV01kdU1cU@9e@P=*O8Vqri3qB7-n8WrR;dd|qyiizUXWtlnf0K$zlsrTbwRU+_$@ zFTv!2ZX{cN=+%3jtPIfU8~7?WTq$aSK^BK+@uPw`!*8^W7MC*LYPFxp7nHE(iBLaW zI(AyT)s`yAje8<`%B5ehP75{WZ8-^S|ujILHF;+#i|pUvY-ra+P0n}dUAV8X=oQ2xu; z&Z}dP7q-o##%@nDk*o_(lhS#MuK;W1?Ps8)J|E*;dL$}*z0^0b$hpq;@x*yc zNE!cquEmcZ-V(2XxtaYfBR<0zxM^Ul9{H~Jv?Z0SaYJb(Wjm<#`h(J|>CN1Qk@>Hq z?D{#KfP!9IQn2(&htn8`DUVcXc&v_tk)pSTk;<#8Ot&)208z!1S9Pkj59X}`*;WK> z4oRP!&TJLb*ZqkiTWM60C+p%K7{X>-KK$ss_K{Zh>Ko^@zeLZfdth_qzs5Kh9`QY? za)HnFu;h(VwUQIX$FF0t^~2wBE7fr`K+eQHT+)T?Z%Sb%^P8VW#kaXKq5IXmNQ!0J zd>@>hJ(nF${1uxUln~SldwI{g>^PP(o|9K369~mJPN{t0?Jeb+rY;yl z9_6$7&bNQXh*fJ*<>0k|-m8jbm)TAqs9*UlLKWROcFWiP(dqMGhnl-u~>>(={B%_KbRbFYNDdHrFPJ?nK*V@I4Lsu7Ghm z8tf-$q#+H*TOyD0-duwXODQH@$oEUTD`s*3*`c-bp3D23Nk`PyeVLmBla37jRAc+- znqkxq9IcLWYk;0s^^7UQr&bDEffG&8SKRRrBhl{|2}RzYvClf9X7?zs{Dqnq^3Wi6 zR81(EF9APb2rO;b?Y7o@FO;C!r=>x|1^On*1m|?e@sCW3i!#IXsk?}TD$O^UiegoV zORutiKR0KvaZ{bYFhJp(PaXmPLG$BNX7KXQ(}60At`^w({ecCOgYvG2#V0HKT2C4) z+~lb}JpV8=sf=kWAS-F<_LpeBScjhnd9vBaKJBn5PN&c3s(qmZy0mn5_LP z?ee+&eDltDk#yyOP<`*4!PuFxW$doC5N0G~cQI5X zEu^vyld>yi%~D*9WhnbnnW9qm?NeE@jU{T@h$03l$x^cWoxZ>S=iGDeS>E?~pXWJe zJnS3__67WV*@wE)X~+pX5TmNy98HrAWlAq~3V~M1_1qD>VR(*^3QM~_X_$r|Si0Ax z1LpFHVQNvG8|XZHZf&T+qbJs2S<##A%RTeLecEZBTjF8I2PsFZv98oAK&xBki@xbw zUIR4ox>{=J*l%|5Y0!n`y^;e|1}xCFV{AOHC;Ih7|0dn+eQvEX?-IwLF?5{U#wxGz z9*8}W@wm+}g4ip-#b2a1_gws4?!v3Z?8Ry36c^K=!hOK9udheWp87!R5;z8M*VUPg{JlS*sAJxTq{ZVsaz`;` z6G#d)XN?6F=SV;+ZaIIU5b;1P3%A0B1f_7yXyw!8^tvmjI_%6i^loEYQ9PtT3H48V z{eiZUA*$$O1{l>XwUE^s35^gSPQ7{DwWqCjVv)g$^yt#o%AdA4IGN z9>z`Zy9waZZb|gN^XWPb(xwy$2im>g*kTbnJ7L!B{A>$O17?2H`|F%6{iy+^NY~Qy z9>oj=cNQu%Twfo6yoXq?kemt)-c|(W6dJ)ydhVM?N4r$K0q{RkrI@;XMh!$o>xZQL zb0DYRkiZ{N;T{YEjmh?GWvmtndrSS)DmqUV%0R)S??3T9pq3(0nb$IF(-5g5gJ%^X zIfc4zbgg>rh=*6hE>RVjQg_!b5UQ*8#Jr_1;`9%Pewb+nbvvE9_|8uG-|WzD;7i8~ zldhwH=yriLmijiRNJ273p~JiFF-Aq-d=R@YUWvkMDy^?mja@m?B>?)(uMHB#Qn|hC zoPqTOt1mIg_F?Uv#HvVet}gfB>i&THQrKB8OCOckoQ#g!PN~AHG3Z7tRlz~W69<+O zmHXEFsRv3G09y`ytHzWNhIoR9@dMF3Z)OlZYenNv0|R=zmoqwM-Z_&Fg!Yb@!2(6( zf$93DG%&&!2Rl!LskzWYu5e0ov`BlYcB5Vo8pO`s2A34+XUHcG(Q_NZ#F`UBWU=}u z{NWeUpnA_Ub=CkzgO1ZFE)^{LD>3rccRdH4(~uBY%0+R$jQ%F*d&M#G{+3QvEVaXv z>8xPqEOZq#ldFHY#%b>ZR9&?xna60y29#d#2?l=h`u|>(a!_j~qtt64Z@MGV*M3UDma3(?$EA;EJ15C> z1L87J-0}>Y{iFaOr0-nlw99^jTj8sh%!{%`9E_Wd9 zOd(ng9dfqkn*wB!LsKW!UjWzwp;Xr)L&>McI_OyH*Tch}8mqYtxHjq|=egTk$^Y7a zQz_$%Kx@&$kBd3;m$v)K0h2)gMaLzd%s@dbRXclz=3|$D@RigKK_vvT#+`%{4x=ys zC0>dJQ>q5P<>w~w@acaV)qVT-f>eLE|5BY{st9Q4Wu@7#piKsnTtnvGP(3?gGWy{o zk*OmihjsPfL3xln(TfIJsVAKK_);o@LEUd~ICn^LN#807p^Goyc;T_npN$*BpLHH1 z8{vazG9DdroZR!T<-WgfHL8xvnLT>i4)u7-?*ItfK+_g>&36D`FTpTX{W0Mt!dFx@ zsmxzsWz}BOz7llbaW(_ooMJrhl=Ond7f@3^Bl&)>(|e#rFZ1M z-G3wHiT*Qk?O)^SA*qt#!lE`J73;A_YcyF+dKLqEANUwMOLdq!;+!SAkP!?jqx>^! z5@3Sz6jLkTQh@H^WP2vE3xDPKMS6Ljc9YX;ra@wxKKqh;k30~6s17GQ(|p9H(Eo~( zWF5}~HtQ(R>G6`JOQynDTw38d0MoBLV70cgYdfT5{7ODhz|5pqBKHMP9rX=U$Ju@G zOk^CwcT^U-m&yZK>8;q#x1nq9VVrzx1Ts#QXHfC5? z2x22!ow*b=Mgh!|r<~?wiP1EurTM(1QXZ?1I8&r>Ue0X+`s{;u5poQf`X&e8V>2p0 z3p9xf#Y_j9Wn==FPt^w=LqL~CS4z8%@buHKX+@YA&(rwwLR9CYNM{x6oV@c!X=A`E zv#{wg{x>4VKQ}L8_cUSGUVpP6-h(P?(B~ql`ftftAZm9O^ zziOtGD*Em-U{y&sye!9TL-2s0Xzv|yKM?v*n^zpapKt3lUmk%3QjsQGPsUOv!;Sw! zw=`JlW=j>=2pcRYPjT*H3izQwm=svJsUDo}Q_w@t2$~fC)st9cV8P@&wOg|e9ZI911+gM zcIh}WPKbPA5~{j+gr}^X=g05zYBqK#7zE{9LK&zQFTojptb z(*TMc`)~-DeSNkWzSx_7EJF%ey%%aPIv)8~qs5XA=xWKxL3mWMRiy7AAdIvgkGbWC z$yq8p@I2># zHV%9<6m72cDn_5}gIXT%nns3P*1&}~lQ4}2O4(vW|3hvXC{f{k18>*xk3$5oVaJtz zHu+y_hOAqtq65PzTq;jp8f|R{!4xZWe+JFZ4JdBqS;co%d=*wlRfm~phNZ0gC z7hTZu;%~#Qmwp6=J_nkPtE+0YWNIo6RNK1q`^y8{kg$Za(To;gQBEAo?3(py7Xf%O zz2{rCc!}1f5L15Y^^XfVTXC$xXjS7+hDl56(5^#!2{CK5FaChdO?{(H=bzLwhpc6Kf>U?7%GM zVFhZ;OqDwDG{?@<)i!qKv2<4gWo3G|IxL$t2(9?^ax%~tCy>ZzH*_yaO(_qu!Axo% zq2vQ}fD9HYk4;Kb(ZMN!f3LlNc7NGg@~tqqWi--cO`mO&k2rF;fqxWcZYt_Hc@&3^ zvDt#gqOY2MatmUx4>NSih=hv>z4UN%KfclDlQtMBe~pgw$?3W-d@%$$rD*P4Yi6Q| zj+0XP5(XPaa&D)nP!*u#*qN~*$)NE<-G7B&l(%P2*h~-)+~SJz{d>6Bo28HyQ7hWp zah~G=X5HQH?E_DRoxB?W(o%B?js?k=!~vnRPtIn_{Y~<-7~uPaE_6wMh`EJ^(!CWX ze9&#Un4RcwnPD^^)jI1F#i%QMOXVLRcDUxLy!z_jdXls0eM>nBGvA1eP3yR3j0m|Q zhWQ-vd-~Gt>hu%sxQa`&)vYck7t6UOB0Z- zsvGBYC&ilmpyjpms+(Wd1LoVgZxyYd8=o8cwcGOR^RFi^n~#n+E7hl_eilFrxjAKp z;7J}Yuh9#AQZjvn*^=6IJ7(I^9_DdDlb&2|AI$tyy17U5+Vl(Ag~T|OwYt^Ok}fAR zAGthvqWJ#&qvp|=drqF1bk6Wexvv$@6+ z3F6Mm>UUoXLBZFpZoML0>;|qNYq_kyW#+Ibwz(D2uyVfpQVu#g>0jv%I$Q~Bvw`!w zzLArU1{cB}MGM@76tGAmj8 z5UCrc#aJP9a}uEL7QFNB1t^EL#v}BvHUvveD{XFQdBj6E?{}_{R~yF1xMR&#GQH#* zSr8TB?V3tA<8TP*AwV}=m!2)(A zE^EhE<*GRUgb1d)KNr%11&$|RyQT5K@o}}^E4f7o(#2r)*=@4VWUlzZ%ykMnD!NEs z=uQm1{gKD2Xmsd4?;KRbq$>}fLa=z>hhJGOH>z(UhV~C8#4P>6H0qQVGYz@5!Tt)X zXgk{7i+z(wZ|_H?>)az{p5vLnxpLoB6G~KQI4?=+1S@7p7_z#jUSOJx&{>nAak^L( zmM#aCU?UZZmih6zG4!u_s0fZ{BE$DLniE~qMjpqoQ#(AExO&gu>rz&1*!8-mcLnEb z|G&ME`2!*jyH07-Rhh35^%LSkq>A@aH0@+fsGfUJ&t@uF9$@r+wJp0VN>KeEc9h%_ z5wD&AHe`Y1H${ryW%kEM$!Gy{r)q}R z*d-FM)fx9vVtwC~SOHsK?$`AiVDBi&KE8A%0S7`U{mnJ@zf+*)=}4iqNI7#*iGHi* zDUD7A4!U)k$9q713LqSnN?|~uF3BVp1Qqgez-fcx-j$C^BJ_F$I6^z}*k#O^s<<$; zA0>J}_>~A*Uj}jorVAEke{?T}2SQ;-rT+GdJmCaiS;VzwyC@T?T4gb(S-dZIWR}ec zk*YUMvyr_&agfED*6$3T__m~mfE9YCJe-2WI85aZ9jneVrO+Khc6kc5|25?=`}p;` z740N^YB{kyYsC`&uMp?(;G2awKMd!q_O1O??cj$0D|%BE?XT6A!eT)a%@x(!JoB$9 zYXNv$+LhdCznCBwC3g<$g4jL2`>IR8gPyPIx>_Jc#Lk5(iA5F~wl5=fBG(Tb5*e27 z*_A&A({779KjI^_p<^}R|C|bs^@{;^i{?x@(?HL~VWH3JLnvWi>U~Zv_)PMPis*%} zIn`{jMZppL&=XatM^&k>g+mWI*N5s-{1q<_W-?!{cm0pv6c&S-JB9thS8J1mm9wJ# zQB1oodI&Qd`+JZ53!W)=_{_;8Z|rK06kmb=JAF%I?PBJiQ7|}W%D-eh;Qw+QJn5%# zG+6~J+JU_0s3#^t`@V9phu-;W$RiGE3@99$QQ0!!evDjxsA{o)Fq2gZOO2{(JC#}b z5yb)jcd{!$%bnXwjC#tu@JNyMHP+ZY6ZVDQwdW7BTF|n5F@zSQhw~MWU`_JGmMvB-*I>4 z6T$k(#;PkEsW}?!5~IL4N;%RpX`cte6iLv0-sdUvN*iWQ*(zRMOkC-(Ts$!%j6T-V zR-z}`l-|ZhOI>V?NyPYAbEIi6jCT6UGrWS8hCC2t{$`Ie14BqA9@IV_o=X<#DTf%* zJmMue1`1==6UJL?j@;fQf=3|6({R5Stg98R|3+?-;tyWXGLu8%=EV)23^Q5*$;nHK zt`$ez4EOpjHEWFeOZ`ylK7o}>ByRR;d2npxTF{=6cwR&Ua_1brqb6)0a#`53KYbl< ziN^W_IC>W@3Ldc>vzRbG{?fwDHHP?%_g3zmBX3H~X(=S$Xy9NvXN!;SfUK}{%B9h7 z!u_}q&@8M_)AmwOUIf>e#YU&ah}(0XYgp*#5Zz%~+&NgC1cWJGv)2GRX)nZ(=R4%R_P8mr%}DRJ=V~K%PMrh&gwAqM`#W;EMYVVR z7~%x#I?fu)>z`0w@PB3rN4uZf#Tr7=-PM&-GN`|+mTl}%QFl4sHm}CjnzrJ6D?^#1 z74T&OOts?r7~(ANJMk$4qf_h>8nZny1(=2h;otSEk{Xy4sF5stV3ImTCWII|Zx z?x=e(mg=3(8!_TkyN^RkXj~Uvfswb*M`MR)L8$5Q)RJ(Ac%>CBYr5jQ=8P`(0Bn#) z9bzWk12zR%M$W}1XNppWT-I&G+iTC2itED$IroQ6R%;z&XSv3@G@eUvA(tE6lzxz3 zmMD7&Qw6e_FT`e_g8|(ZPgOiz!m*58t|`=f;3$K2=B5geyV> zrQ0AOeszwWt=43Fgj`NHO*@|!QjjYFN$=}*Ca!a;DlpDL$%agoEyGyQoKA^7+dlj1pCeF8el<0+YflUp z)$SHKHLHPmgq6Awf|}>up1-w3X(K;J)#ji;sO+im&|EQVO?I%Lu}z0ZN-J2xOoCyb zTTr$!Y~b*+rsTIIEM-kQ#P1pDE-{H8;)=}QREwEHE~|C;Qj8z9+#qr$*HRMcjR31> z<5JJQ3CMG>q`ieJ2wxjD0#q<_{*{5eJz-W8xcU$kHSu(o7szGcouN3}QaNA)3eKpx z#ua44w|vW@V6FI24A@$TCH$-j#H$f|*YrSlnbK?#>|kyi5!5ziV;{E~ayi#LT?LrQ z)odg6`?QjXWpnPa4*eJhQ#kz9y!-XZ6UvKwh1(8ev05G*z6>iTg{o8{XA=H7$VMP3 z6+3)e>NiDG2fvCmb+M0<#Mx1hkW@=e@tFhf28$?slALHP)t(@GA1={^7-r^j8Yd!I zvDi|oT7)RoPN=r4DZtSUr3Et`$6S*l_U1aWU)P6%8+m$OsRm0^?cCwKdxFkxyx6&m zLEQl`cMoPxQK98XCBGarMAj9H6J#IYY1<1kYc2VLrBr$hp(6QCT#d~K;6Q$Qs(dXI zw-+k9mkzFvX9bAnYJbz{Ec?}(Hf@-Bo&vE^^w<~V7_8Z=e*&H^R5J z_9}mCS5<)iGKbYrR`ahDk+A}*)&&l$sH8Ss$ZwDmoaxzyDnN**`^2_D-a@+}bq7^? zP{K_5n-s*5ctAY+fG-N$Y*N~Zbe-7NwMr%y9A0iIBt>y!=d64lOsr$5a*PF!2J!n= zUEwiY;Fo`MIAIbQN)T6ph9JmqzpZMQb1*FJ`KwQ>|%59N+o0hgkIGQjq6& z+`7e~8bX+)2SeJEm#XV+1#(v^raBfh(Ca8t{BafI6LNm_2jy7%H#0a?v1wBkstNIW z{E6lYZUFI0X%Y1Zkb}-C4PLVsc^gkWloItO%~9?_GBS^}pU|pRf=RQKVNO59!CPAb zse7pU^;%{K=W&>(b|d%w*{%Q&5sc4i>;aQ51N|SCaOl9-hZBPwFzG7FGC`b{C@Fpg z{*)yezU9NKgP}gfbjjeuJm60!JC%iZ>Tdh8Xu+g|j2LA8Xtt0idvFD78d0)OL>#YR z4jYtEmGxVNp#+extWu3zkCy!LWMZi2K%H>j@>V&1h8KQ^@v#sSKe8Onft|bNt;2J& z1bDqar8|;}9Qvup%;C_XCb6+7;Uvzv9o%-t2hV>!jp;QKjtzd&Qck`nM;{M1p{86Jj86|(? zq}d>tWY4#=Pp^S{Kpu)9!^YD_B9Wq0T~BQDS*0RN(57V)B%|(f?U#sLCJhVxY?Qj;1 z%shuOrXcgKr0L5HPumuRSWsmu-@C2_@co=B*n6GMzd-Hs$;_?a%BgHfS=$39wO*WP z-NV=jp1?UoZ7MH1xCvuN4)W^0-0Pyyfroy|4>Gsy3YUOVY~7n3sb)*W`s~?mVU~)3 zGiUi=O zo4ObU#`oX>f{ksb9K=w6+*Xp%6qH3~FBWBVUzvz+Gk_RUvANj(*ZmUE6V1WwDE-bB zu#Il$9oFs3u%Nx~s?eIb!o!D3Ky>=UssulkhFmGeUduMp%}FSa7Rv?S(uF(>EWEOB zj9rQ zjrDnYBS<;2NWCAa!uM=dTL-NNF1+s7uu|_ZLjq&jc%g&X9Jh-qv_}v$;%XjsM zuuX^YMw>co_6pFe?7Jn=2~BZC-V~4S$<95XLoX|Z)5~E1iq`G(OtHCI!v}uV@NM`R zm>s`jg+M{HEDKm4Iynw*6#U5~rPOwG*(9Q1@dOfJWxK%`S%;q~5mTJBIX#fs8w zvm5e_ZwEKYJUi(Saof_4+e1~q)+0J=eg8?{n}!z2l-z%Uq#*oHh;g(ypx*j6;LEmVw^$2~0yB*`L)!4*A-M30K1?Gr4AU$X z^~aCY_{u|1hAxnJ&U44ALr}5u#dcET8C{l+i^^Q`1V=rqZ zfc1fPZ{Px0q7Q(1>E6%2Dpy>b#~CfP<*-;5i-s6{?ZLWzHpR*S*znRtjNqh05Tjx$P?E8bx5WQ#!dlYB~W z+L-~K9%n^w9;{D-!6JDgpeM}w^2|%o)%FXS0Mc>}Fm}6)B4q2fgsi%XLSn4o;xbiRGCKpCN_ynqevW{2yU@d0`ul7stNH2N@J>Q;P{Whk% zDRLq6+Q!xs%=_!TpUYy$!4K3jO8eL!Go8$tTzPM@)Yiem3mzcyin^j8IPJLRRq-0B zSaIx#$~gOO^x`fd&v;km-;<7FEgoSj2M-bmsCv-&LEtdCoF-}P&K;aR-C60*6n~$|2Rh$2f#Aoip*NC>YDx`qgpyEw^Y^Iz<~9uYmYljIK8pd7up-S zb-AdI7=4uY4c|ALSZX$wybZ1a6rq;lJKz4+W+8!ZD`(y1-qHYhv~2$O0K};p$aSx> zq#3nS+twJn`|l*zvmDRdAbh8~Lhzb-VW~KITLNMTEsMHpDVQ@=Pc(Om8;OU(B+XOp z!0oFRe=njhAltt{;miB*+lhZd6(b+oF%x_ zBeCujK=cLMo}CgmQv59sJ-dyP4cRKtYEkR_vjP@7I(;dmipO=W4AJ` zRVlBy=xYW?8c}L%mVeiK;$Y0le}MD6a*RxC0{v@pX54sEZ3`eWANuwhDI!u&5rfhe z(@N18u%1#=ns&u~Ha1A%p$Q5YJt#E%fz0=MlkV+^z%LwtW*BMCbx(6AHQl7kCkye| zBmj+!WIkb+d7oq@K<#+ndo>iq|<<3v3G zb!vBi;um4|v%E*Q-OxKd^H?!VNuD!*cR=j*=BZXLfO3)N8OV7__m@vS-T{L|w#Isq z>XHOF5^vb+fDmqB^wpCp*Y{F#A*e=}9~k6Yx!20>I&9_^6+aB>q=-41{0)>{`_b0I zt;Yca+WfuK3|?)_TSUc*Iq^i(P?YiNfEoasQu&zbQ_?o4gN=+6=cU!aO@^EJ;Z(d%U zm5C0DIj9#Ye9Q`#p|vNE&&2&Xu3*NDxzAsmUy|C*Kx;$6PK>i%r#F=uh8bo|Ioy>; z(eZoLsITL}_~3}+3yY(@zvqQCRA0Z$oLec;TDhLId6gvxL*+~=cY2?`&Ied^n4*LO z5`sV~E;UmB1)7A>zu@fp*QW3W9$H3i9Sq#vC_lej4^~K$nCOL|Q;#+BS9qIR(OVy5 z4#3Q4{D%Nd?_m?*&}F)Hb+!Li2H&UtGQ_J=F8DQSw2Q6k2TMF+m zA*H`MaKYV5a!JLG|Gnd;SbPAxGL{pHIBX(ukqX5^7H1R#{!4s#JPAm(5_0 zx`!xM|5&p}_z1*YnPbKx<|=)+$1l1N<9qDe|15tJ&S@DAOQ+u6g60|*_t*uP*}>wZUF!OkN0EX z7uFr!i4Id~?7AXBaz@@&t^)Y5?Df?<9L?-)mYuEHFN^*bi#;NZa;q+@CAZ2aHdR-r;;EAdX&<-x0!o@dEuR z|4G{cWsR5LEa2kloLJeo-#_o3+ROl(`>i}h;N+pJ7vD`t#{A;!mxt`)uk5dFKN=q7 z0q2)hhrd1b(f?-LAskHenWT(Yq?Kj&5@Lu1FDJKTw9#)*c9=ae&u#ADv&3D^V&hi3 zMDEMwAm&RHw@Ci2WZe-NwxT`5VU?6GyzUT6P+%B3JZ19AuO32(j!OE5y&i~;Bbn{WPN-#K_kmg?Wwu$>zStJF_}5@31?*@ZY4z6}AlDKc z78_B&Sd7z%js5su?FCFzJTc43O*QN90RV9rA`bHf&6$8II${)^8gv}gPoJN#ZgCa{ zq<*h2Ir@Nn`dgsYo~2qx8wI--o_US7aSkCMAEZ8xPF2&5%QB;JUo6;q^`!Y5tqh#7 zjt*;J{)p;1KAxOIAWHf^8@pFV0RiHD4(^B{!9^qUST3rY+U8Z3g9W}@z<@jcE5fbn790o zc&8t%1_}A6LvGLCF9o2Cd1%PxQiR9zgT+WCOBy{Ix9;&CTul&F%hH_r@gGVYym9XS zN2^#a>OviQ=WyGlfo<-`@3X(*t#Te09SUPq{f&vzKW0Ufd{WgWrCo4~)q*7Zee`U8 zE9U4V2>-=O&aSw~a%#JJB0XCC%0_dy_CCema*U$=23zJ*0lQ5`294%9_!}EjD(I?3 z?*SPOJ2^&_Zu4AemvLYwf2l}*MC9~lu@6RdSY(lR?9FWDg=gk7pNekdT&Rv zP`7Q%3GKRJeaPh!j>VGr->))ul+8_z_ZkqMNuXMN7RLE@^j@3N3dEJH{BGd)U`7NL z6vJdK;Z^nC&9ewNaMhZ&Y1#Kd5JoNwa<-Bd0y@@rKrkobjYdtim|7y#;=4^ zesM^0K=6NE55`wld`BLnq7vvbIu|SUpXcTsy$X)&*IY7Em>U<_+!Dbk)a(J`$gW<` zPbJeE#J|IVYXQ{t0>eM{phWyZ-*uxKt#dxOXQi-nXyNNm^sewRbK0SIPOFk`PkR z8g@J)K{^^m9$pu*54R3RMbN(*Ro1AR72*?pEA9G)fceG)ZQBJ z*l0MkuN;W8+qVGcX7JW;@oK^Sara@)pViG0HDuP2MnJbHuU)U#*)}MYMT=qP46z)N zpYlX_u!H@AAqWs z{y~|CNO>@AMV)o`jZLd2!1k8;%5q2dK%0NPcT(FbSq>wY#U<;o8&O!Qv~A6igtmQ9 zu>HtA*8`pyY7x@Zp}mmdB}5%$unbN;A7%Vb1=&KKae~#y;E>T5uF2>|Y14tf7nAP}#Arh& zgz!aDC7KNzR&1Vb;up(Krx%g7h$vD(bnKqOI@ zT>aw~z%GLZJa$p-%ag8C`TUuga>24++^($u_xX9Pl#DrS+*STp_R`p3_CJB;?+nw) zGx-(|c)EOi z4J{WQt9`T>DPqUU_inuZ;^}i>@R%tx+T)_siY5Aq;6HU$z>uTx$~9Mf)Q%1FwRo_i z#4nTe43{;PHWOB$*~4zc;-S!RZ)yD#tolN4@L#${aPo!MowCLPB({;ve8Z*OFCWoH5r!zH>v#jn6C z0o2IF9Yysw`|noQdjm3K&RlG`oUiO^@{2F&^v@o;;-1CwXf8lh+Bde9uxu`YMaDr> zVyAV{S~+&SC&;mY&?>DsiBrj#7J#m5m)=ra*C2fV=YClFdG^g|Y;%D_Ss$M5x3DV2 zDBk(>dEDP;BWmgQIxn%Gi+I@P0a+4^;K!!jJI$^9Tc`=7E(d|Oj|A}t!V8&d>kS-I z)CHzPf}X9oCDT7_+$|2$2IDoPyC~@$N$^g$u6$ONTqk02<`h7Kp1iA>38N8wE$l#W zJ}(jd*~B~N=Y2rAlu!p<`5yl{`ooOY@8tH(Apbo5@7k=~@>%TY4l-Uh+zsq1QF?)r zvt{uIzjy{Y)x9O8)k#^LIS;gIHXp74?Rh>e0e1M4WxU_a7MfQ#Sy*AY;!w)!p2Hts zs$u8w^4^!$V9zg5n*6el_K%$m*M>(g*r}^E96Q*;>)4XK^`o@=9JFc6%4dQ7RafI$ zMYmd6UH%y_ZfN)2isU9@!%hKr9Wbc;cO-LVR4j;(YR~JdHF@xfhoC&;yubd|y}a$W zs^GtNvdP3zU`tT?6TTI!5Xrm9ZyHC8D6js0u!-cQJ7>nk6*HQ)NlnjRxH}@3sb7|U zYc3n@*up!9O3f)UO53_AqZRz?uzd&t#iRi*b90j!UMG)Fb^q)&_J!wM$ zf#fbJo^R6+(#3`)aDcHgfX*p9E(XEIPulhge~`P&Cl2|weKsK#8}n?P#T$k2`$)3- z90GtWZ0tJf??;yF?7+?OouY1`>%}(KNyNsgIxc33MM_imQ`I(A%#Ub7yXO)_(}D`5 zN&ybI6ynCQh8s99E%C=BscfiH!LKW$;R6Ww!v3quRh4X3z#4N~KP7TZvf>j9;|~M< zxc_v=R`;VKQyTB@wEMN|k6O8qj0Nv^QGJ!ecciUpf8NKWOFTcszIy=VwAi})F?IC- z3*S^-WE0qxS_^^C6us$B@l7#oq(0q)vdR35htA1$R&?sivZA2vmJ9K^al{`koY5S! z8h2Z^e*xMH&1m48;{sy-!=BzfxK*(USrj+)qz_yU!Cy>k(|tiaxbo^icFt2P`6rHM zwD@VY=(}VcX&$T>?b*qu0d5{e;Mn=(AGfPGs0qOMeg!{GIq7zpg2%YkMDMw)al4We zV&HMe+}#qhO6;)te|bv!4Ve{{3XHG#Fj=lxb;jrA=pycPn{Sr1`t9Zp$+)Frz~p(+ z6xeB=0EE58yw{9v?f5Dg+sghOsk>*I=5YAiUqH+<>hB?6^nMtDTyS@?VjQ^GQmJPD zoqoB`Q_oV81qD6v;n=E}+7;hA*zs|wLQc9PBMlUM%Qvvmm^DsQQR=A^vp(MRsy+;( zzF}dJ$+&&Y?_C8aRp6G|X6kn*3G+^X>rn@~oq+Ok%#?OuJN4P_iLvtS3M1Xdo0p|5 z49+6+`?n!ft#4aH*}ImEA~Ksnhy<Q1vlpmupxRD0%z7t1l{EQrC(V&RCdi3H8(+)V-*PT;?Ktzu)pZ zJZ!j!)#AUycfLACcWn5vD8z5=&bNmZp8IDA{`>dpV6)550^9rhZ0`Hp=&%#o7JEp< z^8}moZ5cS_8#aNTCbM0{r*5w<)Ex|!^3~Fv;P6E*aKCNP=Hu=jRu1JG)-28n+af-^tUhWs&Bs$2 zPyS}Cw}!6yO`xGv=s^iK`Lb3bRsLsJMeS?qQ3Zy%dWPs`l(ZJ@1$)Erubhf;1MOf$ zCxNeNV$DAG`f0tOg|mhZHq-`p;^?Cy{b>4xVxVlGxE8#6z7J0*EX&a_pf(&IWl~2% z-kg?aK$*`q1wR*AnyN62DF#N-MM1$#UlwZjF^*l4MX?@}Ter$|Ga7_58gAcGkxh-; z)mcl4H35G?-1+QIA~8slKRfv`d}Qh5;aj4yAO(}?97n9GcIfPDaAqcH|aFS2YYk>kiyTd zz(bR@m$g`6Wc~#QVd3Ck*`vz)N@}y-UZMGM(0-2e&Ka!D#xEV8V4W~LW=+!MFwna& zb!t*#g6N{v!E$DWM;6rTP&G6JeH&fiJ8+=L;o$9A|=XuY?M+;ir zs54gZ%1Dv&xCM+s5k0YL6TiB{E*UyBBlK||Br=b7cHLrvVPFjlbt3_x(qIq0XMzI(Z6iebvy>_Q0Wpp4erE38P`tqW>m4ABuWSv&ZQPi1a^29P0X3x>~JxBytu+@=DM%* zwzFOUi#Mw^sj=%r*5_%vF9C8IntcvLo?=cZsV&$w$i#ro>N225s}DwyMc&@5YY;kWp5m-h7(^Irxm#$bqUo_8jz?wr+`hn@`LXPv!b9ca^} zy(@&<<-971L^icm((H!S_I}zQaTm%a-a;3Q+gjA(L95vDM&a8B;07C0QbCvS?G$-Z zK**Z$#9L&(4%u&&^o_~G2v)y$&~=#?(P>IM?`nDGZFK8k%oX{Xl}BxwF($w>D%(T{w58drAaADZw*=%u`IM?p8MRT6R4Ke&Ei#Dcl62qnZ+_w0HRc@sc(k zeeD)j4XY|w6Y{-Hf56rE?heavM`-YWX>?rz9GY7qF;wQT>`RD{Sv-Ku7fO7LicR@o zT_nZ8Up(0`qj}?xdi{A=;#jrHrui?{)*cF%55JXFnd>Z9Y}`)^(yT8^HuPH5@!~CE zI20V%NCeUFBHkhFaoDQ)LB#s%tpeI5 zVEp0GLD9uVgAv}$WoC(74WP20DZ;BkgjU%tzqXTbXxy7u;@m~iSRb7Hy^LGWWfd%G z?QqhNQW!cWrVibK^U9X_XC^IL@+mx>7`|#@6ZRbsJ(H8GIXn+{Sv)z_zWrxn7rW)& zh8^+8#!EH$2M@?Ufoyn+yOIE1>$WW2BBi9qFxc3}qH$ zn!|ilql{u>vBdJ|rs6IW@}g!e3L1Sp2!#}u78qF4=EAzi0P-1ca_>NNcocqoE_sr( z@tmcTSR3+d`Eckvv<+~uy^v}`?})9;pOfcF3B5Oo%tIC=!S{nw{cM%mz9>B|cDNy> zw);SK(*Wj5FtPUVX>UKzEBi%0Ct-b9Y}zYVQ@w)<$y`3s9IjLQzh6GH2dwXseQV_Q z^SB(9T@2Mo2s2^<@-@eGqqUUwT}(MtbB-c_-uq_g3hDrDq-)*Il`E+dV#rMzuB*zM z<-5K#C~Yt=n+D|U=78Q7&&*Kr& z!D^A8O;#T;kw|v=aSA4-JG<3hQg!(ywRm1m?v>gxuTHXfH7lwJ@fGAOK}BSB1Sn7U zI>W2E@(k1OW$6M!FI$6VQ%y~vQH7N&t-gW;)6cdJjO1O5Nw3V`C4*H==SieYd?1HclY$$Fhh<{&k`Pt;jPw57RERjOgL!$KRae>zz zJQ?z@dMl27UkO3x<#~^NTjKLMkG(|EK1}UE#+pSZC{ur}=RO1gM4}Aw(=k4%dO}ZY z?_y5e_8~bl=Bii4Iy9@%V{ne>_$VM~?$Ze!KpOXoM)@xiKX8j=%y{}%5ADI#%Xsi0 zV|ghVFF0OSc1`!-=zjj6CDU z*5@7pTHcH9iMciwsIem|-lxDl%|Z{$I1+j3v)HWW4ZEws$o##?H$$uGWa|MgVn~wH zY`N>bo-~Evi0^G3dI4$QU4AuWy*&x%Bk~Md4d<`#edfQ_tH|JPV+i&?`Kr>P-MN07 z==kuX6VM`O8b18QK+nn}uCE4?TV**RS{S(Ju&GaVGsX~V^cUSKo!ObW;PL%0*2kQc zsw`R@=Fc%NJ)z0AD_507e`5Q8G<|nG)!+X(*WM%9^HTPfE#lhZO_EjixEW<Vgn@SA=(@XMWH5R)R<8&eP6r4lr!j`!0;- zjIB4`QtMSL+exX0E_o%8O}^Tl%z`~pd_PLkMUznU!!ejDpWPuM$y-N7v`xRQR7`zf zuQGs1{MapJrRyrQOQkCo!HUYuG+lc0`=3MY0;|A2 zG-*mbKOw0hhR6QWzztV;GCFf*$TV)3?(#S0qiQa6WRV)hJYU``PW4S%;fyaSlI8&F z+aOczmxYEB0c`B|dz=2VDQKYu@-td<(=fb*dynf+vRqsaP47ABStXAieXEl2)8V-S zbRJN(G$>{VWMlE^S_ywnfj^LBq`<_`Nj6lSSDNtR8DWyo+WNg`w2E2xht@|^7Tg{M zc9Yfs@5pgd(nSPHdZT+)XK~q+03?|AQzGSrO}wBZnh>bC(5swJ>=1RTOEcUNL#q{q z6Q^_fiyNiFi^{6Wj6?KTeI0g|&-9L;P|H8pvK8&QSZ9#aOm@Uq+WFbQ!Ur1Q@ii2) z6S7eX*Z|`Ti$aqZ=mv1#CSS3Ouk04yB;yv-bRO7z=Cn}A!nZ(eMhX30`a^_G4kIH2 z_KH)=LQlr3_To)NTgv5{oBOlLH{XK7K~q8$v#VhFhJ9+zxLxu|V${9{7fR5HiM5{l z(1(j(i~XV5`Zrgx|FoRrVA6cTFL{$C9izL)gu&I`tAOxG4PEj?AHlBO^8}G z>lWhM>yg1hkKwf~fX6{m9wJJQL;rhvHRdE&tlL8bS4xH+vUp|N$fpIn)CpNWzM{Ou z2aF7ms#y(liTN$c6`(p+?vNrpiA&+D%nhFY%wSVa z|CzbhipLyVuq99c4QiAl`4d_$C&fbFc1se;0&u2{5<1^74Y6`>=vOW@GLC_TP&&5o z;0Gp6Cu6vq@{E-~jd#y70Oyx-C3W1ti3jr>w1Atc_=Ww%wMDTI*ijL~E>ju?#TslK zb21oxk=-0U30Ur$3y>qd1#yF)|`7rSAhIB(-`$wNw#C{&Cad6hts?(4b21U^{C>5p^P{j3&L8`P) zpi;J%lWT$o{Ohg{-6pO3dqP#=Pze(YFn`$%EWp{jw_uU#+aBBbJvrU}0>q?i#=~PI z>$+ZTX|Wqvy9ECA)$_=ce~#f=T^$+>*x3(fUWKvi7WcA_Qv0z0x8W)cvJ!pLu$4;Y(#3>%DRJnY?&KcVk?;u7F9pZH~ zKW^tsa1d}lKpSiZA5=kH%`Z$nOO1<8l86>+<`!LXdnkz}%@oG2Y3&j+=eVlhQb~uJ z`fvS5R;Z3@&Tx!eEW~eGJJa}(hyl7w7}wI%b)~LiY6WU0Uh+X(1kRfHV?x-kp12-b z3zooM0tG^HG3W(U3xZ+Ep$img-R}yl3BT>-AQ7F z2i*sgSR?(+s`IsB-qsp0Z+)Op?+!!^{XL6nflx*9Z++KWb(mIIv!{WRyZVC$hLgE7)Qd7~n802y5*6zZ)^V|2~z*7dHHR3a#a8aZ1JX*eML~| z?T4FliuFeZ5d}5%;*7m%fq^8)UxkjRwqP!_46RcChL}&9^AU=3TU5mpYlV-Wdhx-Q@%V5$ktC%X4RuSwN|Xj)5QZN2ZzeugfQ( zxvD3k;;18qk3+k|SL7K`DqtIemxExrT49bg$a_AIzSNp!m;XFeH zHqc&L^%Z4jl!MN6&o(1XG?E zcWM-~U`36)9eUfVmONQYyar&n7* zWHT^er9pK@!ofk^ZK|-)C$j>EBl076N<>q+irdVU0F|Tsk*@?5Ftkg`_F}m z`~J{Sr!hgcCM^v@IRE7a=@V+i&{VtusEafuWWZkk3v-cX-66VCkD4X@pcjf6?dKax zccaCI>)if!59!Fv5DaOhEuxdISCBbv{}RDLM5(8OL9d`AS)T>!c@zQnSp-_Y01g?j zmb-9wxCboknCEp!xu&DCL=;8odcT@xJX@VyI#g@t2y>= z=f$*{#wOpHi3clM89&`ut zw+XtYOIJ(xfW#v_fTb&P;P0%__j~)G+=d+d5~3p|a5Y~~9B_;yzZpZ6HiI2!H3ILO z71Q77L7wxwdfw0;ibHxkAF<{ho!la2`y#|AJ{U=Nv_tdnz}&3xl`ibiNCS45QSi(}X{>vdO-zh~# zn#B?tvMby5ENhO3>Zrhk0j1`G)YJMK#KWO48`|1+L~xciu{f5qq?+oRlcZWN`j{gO zemT6VXCatM4&sy#&gfhNWJ6Fhrn@AaaWwr{p^*>kXt%CNWdo0^nu7d4nlN^tOlisk zmvab*q&Jn&qfz8=HQ^0gXGHKJ3Z)eYibEP!H1jR0uE9fH$3Df@=MLUc2T`LJ*L%YY zA8~XeQ5KDqmu-sbY$oQnqmgnMQAoM`Qd^(yOWETKTqkWMUzOlnG&za#1!)?e%3#tT z&2l@P#TrXqQU5d2dKC!Arc<&vM;8F&-!+%ae15~!?2H;Z0v3$HEh8RJj|j1S-3+C9 zMC#99b<-ue-$)vk$ymQIB9i`VNT(0g%(4<5KKn2i)KwQ`4fioF2nhJ|Rox`IYV1xW zeqi^bKg@H$3{rT?4BjVIdfxc*K5l{Z2}Rcx+SvRt07MRc@q!|Lrah+;4A1-kk8?@;K7KcHA6waSz2n%;|CG`|KH+*`*el}2WOoq+?B zQmdhBHXlXuL2v3?_PJR;J%Lu>^Lz8kPOgiqWYqA$`?zp)ORUg^hN>x8X!8mf1>&y* zmyZ?LKT{rC6m!762O*=6Tn1x(AoW}8HnzZVeQd)apU{{If)1I3ggf0r&?!lWg6_)E zA>NVAb+p`Z8)u}OS)nxm1`GmgO%Q=IVmfa{b0FZQt!x*Z@~h6w;CQbym_Cy`>rIg} zZ1@yLBth#hl9C+kUKeqfUO(p^yfC#s%LS1TFugzxvz)Op(83&YEJAcwyH>SdVIjK_`^IXwztz^G+3i=#=pil|u{lCqX5h{NBk1`75`yF3sBWnA8EqeU>1y))vTjhdh-rF8|M58X>za*|%gga5Wm{mZFL-J8B#;XZXGW$!r{kLv{Ck%+81>>& zDOPO$azT*}2FFLl?rXt*13~K5XOe8AX8h^tqa+`7;Ao^Rr`2tJ^Yj2e0v`4t&_-SR#EehBw*5)Km|c}bc&rd}kvC$~7L?Rm=A zX&)V^ppzs=MCRHR*{>QJF6VOy9!3@*TPTQ-UB-i*oZBR)DA%;Q^+cm3=Gd_mBu z&s{MwhQkb{OE1vtyMIGwAZnNba0iRBNxuoCx%6b;fg+bk(aE#d%>d%zOW!3b z<3lZ64KcU&t2@P`%1US%3Jy#GrB7kF>HNN4zp%dx%a2vfZF8OSS^G(Y9wwCQ--tLC zZJ(_!kP-pCI!#evpOrq)x~A5l^ha)pNMbl?@Tn&awa?XoY|MA0<6@1S z&Q;~$Yz&|T9su0`{;q=JXQ;5rWe~6^5|EAU0MKlG`sjP0E_;s%)oH+B2ssJRk)3R# z@PJU)JCDS-6%roBFV1g#9+I(t2c0&>GU+(LQx1u<^_+`? zVNO2B@BiAW8FyUUTtX{A7)CytEkB!dlCNZG^=b;RvHt7{w{Eyodc&XEdF9j5Ni7=} zX6yTTlwGZ~%5%9-+BmIctOA6R2AF=7#hmlEW+swgNL}9htfH7eC6JOKo<`Wjv>0j^i~vb=j(BH$Y^zUL6LpXxt{_~ znvN6%$<(y=p1EYS+{inqGOObY7e@=!lp~^AU?-lDlfyz zYhdv;{C6cK=)WpKd_#T3o}v|mev%QFGKeFt-dG(nc1QFX8$aQL?g>DkPz65W2Nq~` z_reR6d^=)!RPQy@d0w4tuu5#YUce+MBTehoD-!wi=Yq_ucf23=kb+E^Q#A0e++}dj zyA!*3$W2eb0=FEDixLJTYk3`UI=Mf+>4N6ty~Ez0RkUO%kGZLa5x2=}p;D-hV+iuq zyO*%vF{z$4gWTuT@lHlbFE%9EP^@aQ{}9>LH9nj#RsAOg0D*!}Uk=S4Nr%gJG+EU3 z(z?Y>Z`uZp9(LdUy_pUdh7>u`R6m$$O2pzsfOJ1!f0RTi${8&;I3?DYSv{wO7Nst8eoN;teOR`<8uTY|;30i8Hg@xAm7(~I6+4TFqtaWDf^=IH&$6Iw9Ch64 z`X!-vzd@Kj&7|2}tLx4AB`lRB#~5^eXZK7CcLCG|BY+?b&J+iDF`2%Mhq#008BZ+{$#(&iN^ep&A;f-=?riHH|LDoNB2i%>%h1C0^ihw zc_ds?Fj%wc*1+(i?n0VFPJ2#dT6@cv>x1{~({H2G$`@0H3aPS3KP2G-R@K>SeVrou}LxTcsJD1;kV?w+pkNw8wnI&zO12#0+t?T+l)yV2W zusdE=y2M!W0c&~D3*hgTqRTlWwelx!dkU6=`5{<`STO#k0+fqw3p;B9yR}MD>TlS+6_6(axCiQ4fG4<`7LZ z4HN((YBMIGt@DpqsJ?CCIe4dSLV)`HFZayZ%hrl;pDB-c$d=P)ScdzB3M}T8_j-~X zJ9|hnmhBiAYh&H4>)Q&kSN|n2XTjESQ zmO=pI?Q4H+B?HxdTh!ovyX@O@9IHcGp-T)L8L=EX5(K-goyjxPR>> ziC2rqdIQBRWICT1UV?pG-E(L0@AdHbnwxyhw9X3SXhEMxJSOH5GyoWQC2)e_9;~5# z4RNISE|}CAXb58|q4q04-`x9{FcTq8{8+C$o^f8lggZDa*!$^=`;MZ}HaK=pK`PXn z>F;eAj2*OCjcA;|{u}mc`SN|2U(^mMq+X@ja>;boe)#mM5(Ms zB~`ex+Sl&U=^`E|e&&8gj17)Xl0}Q@aGiuQgEZogK`2ehrO zdI$GevDBv1Q&7YMyaXvNSgAf<@v{rgI)Vg9C$Xb*x#E3hC6n(ohkTKJ6{5C!JP@4t(q-%xA=7~yNdBP5-TBA-_HM8JexYRiTNOS3wXtP zS3tsKqU7D7_U;3fÕ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 KelF{r5}E)&sbF9L diff --git a/public/assets/Section/Logo_CUBoulder.png b/public/assets/Section/Logo_CUBoulder.png deleted file mode 100644 index 7802cbfce9b47d1f6e64685ac4080a7d891d123d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11689 zcmb_?XIPU#v-U$15kaMhbfpUclqx-l^xlg!r3na82p}a?JJOqUlmI4lkQTa%^cH%J z(nA$OF+kuvzUTY>y?+kZ74l@WJ3Bjb&pn%+eP?8#Nq33u5&!^n+FB1x0DxQv0LX4! zya2Z3$4vbN-)Np`S^EM2MEBo|tUxIh1vZlTnrPk!$_6;_;0H=KRee zMHhFTZc0x*bG*Gt3cOLwgg@Lshy0#;lawQS#Wg4kzbbJ1P%&%9`kkx--$JW9Q>v{K#m9R2LQ&ZH3GO`g%@yt*Owc;2Xz7$lC<@zP zE0~+J^GF3K)$=Gz!sS)5q?4oNUh&pszoRJbQ>cC5a>__+bR@shPi!Z5Sje$#I|Jab zN(n8$#>aeeI0IYGgtf?#6ud%{GG$>shldNlmRd<$Fm71mPV0H-14#~mdsK)_Nh5wq z{9!dbBqYS98t&s$bqDu`JM@LT`zVA=NG*?YpGnokk5U)7&uc^;^!6r78MMT$Yv4Gw z_)(5_hH#^c$>ChLv@X4Iq=8wmNz45Eph%f&x%bj6HEA_iQO7_a=%J=ZHVtnjr_QL5YLc_+I^H zhmb+9M=%We5^mz#qo^sh>F|zt?(@H$c$~Zyj}f`iYbcG?HF=}^zE3p)b45{Ld|qLv ziFadVC+xgYF=$^4$kV6PX}j=ZCEbk@Fyf40s8IEu!|;O$NHITH$%H9yS5pCYH;u?; z-nNhsQf%Gm_lqB)G|-~8J~{x1kAl(wz)k811^|H4lY?Lg=b!{b3Xr>)4F31IqXIQai`#aHk#?Kw{Ct`nCJam_~ z0gg`u*1*L9H{^|u7rD=c5c{AZ%m8>Cl%`E5=#03!Jmr>~g5LK5entOl!d~g33a`Bj z&Iu~xkqkgS8Wdq`K(uHlBA?}SJM+Mr4^m&6)GB+yV1{K5tzvc<#7XVu&JJz(GU&#N zo9}t>BDuc=kXu_@19hE5!YUP1<*E=_*TJuL3LgJ!bbdqVu7gq9jgK;eg@W>B16KRlej_mNP@8e0A2r<{a(V}51Vgy3q0+%9{^d$e z;0h~QMG&Ybq~3qa2Cv8>W*gt!tb{jVQkS@KnJ@YKcQrXVxdgEo4PN3xwD_e}Ic4SR z0128$>Dd149wb|n8q#|)nVz1WkBRduoKtA7{<)e!(mTM44s^H$_WPSF1@sw=WM<$R z9r+QUbN1GTc~Lq6C7~x?4{1+?E9$a`DPgotyRko5bv$;iF@(d1s z2;}Mh1Gt=`qGI;(6GbjsV4qGO_79?8jLBu%R&&F|5c|33r$zqrTuMQFz>o~ckQ8g- z$T%+LkQee~P>13D3;VO(-J8Sq&JKpF%I3sT;CcKq!PrS8EsKC&l~P@1&}S{AX(DJHV^!CTUx;S4XPlHbxIA7TP= z#pqrkb<^t7o16bjGI3WSuT6NU> zWQ6d$SHR<0Ao#p|gI~Wz;8$hR^=$gZfl<{F_KMGaQSfqR>F;Df2AJ|JZh&0>732b| z=O8r?aUBbhc|xgm3!{$OcS4U8Xtp-WTT?+_uaX0q|A>*1;OOq@xl#3!nFe?&1o}N@ z&G9w~CPX&Z7-0CX2^8?(WAXA8Adki0-#=32iR??zR~N(k!PJz;;yvGV8yJ$6YW^o9 zPlKintN7v%RQY66k}SLhH1p7; zq{Eq_c82RpAn5jfvcnWZv*)~lV~_x$qIKSLiJlW>*=HmWVhj+uwVT>77Q1{T1yaPa ztZR3-60qU~LsO?2#M>TLS6sA7g@c|Z)n`%_yS-iZK_mYa@qZ)G0qk|@c0sIP-hQ`W z?o~*j50!RV2H!vQqP@Jl=B@+HAind4j&NbE#Zd*^q&3Y~?O0821pN4@kXqL~3OQjP ztl!$S3+_F(X~XBI7yzN?s{`3vzN-T%q=S(E%I@8L^AMIhg$dH!-r{pxdkK=BJj_zh!R>Q%C_IXZy^%H zrT?wPkKm|1&IFp`pIP8MbgA?sj`+xubSW)N_66-XU~2h4{o8wi)L!6v}XO+Cjb z@N%7p@(d;Xox7|w78aQEL#%trUPl$>alKB_1|IG(CaYgmyy5dfI5e1D_26$vkOANr zwFc!Q?G$D;2ic*e3}*x!M&Q$F3)A@$#`2tnBlq-u9RR7lufUU68Pd77gG~jQaAgLF zKE{yV`TE=a*QjQ!<)HBZ1e5NbXyAY}eQfVZaQ#lZK!3dNhVftbI6fCcq=$o9HvDjn zaq1>PUR#j7fd6j9Mq5yDqQS(E{a|CmV+cQ%jPVDDyfU_ZCFxPF88naC-thmjGd){Wxqcp)q>kTcLk1GhYlA|2X3fNjTejBvAAC z1Q}+Z&;b?KDN@+qAw&P$$=voYnP^Srzbmb+w&BH@)tq}l!7^j?bS?Zg$&gyFt|Sib zH8nY!LH6gt$U}-1kGRS&GEhu8j-doYJHAnHnat6{Z!-h=fc%hG0^gKd=E+yRQs1EE zO8PX<0@#C5SaEwZBiSXUL$cO>BjoE?m{x#o9mTh17rHQ@ga?eS%*S|rgF*)r=Vp@e z!|W1$2NAnqXX;nfz#WL~)OVby`gQ!}@yLevt?gi^`g4;a=@3oX{H zVJ<|oYB#w#XW&}y^OP6m0h51&XiK+P_F&HnA|CEP{ zK$m#aLxs}13r!b7`7 zuB#2tU-=p8x72asv%2#~9kC6lY57)^^u^@S&0nm=$Fa$7ck&heOBRFa_^;Mj{Yl}n z5*Rc!$C;V`jX))S`^KvhmD=)VW$u%?ACpk}*G=vhkccmAoqBD44(9#bhw^`{47n)^ zGRNg3soQdhZ>vl@T+}vO5hyL`%gJURtM02@D#WUndDtIzP`Pi=q6JRwr!OBN1zd6r zzpQ5#j>Og|RSBo)lkG_knm#RRw$O)p98zGZjFJO`?U%n4Pcjf}!j#LoK9o3LSZTJS zQB!$+Gx&a)-Q3o*?jS_t6Ib)o`j?wBSoo(r0^37^h6MXpgDW2{(600jVBfUQs7G&~c)&&=I1Dg7|Br$g~wQi(wY$`E zL|$IZb7gT?Lw$0zKB+^h?>UD}_CGp?akgE-?wH|UNUct1R^5ABECXB6)yrAYe}5=R za}XS`UefwF)Ye6hZ`+M;{pf(`^)cAqNW?xLIWW$Le-ijbr;L1bbKQ6SEkw6GB-tSb zTg$s;#b#11@~ylMTpJ-_9Z=Ifl{wdpP0<2oHN_8aA-rOLSfIMN3CNnCo_a``Ki;%rBjco zmW#LaVVw!*S{5%e#;O_*anLbwhh|S&vwk*yY0vpeVh+pxj@(XtjN*h!kC;_rdEk7N zi^GzZZ+ueGq@-aP$ru%4T)pSM-ql$T;a=}1I(w8loNMR|7E!s&^v4zZZ{LL7Qpgu! z6hc)~8x^>*Ek9kuMrj6aTh&Z5-AjIL_DX}rtafQLsT~L z(&(n9H%qwk$+SIesj^I`y`*My(x%oY=@qa3$wyYL-sDE%QzLVcj|cu7a#)nq^>}pP zH!mHkHTJKN9)w9b224v5wHrCThQ-^m%k)CRDjNo(_M3epw@GI`c86PXSOt?%m)zpZ zT&Q*Z$TIkA=2R7*kT*KZN!@C-969LY2<+Ear+s$*{ZHNCDdYvjJ$vd(-sZ`KmAnNB z%^ZTXn9$h5J1OCh0qc_%#xZ^tXA!pp9^I|kV~D1%dEru)R$5(N=NS@*+BqD6jPMy% z#ijp5*qFU?5};gGwx%l(SXQ3;$()+&Pb5ihC|zzAZyfq|#y&n3W`30ElV(~oKr5g$ z;V(qDXBIeBMEE*#le-4?!$^8iTW;p_xO$dN(-WmC>;c|4_*d5;)We9#GMu2aC`_%R zGjA#aSTypiS73+RpqFjk;W!E4z0-r)H44egLm$XyZzGPYMd*7a$}pcW7rl zvOJohvS+2a1?`5wxFzRbp*8KjwWE_2Zj?5+O5kHlrJ6IZjO~#ZWPYksW8s)7e%={Y zW5u=RM_Jl$9xXVF@~AIQX>@fja!z-2$<-cIe%FZ&w>cF}Nfj6V1GC8%72Mn_+dTD5 zbDuV1GurmqC{!9jQ|nN;Lq#p3Q?nI|DRtC5=LH0b2;9!rWZA8ZXPY|`kdG7QcLvVm zkmR5_mE$jrE?lV=`ju%z(BQ($(j_<5RcqQD){1O#kG}M=C83{@O13BD=tn^8PDh)9oa;c&E8a?oNIJOA5j~imws(c=3^vS;wAP%~57-%0ufs zxN|=@aknu6`z@YRi&)})_yoP{XV@0FGogJ+Pb&~|% z(g>-%>*f0amsYYZ`ddA?ghb)%sTn1w)N=H~CFQ#zC}nyddunMFu*mkPGjvisJ*;F}LEvZXmRSwXi!Wl5XkDcF zQ4e`b(#AazAwK$3whn730mE}!Ef+FLE2L|t*S*&`s!{k%)j&7@v}kiH>-Z&CbSs9J zL2!KI2+2y~EORMj#9yn<7EG^0d#{?hrVA0qAJ{BeIWYVUbj8TXG?qUeGajm@;c(HL zIe}?PKh@}YTRPGH`q7G9pv1n@S3>(QkXj5J-(KP}t1xyX?nKloNfuse8MIu095Hix+s zUM0=Wm)t2w7>6l53q*N#p|gUwBt+Nhomc9$SIQ@D8|m;}4t7|^<2jzr6}cBHo^ zHLb3E6bTn1SggGbe%yRm%BjnC*-S2>gXC*k3N_WRTcP%x$dQtBja9gKQQWG0=7#NX z3-m43Co{ILT7kw{4;zIN(X2jxMFpIB&!2fkH|&yJS;bqWod@I+?Y=35$ma5ydb#D@ z-D;T#lM&<3jlVpq7>=IQ88BxW@oXH}(R2;#1-APRzZ-QPcXvp@d%Zv^Qnx)c_NU7V z@N3QRbB?)$^-#+~3}e-d1;;&ci!fG(4L?4TYwk+{hWY2+@*5RVrSB+L?tL263_RRL z?T5?7O&V4RIi0sm-@^rE=j)9;tIbmJUcA+sC>J`ueoa8+zGlnRiX`G-H(Ojdk`7!G>Qs zx$=nma5$CPwylW};C4Z+1GIfw#~ZX8eklTR2I)A9Lq0h6=Zx_4O zSyxcDmI9nLRn*}Cr`#DR$U;a*+`A&glg{Z&utCbRBqbbRVs;iXU7efH?oaRDQ=!!1 z9I>3hN0bD#oxZtlDRgt857)_G^W-q@k&tw*=#p+OpAtHiodttYNx1Fo_vfmd>$`rq zO@rHw-OmS| z(kFxFG;(7k-hCBJ7#q@%G!^xbxiE82lCIR62XC+jNF*+QF;yFRi+9b-9Ndq;g|Qu3 z&P2p^Noos{j218m>KV-6U47Za*lR+fou3Y-i+JX9kBrsU63c(_QfAg z!&e%m&-6&_*}^3d!NI39_{N{NY7)V zWGq%a^_^?+2i$7Za(hSnx!?ZK==fF{)Ip&6%4)>i>Bnc+U&KB)6sY15*A13$O)URD zoU1d^X`7T}Zs+fnYB!V8wXWkVSEG}i%)av3`y*lZ0cInOwcCduTUpdAF{IwuYBQ*i z(z7O{GSD<0X6Un0lWDDCGH~|k>)k>vmMz<8ca- zls!h*CyK>$=oRX_boqQClxr_`7_^m2lkZN||L_j-MeK6A=X!FwsQgM2+# z`g=HBv>uY4_hiHebv%EBv`g`x+Q?k$OS3AE%6-e>V)vHhh7*`SrWt*5FzGwnmDE*I z4CR@teB56P723Qo zrEPK)EWckz#BvDv-MB zg=z*1bY?~(_0QuCzqb-$kDKZ5P9L!fwDq3NV{R0Q*4pDPGVz(yh;5P>LuTHuK2Mcg zb7NmVT&(}WEF@~?={NL7sMbEfpQ=eOmU=lgd%x$WK~JHV?8s3=>U>-C$9)>3NCCQR z(>^NVkjYx<ErB!E1Ab@;s}$6AD6$SGPCrtPjok?{H&d7@m=h5JFz%UFmuFO=wrLICu(q?vjVrA z+;2+Xt39wH*BX)gik<6ChpiJ3r7k?4=_tz2*W*UK2xrFZ8^sB&-(?Qdw1d$e9HxGU zkJzyX^TyFOsBSn%lzpeV{NRwyN-X7P;Z&meVWtg4Fj5JlolWve@n)>CI_xlsLO(M= z$FC&VNI|TBDhu3CX)kj!3*=yN@;uvM2p3VAmn`(wagE-q}W5 zcc!#=SZv=j~<+(XgZvSSA6 zb&Fj`dCuuZ5sBFYMr>U~u>!pC(cNncvPuKphSqsZ3aRf3K1s!7T4aoTPJa`tN9l<% z-sbLm^lEu99y;nn&ac2}m*mXdS2OLHa^i??<~Hw$GNrndtY_m7omvyN?3e%Krcb+) z{hvMSOhhk&Mk`zN>$XCRA)hXC)hpr%yV0Ri=mBR4oO# z!f4DNb!KM!*omH5c_8j8kkLF46*m%=$4h(PH{Q-W(jrcLu(gyv%)E3%D1HCXckf!T zSZ)AMdMZS=W+hH>!VPw$phLAG`CAwo^>o$9ER@v;nH)e^)}J^t83R$0jhGZjai~W2 z9gXLv*eS3Qqp$bo5QCiJT%v1>COTp-F$par3j(P| zJ^XX3!qiTB>_XR$c+F?8Kuop^oyvjfCAX)dDpI-nk~_phOMkn459*$Rxb-!4j z2DNOaG`29GydQm7KCc|8FUf*Q`dC!NE6Pj%*o7*>6`)bI6>Epw7}z9VnjW+xlhMYz`E6u z_gtf7KT&m}O+7YFb8ksj>YOX6h3G2=QbT8Fl+%o|1>C^A+VMGLy9)kzS#zn|Kc+)P zWq#Fk@HDF{$w?~M;4P>2IwGXNhZQ|*o~}P@Nhe=0^-lYyhqkni+{XBQe_-75D(_fU zK1UHW`xgj+3Ycm0jG&u-{${K(eqFT1bC5iB2rAxRcm z*d*+~%}A*{GQW2mz@`fb&z`XtzdtdQo`nhbHF%+>{owB5PD7k6%`Y8(Cup?Yn zoC57eHW#gPM>~xfYdS6;QE+MLqhB?W&3sPeWTe>U z+nFiZVJ4b;ZLB5FGJ>MuHO{GIZ)eT#!rDSNM8$mULyD6M`a*<>K#V}=7s(rCbG8Mp zoDxpy=0yz|k}E4?c9<*`X5%>$@91n>G5P_OFf>Chf;aZfVRSwkzsW6TN3#h}p7n86FujnO8PV z`9k0=2LSRFFOJv*%QNBjM$t}xE`t?)fVM{4bnIJHF<9uch|QNl1vm+Uk8p#APM7zT zz}49i^1QUZ((?pGR?{bEHvq&*SZ%u3kF9<1E=~TI1?ocA69IK{;7NxZSp}K_wfoEp z2nXv{d98aIvHDoNjl3P77J0ZoRq#uiaQ{2|%KxXe8vw`?tfg#o(m@H4V36Ng&V`M5 zsj2DdjElm$NB#Z#t=U;|N$|#Pos+;x!}CU)JH6f+aSwo!m?Elh(M12vf)UlAsxj4( zQaI+Pc1@y}I}BH1!Ue$BvVgS=bgrC%23UAphj_Nu`?~Ly^Y+*(DefQz zJDnmcSK_-q&7isC##w`+hhDO83W*=%iv8M`_+hxYGI?~PcH@^qpGOZfNhNjBTsNg9 zU~yPt*+syy8lO}zEE~^;T`uIuTX+ZQrZuc5lzC+sXrdS5Df!)lR1W#G1FRA)vZ`n6 z9n(=SOsWxz7H9ibmNPklal%VZMURyYT8q%nP74S>dn8-=i8MqjZpVV5{R?nG;lGgG z(uCnYZGCF$HzuS6wuC;9J3rB`Lv?8EPO-umF2TA#MjRo#z{&iqq*$tSLwfI%Iv$R6 zjqt80w5hiHDZNKg0$#qzqu?UzesDUHkvq!cE|55-eFT+(9xEMuf2wIxE^ftF?KLlS zZ@4`MmF+Ii^aDyx1#@S^yz}DQPoT&G>s+ZQYg6n&q;(=3BM|Cd^W22JEVu&c+Mn?T ztCwtGS&$xIBV#N-_tdJINqe`F=Bc8*FU6QTy56Z;CamYQsrnh$T*4tDm;QU<;V-RI zK3Cz5K82#Fg0Mp36E?m5G5tZ}{+U+ax%q|5qAnRTA&2TbXD0?>Wl^(nNUr9mU>N>2 z3e9d%OGjVgtRD%4r6L0y`sLYS3aOl5_6%@G=Bir{x~rPE`m#g)^Lk?JHq5IRA0bcG z=&{1bNg045)Yp@hNW+S*VE3LxJ9zk{I!Zwk= z2m%oUnx3;NbWdJ_7aNojks|9)Idt#lu6DW12@^vM$2EpDUr<9>h~FEtbjV$#XuLJ;<_DNxh$2lAlO~Gj`umdPK*Wn=mZp8LB3+O@Z|7MVyUXR?J1afl&kYkE<2TU<7q;{4iZXnN**rwX z&V=xnOy+_<3`(sx^7DkNnx12anaWZfVe$U7`d7816Sb)I)X|sfEwmV;b{!AuXPqn4 zq!oC-MpKVFO}qPPT0sUT!sHh7AGya$7H%`3_=%ay_2V!4k@O9UOkkhqzZX!2@B z^T=FUEZIoNN2Wd#w;M0fy~$MB3BZ~(7=#ZCoc`SNc;lS{F{z>WYu~+^ly$_|&GN1l zvq%~>mZF3f-2Kp(uhFzR(buAP$<;dgZgIFDs0y4mD~14Qhj125BYf zb(F7|1O?9wT4w=XFk z$n4Gq1kHbbb0v+F7XYM8eLCiAQ9USDtY9}B<4|>4?@Zi4+uBxm(JQ64ZudlGD0Q60 z?lG>GgxOZ~eZ7hMzGuEdtt+r&x-5uJ2-qqV{=&T9^}XJ)fk%zZ=!q_%=xShLY8~q- zHyET);2NjeAhryrd%c}08J07XDZ#$mSn^I&MS1!CQn^a%0$WVUyS@zCRnAV{-MS47 zV;?2O^8txtV-8q@vQc%$M^tjy`2$ztc)t0Dmu#4U1LSPpXRIrIaXnU(Yi017UY{pU zaj8@`bpc`VqK^!C_S(ii2K&kFOasknx;#9noigD;6w>7#us#C0+FiTl$Xxa_|I#C? z3ImVi@YiekU`8t+DLzKzvW^fhFtmv4@KoDm{cxK1#LjAB?-ELy9dvzbM(zY&tRz)= z8}m~B=blo|16Q*5mhn<=YZHuq*)jZR!j=w@XkG`X1;I_D;DC z4weG(oY76OA1L(7kmOE+8y8&OFVndBDEl*>?#YLNS?KEwztaQ!9lH({7mHvdtXzej z)MhPB3%MY{-gHO!9Ev-E;t;HOaff2X0u*;GZiV9RP$am^&HuX( z-@|>r51Z`S&6z!CcINENZ+@F74K;ZzbTV`V1OzNag-@CY2yZIj8yhML{D^;1HWvH~ z%|$`q9RYz&`M>Q=v3P13{NNjRO?dzUbb{g#-axXER+UCTsEx;XGDAi{kd{#VB(3fJ z<|OCDbEo-FqrKnSYbu?d$lFoebn@WqPh1{Itn$=ONYiptZb)SEQo?Uz=}bl6+R`5ng$~+IFx1io9w&DscuD6M*#@YgHUN8IDr5CP@_c9{jZr#D@vo2Ux*9e-yv8; zD?|7FX$)@&i+jB-zlO|K{nw|oUrlJWK;2@}1QuuVpOkxt7?)pwf3x^{UEW<7{|T1B zSJzuTjT@92wF^riJbwolEb830Ei81)2B}0vX9Y~8y)M3D93rJo20{`DrOjlA?k$Yw zy58+~V$iUL^nOdY+>ieyh%B+}Zc?SY5ly+=O7!253K!Ax->qA%=C)nru!%WKtC29; zVDYm8)R5XdzT2+-?WeJkJuR&|2J%5lFh^)Xg+}P@zSqY z&~=jFeOtZX3KC)eoh$PO?D(JlRcL-I0}bKQEr{Z3Uh^*L1+Yf{ca~;>Q)xL)^Gz;B*)^pL-Eu_J6b2 zmkbv0u!`4>Q8~TlqwnhgzwnpPAiFC0LcQL;^Tn#x9{JLYHbEK@6Z_wf1=|K*>`g=3 zYWJ)E+`d$VdKa{u&56R=AHGqmQQ}+nc%EbqSD;Na5CC@;rZ5$Tm@JTHPrC*;Jj`Ae zGafq)lk(huHrMrTuCA_t9`$cZI(_Lj{9sbQwWjuABQ1Gyy^^r^+gGlRqabuj9#k63 zXQa%}yK&Sph7G;@G;SRYUF$haAzYl&B8~~_yT+`^zeK9+EdrgN*5PIcM1Qbuv8Fd- zPJqfm1qD{;+D-?$^U*4(19CKgAK+$(s?U2cQ0!NpSi?@MOuu*}N8PdDQGZ_iacI<} zwgU}09Xwv??W%4ji%LU``9Sp*7AqMZhdZ0hb=fPiRI{FJua^F-XKj1?nv(`D=r5xM z{L{hzCh)$Afd-PmAME7EQY0G)aJHXZXFeAsiF4P%?a^BDuzPGfyQrkwZ399M3)!0% zb&q~y_*#XnSNx|=>;)M2tQ=&n~-PEK;?U#OQz`|IKKdu8r;xr9TmijUJ?0NaOt~J)y4Ii!xeMq zC0}(gt?Ih*>Jue7{-rp|;fNY4&8NW`2-#y><7)(TADhmWk3>xlY5Mh(*>TVWD}9 zh)&k_$F>#9s*Y3Wv#oA``-cXPM^od)`oPtk+e?kw`}EbA*ZViuQb3e2LK>n9S%S8{ zn8Ea}SMyhJ7d9w;R^X|mXZ`Ezt9t7=;W!Kiq#jdjOI9NhQW1H@3L(6CUGETL8Kr$@ zPQ&GE^S16AwA^gNc#ZY|oRT9GW*~+UwkTAZwl+rKDi!;!#5Hj^rx-8BY%D1;eaU6` z97K9zO?=Bfv|mA(pr$}@vy??VD9I_{?4G>V@`~)^e>-A-(XyWN7=a1bew8J<+km3931CJ4|Nt{JARd1?5b{m-LFYeJ9^M{ zXdgmva09O>nz%nW67LJ3E-%#Vt#v92La(gpW3VpV)3HTjNBY|uH$NQvBuy|5%@jTA zW+I@`5XYbFrX4tIB`Vo(&jM$f2i`eQeHnGQXsz{;^jT8*SSkLbZo*oddGpk2N-$SwA<%HDDpsn&|u$|1p~b;WeRO@1K@)&B8u zU{)80gFw5x*(W7>2@k-5@7?ytoXkXs&`mCXd2QRDAN^Q2+Iv0$?{pcmnBR5$U9q&b zw;27xZD}_8*?4(9mRJs7n%NJh&jsuRDT z1WQC(m*ra9$5!B`U2&Pc<7&gWi*k5-c7PKX_9?rFNEwwT+LU||W&3HtMMDkMV=0nl z`8lTfMQ?gWp}80RJJIFO(5Kw?dcVn@foKb;J*$zC{KbaAE!)k2QxcL(U|#S-8~j|8A$mz7jy%Zl-VYWC@2~<%Xj%R`39G$kUKy+bjF*D1EeN zEKEa7RJJQs=jses*8Xt_`PF#Ht$^Aa^(i0QdxN!w(_W`Ausl25;~5>c7irZ(@#lZ= z<;N4oR+*cT`IR0*GL;&Iv1Be+3-N^xF#39PSu4BGb6B6)70MIav$cj;8NFy2AqjPF zXX5b3h0$3eXe%j}U}?|VBG zjKyNb;HtPj{EMeOGXMt=6SPZ@pZzhVhd3u^50 zXJ}viWn)=h;E z0bHtu>A^@$ZTPK`w4amS+=bGDJ#Vbr`?LBAYUfbS%7kf+_~bUZO#K?!bqAl59OsZL z1NIM!71;7Lho1UAR<2}+D7?TzCP*d8vP(lE3N)GUZO6G_?*kQ@!JCIAwdhW{9|C72 z=oPdIg*E%JC6mI{i@g*=EImjKkySW?L{5#8|wclP#P`2!jgrCLs0zj?eL3q z(P<#mPB)^XwPi;67**!96NERJ{j6IR-h4_Rl)%c->PI4fEJ52`{0Hl9l$rX(OSQ;w z0;OEFpTDzR80TfR|H&2-xOqKEqw3>$lyKI4DdS8YOWk|rGAzrgnzq_KK0W{3%D(Tf zv>cQfen$+(^P=ou%^Nt+uP+T;rj%4}^7J1Hw9K@D!2qpQ`^wc66Kp_5GDh{+mJSvx z*7mM0c*xu#<8UYccxz$l>nr$v4}$^!RDU=W2XG;6!i(y=5@v*x?xp6k)JGXk_T@lr z?c=piM2C<1OeMf3Dk1i^as=Z0ll#h#;_|eT&bIXz5&r#s^4jy=t+!RRt?m8H8$P%O zjHnLCbgDML_9H`)BRbJWRFf$UHAkkXIfTsPaLA91+blR>ordk1&h+Xg-XxQ)71SWd zzFDPA9r|%=`Yxd2K1*{Rv0>^!Td6aM3}puG?5MTj{Moe*e&f@Sw-ApSjJOUUpAK5~ zvq^)VC5#BCvpLaYCXc@U@>%oVTq*wttqts+YSVCR|3eH+5#JxY7ANZSL>^7N`nYR= zoYPw|O43AUCeU-~E&o3PsRC0H3WGK&%DDZ4w+6~$sO`B5Y^hypG$u%uIQ`VKFs2{u zCYzKb3WlK#yA>T=+z}WiBw@=xA*>!x3NmmJh#r^ItOvF!Skrv0`;nUgX$#Jmn{j78 ze$l&Oos62yo7z2)POobmv}#pM0c|A-*@XB;E2Zs=(53;?1oe|rT%*fNF3+73d~J9{ z#yN$ogAs>piO<(bIG~%$*BA63VZRS{cf3AoS*mcrd^JyPMr$EeQ32+2l^ zoV;g&(1)sRkiW4UP$5IYm<53Ie>$v0{C&Xgb>ia7YVkXYx)6}gEfzQN-OuK7Jb~%@ z8XF$m`kO$hu}v;nXm@}1`eOgP8tjnU>WaVj*|ej9RAOjoP(mEPXnD=Ew+nSnxt%Ur z(XXLAG;86DRgaV$37+nLT9g^YQf({mIFlp4%pqq)CVC(<`sQ;fpTm5u`R+VBfy}rg z7sqWcDCD0h*NNSld)>{JF!*RhbUvoYowz^GV3=mO2chrYxL6#<_hUZl&Omq!)(d(y z1H|-KhurD7tP%s8K$#^kfSG@A_nCVa-myhQpsjDpT$%lN#lB_DIUnSld|3?=!6uo| zDi1ls3a6Kp#|(>=3>?kjWSWlj{F;q+{u~e@2Ad)lsGg$a`bIs55uScYpbe?S#bmO` z#C|bQ5FoK*0^@Hkr%Rzte|0|N{wraCIT)^V%!F(sE`QaKrmH^Ge3_K%Ifb0c%i7s| zi_x0!H8O=%W-to$fVv0IoqD|2nukZ$~&%jA(3 zEWwAh$d~j)R^^c$>+!-Xs=iuwrhFwugjN^jZ_22`TKUy=K#UCJEk^eB;cnZHYL5#l zMWhpyt+!A@pil>GT+5s(=THnaC84E;(cH;>L^c@dp`B^p;3e`?u-*2G_wDg}yU&nH z%7YTJr3V`vTun8NbdSV{iL_Ou02b-=leyX zVp&p#rk;+U)%O%p^=Xu3dKqkaq>U6*|17;$^!q6l_f&HkovfZbTS7_M?LyTmzGg5h z6AsV+uIO+-1&v1WG^I1@=Tri zxnLSPHW5sS@M5<^Gm+BP6VTwQ6%Mw+U|?7M(r}=z=hR_eEUxQwU#xZ?9l#vY75{RxV=uBP`JH?}+B|8D zu)OxoS7w)Q)Gv$#^aqpdyktiBMd#mM+&*_Ew4+Uf@l*5QK^zB{ky;c;hZto*{EbYo z4xO=Hn6h}ol25VNrs!c7mnzjf35Vt5EXF8W52O<9KztW4B+Elvf7;HK$p~7sPw`rd zw*Ml3!C7m9{h3#*G11#3)P=lr5Dw)`J;G#aV_lo&)`xv6WFe`XHQEJ`#OIP@PdyqB z=cDeH$*kJS0g$_`?R#SK;>y~42YvThR2n99IWJ>|(YlIt6D~D-a)(PJiPacnf86b9 z5XOGE&W+!l+N^XYcT7S#ceeKm(k6OwHu4oAx6rB55SfOAi`t7gUSfD)3{eitkrsq# zs|{Cj;b?&1%gRJ7(1NdKIu|=^R!&h@)Eqz3pVyOD6QmWV`w2otv!n8vOg&R24k`R{ z-tEq%S^#sfXlxzEnx&2wJk*it9yW&b*rGS!XMh~RqKk-L7QGpr5Zxm{QIclhUHba8 zJDOINAS+$!O7YM5{_=EDY!uUB`+4+~%iuC4ZOw~5?yy;Vt!xL}*J*ftdRJ}~utNFz zE0Fl+mDTs@&&zA0Xu##AOzG#8AD2`CV6o$^b~GAGapn#aI~{rRPcvK=62-HaRAMJm zh2yg%T%B9K9;G&zzuRJNr+ zEfL&E61ClUj+!RdIyuzTdzBfq*V+ivISR9_&8vBgPAegA;<4_Ti#7q6l$UA7F>037 zvL7u|`>{Y0JVVUXyNKKf@;N^w7ySl+U6}E=>WBK)Qv>jgDvs}`_}gpttDhfx0P{cXlaWZ_gvHxI)( z-|Ev?z6hJ4d@u}ekK2JctH0gt{MIjG8`=y<=H`$O-rSi{y8@0rk!5;$elT*zvDu)B z=!kA2ntN@l*)-wX44PnT%3!XLi+;`pSyTKY@_8#}G?ofG3zK&4#z0uT18nB}cxOs` zFaREjVP--v~4?2-!5E|UMGZ}V*R^3;>g8yv;O^UNwjM<=e16? zkmnT^Ai1<&@NP4{Cc+fCN*HPd6DEmUe~!uxf>a`@sLav3=Ev9WXpUkgbXGuVe4w}w z73mT6Q@YDP+wWdbBE#@*vMhr-EQUK&+hj!;<47gpz>C`&^M^nhOT412rjqns^H?aZ z`r?V8q5{j|JeqCO*+BRdnnqxBd@P=gTN$0NGb6jBb5*Pxw5NG-hO-)DRE?Bo|7|#y z6R`SLQ+nP|eU&KS+hX*rxlz7@i|HWZLrM61Ug%D|PX_pK;L&)j#pD2bfD%Y!NY_v1 z9YWG~54329>@q>JxkzsOT2MBSBAt^!^!>ABuS(W$joa*M^1WizxSBu@j9om;ee7>x zqWx*#?MhEcAKuoNku9bVh$@fLL;PqpR%XLgLJ;>97VlJXZl&KN_@De^E@78NF!J4x zP1Qo$gmI}xn_do3$Nsc``lMf>5Wx3{>lSBfK8o@qv|!Y0PU!=QopmhOabjUQC3S8( zpVLzCAe)#f`4?Ygp>2`y+ar5`uxhqELmtuJa#Uf-gqjaHhoPGw)o=rzo;y8_Mid;r z33=ND?!Qo~WG=#oEXGvSxx>2oCF&}c;9U_^$$_f&BgQT)5v-YAA7p>AcveFkH#O5Q zZ+GOg5yH2*>QqW2ML!6Qj9vLjyVbkOUx^C6>)<6pui_52g2Zzs7#@SQ;xe8=1)_HJ z)x`>^_m((|U$bKh`2teL5N3M+`I8on@sX3?=5yCXiJ@5ND&)24Fz?GucJ)%tFWB4i z-++R+@$>q|E8KkbZN<=OcEk`=gBF>wt{ox>4)*%>wzDkfE=O)Z%F}y;QLKeIvzNaW zeLl4heg35y(9sw_c|%d-SZ6F)sI-`>{kOz*{paop65xu zlWe}s^(Ip$^>aqfaHVfju&nzqSP$@$VE0cC@B?aV?!zCA!`!Qt;86R!e6*T(Hx&$j z*Ub1bW5ImVIg~ql@tbQJVd5|h?xy=6_RU&*q{5{kZ1`I-7ZFs6-FJ+MSROrE%U9V5 zSGpjuuZ3_@eq*L=bRxG1y$~EsQzO7^GH2caNC$3rQ>5~}d0jb-KY-YI@!oJXUP?vvq$2`K$hpPyoTi~1C6h!NLF`o?uy(1 zHA>8Ju3{tRq4hn=h&jqD&!cY&8Rmvvx}fyO#G^qEvuf-r>|=gE!NmE`1=Y_cEIy5q zzBD4^RW|{TE{nw}aD1^cs_S0TOMJ$rMan@&7pb&q`ugV8<~5+ME0*yr+$kWgYbE}$ zKvJ1XYZRGuyq~{B&UaeC%J1eyK#e3oSS17FvFXo5-0qiJtib(txVnj6m* z*z3pw#JUFa#GS$*vrB*GvkjOH?Wl7AaR}j5#p^uVkD1z}PXX)ge<~`{@+ESo0s}Zf zt?JSu%}|gsd&sddMLc0?Ugxq3Z@wQmmhKP5{m@(U|%jn zeD9-SMH0E;yROChcV?CDVcb|`Z*+#mdY;Dc1uZdK!KB<@=K*`O4o~7t~X+@ z5vaJ0yNYCf>DMsa+C4;Do3Z;^UX*h(^v2l=4VG59qAxn^Cp zS(bvsPI;&dmk))w?GNqM$z&3;V0bSF6I4L5EIU%mEL$_mf{|){!Pn8T8SDK)zLd%2 z*=OsZ7m}3ap+D(5t3tCodYTDxG&5F$o&{)^M80Oa@Isb5n#7c{7Zep)ZjM?s96B{j z1x}}_bZAfSR{GfHxbPvdcES|rl}u(o;TUaKAgA|b)w}n{*~lSAB1+Fk5|F_J8lC;y zdjEjh=YEh>uDM0NFJ`RB@@-go};Z|`Dn zr2RO{Z(X8nB|o0qUx87eHS17`%6Q#lFnU1s2lB3%o&DaF8}Ly|3;OBp%)e|L9_h0J z&{d^BW(Getn!lFmDRp33a$zzy(zil1c+}$}7IfOZ0o35^6X^?3=PuNrUGo|Do$M#~ zhWXsOSM=L+8=btEi<_ef>$`NX@>PV9Nf9tQ%k*QeexXYdRazFNt&j0@JYXVO)-= z4~jbH2505Je7oz^4S3RxalZ4GbTg@5fSnU+!YzldTLW~N}wXfungyl$QXYC`*@8>v2D*+t6 zMsP86ubdJ_bHFkA%3PFy7|EB&HVEoHG ze;V2fFA^9YGiY}TYEH=mp2pu7!MbU z?*upKCcD`yb|ABYzLR@k!lKQtx`OU|S;a>xUsw;>xnh4o5ELFXk->BKkNTtsDmmma z7D&U0;RY(vVMuSoE5t2}W1BPVL(h?&qgQ;TR)WnM5#JBw&?@=XpZdfUX$_8qb_ChW zU)a$ef>Z`$6Y3CUX5?8|dj%4>lT4!3gi@rlHB8y}7V`hzX76TyJcvC<@drDaj1Ey9 z0kSo%gPz~EX7WP3PDQ?}Y1e7?+D>)`JCR|A*|I|tW)O~uf#k)tcHA9!V0;0WUpOS_ zeaBSoj(X(%wxR3lycdxz-XFAy6~NJ5vHiDT^tcJLzJTJG54!_Hk63UlSdF;SyNscK zTusM(MIf?i=tYj?tEsgr+572o+|q{m3gJVGm1F^5Htg*R(>uOM3|h%pReF^>O!>SI z;jqyNZx9{;ue+v})slhwhmKYMJdnV|uCUj-EF8DBWO~a*eE`K(DFe+T_GB0|1A*my zA8=IiNw#UuU|y!3gy()-dSx{soddZABP#NSWMAB5FCZSu466WZ9K|EkeT0Jvia1Sc zgw@d+*+8nlj`S)t=e|xS_q`x@jEBrZ^j;^qku-uhoQodQj^6TVGO>&|9^=Kyh&>wa zWmb$NB6!+v)IxDJ=&OCpXE}ZSz{^OO%>3XfLSg(2vRvRJ$y#y{9zy5lBHMz<5A(G?LZJTMh z$~)w2+h$TM{J}-L6Vr{(&&u{w$Hz82^twBE8*t#;Fb)mGq!b|1=cd>;P-5YgGRdk; zIjRD8phLr8|8#fT8*_#Rs2af9s6gu`+k1_4T(^(RSlx@&5#fk}Toj7B?#*02l)tW~ z@SKi!r*G|MC=K0gPbEy82%`*lGdU@i6`nM>2$fd!ucHd4N^59$w7W<4^rgW9dJfLC z2cfSKmH%A)zZfWGpz8-I7>j(=CqXhusmiLz7gMe5%m*`mKf;%pzm7Ke>vQ5V_AQ$% zvvjSp_G9d-P?T+V0ESwYoW~qRrSaGGVo9nw`+R&B#(+sH)(=Pz7CI!rE?#ciKM!iKq zA5>etwTHMMi`rOI~1IYFcp=BZ~+og8;IieU}MbH_#E8~ zxoE^NqAiT!)Qm$uy|~JD{E<1i3w?(!rWg$SzP}R_%50nst+o`9O7yEi2BKy3?K-J| zzIF2wcciPRj>YT986sd)qF?HY!0yL8W3`n+;Ql)_V$8I(AAQI)rAQAQbHDfK{fQLT zIaw^B-QW24tjzt^vlo8Y|NOvR<=DMuPYTK5Hv<>>aR)mH8HC22@9QnOwO~=k0<}lq z&F(lIABRD~!6ggac0Wd+}A%5x`Gh@2hk%=Q{NQmZY*yWJOrAul{QAlIbzamVx zzTmyRb&qlwi2vWkHoq%JXC}sBiSRB_4j?DActyWlh;uudrOI2Lh#{ObHl)j2$6;5}r@`!2#sE;mD(*3Ax9Q|dXUR|Y$gK~@xoiyXnoz~?7d#f` zfR#`gJm0KO>cZE^uLdG^!aP%X?kpI=1>KSr@5yP1-%L0(*v2>;|1kwfA=?^DJ0IJ_ zmy^;U5xhpBqH{_X-=Rv^W`*2%r3ZQNNO0$+J3GAZoE|){x~na%|Lrtn24`p3#sXx$|=-wAavBzb{d1zK(;SF;7W#_mU8?NyK<^)BrixN9c7AvQY!OiBxnAdufgH5_Ey?!h_ zYDBJ>28RK%5lJ$u)tqi5uFf+6L~rSQ8LUc@L?>D8V{lsc&G_+N&__99i+qp+7TW0_ zsl+zBV>vsn0K7utZ_tEwxcFe%$w|l_(mJCdpCD2!8K!r7;7{Lg_PmRR57~^Sc)9e2l3?MpL(@x<DlGUmNYo;$cJM#v zsx#Q23xQ;Zd_p<}E@`%b3t30z>GlJBy7VQwMSM~u`cH(e@ttjne#`Jq2N-MWo_;+w zGVXJRBYp#qYN+}Mej4id+Xl(P^QL>{1P2(M0(guBa)Q!}0+E-N)sKTS+PUshflAWR zlONgu1>ZxJ%o{5Se5kv~KrTI9|o#2=`lX*sfsV28VCHd=4irs_NPQ zX-VU<<6mx_Y*RS9EF7}grin(g<0rMz%8n5-v;$%j?BP{ui%jkr{Nlo`wNpr}j&Dh$ zY^MVTwdQqNAp`ef^2K2A^4UIOoFzJh<0p|}1XdqfU2QC;pu#pcUKeIuuV`Ftgs}DM} zc>`xp=)V&RVZo89`j`LP?T_P$YqYEG?MS#SWADA#2wG4_MtOodioB839dEbGdlNX@ z=MoVk>uqhf_dAjCA=JD_%pP7@a*B92T2r&Stv9=RSwOF2joM_Bsp9myr8GZL}_d|WTs*7X_4q$>D$ibIVc^_X$aC zjokY2ym|A#me6JCn4lC}9h9r}-*sMHOpqZnj8>FGh=BnvT9U<@JAT9mhm{J2wXoZ! zMgyUaZrc1Kp?a;!)9h~aFisj`?Ds1ieaiccb3zODaEv|a{LVKIpMh6u1-}M|2cfSF z!G5Ov?ifuUgT#(*(VF+lw=M@7C#I)&y9SbgZytqB z;cuq1&-A?=}?|K2Z7KK<1=jfx|LRAN#5G)C_I2eL(#tdGF(kEtZOcppwSME0MK z)Zsdsd-r|{nxC~MQT3;LYV=QcZsX52x4es(R3td~)k5JC3YPf+!q88hXO=v;I!=m7EK2UaOH@Ltn9BD%VdsV}Q{A@Ow%s5u-Rz^=6aO+Q80-oqNtHe>M|(k*oR_avz$Y zygk2hOL?&`>$uBzrz#9Cb9WBVo#+_$aVLIy(fO~u$}|48z?y;S?bZFK=;KvSCn>>b zpj(Nl&`aY&++Ron@0(UZV`01(2L5AtME?mL7GhK&Pp5?_&E}&%JY%`&b~)AN#cM?C zl^BXb@Sm7XGNL}<6cT$-Q76S5TyOp*LX(CWzGl&s=u%L+SUI~K|7Ht53#U9*OS`dB zRDx1;jSAYGUp+3_bghV7;UyVKu9n>{J_Ub#^?8S;($%pJPH*ArMGddeipfB%RdgnRR@k;JvQmj#nauxFt#u_<*z*kJ86IV4y~UIUYz{ zMv4!R3xZ}O(`{n-W`D0~l`}F;ag&x3gyoLap}!f2^HjCD_}(>^u5{bRpjO^YlSyKh zl4n=;p@oNh+mi%Dz87&fUFgoq!4MkYuf*c$uZQru)_1#HIQz0pM&j_`A0%SuHrt!893k3!?$&9 zjxxgT1`@-GSm%D_`!4uD2+@0t-_q(*(m*KSCZXtyjCD^c$;b|aszVBR4l_B>4C1=3O zdM26rfg0xg1)Ax>y-oAq=Rs5&Wjx#C2`?Q~)*7;y8FK~$A`h*Nh{=|3sO9iVmL*HR zFKTX%avOHZU@fMN?FHs%$YsPt%a43oh#yJffd9$cBdswjWyIgC8WNGlpf2X?uRMDPQ3BQJYpkf z^eE|000NQ1S>=;|QInir*?SlLH#ia8;Mpxqrn!%|Z}f3T>J0i>u^(=DU?ECyo7E=4 z)w9`sz*-&tk&qHpP@1GN(o&px`aSw75P zXY`v?(?h%ZTr=U8J!@m>iyyo$gs_!Gm0PKg^FS6^kzsGuJ$1yrxQ**tXM*_k2^TPt zqOc7kYXYcY9^i*!djW*_34*m$AcAWFSwnS|a2-xi#$+M03e!x*wqT90!0$OPh##+! z!YANAdo!pJzf9M!>52NHKgEPX4z$|R%>6BgW|6x%GsIiC7?1NyZ7O4NNdeIt&q6=( z7vV2ju39V9R!8yrS{8RF{^&iGZ zZ$EK1J6y9v=RIq_HL{r-^JKFQ z`o-O}4B;Iv)}v>wfm^7PopWLLOt=!!49jb5W(}-E*QZ@=tFDgf9V~;esNv_GXXAyw zv*lBi5A?W(!n3D$S?s#FXbuuYH6Ys2G zmuai6_==)CcC^_n5yP*NZQDM&sW$o~u*LMRES~}eN+|X+B$Ys|P!4p`wbGXAD%HpN zY;4AJ;moVNV&AyQmJdbjUH5TLCuJ~D#{R~dukPI7>iJ{~)(zAz#baHI<`E_mMtgU% z^#TU_nf#-yn;c4>d~!Y&zlmAv0%zRDC@pq1abQd4!FaZxFQ&mT7nVNfzLeDld_(fm z8dr3~)T*L_24usedW&XE@oV5~!IxjolWf2`>-^>THe;O7Em^&QCwMP#$&uLgWz;;4LpdkS1Y~c zUhl&%Btf3h!?DI5Cm)Tt#_cirvqwxoXrgJ3cJmp1x(o2o^k?Zz*mbW)dO-A8Jf0}x z4|Uy(Cc0N_d?6`IgwK~-y>KjRAc2V4;+D(Os%uh$NpyUH?4GiyresTd(N64BD;({z ziSDyaoWdzQ%J(Bk+WkCo3)xOu;jXpfaa0fOMgQ>UrSYKB zMr&8l@$5THaqcm}U>N&ONQoh^aJ4}%mFQmln<(4l>ZjbndF==GT&%<p(1y zUEa8>Cut$}xV{Y8WwEm5Qa4S{vOoSqd$QYROuepcP?Uvw>LONxlv);A8gr%6;e7mu z8v8QlJ)vGnd;C!8@A_^fZfU++-)<%`d5ZPqiq9kM`>8YB{ICoksy+Qu^weP#szHCb ztVF;4FUt)@vnMD%+R{(Sx1G8i9+ayBOcM(C?n`+TWWp#zS}7F@WO9Ibou>heEV`d6 z&BEffM5F#<)#;pirDFub;$5_nS**tfY^LgRxr{qpp5DBPrwhJ9b0o!f+R+m76xDV7 z1C_O`hHH%6@mc*gc(J8B{z>TrG?QQcK0(^!Qd#7=6G2d*r?2U1`?lqPb9T+T`XwEOfmW18o0j){ZMZ*Tp``-gotu~<0$vl7%q z@g(IoZFsqXL_Bso5e>!q@=&LGY}n})Su zZt+K*e~gkW6rc&Xi?Q3$idzZH$e8;wh;VN(JFDIYavb9V6}f zNM~D&p8jF?`?*aLfVU2_>bpr?=-`*O_&ZSvJH`7@inOLPNL39=E~Djs=u_VDe%90I zWmlK-kbI83+2pg#1<6jtY2io9O!<=?C`E(EC59$N%^#OL;A5MQ_v=G`VMzu!sNm6R1zoh+!{v! z!_3cH`{mfb;AM@WfKJ17;6MMn6|3C%+LW;2bmihOR(eXhg-)e*iWJPQ+A5Ee*9+=c zXQlRmHi=^CqVlTUPa;?s%r^Zd|3Hj0eZiTtF&7kKcTrDN)!~O5M#zT(O3m{MqylI@ zDzk>rGHC62y$?^7n`GJ27-J-HR)p5Dii^?sN9&JE^!>j-wYZCaHj$sUOH?Nfn1QseJoB zy{|nf(AZ9&n)CUVklZW6_BcRd1pUp-69bLPaTc3Z<{y#KdI}O~O(g@}-yeHpbYD|; z74PGkFgkf>Pq})3HiT5%K4xc#nE&mSwY}fv-j1|`tBCIf-3Upnpp_? z`Ye(au*;7ydBIHpM_BLKnBWvz`$ceNf~{umcIZy6_TYksx#V5|FYn3g@FqbIj76*H z=LjurtyB;Y|1F4J> z_BD>%K%$y#8xQLCu_Rf$W|mm5xKy^Iz4tl8XSTPu$yzCgs_Sx4!tX=c`@>#H zxePgf<6J-99;h_bmA+?_GD8k!iM9 z{Pzg^Y^~A6a{rz51oOA%ELb%1E>z?6_tFHUW?D#>f%G{RU=fKdKr6`i8w&SL4#9V| z5#Eu1`EnDJ{xIXh_B(LWq5yE31x*&PP$n|ofT{Xfk*WT>NG}s>B|VHLP3w(=x;^Wm z5%Mdi=KJAG@0Jm69?VR8sM7dWxh0@Q~+NFe)g%eX3$C6%>mg(CV#ANT|vNc07sGjN#?PDVGem{65K^ znAvHvR@EImNaz^;D*83dLrtapsD*!XPcK4~3)VfOoga?_l*4<~+7i4=^^uTE!C@>7 z_Q7~j-()mvx5!G|WAVo^6sCfyy_?25b=no$`D>MNM&ZtP{nusx+hr&3pa30+#b3Q8 z+r}ejL3(xMBK_vL`upVEfcRD0#Nm^evQ6jcEYAn?rMMiXhUV}v^;`l6#-p`N#rPYP z2DH|4gbcGrfW+PO8E(HZv?HG-|K#76N3S*a`yTX4^J}JEk+(^8A`3p6atLGv4WAx0;*7Hy zDtXAps@x_5HRAEzRow>D-O~6n#^wd4TNsNpQ#bYFloLr#7cBh6kL9h#*d~AB@ET=k z&I^G;*7Lhc=9$)H|ZaNB_B2l*;tv;6}P$Xa_sYR@G`?xE}tWpV%!5& zx%J81$d*ZD)l6qx7F{bD9JhtBewzIgEX4?)U*{pod^%!1LzY=WCZ;gj|R_Mc{{fAn{9=aq1#fQ#d22)bSq};D4z(9-k}q-x$!3QimDpg}w@v9j zj>(+&6(#**A7BG)4nP;3?@Tpvs7L?v2zI9C${5 z`0oqj7j(VrdZqDM3BPPS=2g;9a<*URj0H@S*pug`sQD;8`uuGC!rY5Lw7zlH_UzOv zaQ95EK!W!*)uVHGn%W<~w)h5+S-0hEKYF<5UZkO(yp4R%*N9p2M_C`O_4g1)kW=(O zZ78j+1K#%J8iwL<9p!MTiVEGec)EdbhqMINMeg0_qq9FcLT{f zmPA7(dn%}ze6_b;cofFDbrs~(7PNPkt`WWx&qb_NJx_N(*ccpXCb7iI3H9+(HD4jZ z@TOYwgQbmNtTMW2!AwR3KCs6rmuJlSYk`N>RTtUO4TgHDopqOQZ;2kkY^B_>j)dPI zp_2ufKSLS$sjhAmm-}lziQFnZz4ciss2F|g6EdRVbFb$4eO%NODf50#)z~57Rzmj| zfzT78`r?vVIp!dqUOcIl5KxAgP?RTlC=ryM63jM3pS*<6$XAsy&%Vl zCBi^s^MEbUw2ACieitoAenX6;BOz$(hEW2{Z zRaN<*kTKfBw0*g{ove3|M#cb-n$dr45Z)3<46Kg6dRq7!BwDd zL>Yj9o+nl~@L!pqS;^`VyF-^+`1>wA2zi=(S0wT%u=M23VK_+@qmALcj8Dv8)d`$W z9~*qKJ~%8PQ==#`vZ>DLzH4M0%}LYoXM6i~#p6P}pB>Z8DshdMUHO z`-r?I=HXc1W?vpnP<9@!A{a$HM;k zK}*mPpiee7b-;D(VV{2Ucjm<#zc&<|zd>D9ezhMxe;ys9H2;&Kx`MI$&pU?p&fhA&%5Tcu)q8UA zm3l?=Laa%x{fhPQ^maK7kx7e5Y_N(=V^3l2lu|&x@_b=w`!R7uV+dsLom3AV?=U2b z?y_$*W0wt-8wlC%yqD>006Z)uRYZg?;XSew@T>)tJBAU1?bRKvGR^7pPTsEPn&|Ge pKv>%-uCxAoW%&OA7E)iaTW!eENk>xY;Qy?EpeU>M2?{U``9CVasv7_R diff --git a/public/assets/Section/Logo_Metagov.png b/public/assets/Section/Logo_Metagov.png deleted file mode 100644 index f1e081674a2ea915aea8540a41b30b5e3fee3b64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26374 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

}B>@kCygpisl~C^ooC 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 diff --git a/public/assets/Section/Logo_MutualAidCO.png b/public/assets/Section/Logo_MutualAidCO.png deleted file mode 100644 index 43ec89e7669aa38380bb11d582dd435fb71a7f83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18876 zcmb?ig;x~c+Xt2om!-QF5R~o?LApT+K}tH6lJ1s9q&uY+Ny%ktT)Mj#mQ=d=@jdUq z@SZbw=FH5Q=gvHF@8^D=XQH(<6bW#ta8XcD2$YrNbx=@Hg`S%Rg_^8v?I z$A*wl` zH;&ohUGio9dyh&bLKMSoL?^`F`T|nAMD}6lJn7b@r$~f8ZvT(6@0~gieovLG zgY^UQEJmc+0!!mUN^vp80xK0+i6L?}bQ2hIGif`rw>!1VqRr9hg2&6~MtH}dnWyiB z_L{#9gx}-$u>nCgo!_g$7HA}IdH41(h|F3FfF~O9+hSepexL;CAm7pvlOvODvZ%+( zHCgV~6&g3ohwtXxz>sW|c!P#CtdhZzYk6#1DNLngoQfLG-fw>^+9n^8aR$|%0AjKZ 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 diff --git a/public/assets/SectionNumber_2.png b/public/assets/SectionNumber_2.png deleted file mode 100644 index 60117695169e32728a74c59ab4712b25b499aa8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27593 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

keeMW{Qz!@5`#t*9V=TpwtUOXfYO6k9=C% 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 - - diff --git a/public/assets/Icon_Alert.svg b/public/assets/icons/icon-alert.svg similarity index 100% rename from public/assets/Icon_Alert.svg rename to public/assets/icons/icon-alert.svg diff --git a/public/assets/Icon_Close.svg b/public/assets/icons/icon-close.svg similarity index 100% rename from public/assets/Icon_Close.svg rename to public/assets/icons/icon-close.svg diff --git a/public/assets/Icon_Help.svg b/public/assets/icons/icon-help.svg similarity index 100% rename from public/assets/Icon_Help.svg rename to public/assets/icons/icon-help.svg diff --git a/public/assets/Icon_Pointer.svg b/public/assets/icons/icon-pointer.svg similarity index 100% rename from public/assets/Icon_Pointer.svg rename to public/assets/icons/icon-pointer.svg diff --git a/public/assets/Bluesky_Logo.svg b/public/assets/logos/bluesky.svg similarity index 100% rename from public/assets/Bluesky_Logo.svg rename to public/assets/logos/bluesky.svg diff --git a/public/assets/logo/Logo.svg b/public/assets/logos/community-rule.svg similarity index 100% rename from public/assets/logo/Logo.svg rename to public/assets/logos/community-rule.svg diff --git a/public/assets/logos/gitlab.svg b/public/assets/logos/gitlab.svg new file mode 100644 index 0000000..f6ee03a --- /dev/null +++ b/public/assets/logos/gitlab.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/logos/partners/cu-boulder.svg b/public/assets/logos/partners/cu-boulder.svg new file mode 100644 index 0000000..593a4f3 --- /dev/null +++ b/public/assets/logos/partners/cu-boulder.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/logos/partners/food-not-bombs.svg b/public/assets/logos/partners/food-not-bombs.svg new file mode 100644 index 0000000..ff78ac3 --- /dev/null +++ b/public/assets/logos/partners/food-not-bombs.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/public/assets/logos/partners/metagov.svg b/public/assets/logos/partners/metagov.svg new file mode 100644 index 0000000..c54a241 --- /dev/null +++ b/public/assets/logos/partners/metagov.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/logos/partners/mutual-aid-co.svg b/public/assets/logos/partners/mutual-aid-co.svg new file mode 100644 index 0000000..67d565b --- /dev/null +++ b/public/assets/logos/partners/mutual-aid-co.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/logos/partners/open-civics.svg b/public/assets/logos/partners/open-civics.svg new file mode 100644 index 0000000..4f3dd48 --- /dev/null +++ b/public/assets/logos/partners/open-civics.svg @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/logos/partners/start-coop.svg b/public/assets/logos/partners/start-coop.svg new file mode 100644 index 0000000..3d110bd --- /dev/null +++ b/public/assets/logos/partners/start-coop.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/marketing/avatar-1.svg b/public/assets/marketing/avatar-1.svg new file mode 100644 index 0000000..c9e9294 --- /dev/null +++ b/public/assets/marketing/avatar-1.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/marketing/avatar-2.svg b/public/assets/marketing/avatar-2.svg new file mode 100644 index 0000000..44a58d4 --- /dev/null +++ b/public/assets/marketing/avatar-2.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/marketing/avatar-3.svg b/public/assets/marketing/avatar-3.svg new file mode 100644 index 0000000..4c056bf --- /dev/null +++ b/public/assets/marketing/avatar-3.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/public/assets/communityrules-cover.svg b/public/assets/marketing/communityrules-cover.svg similarity index 100% rename from public/assets/communityrules-cover.svg rename to public/assets/marketing/communityrules-cover.svg diff --git a/public/assets/Content_Banner.svg b/public/assets/marketing/content-banner.svg similarity index 100% rename from public/assets/Content_Banner.svg rename to public/assets/marketing/content-banner.svg diff --git a/public/assets/Feature_Exercises.png b/public/assets/marketing/feature-exercises.png similarity index 100% rename from public/assets/Feature_Exercises.png rename to public/assets/marketing/feature-exercises.png diff --git a/public/assets/Feature_Guidance.png b/public/assets/marketing/feature-guidance.png similarity index 100% rename from public/assets/Feature_Guidance.png rename to public/assets/marketing/feature-guidance.png diff --git a/public/assets/Feature_Support.png b/public/assets/marketing/feature-support.png similarity index 100% rename from public/assets/Feature_Support.png rename to public/assets/marketing/feature-support.png diff --git a/public/assets/Feature_Tools.png b/public/assets/marketing/feature-tools.png similarity index 100% rename from public/assets/Feature_Tools.png rename to public/assets/marketing/feature-tools.png diff --git a/public/assets/HeroImage.png b/public/assets/marketing/hero-image.png similarity index 100% rename from public/assets/HeroImage.png rename to public/assets/marketing/hero-image.png diff --git a/public/assets/Quote_Avatar.svg b/public/assets/marketing/quote-avatar.svg similarity index 100% rename from public/assets/Quote_Avatar.svg rename to public/assets/marketing/quote-avatar.svg diff --git a/public/assets/marketing/section-number-1.svg b/public/assets/marketing/section-number-1.svg new file mode 100644 index 0000000..604997a --- /dev/null +++ b/public/assets/marketing/section-number-1.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/assets/marketing/section-number-2.svg b/public/assets/marketing/section-number-2.svg new file mode 100644 index 0000000..bbec904 --- /dev/null +++ b/public/assets/marketing/section-number-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/marketing/section-number-3.svg b/public/assets/marketing/section-number-3.svg new file mode 100644 index 0000000..a913b7e --- /dev/null +++ b/public/assets/marketing/section-number-3.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/public/assets/Content_Shape_1.svg b/public/assets/shapes/content-shape-1.svg similarity index 100% rename from public/assets/Content_Shape_1.svg rename to public/assets/shapes/content-shape-1.svg diff --git a/public/assets/Content_Shape_2.svg b/public/assets/shapes/content-shape-2.svg similarity index 100% rename from public/assets/Content_Shape_2.svg rename to public/assets/shapes/content-shape-2.svg diff --git a/public/assets/Shapes_1.svg b/public/assets/shapes/shapes-1.svg similarity index 100% rename from public/assets/Shapes_1.svg rename to public/assets/shapes/shapes-1.svg diff --git a/public/assets/Union_sm_md_lg.svg b/public/assets/shapes/union-sm-md-lg.svg similarity index 100% rename from public/assets/Union_sm_md_lg.svg rename to public/assets/shapes/union-sm-md-lg.svg diff --git a/public/assets/Union.svg b/public/assets/shapes/union-xlg.svg similarity index 100% rename from public/assets/Union.svg rename to public/assets/shapes/union-xlg.svg diff --git a/public/assets/Union_xsm.svg b/public/assets/shapes/union-xsm.svg similarity index 100% rename from public/assets/Union_xsm.svg rename to public/assets/shapes/union-xsm.svg diff --git a/public/assets/Share/Discord.svg b/public/assets/share/discord.svg similarity index 100% rename from public/assets/Share/Discord.svg rename to public/assets/share/discord.svg diff --git a/public/assets/Share/Link.svg b/public/assets/share/link.svg similarity index 100% rename from public/assets/Share/Link.svg rename to public/assets/share/link.svg diff --git a/public/assets/Share/Mail.svg b/public/assets/share/mail.svg similarity index 100% rename from public/assets/Share/Mail.svg rename to public/assets/share/mail.svg diff --git a/public/assets/Share/Signal.svg b/public/assets/share/signal.svg similarity index 100% rename from public/assets/Share/Signal.svg rename to public/assets/share/signal.svg diff --git a/public/assets/Share/Slack.svg b/public/assets/share/slack.svg similarity index 100% rename from public/assets/Share/Slack.svg rename to public/assets/share/slack.svg diff --git a/public/assets/vector/default.svg b/public/assets/vector/default.svg deleted file mode 100644 index 2bd6a9b..0000000 --- a/public/assets/vector/default.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/public/assets/vector/shapes.svg b/public/assets/vector/shapes.svg deleted file mode 100644 index d8e7d57..0000000 --- a/public/assets/vector/shapes.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/stories/asset/Avatar.stories.js b/stories/asset/Avatar.stories.js index 13863e5..e6ec794 100644 --- a/stories/asset/Avatar.stories.js +++ b/stories/asset/Avatar.stories.js @@ -36,7 +36,7 @@ export default { export const Default = { args: { - src: "assets/Avatar_1.png", + src: "assets/marketing/avatar-1.svg", alt: "User Avatar", size: "medium", }, @@ -44,7 +44,7 @@ export const Default = { export const Sizes = { args: { - src: "assets/Avatar_1.png", + src: "assets/marketing/avatar-1.svg", alt: "User Avatar", }, render: (args) => ( @@ -73,9 +73,9 @@ export const DifferentAvatars = { render: (args) => (

), @@ -95,36 +95,36 @@ export const AllSizesWithDifferentAvatars = {

Small Size

- - - + + +

Medium Size

- - - + + +

Large Size

- - - + + +

XLarge Size

- - - + + +
diff --git a/stories/asset/AvatarContainer.stories.js b/stories/asset/AvatarContainer.stories.js index 55a95d3..2ab7cab 100644 --- a/stories/asset/AvatarContainer.stories.js +++ b/stories/asset/AvatarContainer.stories.js @@ -33,9 +33,9 @@ export const Default = { }, render: (args) => ( - - - + + + ), }; @@ -47,36 +47,36 @@ export const Sizes = {

Small Size

- - - + + +

Medium Size

- - - + + +

Large Size

- - - + + +

XLarge Size

- - - + + +
@@ -98,38 +98,38 @@ export const DifferentGroupSizes = {

2 Users

- - + +

3 Users

- - - + + +

4 Users

- - - - + + + +

5 Users

- - - - - + + + + +
@@ -158,9 +158,9 @@ export const InContext = {

Team Members

- - - + + + 3 team members
@@ -172,10 +172,10 @@ export const InContext = {
- - - - + + + + 4 contributors
@@ -185,8 +185,8 @@ export const InContext = {

Small Team

- - + + 2 members
diff --git a/stories/cards/Mini.stories.js b/stories/cards/Mini.stories.js index a05a636..b9b3907 100644 --- a/stories/cards/Mini.stories.js +++ b/stories/cards/Mini.stories.js @@ -30,7 +30,7 @@ export const Default = { backgroundColor: "bg-[var(--color-surface-default-brand-royal)]", labelLine1: "Decision-making", labelLine2: "support", - panelContent: "assets/Feature_Support.png", + panelContent: "assets/marketing/feature-support.png", }, }; @@ -41,25 +41,25 @@ export const ColorVariants = { backgroundColor="bg-[var(--color-surface-default-brand-royal)]" labelLine1="Decision-making" labelLine2="support" - panelContent="assets/Feature_Support.png" + panelContent="assets/marketing/feature-support.png" /> ), @@ -70,7 +70,7 @@ export const AsLink = { backgroundColor: "bg-[var(--color-surface-default-brand-royal)]", labelLine1: "Decision-making", labelLine2: "support", - panelContent: "assets/Feature_Support.png", + panelContent: "assets/marketing/feature-support.png", href: "#decision-making", ariaLabel: "Navigate to decision-making support tools", }, diff --git a/stories/sections/LogoWall.stories.js b/stories/sections/LogoWall.stories.js index 13fda43..d7861e1 100644 --- a/stories/sections/LogoWall.stories.js +++ b/stories/sections/LogoWall.stories.js @@ -37,13 +37,13 @@ export default { @@ -102,7 +102,7 @@ export const AllVariants = { quote="The rules of decision-making must be open and available to everyone, and this can happen only if they are formalized." author="Jo Freeman" source="The Tyranny of Structurelessness" - avatarSrc="assets/Quote_Avatar.svg" + avatarSrc="assets/marketing/quote-avatar.svg" /> @@ -113,7 +113,7 @@ export const AllVariants = { quote="The rules of decision-making must be open and available to everyone, and this can happen only if they are formalized." author="Jo Freeman" source="The Tyranny of Structurelessness" - avatarSrc="assets/Quote_Avatar.svg" + avatarSrc="assets/marketing/quote-avatar.svg" /> diff --git a/tests/pages/blog.test.jsx b/tests/pages/blog.test.jsx index 89c89a9..98c05b1 100644 --- a/tests/pages/blog.test.jsx +++ b/tests/pages/blog.test.jsx @@ -88,10 +88,12 @@ vi.mock("../../app/components/sections/AskOrganizer", () => { // Mock asset utils vi.mock("../../lib/assetUtils", () => ({ - getAssetPath: vi.fn((asset) => `/assets/${asset}`), + getAssetPath: vi.fn((asset) => + asset.startsWith("/") ? asset : `/${asset}`, + ), ASSETS: { - CONTENT_SHAPE_1: "Content_Shape_1.svg", - CONTENT_SHAPE_2: "Content_Shape_2.svg", + CONTENT_SHAPE_1: "assets/shapes/content-shape-1.svg", + CONTENT_SHAPE_2: "assets/shapes/content-shape-2.svg", }, })); @@ -232,8 +234,8 @@ describe("BlogPostPage", () => { expect(shapes).toHaveLength(2); // Check shape sources - expect(shapes[0]).toHaveAttribute("src", "/assets/Content_Shape_1.svg"); - expect(shapes[1]).toHaveAttribute("src", "/assets/Content_Shape_2.svg"); + expect(shapes[0]).toHaveAttribute("src", "/assets/shapes/content-shape-1.svg"); + expect(shapes[1]).toHaveAttribute("src", "/assets/shapes/content-shape-2.svg"); }); it("applies correct styling to article content", async () => { diff --git a/tests/unit/LogoWall.test.jsx b/tests/unit/LogoWall.test.jsx index 302236e..58bfd9c 100644 --- a/tests/unit/LogoWall.test.jsx +++ b/tests/unit/LogoWall.test.jsx @@ -84,7 +84,7 @@ describe("LogoWall Component", () => { const foodNotBombsLogo = screen.getByAltText("Food Not Bombs"); expect(foodNotBombsLogo).toHaveAttribute( "src", - "/assets/Section/Logo_FoodNotBombs.png", + "/assets/logos/partners/food-not-bombs.svg", ); expect(foodNotBombsLogo).toHaveClass("h-11", "lg:h-14", "xl:h-[70px]"); }); -- 2.43.0 From 99f535f8211a18d10ee8ecaa2532fde39adc67f0 Mon Sep 17 00:00:00 2001 From: adilallo <39313955+adilallo@users.noreply.github.com> Date: Thu, 21 May 2026 23:25:56 -0600 Subject: [PATCH 2/7] Full cleanup pass --- .cursor/rules/routes.mdc | 1 + .env.example | 1 + AGENTS.md | 2 +- CONTRIBUTING.md | 20 +- .../WebVitalsDashboard.container.tsx | 4 + app/(app)/create/CreateFlowLayoutClient.tsx | 45 ++ app/(app)/create/CreateFlowLayoutGate.tsx | 20 +- app/(app)/create/PostLoginDraftTransfer.tsx | 4 +- app/(app)/create/SignedInDraftHydration.tsx | 4 +- .../CustomMethodCardFieldBlocksSummary.tsx | 364 ----------- ...MethodCardFieldBlocksSummary.container.tsx | 66 ++ ...ustomMethodCardFieldBlocksSummary.types.ts | 55 ++ ...ustomMethodCardFieldBlocksSummary.view.tsx | 198 ++++++ ...stomMethodCardUploadBlockRow.container.tsx | 110 ++++ .../CustomMethodCardUploadBlockRow.view.tsx | 100 +++ .../index.tsx | 2 + .../CustomMethodCardWizard.view.tsx | 4 +- ...omMethodCardWizardBlocksList.container.tsx | 77 +++ .../CustomMethodCardWizardBlocksList.types.ts | 21 + .../CustomMethodCardWizardBlocksList.view.tsx | 69 +-- app/(app)/create/hooks/useCreateFlowExit.ts | 30 +- .../create/utils/anonymousDraftStorage.ts | 5 +- .../utils/prepareFreshCreateFlowEntry.ts | 5 +- app/(dev)/layout.tsx | 5 +- app/(marketing)/rules/[id]/page.tsx | 3 +- .../UseCaseCompletedRule.container.tsx | 57 ++ .../_components/UseCaseCompletedRule.types.ts | 26 + .../_components/UseCaseCompletedRule.view.tsx | 73 +-- .../use-cases/[slug]/rule/page.tsx | 4 +- app/api/create-flow/methods/route.ts | 66 +- app/api/health/route.ts | 5 +- app/api/templates/route.ts | 5 +- app/api/web-vitals/route.ts | 109 ++-- app/components/asset/logo/Logo.tsx | 13 +- .../cards/CardStack/CardStack.container.tsx | 7 +- app/components/cards/Icon/Icon.container.tsx | 4 + app/components/cards/Mini/Mini.container.tsx | 11 +- app/components/cards/Stat/Stat.container.tsx | 4 + .../ContentContainer.view.tsx | 2 +- .../controls/Chip/Chip.container.tsx | 5 + app/components/controls/Chip/Chip.types.ts | 3 + app/components/controls/Chip/Chip.view.tsx | 9 +- .../MultiSelect/MultiSelect.container.tsx | 7 +- .../controls/MultiSelect/MultiSelect.types.ts | 3 +- .../controls/MultiSelect/MultiSelect.view.tsx | 3 +- .../controls/SelectInput/SelectDropdown.tsx | 5 +- .../SelectInput/SelectInput.container.tsx | 16 +- .../controls/SelectInput/SelectInput.view.tsx | 8 +- .../controls/Switch/Switch.container.tsx | 3 + .../controls/Switch/Switch.types.ts | 1 + .../controls/Switch/Switch.view.tsx | 3 +- .../controls/TextArea/TextArea.container.tsx | 4 + .../controls/TextArea/TextArea.types.ts | 2 + .../controls/TextArea/TextArea.view.tsx | 6 +- .../TextInput/TextInput.container.tsx | 4 + .../controls/TextInput/TextInput.types.ts | 2 + .../controls/TextInput/TextInput.view.tsx | 6 +- .../ToggleGroup/ToggleGroup.container.tsx | 3 + .../controls/ToggleGroup/ToggleGroup.types.ts | 1 + .../controls/ToggleGroup/ToggleGroup.view.tsx | 3 +- .../controls/Upload/Upload.container.tsx | 9 +- .../controls/Upload/Upload.types.ts | 2 + .../controls/Upload/Upload.view.tsx | 6 +- .../LanguageSwitcher.container.tsx | 4 + .../modals/Alert/Alert.container.tsx | 3 + app/components/modals/Alert/Alert.types.ts | 1 + app/components/modals/Alert/Alert.view.tsx | 3 +- .../modals/Create/Create.container.tsx | 4 + .../modals/Dialog/Dialog.container.tsx | 4 + .../modals/Login/Login.container.tsx | 4 + .../ModalHeader/ModalHeader.container.tsx | 16 +- .../modals/ModalHeader/ModalHeader.view.tsx | 6 +- .../modals/Tooltip/Tooltip.container.tsx | 4 + .../CreateFlowFooter.container.tsx | 5 + .../CreateFlowFooter.types.ts | 4 + .../CreateFlowFooter.view.tsx | 3 +- .../CreateFlowTopNav.container.tsx | 186 +++++- .../CreateFlowTopNav.types.ts | 23 +- .../CreateFlowTopNav.view.tsx | 167 +----- app/components/navigation/Footer.tsx | 3 +- .../MenuItem/MenuItem.container.tsx | 4 + .../NavigationItem.container.tsx | 4 + .../navigation/Top/Top.container.tsx | 29 +- .../ProportionBar/ProportionBar.container.tsx | 4 + .../progress/Stepper/Stepper.container.tsx | 4 + .../FeatureGrid/FeatureGrid.container.tsx | 4 + .../GovernanceTemplateGridSkeleton.tsx | 7 +- .../sections/HeroBanner/HeroBanner.tsx | 4 + .../sections/LogoWall/LogoWall.container.tsx | 89 +-- .../QuoteBlock/QuoteStatementDecor.tsx | 2 +- .../RelatedArticles.container.tsx | 4 + .../RuleStack/RuleStack.container.tsx | 4 + app/components/sections/SectionNumber.tsx | 4 + .../ContentLockup/ContentLockup.container.tsx | 4 + .../type/ContentLockup/ContentLockup.view.tsx | 4 +- .../HeaderLockup/HeaderLockup.container.tsx | 4 + .../type/InputLabel/InputLabel.container.tsx | 4 + .../type/InputLabel/InputLabel.types.ts | 2 + .../type/InputLabel/InputLabel.view.tsx | 6 +- .../NumberedList/NumberedList.container.tsx | 4 + .../type/TripleStep/TripleStep.view.tsx | 4 +- docs/figma-component-registry.md | 2 +- docs/guides/backend-linear-tickets.md | 4 +- docs/guides/backend-roadmap.md | 25 +- docs/guides/static-assets.md | 2 +- knip.json | 16 + lib/assetUtils.ts | 14 +- lib/create/api.ts | 25 +- lib/create/backendSyncEnabled.ts | 7 + messages/en/components/controlsChrome.json | 30 + messages/en/components/logoWall.json | 10 + messages/en/components/topNav.json | 8 + messages/en/create/topNav.json | 4 + messages/en/index.ts | 8 + messages/en/pages/ruleDetail.json | 3 + package-lock.json | 567 ++++++++++++++++-- package.json | 10 +- .../{shape-qoute.svg => shape-quote.svg} | 0 public/assets/share/discord.svg | 3 - public/assets/share/link.svg | 4 - public/assets/share/mail.svg | 8 - public/assets/share/signal.svg | 3 - public/assets/share/slack.svg | 6 - stories/cards/Mini.stories.js | 13 +- stories/cards/Stat.stories.js | 27 + stories/modals/Dialog.stories.js | 58 ++ stories/modals/Popover.stories.js | 30 + .../WebVitalsDashboard.stories.js | 2 +- stories/sections/ContentBanner.stories.js | 2 +- stories/sections/Groups.stories.js | 9 +- tests/components/ContentBanner.test.tsx | 4 +- tests/components/CreateFlowFooter.test.tsx | 4 +- tests/components/HeroBanner.test.tsx | 4 +- tests/components/Logo.test.tsx | 8 +- tests/components/TextInput.test.tsx | 2 +- tests/components/Upload.test.tsx | 3 +- tests/components/cards/Mini.test.tsx | 20 + .../components/controls/SelectOption.test.tsx | 14 + tests/components/type/ContentLockup.test.tsx | 27 + tests/contexts/AuthModalContext.test.tsx | 1 + tests/pages/blog.test.jsx | 6 +- tests/pages/page-flow.test.jsx | 129 ++-- tests/pages/templates.test.jsx | 57 +- tests/pages/user-journey.test.jsx | 171 ++---- tests/unit/ContentContainer.test.jsx | 4 +- tests/unit/LogoWall.test.jsx | 5 +- tests/unit/api/health.route.test.ts | 81 +++ tests/unit/createFlowMethodsRoute.test.ts | 24 +- tests/utils/mockNextDynamicSync.js | 51 ++ 149 files changed, 2623 insertions(+), 1242 deletions(-) delete mode 100644 app/(app)/create/components/CustomMethodCardFieldBlocksSummary.tsx create mode 100644 app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.container.tsx create mode 100644 app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.types.ts create mode 100644 app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.view.tsx create mode 100644 app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardUploadBlockRow.container.tsx create mode 100644 app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardUploadBlockRow.view.tsx create mode 100644 app/(app)/create/components/CustomMethodCardFieldBlocksSummary/index.tsx create mode 100644 app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.container.tsx create mode 100644 app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.types.ts create mode 100644 app/(marketing-case-study)/use-cases/[slug]/rule/_components/UseCaseCompletedRule.container.tsx create mode 100644 app/(marketing-case-study)/use-cases/[slug]/rule/_components/UseCaseCompletedRule.types.ts create mode 100644 knip.json create mode 100644 lib/create/backendSyncEnabled.ts create mode 100644 messages/en/components/controlsChrome.json create mode 100644 messages/en/components/logoWall.json create mode 100644 messages/en/components/topNav.json create mode 100644 messages/en/pages/ruleDetail.json rename public/assets/shapes/{shape-qoute.svg => shape-quote.svg} (100%) delete mode 100644 public/assets/share/discord.svg delete mode 100644 public/assets/share/link.svg delete mode 100644 public/assets/share/mail.svg delete mode 100644 public/assets/share/signal.svg delete mode 100644 public/assets/share/slack.svg create mode 100644 stories/cards/Stat.stories.js create mode 100644 stories/modals/Dialog.stories.js create mode 100644 stories/modals/Popover.stories.js rename stories/{ => monitor}/WebVitalsDashboard.stories.js (90%) create mode 100644 tests/components/cards/Mini.test.tsx create mode 100644 tests/components/controls/SelectOption.test.tsx create mode 100644 tests/components/type/ContentLockup.test.tsx create mode 100644 tests/unit/api/health.route.test.ts create mode 100644 tests/utils/mockNextDynamicSync.js diff --git a/.cursor/rules/routes.mdc b/.cursor/rules/routes.mdc index 8ad772d..009f3ea 100644 --- a/.cursor/rules/routes.mdc +++ b/.cursor/rules/routes.mdc @@ -18,6 +18,7 @@ the file tree without affecting URLs. | `app/(app)/` | `/create/*`, `/login`, `/profile`, future signed-in surfaces | Authenticated product | `Top` (via root) — no footer except **`/profile`** (see `profile/layout.tsx`) | | `app/(admin)/` | `/monitor`, future ops dashboards | Operators | `Top` (via root) — no footer | | `app/(dev)/` | `/components-preview`, future dev previews | Local dev (NODE_ENV gated) | `Top` (via root) — no footer | +| `app/(marketing-case-study)/` | `/use-cases/[slug]/rule` | Public case-study demos | Chromeless (no global `Top`; see `navigationChromelessPath.ts`) | | `app/api/` | API routes | n/a | n/a | Route folders **must not** sit loose at the top level of `app/`. If a new diff --git a/.env.example b/.env.example index 513cd81..fc4265b 100644 --- a/.env.example +++ b/.env.example @@ -15,6 +15,7 @@ SMTP_FROM="Community Rule " ORGANIZER_INQUIRY_TO= # Set to `true` to sync the create-flow draft with `/api/drafts/me` when the user is signed in. +# Server draft sync (default on). Set to `false` to disable PUT/GET /api/drafts/me. NEXT_PUBLIC_ENABLE_BACKEND_SYNC= # Web vitals API (CR-80): `external` = structured logs only, no writes under `.next` (default in production). diff --git a/AGENTS.md b/AGENTS.md index 7b68453..4583413 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -68,7 +68,7 @@ Run these (in order) before declaring a change done: ```bash rm -rf .next # only if you moved/renamed routes or layouts npx tsc --noEmit # type check -npx vitest run # unit + component (101 files / ~700 tests) +npx vitest run # unit + component (~185 test files) npx next build # production build + route manifest ``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 77ee7b2..1a7986b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -46,6 +46,18 @@ deployment-pipeline work. | GET | `/api/templates` | List curated templates. Optional repeatable `facet.=` query params re-rank results (and may include `scores` in the JSON). See [docs/guides/template-recommendation-matrix.md](docs/guides/template-recommendation-matrix.md) §9.1. | | GET | `/api/create-flow/methods` | Facet-aware scores for custom-rule card steps: required `section` (`communication` \| `membership` \| `decisionApproaches` \| `conflictManagement`) and optional `facet.*` params (same facet groups as `/api/templates`). Returns `methods` with match metadata for re-ordering in the wizard. | | POST / GET | `/api/web-vitals` | Ingest or read web vitals. **Production default:** `external` — structured logs only (no writes under `.next`; safe for read-only FS). **Development default:** `local` — aggregates under `.next/web-vitals`. Override with `WEB_VITALS_STORAGE`. See [docs/guides/backend-roadmap.md](docs/guides/backend-roadmap.md) §7. | +| GET | `/api/rules/me` | Authenticated list of own published rules. | +| GET / PATCH / DELETE | `/api/rules/[id]` | Public read; owner update/delete. | +| POST | `/api/rules/[id]/duplicate` | Owner clone of a published rule. | +| GET / POST | `/api/rules/[id]/stakeholders` | List or invite rule stakeholders. | +| DELETE | `/api/rules/[id]/stakeholders/[stakeholderId]` | Remove a stakeholder. | +| POST | `/api/rules/[id]/stakeholders/[stakeholderId]/resend` | Resend stakeholder invite email. | +| GET | `/api/invites/rule-stakeholder/verify` | Verify stakeholder invite token; redirect. | +| DELETE | `/api/user/me` | Delete authenticated user account. | +| POST | `/api/user/email-change/request` | Request email change (magic link to new address). | +| GET | `/api/user/email-change/verify` | Verify email-change token; update `User.email`. | +| POST | `/api/organizer-inquiry` | Submit ask-organizer inquiry form. | +| POST | `/api/use-cases/[slug]/duplicate` | Duplicate a use-case demo rule. | ### Magic-link sign-in @@ -58,10 +70,10 @@ deployment-pipeline work. ### Optional draft sync -`NEXT_PUBLIC_ENABLE_BACKEND_SYNC=true` enables Postgres draft persistence -via `PUT /api/drafts/me` for signed-in users and post-sign-in upload of -anonymous drafts. Without it, anonymous progress stays in `localStorage` -and signed-in progress stays in memory until **Save & Exit**. +Postgres draft persistence via `PUT /api/drafts/me` is **on by default** for +signed-in users and post-sign-in transfer of anonymous drafts. Set +`NEXT_PUBLIC_ENABLE_BACKEND_SYNC=false` to disable server sync (anonymous +progress stays in `localStorage` only). ### Create flow diff --git a/app/(admin)/monitor/_components/WebVitalsDashboard/WebVitalsDashboard.container.tsx b/app/(admin)/monitor/_components/WebVitalsDashboard/WebVitalsDashboard.container.tsx index f582d89..d67fa02 100644 --- a/app/(admin)/monitor/_components/WebVitalsDashboard/WebVitalsDashboard.container.tsx +++ b/app/(admin)/monitor/_components/WebVitalsDashboard/WebVitalsDashboard.container.tsx @@ -1,5 +1,9 @@ "use client"; +/** + * Figma: "WebVitalsDashboard" (see registry) + */ + import { memo, useEffect, useState } from "react"; import { useMessages } from "../../../../contexts/MessagesContext"; import { logger } from "../../../../../lib/logger"; diff --git a/app/(app)/create/CreateFlowLayoutClient.tsx b/app/(app)/create/CreateFlowLayoutClient.tsx index 587556f..627d4ac 100644 --- a/app/(app)/create/CreateFlowLayoutClient.tsx +++ b/app/(app)/create/CreateFlowLayoutClient.tsx @@ -4,6 +4,7 @@ import { Suspense, useCallback, useEffect, + useRef, useState, type ReactNode, } from "react"; @@ -80,6 +81,7 @@ import { PostLoginDraftTransfer } from "./PostLoginDraftTransfer"; import { SignedInDraftHydration } from "./SignedInDraftHydration"; import { CreateFlowPendingAvatarFlush } from "./components/CreateFlowPendingAvatarFlush"; import Alert from "../../components/modals/Alert"; +import Create from "../../components/modals/Create"; import Share from "../../components/modals/Share"; import { CreateFlowDraftSaveBannerProvider, @@ -190,6 +192,26 @@ function CreateFlowLayoutContent({ description?: string; } | null>(null); const [shareModalOpen, setShareModalOpen] = useState(false); + const [leaveConfirmOpen, setLeaveConfirmOpen] = useState(false); + const leaveConfirmResolverRef = useRef<((proceed: boolean) => void) | null>( + null, + ); + + const confirmLeave = useCallback( + () => + new Promise((resolve) => { + leaveConfirmResolverRef.current = resolve; + setLeaveConfirmOpen(true); + }), + [], + ); + + const closeLeaveConfirm = useCallback((proceed: boolean) => { + setLeaveConfirmOpen(false); + const resolve = leaveConfirmResolverRef.current; + leaveConfirmResolverRef.current = null; + resolve?.(proceed); + }, []); const { copyPublishedRuleLink, @@ -256,6 +278,7 @@ function CreateFlowLayoutContent({ router, user: sessionUser ?? null, setDraftSaveBannerMessage, + confirmLeave, }); const handleExit = async (opts?: { saveDraft?: boolean }) => { @@ -601,6 +624,28 @@ function CreateFlowLayoutContent({ onSlackShare={() => void sharePublishedRuleViaSlack()} onDiscordShare={() => void sharePublishedRuleViaDiscord()} /> + closeLeaveConfirm(false)} + title={messages.create.topNav.leaveConfirmTitle} + description={messages.create.topNav.leaveConfirmDescription} + showBackButton={false} + showNextButton + nextButtonText={messages.create.topNav.leaveConfirmProceed} + onNext={() => closeLeaveConfirm(true)} + footerContent={ + + } + backdropVariant="blurredYellow" + ariaLabel={messages.create.topNav.leaveConfirmTitle} + /> + ); +} const CreateFlowLayoutClient = dynamic( () => import("./CreateFlowLayoutClient"), { ssr: false, - loading: () => ( -
- ), + loading: () => , }, ); diff --git a/app/(app)/create/PostLoginDraftTransfer.tsx b/app/(app)/create/PostLoginDraftTransfer.tsx index 6c43f7a..2d80360 100644 --- a/app/(app)/create/PostLoginDraftTransfer.tsx +++ b/app/(app)/create/PostLoginDraftTransfer.tsx @@ -15,7 +15,7 @@ import type { CreateFlowState } from "./types"; import messages from "../../../messages/en/index"; import Alert from "../../components/modals/Alert"; -const SYNC_ENABLED = process.env.NEXT_PUBLIC_ENABLE_BACKEND_SYNC === "true"; +import { isBackendSyncEnabled } from "../../../lib/create/backendSyncEnabled"; function buildPayloadWithStep( base: CreateFlowState, @@ -111,7 +111,7 @@ export function PostLoginDraftTransfer({ return; } - if (SYNC_ENABLED && createFlowStateHasKeys(local)) { + if (isBackendSyncEnabled() && createFlowStateHasKeys(local)) { const saveResult = await saveDraftToServer(payload); if (cancelled) return; diff --git a/app/(app)/create/SignedInDraftHydration.tsx b/app/(app)/create/SignedInDraftHydration.tsx index bed4ce3..d1554a0 100644 --- a/app/(app)/create/SignedInDraftHydration.tsx +++ b/app/(app)/create/SignedInDraftHydration.tsx @@ -17,7 +17,7 @@ import { parseCreateFlowScreenFromPathname, } from "./utils/flowSteps"; -const SYNC_ENABLED = process.env.NEXT_PUBLIC_ENABLE_BACKEND_SYNC === "true"; +import { isBackendSyncEnabled } from "../../../lib/create/backendSyncEnabled"; /** * When sync is on and the user is signed in, restore the server-side draft only @@ -54,7 +54,7 @@ export function SignedInDraftHydration({ const finishedUserIdRef = useRef(null); useEffect(() => { - if (!SYNC_ENABLED) return; + if (!isBackendSyncEnabled()) return; if (!sessionResolved) return; if (sessionUser == null || sessionUser === undefined) { finishedUserIdRef.current = null; diff --git a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary.tsx b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary.tsx deleted file mode 100644 index 3585f54..0000000 --- a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary.tsx +++ /dev/null @@ -1,364 +0,0 @@ -"use client"; - -/** - * Controlled field blocks for wizard-authored method cards in Create modals - * (facet screens + final-review chip edit). When `onBlocksChange` is omitted, - * blocks render read-only (disabled controls). - * - * Layout matches preset method editors ({@link CommunicationMethodEditFields}, - * {@link DecisionApproachEditFields}): {@link ModalTextAreaField}, - * {@link ApplicableScopeField} chip rows, {@link IncrementerBlock}. - */ - -import { memo, useCallback, useRef, useState } from "react"; -import { useMessages, useTranslation } from "../../../contexts/MessagesContext"; -import Chip from "../../../components/controls/Chip"; -import IncrementerBlock from "../../../components/controls/IncrementerBlock"; -import Upload from "../../../components/controls/Upload"; -import { ASSETS, getAssetPath } from "../../../../lib/assetUtils"; -import ApplicableScopeField from "./ApplicableScopeField"; -import InputLabel from "../../../components/type/InputLabel"; -import type { CustomMethodCardFieldBlock } from "../../../../lib/create/customMethodCardFieldBlocks"; -import ModalTextAreaField from "./ModalTextAreaField"; -import { uploadCreateFlowFile } from "../../../../lib/create/uploadToServer"; - -const TEXT_VALUE_MAX = 8000; - -export interface CustomMethodCardFieldBlocksSummaryProps { - blocks: CustomMethodCardFieldBlock[]; - /** When set, fields update the draft via immutable block-array replacements. */ - onBlocksChange?: (_next: CustomMethodCardFieldBlock[]) => void; -} - -function mapBlockById( - blocks: CustomMethodCardFieldBlock[], - blockId: string, - mapFn: (_b: CustomMethodCardFieldBlock) => CustomMethodCardFieldBlock, -): CustomMethodCardFieldBlock[] { - return blocks.map((b) => (b.id === blockId ? mapFn(b) : b)); -} - -function CustomMethodCardUploadBlockRow({ - block, - blocks, - patch, - uploadFileInputAriaLabel, - uploadHint, - clearPendingUploadAriaLabel, - clearPendingUploadTooltip, - uploadPreviewImageAlt, - noFileChosen, -}: { - block: Extract; - blocks: CustomMethodCardFieldBlock[]; - patch: (_next: CustomMethodCardFieldBlock[]) => void; - uploadFileInputAriaLabel: string; - uploadHint: string; - clearPendingUploadAriaLabel: string; - clearPendingUploadTooltip: string; - uploadPreviewImageAlt: string; - noFileChosen: string; -}) { - const uploadInputRef = useRef(null); - const tUpload = useTranslation("create.upload"); - const [busy, setBusy] = useState(false); - const [errorMessage, setErrorMessage] = useState(null); - const displayName = block.fileName?.trim() ? block.fileName : noFileChosen; - const assetUrlTrimmed = block.assetUrl?.trim() ?? ""; - const hasAsset = assetUrlTrimmed.length > 0; - - const clearUpload = () => - patch( - mapBlockById(blocks, block.id, (b) => - b.kind === "upload" - ? { ...b, fileName: undefined, assetUrl: undefined } - : b, - ), - ); - - return ( -
- - {!hasAsset ? ( -

- {displayName} -

- ) : null} - { - const file = e.target.files?.[0]; - e.target.value = ""; - if (!file) return; - setErrorMessage(null); - setBusy(true); - void (async () => { - try { - const { url } = await uploadCreateFlowFile( - file, - "customMethodAttachment", - ); - const name = file.name?.trim(); - patch( - mapBlockById(blocks, block.id, (b) => - b.kind === "upload" - ? { - ...b, - ...(name ? { fileName: name } : {}), - assetUrl: url, - } - : b, - ), - ); - } catch { - setErrorMessage(tUpload("errors.generic")); - } finally { - setBusy(false); - } - })(); - }} - /> - {hasAsset ? ( -
- - {/* eslint-disable-next-line @next/next/no-img-element -- same-origin upload URL */} - {uploadPreviewImageAlt} -
- ) : ( - { - if (!busy) uploadInputRef.current?.click(); - }} - /> - )} - {errorMessage ? ( -

- {errorMessage} -

- ) : null} -
- ); -} - -function CustomMethodCardFieldBlocksSummaryComponent({ - blocks, - onBlocksChange, -}: CustomMethodCardFieldBlocksSummaryProps) { - const m = useMessages(); - const wiz = m.create.customRule.customMethodCardWizard; - const fm = wiz.fieldModals; - const em = wiz.editModal; - const emptyValue = em.readout.emptyValue; - const noFileChosen = em.readout.noFileChosen; - const readOnly = !onBlocksChange; - - const patch = useCallback( - (next: CustomMethodCardFieldBlock[]) => { - onBlocksChange?.(next); - }, - [onBlocksChange], - ); - - return ( -
- {blocks.map((block) => { - if (block.kind === "text") { - return ( - - patch( - mapBlockById(blocks, block.id, (b) => - b.kind === "text" - ? { ...b, placeholderText: v.slice(0, TEXT_VALUE_MAX) } - : b, - ), - ) - } - disabled={readOnly} - /> - ); - } - - if (block.kind === "badges") { - if (readOnly) { - return ( -
- - {block.options.length > 0 ? ( -
- {block.options.map((opt, idx) => ( - - ))} -
- ) : ( -

- {emptyValue} -

- )} -
- ); - } - return ( - - patch( - mapBlockById(blocks, block.id, (b) => - b.kind === "badges" - ? { ...b, options: b.options.filter((o) => o !== scope) } - : b, - ), - ) - } - onAddScope={(scope) => - patch( - mapBlockById(blocks, block.id, (b) => { - if (b.kind !== "badges") return b; - if (b.options.includes(scope) || b.options.length >= 50) - return b; - return { ...b, options: [...b.options, scope] }; - }), - ) - } - /> - ); - } - - if (block.kind === "upload") { - return ( -
- {readOnly ? ( -
- - {block.assetUrl?.trim() ? ( - // eslint-disable-next-line @next/next/no-img-element - { - ) : ( -

- {noFileChosen} -

- )} -
- ) : ( - - )} -
- ); - } - - return ( - - patch( - mapBlockById(blocks, block.id, (b) => - b.kind === "proportion" ? { ...b, defaultPercent: v } : b, - ), - ) - } - formatValue={(v) => `${v}%`} - decrementAriaLabel={fm.proportion.decrementAriaLabel} - incrementAriaLabel={fm.proportion.incrementAriaLabel} - /> - ); - })} -
- ); -} - -const CustomMethodCardFieldBlocksSummary = memo( - CustomMethodCardFieldBlocksSummaryComponent, -); -CustomMethodCardFieldBlocksSummary.displayName = - "CustomMethodCardFieldBlocksSummary"; - -export default CustomMethodCardFieldBlocksSummary; diff --git a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.container.tsx b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.container.tsx new file mode 100644 index 0000000..d5041ed --- /dev/null +++ b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.container.tsx @@ -0,0 +1,66 @@ +"use client"; + +/** + * Controlled field blocks for wizard-authored method cards in Create modals + * (facet screens + final-review chip edit). When `onBlocksChange` is omitted, + * blocks render read-only (disabled controls). + * + * Layout matches preset method editors ({@link CommunicationMethodEditFields}, + * {@link DecisionApproachEditFields}): {@link ModalTextAreaField}, + * {@link ApplicableScopeField} chip rows, {@link IncrementerBlock}. + */ + +import { memo, useCallback } from "react"; +import { useMessages } from "../../../../contexts/MessagesContext"; +import { CustomMethodCardFieldBlocksSummaryView } from "./CustomMethodCardFieldBlocksSummary.view"; +import type { CustomMethodCardFieldBlocksSummaryProps } from "./CustomMethodCardFieldBlocksSummary.types"; + +function CustomMethodCardFieldBlocksSummaryContainerComponent({ + blocks, + onBlocksChange, +}: CustomMethodCardFieldBlocksSummaryProps) { + const m = useMessages(); + const wiz = m.create.customRule.customMethodCardWizard; + const fm = wiz.fieldModals; + const em = wiz.editModal; + const readOnly = !onBlocksChange; + + const onPatch = useCallback( + (next: Parameters>[0]) => { + onBlocksChange?.(next); + }, + [onBlocksChange], + ); + + return ( + + ); +} + +const CustomMethodCardFieldBlocksSummary = memo( + CustomMethodCardFieldBlocksSummaryContainerComponent, +); +CustomMethodCardFieldBlocksSummary.displayName = + "CustomMethodCardFieldBlocksSummary"; + +export default CustomMethodCardFieldBlocksSummary; diff --git a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.types.ts b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.types.ts new file mode 100644 index 0000000..2d8879b --- /dev/null +++ b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.types.ts @@ -0,0 +1,55 @@ +import type { ChangeEventHandler, RefObject } from "react"; +import type { CustomMethodCardFieldBlock } from "../../../../../lib/create/customMethodCardFieldBlocks"; + +export interface CustomMethodCardFieldBlocksSummaryProps { + blocks: CustomMethodCardFieldBlock[]; + /** When set, fields update the draft via immutable block-array replacements. */ + onBlocksChange?: (_next: CustomMethodCardFieldBlock[]) => void; +} + +export type CustomMethodCardFieldBlocksSummaryFieldModalsCopy = { + badges: { addOptionLabel: string }; + upload: { + uploadFileInputAriaLabel: string; + uploadHint: string; + clearPendingUploadAriaLabel: string; + clearPendingUploadTooltip: string; + uploadPreviewImageAlt: string; + }; + proportion: { + decrementAriaLabel: string; + incrementAriaLabel: string; + }; +}; + +export interface CustomMethodCardFieldBlocksSummaryViewProps { + blocks: CustomMethodCardFieldBlock[]; + readOnly: boolean; + emptyValue: string; + noFileChosen: string; + fieldModalsCopy: CustomMethodCardFieldBlocksSummaryFieldModalsCopy; + onPatch: (_next: CustomMethodCardFieldBlock[]) => void; +} + +export type CustomMethodCardUploadBlockRowProps = { + block: Extract; + blocks: CustomMethodCardFieldBlock[]; + onPatch: (_next: CustomMethodCardFieldBlock[]) => void; + uploadFileInputAriaLabel: string; + uploadHint: string; + clearPendingUploadAriaLabel: string; + clearPendingUploadTooltip: string; + uploadPreviewImageAlt: string; + noFileChosen: string; +}; + +export type CustomMethodCardUploadBlockRowViewProps = + CustomMethodCardUploadBlockRowProps & { + uploadInputRef: RefObject; + busy: boolean; + uploadingHint: string; + errorMessage: string | null; + onClearUpload: () => void; + onFileInputChange: ChangeEventHandler; + onUploadClick: () => void; + }; diff --git a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.view.tsx b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.view.tsx new file mode 100644 index 0000000..bd9e7be --- /dev/null +++ b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardFieldBlocksSummary.view.tsx @@ -0,0 +1,198 @@ +"use client"; + +import { memo } from "react"; +import Chip from "../../../../components/controls/Chip"; +import IncrementerBlock from "../../../../components/controls/IncrementerBlock"; +import InputLabel from "../../../../components/type/InputLabel"; +import type { CustomMethodCardFieldBlock } from "../../../../../lib/create/customMethodCardFieldBlocks"; +import ApplicableScopeField from "../ApplicableScopeField"; +import ModalTextAreaField from "../ModalTextAreaField"; +import { CustomMethodCardUploadBlockRow } from "./CustomMethodCardUploadBlockRow.container"; +import type { CustomMethodCardFieldBlocksSummaryViewProps } from "./CustomMethodCardFieldBlocksSummary.types"; + +const TEXT_VALUE_MAX = 8000; + +function mapBlockById( + blocks: CustomMethodCardFieldBlock[], + blockId: string, + mapFn: (_b: CustomMethodCardFieldBlock) => CustomMethodCardFieldBlock, +): CustomMethodCardFieldBlock[] { + return blocks.map((b) => (b.id === blockId ? mapFn(b) : b)); +} + +function CustomMethodCardFieldBlocksSummaryViewComponent({ + blocks, + readOnly, + emptyValue, + noFileChosen, + fieldModalsCopy, + onPatch, +}: CustomMethodCardFieldBlocksSummaryViewProps) { + const fm = fieldModalsCopy; + + return ( +
+ {blocks.map((block) => { + if (block.kind === "text") { + return ( + + onPatch( + mapBlockById(blocks, block.id, (b) => + b.kind === "text" + ? { ...b, placeholderText: v.slice(0, TEXT_VALUE_MAX) } + : b, + ), + ) + } + disabled={readOnly} + /> + ); + } + + if (block.kind === "badges") { + if (readOnly) { + return ( +
+ + {block.options.length > 0 ? ( +
+ {block.options.map((opt, idx) => ( + + ))} +
+ ) : ( +

+ {emptyValue} +

+ )} +
+ ); + } + return ( + + onPatch( + mapBlockById(blocks, block.id, (b) => + b.kind === "badges" + ? { ...b, options: b.options.filter((o) => o !== scope) } + : b, + ), + ) + } + onAddScope={(scope) => + onPatch( + mapBlockById(blocks, block.id, (b) => { + if (b.kind !== "badges") return b; + if (b.options.includes(scope) || b.options.length >= 50) + return b; + return { ...b, options: [...b.options, scope] }; + }), + ) + } + /> + ); + } + + if (block.kind === "upload") { + return ( +
+ {readOnly ? ( +
+ + {block.assetUrl?.trim() ? ( + // eslint-disable-next-line @next/next/no-img-element + { + ) : ( +

+ {noFileChosen} +

+ )} +
+ ) : ( + + )} +
+ ); + } + + return ( + + onPatch( + mapBlockById(blocks, block.id, (b) => + b.kind === "proportion" ? { ...b, defaultPercent: v } : b, + ), + ) + } + formatValue={(v) => `${v}%`} + decrementAriaLabel={fm.proportion.decrementAriaLabel} + incrementAriaLabel={fm.proportion.incrementAriaLabel} + /> + ); + })} +
+ ); +} + +export const CustomMethodCardFieldBlocksSummaryView = memo( + CustomMethodCardFieldBlocksSummaryViewComponent, +); +CustomMethodCardFieldBlocksSummaryView.displayName = + "CustomMethodCardFieldBlocksSummaryView"; diff --git a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardUploadBlockRow.container.tsx b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardUploadBlockRow.container.tsx new file mode 100644 index 0000000..3f18af1 --- /dev/null +++ b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardUploadBlockRow.container.tsx @@ -0,0 +1,110 @@ +"use client"; + +import { memo, useCallback, useRef, useState } from "react"; +import { useTranslation } from "../../../../contexts/MessagesContext"; +import type { CustomMethodCardFieldBlock } from "../../../../../lib/create/customMethodCardFieldBlocks"; +import { uploadCreateFlowFile } from "../../../../../lib/create/uploadToServer"; +import { CustomMethodCardUploadBlockRowView } from "./CustomMethodCardUploadBlockRow.view"; +import type { CustomMethodCardUploadBlockRowProps } from "./CustomMethodCardFieldBlocksSummary.types"; + +function mapBlockById( + blocks: CustomMethodCardFieldBlock[], + blockId: string, + mapFn: (_b: CustomMethodCardFieldBlock) => CustomMethodCardFieldBlock, +): CustomMethodCardFieldBlock[] { + return blocks.map((b) => (b.id === blockId ? mapFn(b) : b)); +} + +function CustomMethodCardUploadBlockRowContainerComponent({ + block, + blocks, + onPatch, + uploadFileInputAriaLabel, + uploadHint, + clearPendingUploadAriaLabel, + clearPendingUploadTooltip, + uploadPreviewImageAlt, + noFileChosen, +}: CustomMethodCardUploadBlockRowProps) { + const uploadInputRef = useRef(null); + const tUpload = useTranslation("create.upload"); + const [busy, setBusy] = useState(false); + const [errorMessage, setErrorMessage] = useState(null); + + const clearUpload = useCallback(() => { + onPatch( + mapBlockById(blocks, block.id, (b) => + b.kind === "upload" + ? { ...b, fileName: undefined, assetUrl: undefined } + : b, + ), + ); + }, [block.id, blocks, onPatch]); + + const handleFileInputChange = useCallback< + React.ChangeEventHandler + >( + (e) => { + const file = e.target.files?.[0]; + e.target.value = ""; + if (!file) return; + setErrorMessage(null); + setBusy(true); + void (async () => { + try { + const { url } = await uploadCreateFlowFile( + file, + "customMethodAttachment", + ); + const name = file.name?.trim(); + onPatch( + mapBlockById(blocks, block.id, (b) => + b.kind === "upload" + ? { + ...b, + ...(name ? { fileName: name } : {}), + assetUrl: url, + } + : b, + ), + ); + } catch { + setErrorMessage(tUpload("errors.generic")); + } finally { + setBusy(false); + } + })(); + }, + [block.id, blocks, onPatch, tUpload], + ); + + const handleUploadClick = useCallback(() => { + if (!busy) uploadInputRef.current?.click(); + }, [busy]); + + return ( + + ); +} + +export const CustomMethodCardUploadBlockRow = memo( + CustomMethodCardUploadBlockRowContainerComponent, +); +CustomMethodCardUploadBlockRow.displayName = "CustomMethodCardUploadBlockRow"; diff --git a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardUploadBlockRow.view.tsx b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardUploadBlockRow.view.tsx new file mode 100644 index 0000000..a7ea575 --- /dev/null +++ b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/CustomMethodCardUploadBlockRow.view.tsx @@ -0,0 +1,100 @@ +"use client"; + +import { memo } from "react"; +import Upload from "../../../../components/controls/Upload"; +import InputLabel from "../../../../components/type/InputLabel"; +import { ASSETS, getAssetPath } from "../../../../../lib/assetUtils"; +import type { CustomMethodCardUploadBlockRowViewProps } from "./CustomMethodCardFieldBlocksSummary.types"; + +function CustomMethodCardUploadBlockRowViewComponent({ + block, + uploadFileInputAriaLabel, + uploadHint, + clearPendingUploadAriaLabel, + clearPendingUploadTooltip, + uploadPreviewImageAlt, + noFileChosen, + uploadInputRef, + busy, + uploadingHint, + errorMessage, + onClearUpload, + onFileInputChange, + onUploadClick, +}: CustomMethodCardUploadBlockRowViewProps) { + const displayName = block.fileName?.trim() ? block.fileName : noFileChosen; + const assetUrlTrimmed = block.assetUrl?.trim() ?? ""; + const hasAsset = assetUrlTrimmed.length > 0; + + return ( +
+ + {!hasAsset ? ( +

+ {displayName} +

+ ) : null} + + {hasAsset ? ( +
+ + {/* eslint-disable-next-line @next/next/no-img-element -- same-origin upload URL */} + {uploadPreviewImageAlt} +
+ ) : ( + + )} + {errorMessage ? ( +

+ {errorMessage} +

+ ) : null} +
+ ); +} + +export const CustomMethodCardUploadBlockRowView = memo( + CustomMethodCardUploadBlockRowViewComponent, +); +CustomMethodCardUploadBlockRowView.displayName = + "CustomMethodCardUploadBlockRowView"; diff --git a/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/index.tsx b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/index.tsx new file mode 100644 index 0000000..eabfb7e --- /dev/null +++ b/app/(app)/create/components/CustomMethodCardFieldBlocksSummary/index.tsx @@ -0,0 +1,2 @@ +export { default } from "./CustomMethodCardFieldBlocksSummary.container"; +export type { CustomMethodCardFieldBlocksSummaryProps } from "./CustomMethodCardFieldBlocksSummary.types"; diff --git a/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizard.view.tsx b/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizard.view.tsx index 237a3b7..e4616ce 100644 --- a/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizard.view.tsx +++ b/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizard.view.tsx @@ -6,7 +6,7 @@ import InputWithCounter from "../../../../components/controls/InputWithCounter"; import TextArea from "../../../../components/controls/TextArea"; import AddCustomField from "../../../../components/controls/AddCustomField"; import { CustomMethodCardWizardFieldBodiesView } from "./CustomMethodCardWizardFieldBodies.view"; -import { CustomMethodCardWizardBlocksListView } from "./CustomMethodCardWizardBlocksList.view"; +import { CustomMethodCardWizardBlocksList } from "./CustomMethodCardWizardBlocksList.container"; import type { CustomMethodCardWizardViewProps } from "./CustomMethodCardWizard.types"; function CustomMethodCardWizardViewComponent({ @@ -90,7 +90,7 @@ function CustomMethodCardWizardViewComponent({ {!fieldTypeModal && wizardStep === 3 ? (
{draftFieldBlocks.length > 0 ? ( - (null); + const [overIndex, setOverIndex] = useState(null); + + const clearDragUi = useCallback(() => { + setDraggingIndex(null); + setOverIndex(null); + }, []); + + const handleDragStart = useCallback( + (index: number) => (e: DragEvent) => { + e.dataTransfer.effectAllowed = "move"; + e.dataTransfer.setData("text/plain", String(index)); + setDraggingIndex(index); + }, + [], + ); + + const handleDragOver = useCallback((index: number) => { + return (e: DragEvent) => { + e.preventDefault(); + e.dataTransfer.dropEffect = "move"; + setOverIndex(index); + }; + }, []); + + const handleDrop = useCallback( + (index: number) => (e: DragEvent) => { + e.preventDefault(); + const from = Number.parseInt(e.dataTransfer.getData("text/plain"), 10); + if (Number.isNaN(from)) { + clearDragUi(); + return; + } + onBlocksReorder( + reorderCustomMethodCardFieldBlocks(blocks, from, index), + ); + clearDragUi(); + }, + [blocks, clearDragUi, onBlocksReorder], + ); + + return ( + + ); +} + +export const CustomMethodCardWizardBlocksList = memo( + CustomMethodCardWizardBlocksListContainerComponent, +); +CustomMethodCardWizardBlocksList.displayName = + "CustomMethodCardWizardBlocksList"; diff --git a/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.types.ts b/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.types.ts new file mode 100644 index 0000000..8714348 --- /dev/null +++ b/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.types.ts @@ -0,0 +1,21 @@ +import type { AddCustomFieldType } from "../../../../components/controls/AddCustomField/AddCustomField.types"; +import type { CustomMethodCardFieldBlock } from "../../../../../lib/create/customMethodCardFieldBlocks"; +import type { DragEvent } from "react"; + +export interface CustomMethodCardWizardBlocksListProps { + blocks: CustomMethodCardFieldBlock[]; + fieldTypeLabels: Record; + dragHandleAriaLabel: string; + listLabel: string; + onBlocksReorder: (_next: CustomMethodCardFieldBlock[]) => void; +} + +export interface CustomMethodCardWizardBlocksListViewProps + extends CustomMethodCardWizardBlocksListProps { + draggingIndex: number | null; + overIndex: number | null; + onDragStart: (_index: number) => (_e: DragEvent) => void; + onDragOver: (_index: number) => (_e: DragEvent) => void; + onDrop: (_index: number) => (_e: DragEvent) => void; + onDragEnd: () => void; +} diff --git a/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.view.tsx b/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.view.tsx index f27eebb..7b3f279 100644 --- a/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.view.tsx +++ b/app/(app)/create/components/CustomMethodCardWizard/CustomMethodCardWizardBlocksList.view.tsx @@ -1,11 +1,10 @@ "use client"; -import { memo, useCallback, useState, type DragEvent } from "react"; +import { memo } from "react"; import Icon from "../../../../components/asset/icon"; import { ADD_CUSTOM_FIELD_TYPE_ICONS } from "../../../../components/controls/AddCustomField/AddCustomField.types"; import type { AddCustomFieldType } from "../../../../components/controls/AddCustomField/AddCustomField.types"; -import type { CustomMethodCardFieldBlock } from "../../../../../lib/create/customMethodCardFieldBlocks"; -import { reorderCustomMethodCardFieldBlocks } from "../../../../../lib/create/reorderCustomMethodCardFieldBlocks"; +import type { CustomMethodCardWizardBlocksListViewProps } from "./CustomMethodCardWizardBlocksList.types"; function DragHandleGlyph({ className }: { className?: string }) { return ( @@ -28,62 +27,18 @@ function DragHandleGlyph({ className }: { className?: string }) { ); } -export interface CustomMethodCardWizardBlocksListViewProps { - blocks: CustomMethodCardFieldBlock[]; - fieldTypeLabels: Record; - dragHandleAriaLabel: string; - listLabel: string; - onBlocksReorder: (_next: CustomMethodCardFieldBlock[]) => void; -} - function CustomMethodCardWizardBlocksListViewComponent({ blocks, fieldTypeLabels, dragHandleAriaLabel, listLabel, - onBlocksReorder, + draggingIndex, + overIndex, + onDragStart, + onDragOver, + onDrop, + onDragEnd, }: CustomMethodCardWizardBlocksListViewProps) { - const [draggingIndex, setDraggingIndex] = useState(null); - const [overIndex, setOverIndex] = useState(null); - - const clearDragUi = useCallback(() => { - setDraggingIndex(null); - setOverIndex(null); - }, []); - - const handleDragStart = useCallback( - (index: number) => (e: DragEvent) => { - e.dataTransfer.effectAllowed = "move"; - e.dataTransfer.setData("text/plain", String(index)); - setDraggingIndex(index); - }, - [], - ); - - const handleDragOver = useCallback((index: number) => { - return (e: DragEvent) => { - e.preventDefault(); - e.dataTransfer.dropEffect = "move"; - setOverIndex(index); - }; - }, []); - - const handleDrop = useCallback( - (index: number) => (e: DragEvent) => { - e.preventDefault(); - const from = Number.parseInt(e.dataTransfer.getData("text/plain"), 10); - if (Number.isNaN(from)) { - clearDragUi(); - return; - } - onBlocksReorder( - reorderCustomMethodCardFieldBlocks(blocks, from, index), - ); - clearDragUi(); - }, - [blocks, clearDragUi, onBlocksReorder], - ); - return (
    {blocks.map((block, index) => { @@ -98,14 +53,14 @@ function CustomMethodCardWizardBlocksListViewComponent({ ? "ring-2 ring-[var(--color-border-invert-primary)] ring-offset-2 ring-offset-[var(--color-surface-default-primary)]" : "" } ${draggingIndex === index ? "opacity-60" : ""}`} - onDragOver={handleDragOver(index)} - onDrop={handleDrop(index)} + onDragOver={onDragOver(index)} + onDrop={onDrop(index)} >
@@ -77,24 +58,24 @@ export function UseCaseCompletedRuleView({ ) : null} setShareModalOpen(false)} - onCopyLink={() => void copyPageLink()} - onEmailShare={mailtoPageLink} - onSignalShare={() => void copyPageLink()} - onSlackShare={() => void copyPageLink()} - onDiscordShare={() => void copyPageLink()} + onClose={onShareClose} + onCopyLink={onCopyLink} + onEmailShare={onEmailShare} + onSignalShare={onCopyLink} + onSlackShare={onCopyLink} + onDiscordShare={onCopyLink} /> setShareModalOpen(true)} - onDuplicate={() => void handleDuplicate()} - onExit={() => router.push(`/use-cases/${slug}`)} + onShare={onShareOpen} + onDuplicate={onDuplicate} + onExit={onExit} />
; @@ -57,7 +57,7 @@ export default async function UseCaseCompletedRulePage({ params }: PageProps) { } return ( - (SECTION_IDS); * * See `docs/guides/template-recommendation-matrix.md` §9.2 / §10. */ -export async function GET(request: NextRequest) { - if (!isDatabaseConfigured()) { - return dbUnavailable(); - } +export const GET = apiRoute( + "createFlow.methods.get", + async (request: NextRequest) => { + if (!isDatabaseConfigured()) { + return dbUnavailable(); + } - const sectionParam = request.nextUrl.searchParams.get("section"); - if (!sectionParam || !SECTION_SET.has(sectionParam)) { - return NextResponse.json( - { - error: { - code: "validation_error", - message: `Unknown section. Expected one of: ${SECTION_IDS.join(", ")}`, - }, - }, - { status: 400 }, + const sectionParam = request.nextUrl.searchParams.get("section"); + if (!sectionParam || !SECTION_SET.has(sectionParam)) { + return errorJson( + "validation_error", + `Unknown section. Expected one of: ${SECTION_IDS.join(", ")}`, + 400, + ); + } + const section = sectionParam as SectionId; + + const facets = parseRequestedFacetsFromSearchParams( + request.nextUrl.searchParams, ); - } - const section = sectionParam as SectionId; + const result = await listMethodRecommendations({ section, facets }); + if (!result) { + // DB query failed; return empty so the wizard falls back to its messages + // deck in authoring order (§10). + return NextResponse.json({ section, methods: [] }); + } - const facets = parseRequestedFacetsFromSearchParams( - request.nextUrl.searchParams, - ); - const result = await listMethodRecommendations({ section, facets }); - if (!result) { - // DB query failed; return empty so the wizard falls back to its messages - // deck in authoring order (§10). - return NextResponse.json({ section, methods: [] }); - } - - const methods = result.rankedSlugs.map((slug) => ({ - slug, - matches: result.matchesBySlug[slug] ?? { score: 0, matchedFacets: [] }, - })); - return NextResponse.json({ section, methods }); -} + const methods = result.rankedSlugs.map((slug) => ({ + slug, + matches: result.matchesBySlug[slug] ?? { score: 0, matchedFacets: [] }, + })); + return NextResponse.json({ section, methods }); + }, +); diff --git a/app/api/health/route.ts b/app/api/health/route.ts index 60c4582..719d225 100644 --- a/app/api/health/route.ts +++ b/app/api/health/route.ts @@ -1,8 +1,9 @@ import { NextResponse } from "next/server"; import { prisma } from "../../../lib/server/db"; import { isDatabaseConfigured } from "../../../lib/server/env"; +import { apiRoute } from "../../../lib/server/apiRoute"; -export async function GET() { +export const GET = apiRoute("health.get", async () => { if (!isDatabaseConfigured()) { return NextResponse.json({ ok: true, @@ -16,4 +17,4 @@ export async function GET() { } catch { return NextResponse.json({ ok: false, database: "error" }, { status: 503 }); } -} +}); diff --git a/app/api/templates/route.ts b/app/api/templates/route.ts index 403d588..1128612 100644 --- a/app/api/templates/route.ts +++ b/app/api/templates/route.ts @@ -3,6 +3,7 @@ import { isDatabaseConfigured } from "../../../lib/server/env"; import { listRankedRuleTemplatesFromDb } from "../../../lib/server/ruleTemplates"; import { dbUnavailable } from "../../../lib/server/responses"; import { parseRequestedFacetsFromSearchParams } from "../../../lib/server/validation/methodFacetsSchemas"; +import { apiRoute } from "../../../lib/server/apiRoute"; /** * GET /api/templates @@ -15,7 +16,7 @@ import { parseRequestedFacetsFromSearchParams } from "../../../lib/server/valida * * See `docs/guides/template-recommendation-matrix.md` §9.1. */ -export async function GET(request: NextRequest) { +export const GET = apiRoute("templates.get", async (request: NextRequest) => { if (!isDatabaseConfigured()) { return dbUnavailable(); } @@ -29,4 +30,4 @@ export async function GET(request: NextRequest) { return NextResponse.json( hasScores ? { templates, scores } : { templates }, ); -} +}); diff --git a/app/api/web-vitals/route.ts b/app/api/web-vitals/route.ts index ea2b1df..8bf77f8 100644 --- a/app/api/web-vitals/route.ts +++ b/app/api/web-vitals/route.ts @@ -1,5 +1,6 @@ import { NextRequest, NextResponse } from "next/server"; import { logger } from "../../../lib/logger"; +import { apiRoute } from "../../../lib/server/apiRoute"; import { getWebVitalsStorageMode } from "../../../lib/server/webVitals/mode"; import { appendLocalWebVital, @@ -29,70 +30,54 @@ function logExternalIngest(body: WebVitalData): void { logger.info(line); } -export async function POST(request: NextRequest) { - try { - const limited = await readLimitedJson(request); - if (limited.ok === false) { - return limited.response; - } - - const parsed = webVitalIngestSchema.safeParse(limited.value); - if (!parsed.success) return jsonFromZodError(parsed.error); - - const body = parsed.data; - - const vitalsData: WebVitalData = { - metric: body.metric, - data: { - value: body.data.value, - rating: body.data.rating, - }, - url: body.url, - userAgent: body.userAgent, - timestamp: normalizeTimestamp(body.timestamp), - receivedAt: new Date().toISOString(), - }; - - const mode = getWebVitalsStorageMode(); - - if (mode === "external") { - logExternalIngest(vitalsData); - return NextResponse.json({ success: true, storage: "external" }); - } - - appendLocalWebVital(vitalsData); - logger.info( - `Web Vital received: ${body.metric} = ${body.data.value}ms (${body.data.rating})`, - ); - - return NextResponse.json({ success: true, storage: "local" }); - } catch (error) { - logger.error("Error processing web vital:", error); - return NextResponse.json( - { error: "Internal server error" }, - { status: 500 }, - ); +export const POST = apiRoute("webVitals.post", async (request: NextRequest) => { + const limited = await readLimitedJson(request); + if (limited.ok === false) { + return limited.response; } -} -export async function GET() { - try { - const mode = getWebVitalsStorageMode(); + const parsed = webVitalIngestSchema.safeParse(limited.value); + if (!parsed.success) return jsonFromZodError(parsed.error); - if (mode === "external") { - return NextResponse.json({ - metrics: {}, - storage: "external" as const, - }); - } + const body = parsed.data; - const metrics = readLocalAggregatedMetrics(); - return NextResponse.json({ metrics, storage: "local" as const }); - } catch (error) { - logger.error("Error fetching web vitals:", error); - return NextResponse.json( - { error: "Internal server error" }, - { status: 500 }, - ); + const vitalsData: WebVitalData = { + metric: body.metric, + data: { + value: body.data.value, + rating: body.data.rating, + }, + url: body.url, + userAgent: body.userAgent, + timestamp: normalizeTimestamp(body.timestamp), + receivedAt: new Date().toISOString(), + }; + + const mode = getWebVitalsStorageMode(); + + if (mode === "external") { + logExternalIngest(vitalsData); + return NextResponse.json({ success: true, storage: "external" }); } -} + + appendLocalWebVital(vitalsData); + logger.info( + `Web Vital received: ${body.metric} = ${body.data.value}ms (${body.data.rating})`, + ); + + return NextResponse.json({ success: true, storage: "local" }); +}); + +export const GET = apiRoute("webVitals.get", async () => { + const mode = getWebVitalsStorageMode(); + + if (mode === "external") { + return NextResponse.json({ + metrics: {}, + storage: "external" as const, + }); + } + + const metrics = readLocalAggregatedMetrics(); + return NextResponse.json({ metrics, storage: "local" as const }); +}); diff --git a/app/components/asset/logo/Logo.tsx b/app/components/asset/logo/Logo.tsx index 471d6b6..4fbe5e7 100644 --- a/app/components/asset/logo/Logo.tsx +++ b/app/components/asset/logo/Logo.tsx @@ -1,5 +1,8 @@ +"use client"; + import { memo } from "react"; import Link from "next/link"; +import { useTranslation } from "../../../contexts/MessagesContext"; import { getAssetPath, ASSETS } from "../../../../lib/assetUtils"; interface LogoProps { @@ -31,6 +34,8 @@ interface SizeConfig { const Logo = memo( ({ size = "default", palette = "default", wordmark = true }) => { + const t = useTranslation("controlsChrome"); + // Size configurations const sizes: Record = { default: { @@ -97,7 +102,7 @@ const Logo = memo( : "hidden"; return ( - +
( {/* Logo Text - responsive visibility for topNav sizes */}
- CommunityRule + {t("logoText")}
{/* Vector Icon */} {/* eslint-disable-next-line @next/next/no-img-element */} CommunityRule Logo Icon( onToggleExpand: controlledOnToggleExpand, hasMore = true, toggleLabel = DEFAULT_TOGGLE_LABEL, - showLessLabel = DEFAULT_SHOW_LESS_LABEL, + showLessLabel, title = "", description = "", layout = "default", @@ -37,6 +37,7 @@ const CardStackContainer = memo( addCardAriaLabel = "", onAddCard, }) => { + const t = useTranslation("controlsChrome"); const [internalExpanded, setInternalExpanded] = useState(false); const [internalSelectedIds, setInternalSelectedIds] = useState( [], @@ -84,7 +85,7 @@ const CardStackContainer = memo( onToggleExpand={handleToggleExpand} hasMore={hasMore} toggleLabel={toggleLabel} - showLessLabel={showLessLabel} + showLessLabel={showLessLabel ?? t("cardStackShowLess")} title={title} description={description} layout={layout} diff --git a/app/components/cards/Icon/Icon.container.tsx b/app/components/cards/Icon/Icon.container.tsx index 0ae8718..9126218 100644 --- a/app/components/cards/Icon/Icon.container.tsx +++ b/app/components/cards/Icon/Icon.container.tsx @@ -1,5 +1,9 @@ "use client"; +/** + * Figma: "Card / Icon" (see registry) + */ + import { memo, useId } from "react"; import { IconView } from "./Icon.view"; import type { IconProps } from "./Icon.types"; diff --git a/app/components/cards/Mini/Mini.container.tsx b/app/components/cards/Mini/Mini.container.tsx index 84b421e..7087b44 100644 --- a/app/components/cards/Mini/Mini.container.tsx +++ b/app/components/cards/Mini/Mini.container.tsx @@ -1,6 +1,11 @@ "use client"; +/** + * Figma: "Card / Mini" (see registry) + */ + import { memo, useMemo } from "react"; +import { useTranslation } from "../../../contexts/MessagesContext"; import MiniView from "./Mini.view"; import type { MiniProps } from "./Mini.types"; @@ -17,14 +22,16 @@ const MiniContainer = memo( href, ariaLabel, }) => { + const t = useTranslation("controlsChrome"); + // Compute aria-label const computedAriaLabel = useMemo( () => ariaLabel || (labelLine1 && labelLine2 ? `${labelLine1} ${labelLine2}` - : label || "Feature card"), - [ariaLabel, labelLine1, labelLine2, label], + : label || t("miniFeatureFallback")), + [ariaLabel, labelLine1, labelLine2, label, t], ); // Determine wrapper element and props diff --git a/app/components/cards/Stat/Stat.container.tsx b/app/components/cards/Stat/Stat.container.tsx index 67e5dda..12584bf 100644 --- a/app/components/cards/Stat/Stat.container.tsx +++ b/app/components/cards/Stat/Stat.container.tsx @@ -1,5 +1,9 @@ "use client"; +/** + * Figma: "Card / Stat" (21598-18215) + */ + import { memo } from "react"; import StatView from "./Stat.view"; import type { StatProps } from "./Stat.types"; diff --git a/app/components/content/ContentContainer/ContentContainer.view.tsx b/app/components/content/ContentContainer/ContentContainer.view.tsx index f837400..94a9c98 100644 --- a/app/components/content/ContentContainer/ContentContainer.view.tsx +++ b/app/components/content/ContentContainer/ContentContainer.view.tsx @@ -20,7 +20,7 @@ function ContentContainerView({ return (
{/* Content Container - gap between icon and text */}
diff --git a/app/components/controls/Chip/Chip.container.tsx b/app/components/controls/Chip/Chip.container.tsx index cfdbfb6..c126e61 100644 --- a/app/components/controls/Chip/Chip.container.tsx +++ b/app/components/controls/Chip/Chip.container.tsx @@ -1,6 +1,7 @@ "use client"; import { memo, useState, useEffect, useRef } from "react"; +import { useTranslation } from "../../../contexts/MessagesContext"; import ChipView from "./Chip.view"; import type { ChipProps } from "./Chip.types"; @@ -22,6 +23,7 @@ const ChipContainer = memo( onClose, ariaLabel, }) => { + const t = useTranslation("controlsChrome"); const state = stateProp; const palette = paletteProp; const size = sizeProp; @@ -92,6 +94,9 @@ const ChipContainer = memo( onInputKeyDown={isCustom ? handleKeyDown : undefined} inputRef={isCustom ? inputRef : undefined} ariaLabel={ariaLabel} + confirmAriaLabel={t("chipConfirm")} + typeToAddPlaceholder={t("chipTypeToAdd")} + closeAriaLabel={t("chipClose")} /> ); }, diff --git a/app/components/controls/Chip/Chip.types.ts b/app/components/controls/Chip/Chip.types.ts index d0ddc6c..2a082a6 100644 --- a/app/components/controls/Chip/Chip.types.ts +++ b/app/components/controls/Chip/Chip.types.ts @@ -68,4 +68,7 @@ export interface ChipViewProps { onInputKeyDown?: (event: React.KeyboardEvent) => void; inputRef?: React.RefObject; ariaLabel?: string; + confirmAriaLabel: string; + typeToAddPlaceholder: string; + closeAriaLabel: string; } diff --git a/app/components/controls/Chip/Chip.view.tsx b/app/components/controls/Chip/Chip.view.tsx index 6b11c84..7620104 100644 --- a/app/components/controls/Chip/Chip.view.tsx +++ b/app/components/controls/Chip/Chip.view.tsx @@ -19,6 +19,9 @@ function ChipView({ onInputKeyDown, inputRef, ariaLabel, + confirmAriaLabel, + typeToAddPlaceholder, + closeAriaLabel, }: ChipViewProps) { // The container is the source of truth for `disabled`. This allows // `state="disabled"` to be used purely as a visual (for toggle-group chips @@ -167,7 +170,7 @@ function ChipView({
)} diff --git a/app/components/controls/Switch/Switch.container.tsx b/app/components/controls/Switch/Switch.container.tsx index 232989a..cbe3b2c 100644 --- a/app/components/controls/Switch/Switch.container.tsx +++ b/app/components/controls/Switch/Switch.container.tsx @@ -1,6 +1,7 @@ "use client"; import { memo, useCallback, useId, forwardRef } from "react"; +import { useTranslation } from "../../../contexts/MessagesContext"; import { SwitchView } from "./Switch.view"; import type { SwitchProps } from "./Switch.types"; @@ -10,6 +11,7 @@ import type { SwitchProps } from "./Switch.types"; */ const SwitchContainer = memo( forwardRef((props, ref) => { + const t = useTranslation("controlsChrome"); const { propSwitch = false, onChange, @@ -154,6 +156,7 @@ const SwitchContainer = memo( trackClasses={trackClasses} thumbClasses={thumbClasses} labelClasses={labelClasses} + switchAriaLabel={text ?? t("toggleSwitch")} onClick={handleClick} onKeyDown={handleKeyDown} onFocus={handleFocus} diff --git a/app/components/controls/Switch/Switch.types.ts b/app/components/controls/Switch/Switch.types.ts index 167defd..d5a6de1 100644 --- a/app/components/controls/Switch/Switch.types.ts +++ b/app/components/controls/Switch/Switch.types.ts @@ -37,6 +37,7 @@ export interface SwitchViewProps { trackClasses: string; thumbClasses: string; labelClasses: string; + switchAriaLabel: string; onClick: (_e: React.MouseEvent) => void; onKeyDown: (_e: React.KeyboardEvent) => void; onFocus: (_e: React.FocusEvent) => void; diff --git a/app/components/controls/Switch/Switch.view.tsx b/app/components/controls/Switch/Switch.view.tsx index 414b000..1bd0b25 100644 --- a/app/components/controls/Switch/Switch.view.tsx +++ b/app/components/controls/Switch/Switch.view.tsx @@ -11,6 +11,7 @@ export const SwitchView = forwardRef( trackClasses, thumbClasses, labelClasses, + switchAriaLabel, onClick, onKeyDown, onFocus, @@ -27,7 +28,7 @@ export const SwitchView = forwardRef( type="button" role="switch" aria-checked={propSwitch} - aria-label={text || "Toggle switch"} + aria-label={switchAriaLabel} onClick={onClick} onKeyDown={onKeyDown} onFocus={onFocus} diff --git a/app/components/controls/TextArea/TextArea.container.tsx b/app/components/controls/TextArea/TextArea.container.tsx index 3287594..e48aeff 100644 --- a/app/components/controls/TextArea/TextArea.container.tsx +++ b/app/components/controls/TextArea/TextArea.container.tsx @@ -2,6 +2,7 @@ import { memo, forwardRef } from "react"; import { useComponentId, useFormField } from "../../../hooks"; +import { useTranslation } from "../../../contexts/MessagesContext"; import { TextAreaView } from "./TextArea.view"; import type { TextAreaProps } from "./TextArea.types"; @@ -35,6 +36,7 @@ const TextAreaContainer = forwardRef( }, ref, ) => { + const t = useTranslation("controlsChrome"); const size = sizeProp; const labelVariant = labelVariantProp; const state = stateProp; @@ -200,6 +202,8 @@ const TextAreaContainer = forwardRef( formHeader={formHeader} showHelpIcon={showHelpIcon} appearance={appearance} + helpIconAlt={t("helpIconAlt")} + hintDefault={t("hintDefault")} {...props} /> ); diff --git a/app/components/controls/TextArea/TextArea.types.ts b/app/components/controls/TextArea/TextArea.types.ts index b6981a5..5b8d98a 100644 --- a/app/components/controls/TextArea/TextArea.types.ts +++ b/app/components/controls/TextArea/TextArea.types.ts @@ -79,4 +79,6 @@ export interface TextAreaViewProps { formHeader?: boolean; showHelpIcon?: boolean; appearance?: "default" | "embedded"; + helpIconAlt: string; + hintDefault: string; } diff --git a/app/components/controls/TextArea/TextArea.view.tsx b/app/components/controls/TextArea/TextArea.view.tsx index 8b6e788..8b8a538 100644 --- a/app/components/controls/TextArea/TextArea.view.tsx +++ b/app/components/controls/TextArea/TextArea.view.tsx @@ -25,6 +25,8 @@ export const TextAreaView = forwardRef( formHeader = true, showHelpIcon = false, appearance: _appearance, + helpIconAlt, + hintDefault, // Component-only props: do not pass to DOM size: _size, labelVariant: _labelVariant, @@ -51,7 +53,7 @@ export const TextAreaView = forwardRef( {/* eslint-disable-next-line @next/next/no-img-element -- icon asset */} Help
@@ -81,7 +83,7 @@ export const TextAreaView = forwardRef( {textHint ? (

- {typeof textHint === "string" ? textHint : "Hint text here"} + {typeof textHint === "string" ? textHint : hintDefault}

) : null} diff --git a/app/components/controls/TextInput/TextInput.container.tsx b/app/components/controls/TextInput/TextInput.container.tsx index 8f312fb..4800c2f 100644 --- a/app/components/controls/TextInput/TextInput.container.tsx +++ b/app/components/controls/TextInput/TextInput.container.tsx @@ -2,6 +2,7 @@ import { memo, forwardRef, useState, useRef } from "react"; import { useComponentId, useFormField } from "../../../hooks"; +import { useTranslation } from "../../../contexts/MessagesContext"; import { TextInputView } from "./TextInput.view"; import type { TextInputProps } from "./TextInput.types"; @@ -34,6 +35,7 @@ const TextInputContainer = forwardRef( }, ref, ) => { + const t = useTranslation("controlsChrome"); const externalState = externalStateProp; const inputSize = inputSizeProp; @@ -244,6 +246,8 @@ const TextInputContainer = forwardRef( textHint={textHint} formHeader={formHeader} maxLength={maxLength} + helpIconAlt={t("helpIconAlt")} + hintDefault={t("hintDefault")} {...props} /> ); diff --git a/app/components/controls/TextInput/TextInput.types.ts b/app/components/controls/TextInput/TextInput.types.ts index de1e5ba..3e4fca7 100644 --- a/app/components/controls/TextInput/TextInput.types.ts +++ b/app/components/controls/TextInput/TextInput.types.ts @@ -65,4 +65,6 @@ export interface TextInputViewProps { textHint?: boolean | string; formHeader?: boolean; maxLength?: number; + helpIconAlt: string; + hintDefault: string; } diff --git a/app/components/controls/TextInput/TextInput.view.tsx b/app/components/controls/TextInput/TextInput.view.tsx index 7e114c9..70ee44b 100644 --- a/app/components/controls/TextInput/TextInput.view.tsx +++ b/app/components/controls/TextInput/TextInput.view.tsx @@ -29,6 +29,8 @@ export const TextInputView = forwardRef( textHint = false, formHeader = true, maxLength, + helpIconAlt, + hintDefault, }, ref, ) => { @@ -49,7 +51,7 @@ export const TextInputView = forwardRef( {/* eslint-disable-next-line @next/next/no-img-element -- icon asset */} Help
@@ -83,7 +85,7 @@ export const TextInputView = forwardRef( {textHint && (

- {typeof textHint === "string" ? textHint : "Hint text here"} + {typeof textHint === "string" ? textHint : hintDefault}

)} diff --git a/app/components/controls/ToggleGroup/ToggleGroup.container.tsx b/app/components/controls/ToggleGroup/ToggleGroup.container.tsx index 3efee12..885f3c1 100644 --- a/app/components/controls/ToggleGroup/ToggleGroup.container.tsx +++ b/app/components/controls/ToggleGroup/ToggleGroup.container.tsx @@ -1,6 +1,7 @@ "use client"; import { memo, useCallback, useId, forwardRef } from "react"; +import { useTranslation } from "../../../contexts/MessagesContext"; import { ToggleGroupView } from "./ToggleGroup.view"; import type { ToggleGroupProps } from "./ToggleGroup.types"; @@ -10,6 +11,7 @@ import type { ToggleGroupProps } from "./ToggleGroup.types"; */ const ToggleGroupContainer = memo( forwardRef((props, _ref) => { + const t = useTranslation("controlsChrome"); const { children, className = "", @@ -131,6 +133,7 @@ const ToggleGroupContainer = memo( state={state} showText={showText} ariaLabel={ariaLabel} + defaultToggleOptionAriaLabel={t("toggleOption")} toggleClasses={toggleClasses} onClick={handleClick} onKeyDown={handleKeyDown} diff --git a/app/components/controls/ToggleGroup/ToggleGroup.types.ts b/app/components/controls/ToggleGroup/ToggleGroup.types.ts index 0d6c424..4d75fb0 100644 --- a/app/components/controls/ToggleGroup/ToggleGroup.types.ts +++ b/app/components/controls/ToggleGroup/ToggleGroup.types.ts @@ -35,6 +35,7 @@ export interface ToggleGroupViewProps { state: "default" | "hover" | "focus" | "selected"; showText: boolean; ariaLabel?: string; + defaultToggleOptionAriaLabel: string; toggleClasses: string; onClick: (_e: React.MouseEvent) => void; onKeyDown: (_e: React.KeyboardEvent) => void; diff --git a/app/components/controls/ToggleGroup/ToggleGroup.view.tsx b/app/components/controls/ToggleGroup/ToggleGroup.view.tsx index 5daabec..a8f3711 100644 --- a/app/components/controls/ToggleGroup/ToggleGroup.view.tsx +++ b/app/components/controls/ToggleGroup/ToggleGroup.view.tsx @@ -8,6 +8,7 @@ export function ToggleGroupView({ state: _state, showText, ariaLabel, + defaultToggleOptionAriaLabel, toggleClasses, onClick, onKeyDown, @@ -20,7 +21,7 @@ export function ToggleGroupView({ id={groupId} type="button" role="button" - aria-label={ariaLabel || (showText ? undefined : "Toggle option")} + aria-label={ariaLabel || (showText ? undefined : defaultToggleOptionAriaLabel)} onClick={onClick} onKeyDown={onKeyDown} onFocus={onFocus} diff --git a/app/components/controls/Upload/Upload.container.tsx b/app/components/controls/Upload/Upload.container.tsx index 622621b..dbb0f11 100644 --- a/app/components/controls/Upload/Upload.container.tsx +++ b/app/components/controls/Upload/Upload.container.tsx @@ -1,6 +1,7 @@ "use client"; import { memo } from "react"; +import { useTranslation } from "../../../contexts/MessagesContext"; import UploadView from "./Upload.view"; import type { UploadProps } from "./Upload.types"; @@ -13,16 +14,20 @@ const UploadContainer = memo( active = true, label, showHelpIcon = true, - hintText = "Add image from your device", + hintText, onClick, className = "", }) => { + const t = useTranslation("controlsChrome"); + return ( diff --git a/app/components/controls/Upload/Upload.types.ts b/app/components/controls/Upload/Upload.types.ts index 9940390..7d9ad55 100644 --- a/app/components/controls/Upload/Upload.types.ts +++ b/app/components/controls/Upload/Upload.types.ts @@ -35,6 +35,8 @@ export interface UploadViewProps { label?: string; showHelpIcon: boolean; hintText: string; + uploadButtonLabel: string; + uploadAriaLabel: string; onClick?: () => void; className: string; } diff --git a/app/components/controls/Upload/Upload.view.tsx b/app/components/controls/Upload/Upload.view.tsx index c61dbf4..db8d8db 100644 --- a/app/components/controls/Upload/Upload.view.tsx +++ b/app/components/controls/Upload/Upload.view.tsx @@ -9,6 +9,8 @@ function UploadView({ label, showHelpIcon = true, hintText, + uploadButtonLabel, + uploadAriaLabel, onClick, className = "", }: UploadViewProps) { @@ -56,7 +58,7 @@ function UploadView({ type="button" onClick={onClick} className={`${buttonBgClass} flex gap-[var(--measures-spacing-150,6px)] items-center justify-center overflow-clip px-[var(--space-400,16px)] py-[var(--measures-spacing-300,12px)] rounded-[var(--measures-radius-full,9999px)] shrink-0 hover:opacity-80 transition-opacity`} - aria-label="Upload" + aria-label={uploadAriaLabel} > {/* Upload icon */}
@@ -98,7 +100,7 @@ function UploadView({
-

Upload

+

{uploadButtonLabel}

diff --git a/app/components/localization/LanguageSwitcher/LanguageSwitcher.container.tsx b/app/components/localization/LanguageSwitcher/LanguageSwitcher.container.tsx index 51832c4..5904192 100644 --- a/app/components/localization/LanguageSwitcher/LanguageSwitcher.container.tsx +++ b/app/components/localization/LanguageSwitcher/LanguageSwitcher.container.tsx @@ -1,5 +1,9 @@ "use client"; +/** + * Figma: "localization/LanguageSwitcher" (see registry) + */ + import { memo } from "react"; import LanguageSwitcherView from "./LanguageSwitcher.view"; import type { LanguageSwitcherProps } from "./LanguageSwitcher.types"; diff --git a/app/components/modals/Alert/Alert.container.tsx b/app/components/modals/Alert/Alert.container.tsx index ce01a55..cc78e0f 100644 --- a/app/components/modals/Alert/Alert.container.tsx +++ b/app/components/modals/Alert/Alert.container.tsx @@ -6,6 +6,7 @@ */ import { memo } from "react"; +import { useTranslation } from "../../../contexts/MessagesContext"; import { AlertView } from "./Alert.view"; import type { AlertProps } from "./Alert.types"; @@ -74,6 +75,7 @@ const AlertContainer = memo( onClose, className = "", }) => { + const t = useTranslation("controlsChrome"); const status = statusProp; const type = typeProp; const size = sizeProp; @@ -175,6 +177,7 @@ const AlertContainer = memo( iconColor={statusStyles.iconColor} closeButtonIconColor={statusStyles.closeButtonIconColor} onClose={onClose} + closeAlertAriaLabel={t("closeAlert")} /> ); }, diff --git a/app/components/modals/Alert/Alert.types.ts b/app/components/modals/Alert/Alert.types.ts index 3278b1b..fe6d331 100644 --- a/app/components/modals/Alert/Alert.types.ts +++ b/app/components/modals/Alert/Alert.types.ts @@ -57,4 +57,5 @@ export interface AlertViewProps { iconColor: string; closeButtonIconColor: string; onClose?: () => void; + closeAlertAriaLabel: string; } diff --git a/app/components/modals/Alert/Alert.view.tsx b/app/components/modals/Alert/Alert.view.tsx index 08a67b6..41d0c63 100644 --- a/app/components/modals/Alert/Alert.view.tsx +++ b/app/components/modals/Alert/Alert.view.tsx @@ -17,6 +17,7 @@ export function AlertView({ iconColor, closeButtonIconColor, onClose, + closeAlertAriaLabel, }: AlertViewProps) { const getIcon = () => { // Use the Icon_Alert.svg with dynamic fill color @@ -61,7 +62,7 @@ export function AlertView({ palette="default" size="large" onClick={onClose} - ariaLabel="Close alert" + ariaLabel={closeAlertAriaLabel} className="shrink-0 [&_svg_path]:transition-colors [&_svg_path]:duration-200 hover:[&_svg_path]:fill-[var(--color-content-default-primary)]" > ((props) => { - const { menuItems = [] } = props; + const t = useTranslation("controlsChrome"); + const { + closeButtonAriaLabel = t("closeDialog"), + moreOptionsAriaLabel = t("moreOptions"), + menuAriaLabel = t("moreOptionsMenu"), + menuItems = [], + ...rest + } = props; const hasMenu = menuItems.length > 0; const [menuOpen, setMenuOpen] = useState(false); const menuId = useId(); @@ -44,7 +52,11 @@ const ModalHeaderContainer = memo((props) => { return (
setMenuOpen((open) => !open) : undefined} diff --git a/app/components/modals/ModalHeader/ModalHeader.view.tsx b/app/components/modals/ModalHeader/ModalHeader.view.tsx index 29aedd4..edf9764 100644 --- a/app/components/modals/ModalHeader/ModalHeader.view.tsx +++ b/app/components/modals/ModalHeader/ModalHeader.view.tsx @@ -11,9 +11,9 @@ export function ModalHeaderView({ onMoreOptions, showCloseButton = true, showMoreOptionsButton = true, - closeButtonAriaLabel = "Close dialog", - moreOptionsAriaLabel = "More options", - menuAriaLabel = "More options menu", + closeButtonAriaLabel, + moreOptionsAriaLabel, + menuAriaLabel, menuItems = [], menuId, menuOpen = false, diff --git a/app/components/modals/Tooltip/Tooltip.container.tsx b/app/components/modals/Tooltip/Tooltip.container.tsx index 1781f41..9b17351 100644 --- a/app/components/modals/Tooltip/Tooltip.container.tsx +++ b/app/components/modals/Tooltip/Tooltip.container.tsx @@ -1,5 +1,9 @@ "use client"; +/** + * Figma: "Modal / Tooltip" (see registry) + */ + import { memo, useState } from "react"; import { TooltipView } from "./Tooltip.view"; import type { TooltipProps } from "./Tooltip.types"; diff --git a/app/components/navigation/CreateFlowFooter/CreateFlowFooter.container.tsx b/app/components/navigation/CreateFlowFooter/CreateFlowFooter.container.tsx index 333fdf0..1ad6429 100644 --- a/app/components/navigation/CreateFlowFooter/CreateFlowFooter.container.tsx +++ b/app/components/navigation/CreateFlowFooter/CreateFlowFooter.container.tsx @@ -1,6 +1,7 @@ "use client"; import { memo } from "react"; +import { useTranslation } from "../../../contexts/MessagesContext"; import { CreateFlowFooterView } from "./CreateFlowFooter.view"; import type { CreateFlowFooterProps } from "./CreateFlowFooter.types"; @@ -16,7 +17,10 @@ const CreateFlowFooterContainer = memo( proportionBarVariant, onBackClick, className = "", + footerAriaLabel, }) => { + const t = useTranslation("controlsChrome"); + return ( ( proportionBarVariant={proportionBarVariant} onBackClick={onBackClick} className={className} + footerAriaLabel={footerAriaLabel ?? t("createFlowFooterAriaLabel")} /> ); }, diff --git a/app/components/navigation/CreateFlowFooter/CreateFlowFooter.types.ts b/app/components/navigation/CreateFlowFooter/CreateFlowFooter.types.ts index ad169d1..c97b0ba 100644 --- a/app/components/navigation/CreateFlowFooter/CreateFlowFooter.types.ts +++ b/app/components/navigation/CreateFlowFooter/CreateFlowFooter.types.ts @@ -36,4 +36,8 @@ export interface CreateFlowFooterProps { * Additional CSS classes */ className?: string; + /** + * Accessible name for the footer landmark. + */ + footerAriaLabel?: string; } diff --git a/app/components/navigation/CreateFlowFooter/CreateFlowFooter.view.tsx b/app/components/navigation/CreateFlowFooter/CreateFlowFooter.view.tsx index 47265bb..3f6f81a 100644 --- a/app/components/navigation/CreateFlowFooter/CreateFlowFooter.view.tsx +++ b/app/components/navigation/CreateFlowFooter/CreateFlowFooter.view.tsx @@ -9,13 +9,14 @@ export function CreateFlowFooterView({ proportionBarVariant: proportionBarVariantProp, onBackClick, className = "", + footerAriaLabel, }: CreateFlowFooterProps) { const proportionBarVariant = proportionBarVariantProp ?? "default"; return (
{/* Progress Bar - Top */} {progressBar && ( diff --git a/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.container.tsx b/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.container.tsx index 6f19796..1ef8d54 100644 --- a/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.container.tsx +++ b/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.container.tsx @@ -1,10 +1,14 @@ "use client"; -import { memo } from "react"; +import { memo, useCallback, useEffect, useId, useMemo, useRef, useState } from "react"; import { useRouter } from "next/navigation"; +import { useCreateFlowSm2Up } from "../../../(app)/create/hooks/useCreateFlowSm2Up"; import { useTranslation } from "../../../contexts/MessagesContext"; import { CreateFlowTopNavView } from "./CreateFlowTopNav.view"; -import type { CreateFlowTopNavProps } from "./CreateFlowTopNav.types"; +import type { + CreateFlowTopNavActionMenuItem, + CreateFlowTopNavProps, +} from "./CreateFlowTopNav.types"; /** * Figma: Utility / CreateFlowTopNav — wizard header (create-flow chrome). @@ -34,15 +38,168 @@ const CreateFlowTopNavContainer = memo( const router = useRouter(); const t = useTranslation("create.topNav"); const tPopover = useTranslation("modals.popoverExport"); + const sm2Up = useCreateFlowSm2Up(); + const exitButtonText = + exitLabel ?? (saveDraftOnExit ? t("saveAndExit") : t("exit")); + const [exportMenuOpen, setExportMenuOpen] = useState(false); + const [actionsMenuOpen, setActionsMenuOpen] = useState(false); + const exportWrapRef = useRef(null); + const actionsWrapRef = useRef(null); + const exportMenuId = useId(); + const actionsMenuId = useId(); - const handleExit = (options?: { saveDraft?: boolean }) => { - if (onExit) { - onExit(options); - } else { - // Default behavior: navigate to home - router.push("/"); + const handleExit = useCallback( + (options?: { saveDraft?: boolean }) => { + if (onExit) { + onExit(options); + } else { + // Default behavior: navigate to home + router.push("/"); + } + }, + [onExit, router], + ); + + const hasSecondaryActions = + hasShare || + hasExport || + hasEdit || + hasDuplicate || + hasManageStakeholders; + const useKebabMenu = hasSecondaryActions && !sm2Up; + + const actionMenuItems = useMemo((): CreateFlowTopNavActionMenuItem[] => { + const items: CreateFlowTopNavActionMenuItem[] = []; + + if (hasShare && onShare) { + items.push({ + id: "share", + label: t("share"), + leadingIcon: "mail", + onClick: onShare, + }); } - }; + + if (hasExport && onSelectExportFormat) { + items.push( + { + id: "export-pdf", + label: tPopover("downloadPdf"), + leadingIcon: "picture_as_pdf", + onClick: () => onSelectExportFormat("pdf"), + }, + { + id: "export-csv", + label: tPopover("downloadCsv"), + leadingIcon: "csv", + onClick: () => onSelectExportFormat("csv"), + }, + { + id: "export-markdown", + label: tPopover("downloadMarkdown"), + leadingIcon: "markdown_copy", + onClick: () => onSelectExportFormat("markdown"), + }, + ); + } + + if (hasDuplicate && onDuplicate) { + items.push({ + id: "duplicate", + label: duplicateLabel ?? t("edit"), + leadingIcon: "content_copy", + onClick: onDuplicate, + }); + } else if (hasEdit && onEdit) { + items.push({ + id: "edit", + label: t("edit"), + leadingIcon: "edit", + onClick: onEdit, + }); + } + + if (hasManageStakeholders && onManageStakeholders) { + items.push({ + id: "manage-stakeholders", + label: t("manageStakeholders"), + leadingIcon: "tags", + onClick: onManageStakeholders, + }); + } + + items.push({ + id: "exit", + label: exitButtonText, + leadingIcon: "log_out", + onClick: () => void handleExit({ saveDraft: saveDraftOnExit }), + }); + + return items; + }, [ + duplicateLabel, + exitButtonText, + handleExit, + hasDuplicate, + hasEdit, + hasExport, + hasManageStakeholders, + hasShare, + onDuplicate, + onEdit, + onManageStakeholders, + onSelectExportFormat, + onShare, + saveDraftOnExit, + t, + tPopover, + ]); + + useEffect(() => { + if (!exportMenuOpen) return; + const onDoc = (e: MouseEvent) => { + if ( + exportWrapRef.current && + !exportWrapRef.current.contains(e.target as Node) + ) { + setExportMenuOpen(false); + } + }; + document.addEventListener("mousedown", onDoc); + return () => document.removeEventListener("mousedown", onDoc); + }, [exportMenuOpen]); + + useEffect(() => { + if (!actionsMenuOpen) return; + const onDoc = (e: MouseEvent) => { + if ( + actionsWrapRef.current && + !actionsWrapRef.current.contains(e.target as Node) + ) { + setActionsMenuOpen(false); + } + }; + document.addEventListener("mousedown", onDoc); + return () => document.removeEventListener("mousedown", onDoc); + }, [actionsMenuOpen]); + + useEffect(() => { + if (!exportMenuOpen) return; + const onKey = (e: KeyboardEvent) => { + if (e.key === "Escape") setExportMenuOpen(false); + }; + window.addEventListener("keydown", onKey); + return () => window.removeEventListener("keydown", onKey); + }, [exportMenuOpen]); + + useEffect(() => { + if (!actionsMenuOpen) return; + const onKey = (e: KeyboardEvent) => { + if (e.key === "Escape") setActionsMenuOpen(false); + }; + window.addEventListener("keydown", onKey); + return () => window.removeEventListener("keydown", onKey); + }, [actionsMenuOpen]); return ( ( duplicateAriaLabel={duplicateAriaLabel} buttonPalette={buttonPalette} className={className} + exitButtonText={exitButtonText} + useKebabMenu={useKebabMenu} + exportMenuOpen={exportMenuOpen} + setExportMenuOpen={setExportMenuOpen} + actionsMenuOpen={actionsMenuOpen} + setActionsMenuOpen={setActionsMenuOpen} + exportWrapRef={exportWrapRef} + actionsWrapRef={actionsWrapRef} + exportMenuId={exportMenuId} + actionsMenuId={actionsMenuId} + actionMenuItems={actionMenuItems} exportPopoverMenuAriaLabel={tPopover("menuAriaLabel")} exportPopoverPdfLabel={tPopover("downloadPdf")} exportPopoverCsvLabel={tPopover("downloadCsv")} diff --git a/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.types.ts b/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.types.ts index aa15f25..ba0de11 100644 --- a/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.types.ts +++ b/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.types.ts @@ -5,6 +5,16 @@ * Includes logo and action buttons (Share, Export, Edit, Exit). */ +import type { Dispatch, RefObject, SetStateAction } from "react"; +import type { IconName } from "../../asset/icon"; + +export type CreateFlowTopNavActionMenuItem = { + id: string; + label: string; + leadingIcon: IconName; + onClick: () => void; +}; + export interface CreateFlowTopNavProps { /** * Whether to show the Share button @@ -81,8 +91,19 @@ export interface CreateFlowTopNavProps { className?: string; } -/** Resolved copy for the export popover; supplied by the container. */ +/** Resolved copy and menu state; supplied by the container. */ export type CreateFlowTopNavViewProps = CreateFlowTopNavProps & { + exitButtonText: string; + useKebabMenu: boolean; + exportMenuOpen: boolean; + setExportMenuOpen: Dispatch>; + actionsMenuOpen: boolean; + setActionsMenuOpen: Dispatch>; + exportWrapRef: RefObject; + actionsWrapRef: RefObject; + exportMenuId: string; + actionsMenuId: string; + actionMenuItems: CreateFlowTopNavActionMenuItem[]; exportPopoverMenuAriaLabel: string; exportPopoverPdfLabel: string; exportPopoverCsvLabel: string; diff --git a/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.view.tsx b/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.view.tsx index aaffb45..072a614 100644 --- a/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.view.tsx +++ b/app/components/navigation/CreateFlowTopNav/CreateFlowTopNav.view.tsx @@ -1,12 +1,9 @@ "use client"; -import { useEffect, useId, useMemo, useRef, useState } from "react"; -import type { IconName } from "../../asset/icon"; import Logo from "../../asset/Logo"; import Button from "../../buttons/Button"; import ListItem from "../../layout/ListItem"; import Popover from "../../modals/Popover"; -import { useCreateFlowSm2Up } from "../../../(app)/create/hooks/useCreateFlowSm2Up"; import { useTranslation } from "../../../contexts/MessagesContext"; import type { CreateFlowTopNavViewProps } from "./CreateFlowTopNav.types"; @@ -16,13 +13,6 @@ const outlineButtonClass = const exitButtonFigmaClass = "!rounded-[var(--radius-measures-radius-full,9999px)] !border-[1.25px] !px-[var(--spacing-measures-spacing-250,10px)] !py-[var(--spacing-measures-spacing-200,8px)] md:!text-[12px] md:!leading-[14px]"; -type ActionMenuItem = { - id: string; - label: string; - leadingIcon: IconName; - onClick: () => void; -}; - function KebabIcon({ className = "" }: { className?: string }) { return ( (null); - const actionsWrapRef = useRef(null); - const exportMenuId = useId(); - const actionsMenuId = useId(); const hasSecondaryActions = hasShare || @@ -83,142 +74,6 @@ export function CreateFlowTopNavView({ hasEdit || hasDuplicate || hasManageStakeholders; - const useKebabMenu = hasSecondaryActions && !sm2Up; - - const actionMenuItems = useMemo((): ActionMenuItem[] => { - const items: ActionMenuItem[] = []; - - if (hasShare && onShare) { - items.push({ - id: "share", - label: t("share"), - leadingIcon: "mail", - onClick: onShare, - }); - } - - if (hasExport && onSelectExportFormat) { - items.push( - { - id: "export-pdf", - label: exportPopoverPdfLabel, - leadingIcon: "picture_as_pdf", - onClick: () => onSelectExportFormat("pdf"), - }, - { - id: "export-csv", - label: exportPopoverCsvLabel, - leadingIcon: "csv", - onClick: () => onSelectExportFormat("csv"), - }, - { - id: "export-markdown", - label: exportPopoverMarkdownLabel, - leadingIcon: "markdown_copy", - onClick: () => onSelectExportFormat("markdown"), - }, - ); - } - - if (hasDuplicate && onDuplicate) { - items.push({ - id: "duplicate", - label: duplicateLabel ?? t("edit"), - leadingIcon: "content_copy", - onClick: onDuplicate, - }); - } else if (hasEdit && onEdit) { - items.push({ - id: "edit", - label: t("edit"), - leadingIcon: "edit", - onClick: onEdit, - }); - } - - if (hasManageStakeholders && onManageStakeholders) { - items.push({ - id: "manage-stakeholders", - label: t("manageStakeholders"), - leadingIcon: "tags", - onClick: onManageStakeholders, - }); - } - - items.push({ - id: "exit", - label: exitButtonText, - leadingIcon: "log_out", - onClick: () => void onExit?.({ saveDraft: saveDraftOnExit }), - }); - - return items; - }, [ - duplicateLabel, - exitButtonText, - exportPopoverCsvLabel, - exportPopoverMarkdownLabel, - exportPopoverPdfLabel, - hasDuplicate, - hasEdit, - hasExport, - hasManageStakeholders, - hasShare, - onDuplicate, - onEdit, - onExit, - onManageStakeholders, - onSelectExportFormat, - onShare, - saveDraftOnExit, - t, - ]); - - useEffect(() => { - if (!exportMenuOpen) return; - const onDoc = (e: MouseEvent) => { - if ( - exportWrapRef.current && - !exportWrapRef.current.contains(e.target as Node) - ) { - setExportMenuOpen(false); - } - }; - document.addEventListener("mousedown", onDoc); - return () => document.removeEventListener("mousedown", onDoc); - }, [exportMenuOpen]); - - useEffect(() => { - if (!actionsMenuOpen) return; - const onDoc = (e: MouseEvent) => { - if ( - actionsWrapRef.current && - !actionsWrapRef.current.contains(e.target as Node) - ) { - setActionsMenuOpen(false); - } - }; - document.addEventListener("mousedown", onDoc); - return () => document.removeEventListener("mousedown", onDoc); - }, [actionsMenuOpen]); - - useEffect(() => { - if (!exportMenuOpen) return; - const onKey = (e: KeyboardEvent) => { - if (e.key === "Escape") setExportMenuOpen(false); - }; - window.addEventListener("keydown", onKey); - return () => window.removeEventListener("keydown", onKey); - }, [exportMenuOpen]); - - useEffect(() => { - if (!actionsMenuOpen) return; - const onKey = (e: KeyboardEvent) => { - if (e.key === "Escape") setActionsMenuOpen(false); - }; - window.addEventListener("keydown", onKey); - return () => window.removeEventListener("keydown", onKey); - }, [actionsMenuOpen]); const inlineActions = ( <> diff --git a/app/components/navigation/Footer.tsx b/app/components/navigation/Footer.tsx index d246074..e981b9a 100644 --- a/app/components/navigation/Footer.tsx +++ b/app/components/navigation/Footer.tsx @@ -14,6 +14,7 @@ import { getAssetPath, ASSETS } from "../../../lib/assetUtils"; */ const Footer = memo(() => { const t = useTranslation("footer"); + const tChrome = useTranslation("controlsChrome"); const linkFocusClass = "hover:opacity-80 active:opacity-60 focus:opacity-80 focus:outline-none focus:ring-2 focus:ring-[var(--color-content-default-primary)] focus:ring-offset-2 focus:ring-offset-[var(--color-surface-default-primary)] transition-opacity"; @@ -129,7 +130,7 @@ const Footer = memo(() => {
); @@ -82,22 +64,22 @@ export function AskOrganizerInquiryModalView({ isOpen={isOpen} onClose={onClose} backdropVariant="blurredYellow" - title={t("title")} - description={t("description")} + title={copy.title} + description={copy.description} showBackButton={false} showNextButton={false} stepper={false} - ariaLabel={t("ariaDialog")} + ariaLabel={copy.ariaDialog} footerContent={footer} footerClassName="!h-auto min-h-[112px] shrink-0 flex flex-col justify-end pb-8 pt-3 px-4" > {success ? (

- {t("successTitle")} + {copy.successTitle}

- {t("successDescription")} + {copy.successDescription}

) : ( @@ -120,8 +102,8 @@ export function AskOrganizerInquiryModalView({ type="email" name="email" autoComplete="email" - label={t("emailLabel")} - placeholder={t("emailPlaceholder")} + label={copy.emailLabel} + placeholder={copy.emailPlaceholder} value={email} onChange={(e) => onEmailChange(e.target.value)} error={emailError} @@ -131,8 +113,8 @@ export function AskOrganizerInquiryModalView({