@cdt5058/json-render-uswds 0.0.1 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/components.tsx","../src/catalog.ts"],"sourcesContent":["// Component implementations\nexport { uswdsComponents } from \"./components\";\n\n// Catalog definitions (also available via @json-render/uswds/catalog)\nexport {\n uswdsComponentDefinitions,\n type UswdsComponentDefinition,\n type UswdsProps,\n} from \"./catalog\";\n","\"use client\";\n\nimport { useState, useId } from \"react\";\nimport {\n useBoundProp,\n useStateBinding,\n useFieldValidation,\n type BaseComponentProps,\n} from \"@json-render/react\";\n\nimport { type UswdsProps } from \"./catalog\";\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\n/**\n * Block javascript:, vbscript:, and data: URIs to prevent XSS via href/src.\n * Returns \"#\" for any dangerous URL; otherwise returns the original value.\n */\nfunction safeHref(url: string | null | undefined): string | undefined {\n if (!url) return undefined;\n if (/^\\s*(javascript|vbscript|data):/i.test(url)) return \"#\";\n return url;\n}\n\n/**\n * Sanitize a user-supplied URL for use inside a CSS url() value.\n * Strips characters that could break the url() context or trigger\n * CSS injection (quotes, parens, backslashes, newlines).\n */\nfunction safeCssUrl(url: string | null | undefined): string | undefined {\n if (!url) return undefined;\n return url.replace(/['\"()\\\\\\n\\r]/g, \"\");\n}\n\nfunction getPaginationRange(\n current: number,\n total: number,\n): Array<number | \"ellipsis\"> {\n if (total <= 7) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n const pages: Array<number | \"ellipsis\"> = [];\n pages.push(1);\n if (current > 3) pages.push(\"ellipsis\");\n const start = Math.max(2, current - 1);\n const end = Math.min(total - 1, current + 1);\n for (let i = start; i <= end; i++) pages.push(i);\n if (current < total - 2) pages.push(\"ellipsis\");\n pages.push(total);\n return pages;\n}\n\nfunction getButtonClass(variant: string | null | undefined): string {\n const base = \"usa-button\";\n switch (variant) {\n case \"secondary\":\n return `${base} usa-button--secondary`;\n case \"accent-cool\":\n return `${base} usa-button--accent-cool`;\n case \"accent-warm\":\n return `${base} usa-button--accent-warm`;\n case \"base\":\n return `${base} usa-button--base`;\n case \"outline\":\n return `${base} usa-button--outline`;\n case \"outline-inverse\":\n return `${base} usa-button--outline usa-button--inverse`;\n case \"big\":\n return `${base} usa-button--big`;\n case \"unstyled\":\n return `${base} usa-button--unstyled`;\n default:\n return base;\n }\n}\n\n// =============================================================================\n// USWDS Component Implementations\n// =============================================================================\n\n/**\n * USWDS component implementations for json-render.\n *\n * Requires USWDS CSS to be loaded in your application:\n * ```ts\n * import \"@uswds/uswds/css/uswds.css\";\n * // or via CDN: https://designsystem.digital.gov/how-to-use-uswds/\n * ```\n *\n * @example\n * ```ts\n * import { defineRegistry } from \"@json-render/react\";\n * import { uswdsComponents } from \"@json-render/uswds\";\n *\n * const { registry } = defineRegistry(catalog, {\n * components: {\n * Button: uswdsComponents.Button,\n * Alert: uswdsComponents.Alert,\n * },\n * });\n * ```\n */\nexport const uswdsComponents = {\n // ── Layout ────────────────────────────────────────────────────────────\n\n Grid: ({ props, children }: BaseComponentProps<UswdsProps<\"Grid\">>) => {\n const cols = Math.max(1, Math.min(12, props.columns ?? 1));\n const gapMap: Record<string, string> = {\n sm: \"grid-gap-sm\",\n md: \"grid-gap\",\n lg: \"grid-gap-lg\",\n };\n const gapClass = gapMap[props.gap ?? \"md\"] ?? \"grid-gap\";\n\n return (\n <div className={`grid-row ${gapClass}`}>\n {/* Wrap each child in an equal-width column */}\n {Array.isArray(children) ? (\n children.map((child, i) => (\n <div\n key={i}\n className={`tablet:grid-col-${Math.floor(12 / cols)}`}\n >\n {child}\n </div>\n ))\n ) : (\n <div className={`tablet:grid-col-${Math.floor(12 / cols)}`}>\n {children}\n </div>\n )}\n </div>\n );\n },\n\n Card: ({ props, children }: BaseComponentProps<UswdsProps<\"Card\">>) => {\n return (\n <div className={`usa-card${props.flag ? \" usa-card--flag\" : \"\"}`}>\n <div className=\"usa-card__container\">\n {props.mediaUrl && (\n <div className=\"usa-card__media\">\n <div className=\"usa-card__img\">\n <img src={props.mediaUrl} alt={props.mediaAlt ?? \"\"} />\n </div>\n </div>\n )}\n {(props.title || props.description) && (\n <div className=\"usa-card__header\">\n {props.title && (\n <h2 className=\"usa-card__heading\">{props.title}</h2>\n )}\n </div>\n )}\n <div className=\"usa-card__body\">\n {props.description && <p>{props.description}</p>}\n {children}\n </div>\n </div>\n </div>\n );\n },\n\n Divider: (_: BaseComponentProps<UswdsProps<\"Divider\">>) => {\n return <hr className=\"usa-divider\" />;\n },\n\n CardGroup: ({ props }: BaseComponentProps<UswdsProps<\"CardGroup\">>) => {\n const cards = props.cards ?? [];\n return (\n <ul className=\"usa-card-group\">\n {cards.map((card, i) => (\n <li\n key={i}\n className={`usa-card tablet:grid-col-4${props.flag ? \" usa-card--flag\" : \"\"}`}\n >\n <div className=\"usa-card__container\">\n {card.mediaUrl && (\n <div className=\"usa-card__media\">\n <div className=\"usa-card__img\">\n <img src={card.mediaUrl} alt={card.mediaAlt ?? \"\"} />\n </div>\n </div>\n )}\n {card.title && (\n <div className=\"usa-card__header\">\n <h2 className=\"usa-card__heading\">{card.title}</h2>\n </div>\n )}\n {card.description && (\n <div className=\"usa-card__body\">\n <p>{card.description}</p>\n </div>\n )}\n {card.footer && (\n <div className=\"usa-card__footer\">\n <p>{card.footer}</p>\n </div>\n )}\n </div>\n </li>\n ))}\n </ul>\n );\n },\n\n Footer: ({ props }: BaseComponentProps<UswdsProps<\"Footer\">>) => {\n const variant = props.variant ?? \"medium\";\n const groups = props.navGroups ?? [];\n const contact = props.contactInfo ?? [];\n\n const socialIcons: Record<string, string> = {\n facebook:\n \"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\",\n twitter:\n \"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\",\n youtube:\n \"M22.54 6.42a2.78 2.78 0 0 0-1.95-1.96C18.88 4 12 4 12 4s-6.88 0-8.59.46a2.78 2.78 0 0 0-1.95 1.96A29 29 0 0 0 1 12a29 29 0 0 0 .46 5.58 2.78 2.78 0 0 0 1.95 1.95C5.12 20 12 20 12 20s6.88 0 8.59-.47a2.78 2.78 0 0 0 1.95-1.95A29 29 0 0 0 23 12a29 29 0 0 0-.46-5.58zM9.75 15.02V8.98L15.5 12l-5.75 3.02z\",\n instagram:\n \"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37zm1.5-4.87h.01M7.5 2h9A5.5 5.5 0 0 1 22 7.5v9A5.5 5.5 0 0 1 16.5 22h-9A5.5 5.5 0 0 1 2 16.5v-9A5.5 5.5 0 0 1 7.5 2z\",\n linkedin:\n \"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6zM2 9h4v12H2z M4 6a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\",\n github:\n \"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\",\n rss: \"M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16 M5 19a1 1 0 1 0 0-2 1 1 0 0 0 0 2z\",\n };\n\n const returnToTopEl = props.returnToTop ? (\n <div className=\"grid-container usa-footer__return-to-top\">\n <a href=\"#top\">Return to top</a>\n </div>\n ) : null;\n\n const logoEl = (\n <div className=\"usa-footer__logo grid-row grid-gap-2\">\n {props.logoUrl && (\n <div className=\"grid-col-auto\">\n <img\n className=\"usa-footer__logo-img\"\n src={props.logoUrl}\n alt={props.logoAlt ?? \"\"}\n />\n </div>\n )}\n <div className=\"grid-col-auto\">\n <p className=\"usa-footer__logo-heading\">\n <a\n className=\"usa-footer__logo-anchor\"\n href={safeHref(props.agencyUrl) ?? \"/\"}\n >\n {props.agencyName}\n </a>\n </p>\n </div>\n </div>\n );\n\n const contactEl =\n contact.length > 0 ? (\n <address className=\"usa-footer__address\">\n {props.contactHeading && (\n <p className=\"usa-footer__contact-heading\">\n {props.contactHeading}\n </p>\n )}\n <div className=\"usa-footer__contact-info grid-row grid-gap\">\n {contact.map((item, i) => (\n <div key={i} className=\"grid-col-auto\">\n {item.type === \"email\" ? (\n <a href={`mailto:${item.value}`}>{item.value}</a>\n ) : item.type === \"phone\" ? (\n <a href={`tel:${item.value.replace(/\\D/g, \"\")}`}>\n {item.value}\n </a>\n ) : (\n <p>{item.value}</p>\n )}\n </div>\n ))}\n </div>\n </address>\n ) : null;\n\n const socialEl =\n (props.socialLinks ?? []).length > 0 ? (\n <div className=\"usa-footer__social-links grid-row grid-gap-1\">\n {(props.socialLinks ?? []).map((s) => (\n <div key={s.platform} className=\"grid-col-auto\">\n <a\n className=\"usa-social-link\"\n href={safeHref(s.href)}\n aria-label={s.label}\n rel=\"noreferrer\"\n target=\"_blank\"\n >\n <svg\n className=\"usa-icon\"\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <path d={socialIcons[s.platform] ?? \"\"} />\n </svg>\n </a>\n </div>\n ))}\n </div>\n ) : null;\n\n if (variant === \"slim\") {\n const links = groups[0]?.links ?? [];\n return (\n <footer className=\"usa-footer usa-footer--slim\">\n {returnToTopEl}\n <div className=\"usa-footer__primary-section\">\n <div className=\"grid-container\">\n <div className=\"grid-row grid-gap\">\n <div className=\"tablet:grid-col-fill usa-footer__primary-content\">\n {logoEl}\n </div>\n {links.length > 0 && (\n <div className=\"tablet:grid-col-auto usa-footer__primary-content usa-footer__primary-content--collapsible\">\n <nav aria-label=\"Footer navigation\">\n <ul className=\"grid-row grid-gap\">\n {links.map((link, i) => (\n <li\n key={i}\n className=\"mobile-lg:grid-col-auto usa-footer__primary-content\"\n >\n <a\n href={safeHref(link.href)}\n className=\"usa-footer__primary-link\"\n >\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n </div>\n )}\n </div>\n </div>\n </div>\n {(contact.length > 0 || socialEl) && (\n <div className=\"usa-footer__secondary-section\">\n <div className=\"grid-container\">\n <div className=\"grid-row grid-gap\">\n <div className=\"usa-footer__contact-links mobile-lg:grid-col-12\">\n {socialEl}\n {contactEl}\n </div>\n </div>\n </div>\n </div>\n )}\n </footer>\n );\n }\n\n if (variant === \"big\") {\n return (\n <footer className=\"usa-footer usa-footer--big\">\n {returnToTopEl}\n <div className=\"usa-footer__primary-section\">\n <div className=\"grid-container\">\n <div className=\"grid-row grid-gap-4\">\n {groups.map((group, i) => (\n <div key={i} className=\"tablet:grid-col-4\">\n {group.heading && (\n <p className=\"usa-footer__primary-link\">\n {group.heading}\n </p>\n )}\n <ul className=\"usa-list usa-list--unstyled\">\n {group.links.map((link, j) => (\n <li key={j} className=\"usa-footer__secondary-link\">\n <a href={safeHref(link.href)}>{link.label}</a>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n </div>\n </div>\n <div className=\"usa-footer__secondary-section\">\n <div className=\"grid-container\">\n <div className=\"grid-row grid-gap\">\n <div className=\"tablet:grid-col-4\">{logoEl}</div>\n {(contact.length > 0 || socialEl) && (\n <div className=\"tablet:grid-col-8 usa-footer__contact-links\">\n {socialEl}\n {contactEl}\n </div>\n )}\n </div>\n </div>\n </div>\n </footer>\n );\n }\n\n // medium (default)\n const links = groups[0]?.links ?? [];\n return (\n <footer className=\"usa-footer\">\n {returnToTopEl}\n <div className=\"usa-footer__primary-section\">\n <nav className=\"usa-footer__nav\" aria-label=\"Footer navigation\">\n <ul className=\"grid-row grid-gap\">\n {links.map((link, i) => (\n <li\n key={i}\n className=\"mobile-lg:grid-col-4 desktop:grid-col-auto usa-footer__primary-content\"\n >\n <a href={safeHref(link.href)} className=\"usa-footer__primary-link\">\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n </div>\n <div className=\"usa-footer__secondary-section\">\n <div className=\"grid-container\">\n <div className=\"grid-row grid-gap\">\n <div className=\"tablet:grid-col-4\">{logoEl}</div>\n {(contact.length > 0 || socialEl) && (\n <div className=\"tablet:grid-col-8 usa-footer__contact-links\">\n {socialEl}\n {contactEl}\n </div>\n )}\n </div>\n </div>\n </div>\n </footer>\n );\n },\n\n // ── Navigation ────────────────────────────────────────────────────────\n\n Accordion: ({ props }: BaseComponentProps<UswdsProps<\"Accordion\">>) => {\n const items = props.items ?? [];\n const [openItems, setOpenItems] = useState<Set<number>>(() => {\n const initial = new Set<number>();\n items.forEach((item, i) => {\n if (item.expanded) initial.add(i);\n });\n return initial;\n });\n\n const toggle = (index: number) => {\n setOpenItems((prev) => {\n const next = new Set(prev);\n if (props.multiselectable) {\n if (next.has(index)) {\n next.delete(index);\n } else {\n next.add(index);\n }\n } else {\n if (next.has(index)) {\n next.clear();\n } else {\n next.clear();\n next.add(index);\n }\n }\n return next;\n });\n };\n\n return (\n <div\n className={`usa-accordion${props.bordered ? \" usa-accordion--bordered\" : \"\"}`}\n >\n {items.map((item, i) => {\n const isOpen = openItems.has(i);\n const headingId = `accordion-heading-${i}`;\n const contentId = `accordion-content-${i}`;\n return (\n <div key={i}>\n <h4 className=\"usa-accordion__heading\">\n <button\n type=\"button\"\n className=\"usa-accordion__button\"\n aria-expanded={isOpen}\n aria-controls={contentId}\n id={headingId}\n onClick={() => toggle(i)}\n >\n {item.title}\n </button>\n </h4>\n <div\n id={contentId}\n className=\"usa-accordion__content usa-prose\"\n hidden={!isOpen}\n role=\"region\"\n aria-labelledby={headingId}\n >\n <p>{item.content}</p>\n </div>\n </div>\n );\n })}\n </div>\n );\n },\n\n Pagination: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"Pagination\">>) => {\n const [boundPage, setBoundPage] = useBoundProp<number>(\n props.page as number | undefined,\n bindings?.page,\n );\n const [localPage, setLocalPage] = useState(props.page ?? 1);\n const isBound = !!bindings?.page;\n const page = isBound ? (boundPage ?? 1) : localPage;\n const setPage = isBound ? setBoundPage : setLocalPage;\n\n const total = props.totalPages;\n const range = getPaginationRange(page, total);\n\n const navigate = (p: number) => {\n if (p < 1 || p > total) return;\n setPage(p);\n emit(\"change\");\n };\n\n return (\n <nav\n aria-label={props.ariaLabel ?? \"Pagination\"}\n className=\"usa-pagination\"\n >\n <ul className=\"usa-pagination__list\">\n {/* Previous */}\n <li className=\"usa-pagination__item usa-pagination__arrow\">\n <a\n href=\"#\"\n className=\"usa-pagination__link usa-pagination__previous-page\"\n aria-label=\"Previous page\"\n aria-disabled={page <= 1}\n onClick={(e) => {\n e.preventDefault();\n navigate(page - 1);\n }}\n >\n <svg\n className=\"usa-icon\"\n aria-hidden=\"true\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <path d=\"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6z\" />\n </svg>\n <span className=\"usa-pagination__link-text\">Previous</span>\n </a>\n </li>\n\n {range.map((item, i) =>\n item === \"ellipsis\" ? (\n <li\n key={`ellipsis-${i}`}\n className=\"usa-pagination__item usa-pagination__overflow\"\n role=\"presentation\"\n >\n <span>…</span>\n </li>\n ) : (\n <li\n key={item}\n className=\"usa-pagination__item usa-pagination__page-no\"\n >\n <a\n href=\"#\"\n className={`usa-pagination__button${page === item ? \" usa-current\" : \"\"}`}\n aria-label={`Page ${item}`}\n aria-current={page === item ? \"page\" : undefined}\n onClick={(e) => {\n e.preventDefault();\n navigate(item);\n }}\n >\n {item}\n </a>\n </li>\n ),\n )}\n\n {/* Next */}\n <li className=\"usa-pagination__item usa-pagination__arrow\">\n <a\n href=\"#\"\n className=\"usa-pagination__link usa-pagination__next-page\"\n aria-label=\"Next page\"\n aria-disabled={page >= total}\n onClick={(e) => {\n e.preventDefault();\n navigate(page + 1);\n }}\n >\n <span className=\"usa-pagination__link-text\">Next</span>\n <svg\n className=\"usa-icon\"\n aria-hidden=\"true\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <path d=\"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6z\" />\n </svg>\n </a>\n </li>\n </ul>\n </nav>\n );\n },\n\n StepIndicator: ({\n props,\n }: BaseComponentProps<UswdsProps<\"StepIndicator\">>) => {\n const steps = props.steps ?? [];\n const current = Math.max(1, Math.min(steps.length, Number(props.currentStep) || 1));\n\n const countersClass =\n props.counters === \"small\"\n ? \" usa-step-indicator--counters-sm\"\n : props.counters === \"default\"\n ? \" usa-step-indicator--counters\"\n : \"\";\n const centeredClass = props.centered ? \" usa-step-indicator--center\" : \"\";\n const noLabelsClass = props.noLabels\n ? \" usa-step-indicator--no-labels\"\n : \"\";\n\n return (\n <div\n className={`usa-step-indicator${countersClass}${centeredClass}${noLabelsClass}`}\n aria-label=\"Progress\"\n >\n <ol className=\"usa-step-indicator__segments\">\n {steps.map((label, i) => {\n const stepNum = i + 1;\n const isComplete = stepNum < current;\n const isCurrent = stepNum === current;\n const segClass = isComplete\n ? \"usa-step-indicator__segment usa-step-indicator__segment--complete\"\n : isCurrent\n ? \"usa-step-indicator__segment usa-step-indicator__segment--current\"\n : \"usa-step-indicator__segment\";\n\n return (\n <li\n key={i}\n className={segClass}\n aria-current={isCurrent ? \"step\" : undefined}\n >\n <span className=\"usa-step-indicator__segment-label\">\n {label}\n {isComplete && <span className=\"usa-sr-only\">completed</span>}\n {isCurrent && (\n <span className=\"usa-sr-only\">in progress</span>\n )}\n </span>\n </li>\n );\n })}\n </ol>\n <div className=\"usa-step-indicator__header\">\n <h4 className=\"usa-step-indicator__heading\">\n <span className=\"usa-step-indicator__heading-counter\">\n <span className=\"usa-sr-only\">Step </span>\n <span className=\"usa-step-indicator__current-step\">\n {current}\n </span>\n <span className=\"usa-step-indicator__total-steps\">\n {\" \"}\n of {steps.length}\n </span>\n </span>\n {steps[current - 1] && (\n <span className=\"usa-step-indicator__heading-text\">\n {steps[current - 1]}\n </span>\n )}\n </h4>\n </div>\n </div>\n );\n },\n\n Breadcrumb: ({ props }: BaseComponentProps<UswdsProps<\"Breadcrumb\">>) => {\n const items = props.items ?? [];\n return (\n <nav className=\"usa-breadcrumb\" aria-label=\"Breadcrumbs\">\n <ol className=\"usa-breadcrumb__list\">\n {items.map((item, i) => {\n const isLast = i === items.length - 1;\n return (\n <li\n key={i}\n className={`usa-breadcrumb__list-item${isLast ? \" usa-current\" : \"\"}`}\n aria-current={isLast ? \"page\" : undefined}\n >\n {item.href && !isLast ? (\n <a href={safeHref(item.href)} className=\"usa-breadcrumb__link\">\n <span>{item.label}</span>\n </a>\n ) : (\n <span>{item.label}</span>\n )}\n </li>\n );\n })}\n </ol>\n </nav>\n );\n },\n\n Header: ({ props }: BaseComponentProps<UswdsProps<\"Header\">>) => {\n const [mobileOpen, setMobileOpen] = useState(false);\n const [openDropdown, setOpenDropdown] = useState<number | null>(null);\n const uid = useId();\n const isExtended = props.variant === \"extended\";\n const navItems = props.navItems ?? [];\n\n // Overlay is a sibling to the header, not a wrapper\n return (\n <>\n <div className={`usa-overlay${mobileOpen ? \" is-visible\" : \"\"}`} />\n <header\n className={`usa-header${isExtended ? \" usa-header--extended\" : \" usa-header--basic\"}`}\n >\n <div className=\"usa-nav-container\">\n <div className=\"usa-navbar\">\n <div className=\"usa-logo\">\n <em className=\"usa-logo__text\">\n <a href={safeHref(props.siteUrl) ?? \"/\"} title=\"Home\">\n {props.logoUrl && (\n <img\n className=\"usa-header__logo\"\n src={props.logoUrl}\n alt={props.logoAlt ?? \"\"}\n style={{\n maxHeight: \"2.5rem\",\n marginRight: \"0.5rem\",\n verticalAlign: \"middle\",\n }}\n />\n )}\n {props.siteName}\n </a>\n </em>\n </div>\n <button\n type=\"button\"\n className=\"usa-menu-btn\"\n onClick={() => setMobileOpen(true)}\n >\n Menu\n </button>\n </div>\n\n <nav\n aria-label=\"Primary navigation\"\n className={`usa-nav${mobileOpen ? \" is-visible\" : \"\"}`}\n >\n <button\n type=\"button\"\n className=\"usa-nav__close\"\n onClick={() => {\n setMobileOpen(false);\n setOpenDropdown(null);\n }}\n >\n <svg\n className=\"usa-icon\"\n aria-hidden=\"true\"\n focusable={false}\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" />\n </svg>\n Close\n </button>\n\n {props.showSearch && (\n <div role=\"search\" className=\"usa-search usa-search--small\">\n <label\n className=\"usa-sr-only\"\n htmlFor={`${uid}-header-search`}\n >\n Search\n </label>\n <input\n className=\"usa-input\"\n id={`${uid}-header-search`}\n type=\"search\"\n name=\"search\"\n />\n <button className=\"usa-button\" type=\"submit\">\n <svg\n className=\"usa-icon\"\n aria-hidden=\"true\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <path d=\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\" />\n </svg>\n <span className=\"usa-sr-only\">Search</span>\n </button>\n </div>\n )}\n\n <ul className=\"usa-nav__primary usa-accordion\">\n {navItems.map((item, i) => {\n const hasDropdown = item.items && item.items.length > 0;\n const isOpen = openDropdown === i;\n const dropdownId = `${uid}-nav-dropdown-${i}`;\n return (\n <li\n key={i}\n className={`usa-nav__primary-item${item.current ? \" usa-current\" : \"\"}`}\n >\n {hasDropdown ? (\n <>\n <button\n type=\"button\"\n className={`usa-accordion__button usa-nav__link${item.current ? \" usa-current\" : \"\"}`}\n aria-expanded={isOpen}\n aria-controls={dropdownId}\n onClick={() => setOpenDropdown(isOpen ? null : i)}\n >\n <span>{item.label}</span>\n </button>\n <ul\n id={dropdownId}\n className=\"usa-nav__submenu\"\n hidden={!isOpen}\n >\n {(item.items ?? []).map((sub, j) => (\n <li key={j} className=\"usa-nav__submenu-item\">\n <a href={safeHref(sub.href)}>{sub.label}</a>\n </li>\n ))}\n </ul>\n </>\n ) : (\n <a\n href={safeHref(item.href)}\n className={`usa-nav__link${item.current ? \" usa-current\" : \"\"}`}\n aria-current={item.current ? \"page\" : undefined}\n >\n <span>{item.label}</span>\n </a>\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n </div>\n </header>\n </>\n );\n },\n\n SkipNav: ({ props }: BaseComponentProps<UswdsProps<\"SkipNav\">>) => {\n return (\n <a className=\"usa-skipnav\" href={safeHref(props.href) ?? \"#main-content\"}>\n {props.label ?? \"Skip to main content\"}\n </a>\n );\n },\n\n SideNav: ({ props }: BaseComponentProps<UswdsProps<\"SideNav\">>) => {\n const items = props.items ?? [];\n return (\n <nav aria-label={props.ariaLabel ?? \"Side navigation\"}>\n <ul className=\"usa-sidenav\">\n {items.map((item, i) => (\n <li key={i} className=\"usa-sidenav__item\">\n <a\n href={safeHref(item.href)}\n className={item.current ? \"usa-current\" : undefined}\n aria-current={item.current ? \"page\" : undefined}\n >\n {item.label}\n </a>\n {item.children && item.children.length > 0 && (\n <ul className=\"usa-sidenav__sublist\">\n {item.children.map((child, j) => (\n <li key={j} className=\"usa-sidenav__item\">\n <a\n href={safeHref(child.href)}\n className={child.current ? \"usa-current\" : undefined}\n aria-current={child.current ? \"page\" : undefined}\n >\n {child.label}\n </a>\n </li>\n ))}\n </ul>\n )}\n </li>\n ))}\n </ul>\n </nav>\n );\n },\n\n LanguageSelector: ({\n props,\n }: BaseComponentProps<UswdsProps<\"LanguageSelector\">>) => {\n const [open, setOpen] = useState(false);\n const uid = useId();\n const submenuId = `${uid}-language-submenu`;\n const languages = props.languages ?? [];\n const current = props.currentLang ?? \"\";\n\n return (\n <nav aria-label=\"Language selector\" className=\"usa-language-container\">\n <ul className=\"usa-language__primary\">\n <li className=\"usa-language__primary-item\">\n <button\n type=\"button\"\n className=\"usa-accordion__button usa-language__link\"\n aria-expanded={open}\n aria-controls={submenuId}\n onClick={() => setOpen((v) => !v)}\n >\n {languages.find((l) => l.lang === current)?.label ?? \"Language\"}\n </button>\n <ul id={submenuId} className=\"usa-language__submenu\" hidden={!open}>\n {languages\n .filter((l) => l.lang !== current)\n .map((lang) => (\n <li key={lang.lang} className=\"usa-language__submenu-item\">\n <a\n href={safeHref(lang.href)}\n lang={lang.lang}\n hrefLang={lang.lang}\n className=\"usa-language__submenu-link\"\n >\n {lang.localLabel ?? lang.label}\n </a>\n </li>\n ))}\n </ul>\n </li>\n </ul>\n </nav>\n );\n },\n\n Link: ({ props, emit }: BaseComponentProps<UswdsProps<\"Link\">>) => {\n return (\n <a\n href={safeHref(props.href)}\n className={props.variant === \"nav\" ? \"usa-nav__link\" : \"usa-link\"}\n target={props.external ? \"_blank\" : undefined}\n rel={props.external ? \"noreferrer\" : undefined}\n onClick={() => emit(\"press\")}\n >\n {props.label}\n {props.external && (\n <svg\n className=\"usa-icon\"\n aria-label=\"(external link)\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"16\"\n height=\"16\"\n style={{ marginLeft: \"0.25em\", verticalAlign: \"middle\" }}\n >\n <path d=\"M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7h-2zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3z\" />\n </svg>\n )}\n </a>\n );\n },\n\n InPageNavigation: ({\n props,\n }: BaseComponentProps<UswdsProps<\"InPageNavigation\">>) => {\n const items = props.items ?? [];\n return (\n <nav\n aria-label={props.heading ?? \"On this page\"}\n className=\"usa-in-page-nav\"\n >\n <div className=\"usa-in-page-nav__header\">\n <p className=\"usa-in-page-nav__title\">\n {props.heading ?? \"On this page\"}\n </p>\n </div>\n <ul className=\"usa-in-page-nav__list\">\n {items.map((item, i) => (\n <li key={i} className=\"usa-in-page-nav__item\">\n <a href={safeHref(item.href)} className=\"usa-in-page-nav__link\">\n {item.label}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n );\n },\n\n // ── Data Display ──────────────────────────────────────────────────────\n\n Table: ({ props }: BaseComponentProps<UswdsProps<\"Table\">>) => {\n const columns = props.columns ?? [];\n const rows = (props.rows ?? []).map((row) => row.map(String));\n\n const tableClass = [\n \"usa-table\",\n props.borderless ? \"usa-table--borderless\" : \"\",\n props.striped ? \"usa-table--striped\" : \"\",\n props.compact ? \"usa-table--compact\" : \"\",\n ]\n .filter(Boolean)\n .join(\" \");\n\n const table = (\n <table className={tableClass}>\n {props.caption && <caption>{props.caption}</caption>}\n <thead>\n <tr>\n {columns.map((col) => (\n <th key={col} scope=\"col\">\n {col}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, i) => (\n <tr key={i}>\n {row.map((cell, j) => (\n <td key={j}>{cell}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n\n if (props.scrollable) {\n return (\n <div className=\"usa-table-container--scrollable\" tabIndex={0}>\n {table}\n </div>\n );\n }\n return table;\n },\n\n Heading: ({ props }: BaseComponentProps<UswdsProps<\"Heading\">>) => {\n const level = props.level ?? \"h2\";\n if (level === \"h1\") return <h1 className=\"usa-prose\">{props.text}</h1>;\n if (level === \"h3\") return <h3 className=\"usa-prose\">{props.text}</h3>;\n if (level === \"h4\") return <h4 className=\"usa-prose\">{props.text}</h4>;\n if (level === \"h5\") return <h5 className=\"usa-prose\">{props.text}</h5>;\n if (level === \"h6\") return <h6 className=\"usa-prose\">{props.text}</h6>;\n return <h2 className=\"usa-prose\">{props.text}</h2>;\n },\n\n Text: ({ props }: BaseComponentProps<UswdsProps<\"Text\">>) => {\n if (props.variant === \"lead\") {\n return <p className=\"usa-intro\">{props.text}</p>;\n }\n if (props.variant === \"small\") {\n return <small className=\"usa-prose\">{props.text}</small>;\n }\n if (props.variant === \"code\") {\n return <code className=\"usa-prose\">{props.text}</code>;\n }\n return <p className=\"usa-prose\">{props.text}</p>;\n },\n\n Alert: ({ props }: BaseComponentProps<UswdsProps<\"Alert\">>) => {\n const typeClass =\n props.type === \"success\"\n ? \"usa-alert--success\"\n : props.type === \"warning\"\n ? \"usa-alert--warning\"\n : props.type === \"error\"\n ? \"usa-alert--error\"\n : props.type === \"emergency\"\n ? \"usa-alert--emergency\"\n : \"usa-alert--info\";\n\n const slimClass = props.slim ? \" usa-alert--slim\" : \"\";\n const noIconClass = props.noIcon ? \" usa-alert--no-icon\" : \"\";\n\n return (\n <div\n className={`usa-alert ${typeClass}${slimClass}${noIconClass}`}\n role=\"alert\"\n >\n <div className=\"usa-alert__body\">\n {props.heading && (\n <h4 className=\"usa-alert__heading\">{props.heading}</h4>\n )}\n <p className=\"usa-alert__text\">{props.message}</p>\n </div>\n </div>\n );\n },\n\n SiteAlert: ({ props }: BaseComponentProps<UswdsProps<\"SiteAlert\">>) => {\n const typeClass =\n props.type === \"emergency\"\n ? \"usa-site-alert--emergency\"\n : \"usa-site-alert--info\";\n const slimClass = props.slim ? \" usa-site-alert--slim\" : \"\";\n\n return (\n <section\n className={`usa-site-alert ${typeClass}${slimClass}`}\n aria-label=\"Site alert\"\n >\n <div className=\"usa-alert\">\n <div className=\"usa-alert__body\">\n {props.heading && (\n <h3 className=\"usa-alert__heading\">{props.heading}</h3>\n )}\n <p className=\"usa-alert__text\">{props.message}</p>\n </div>\n </div>\n </section>\n );\n },\n\n Tag: ({ props }: BaseComponentProps<UswdsProps<\"Tag\">>) => {\n return (\n <span className={`usa-tag${props.big ? \" usa-tag--big\" : \"\"}`}>\n {props.text}\n </span>\n );\n },\n\n SummaryBox: ({ props }: BaseComponentProps<UswdsProps<\"SummaryBox\">>) => {\n const uid = useId();\n const headingId = `${uid}-summary-heading`;\n const items = props.items ?? [];\n return (\n <div\n className=\"usa-summary-box\"\n role=\"region\"\n aria-labelledby={headingId}\n >\n <div className=\"usa-summary-box__body\">\n <h3 className=\"usa-summary-box__heading\" id={headingId}>\n {props.heading}\n </h3>\n <div className=\"usa-summary-box__text\">\n <ul className=\"usa-list\">\n {items.map((item, i) => (\n <li key={i} className=\"usa-summary-box__list-item\">\n {item}\n </li>\n ))}\n </ul>\n </div>\n </div>\n </div>\n );\n },\n\n ProcessList: ({ props }: BaseComponentProps<UswdsProps<\"ProcessList\">>) => {\n const items = props.items ?? [];\n return (\n <ol className=\"usa-process-list\">\n {items.map((item, i) => (\n <li key={i} className=\"usa-process-list__item\">\n <h4 className=\"usa-process-list__heading\">{item.heading}</h4>\n <p className=\"margin-top-05\">{item.content}</p>\n </li>\n ))}\n </ol>\n );\n },\n\n GovBanner: ({ props }: BaseComponentProps<UswdsProps<\"GovBanner\">>) => {\n const [expanded, setExpanded] = useState(props.expanded ?? false);\n const tld = props.tld ?? \".gov\";\n const isMil = tld === \".mil\";\n\n return (\n <section\n className={`usa-banner${expanded ? \" usa-banner--expanded\" : \"\"}`}\n aria-label=\"Official website of the United States government\"\n >\n <div className=\"usa-accordion\">\n <header className=\"usa-banner__header\">\n <div className=\"usa-banner__inner\">\n <div className=\"grid-col-auto\">\n {/* US flag — inline SVG, no external dependency */}\n <svg\n aria-hidden=\"true\"\n className=\"usa-banner__header-flag\"\n width=\"16\"\n height=\"11\"\n viewBox=\"0 0 16 11\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <rect width=\"16\" height=\"11\" fill=\"#B22234\" />\n <rect y=\"0.846\" width=\"16\" height=\"0.846\" fill=\"white\" />\n <rect y=\"2.539\" width=\"16\" height=\"0.846\" fill=\"white\" />\n <rect y=\"4.231\" width=\"16\" height=\"0.846\" fill=\"white\" />\n <rect y=\"5.923\" width=\"16\" height=\"0.846\" fill=\"white\" />\n <rect y=\"7.615\" width=\"16\" height=\"0.846\" fill=\"white\" />\n <rect y=\"9.307\" width=\"16\" height=\"0.846\" fill=\"white\" />\n <rect width=\"6.4\" height=\"5.923\" fill=\"#3C3B6E\" />\n </svg>\n </div>\n <div\n className=\"grid-col-fill tablet:grid-col-auto\"\n aria-hidden=\"true\"\n >\n <p className=\"usa-banner__header-text\">\n An official website of the United States government\n </p>\n <p className=\"usa-banner__header-action\">\n Here&#39;s how you know\n </p>\n </div>\n <button\n type=\"button\"\n className=\"usa-accordion__button usa-banner__button\"\n aria-expanded={expanded}\n aria-controls=\"gov-banner-content\"\n onClick={() => setExpanded((v) => !v)}\n >\n <span className=\"usa-banner__button-text\">\n Here&#39;s how you know\n </span>\n </button>\n </div>\n </header>\n <div\n className=\"usa-banner__content usa-accordion__content\"\n id=\"gov-banner-content\"\n hidden={!expanded}\n >\n <div className=\"grid-row grid-gap-lg\">\n <div className=\"usa-banner__guidance tablet:grid-col-6\">\n {/* .gov domain icon — inline SVG */}\n <svg\n className=\"usa-banner__icon usa-media-block__img\"\n aria-hidden=\"true\"\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"#005ea2\" />\n <path\n fill=\"white\"\n d=\"M20 9l11 6.5V17H9v-1.5L20 9zM11 19h3v11h-3V19zm7.5 0h3v11h-3V19zm7 0h3v11h-3V19zM9 31h22v2H9V31z\"\n />\n </svg>\n <div className=\"usa-media-block__body\">\n <p>\n <strong>\n Official {isMil ? \".mil\" : \".gov\"} websites use HTTPS\n </strong>\n <br />A <strong>lock</strong> or <strong>https://</strong>{\" \"}\n means you&#39;ve safely connected to the{\" \"}\n {isMil ? \".mil\" : \".gov\"} website.\n </p>\n </div>\n </div>\n <div className=\"usa-banner__guidance tablet:grid-col-6\">\n {/* HTTPS lock icon — inline SVG */}\n <svg\n className=\"usa-banner__icon usa-media-block__img\"\n aria-hidden=\"true\"\n width=\"40\"\n height=\"40\"\n viewBox=\"0 0 40 40\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"20\" cy=\"20\" r=\"20\" fill=\"#005ea2\" />\n <path\n fill=\"white\"\n d=\"M20 10c-3.9 0-7 3.1-7 7v2h-2v13h18V19h-2v-2c0-3.9-3.1-7-7-7zm0 3c2.2 0 4 1.8 4 4v2h-8v-2c0-2.2 1.8-4 4-4zm0 11a2 2 0 1 1 0 4 2 2 0 0 1 0-4z\"\n />\n </svg>\n <div className=\"usa-media-block__body\">\n <p>\n <strong>\n Secure {isMil ? \".mil\" : \".gov\"} websites use HTTPS\n </strong>\n <br />\n Share sensitive information only on official, secure\n websites.\n </p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n );\n },\n\n Identifier: ({ props }: BaseComponentProps<UswdsProps<\"Identifier\">>) => {\n const links = props.links ?? [];\n return (\n <section className=\"usa-identifier\">\n <section\n className=\"usa-identifier__section usa-identifier__section--masthead\"\n aria-label=\"Agency identifier\"\n >\n <div className=\"usa-identifier__container\">\n {props.logoUrl && (\n <div className=\"usa-identifier__logos\">\n <a\n href={safeHref(props.agencyUrl) ?? \"/\"}\n className=\"usa-identifier__logo\"\n >\n <img\n className=\"usa-identifier__logo-img\"\n src={props.logoUrl}\n alt={props.logoAlt ?? `${props.agencyName} logo`}\n role=\"img\"\n />\n </a>\n </div>\n )}\n <section\n className=\"usa-identifier__identity\"\n aria-label=\"Agency description\"\n >\n <p className=\"usa-identifier__identity-domain\">{props.domain}</p>\n <p className=\"usa-identifier__identity-disclaimer\">\n {props.disclaimer ?? (\n <>\n An official website of the{\" \"}\n <a className=\"usa-link\" href={safeHref(props.agencyUrl) ?? \"/\"}>\n {props.agencyName}\n </a>\n </>\n )}\n </p>\n </section>\n </div>\n </section>\n {links.length > 0 && (\n <nav\n className=\"usa-identifier__section usa-identifier__section--required-links\"\n aria-label=\"Important links\"\n >\n <div className=\"usa-identifier__container\">\n <ul className=\"usa-identifier__required-links-list\">\n {links.map((link, i) => (\n <li key={i} className=\"usa-identifier__required-links-item\">\n <a\n href={safeHref(link.href)}\n className=\"usa-identifier__required-link usa-link\"\n >\n {link.label}\n </a>\n </li>\n ))}\n </ul>\n </div>\n </nav>\n )}\n {(props.showUsagov ?? true) && (\n <section\n className=\"usa-identifier__section usa-identifier__section--usagov\"\n aria-label=\"U.S. government information and services\"\n >\n <div className=\"usa-identifier__container\">\n <div className=\"usa-identifier__usagov-description\">\n Looking for U.S. government information and services?{\" \"}\n <a className=\"usa-link\" href=\"https://www.usa.gov/\">\n Visit USA.gov\n </a>\n </div>\n </div>\n </section>\n )}\n </section>\n );\n },\n\n IconList: ({ props }: BaseComponentProps<UswdsProps<\"IconList\">>) => {\n const items = props.items ?? [];\n const sizeClass = props.size ? ` usa-icon-list--size-${props.size}` : \"\";\n\n const colorMap: Record<string, string> = {\n success: \"text-green\",\n error: \"text-red\",\n warning: \"text-gold\",\n info: \"text-blue\",\n default: \"\",\n };\n\n // Inline SVG icons for common USWDS icon names\n const iconPaths: Record<string, string> = {\n check_circle:\n \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5l-4.5-4.5 1.41-1.41L10 13.67l7.09-7.09 1.41 1.41L10 16.5z\",\n cancel:\n \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\",\n info: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\",\n warning: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\",\n error:\n \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\",\n star: \"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\",\n arrow_forward:\n \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\",\n };\n\n return (\n <ul className={`usa-icon-list${sizeClass}`}>\n {props.title && (\n <li className=\"usa-icon-list__item\">\n <p className=\"usa-icon-list__title\">{props.title}</p>\n </li>\n )}\n {items.map((item, i) => {\n const color = colorMap[item.color ?? \"default\"] ?? \"\";\n const path = iconPaths[item.icon] ?? iconPaths[\"info\"];\n return (\n <li key={i} className=\"usa-icon-list__item\">\n <div className={`usa-icon-list__icon${color ? ` ${color}` : \"\"}`}>\n <svg\n className=\"usa-icon\"\n aria-hidden=\"true\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <path d={path} />\n </svg>\n </div>\n <div className=\"usa-icon-list__content\">{item.content}</div>\n </li>\n );\n })}\n </ul>\n );\n },\n\n Collection: ({ props }: BaseComponentProps<UswdsProps<\"Collection\">>) => {\n const items = props.items ?? [];\n return (\n <ul className=\"usa-collection\">\n {items.map((item, i) => (\n <li key={i} className=\"usa-collection__item\">\n {item.thumbnailUrl && (\n <img\n className=\"usa-collection__thumbnail\"\n src={item.thumbnailUrl}\n alt={item.thumbnailAlt ?? \"\"}\n />\n )}\n <div className=\"usa-collection__body\">\n <h3 className=\"usa-collection__heading\">\n {item.href ? (\n <a className=\"usa-link\" href={safeHref(item.href)}>\n {item.heading}\n </a>\n ) : (\n item.heading\n )}\n </h3>\n {item.description && (\n <p className=\"usa-collection__description\">\n {item.description}\n </p>\n )}\n {(item.date || (item.tags && item.tags.length > 0)) && (\n <ul className=\"usa-collection__meta\" aria-label=\"Topics\">\n {item.date && (\n <li className=\"usa-collection__meta-item usa-collection__calendar-date\">\n <time dateTime={item.date}>\n {item.dateLabel ?? item.date}\n </time>\n </li>\n )}\n {(item.tags ?? []).map((tag) => (\n <li key={tag} className=\"usa-collection__meta-item usa-tag\">\n {tag}\n </li>\n ))}\n </ul>\n )}\n </div>\n </li>\n ))}\n </ul>\n );\n },\n\n Tooltip: ({ props }: BaseComponentProps<UswdsProps<\"Tooltip\">>) => {\n const [visible, setVisible] = useState(false);\n const uid = useId();\n const tooltipId = `${uid}-tooltip`;\n const position = props.position ?? \"top\";\n\n const positionClass = `usa-tooltip__body--${position}`;\n\n return (\n <span\n className=\"usa-tooltip\"\n style={{ position: \"relative\", display: \"inline-block\" }}\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n onFocus={() => setVisible(true)}\n onBlur={() => setVisible(false)}\n >\n <span\n tabIndex={0}\n className=\"usa-tooltip__trigger\"\n aria-describedby={tooltipId}\n >\n {props.label}\n </span>\n <span\n id={tooltipId}\n className={`usa-tooltip__body ${positionClass}${visible ? \" is-set is-visible\" : \"\"}`}\n role=\"tooltip\"\n aria-hidden={!visible}\n >\n {props.content}\n </span>\n </span>\n );\n },\n\n // ── Form Inputs ───────────────────────────────────────────────────────\n\n Button: ({ props, emit }: BaseComponentProps<UswdsProps<\"Button\">>) => {\n return (\n <button\n type={props.type ?? \"button\"}\n className={getButtonClass(props.variant)}\n disabled={props.disabled ?? false}\n onClick={() => emit(\"press\")}\n >\n {props.label}\n </button>\n );\n },\n\n ButtonGroup: ({\n props,\n emit,\n }: BaseComponentProps<UswdsProps<\"ButtonGroup\">>) => {\n const buttons = props.buttons ?? [];\n return (\n <ul\n className={`usa-button-group${props.segmented ? \" usa-button-group--segmented\" : \"\"}`}\n >\n {buttons.map((btn) => (\n <li key={btn.value} className=\"usa-button-group__item\">\n <button\n type=\"button\"\n className={getButtonClass(btn.variant ?? \"default\")}\n onClick={() => emit(\"press\")}\n data-value={btn.value}\n >\n {btn.label}\n </button>\n </li>\n ))}\n </ul>\n );\n },\n\n Input: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"Input\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"blur\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const hasError = errors.length > 0;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const errorId = hasError ? `${inputId}-error` : undefined;\n\n return (\n <div\n className={`usa-form-group${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n {hasError && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n <input\n className={`usa-input${hasError ? \" usa-input--error\" : \"\"}`}\n id={inputId}\n name={props.name}\n type={props.type ?? \"text\"}\n placeholder={props.placeholder ?? undefined}\n required={props.required ?? undefined}\n disabled={props.disabled ?? undefined}\n value={value}\n aria-describedby={\n [hintId, errorId].filter(Boolean).join(\" \") || undefined\n }\n onChange={(e) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") emit(\"submit\");\n }}\n onFocus={() => emit(\"focus\")}\n onBlur={() => {\n if (hasValidation && validateOn === \"blur\") validate();\n emit(\"blur\");\n }}\n />\n </div>\n );\n },\n\n Textarea: ({\n props,\n bindings,\n }: BaseComponentProps<UswdsProps<\"Textarea\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"blur\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const hasError = errors.length > 0;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const errorId = hasError ? `${inputId}-error` : undefined;\n\n return (\n <div\n className={`usa-form-group${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n {hasError && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n <textarea\n className={`usa-textarea${hasError ? \" usa-input--error\" : \"\"}`}\n id={inputId}\n name={props.name}\n placeholder={props.placeholder ?? undefined}\n required={props.required ?? undefined}\n rows={props.rows ?? 4}\n value={value}\n aria-describedby={\n [hintId, errorId].filter(Boolean).join(\" \") || undefined\n }\n onChange={(e) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n }}\n onBlur={() => {\n if (hasValidation && validateOn === \"blur\") validate();\n }}\n />\n </div>\n );\n },\n\n Select: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"Select\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"change\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const hasError = errors.length > 0;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const errorId = hasError ? `${inputId}-error` : undefined;\n\n const options = (props.options ?? []).map((opt) =>\n typeof opt === \"string\" ? { label: opt, value: opt } : opt,\n );\n\n return (\n <div\n className={`usa-form-group${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n {hasError && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n <select\n className={`usa-select${hasError ? \" usa-input--error\" : \"\"}`}\n id={inputId}\n name={props.name}\n required={props.required ?? undefined}\n value={value}\n aria-describedby={\n [hintId, errorId].filter(Boolean).join(\" \") || undefined\n }\n onChange={(e) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n >\n {props.placeholder && (\n <option value=\"\" disabled>\n {props.placeholder}\n </option>\n )}\n {options.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n );\n },\n\n Checkbox: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"Checkbox\">>) => {\n const [boundChecked, setBoundChecked] = useBoundProp<boolean>(\n props.checked as boolean | undefined,\n bindings?.checked,\n );\n const [localChecked, setLocalChecked] = useState(false);\n const isBound = !!bindings?.checked;\n const checked = isBound ? (boundChecked ?? false) : localChecked;\n const setChecked = isBound ? setBoundChecked : setLocalChecked;\n const validateOn = props.validateOn ?? \"change\";\n\n const hasValidation = !!(bindings?.checked && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.checked ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n\n return (\n <div\n className={`usa-form-group${errors.length > 0 ? \" usa-form-group--error\" : \"\"}`}\n >\n <div\n className={`usa-checkbox${props.tile ? \" usa-checkbox--tile\" : \"\"}`}\n >\n <input\n className=\"usa-checkbox__input\"\n id={inputId}\n type=\"checkbox\"\n name={props.name}\n checked={checked}\n aria-describedby={hintId}\n onChange={(e) => {\n setChecked(e.target.checked);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n />\n <label className=\"usa-checkbox__label\" htmlFor={inputId}>\n {props.label}\n {props.hint && (\n <span className=\"usa-checkbox__label-description\" id={hintId}>\n {props.hint}\n </span>\n )}\n </label>\n </div>\n {errors.length > 0 && (\n <span className=\"usa-error-message\" role=\"alert\">\n {errors[0]}\n </span>\n )}\n </div>\n );\n },\n\n CheckboxGroup: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"CheckboxGroup\">>) => {\n const [boundValues, setBoundValues] = useBoundProp<string[]>(\n props.values as string[] | undefined,\n bindings?.values,\n );\n const [localValues, setLocalValues] = useState<string[]>([]);\n const isBound = !!bindings?.values;\n const values = isBound ? (boundValues ?? []) : localValues;\n const setValues = isBound ? setBoundValues : setLocalValues;\n\n const options = props.options ?? [];\n\n const toggle = (val: string) => {\n const next = values.includes(val)\n ? values.filter((v) => v !== val)\n : [...values, val];\n setValues(next);\n emit(\"change\");\n };\n\n return (\n <fieldset className=\"usa-fieldset\">\n <legend className=\"usa-legend\">{props.legend}</legend>\n {options.map((opt) => {\n const optId = `${props.name}-${opt.value}`;\n return (\n <div\n key={opt.value}\n className={`usa-checkbox${props.tile ? \" usa-checkbox--tile\" : \"\"}`}\n >\n <input\n className=\"usa-checkbox__input\"\n id={optId}\n type=\"checkbox\"\n name={props.name}\n value={opt.value}\n checked={values.includes(opt.value)}\n onChange={() => toggle(opt.value)}\n />\n <label className=\"usa-checkbox__label\" htmlFor={optId}>\n {opt.label}\n {opt.hint && (\n <span className=\"usa-checkbox__label-description\">\n {opt.hint}\n </span>\n )}\n </label>\n </div>\n );\n })}\n </fieldset>\n );\n },\n\n Radio: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"Radio\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"change\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const options = props.options ?? [];\n\n return (\n <fieldset\n className={`usa-fieldset${errors.length > 0 ? \" usa-form-group--error\" : \"\"}`}\n >\n <legend className=\"usa-legend\">{props.legend}</legend>\n {errors.length > 0 && (\n <span className=\"usa-error-message\" role=\"alert\">\n {errors[0]}\n </span>\n )}\n {options.map((opt) => {\n const optId = `${props.name}-${opt.value}`;\n return (\n <div\n key={opt.value}\n className={`usa-radio${props.tile ? \" usa-radio--tile\" : \"\"}`}\n >\n <input\n className=\"usa-radio__input usa-radio__input--tile\"\n id={optId}\n type=\"radio\"\n name={props.name}\n value={opt.value}\n checked={value === opt.value}\n onChange={() => {\n setValue(opt.value);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n />\n <label className=\"usa-radio__label\" htmlFor={optId}>\n {opt.label}\n {opt.hint && (\n <span className=\"usa-radio__label-description\">\n {opt.hint}\n </span>\n )}\n </label>\n </div>\n );\n })}\n </fieldset>\n );\n },\n\n FileInput: ({ props, emit }: BaseComponentProps<UswdsProps<\"FileInput\">>) => {\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n\n return (\n <div className=\"usa-form-group\">\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n <input\n id={inputId}\n className=\"usa-file-input\"\n type=\"file\"\n name={props.name}\n accept={props.accept ?? undefined}\n multiple={props.multiple ?? undefined}\n required={props.required ?? undefined}\n aria-describedby={hintId}\n onChange={() => emit(\"change\")}\n />\n </div>\n );\n },\n\n Search: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"Search\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const uid = useId();\n const fieldId = `${uid}-search-field`;\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const sizeClass =\n props.size === \"small\"\n ? \" usa-search--small\"\n : props.size === \"big\"\n ? \" usa-search--big\"\n : \"\";\n\n return (\n <div role=\"search\" className={`usa-search${sizeClass}`}>\n {props.label && (\n <label className=\"usa-sr-only\" htmlFor={fieldId}>\n {props.label}\n </label>\n )}\n <input\n className=\"usa-input\"\n id={fieldId}\n type=\"search\"\n name=\"search\"\n placeholder={props.placeholder ?? undefined}\n value={value}\n onChange={(e) => {\n setValue(e.target.value);\n emit(\"change\");\n }}\n onKeyDown={(e) => {\n if (e.key === \"Enter\") emit(\"submit\");\n }}\n />\n <button\n className=\"usa-button\"\n type=\"submit\"\n onClick={() => emit(\"submit\")}\n >\n <svg\n className=\"usa-icon\"\n aria-hidden=\"true\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <path d=\"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\" />\n </svg>\n <span className=\"usa-search__submit-text\">Search</span>\n </button>\n </div>\n );\n },\n\n RangeInput: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"RangeInput\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<number>(\n props.value as number | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(props.value ?? props.min ?? 0);\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? 0) : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const inputId = props.name;\n\n return (\n <div className=\"usa-form-group\">\n {props.label && (\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n </label>\n )}\n <input\n className=\"usa-range\"\n id={inputId}\n name={props.name}\n type=\"range\"\n min={props.min ?? 0}\n max={props.max ?? 100}\n step={props.step ?? 1}\n value={value}\n onChange={(e) => {\n setValue(Number(e.target.value));\n emit(\"change\");\n }}\n />\n </div>\n );\n },\n\n DateInputGroup: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"DateInputGroup\">>) => {\n const [boundMonth, setBoundMonth] = useBoundProp<string>(\n props.monthValue as string | undefined,\n bindings?.monthValue,\n );\n const [boundDay, setBoundDay] = useBoundProp<string>(\n props.dayValue as string | undefined,\n bindings?.dayValue,\n );\n const [boundYear, setBoundYear] = useBoundProp<string>(\n props.yearValue as string | undefined,\n bindings?.yearValue,\n );\n const [localMonth, setLocalMonth] = useState(props.monthValue ?? \"\");\n const [localDay, setLocalDay] = useState(props.dayValue ?? \"\");\n const [localYear, setLocalYear] = useState(props.yearValue ?? \"\");\n\n const monthVal = bindings?.monthValue ? (boundMonth ?? \"\") : localMonth;\n const dayVal = bindings?.dayValue ? (boundDay ?? \"\") : localDay;\n const yearVal = bindings?.yearValue ? (boundYear ?? \"\") : localYear;\n\n const hintId = props.hint ? `${props.name}-hint` : undefined;\n\n return (\n <fieldset className=\"usa-fieldset\">\n <legend className=\"usa-legend\">{props.label}</legend>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n <div className=\"usa-memorable-date\">\n <div className=\"usa-form-group usa-form-group--month\">\n <label className=\"usa-label\" htmlFor={`${props.name}-month`}>\n Month\n </label>\n <input\n className=\"usa-input usa-input--inline\"\n id={`${props.name}-month`}\n name={`${props.name}_month`}\n type=\"text\"\n inputMode=\"numeric\"\n minLength={1}\n maxLength={2}\n pattern=\"[0-9]*\"\n placeholder=\"MM\"\n required={props.required ?? undefined}\n value={monthVal}\n aria-describedby={hintId}\n onChange={(e) => {\n const v = e.target.value.replace(/\\D/g, \"\").slice(0, 2);\n if (bindings?.monthValue) setBoundMonth(v);\n else setLocalMonth(v);\n emit(\"change\");\n }}\n />\n </div>\n <div className=\"usa-form-group usa-form-group--day\">\n <label className=\"usa-label\" htmlFor={`${props.name}-day`}>\n Day\n </label>\n <input\n className=\"usa-input usa-input--inline\"\n id={`${props.name}-day`}\n name={`${props.name}_day`}\n type=\"text\"\n inputMode=\"numeric\"\n minLength={1}\n maxLength={2}\n pattern=\"[0-9]*\"\n placeholder=\"DD\"\n required={props.required ?? undefined}\n value={dayVal}\n onChange={(e) => {\n const v = e.target.value.replace(/\\D/g, \"\").slice(0, 2);\n if (bindings?.dayValue) setBoundDay(v);\n else setLocalDay(v);\n emit(\"change\");\n }}\n />\n </div>\n <div className=\"usa-form-group usa-form-group--year\">\n <label className=\"usa-label\" htmlFor={`${props.name}-year`}>\n Year\n </label>\n <input\n className=\"usa-input usa-input--inline\"\n id={`${props.name}-year`}\n name={`${props.name}_year`}\n type=\"text\"\n inputMode=\"numeric\"\n minLength={4}\n maxLength={4}\n pattern=\"[0-9]*\"\n placeholder=\"YYYY\"\n required={props.required ?? undefined}\n value={yearVal}\n onChange={(e) => {\n const v = e.target.value.replace(/\\D/g, \"\").slice(0, 4);\n if (bindings?.yearValue) setBoundYear(v);\n else setLocalYear(v);\n emit(\"change\");\n }}\n />\n </div>\n </div>\n </fieldset>\n );\n },\n\n DateRangePicker: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"DateRangePicker\">>) => {\n const [boundStart, setBoundStart] = useBoundProp<string>(\n props.startValue as string | undefined,\n bindings?.startValue,\n );\n const [boundEnd, setBoundEnd] = useBoundProp<string>(\n props.endValue as string | undefined,\n bindings?.endValue,\n );\n const [localStart, setLocalStart] = useState(props.startValue ?? \"\");\n const [localEnd, setLocalEnd] = useState(props.endValue ?? \"\");\n\n const startVal = bindings?.startValue ? (boundStart ?? \"\") : localStart;\n const endVal = bindings?.endValue ? (boundEnd ?? \"\") : localEnd;\n\n const hintId = props.hint ? `${props.startName}-hint` : undefined;\n\n return (\n <div className=\"usa-date-range-picker\">\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n <div className=\"usa-date-range-picker__range-start\">\n <div className=\"usa-form-group\">\n <label className=\"usa-label\" htmlFor={props.startName}>\n {props.startLabel}\n {props.required && (\n <span className=\"usa-sr-only\"> (required)</span>\n )}\n </label>\n <div className=\"usa-date-picker\">\n <input\n className=\"usa-input\"\n id={props.startName}\n name={props.startName}\n type=\"date\"\n required={props.required ?? undefined}\n min={props.minDate ?? undefined}\n max={endVal || props.maxDate || undefined}\n value={startVal}\n aria-describedby={hintId}\n onChange={(e) => {\n const v = e.target.value;\n if (bindings?.startValue) setBoundStart(v);\n else setLocalStart(v);\n emit(\"change\");\n }}\n />\n </div>\n </div>\n </div>\n <div className=\"usa-date-range-picker__range-end\">\n <div className=\"usa-form-group\">\n <label className=\"usa-label\" htmlFor={props.endName}>\n {props.endLabel}\n {props.required && (\n <span className=\"usa-sr-only\"> (required)</span>\n )}\n </label>\n <div className=\"usa-date-picker\">\n <input\n className=\"usa-input\"\n id={props.endName}\n name={props.endName}\n type=\"date\"\n required={props.required ?? undefined}\n min={startVal || props.minDate || undefined}\n max={props.maxDate ?? undefined}\n value={endVal}\n onChange={(e) => {\n const v = e.target.value;\n if (bindings?.endValue) setBoundEnd(v);\n else setLocalEnd(v);\n emit(\"change\");\n }}\n />\n </div>\n </div>\n </div>\n </div>\n );\n },\n\n InputMask: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"InputMask\">>) => {\n const PRESETS: Record<string, string> = {\n phone: \"(___) ___-____\",\n zip: \"_____\",\n \"zip+4\": \"_____-____\",\n ssn: \"___-__-____\",\n };\n\n const pattern =\n props.preset && props.preset !== \"custom\"\n ? (PRESETS[props.preset] ?? \"\")\n : (props.pattern ?? \"\");\n\n function applyMask(raw: string): string {\n const digits = raw.replace(/\\D/g, \"\");\n let result = \"\";\n let di = 0;\n for (const ch of pattern) {\n if (di >= digits.length) break;\n if (ch === \"_\") {\n result += digits[di++];\n } else {\n result += ch;\n }\n }\n return result;\n }\n\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\n props.value ? applyMask(props.value) : \"\",\n );\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const validateOn = props.validateOn ?? \"blur\";\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const hasError = errors.length > 0;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const errorId = hasError ? `${inputId}-error` : undefined;\n const placeholder = pattern.length > 0 ? pattern : undefined;\n\n return (\n <div\n className={`usa-form-group${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n {hasError && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n <div className=\"usa-input-mask\" data-mask={pattern}>\n <input\n className={`usa-masked usa-input${hasError ? \" usa-input--error\" : \"\"}`}\n id={inputId}\n name={props.name}\n type=\"text\"\n inputMode=\"numeric\"\n placeholder={placeholder}\n required={props.required ?? undefined}\n value={value}\n aria-describedby={\n [hintId, errorId].filter(Boolean).join(\" \") || undefined\n }\n onChange={(e) => {\n const masked = applyMask(e.target.value);\n setValue(masked);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n onBlur={() => {\n if (hasValidation && validateOn === \"blur\") validate();\n emit(\"blur\");\n }}\n />\n </div>\n </div>\n );\n },\n\n Password: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"Password\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const [visible, setVisible] = useState(false);\n const validateOn = props.validateOn ?? \"blur\";\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const hasError = errors.length > 0;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const errorId = hasError ? `${inputId}-error` : undefined;\n\n return (\n <div\n className={`usa-form-group${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n {hasError && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n <div className=\"usa-input-group\">\n <input\n className={`usa-input${hasError ? \" usa-input--error\" : \"\"}`}\n id={inputId}\n name={props.name}\n type={visible ? \"text\" : \"password\"}\n autoComplete=\"current-password\"\n required={props.required ?? undefined}\n value={value}\n aria-describedby={\n [hintId, errorId].filter(Boolean).join(\" \") || undefined\n }\n onChange={(e) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n onBlur={() => {\n if (hasValidation && validateOn === \"blur\") validate();\n emit(\"blur\");\n }}\n />\n <div className=\"usa-input-group__append\">\n <button\n type=\"button\"\n className=\"usa-show-password usa-button usa-button--unstyled\"\n aria-controls={inputId}\n aria-label={visible ? \"Hide password\" : \"Show password\"}\n onClick={() => setVisible((v) => !v)}\n >\n {visible ? \"Hide password\" : \"Show password\"}\n </button>\n </div>\n </div>\n </div>\n );\n },\n\n ComboBox: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"ComboBox\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const [query, setQuery] = useState(\"\");\n const [open, setOpen] = useState(false);\n const validateOn = props.validateOn ?? \"change\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const allOptions = (props.options ?? []).map((opt) =>\n typeof opt === \"string\" ? { label: opt, value: opt } : opt,\n );\n const filtered = query\n ? allOptions.filter((o) =>\n o.label.toLowerCase().includes(query.toLowerCase()),\n )\n : allOptions;\n\n const selectedLabel =\n allOptions.find((o) => o.value === value)?.label ?? value;\n const hasError = errors.length > 0;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const errorId = hasError ? `${inputId}-error` : undefined;\n\n return (\n <div\n className={`usa-form-group${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={`${inputId}-combo`}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n {hasError && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n <div\n className={`usa-combo-box${value ? \" usa-combo-box--pristine\" : \"\"}`}\n style={{ position: \"relative\" }}\n >\n <select\n className=\"usa-select usa-sr-only\"\n name={props.name}\n id={inputId}\n aria-hidden=\"true\"\n tabIndex={-1}\n value={value}\n onChange={() => {}}\n required={props.required ?? undefined}\n >\n {props.placeholder && <option value=\"\">{props.placeholder}</option>}\n {allOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n <input\n id={`${inputId}-combo`}\n className={`usa-combo-box__input${hasError ? \" usa-input--error\" : \"\"}`}\n type=\"text\"\n autoComplete=\"off\"\n role=\"combobox\"\n aria-owns={`${inputId}-list`}\n aria-expanded={open}\n aria-autocomplete=\"list\"\n aria-describedby={\n [hintId, errorId].filter(Boolean).join(\" \") || undefined\n }\n placeholder={props.placeholder ?? undefined}\n value={open ? query : selectedLabel}\n onFocus={() => {\n setOpen(true);\n setQuery(\"\");\n }}\n onBlur={() => setTimeout(() => setOpen(false), 150)}\n onChange={(e) => setQuery(e.target.value)}\n />\n <span className=\"usa-combo-box__toggle-list__wrapper\">\n <button\n type=\"button\"\n className=\"usa-combo-box__toggle-list\"\n aria-label=\"Toggle the dropdown list\"\n tabIndex={-1}\n onClick={() => setOpen((v) => !v)}\n >\n &nbsp;\n </button>\n </span>\n {open && filtered.length > 0 && (\n <ul\n id={`${inputId}-list`}\n className=\"usa-combo-box__list\"\n role=\"listbox\"\n aria-label={props.label}\n style={{\n position: \"absolute\",\n zIndex: 100,\n width: \"100%\",\n background: \"#fff\",\n border: \"1px solid #565c65\",\n maxHeight: 220,\n overflowY: \"auto\",\n margin: 0,\n padding: 0,\n listStyle: \"none\",\n }}\n >\n {filtered.map((opt) => (\n <li\n key={opt.value}\n className={`usa-combo-box__list-option${value === opt.value ? \" usa-combo-box__list-option--selected\" : \"\"}`}\n role=\"option\"\n aria-selected={value === opt.value}\n aria-setsize={filtered.length}\n style={{ padding: \"0.5rem 1rem\", cursor: \"pointer\" }}\n onMouseDown={() => {\n setValue(opt.value);\n setQuery(\"\");\n setOpen(false);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n >\n {opt.label}\n </li>\n ))}\n </ul>\n )}\n </div>\n </div>\n );\n },\n\n DatePicker: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"DatePicker\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(props.value ?? \"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"change\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const hasError = errors.length > 0;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const errorId = hasError ? `${inputId}-error` : undefined;\n\n return (\n <div\n className={`usa-form-group${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint ?? \"mm/dd/yyyy\"}\n </span>\n )}\n {hasError && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n <div className=\"usa-date-picker\">\n <input\n className={`usa-input${hasError ? \" usa-input--error\" : \"\"}`}\n id={inputId}\n name={props.name}\n type=\"date\"\n required={props.required ?? undefined}\n min={props.minDate ?? undefined}\n max={props.maxDate ?? undefined}\n value={value}\n aria-describedby={\n [hintId, errorId].filter(Boolean).join(\" \") || undefined\n }\n onChange={(e) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n onBlur={() => {\n if (hasValidation && validateOn === \"blur\") validate();\n }}\n />\n </div>\n </div>\n );\n },\n\n TimePicker: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"TimePicker\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(props.value ?? \"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n\n const step = props.step ?? 30;\n const toMinutes = (t: string) => {\n const [h, m] = t.split(\":\").map(Number);\n return (h ?? 0) * 60 + (m ?? 0);\n };\n const toTime = (mins: number) => {\n const h = Math.floor(mins / 60);\n const m = mins % 60;\n return `${String(h).padStart(2, \"0\")}:${String(m).padStart(2, \"0\")}`;\n };\n const minMins = props.minTime ? toMinutes(props.minTime) : 0;\n const maxMins = props.maxTime ? toMinutes(props.maxTime) : 23 * 60 + 59;\n\n const options: string[] = [];\n for (let m = minMins; m <= maxMins; m += step) {\n options.push(toTime(m));\n }\n\n const formatDisplay = (t: string) => {\n if (!t) return \"\";\n const [h, m] = t.split(\":\").map(Number);\n const hour = h ?? 0;\n const suffix = hour >= 12 ? \"p.m.\" : \"a.m.\";\n const displayH = hour % 12 || 12;\n return `${displayH}:${String(m ?? 0).padStart(2, \"0\")} ${suffix}`;\n };\n\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n\n return (\n <div className=\"usa-form-group\">\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n <div className=\"usa-time-picker\">\n <select\n className=\"usa-select\"\n id={inputId}\n name={props.name}\n required={props.required ?? undefined}\n value={value}\n aria-describedby={hintId}\n onChange={(e) => {\n setValue(e.target.value);\n emit(\"change\");\n }}\n >\n <option value=\"\">- Select -</option>\n {options.map((t) => (\n <option key={t} value={t}>\n {formatDisplay(t)}\n </option>\n ))}\n </select>\n </div>\n </div>\n );\n },\n\n CharacterCount: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"CharacterCount\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(props.value ?? \"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"change\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const remaining = props.maxLength - value.length;\n const isOver = remaining < 0;\n const hasError = errors.length > 0 || isOver;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const statusId = `${inputId}-status`;\n const errorId = hasError ? `${inputId}-error` : undefined;\n\n const sharedProps = {\n id: inputId,\n name: props.name,\n className: `usa-${props.multiline ? \"textarea\" : \"input\"}${hasError ? \" usa-input--error\" : \"\"}`,\n maxLength: props.maxLength,\n required: props.required ?? undefined,\n value,\n \"aria-describedby\": [hintId, statusId, errorId].filter(Boolean).join(\" \"),\n onChange: (\n e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>,\n ) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n },\n onBlur: () => {\n if (hasValidation && validateOn === \"blur\") validate();\n },\n };\n\n return (\n <div\n className={`usa-form-group usa-character-count${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n {isOver && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {`${Math.abs(remaining)} characters over limit`}\n </span>\n )}\n {!isOver && errors.length > 0 && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n {props.multiline ? (\n <textarea {...sharedProps} rows={props.rows ?? 4} />\n ) : (\n <input {...sharedProps} type=\"text\" />\n )}\n <span\n id={statusId}\n className={`usa-character-count__status${isOver ? \" usa-character-count__status--invalid\" : \"\"}`}\n aria-live=\"polite\"\n >\n {isOver\n ? `${Math.abs(remaining)} characters over limit`\n : `${remaining} characters allowed`}\n </span>\n </div>\n );\n },\n\n // ── Additional Display ────────────────────────────────────────────────\n\n Icon: ({ props }: BaseComponentProps<UswdsProps<\"Icon\">>) => {\n const sizeClass = props.size ? ` usa-icon--size-${props.size}` : \"\";\n const colorClass = props.color ? ` ${props.color}` : \"\";\n\n // Built-in paths for common USWDS icons\n const iconPaths: Record<string, string> = {\n check: \"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\",\n check_circle:\n \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5l-4.5-4.5 1.41-1.41L10 13.67l7.09-7.09 1.41 1.41L10 16.5z\",\n close:\n \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\",\n cancel:\n \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\",\n search:\n \"M15.5 14h-.79l-.28-.27A6.471 6.471 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14\",\n arrow_forward:\n \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\",\n arrow_back:\n \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\",\n info: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\",\n warning: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\",\n error:\n \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\",\n star: \"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\",\n menu: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\",\n expand_more: \"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\",\n expand_less: \"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\",\n lock: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\",\n mail: \"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\",\n phone:\n \"M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\",\n home: \"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\",\n person:\n \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\",\n settings:\n \"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z\",\n };\n\n const path = iconPaths[props.name] ?? iconPaths[\"info\"];\n const isAriaHidden = !props.ariaLabel;\n\n return (\n <svg\n className={`usa-icon${sizeClass}${colorClass}`}\n aria-hidden={isAriaHidden ? true : undefined}\n aria-label={props.ariaLabel ?? undefined}\n role={props.ariaLabel ? \"img\" : undefined}\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d={path} />\n </svg>\n );\n },\n\n InputGroup: ({\n props,\n bindings,\n emit,\n }: BaseComponentProps<UswdsProps<\"InputGroup\">>) => {\n const [boundValue, setBoundValue] = useBoundProp<string>(\n props.value as string | undefined,\n bindings?.value,\n );\n const [localValue, setLocalValue] = useState(\"\");\n const isBound = !!bindings?.value;\n const value = isBound ? (boundValue ?? \"\") : localValue;\n const setValue = isBound ? setBoundValue : setLocalValue;\n const validateOn = props.validateOn ?? \"blur\";\n\n const hasValidation = !!(bindings?.value && props.checks?.length);\n const { errors, validate } = useFieldValidation(\n bindings?.value ?? \"\",\n hasValidation ? { checks: props.checks ?? [], validateOn } : undefined,\n );\n\n const hasError = errors.length > 0;\n const inputId = props.name;\n const hintId = props.hint ? `${inputId}-hint` : undefined;\n const errorId = hasError ? `${inputId}-error` : undefined;\n\n return (\n <div\n className={`usa-form-group${hasError ? \" usa-form-group--error\" : \"\"}`}\n >\n <label className=\"usa-label\" htmlFor={inputId}>\n {props.label}\n {props.required && <span className=\"usa-sr-only\"> (required)</span>}\n </label>\n {props.hint && (\n <span className=\"usa-hint\" id={hintId}>\n {props.hint}\n </span>\n )}\n {hasError && (\n <span className=\"usa-error-message\" id={errorId} role=\"alert\">\n {errors[0]}\n </span>\n )}\n <div\n className={`usa-input-group${hasError ? \" usa-input-group--error\" : \"\"}`}\n >\n {props.prefix && (\n <div className=\"usa-input-prefix\" aria-hidden=\"true\">\n {props.prefix}\n </div>\n )}\n <input\n className={`usa-input${hasError ? \" usa-input--error\" : \"\"}`}\n id={inputId}\n name={props.name}\n type={props.type ?? \"text\"}\n placeholder={props.placeholder ?? undefined}\n required={props.required ?? undefined}\n disabled={props.disabled ?? undefined}\n value={value}\n aria-describedby={\n [hintId, errorId].filter(Boolean).join(\" \") || undefined\n }\n onChange={(e) => {\n setValue(e.target.value);\n if (hasValidation && validateOn === \"change\") validate();\n emit(\"change\");\n }}\n onBlur={() => {\n if (hasValidation && validateOn === \"blur\") validate();\n emit(\"blur\");\n }}\n />\n {props.suffix && (\n <div className=\"usa-input-suffix\" aria-hidden=\"true\">\n {props.suffix}\n </div>\n )}\n </div>\n </div>\n );\n },\n\n List: ({ props }: BaseComponentProps<UswdsProps<\"List\">>) => {\n const items = props.items ?? [];\n const variant = props.variant ?? \"unordered\";\n\n const className =\n variant === \"unstyled\" ? \"usa-list usa-list--unstyled\" : \"usa-list\";\n\n if (variant === \"ordered\") {\n return (\n <ol className={className}>\n {items.map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ol>\n );\n }\n return (\n <ul className={className}>\n {items.map((item, i) => (\n <li key={i}>{item}</li>\n ))}\n </ul>\n );\n },\n\n ValidationChecklist: ({\n props,\n }: BaseComponentProps<UswdsProps<\"ValidationChecklist\">>) => {\n const items = props.items ?? [];\n return (\n <div>\n {props.heading && (\n <p className=\"usa-prose\">\n <strong>{props.heading}</strong>\n </p>\n )}\n <ul className=\"usa-checklist\">\n {items.map((item, i) => (\n <li\n key={i}\n className={`usa-checklist__item${item.checked ? \" usa-checklist__item--checked\" : \"\"}`}\n >\n {item.label}\n </li>\n ))}\n </ul>\n </div>\n );\n },\n\n // ── Page-level / Layout Components ───────────────────────────────────\n\n Form: ({ props, children, emit }: BaseComponentProps<UswdsProps<\"Form\">>) => {\n return (\n <form\n className={`usa-form${props.large ? \" usa-form--large\" : \"\"}`}\n onSubmit={(e) => {\n e.preventDefault();\n emit(\"submit\");\n }}\n >\n {children}\n </form>\n );\n },\n\n Section: ({ props, children }: BaseComponentProps<UswdsProps<\"Section\">>) => {\n const variantClass =\n props.variant === \"light\"\n ? \" usa-section--light\"\n : props.variant === \"dark\"\n ? \" usa-section--dark\"\n : \"\";\n\n return (\n <section className={`usa-section${variantClass}`}>\n <div className=\"grid-container\">\n {props.title && <h2 className=\"usa-prose\">{props.title}</h2>}\n {props.text && <p className=\"usa-prose\">{props.text}</p>}\n {children}\n </div>\n </section>\n );\n },\n\n Prose: ({ props, children }: BaseComponentProps<UswdsProps<\"Prose\">>) => {\n const element = props.element ?? \"div\";\n if (element === \"article\")\n return <article className=\"usa-prose\">{children}</article>;\n if (element === \"section\")\n return <section>{children}</section>;\n if (element === \"main\")\n return <main>{children}</main>;\n return <div>{children}</div>;\n },\n\n Hero: ({ props }: BaseComponentProps<UswdsProps<\"Hero\">>) => {\n return (\n <section\n className=\"usa-hero\"\n aria-label={props.ariaLabel ?? \"Introduction\"}\n style={\n props.backgroundUrl\n ? { backgroundImage: `url(${safeCssUrl(props.backgroundUrl)})` }\n : undefined\n }\n >\n <div className=\"grid-container\">\n <div className=\"usa-hero__callout\">\n <h1 className=\"usa-hero__heading\">\n {props.eyebrow && (\n <span className=\"usa-hero__heading--alt\">{props.eyebrow}</span>\n )}\n {props.heading}\n </h1>\n {props.body && <p>{props.body}</p>}\n </div>\n </div>\n </section>\n );\n },\n\n GraphicList: ({ props }: BaseComponentProps<UswdsProps<\"GraphicList\">>) => {\n const items = props.items ?? [];\n return (\n <section className=\"usa-graphic-list usa-section\">\n <div className=\"grid-container\">\n {props.heading && (\n <h2 className=\"usa-graphic-list__heading\">{props.heading}</h2>\n )}\n <div className=\"usa-graphic-list__row grid-row grid-gap\">\n {items.map((item, i) => (\n <div key={i} className=\"usa-media-block tablet:grid-col\">\n {item.imageUrl && (\n <img\n className=\"usa-media-block__img\"\n src={item.imageUrl}\n alt={item.imageAlt ?? \"\"}\n />\n )}\n <div className=\"usa-media-block__body\">\n <h3 className=\"usa-graphic-list__heading\">{item.heading}</h3>\n <p>{item.content}</p>\n </div>\n </div>\n ))}\n </div>\n </div>\n </section>\n );\n },\n\n EmbedContainer: ({\n props,\n }: BaseComponentProps<UswdsProps<\"EmbedContainer\">>) => {\n return (\n <div className=\"usa-embed-container\">\n <iframe\n src={safeHref(props.src)}\n title={props.title}\n sandbox=\"allow-scripts allow-same-origin allow-fullscreen allow-forms allow-popups\"\n allowFullScreen\n loading=\"lazy\"\n referrerPolicy=\"no-referrer-when-downgrade\"\n />\n </div>\n );\n },\n\n // ── Overlay / Modal ───────────────────────────────────────────────────\n\n Modal: ({ props, children }: BaseComponentProps<UswdsProps<\"Modal\">>) => {\n const [open, setOpen] = useStateBinding<boolean>(props.openPath ?? \"\");\n const isOpen = open ?? false;\n const uid = useId();\n const modalId = `${uid}-modal`;\n\n return (\n <>\n {isOpen && (\n <div\n className=\"usa-modal-overlay\"\n aria-controls={modalId}\n data-open-modal\n onClick={(e) => {\n if (e.target === e.currentTarget) setOpen(false);\n }}\n >\n <div\n className={`usa-modal${props.large ? \" usa-modal--lg\" : \"\"}`}\n id={modalId}\n aria-labelledby={`${modalId}-heading`}\n aria-describedby={`${modalId}-description`}\n role=\"dialog\"\n >\n <div className=\"usa-modal__content\">\n <div className=\"usa-modal__main\">\n <h2 className=\"usa-modal__heading\" id={`${modalId}-heading`}>\n {props.heading}\n </h2>\n <div className=\"usa-prose\" id={`${modalId}-description`}>\n {props.description && <p>{props.description}</p>}\n {children}\n </div>\n </div>\n <button\n type=\"button\"\n className=\"usa-button usa-modal__close\"\n aria-label=\"Close this window\"\n onClick={() => setOpen(false)}\n >\n <svg\n className=\"usa-icon\"\n aria-hidden=\"true\"\n focusable=\"false\"\n role=\"img\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n >\n <path d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\" />\n </svg>\n </button>\n </div>\n </div>\n </div>\n )}\n </>\n );\n },\n};\n","import { z } from \"zod\";\n\n// =============================================================================\n// Shared validation schemas used across form components\n// =============================================================================\n\nconst validationCheckSchema = z\n .array(\n z.object({\n type: z.string(),\n message: z.string(),\n args: z.record(z.string(), z.unknown()).optional(),\n }),\n )\n .nullable();\n\nconst validateOnSchema = z.enum([\"change\", \"blur\", \"submit\"]).nullable();\n\n// =============================================================================\n// USWDS Component Definitions\n// =============================================================================\n\n/**\n * U.S. Web Design System (USWDS) component definitions for json-render catalogs.\n *\n * These components follow USWDS design guidelines and use official `usa-*` CSS\n * class names. Users must include the USWDS CSS in their project:\n *\n * ```ts\n * import \"@uswds/uswds/css/uswds.css\";\n * // or via CDN: https://designsystem.digital.gov/how-to-use-uswds/\n * ```\n *\n * All components are built with accessibility in mind and follow WCAG 2.1 AA.\n */\nexport const uswdsComponentDefinitions = {\n // ==========================================================================\n // Layout Components\n // ==========================================================================\n\n Grid: {\n props: z.object({\n columns: z.number().nullable(),\n gap: z.enum([\"sm\", \"md\", \"lg\"]).nullable(),\n }),\n slots: [\"default\"],\n description:\n \"USWDS grid row with equal-width columns. columns: 1-12. gap: spacing between columns.\",\n example: { columns: 3, gap: \"md\" },\n },\n\n CardGroup: {\n props: z.object({\n cards: z.array(\n z.object({\n title: z.string().nullable(),\n description: z.string().nullable(),\n mediaUrl: z.string().nullable(),\n mediaAlt: z.string().nullable(),\n footer: z.string().nullable(),\n }),\n ),\n flag: z.boolean().nullable(),\n }),\n description:\n \"USWDS group of cards in a responsive grid. cards: [{title, description, mediaUrl?, mediaAlt?, footer?}]. flag for horizontal card layout.\",\n example: {\n cards: [\n {\n title: \"Card One\",\n description: \"Description one.\",\n mediaUrl: null,\n mediaAlt: null,\n footer: null,\n },\n {\n title: \"Card Two\",\n description: \"Description two.\",\n mediaUrl: null,\n mediaAlt: null,\n footer: null,\n },\n ],\n },\n },\n\n Card: {\n props: z.object({\n title: z.string().nullable(),\n description: z.string().nullable(),\n headerFirst: z.boolean().nullable(),\n mediaUrl: z.string().nullable(),\n mediaAlt: z.string().nullable(),\n flag: z.boolean().nullable(),\n }),\n slots: [\"default\"],\n description:\n \"USWDS card container. Use title/description for header, mediaUrl for an image, flag for horizontal layout.\",\n example: { title: \"Card Title\", description: \"Supporting text.\" },\n },\n\n Divider: {\n props: z.object({}),\n description: \"USWDS horizontal rule divider (usa-divider).\",\n },\n\n Footer: {\n props: z.object({\n variant: z.enum([\"slim\", \"medium\", \"big\"]).nullable(),\n agencyName: z.string(),\n agencyUrl: z.string().nullable(),\n logoUrl: z.string().nullable(),\n logoAlt: z.string().nullable(),\n navGroups: z\n .array(\n z.object({\n heading: z.string().nullable(),\n links: z.array(z.object({ label: z.string(), href: z.string() })),\n }),\n )\n .nullable(),\n contactHeading: z.string().nullable(),\n contactInfo: z\n .array(\n z.object({\n type: z.enum([\"address\", \"phone\", \"email\"]),\n value: z.string(),\n }),\n )\n .nullable(),\n socialLinks: z\n .array(\n z.object({\n platform: z.enum([\n \"facebook\",\n \"twitter\",\n \"youtube\",\n \"instagram\",\n \"rss\",\n \"linkedin\",\n \"github\",\n ]),\n href: z.string(),\n label: z.string(),\n }),\n )\n .nullable(),\n returnToTop: z.boolean().nullable(),\n }),\n description:\n \"USWDS site footer. variant: slim (compact), medium (default), big (multi-column nav). navGroups: [{heading?, links: [{label, href}]}]. For big variant, each group becomes a column.\",\n example: {\n variant: \"medium\",\n agencyName: \"Agency Name\",\n agencyUrl: \"/\",\n logoUrl: null,\n logoAlt: null,\n navGroups: [\n {\n heading: null,\n links: [\n { label: \"Home\", href: \"/\" },\n { label: \"About\", href: \"/about\" },\n { label: \"Contact\", href: \"/contact\" },\n ],\n },\n ],\n contactHeading: \"Contact\",\n contactInfo: [\n { type: \"address\", value: \"1800 F Street NW, Washington, DC 20405\" },\n { type: \"phone\", value: \"1-800-FED-INFO\" },\n { type: \"email\", value: \"info@agency.gov\" },\n ],\n socialLinks: null,\n returnToTop: true,\n },\n },\n\n // ==========================================================================\n // Navigation Components\n // ==========================================================================\n\n Accordion: {\n props: z.object({\n items: z.array(\n z.object({\n title: z.string(),\n content: z.string(),\n expanded: z.boolean().nullable(),\n }),\n ),\n bordered: z.boolean().nullable(),\n multiselectable: z.boolean().nullable(),\n }),\n description:\n \"USWDS accordion. Items as [{title, content, expanded?}]. bordered adds border styling. multiselectable allows multiple open panels.\",\n example: {\n items: [\n { title: \"First item\", content: \"Content for first item.\" },\n { title: \"Second item\", content: \"Content for second item.\" },\n ],\n },\n },\n\n Pagination: {\n props: z.object({\n totalPages: z.number(),\n page: z.number().nullable(),\n ariaLabel: z.string().nullable(),\n }),\n events: [\"change\"],\n description:\n \"USWDS pagination navigation. Use { $bindState } on page for current page number.\",\n example: { totalPages: 10, page: 1 },\n },\n\n StepIndicator: {\n props: z.object({\n steps: z.array(z.string()),\n currentStep: z.number(),\n counters: z.enum([\"default\", \"small\"]).nullable(),\n centered: z.boolean().nullable(),\n noLabels: z.boolean().nullable(),\n }),\n description:\n \"USWDS step indicator for multi-step forms. steps: array of step labels. currentStep: 1-based index of active step.\",\n example: {\n steps: [\"Personal info\", \"Household\", \"Review\"],\n currentStep: 1,\n },\n },\n\n Header: {\n props: z.object({\n variant: z.enum([\"basic\", \"extended\"]).nullable(),\n siteName: z.string(),\n siteUrl: z.string().nullable(),\n logoUrl: z.string().nullable(),\n logoAlt: z.string().nullable(),\n navItems: z\n .array(\n z.object({\n label: z.string(),\n href: z.string(),\n current: z.boolean().nullable(),\n items: z\n .array(\n z.object({\n label: z.string(),\n href: z.string(),\n }),\n )\n .nullable(),\n }),\n )\n .nullable(),\n showSearch: z.boolean().nullable(),\n }),\n description:\n \"USWDS site header with primary navigation. variant: basic (default) or extended (taller with logo). navItems: [{label, href, current?, items?}] — items creates a dropdown. showSearch adds a search bar.\",\n example: {\n variant: \"basic\",\n siteName: \"Agency Name\",\n siteUrl: \"/\",\n logoUrl: null,\n logoAlt: null,\n navItems: [\n { label: \"Home\", href: \"/\", current: true, items: null },\n { label: \"About\", href: \"/about\", current: false, items: null },\n {\n label: \"Topics\",\n href: \"/topics\",\n current: false,\n items: [\n { label: \"Topic One\", href: \"/topics/one\" },\n { label: \"Topic Two\", href: \"/topics/two\" },\n ],\n },\n ],\n showSearch: false,\n },\n },\n\n SkipNav: {\n props: z.object({\n href: z.string().nullable(),\n label: z.string().nullable(),\n }),\n description:\n \"USWDS skip navigation link. Renders an off-screen anchor that appears on focus, letting keyboard users jump past repeated navigation. href defaults to '#main-content'.\",\n example: { href: \"#main-content\", label: \"Skip to main content\" },\n },\n\n SideNav: {\n props: z.object({\n items: z.array(\n z.object({\n label: z.string(),\n href: z.string(),\n current: z.boolean().nullable(),\n children: z\n .array(\n z.object({\n label: z.string(),\n href: z.string(),\n current: z.boolean().nullable(),\n }),\n )\n .nullable(),\n }),\n ),\n ariaLabel: z.string().nullable(),\n }),\n description:\n \"USWDS side navigation. items: [{label, href, current?, children?}]. Mark the active page with current: true.\",\n example: {\n ariaLabel: \"Side navigation\",\n items: [\n {\n label: \"Overview\",\n href: \"/overview\",\n current: false,\n children: null,\n },\n {\n label: \"Getting started\",\n href: \"/getting-started\",\n current: true,\n children: [\n {\n label: \"Installation\",\n href: \"/getting-started/install\",\n current: false,\n },\n {\n label: \"Configuration\",\n href: \"/getting-started/config\",\n current: false,\n },\n ],\n },\n ],\n },\n },\n\n LanguageSelector: {\n props: z.object({\n languages: z.array(\n z.object({\n label: z.string(),\n href: z.string(),\n lang: z.string(),\n localLabel: z.string().nullable(),\n }),\n ),\n currentLang: z.string().nullable(),\n }),\n description:\n \"USWDS language selector. languages: [{label, href, lang, localLabel?}]. currentLang: BCP-47 code of the active language (e.g. 'en').\",\n example: {\n currentLang: \"en\",\n languages: [\n { label: \"English\", href: \"/en\", lang: \"en\", localLabel: null },\n { label: \"Spanish\", href: \"/es\", lang: \"es\", localLabel: \"Español\" },\n { label: \"French\", href: \"/fr\", lang: \"fr\", localLabel: \"Français\" },\n ],\n },\n },\n\n Link: {\n props: z.object({\n label: z.string(),\n href: z.string(),\n external: z.boolean().nullable(),\n variant: z.enum([\"default\", \"nav\"]).nullable(),\n }),\n events: [\"press\"],\n description:\n \"USWDS anchor link. external adds an external-link indicator. variant: default or nav (for navigation contexts).\",\n example: { label: \"Learn more\", href: \"/about\" },\n },\n\n InPageNavigation: {\n props: z.object({\n items: z.array(\n z.object({\n label: z.string(),\n href: z.string(),\n }),\n ),\n heading: z.string().nullable(),\n }),\n description:\n \"USWDS in-page navigation with jump links to sections. items: [{label, href}] where href is an anchor like '#section-1'.\",\n example: {\n heading: \"On this page\",\n items: [\n { label: \"Introduction\", href: \"#introduction\" },\n { label: \"Requirements\", href: \"#requirements\" },\n { label: \"How to apply\", href: \"#how-to-apply\" },\n ],\n },\n },\n\n Breadcrumb: {\n props: z.object({\n items: z.array(\n z.object({\n label: z.string(),\n href: z.string().nullable(),\n }),\n ),\n }),\n description:\n \"USWDS breadcrumb navigation. items: array of {label, href?}. Last item is current page (no link).\",\n example: {\n items: [\n { label: \"Home\", href: \"/\" },\n { label: \"Components\", href: \"/components\" },\n { label: \"Breadcrumb\", href: null },\n ],\n },\n },\n\n // ==========================================================================\n // Data Display Components\n // ==========================================================================\n\n Identifier: {\n props: z.object({\n domain: z.string(),\n agencyName: z.string(),\n agencyUrl: z.string().nullable(),\n logoUrl: z.string().nullable(),\n logoAlt: z.string().nullable(),\n disclaimer: z.string().nullable(),\n links: z\n .array(z.object({ label: z.string(), href: z.string() }))\n .nullable(),\n showUsagov: z.boolean().nullable(),\n }),\n description:\n \"USWDS agency identifier section. Shows domain, agency name, logo, required links, and USA.gov footer. Place at the bottom of .gov pages.\",\n example: {\n domain: \"agency.gov\",\n agencyName: \"U.S. Department of Example\",\n agencyUrl: \"/\",\n logoUrl: null,\n logoAlt: null,\n disclaimer: null,\n links: [\n { label: \"About agency.gov\", href: \"/about\" },\n { label: \"Accessibility statement\", href: \"/accessibility\" },\n { label: \"Privacy policy\", href: \"/privacy\" },\n { label: \"No FEAR Act data\", href: \"/no-fear\" },\n { label: \"Office of the Inspector General\", href: \"/oig\" },\n { label: \"Performance reports\", href: \"/performance\" },\n { label: \"FOIA requests\", href: \"/foia\" },\n ],\n showUsagov: true,\n },\n },\n\n GovBanner: {\n props: z.object({\n tld: z.enum([\".gov\", \".mil\"]).nullable(),\n expanded: z.boolean().nullable(),\n }),\n description:\n \"USWDS government site banner ('An official website of the United States government'). tld: '.gov' (default) or '.mil'. expanded: show expanded explanation by default.\",\n example: { tld: \".gov\" },\n },\n\n Collection: {\n props: z.object({\n items: z.array(\n z.object({\n heading: z.string(),\n href: z.string().nullable(),\n description: z.string().nullable(),\n date: z.string().nullable(),\n dateLabel: z.string().nullable(),\n tags: z.array(z.string()).nullable(),\n thumbnailUrl: z.string().nullable(),\n thumbnailAlt: z.string().nullable(),\n }),\n ),\n }),\n description:\n \"USWDS collection list of content items. items: [{heading, href?, description?, date?, dateLabel?, tags?, thumbnailUrl?, thumbnailAlt?}].\",\n example: {\n items: [\n {\n heading: \"Article Title\",\n href: \"/articles/1\",\n description: \"A short description of the article.\",\n date: \"2024-01-15\",\n dateLabel: \"January 15, 2024\",\n tags: [\"Policy\", \"Health\"],\n thumbnailUrl: null,\n thumbnailAlt: null,\n },\n ],\n },\n },\n\n IconList: {\n props: z.object({\n items: z.array(\n z.object({\n icon: z.string(),\n content: z.string(),\n color: z\n .enum([\"default\", \"success\", \"warning\", \"error\", \"info\"])\n .nullable(),\n }),\n ),\n title: z.string().nullable(),\n size: z.enum([\"sm\", \"lg\", \"xl\", \"2xl\", \"3xl\"]).nullable(),\n }),\n description:\n \"USWDS icon list. items: [{icon, content, color?}]. icon is a USWDS icon name (e.g. 'check_circle', 'cancel', 'info'). size controls icon size.\",\n example: {\n title: \"Requirements\",\n items: [\n {\n icon: \"check_circle\",\n content: \"Requirement one is met.\",\n color: \"success\",\n },\n {\n icon: \"check_circle\",\n content: \"Requirement two is met.\",\n color: \"success\",\n },\n {\n icon: \"cancel\",\n content: \"Requirement three is not met.\",\n color: \"error\",\n },\n ],\n },\n },\n\n Tooltip: {\n props: z.object({\n label: z.string(),\n content: z.string(),\n position: z.enum([\"top\", \"bottom\", \"left\", \"right\"]).nullable(),\n }),\n description:\n \"USWDS tooltip shown on hover. label: the visible trigger text. content: tooltip text. position: top (default), bottom, left, right.\",\n example: {\n label: \"Hover me\",\n content: \"This is a tooltip\",\n position: \"top\",\n },\n },\n\n Table: {\n props: z.object({\n columns: z.array(z.string()),\n rows: z.array(z.array(z.string())),\n caption: z.string().nullable(),\n borderless: z.boolean().nullable(),\n striped: z.boolean().nullable(),\n compact: z.boolean().nullable(),\n scrollable: z.boolean().nullable(),\n }),\n description:\n \"USWDS data table. columns: header labels. rows: 2D array of cell strings. borderless/striped/compact for styling variants.\",\n example: {\n columns: [\"Name\", \"Role\", \"Status\"],\n rows: [\n [\"Alice\", \"Admin\", \"Active\"],\n [\"Bob\", \"User\", \"Inactive\"],\n ],\n },\n },\n\n Heading: {\n props: z.object({\n text: z.string(),\n level: z.enum([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]).nullable(),\n }),\n description: \"USWDS heading text (h1–h6) with usa-prose styling.\",\n example: { text: \"Page Title\", level: \"h1\" },\n },\n\n Text: {\n props: z.object({\n text: z.string(),\n variant: z.enum([\"body\", \"lead\", \"small\", \"code\"]).nullable(),\n }),\n description:\n \"USWDS paragraph text. variant: body (default), lead, small, code.\",\n example: { text: \"Supporting paragraph text.\" },\n },\n\n Alert: {\n props: z.object({\n heading: z.string().nullable(),\n message: z.string(),\n type: z\n .enum([\"info\", \"success\", \"warning\", \"error\", \"emergency\"])\n .nullable(),\n slim: z.boolean().nullable(),\n noIcon: z.boolean().nullable(),\n }),\n description:\n \"USWDS alert banner. type: info (default), success, warning, error, emergency. slim for compact variant.\",\n example: {\n heading: \"Success\",\n message: \"Your form has been submitted.\",\n type: \"success\",\n },\n },\n\n SiteAlert: {\n props: z.object({\n heading: z.string().nullable(),\n message: z.string(),\n type: z.enum([\"info\", \"emergency\"]).nullable(),\n slim: z.boolean().nullable(),\n }),\n description:\n \"USWDS site-wide alert banner for important announcements. type: info (default) or emergency.\",\n example: {\n heading: \"Official website of the United States government\",\n message: \"Here's how you know this is a government site.\",\n type: \"info\",\n },\n },\n\n Tag: {\n props: z.object({\n text: z.string(),\n big: z.boolean().nullable(),\n }),\n description: \"USWDS tag/label badge. big for larger variant.\",\n example: { text: \"New\" },\n },\n\n SummaryBox: {\n props: z.object({\n heading: z.string(),\n items: z.array(z.string()),\n }),\n description:\n \"USWDS summary box with a heading and bullet list of key information.\",\n example: {\n heading: \"Key information\",\n items: [\"Item one\", \"Item two\", \"Item three\"],\n },\n },\n\n ProcessList: {\n props: z.object({\n items: z.array(\n z.object({\n heading: z.string(),\n content: z.string(),\n }),\n ),\n }),\n description:\n \"USWDS numbered process list for step-by-step instructions. items: [{heading, content}].\",\n example: {\n items: [\n { heading: \"Apply\", content: \"Submit your application online.\" },\n { heading: \"Review\", content: \"We review your application.\" },\n { heading: \"Approval\", content: \"Receive your decision letter.\" },\n ],\n },\n },\n\n // ==========================================================================\n // Form Input Components\n // ==========================================================================\n\n Button: {\n props: z.object({\n label: z.string(),\n variant: z\n .enum([\n \"default\",\n \"secondary\",\n \"accent-cool\",\n \"accent-warm\",\n \"base\",\n \"outline\",\n \"outline-inverse\",\n \"big\",\n \"unstyled\",\n ])\n .nullable(),\n disabled: z.boolean().nullable(),\n type: z.enum([\"button\", \"submit\", \"reset\"]).nullable(),\n }),\n events: [\"press\"],\n description:\n \"USWDS button. variant: default (primary), secondary, accent-cool, accent-warm, base, outline, outline-inverse, big, unstyled.\",\n example: { label: \"Submit\", variant: \"default\" },\n },\n\n ButtonGroup: {\n props: z.object({\n buttons: z.array(\n z.object({\n label: z.string(),\n value: z.string(),\n variant: z.enum([\"default\", \"secondary\", \"outline\"]).nullable(),\n }),\n ),\n segmented: z.boolean().nullable(),\n }),\n events: [\"press\"],\n description:\n \"USWDS button group. buttons: [{label, value, variant?}]. segmented renders as a connected group.\",\n example: {\n buttons: [\n { label: \"Back\", value: \"back\", variant: \"outline\" },\n { label: \"Continue\", value: \"continue\", variant: \"default\" },\n ],\n },\n },\n\n Input: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n type: z\n .enum([\"text\", \"email\", \"password\", \"number\", \"search\", \"tel\", \"url\"])\n .nullable(),\n placeholder: z.string().nullable(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n required: z.boolean().nullable(),\n disabled: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"submit\", \"focus\", \"blur\"],\n description:\n \"USWDS text input. Use { $bindState } on value for two-way binding. hint adds helper text below label. Use checks for validation.\",\n example: {\n label: \"Email address\",\n name: \"email\",\n type: \"email\",\n hint: \"e.g. name@example.gov\",\n },\n },\n\n Textarea: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n placeholder: z.string().nullable(),\n hint: z.string().nullable(),\n rows: z.number().nullable(),\n value: z.string().nullable(),\n required: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n description:\n \"USWDS multi-line textarea. Use { $bindState } on value for binding. hint adds helper text below label.\",\n example: { label: \"Message\", name: \"message\", rows: 4 },\n },\n\n Select: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n options: z.array(\n z.union([\n z.string(),\n z.object({ label: z.string(), value: z.string() }),\n ]),\n ),\n placeholder: z.string().nullable(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n required: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\"],\n description:\n \"USWDS select dropdown. options: array of strings or {label, value} objects. Use { $bindState } on value for binding.\",\n example: {\n label: \"State\",\n name: \"state\",\n options: [\"Alabama\", \"Alaska\", \"Arizona\"],\n },\n },\n\n Checkbox: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n hint: z.string().nullable(),\n checked: z.boolean().nullable(),\n tile: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\"],\n description:\n \"USWDS checkbox. Use { $bindState } on checked for binding. tile renders as a large tile variant.\",\n example: { label: \"I agree to the terms\", name: \"terms\" },\n },\n\n CheckboxGroup: {\n props: z.object({\n legend: z.string(),\n name: z.string(),\n options: z.array(\n z.object({\n label: z.string(),\n value: z.string(),\n hint: z.string().nullable(),\n }),\n ),\n tile: z.boolean().nullable(),\n values: z.array(z.string()).nullable(),\n }),\n events: [\"change\"],\n description:\n \"USWDS group of checkboxes in a fieldset. Use { $bindState } on values for selected values array.\",\n example: {\n legend: \"Select all that apply\",\n name: \"interests\",\n options: [\n { label: \"Technology\", value: \"tech\", hint: null },\n { label: \"Science\", value: \"science\", hint: null },\n ],\n },\n },\n\n Radio: {\n props: z.object({\n legend: z.string(),\n name: z.string(),\n options: z.array(\n z.object({\n label: z.string(),\n value: z.string(),\n hint: z.string().nullable(),\n }),\n ),\n tile: z.boolean().nullable(),\n value: z.string().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\"],\n description:\n \"USWDS radio button group. Use { $bindState } on value for binding. tile renders as tile variant.\",\n example: {\n legend: \"Select an option\",\n name: \"option\",\n options: [\n { label: \"Yes\", value: \"yes\", hint: null },\n { label: \"No\", value: \"no\", hint: null },\n ],\n },\n },\n\n FileInput: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n hint: z.string().nullable(),\n accept: z.string().nullable(),\n multiple: z.boolean().nullable(),\n required: z.boolean().nullable(),\n }),\n events: [\"change\"],\n description:\n \"USWDS file input. accept: MIME types (e.g. '.pdf,.doc'). multiple allows selecting multiple files.\",\n example: {\n label: \"Upload document\",\n name: \"document\",\n hint: \"Accepted formats: PDF, DOC\",\n accept: \".pdf,.doc,.docx\",\n },\n },\n\n Search: {\n props: z.object({\n label: z.string().nullable(),\n placeholder: z.string().nullable(),\n value: z.string().nullable(),\n size: z.enum([\"small\", \"medium\", \"big\"]).nullable(),\n }),\n events: [\"submit\", \"change\"],\n description:\n \"USWDS search bar. Use { $bindState } on value for the input value. size: small, medium (default), big.\",\n example: { placeholder: \"Search...\", size: \"medium\" },\n },\n\n RangeInput: {\n props: z.object({\n label: z.string().nullable(),\n name: z.string(),\n min: z.number().nullable(),\n max: z.number().nullable(),\n step: z.number().nullable(),\n value: z.number().nullable(),\n }),\n events: [\"change\"],\n description:\n \"USWDS range slider input. Use { $bindState } on value for binding.\",\n example: { label: \"Select a value\", name: \"range\", min: 0, max: 100 },\n },\n\n DateInputGroup: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n hint: z.string().nullable(),\n required: z.boolean().nullable(),\n monthValue: z.string().nullable(),\n dayValue: z.string().nullable(),\n yearValue: z.string().nullable(),\n }),\n events: [\"change\"],\n description:\n \"USWDS three-field date input (separate month, day, year inputs). Use { $bindState } on monthValue/dayValue/yearValue for individual field bindings.\",\n example: {\n label: \"Date of birth\",\n name: \"dob\",\n hint: \"For example: January 19 2000\",\n },\n },\n\n DateRangePicker: {\n props: z.object({\n startLabel: z.string(),\n endLabel: z.string(),\n startName: z.string(),\n endName: z.string(),\n hint: z.string().nullable(),\n startValue: z.string().nullable(),\n endValue: z.string().nullable(),\n minDate: z.string().nullable(),\n maxDate: z.string().nullable(),\n required: z.boolean().nullable(),\n }),\n events: [\"change\"],\n description:\n \"USWDS date range picker with start and end date inputs. Values are ISO date strings (YYYY-MM-DD). Use { $bindState } on startValue/endValue.\",\n example: {\n startLabel: \"Start date\",\n endLabel: \"End date\",\n startName: \"start_date\",\n endName: \"end_date\",\n hint: \"mm/dd/yyyy\",\n },\n },\n\n InputMask: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n preset: z.enum([\"phone\", \"zip\", \"zip+4\", \"ssn\", \"custom\"]).nullable(),\n pattern: z.string().nullable(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n required: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\", \"blur\"],\n description:\n \"USWDS input with automatic formatting mask. preset: phone '(___) ___-____', zip '_____', zip+4 '_____-____', ssn '___-__-____'. Or supply a custom pattern where '_' = digit.\",\n example: {\n label: \"Phone number\",\n name: \"phone\",\n preset: \"phone\",\n hint: \"(___) ___-____\",\n },\n },\n\n Password: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n required: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\", \"blur\"],\n description:\n \"USWDS password input with show/hide toggle button. Use { $bindState } on value for binding. Supports validation checks.\",\n example: {\n label: \"Password\",\n name: \"password\",\n hint: \"Must be at least 12 characters\",\n },\n },\n\n ComboBox: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n options: z.array(\n z.union([\n z.string(),\n z.object({ label: z.string(), value: z.string() }),\n ]),\n ),\n placeholder: z.string().nullable(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n required: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\"],\n description:\n \"USWDS combo box — a searchable/filterable select dropdown. options: strings or {label, value}. Use { $bindState } on value for binding.\",\n example: {\n label: \"Select a fruit\",\n name: \"fruit\",\n options: [\"Apple\", \"Banana\", \"Cherry\", \"Date\", \"Elderberry\"],\n placeholder: \"- Select -\",\n },\n },\n\n DatePicker: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n minDate: z.string().nullable(),\n maxDate: z.string().nullable(),\n required: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\"],\n description:\n \"USWDS date picker. value/minDate/maxDate are ISO date strings (YYYY-MM-DD). Use { $bindState } on value for binding.\",\n example: {\n label: \"Date of birth\",\n name: \"dob\",\n hint: \"mm/dd/yyyy\",\n },\n },\n\n TimePicker: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n minTime: z.string().nullable(),\n maxTime: z.string().nullable(),\n step: z.number().nullable(),\n required: z.boolean().nullable(),\n }),\n events: [\"change\"],\n description:\n \"USWDS time picker. value/minTime/maxTime use 'HH:MM' 24-hour format. step is in minutes (default 30). Use { $bindState } on value.\",\n example: {\n label: \"Appointment time\",\n name: \"appt_time\",\n hint: \"Select a time\",\n step: 30,\n },\n },\n\n CharacterCount: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n maxLength: z.number(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n multiline: z.boolean().nullable(),\n rows: z.number().nullable(),\n required: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\"],\n description:\n \"USWDS input or textarea with a live character count indicator. maxLength: character limit. multiline: renders as textarea. Use { $bindState } on value.\",\n example: {\n label: \"Brief description\",\n name: \"description\",\n maxLength: 150,\n hint: \"Enter a short summary\",\n multiline: true,\n },\n },\n\n // ==========================================================================\n // Overlay / Modal Components\n // ==========================================================================\n\n Modal: {\n props: z.object({\n heading: z.string(),\n description: z.string().nullable(),\n openPath: z.string(),\n large: z.boolean().nullable(),\n }),\n slots: [\"default\"],\n description:\n \"USWDS modal dialog. Set openPath to a boolean state path. Use setState to toggle open/close.\",\n example: {\n heading: \"Are you sure?\",\n description: \"This action cannot be undone.\",\n openPath: \"/modal/open\",\n },\n },\n\n // ==========================================================================\n // Additional Display Components\n // ==========================================================================\n\n Icon: {\n props: z.object({\n name: z.string(),\n size: z.enum([\"sm\", \"md\", \"lg\", \"xl\", \"2xl\", \"3xl\"]).nullable(),\n color: z.string().nullable(),\n ariaLabel: z.string().nullable(),\n }),\n description:\n \"USWDS standalone SVG icon from the USWDS icon set. name: USWDS icon name (e.g. 'check', 'close', 'search', 'arrow_forward'). size: sm–3xl. color: a USWDS text-color utility class (e.g. 'text-primary').\",\n example: { name: \"check_circle\", size: \"lg\", color: \"text-green\" },\n },\n\n InputGroup: {\n props: z.object({\n label: z.string(),\n name: z.string(),\n type: z\n .enum([\"text\", \"email\", \"password\", \"number\", \"search\", \"tel\", \"url\"])\n .nullable(),\n prefix: z.string().nullable(),\n suffix: z.string().nullable(),\n placeholder: z.string().nullable(),\n hint: z.string().nullable(),\n value: z.string().nullable(),\n required: z.boolean().nullable(),\n disabled: z.boolean().nullable(),\n checks: validationCheckSchema,\n validateOn: validateOnSchema,\n }),\n events: [\"change\", \"blur\"],\n description:\n \"USWDS input group — a text input with an optional prefix and/or suffix add-on (e.g. currency symbol, unit label). Use { $bindState } on value for two-way binding.\",\n example: {\n label: \"Amount\",\n name: \"amount\",\n prefix: \"$\",\n suffix: \".00\",\n type: \"number\",\n placeholder: \"0\",\n },\n },\n\n List: {\n props: z.object({\n items: z.array(z.string()),\n variant: z.enum([\"unordered\", \"ordered\", \"unstyled\"]).nullable(),\n }),\n description:\n \"USWDS list. variant: unordered (default, bullet list), ordered (numbered list), unstyled (no bullets/numbers).\",\n example: {\n variant: \"unordered\",\n items: [\"First item\", \"Second item\", \"Third item\"],\n },\n },\n\n ValidationChecklist: {\n props: z.object({\n items: z.array(\n z.object({\n label: z.string(),\n checked: z.boolean().nullable(),\n }),\n ),\n heading: z.string().nullable(),\n }),\n description:\n \"USWDS validation checklist (usa-checklist). Displays a list of password/input requirements with checked/unchecked states.\",\n example: {\n heading: \"Password must contain:\",\n items: [\n { label: \"At least 12 characters\", checked: true },\n { label: \"At least one uppercase letter\", checked: false },\n { label: \"At least one number\", checked: false },\n ],\n },\n },\n\n Prose: {\n props: z.object({\n element: z.enum([\"div\", \"article\", \"section\", \"main\"]).nullable(),\n }),\n slots: [\"default\"],\n description:\n \"USWDS prose typography wrapper (usa-prose). Applies USWDS text styles — headings, paragraphs, lists, links, blockquotes, code blocks — to nested content. element: div (default), article, section, or main.\",\n example: { element: \"article\" },\n },\n\n Hero: {\n props: z.object({\n heading: z.string(),\n eyebrow: z.string().nullable(),\n body: z.string().nullable(),\n backgroundUrl: z.string().nullable(),\n ariaLabel: z.string().nullable(),\n }),\n description:\n \"USWDS hero section — full-width landing page callout with optional background image. heading: headline text. eyebrow: smaller label above the headline. body: supporting paragraph. backgroundUrl: CSS background image URL (user-supplied).\",\n example: {\n heading: \"A tagline that explains your agency\\u2019s focus\",\n eyebrow: null,\n body: \"Support the text about your agency with a brief, relevant sentence or two.\",\n backgroundUrl: null,\n ariaLabel: \"Introduction\",\n },\n },\n\n GraphicList: {\n props: z.object({\n heading: z.string().nullable(),\n items: z.array(\n z.object({\n imageUrl: z.string().nullable(),\n imageAlt: z.string().nullable(),\n heading: z.string(),\n content: z.string(),\n }),\n ),\n }),\n description:\n \"USWDS graphic list — a responsive grid of image+text media blocks for showcasing values, programs, or features. items: [{imageUrl?, imageAlt?, heading, content}].\",\n example: {\n heading: null,\n items: [\n {\n imageUrl: null,\n imageAlt: null,\n heading: \"Graphic heading\",\n content: \"A short description of what this item represents.\",\n },\n {\n imageUrl: null,\n imageAlt: null,\n heading: \"Graphic heading\",\n content: \"A short description of what this item represents.\",\n },\n ],\n },\n },\n\n EmbedContainer: {\n props: z.object({\n src: z.string(),\n title: z.string(),\n ratio: z.enum([\"16x9\", \"4x3\"]).nullable(),\n }),\n description:\n \"USWDS embed container — a responsive aspect-ratio wrapper for iframe embeds such as YouTube videos. ratio: 16x9 (default) or 4x3. Provide a descriptive title for accessibility.\",\n example: {\n src: \"https://www.youtube.com/embed/example\",\n title: \"An example video\",\n ratio: \"16x9\",\n },\n },\n\n Form: {\n props: z.object({\n large: z.boolean().nullable(),\n }),\n slots: [\"default\"],\n events: [\"submit\"],\n description:\n \"USWDS form container (usa-form). Applies USWDS form layout — constrained max-width and consistent label/input spacing — to nested form elements. large: wider form variant. Wrap Input, Select, Checkbox, Radio, and other form components as children.\",\n example: { large: false },\n },\n\n Section: {\n props: z.object({\n title: z.string().nullable(),\n text: z.string().nullable(),\n variant: z.enum([\"default\", \"light\", \"dark\"]).nullable(),\n }),\n slots: [\"default\"],\n description:\n \"USWDS page section (usa-section). Applies consistent vertical padding to a full-width page section inside a grid-container. variant: default, light (lighter background), dark (darker background). title and text are optional — use children slots for richer content.\",\n example: {\n title: \"Section title\",\n text: \"Supporting section description text.\",\n variant: null,\n },\n },\n};\n\n// =============================================================================\n// Types\n// =============================================================================\n\n/**\n * Type for a USWDS component definition\n */\nexport type UswdsComponentDefinition = {\n props: z.ZodType;\n slots?: string[];\n events?: string[];\n description: string;\n example?: Record<string, unknown>;\n};\n\n/**\n * Infer the props type for a USWDS component by name.\n *\n * @example\n * ```ts\n * type ButtonProps = UswdsProps<\"Button\">;\n * // { label: string; variant: string | null; disabled: boolean | null; ... }\n * ```\n */\nexport type UswdsProps<K extends keyof typeof uswdsComponentDefinitions> =\n z.output<(typeof uswdsComponentDefinitions)[K][\"props\"]>;\n"],"mappings":"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","names":["import_react","links"]}