@openwarelabs/blocks 0.12.2 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/heroes/Hero01/Hero01.tsx", "../src/shared/BlockActions.tsx", "../src/heroes/Hero02/Hero02.tsx", "../src/shared/icons.tsx", "../src/heroes/Hero03/Hero03.tsx", "../src/heroes/Hero04/Hero04.tsx", "../src/heroes/Hero05/Hero05.tsx", "../src/heroes/Hero06/Hero06.tsx", "../src/headers/Header01/Header01.tsx", "../src/shared/BlockBrandLink.tsx", "../src/headers/Header02/Header02.tsx", "../src/headers/Header03/Header03.tsx", "../src/headers/Header04/Header04.tsx", "../src/headers/Header05/Header05.tsx", "../src/pricing/Pricing01/Pricing01.tsx", "../src/pricing/Pricing02/Pricing02.tsx", "../src/pricing/Pricing03/Pricing03.tsx", "../src/pricing/Pricing04/Pricing04.tsx", "../src/pricing/Pricing05/Pricing05.tsx", "../src/features/Features01/Features01.tsx", "../src/features/Features02/Features02.tsx", "../src/features/Features03/Features03.tsx", "../src/features/Features04/Features04.tsx", "../src/features/Features05/Features05.tsx", "../src/footers/Footer01/Footer01.tsx", "../src/shared/FooterColumns.tsx", "../src/footers/Footer02/Footer02.tsx", "../src/footers/Footer03/Footer03.tsx", "../src/footers/Footer04/Footer04.tsx", "../src/calls-to-action/Cta01/Cta01.tsx", "../src/calls-to-action/Cta02/Cta02.tsx", "../src/calls-to-action/Cta03/Cta03.tsx", "../src/section-headings/SectionHeading01/SectionHeading01.tsx", "../src/section-headings/SectionHeading02/SectionHeading02.tsx", "../src/section-headings/SectionHeading03/SectionHeading03.tsx", "../src/logo-clouds/Logos01/Logos01.tsx", "../src/logo-clouds/Logos02/Logos02.tsx", "../src/logo-clouds/Logos03/Logos03.tsx", "../src/stats/Stats01/Stats01.tsx", "../src/stats/Stats02/Stats02.tsx", "../src/stats/Stats03/Stats03.tsx", "../src/testimonials/Testimonial01/Testimonial01.tsx", "../src/testimonials/Testimonial02/Testimonial02.tsx", "../src/testimonials/Testimonial03/Testimonial03.tsx", "../src/faq/Faq01/Faq01.tsx", "../src/faq/Faq02/Faq02.tsx", "../src/faq/Faq03/Faq03.tsx", "../src/newsletter/Newsletter01/Newsletter01.tsx", "../src/newsletter/Newsletter02/Newsletter02.tsx", "../src/blog/Blog01/Blog01.tsx", "../src/blog/Blog02/Blog02.tsx", "../src/blog/Blog03/Blog03.tsx", "../src/blog/Blog04/Blog04.tsx", "../src/team/Team01/Team01.tsx", "../src/team/Team02/Team02.tsx", "../src/contact/Contact01/Contact01.tsx", "../src/contact/Contact02/Contact02.tsx", "../src/sign-in/SignIn01/SignIn01.tsx", "../src/sign-in/SignIn02/SignIn02.tsx", "../src/sign-in/SignIn03/SignIn03.tsx", "../src/sign-in/SignIn04/SignIn04.tsx", "../src/sign-in/SignIn05/SignIn05.tsx", "../src/settings/Settings01/Settings01.tsx", "../src/settings/Settings02/Settings02.tsx", "../src/settings/Settings03/Settings03.tsx", "../src/settings/Settings04/Settings04.tsx", "../src/settings/Settings05/Settings05.tsx", "../src/forms/Form01/Form01.tsx", "../src/forms/Form02/Form02.tsx", "../src/forms/Form03/Form03.tsx", "../src/onboarding/Onboarding01/Onboarding01.tsx", "../src/onboarding/Onboarding02/Onboarding02.tsx", "../src/onboarding/Onboarding03/Onboarding03.tsx", "../src/app-shells/Shell01/Shell01.tsx", "../src/shared/appShell.ts", "../src/shared/AppWorkspaceItems.tsx", "../src/shared/BlockMenuItems.tsx", "../src/app-shells/Shell02/Shell02.tsx", "../src/app-shells/Shell03/Shell03.tsx", "../src/app-shells/Shell04/Shell04.tsx", "../src/page-headings/PageHeading01/PageHeading01.tsx", "../src/page-headings/PageHeading02/PageHeading02.tsx", "../src/page-headings/PageHeading03/PageHeading03.tsx", "../src/dashboards/Dashboard01/Dashboard01.tsx", "../src/dashboards/Dashboard02/Dashboard02.tsx", "../src/shared/tableColumns.ts", "../src/dashboards/Dashboard03/Dashboard03.tsx", "../src/lists-and-tables/List01/List01.tsx", "../src/lists-and-tables/List02/List02.tsx", "../src/lists-and-tables/List03/List03.tsx", "../src/lists-and-tables/List04/List04.tsx", "../src/chat/Chat01/Chat01.tsx", "../src/chat/Chat02/Chat02.tsx", "../src/chat/Chat03/Chat03.tsx", "../src/empty-states/Empty01/Empty01.tsx", "../src/empty-states/Empty02/Empty02.tsx", "../src/empty-states/Empty03/Empty03.tsx", "../src/error-pages/ErrorPage01/ErrorPage01.tsx", "../src/error-pages/ErrorPage02/ErrorPage02.tsx", "../src/error-pages/ErrorPage03/ErrorPage03.tsx", "../src/notifications/Notifications01/Notifications01.tsx", "../src/notifications/Notifications02/Notifications02.tsx", "../src/notifications/Notifications03/Notifications03.tsx"],
4
- "sourcesContent": ["import { useId } from \"react\";\n\nimport { Chip, cx, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport type { Hero01Props } from \"./Hero01.types\";\n\n/** A centred hero: an eyebrow, the headline, a lead, two actions and a note, with the product below, running on into the page. */\nexport function Hero01({ eyebrow, title, description, primaryAction, secondaryAction, note, visual, className, ...props }: Hero01Props) {\n const titleId = useId();\n return (\n <section className={cx(\"ow-hero01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-hero01__inner\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"hero\" align=\"center\" id={titleId} className=\"ow-hero01__title\">\n {title}\n </Text>\n <Text variant=\"lead\" align=\"center\" className=\"ow-hero01__lead\">\n {description}\n </Text>\n <BlockActions className=\"ow-hero01__actions\" primary={primaryAction} secondary={secondaryAction} />\n {note ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-hero01__note\">\n {note}\n </Text>\n ) : null}\n </div>\n {visual ? <div className=\"ow-hero01__visual\">{visual}</div> : null}\n </section>\n );\n}\n", "import type { MouseEvent } from \"react\";\n\nimport { Button, buttonClassName, cx } from \"@openwarelabs/ui\";\n\nimport type { BlockActionButtonProps, BlockActionsProps } from \"@blocks/shared/shared.types\";\n\n/** One action as a large pill: a link styled as a button when it has an href, a button otherwise. */\nexport function BlockActionButton({ action, variant, size = \"lg\", shape = \"pill\", className, onAfterClick, fullWidth = false }: BlockActionButtonProps) {\n const { label, href, onClick, startIcon, endIcon, target, \"aria-label\": ariaLabel } = action;\n const click =\n onClick || onAfterClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick?.(event);\n onAfterClick?.();\n }\n : undefined;\n if (href !== undefined) {\n return (\n <a\n className={cx(buttonClassName({ variant, size, shape }), fullWidth && \"ow-button--full\", className)}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n aria-label={ariaLabel}\n onClick={click}\n >\n {startIcon ? <span className=\"ow-button__icon\">{startIcon}</span> : null}\n {label}\n {endIcon ? <span className=\"ow-button__icon\">{endIcon}</span> : null}\n </a>\n );\n }\n return (\n <Button\n variant={variant}\n shape={shape}\n size={size}\n startIcon={startIcon}\n endIcon={endIcon}\n aria-label={ariaLabel}\n onClick={click}\n fullWidth={fullWidth}\n className={className}\n >\n {label}\n </Button>\n );\n}\n\n/** The primary action and an optional secondary one, side by side. */\nexport function BlockActions({ primary, secondary, className }: BlockActionsProps) {\n return (\n <div className={className}>\n <BlockActionButton action={primary} variant=\"primary\" />\n {secondary ? <BlockActionButton action={secondary} variant=\"secondary\" /> : null}\n </div>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Chip, cx, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Hero02Props } from \"./Hero02.types\";\n\n/** A split hero: the words on the left and the product on the right. They stack on phones. */\nexport function Hero02({ eyebrow, title, description, primaryAction, secondaryAction, points, visual, className, ...props }: Hero02Props) {\n const titleId = useId();\n return (\n <section className={cx(\"ow-hero02\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-hero02__inner\">\n <div className=\"ow-hero02__text\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"page-title\" id={titleId} className=\"ow-hero02__title\">\n {title}\n </Text>\n <Text variant=\"lead\" className=\"ow-hero02__lead\">\n {description}\n </Text>\n <BlockActions className=\"ow-hero02__actions\" primary={primaryAction} secondary={secondaryAction} />\n {points?.length ? (\n <ul className=\"ow-hero02__points\">\n {points.map((point, index) => (\n <Text as=\"li\" key={index} tone=\"muted\" className=\"ow-hero02__point\">\n <CheckIcon size={15} />\n {point}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n {visual}\n </div>\n </section>\n );\n}\n", "import type { ReactNode } from \"react\";\n\nimport type { BlockIconProps } from \"@blocks/shared/shared.types\";\n\n// The few icons the blocks draw themselves, as Lucide shapes (ISC licence), so the package needs no icon library.\nconst icon = (paths: ReactNode) =>\n function BlockIcon({ size = 16, strokeWidth = 2, className }: BlockIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className={className}\n >\n {paths}\n </svg>\n );\n };\n\nexport const CheckIcon = /* @__PURE__ */ icon(<path d=\"M20 6 9 17l-5-5\" />);\nexport const MailIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\" />\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\" />\n </>,\n);\nexport const DownloadIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M12 15V3\" />\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <path d=\"m7 10 5 5 5-5\" />\n </>,\n);\nexport const MenuIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M4 5h16\" />\n <path d=\"M4 12h16\" />\n <path d=\"M4 19h16\" />\n </>,\n);\nexport const XIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </>,\n);\nexport const ChevronDownIcon = /* @__PURE__ */ icon(<path d=\"m6 9 6 6 6-6\" />);\nexport const ChevronRightIcon = /* @__PURE__ */ icon(<path d=\"m9 18 6-6-6-6\" />);\nexport const ArrowRightIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M5 12h14\" />\n <path d=\"m12 5 7 7-7 7\" />\n </>,\n);\nexport const MinusIcon = /* @__PURE__ */ icon(<path d=\"M5 12h14\" />);\nexport const SunIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2\" />\n <path d=\"M12 20v2\" />\n <path d=\"m4.93 4.93 1.41 1.41\" />\n <path d=\"m17.66 17.66 1.41 1.41\" />\n <path d=\"M2 12h2\" />\n <path d=\"M20 12h2\" />\n <path d=\"m6.34 17.66-1.41 1.41\" />\n <path d=\"m19.07 4.93-1.41 1.41\" />\n </>,\n);\nexport const MoonIcon = /* @__PURE__ */ icon(\n <path d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\" />,\n);\nexport const MonitorIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"20\" height=\"14\" x=\"2\" y=\"3\" rx=\"2\" />\n <line x1=\"8\" x2=\"16\" y1=\"21\" y2=\"21\" />\n <line x1=\"12\" x2=\"12\" y1=\"17\" y2=\"21\" />\n </>,\n);\nexport const CircleCheckIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m16 9-5.5 5.5L8 12\" />\n </>,\n);\nexport const PauseIcon = /* @__PURE__ */ icon(\n <>\n <rect x=\"14\" y=\"3\" width=\"5\" height=\"18\" rx=\"1\" />\n <rect x=\"5\" y=\"3\" width=\"5\" height=\"18\" rx=\"1\" />\n </>,\n);\nexport const PlayIcon = /* @__PURE__ */ icon(<path d=\"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\" />);\nexport const QuoteIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z\" />\n <path d=\"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z\" />\n </>,\n);\n\nexport const ArrowLeftIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m12 19-7-7 7-7\" />\n <path d=\"M19 12H5\" />\n </>,\n);\n\nexport const CalendarDaysIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M8 2v3\" />\n <path d=\"M16 2v3\" />\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M3 9h18\" />\n <path d=\"M8 13h.01\" />\n <path d=\"M12 13h.01\" />\n <path d=\"M16 13h.01\" />\n <path d=\"M8 17h.01\" />\n <path d=\"M12 17h.01\" />\n <path d=\"M16 17h.01\" />\n </>,\n);\n\nexport const ClockIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 6v6l4 2\" />\n </>,\n);\n\nexport const MapPinIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\" />\n <circle cx=\"12\" cy=\"10\" r=\"3\" />\n </>,\n);\n\nexport const LinkIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\" />\n <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\" />\n </>,\n);\n\nexport const MailCheckIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\" />\n <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n <path d=\"m16 19 2 2 4-4\" />\n </>,\n);\n\nexport const ShieldCheckIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\" />\n <path d=\"m9 12 2 2 4-4\" />\n </>,\n);\n\nexport const KeyRoundIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\" />\n <circle cx=\"16.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\" />\n </>,\n);\n\nexport const EyeIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n);\n\nexport const EyeOffIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\" />\n <path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\" />\n <path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\" />\n <path d=\"m2 2 20 20\" />\n </>,\n);\n\nexport const PlusIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </>,\n);\n\nexport const EllipsisIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </>,\n);\n\nexport const CopyIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </>,\n);\n\nexport const UserMinusIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <line x1=\"22\" x2=\"16\" y1=\"11\" y2=\"11\" />\n </>,\n);\n\nexport const RotateCwIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\" />\n <path d=\"M21 3v5h-5\" />\n </>,\n);\n\nexport const SendIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\" />\n <path d=\"m21.854 2.147-10.94 10.939\" />\n </>,\n);\n\nexport const Trash2Icon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10 11v6\" />\n <path d=\"M14 11v6\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M3 6h18\" />\n <path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n </>,\n);\n\nexport const ArchiveIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"20\" height=\"5\" x=\"2\" y=\"3\" rx=\"1\" />\n <path d=\"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8\" />\n <path d=\"M10 12h4\" />\n </>,\n);\n\nexport const ArchiveRestoreIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"20\" height=\"5\" x=\"2\" y=\"3\" rx=\"1\" />\n <path d=\"M4 8v11a2 2 0 0 0 2 2h2\" />\n <path d=\"M20 8v11a2 2 0 0 1-2 2h-2\" />\n <path d=\"m9 15 3-3 3 3\" />\n <path d=\"M12 12v9\" />\n </>,\n);\n\nexport const ArrowLeftRightIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M8 3 4 7l4 4\" />\n <path d=\"M4 7h16\" />\n <path d=\"m16 21 4-4-4-4\" />\n <path d=\"M20 17H4\" />\n </>,\n);\n\nexport const RotateCcwIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </>,\n);\n\nexport const SearchIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m21 21-4.34-4.34\" />\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n </>,\n);\n\nexport const ChevronsUpDownIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </>,\n);\n\nexport const ChevronLeftIcon = /* @__PURE__ */ icon(<path d=\"m15 18-6-6 6-6\" />);\nexport const PanelRightIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M15 3v18\" />\n </>,\n);\n\nexport const PanelLeftOpenIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d=\"m14 9 3 3-3 3\" />\n </>,\n);\n\nexport const PanelLeftCloseIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d=\"m16 15-3-3 3-3\" />\n </>,\n);\n\nexport const SearchXIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m13.5 8.5-5 5\" />\n <path d=\"m8.5 8.5 5 5\" />\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </>,\n);\n\nexport const MessageSquareIcon = /* @__PURE__ */ icon(\n <path d=\"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z\" />,\n);\n\nexport const PencilIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\" />\n <path d=\"m15 5 4 4\" />\n </>,\n);\n\nexport const TriangleAlertIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </>,\n);\n\nexport const CreditCardIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"20\" height=\"14\" x=\"2\" y=\"5\" rx=\"2\" />\n <line x1=\"2\" x2=\"22\" y1=\"10\" y2=\"10\" />\n <path d=\"M6 14h2\" />\n </>,\n);\n\nexport const ArrowUpIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </>,\n);\n\nexport const CircleStopIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <rect x=\"9\" y=\"9\" width=\"6\" height=\"6\" rx=\"1\" />\n </>,\n);\n\nexport const SquarePenIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\" />\n </>,\n);\n\nexport const StarIcon = /* @__PURE__ */ icon(\n <path d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\" />,\n);\n\nexport const ListFilterIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M2 5h20\" />\n <path d=\"M6 12h12\" />\n <path d=\"M9 19h6\" />\n </>,\n);\n\nexport const CloudOffIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10.94 5.274A7 7 0 0 1 15.71 10h1.79a4.5 4.5 0 0 1 4.222 6.057\" />\n <path d=\"M18.796 18.81A4.5 4.5 0 0 1 17.5 19H9A7 7 0 0 1 5.79 5.78\" />\n <path d=\"m2 2 20 20\" />\n </>,\n);\n\nexport const ArrowUpRightIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M7 7h10v10\" />\n <path d=\"M7 17 17 7\" />\n </>,\n);\n\nexport const BellRingIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10.268 21a2 2 0 0 0 3.464 0\" />\n <path d=\"M22 8c0-2.3-.8-4.3-2-6\" />\n <path d=\"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\" />\n <path d=\"M4 2C2.8 3.7 2 5.7 2 8\" />\n </>,\n);\n\nexport const BellIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10.268 21a2 2 0 0 0 3.464 0\" />\n <path d=\"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\" />\n </>,\n);\n\nexport const CheckCheckIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M18 6 7 17l-5-5\" />\n <path d=\"m22 10-7.5 7.5L13 16\" />\n </>,\n);\n\nexport const SettingsIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n);\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, Chip, cx, Input, Text } from \"@openwarelabs/ui\";\n\nimport { CheckIcon, MailIcon } from \"@blocks/shared/icons\";\nimport type { Hero03Props } from \"./Hero03.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** A hero with an email field: join a waitlist or start a trial in one step, with a confirmation in place of the form. */\nexport function Hero03({\n eyebrow,\n title,\n description,\n submitLabel,\n onSubmit,\n note,\n successTitle,\n successDescription,\n visual,\n labels = {},\n className,\n ...props\n}: Hero03Props) {\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState<string | null>(null);\n const [sending, setSending] = useState(false);\n const [joined, setJoined] = useState<string | null>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const doneRef = useRef<HTMLDivElement>(null);\n const touched = useRef(false);\n const id = useId();\n const titleId = `${id}-title`;\n\n // Moving between the form and the confirmation, take focus along so it isn't lost with the element that had it.\n useEffect(() => {\n if (!touched.current) return;\n if (joined) doneRef.current?.focus();\n else inputRef.current?.focus();\n }, [joined]);\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const value = email.trim();\n const problem = !value\n ? (labels.empty ?? \"Enter your work email to join the waitlist.\")\n : !emailPattern.test(value)\n ? (labels.invalid ?? \"That doesn't look like an email address. Try one like maya@example.com.\")\n : null;\n setError(problem);\n if (problem) {\n inputRef.current?.focus();\n return;\n }\n setSending(true);\n try {\n await onSubmit(value);\n touched.current = true;\n setJoined(value);\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n inputRef.current?.focus();\n } finally {\n setSending(false);\n }\n };\n\n return (\n <section className={cx(\"ow-hero03\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-hero03__inner\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"hero\" align=\"center\" id={titleId} className=\"ow-hero03__title\">\n {title}\n </Text>\n <Text variant=\"lead\" align=\"center\" className=\"ow-hero03__lead\">\n {description}\n </Text>\n\n {joined ? (\n <div ref={doneRef} className=\"ow-hero03__done\" tabIndex={-1}>\n <span className=\"ow-hero03__done-icon\" aria-hidden=\"true\">\n <CheckIcon size={16} />\n </span>\n <div className=\"ow-hero03__done-text\">\n <Text variant=\"label\">{successTitle}</Text>\n {successDescription ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-hero03__done-detail\">\n {successDescription(joined)}\n </Text>\n ) : null}\n </div>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n touched.current = true;\n setJoined(null);\n }}\n >\n {labels.change ?? \"Change email\"}\n </Button>\n </div>\n ) : (\n <form className=\"ow-hero03__form\" noValidate onSubmit={submit}>\n <div className=\"ow-hero03__row\">\n <Input\n ref={inputRef}\n className=\"ow-hero03__input\"\n type=\"email\"\n autoComplete=\"email\"\n aria-label={labels.email ?? \"Work email\"}\n aria-describedby={error ? `${id}-error` : note ? `${id}-note` : undefined}\n placeholder={labels.placeholder ?? \"you@company.com\"}\n startContent={<MailIcon size={16} />}\n value={email}\n isInvalid={Boolean(error)}\n onChange={(event) => {\n setEmail(event.target.value);\n if (error) setError(null);\n }}\n />\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" size=\"lg\" loading={sending}>\n {submitLabel}\n </Button>\n </div>\n {error ? (\n <Text tone=\"danger\" id={`${id}-error`} className=\"ow-hero03__error\" role=\"alert\">\n {error}\n </Text>\n ) : null}\n {note ? (\n <Text variant=\"caption\" as=\"p\" id={`${id}-note`} className=\"ow-hero03__note\">\n {note}\n </Text>\n ) : null}\n </form>\n )}\n\n {visual}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Chip, cx, DotGrid, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport type { Hero04Props } from \"./Hero04.types\";\n\n/** A hero on Openware's dot grid, with the dots turning brass under the pointer and room for something either side. */\nexport function Hero04({ eyebrow, title, description, primaryAction, secondaryAction, start, end, interactive = true, className, ...props }: Hero04Props) {\n const titleId = useId();\n return (\n <section className={cx(\"ow-hero04\", className)} aria-labelledby={titleId} {...props}>\n <DotGrid fade interactive={interactive} className=\"ow-hero04__grid\">\n <div className=\"ow-hero04__layout\">\n {start}\n <div className=\"ow-hero04__text\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"hero\" align=\"center\" id={titleId} className=\"ow-hero04__title\">\n {title}\n </Text>\n <Text variant=\"lead\" align=\"center\" className=\"ow-hero04__lead\">\n {description}\n </Text>\n <BlockActions className=\"ow-hero04__actions\" primary={primaryAction} secondary={secondaryAction} />\n </div>\n {end}\n </div>\n </DotGrid>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Chip, cx, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport type { Hero05Props } from \"./Hero05.types\";\n\n/** The usual hero, with the headline beside the lead, then a row of customers' logos as the first proof. */\nexport function Hero05({ eyebrow, title, description, primaryAction, secondaryAction, logosTitle, logos, className, ...props }: Hero05Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-hero05\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-hero05__inner\">\n <div className=\"ow-hero05__top\">\n <div className=\"ow-hero05__heading\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"hero\" id={`${id}-title`} className=\"ow-hero05__title\">\n {title}\n </Text>\n </div>\n <div>\n <Text variant=\"lead\">{description}</Text>\n <BlockActions className=\"ow-hero05__actions\" primary={primaryAction} secondary={secondaryAction} />\n </div>\n </div>\n\n <div className=\"ow-hero05__proof\">\n <Text tone=\"muted\" id={`${id}-logos`}>\n {logosTitle}\n </Text>\n <ul className=\"ow-hero05__list\" aria-labelledby={`${id}-logos`}>\n {logos.map((logo) => (\n <li key={logo.name} className=\"ow-hero05__logo\">\n {logo.logo}\n </li>\n ))}\n </ul>\n </div>\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useState } from \"react\";\n\nimport { Button, buttonClassName, Chip, cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport { DownloadIcon } from \"@blocks/shared/icons\";\nimport type { Hero06Platform, Hero06PlatformId, Hero06Props } from \"./Hero06.types\";\n\n/** The computer this page is open on, or null for phones, tablets and anything unknown. */\nfunction detectPlatform(): Hero06PlatformId | null {\n const nav = navigator as Navigator & { userAgentData?: { platform?: string } };\n const name = `${nav.userAgentData?.platform ?? \"\"} ${navigator.platform} ${navigator.userAgent}`.toLowerCase();\n if (/android|iphone|ipad|ipod/.test(name) || (name.includes(\"mac\") && navigator.maxTouchPoints > 1)) return null;\n if (name.includes(\"mac\")) return \"mac\";\n if (name.includes(\"win\")) return \"windows\";\n if (name.includes(\"linux\") || name.includes(\"x11\")) return \"linux\";\n return null;\n}\n\nconst defaultLabel = (name: string) => `Download for ${name}`;\n\n/** A hero for a desktop app: a download button for each system, with the visitor's own first, and the app beside it. */\nexport function Hero06({\n eyebrow,\n title,\n description,\n platforms,\n version,\n otherDownloads,\n downloadLabel = defaultLabel,\n visual,\n className,\n ...props\n}: Hero06Props) {\n const titleId = useId();\n // Until the page knows which computer it's on (after it mounts), the first platform leads.\n const [detected, setDetected] = useState<Hero06PlatformId | null>(null);\n useEffect(() => setDetected(detectPlatform()), []);\n\n const current = platforms.find((platform) => platform.id === detected) ?? platforms[0];\n const order = current ? [current, ...platforms.filter((platform) => platform !== current)] : [];\n\n const button = (platform: Hero06Platform, primary: boolean) => {\n const label = downloadLabel(platform.name);\n const content = primary ? label : platform.name;\n const icon = primary ? <DownloadIcon size={16} /> : null;\n if (platform.href !== undefined) {\n return (\n <a\n key={platform.id}\n className={buttonClassName({ variant: primary ? \"primary\" : \"secondary\", size: \"lg\", shape: \"pill\" })}\n href={platform.href}\n aria-label={primary ? undefined : label}\n onClick={platform.onDownload}\n >\n {icon ? <span className=\"ow-button__icon\">{icon}</span> : null}\n {content}\n </a>\n );\n }\n return (\n <Button\n key={platform.id}\n variant={primary ? \"primary\" : \"secondary\"}\n shape=\"pill\"\n size=\"lg\"\n startIcon={icon}\n aria-label={primary ? undefined : label}\n onClick={platform.onDownload}\n >\n {content}\n </Button>\n );\n };\n\n return (\n <section className={cx(\"ow-hero06\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-hero06__inner\">\n <div className=\"ow-hero06__text\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"page-title\" id={titleId} className=\"ow-hero06__title\">\n {title}\n </Text>\n <Text variant=\"lead\" className=\"ow-hero06__lead\">\n {description}\n </Text>\n <div className=\"ow-hero06__buttons\">{order.map((platform, index) => button(platform, index === 0))}</div>\n {version || current?.requirement || otherDownloads ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-hero06__meta\">\n {version ? <span>{version}</span> : null}\n {current?.requirement ? <span>{current.requirement}</span> : null}\n {otherDownloads ? (\n <span className=\"ow-hero06__other\">\n <Link href={otherDownloads.href} variant=\"muted\">\n {otherDownloads.label}\n </Link>\n </span>\n ) : null}\n </Text>\n ) : null}\n </div>\n {visual}\n </div>\n </section>\n );\n}\n", "import { useEffect, useState } from \"react\";\n\nimport { Button, cx, Link, Popover, SiteHeader } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport { MenuIcon } from \"@blocks/shared/icons\";\nimport type { Header01Props } from \"./Header01.types\";\n\n/**\n * A blurred pill that floats above the page and follows it down: the logo, the links in the middle and one call\n * to action. On phones the links fold into a menu behind a button. Put it first inside the page's scrolling area.\n */\nexport function Header01({ brand, links, primaryAction, secondaryLink, labels = {}, className, ...props }: Header01Props) {\n const [menuOpen, setMenuOpen] = useState(false);\n const menuLabel = labels.menu ?? \"Menu\";\n\n // The menu button only shows on phones; close its menu if the window grows past them.\n useEffect(() => {\n const wide = window.matchMedia(\"(min-width: 761px)\");\n const onChange = () => wide.matches && setMenuOpen(false);\n wide.addEventListener(\"change\", onChange);\n return () => wide.removeEventListener(\"change\", onChange);\n }, []);\n\n return (\n <div className={cx(\"ow-header01\", className)} {...props}>\n <SiteHeader\n brand={<BlockBrandLink brand={brand} className=\"ow-header01__brand\" />}\n nav={links.map((link, index) => (\n <Link key={index} href={link.href} variant=\"standalone\" aria-current={link.current ? \"page\" : undefined}>\n {link.label}\n </Link>\n ))}\n actions={\n <>\n {secondaryLink ? (\n <Link\n href={secondaryLink.href}\n variant=\"standalone\"\n className=\"ow-header01__sign-in\"\n aria-current={secondaryLink.current ? \"page\" : undefined}\n >\n {secondaryLink.label}\n </Link>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n <span className=\"ow-header01__phone-menu\">\n <Popover\n aria-label={menuLabel}\n placement=\"bottom-end\"\n width={240}\n open={menuOpen}\n onOpenChange={setMenuOpen}\n trigger={\n <Button variant=\"ghost\" shape=\"pill\" size=\"sm\" iconOnly aria-label={menuLabel}>\n <MenuIcon size={16} />\n </Button>\n }\n >\n <nav className=\"ow-header01__menu\" aria-label=\"Main\">\n {links.map((link, index) => (\n <Link\n key={index}\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header01__menu-link\"\n aria-current={link.current ? \"page\" : undefined}\n onClick={() => setMenuOpen(false)}\n >\n {link.label}\n </Link>\n ))}\n {secondaryLink ? (\n <Link\n href={secondaryLink.href}\n variant=\"standalone\"\n className=\"ow-header01__menu-link ow-header01__menu-link--sign-in\"\n onClick={() => setMenuOpen(false)}\n >\n {secondaryLink.label}\n </Link>\n ) : null}\n </nav>\n </Popover>\n </span>\n </>\n }\n />\n </div>\n );\n}\n", "import { forwardRef } from \"react\";\n\nimport { Link } from \"@openwarelabs/ui\";\n\nimport type { BlockBrandLinkProps } from \"@blocks/shared/shared.types\";\n\n/** The product's logo and name, as a link home. */\nexport const BlockBrandLink = /* @__PURE__ */ forwardRef<HTMLAnchorElement, BlockBrandLinkProps>(function BlockBrandLink({ brand, className }, ref) {\n return (\n <Link ref={ref} href={brand.href} variant=\"standalone\" className={className}>\n {brand.logo}\n {brand.name}\n </Link>\n );\n});\n", "import { Fragment, useEffect, useId, useState } from \"react\";\n\nimport { Badge, Button, buttonClassName, cx, Link, Menu, MenuItem, MenuSeparator, Popover, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport { ArrowRightIcon, ChevronDownIcon, MenuIcon, XIcon } from \"@blocks/shared/icons\";\nimport type { Header02Panel, Header02Props } from \"./Header02.types\";\n\nconst navigateTo = (href: string) => window.location.assign(href);\n\nfunction PanelContent({ panel, onNavigate }: { panel: Header02Panel; onNavigate(): void }) {\n return (\n <div className=\"ow-header02__product\">\n <ul className=\"ow-header02__features\">\n {panel.features.map((feature, index) => (\n <li key={index}>\n <Link href={feature.href} variant=\"standalone\" className=\"ow-header02__feature\" onClick={onNavigate}>\n {feature.icon ? (\n <span className=\"ow-header02__feature-icon\" aria-hidden=\"true\">\n {feature.icon}\n </span>\n ) : null}\n <span className=\"ow-header02__feature-text\">\n <Text variant=\"label\">{feature.title}</Text>\n <Text variant=\"caption\">{feature.description}</Text>\n </span>\n </Link>\n </li>\n ))}\n </ul>\n {panel.highlight ? (\n <Link href={panel.highlight.href} variant=\"standalone\" className=\"ow-header02__news\" onClick={onNavigate}>\n {panel.highlight.badge ? (\n <Badge size=\"sm\" variant=\"active\">\n {panel.highlight.badge}\n </Badge>\n ) : null}\n <Text variant=\"label\">{panel.highlight.title}</Text>\n <Text as=\"span\" tone=\"primary\" className=\"ow-header02__news-link\">\n {panel.highlight.linkLabel}\n <ArrowRightIcon size={14} />\n </Text>\n </Link>\n ) : null}\n </div>\n );\n}\n\n/**\n * A bar across the top with a big menu (a grid of features and a highlight), dropdowns of links and plain links,\n * then one call to action. On phones everything folds into a panel under the bar.\n */\nexport function Header02({\n brand,\n panel,\n menus = [],\n links = [],\n primaryAction,\n secondaryLink,\n onNavigate = navigateTo,\n defaultPanelOpen = false,\n labels = {},\n className,\n ...props\n}: Header02Props) {\n const [productOpen, setProductOpen] = useState(defaultPanelOpen);\n const [phoneOpen, setPhoneOpen] = useState(false);\n const phoneId = useId();\n const closePhone = () => setPhoneOpen(false);\n\n useEffect(() => {\n const wide = window.matchMedia(\"(min-width: 761px)\");\n const onChange = () => (wide.matches ? setPhoneOpen(false) : setProductOpen(false));\n wide.addEventListener(\"change\", onChange);\n return () => wide.removeEventListener(\"change\", onChange);\n }, []);\n\n return (\n <header className={cx(\"ow-header02\", className)} {...props}>\n <div className=\"ow-header02__inner\">\n <BlockBrandLink brand={brand} className=\"ow-header02__brand\" />\n <nav className=\"ow-header02__nav\" aria-label=\"Main\">\n {panel ? (\n <Popover\n className=\"ow-header02__popover\"\n aria-label={panel.label}\n width={720}\n autoFocus={false}\n open={productOpen}\n onOpenChange={setProductOpen}\n trigger={\n <Button variant=\"ghost\" shape=\"pill\" size=\"sm\" className=\"ow-header02__item\" endIcon={<ChevronDownIcon size={14} />}>\n {panel.label}\n </Button>\n }\n >\n <PanelContent panel={panel} onNavigate={() => setProductOpen(false)} />\n </Popover>\n ) : null}\n {menus.map((menu) => (\n <Menu\n key={menu.label}\n label={menu.label}\n width={220}\n trigger={\n <Button variant=\"ghost\" shape=\"pill\" size=\"sm\" className=\"ow-header02__item\" endIcon={<ChevronDownIcon size={14} />}>\n {menu.label}\n </Button>\n }\n >\n {menu.groups.map((group, index) => (\n <Fragment key={index}>\n {index > 0 ? <MenuSeparator /> : null}\n {group.map((entry) => (\n <MenuItem key={entry.label} icon={entry.icon} onSelect={() => onNavigate(entry.href)}>\n {entry.label}\n </MenuItem>\n ))}\n </Fragment>\n ))}\n </Menu>\n ))}\n {links.map((link, index) => (\n <a\n key={index}\n href={link.href}\n className={cx(buttonClassName({ variant: \"ghost\", shape: \"pill\", size: \"sm\" }), \"ow-header02__item\")}\n aria-current={link.current ? \"page\" : undefined}\n >\n {link.label}\n </a>\n ))}\n </nav>\n <div className=\"ow-header02__actions\">\n {secondaryLink ? (\n <a\n href={secondaryLink.href}\n className={cx(buttonClassName({ variant: \"ghost\", shape: \"pill\", size: \"sm\" }), \"ow-header02__item ow-header02__sign-in\")}\n >\n {secondaryLink.label}\n </a>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n <Button\n className=\"ow-header02__toggle\"\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.menu ?? \"Menu\"}\n aria-expanded={phoneOpen}\n aria-controls={phoneId}\n onClick={() => setPhoneOpen((open) => !open)}\n >\n {phoneOpen ? <XIcon size={18} /> : <MenuIcon size={18} />}\n </Button>\n </div>\n </div>\n\n {/* Phones: everything in the bar, folded into a panel under it. */}\n <nav id={phoneId} className=\"ow-header02__panel\" aria-label=\"Main\" hidden={!phoneOpen}>\n {panel ? (\n <>\n <Text variant=\"overline\" as=\"p\" className=\"ow-header02__panel-label\">\n {panel.label}\n </Text>\n <ul className=\"ow-header02__panel-list\">\n {panel.features.map((feature, index) => (\n <li key={index}>\n <Link href={feature.href} variant=\"standalone\" className=\"ow-header02__panel-link\" onClick={closePhone}>\n {feature.icon}\n {feature.title}\n </Link>\n </li>\n ))}\n </ul>\n </>\n ) : null}\n {menus.map((menu) => (\n <Fragment key={menu.label}>\n <Text variant=\"overline\" as=\"p\" className=\"ow-header02__panel-label\">\n {menu.label}\n </Text>\n <ul className=\"ow-header02__panel-list ow-header02__panel-list--columns\">\n {menu.groups.flat().map((entry) => (\n <li key={entry.label}>\n <Link href={entry.href} variant=\"standalone\" className=\"ow-header02__panel-link\" onClick={closePhone}>\n {entry.label}\n </Link>\n </li>\n ))}\n </ul>\n </Fragment>\n ))}\n {links.length ? (\n <ul className=\"ow-header02__panel-list ow-header02__panel-list--ruled\">\n {links.map((link, index) => (\n <li key={index}>\n <Link\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header02__panel-link\"\n aria-current={link.current ? \"page\" : undefined}\n onClick={closePhone}\n >\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n ) : null}\n {secondaryLink ? (\n <a href={secondaryLink.href} className={cx(buttonClassName({ shape: \"pill\" }), \"ow-button--full\")} onClick={closePhone}>\n {secondaryLink.label}\n </a>\n ) : null}\n </nav>\n </header>\n );\n}\n", "import { cx, Link, ScrollShadow } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport type { HeaderLink } from \"@blocks/shared/shared.types\";\nimport type { Header03Props } from \"./Header03.types\";\n\nfunction NavLink({ link }: { link: HeaderLink }) {\n return (\n <Link href={link.href} variant=\"standalone\" className=\"ow-header03__link\" aria-current={link.current ? \"page\" : undefined}>\n {link.label}\n </Link>\n );\n}\n\n/**\n * The logo in the middle with links either side, for a brand-led site. On tablets and phones every link moves to a\n * line of its own under the bar, scrolling sideways when it runs out of room.\n */\nexport function Header03({ brand, start, end = [], primaryAction, secondaryLink, labels = {}, className, ...props }: Header03Props) {\n return (\n <header className={cx(\"ow-header03\", className)} {...props}>\n <div className=\"ow-header03__inner\">\n <nav className=\"ow-header03__nav\" aria-label={labels.start ?? \"Primary\"}>\n {start.map((link, index) => (\n <NavLink key={index} link={link} />\n ))}\n </nav>\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\" className=\"ow-header03__link ow-header03__phone-only\">\n {secondaryLink.label}\n </Link>\n ) : null}\n\n <BlockBrandLink brand={brand} className=\"ow-header03__brand\" />\n\n <div className=\"ow-header03__end\">\n {end.length ? (\n <nav className=\"ow-header03__nav\" aria-label={labels.end ?? \"More\"}>\n {end.map((link, index) => (\n <NavLink key={index} link={link} />\n ))}\n </nav>\n ) : null}\n <div className=\"ow-header03__actions\">\n {secondaryLink ? <NavLink link={secondaryLink} /> : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n </div>\n </div>\n </div>\n\n {/* Tablets and phones: every link on a line of its own, scrolling sideways when it runs out of room. */}\n <ScrollShadow orientation=\"horizontal\" size={24} className=\"ow-header03__phone-only ow-header03__phone-nav\">\n <nav aria-label={labels.all ?? \"Main\"}>\n <ul className=\"ow-header03__phone-links\">\n {[...start, ...end].map((link, index) => (\n <li key={index}>\n <NavLink link={link} />\n </li>\n ))}\n </ul>\n </nav>\n </ScrollShadow>\n </header>\n );\n}\n", "import { useRef, useState } from \"react\";\n\nimport { Button, CloseButton, cx, Link, Menu, MenuItem, MenuSeparator, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport { ArrowRightIcon, MenuIcon } from \"@blocks/shared/icons\";\nimport type { Header04Props } from \"./Header04.types\";\n\nconst navigateTo = (href: string) => window.location.assign(href);\n\n/** A header with a slim announcement above it: a line of news, a link and a close button that folds it away. */\nexport function Header04({\n announcement,\n onDismiss,\n defaultDismissed = false,\n brand,\n links,\n primaryAction,\n secondaryLink,\n onNavigate = navigateTo,\n labels = {},\n className,\n ...props\n}: Header04Props) {\n const [closed, setClosed] = useState(defaultDismissed);\n const brandRef = useRef<HTMLAnchorElement>(null);\n\n const dismiss = () => {\n setClosed(true);\n onDismiss?.();\n // The close button is going away; leave focus at the top of the header rather than nowhere.\n brandRef.current?.focus();\n };\n\n return (\n <div className={cx(\"ow-header04\", className)} {...props}>\n <aside\n className=\"ow-header04__notice\"\n aria-label={labels.announcement ?? \"Announcement\"}\n data-closed={closed || undefined}\n aria-hidden={closed || undefined}\n >\n <div className=\"ow-header04__clip\">\n <div className=\"ow-header04__notice-inner\">\n <Text className=\"ow-header04__message\">\n <span className=\"ow-header04__dot\" aria-hidden=\"true\" />\n <strong>{announcement.title}</strong>\n {announcement.description ? (\n <>\n {\" \"}\n <span className=\"ow-header04__detail\">{announcement.description}</span>\n </>\n ) : null}\n {announcement.link ? (\n <Link href={announcement.link.href} className=\"ow-header04__link\">\n <span className=\"ow-header04__link-wide\">{announcement.link.label}</span>\n <span className=\"ow-header04__link-narrow\">{announcement.link.shortLabel ?? announcement.link.label}</span>\n <ArrowRightIcon size={14} />\n </Link>\n ) : null}\n </Text>\n <CloseButton size=\"sm\" label={labels.dismiss ?? \"Dismiss the announcement\"} onClick={dismiss} />\n </div>\n </div>\n </aside>\n\n <header className=\"ow-header04__header\">\n <div className=\"ow-header04__inner\">\n <BlockBrandLink ref={brandRef} brand={brand} className=\"ow-header04__brand\" />\n <nav className=\"ow-header04__nav\" aria-label=\"Main\">\n {links.map((link, index) => (\n <Link\n key={index}\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header04__link-plain\"\n aria-current={link.current ? \"page\" : undefined}\n >\n {link.label}\n </Link>\n ))}\n </nav>\n <div className=\"ow-header04__actions\">\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\" className=\"ow-header04__link-plain\">\n {secondaryLink.label}\n </Link>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n <span className=\"ow-header04__phone-menu\">\n <Menu\n label={labels.menu ?? \"Menu\"}\n align=\"end\"\n width={220}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={labels.menu ?? \"Menu\"}>\n <MenuIcon size={18} />\n </Button>\n }\n >\n {links.map((link, index) => (\n <MenuItem key={index} onSelect={() => onNavigate(link.href)}>\n {link.label}\n </MenuItem>\n ))}\n {secondaryLink ? (\n <>\n <MenuSeparator />\n <MenuItem onSelect={() => onNavigate(secondaryLink.href)}>{secondaryLink.label}</MenuItem>\n </>\n ) : null}\n </Menu>\n </span>\n </div>\n </div>\n </header>\n </div>\n );\n}\n", "import { useEffect, useId, useState } from \"react\";\n\nimport { Button, buttonClassName, cx, Drawer, Link, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport { ChevronRightIcon, MenuIcon } from \"@blocks/shared/icons\";\nimport type { Header05Props } from \"./Header05.types\";\n\n// Under this width the links fold into the drawer (the same width as the media query in the CSS).\nconst narrow = \"(max-width: 1024px)\";\n\n/** A header whose links fold into a drawer behind a menu button on tablets and phones, with a second list and both actions. */\nexport function Header05({ brand, links, more, primaryAction, secondaryLink, defaultOpen = false, labels = {}, className, ...props }: Header05Props) {\n const [open, setOpen] = useState(defaultOpen);\n const moreId = useId();\n\n useEffect(() => {\n const query = window.matchMedia(narrow);\n const onChange = () => !query.matches && setOpen(false);\n query.addEventListener(\"change\", onChange);\n return () => query.removeEventListener(\"change\", onChange);\n }, []);\n\n const close = () => setOpen(false);\n\n return (\n <>\n <header className={cx(\"ow-header05\", className)} {...props}>\n <div className=\"ow-header05__inner\">\n <BlockBrandLink brand={brand} className=\"ow-header05__brand\" />\n <nav className=\"ow-header05__nav\" aria-label=\"Main\">\n {links.map((link, index) => (\n <Link\n key={index}\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header05__link\"\n aria-current={link.current ? \"page\" : undefined}\n >\n {link.label}\n </Link>\n ))}\n </nav>\n <div className=\"ow-header05__actions\">\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\" className=\"ow-header05__link\">\n {secondaryLink.label}\n </Link>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n <Button\n className=\"ow-header05__open\"\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.open ?? \"Open menu\"}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n onClick={() => setOpen(true)}\n >\n <MenuIcon size={18} />\n </Button>\n </div>\n </div>\n </header>\n\n <Drawer\n className=\"ow-header05__drawer\"\n open={open}\n onClose={close}\n title={labels.title ?? \"Menu\"}\n side=\"right\"\n size={320}\n footer={\n <>\n {secondaryLink ? (\n <a href={secondaryLink.href} className={buttonClassName({ shape: \"pill\" })} onClick={close}>\n {secondaryLink.label}\n </a>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"md\" onAfterClick={close} />\n </>\n }\n >\n <nav aria-label=\"Main\">\n <ul className=\"ow-header05__drawer-list\">\n {links.map((link, index) => (\n <li key={index}>\n <Link\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header05__drawer-link\"\n aria-current={link.current ? \"page\" : undefined}\n onClick={close}\n >\n {link.label}\n {link.current ? <span className=\"ow-header05__current\" aria-hidden=\"true\" /> : null}\n <ChevronRightIcon size={16} />\n </Link>\n </li>\n ))}\n </ul>\n {more ? (\n <div className=\"ow-header05__more\">\n <Text variant=\"overline\" as=\"p\" className=\"ow-header05__more-label\" id={moreId}>\n {more.title}\n </Text>\n <ul className=\"ow-header05__more-list\" aria-labelledby={moreId}>\n {more.links.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"standalone\" className=\"ow-header05__more-link\" onClick={close}>\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n </nav>\n </Drawer>\n </>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Badge, Card, cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { ArrowRightIcon, CheckIcon } from \"@blocks/shared/icons\";\nimport type { Pricing01Props } from \"./Pricing01.types\";\n\n/** Plans side by side as cards, the recommended one raised, with a line for an enterprise plan below. */\nexport function Pricing01({ eyebrow, title, description, plans, enterprise, note, className, ...props }: Pricing01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-pricing01\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <div className=\"ow-pricing01__grid\">\n {plans.map((plan, index) => (\n <Card\n key={index}\n padding=\"none\"\n className=\"ow-pricing01__card\"\n data-recommended={plan.recommended || undefined}\n aria-labelledby={`${id}-plan-${index}`}\n role=\"group\"\n >\n <div className=\"ow-pricing01__head\">\n <div className=\"ow-pricing01__name-row\">\n <Text variant=\"card-title\" id={`${id}-plan-${index}`}>\n {plan.name}\n </Text>\n {plan.badge ? (\n <Badge size=\"sm\" variant=\"active\">\n {plan.badge}\n </Badge>\n ) : null}\n </div>\n {plan.summary ? (\n <Text variant=\"copy\" className=\"ow-pricing01__summary\">\n {plan.summary}\n </Text>\n ) : null}\n <Text as=\"p\" variant=\"body\" tone=\"muted\" className=\"ow-pricing01__price\">\n <Text as=\"span\" variant=\"section-title\" tone=\"default\" className=\"ow-pricing01__amount\">\n {plan.price}\n </Text>\n {plan.unit}\n </Text>\n <BlockActionButton action={plan.action} variant={plan.recommended ? \"primary\" : \"secondary\"} size=\"md\" fullWidth />\n </div>\n <div className=\"ow-pricing01__body\">\n {plan.featuresTitle ? (\n <Text as=\"p\" variant=\"label\">\n {plan.featuresTitle}\n </Text>\n ) : null}\n <ul className=\"ow-pricing01__features\">\n {plan.features.map((feature, featureIndex) => (\n <Text as=\"li\" variant=\"body\" tone=\"soft\" key={featureIndex}>\n <CheckIcon size={16} />\n {feature}\n </Text>\n ))}\n </ul>\n </div>\n </Card>\n ))}\n </div>\n\n {enterprise ? (\n <div className=\"ow-pricing01__enterprise\">\n {enterprise.icon ? (\n <span className=\"ow-pricing01__enterprise-icon\" aria-hidden=\"true\">\n {enterprise.icon}\n </span>\n ) : null}\n <Text variant=\"copy\" className=\"ow-pricing01__enterprise-text\">\n <Text as=\"strong\" variant=\"label\" tone=\"default\">\n {enterprise.title}\n </Text>{\" \"}\n {enterprise.description}\n </Text>\n <Link href={enterprise.link.href} variant=\"standalone\" className=\"ow-pricing01__enterprise-link\">\n {enterprise.link.label}\n <ArrowRightIcon size={14} />\n </Link>\n </div>\n ) : null}\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-pricing01__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Badge, cx, SectionHeading, SegmentedControl, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Pricing02Period, Pricing02Plan, Pricing02Price, Pricing02Props } from \"./Pricing02.types\";\n\nconst priceFor = (plan: Pricing02Plan, period: Pricing02Period): Pricing02Price => (\"amount\" in plan.price ? plan.price : plan.price[period]);\n\nconst includes = (name: string) => `${name} includes`;\n\n/** Plans in one panel with a switch between monthly and yearly prices, which fade in as they change. */\nexport function Pricing02({\n eyebrow,\n title,\n description,\n plans,\n periodNote,\n defaultPeriod = \"monthly\",\n onPeriodChange,\n note,\n labels = {},\n className,\n ...props\n}: Pricing02Props) {\n const [period, setPeriod] = useState<Pricing02Period>(defaultPeriod);\n const id = useId();\n\n return (\n <section className={cx(\"ow-pricing02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing02__inner\">\n <div className=\"ow-pricing02__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n <div className=\"ow-pricing02__switch\">\n <SegmentedControl\n aria-label={labels.period ?? \"Billing period\"}\n value={period}\n onChange={(value) => {\n setPeriod(value as Pricing02Period);\n onPeriodChange?.(value as Pricing02Period);\n }}\n options={[\n { value: \"monthly\", label: labels.monthly ?? \"Monthly\" },\n { value: \"yearly\", label: labels.yearly ?? \"Yearly\" },\n ]}\n />\n {periodNote ? (\n <Text as=\"p\" variant=\"caption\">\n {periodNote}\n </Text>\n ) : null}\n </div>\n </div>\n\n <VisuallyHidden aria-live=\"polite\">\n {period === \"yearly\" ? (labels.showingYearly ?? \"Showing yearly prices.\") : (labels.showingMonthly ?? \"Showing monthly prices.\")}\n </VisuallyHidden>\n\n <div className=\"ow-pricing02__panel\">\n {plans.map((plan, index) => {\n const price = priceFor(plan, period);\n return (\n <div key={index} className=\"ow-pricing02__plan\" data-popular={plan.recommended || undefined}>\n <div className=\"ow-pricing02__name-row\">\n <Text variant=\"card-title\">{plan.name}</Text>\n {plan.badge ? (\n <Badge size=\"sm\" variant=\"active\">\n {plan.badge}\n </Badge>\n ) : null}\n </div>\n {plan.summary ? (\n <Text variant=\"copy\" className=\"ow-pricing02__summary\">\n {plan.summary}\n </Text>\n ) : null}\n <div className=\"ow-pricing02__price\">\n <Text as=\"p\" variant=\"body\" tone=\"muted\" className=\"ow-pricing02__figure\">\n {/* The key restarts the fade when the amount changes. */}\n <Text\n as=\"span\"\n variant=\"section-title\"\n tone=\"default\"\n key={price.amount}\n className={price.custom ? \"ow-pricing02__amount ow-pricing02__amount--text\" : \"ow-pricing02__amount\"}\n >\n {price.amount}\n </Text>\n {price.unit}\n </Text>\n {price.billing ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-pricing02__billing\">\n {price.billing}\n </Text>\n ) : null}\n </div>\n <BlockActionButton action={plan.action} variant={plan.recommended ? \"primary\" : \"secondary\"} size=\"md\" fullWidth />\n <ul className=\"ow-pricing02__features\" aria-label={(labels.includes ?? includes)(plan.name)}>\n {plan.features.map((feature, featureIndex) => (\n <Text as=\"li\" variant=\"body\" tone=\"soft\" key={featureIndex}>\n <CheckIcon size={16} />\n {feature}\n </Text>\n ))}\n </ul>\n </div>\n );\n })}\n </div>\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-pricing02__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState, useSyncExternalStore } from \"react\";\n\nimport { Badge, cx, SectionHeading, SegmentedControl, Table, Text, VisuallyHidden, type TableColumn } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon, MinusIcon } from \"@blocks/shared/icons\";\nimport type { Pricing03Props, Pricing03Row, Pricing03Value } from \"./Pricing03.types\";\n\nconst phoneQuery = \"(max-width: 760px)\";\n\n/** Whether the window is phone-sized, following it as it changes. */\nfunction useIsPhone() {\n return useSyncExternalStore(\n (onChange) => {\n const list = window.matchMedia(phoneQuery);\n list.addEventListener(\"change\", onChange);\n return () => list.removeEventListener(\"change\", onChange);\n },\n () => window.matchMedia(phoneQuery).matches,\n () => false,\n );\n}\n\nconst caption = (title: string) => `${title}, by plan`;\n\n/** Every feature down the side and a tick, a dash or a limit for each plan; one plan at a time on phones. */\nexport function Pricing03({ eyebrow, title, description, plans, groups, pricesNote, defaultPlan, note, labels = {}, className, ...props }: Pricing03Props) {\n const id = useId();\n const isPhone = useIsPhone();\n const [picked, setPicked] = useState(() => defaultPlan ?? (plans.find((plan) => plan.recommended) ?? plans[0])?.id ?? \"\");\n const shown = isPhone ? plans.filter((plan) => plan.id === picked) : plans;\n\n const cell = (value: Pricing03Value) => {\n if (value === true) {\n return (\n <span className=\"ow-pricing03__yes\">\n <CheckIcon size={14} strokeWidth={2.5} />\n <VisuallyHidden>{labels.included ?? \"Included\"}</VisuallyHidden>\n </span>\n );\n }\n if (value === false) {\n return (\n <span className=\"ow-pricing03__no\">\n <MinusIcon size={16} />\n <VisuallyHidden>{labels.notIncluded ?? \"Not included\"}</VisuallyHidden>\n </span>\n );\n }\n return value;\n };\n\n const columns = (groupTitle: string): Array<TableColumn<Pricing03Row & { id: string }>> => [\n {\n key: \"feature\",\n header: groupTitle,\n render: (row) => (\n <Text as=\"span\" variant=\"body\" className=\"ow-pricing03__feature\">\n {row.feature}\n {row.note ? (\n <Text variant=\"caption\" className=\"ow-pricing03__feature-note\">\n {row.note}\n </Text>\n ) : null}\n </Text>\n ),\n },\n ...shown.map((plan) => ({\n key: plan.id,\n header: plan.name,\n render: (row: Pricing03Row) => cell(row.values[plan.id]),\n })),\n ];\n\n return (\n <section className={cx(\"ow-pricing03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing03__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <div className=\"ow-pricing03__picker\">\n <SegmentedControl\n aria-label={labels.picker ?? \"Plan to compare\"}\n fullWidth\n value={picked}\n onChange={setPicked}\n options={plans.map((plan) => ({ value: plan.id, label: plan.name }))}\n />\n </div>\n\n <div className=\"ow-pricing03__plans\">\n {pricesNote ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-pricing03__plans-label\">\n {pricesNote}\n </Text>\n ) : null}\n {shown.map((plan) => (\n <div key={plan.id} className=\"ow-pricing03__plan\">\n <Text as=\"p\" variant=\"card-title\" className=\"ow-pricing03__plan-name\">\n {plan.name}\n {plan.badge ? (\n <Badge size=\"sm\" variant=\"active\">\n {plan.badge}\n </Badge>\n ) : null}\n </Text>\n <Text as=\"p\" variant=\"caption\" className=\"ow-pricing03__plan-price\">\n <Text as=\"strong\" variant=\"label\" tone=\"default\" className=\"ow-pricing03__plan-amount\">\n {plan.price}\n </Text>{\" \"}\n {plan.unit}\n </Text>\n <BlockActionButton action={plan.action} variant={plan.recommended ? \"primary\" : \"secondary\"} size=\"sm\" />\n </div>\n ))}\n </div>\n\n <div className=\"ow-pricing03__groups\">\n {groups.map((group) => (\n <Table\n key={group.title}\n className=\"ow-pricing03__group\"\n caption={(labels.caption ?? caption)(group.title)}\n hideCaption\n columns={columns(group.title)}\n rows={group.rows.map((row, index) => ({ ...row, id: `${group.title}-${index}` }))}\n />\n ))}\n </div>\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-pricing03__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Card, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Pricing04Props } from \"./Pricing04.types\";\n\n/** One price with what's included, for a simple product: a wide card with the features on the left and the offer on the right. */\nexport function Pricing04({ eyebrow, title, description, product, offer, promises, className, ...props }: Pricing04Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-pricing04\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing04__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <Card padding=\"none\" className=\"ow-pricing04__card\">\n <div className=\"ow-pricing04__details\">\n <Text variant=\"heading\">{product.name}</Text>\n {product.description ? (\n <Text variant=\"copy\" className=\"ow-pricing04__description\">\n {product.description}\n </Text>\n ) : null}\n {product.featuresTitle ? (\n <Text as=\"p\" variant=\"label\" tone=\"primary\" className=\"ow-pricing04__included\">\n {product.featuresTitle}\n </Text>\n ) : null}\n <ul className=\"ow-pricing04__features\">\n {product.features.map((feature, index) => (\n <Text as=\"li\" variant=\"body\" tone=\"soft\" key={index}>\n <CheckIcon size={16} />\n {feature}\n </Text>\n ))}\n </ul>\n </div>\n\n <div className=\"ow-pricing04__offer\">\n {offer.label ? (\n <Text as=\"p\" variant=\"label\" tone=\"soft\">\n {offer.label}\n </Text>\n ) : null}\n <Text as=\"p\" variant=\"label\" tone=\"muted\" className=\"ow-pricing04__price\">\n <Text as=\"span\" variant=\"page-title\" tone=\"default\" className=\"ow-pricing04__amount\">\n {offer.price}\n </Text>\n {offer.currency}\n </Text>\n {offer.unit ? (\n <Text variant=\"body\" tone=\"muted\" className=\"ow-pricing04__unit\">\n {offer.unit}\n </Text>\n ) : null}\n <BlockActionButton action={offer.action} variant=\"primary\" fullWidth />\n {offer.note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-pricing04__fine\">\n {offer.note}\n </Text>\n ) : null}\n </div>\n </Card>\n\n {promises?.length ? (\n <ul className=\"ow-pricing04__promises\">\n {promises.map((promise, index) => (\n <Text as=\"li\" variant=\"body\" tone=\"muted\" key={index}>\n {promise.icon}\n {promise.text}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useMemo, useState } from \"react\";\n\nimport { Card, cx, SectionHeading, Slider, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport type { Pricing05Props, Pricing05Tier } from \"./Pricing05.types\";\n\n/** How many units fall in each band, and what they cost. */\nfunction estimate(tiers: Pricing05Tier[], units: number) {\n const lines = tiers.map((tier) => {\n const count = Math.max(0, Math.min(units, tier.to) - tier.from);\n return { tier, count, cost: count * tier.price };\n });\n return { lines, total: lines.reduce((sum, line) => sum + line.cost, 0) };\n}\n\nconst capitalise = (text: string) => text.charAt(0).toUpperCase() + text.slice(1);\n\n/** A price per unit in bands, with a slider to estimate the month and the cost of each band beside it. */\nexport function Pricing05({\n eyebrow,\n title,\n description,\n tiers,\n aside,\n estimate: words,\n max,\n step = max / 200,\n defaultValue,\n marks = [0, max / 4, max / 2, (max * 3) / 4, max],\n currency = \"EUR\",\n locale,\n action,\n note,\n labels = {},\n className,\n ...props\n}: Pricing05Props) {\n const id = useId();\n const [units, setUnits] = useState(defaultValue);\n const { lines, total } = estimate(tiers, units);\n const current = tiers.findIndex((tier) => units <= tier.to);\n\n const unit = labels.unit ?? \"unit\";\n const plural = labels.units ?? \"units\";\n const perMonth = labels.perMonth ?? `${plural} a month`;\n\n const format = useMemo(() => {\n const number = new Intl.NumberFormat(locale);\n const money = new Intl.NumberFormat(locale, { style: \"currency\", currency });\n const unitPrice = new Intl.NumberFormat(locale, { style: \"currency\", currency, minimumFractionDigits: 2, maximumFractionDigits: 3 });\n return { number: (value: number) => number.format(value), money: (value: number) => money.format(value), unitPrice: (value: number) => unitPrice.format(value) };\n }, [locale, currency]);\n\n const rangeLabel = (tier: Pricing05Tier) => {\n if (tier.from === 0) return `First ${format.number(tier.to)} ${plural}`;\n if (tier.to === Infinity) return `Over ${format.number(tier.from)}`;\n return `${format.number(tier.from + 1)} to ${format.number(tier.to)}`;\n };\n\n const mark = (value: number) => (value === 0 ? \"0\" : value >= 1000 && value % 1000 === 0 ? `${value / 1000}k` : format.number(value));\n\n return (\n <section className={cx(\"ow-pricing05\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing05__inner\">\n <div>\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n <ul className=\"ow-pricing05__tiers\" aria-label={labels.tiers ?? `Price per ${unit}`}>\n {tiers.map((tier, index) => (\n <li key={tier.from} className=\"ow-pricing05__tier\" data-current={index === current || undefined}>\n <span className=\"ow-pricing05__tier-dot\" aria-hidden=\"true\" />\n <Text variant={index === current ? \"label\" : \"body\"} tone={index === current ? \"default\" : \"soft\"}>\n {rangeLabel(tier)}\n </Text>\n <Text variant=\"label\" className=\"ow-pricing05__tier-price\">\n {tier.price === 0 ? (\n (labels.free ?? \"Free\")\n ) : (\n <>\n {format.unitPrice(tier.price)}\n <Text as=\"small\" variant=\"caption\" className=\"ow-pricing05__tier-unit\">\n a {unit}\n </Text>\n </>\n )}\n </Text>\n </li>\n ))}\n </ul>\n {aside ? (\n <Text variant=\"copy\" className=\"ow-pricing05__aside\">\n {aside}\n </Text>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-pricing05__card\">\n <Text variant=\"card-title\">{words.title}</Text>\n {words.description ? (\n <Text variant=\"copy\" className=\"ow-pricing05__card-intro\">\n {words.description}\n </Text>\n ) : null}\n\n <Text as=\"p\" variant=\"heading\" className=\"ow-pricing05__runs\" aria-hidden=\"true\">\n {format.number(units)}{\" \"}\n <Text as=\"small\" variant=\"body\" tone=\"muted\" className=\"ow-pricing05__runs-unit\">\n {perMonth}\n </Text>\n </Text>\n {/* The big number above is the slider's visible label; screen readers hear the amount and the cost. */}\n <Slider\n aria-label={labels.slider ?? capitalise(perMonth)}\n showValue={false}\n min={0}\n max={max}\n step={step}\n value={units}\n onChange={setUnits}\n formatValue={(value) => `${format.number(value)} ${plural}, about ${format.money(estimate(tiers, value).total)} a month`}\n />\n <div className=\"ow-pricing05__scale\" aria-hidden=\"true\">\n {marks.map((value) => (\n <span key={value}>{mark(value)}</span>\n ))}\n </div>\n\n <div className=\"ow-pricing05__breakdown\">\n {lines.map(({ tier, count, cost }) => (\n <Text as=\"div\" variant=\"body\" tone=\"soft\" key={tier.from} className=\"ow-pricing05__line\" data-idle={count === 0 || undefined}>\n <span>\n {format.number(count)} {plural} {tier.price === 0 ? (labels.free ?? \"Free\").toLowerCase() : `at ${format.unitPrice(tier.price)}`}\n </span>\n <span>{format.money(cost)}</span>\n </Text>\n ))}\n </div>\n\n <div className=\"ow-pricing05__total\">\n <Text as=\"p\" variant=\"label\">\n {words.totalLabel}\n {words.totalNote ? (\n <Text as=\"small\" variant=\"caption\" className=\"ow-pricing05__total-note\">\n {words.totalNote}\n </Text>\n ) : null}\n </Text>\n <Text as=\"p\" variant=\"section-title\" className=\"ow-pricing05__total-amount\">\n {format.money(total)}\n </Text>\n </div>\n\n <BlockActionButton action={action} variant=\"primary\" fullWidth className=\"ow-pricing05__action\" />\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-pricing05__fine\">\n {note}\n </Text>\n ) : null}\n </Card>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Features01Props } from \"./Features01.types\";\n\n/** An icon, a short title and a sentence for each feature, in a grid that drops to one column on phones. */\nexport function Features01({ eyebrow, title, description, features, footer, className, ...props }: Features01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features01\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <ul className=\"ow-features01__grid\">\n {features.map((feature, index) => (\n <li key={index} className=\"ow-features01__item\">\n {feature.icon ? (\n <span className=\"ow-features01__icon\" aria-hidden=\"true\">\n {feature.icon}\n </span>\n ) : null}\n <Text variant=\"card-title\" className=\"ow-features01__title\">\n {feature.title}\n </Text>\n <Text variant=\"copy\" className=\"ow-features01__text\">\n {feature.description}\n </Text>\n </li>\n ))}\n </ul>\n\n {footer ? (\n <Text variant=\"copy\" align=\"center\" className=\"ow-features01__more\">\n {footer}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, DotGrid, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Features02Props } from \"./Features02.types\";\n\n/** Rows that swap sides, each a few lines and points beside a picture on a dot grid. */\nexport function Features02({ eyebrow, title, description, rows, className, ...props }: Features02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features02__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <div className=\"ow-features02__rows\">\n {rows.map((row, index) => (\n <article key={index} className=\"ow-features02__row\" aria-labelledby={`${id}-row-${index}`}>\n <div className=\"ow-features02__copy\">\n {row.kicker || row.icon ? (\n <Text variant=\"label\" tone=\"primary\" className=\"ow-features02__kicker\">\n {row.icon}\n {row.kicker}\n </Text>\n ) : null}\n <Text variant=\"heading\" id={`${id}-row-${index}`} className=\"ow-features02__title\">\n {row.title}\n </Text>\n <Text variant=\"lead\" className=\"ow-features02__text\">\n {row.description}\n </Text>\n {row.points?.length ? (\n <ul className=\"ow-features02__points\">\n {row.points.map((point, pointIndex) => (\n <Text as=\"li\" key={pointIndex} tone=\"soft\" className=\"ow-features02__point\">\n <CheckIcon size={16} />\n {point}\n </Text>\n ))}\n </ul>\n ) : null}\n {row.link ? (\n <Link href={row.link.href} variant=\"standalone\" className=\"ow-features02__link\">\n {row.link.label} \u2192\n </Link>\n ) : null}\n </div>\n <DotGrid\n className=\"ow-features02__stage\"\n role={row.visualLabel ? \"img\" : undefined}\n aria-label={row.visualLabel}\n >\n {row.visual}\n </DotGrid>\n </article>\n ))}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Features03Props } from \"./Features03.types\";\n\n/** A bento grid: cards of different sizes, the biggest for the feature that matters most. */\nexport function Features03({ eyebrow, title, description, cards, className, ...props }: Features03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features03__inner\">\n <div className=\"ow-features03__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} />\n {description ? (\n <Text variant=\"lead\" className=\"ow-features03__intro\">\n {description}\n </Text>\n ) : null}\n </div>\n\n {/* The first card is the big one, with a heading and a lead; the rest are dense cards. */}\n <div className=\"ow-features03__grid\">\n {cards.map((card, index) => {\n const featured = index === 0;\n return (\n <article\n key={index}\n className={cx(\n \"ow-features03__card\",\n featured && \"ow-features03__card--featured\",\n index === cards.length - 1 && index > 0 && \"ow-features03__card--last\",\n )}\n aria-labelledby={`${id}-card-${index}`}\n >\n <div className=\"ow-features03__copy\">\n <Text variant={featured ? \"heading\" : \"card-title\"} id={`${id}-card-${index}`}>\n {card.title}\n </Text>\n <Text variant={featured ? \"lead\" : \"copy\"} className=\"ow-features03__text\">\n {card.description}\n </Text>\n </div>\n <div className=\"ow-features03__visual\" role={card.visualLabel ? \"img\" : undefined} aria-label={card.visualLabel}>\n {card.visual}\n </div>\n </article>\n );\n })}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Tab, TabList, TabPanel, Tabs, Text } from \"@openwarelabs/ui\";\n\nimport type { Features04Props } from \"./Features04.types\";\n\n/** A row of tabs, each showing its part of the product with a caption above it. */\nexport function Features04({ eyebrow, title, description, tabs, defaultTab = 0, labels = {}, className, ...props }: Features04Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features04\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features04__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <Tabs defaultValue={String(defaultTab)} className=\"ow-features04__tabs\">\n <TabList aria-label={labels.tabs ?? \"Features\"}>\n {tabs.map((tab, index) => (\n <Tab key={index} value={String(index)} icon={tab.icon}>\n {tab.label}\n </Tab>\n ))}\n </TabList>\n {tabs.map((tab, index) => (\n <TabPanel key={index} value={String(index)} className=\"ow-features04__panel\">\n {tab.caption ? (\n <Text variant=\"copy\" align=\"center\" className=\"ow-features04__caption\">\n {tab.caption}\n </Text>\n ) : null}\n {tab.visual}\n </TabPanel>\n ))}\n </Tabs>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Features05Props } from \"./Features05.types\";\n\n/** A checklist of what's included, with a button, beside one large picture. */\nexport function Features05({ eyebrow, title, description, items, primaryAction, secondaryLink, visual, className, ...props }: Features05Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features05\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features05__inner\">\n <div className=\"ow-features05__copy\">\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n <ul className=\"ow-features05__list\">\n {items.map((item, index) => (\n <Text as=\"li\" key={index} tone=\"soft\" className=\"ow-features05__item\">\n <span className=\"ow-features05__tick\" aria-hidden=\"true\">\n <CheckIcon size={12} strokeWidth={3} />\n </span>\n {item}\n </Text>\n ))}\n </ul>\n {primaryAction || secondaryLink ? (\n <div className=\"ow-features05__actions\">\n {primaryAction ? <BlockActionButton action={primaryAction} variant=\"primary\" /> : null}\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\">\n {secondaryLink.label}\n </Link>\n ) : null}\n </div>\n ) : null}\n </div>\n <div className=\"ow-features05__visual\">{visual}</div>\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useState } from \"react\";\n\nimport { cx, Link, SegmentedControl, Separator, Text } from \"@openwarelabs/ui\";\n\nimport { FooterColumns } from \"@blocks/shared/FooterColumns\";\nimport { MonitorIcon, MoonIcon, SunIcon } from \"@blocks/shared/icons\";\nimport type { Footer01Props } from \"./Footer01.types\";\n\nconst currentTheme = () => (typeof document === \"undefined\" ? \"system\" : (document.documentElement.dataset.theme ?? \"system\"));\n\n/** Light, dark or the system's choice, set on <html data-theme>. */\nfunction useTheme() {\n const [theme, setTheme] = useState(currentTheme);\n\n // Stay in step if something else changes the theme.\n useEffect(() => {\n const observer = new MutationObserver(() => setTheme(currentTheme()));\n observer.observe(document.documentElement, { attributes: true, attributeFilter: [\"data-theme\"] });\n return () => observer.disconnect();\n }, []);\n\n const choose = (value: string) => {\n document.documentElement.dataset.theme = value;\n setTheme(value);\n };\n return [theme, choose] as const;\n}\n\n/** The logo and a line, then three or four columns of links, with the small print and a theme switch below. */\nexport function Footer01({ brand, description, status, columns, legal, legalLinks = [], themeSwitch = false, labels = {}, className, ...props }: Footer01Props) {\n const [theme, setTheme] = useTheme();\n const themeId = useId();\n const home = labels.home ?? (typeof brand.name === \"string\" ? `${brand.name} home` : undefined);\n\n return (\n <footer className={cx(\"ow-footer01\", className)} {...props}>\n <div className=\"ow-footer01__inner\">\n <div className=\"ow-footer01__top\">\n <div className=\"ow-footer01__brand\">\n <Link href={brand.href} variant=\"standalone\" className=\"ow-footer01__logo\" aria-label={home}>\n {brand.logo}\n <Text variant=\"dialog-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {description ? <Text variant=\"copy\">{description}</Text> : null}\n {status ? (\n <Link href={status.href} variant=\"standalone\" className=\"ow-footer01__status\">\n <span className=\"ow-footer01__status-dot\" aria-hidden=\"true\" />\n {status.label}\n </Link>\n ) : null}\n </div>\n\n <FooterColumns columns={columns} headingClassName=\"ow-footer01__heading\" listClassName=\"ow-footer01__links\" badgeClassName=\"ow-footer01__new\" />\n </div>\n\n <Separator />\n\n <div className=\"ow-footer01__bottom\">\n <Text variant=\"caption\" as=\"p\" className=\"ow-footer01__legal\">\n <span>{legal}</span>\n {legalLinks.map((link, index) => (\n <Link key={index} href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n ))}\n </Text>\n {themeSwitch ? (\n <div className=\"ow-footer01__theme\">\n <Text variant=\"caption\" id={themeId}>\n {labels.theme ?? \"Theme\"}\n </Text>\n <SegmentedControl\n size=\"sm\"\n aria-labelledby={themeId}\n options={[\n { value: \"light\", label: null, icon: <SunIcon size={15} />, \"aria-label\": labels.light ?? \"Light\" },\n { value: \"dark\", label: null, icon: <MoonIcon size={15} />, \"aria-label\": labels.dark ?? \"Dark\" },\n { value: \"system\", label: null, icon: <MonitorIcon size={15} />, \"aria-label\": labels.system ?? \"Match the system\" },\n ]}\n value={theme}\n onChange={setTheme}\n />\n </div>\n ) : null}\n </div>\n </div>\n </footer>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Link, Text } from \"@openwarelabs/ui\";\n\nimport type { FooterColumnsProps } from \"@blocks/shared/shared.types\";\n\n/** A footer's columns of links, each a <nav> named by its heading. */\nexport function FooterColumns({ columns, headingClassName, listClassName, badgeClassName }: FooterColumnsProps) {\n const id = useId();\n return (\n <>\n {columns.map((column, index) => (\n <nav key={index} aria-labelledby={`${id}-${index}`}>\n <Text variant=\"label\" as=\"h2\" id={`${id}-${index}`} className={headingClassName}>\n {column.title}\n </Text>\n <ul className={listClassName}>\n {column.links.map((link, linkIndex) => (\n <li key={linkIndex}>\n <Link href={link.href} variant=\"standalone\">\n {link.label}\n </Link>\n {link.badge ? (\n <Text variant=\"badge\" className={badgeClassName}>\n {link.badge}\n </Text>\n ) : null}\n </li>\n ))}\n </ul>\n </nav>\n ))}\n </>\n );\n}\n", "import { cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport type { Footer02Props } from \"./Footer02.types\";\n\n/** The logo, one line of links and the small print, centred. */\nexport function Footer02({ brand, links, legal, labels = {}, className, ...props }: Footer02Props) {\n return (\n <footer className={cx(\"ow-footer02\", className)} {...props}>\n <div className=\"ow-footer02__inner\">\n <Link href={brand.href} className=\"ow-footer02__logo\" aria-label={labels.home ?? (typeof brand.name === \"string\" ? `${brand.name} home` : undefined)}>\n {brand.logo}\n </Link>\n <nav aria-label={labels.nav ?? \"Footer\"}>\n <ul className=\"ow-footer02__links\">\n {links.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"standalone\">\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n <Text variant=\"caption\" as=\"p\">\n {legal}\n </Text>\n </div>\n </footer>\n );\n}\n", "import { useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Input, Link, Separator, Text } from \"@openwarelabs/ui\";\n\nimport { FooterColumns } from \"@blocks/shared/FooterColumns\";\nimport { CircleCheckIcon, MailIcon } from \"@blocks/shared/icons\";\nimport type { Footer03Props } from \"./Footer03.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** A newsletter sign-up across the top, then the brand and columns of links, then the small print. */\nexport function Footer03({ newsletter, brand, description, columns, legal, legalLinks = [], labels = {}, className, ...props }: Footer03Props) {\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [sending, setSending] = useState(false);\n const [sentTo, setSentTo] = useState(\"\");\n const input = useRef<HTMLInputElement>(null);\n const id = useId();\n\n const subscribe = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const address = email.trim();\n if (!address) setError(labels.empty ?? \"Enter your email address.\");\n else if (!emailPattern.test(address)) setError(labels.invalid ?? \"That doesn't look like an email address. Check it for a typo.\");\n else {\n setError(\"\");\n setSending(true);\n try {\n await newsletter.onSubmit(address);\n setSentTo(address);\n return;\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n } finally {\n setSending(false);\n }\n }\n input.current?.focus();\n };\n\n const startAgain = () => {\n setSentTo(\"\");\n setEmail(\"\");\n window.setTimeout(() => input.current?.focus());\n };\n\n return (\n <footer className={cx(\"ow-footer03\", className)} {...props}>\n <div className=\"ow-footer03__inner\">\n <section className=\"ow-footer03__signup\" aria-labelledby={`${id}-title`}>\n <div>\n <Text variant=\"heading\" as=\"h2\" id={`${id}-title`}>\n {newsletter.title}\n </Text>\n {newsletter.description ? (\n <Text variant=\"copy\" className=\"ow-footer03__intro\">\n {newsletter.description}\n </Text>\n ) : null}\n </div>\n\n {sentTo ? (\n <div className=\"ow-footer03__done\" role=\"status\">\n <CircleCheckIcon size={18} />\n <span className=\"ow-footer03__done-text\">\n <Text variant=\"label\">{newsletter.successTitle}</Text>\n {newsletter.successDescription ? (\n <Text variant=\"body\" as=\"span\" tone=\"soft\" className=\"ow-footer03__done-detail\">\n {newsletter.successDescription(sentTo)}\n </Text>\n ) : null}\n </span>\n <Button size=\"sm\" variant=\"ghost\" onClick={startAgain}>\n {labels.change ?? \"Change\"}\n </Button>\n </div>\n ) : (\n <form noValidate onSubmit={subscribe}>\n <div className=\"ow-footer03__row\">\n <Input\n ref={input}\n type=\"email\"\n autoComplete=\"email\"\n placeholder={labels.placeholder ?? \"you@example.com\"}\n aria-label={labels.email ?? \"Email address\"}\n aria-describedby={`${id}-note`}\n className=\"ow-footer03__email\"\n startContent={<MailIcon size={16} />}\n isInvalid={Boolean(error)}\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n if (error) setError(\"\");\n }}\n />\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" loading={sending} endIcon={newsletter.submitIcon}>\n {newsletter.submitLabel}\n </Button>\n </div>\n <Text\n variant=\"caption\"\n as=\"p\"\n id={`${id}-note`}\n tone={error ? \"danger\" : undefined}\n className=\"ow-footer03__note\"\n aria-live=\"polite\"\n >\n {error || newsletter.note}\n </Text>\n </form>\n )}\n </section>\n\n <div className=\"ow-footer03__links\">\n <div className=\"ow-footer03__brand\">\n <Link\n href={brand.href}\n variant=\"standalone\"\n className=\"ow-footer03__logo\"\n aria-label={labels.home ?? (typeof brand.name === \"string\" ? `${brand.name} home` : undefined)}\n >\n {brand.logo}\n <Text variant=\"dialog-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {description ? (\n <Text variant=\"copy\" className=\"ow-footer03__line\">\n {description}\n </Text>\n ) : null}\n </div>\n <FooterColumns columns={columns} headingClassName=\"ow-footer03__heading\" listClassName=\"ow-footer03__list\" />\n </div>\n\n <Separator />\n\n <div className=\"ow-footer03__bottom\">\n <Text variant=\"caption\" as=\"p\">\n {legal}\n </Text>\n {legalLinks.length ? (\n <Text variant=\"caption\" as=\"ul\" className=\"ow-footer03__legal\">\n {legalLinks.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n </li>\n ))}\n </Text>\n ) : null}\n </div>\n </div>\n </footer>\n );\n}\n", "import { cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { FooterColumns } from \"@blocks/shared/FooterColumns\";\nimport type { Footer04Props } from \"./Footer04.types\";\n\n/** A last line of pitch and a button, columns of links, the small print, and the product's name set very large across the bottom. */\nexport function Footer04({ title, titleMuted, primaryAction, columns, legal, legalLinks = [], wordmark, className, ...props }: Footer04Props) {\n return (\n <footer className={cx(\"ow-footer04\", className)} {...props}>\n <div className=\"ow-footer04__inner\">\n <div className=\"ow-footer04__top\">\n <div className=\"ow-footer04__pitch\">\n <Text variant=\"heading\" as=\"p\">\n {title}\n {titleMuted ? (\n <>\n {\" \"}\n <Text variant=\"heading\" as=\"span\" tone=\"muted\">\n {titleMuted}\n </Text>\n </>\n ) : null}\n </Text>\n {primaryAction ? <BlockActionButton action={primaryAction} variant=\"primary\" size=\"md\" /> : null}\n </div>\n <div className=\"ow-footer04__columns\">\n <FooterColumns columns={columns} headingClassName=\"ow-footer04__heading\" listClassName=\"ow-footer04__list\" />\n </div>\n </div>\n\n <div className=\"ow-footer04__legal\">\n <Text variant=\"caption\" as=\"p\">\n {legal}\n </Text>\n {legalLinks.length ? (\n <Text variant=\"caption\" as=\"ul\" className=\"ow-footer04__legal-links\">\n {legalLinks.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n </li>\n ))}\n </Text>\n ) : null}\n </div>\n\n <div className=\"ow-footer04__name\" aria-hidden=\"true\">\n <div className=\"ow-footer04__crop\">\n <span>{wordmark}</span>\n </div>\n </div>\n </div>\n </footer>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, DotGrid, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport type { Cta01Props } from \"./Cta01.types\";\n\n/** A wide panel on a dot grid with a headline on the left and the buttons on the right. */\nexport function Cta01({ title, description, primaryAction, secondaryAction, note, className, ...props }: Cta01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-cta01\", className)} aria-labelledby={id} {...props}>\n <DotGrid fade className=\"ow-cta01__panel\">\n <div className=\"ow-cta01__content\">\n <div className=\"ow-cta01__text\">\n <Text variant=\"section-title\" id={id}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-cta01__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n <div className=\"ow-cta01__side\">\n <BlockActions className=\"ow-cta01__actions\" primary={primaryAction} secondary={secondaryAction} />\n {note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-cta01__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </div>\n </DotGrid>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, DotGrid, Link, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { ArrowRightIcon, CheckIcon } from \"@blocks/shared/icons\";\nimport type { Cta02Props } from \"./Cta02.types\";\n\n/** A centred call to action on the brand colour, with white text, a white button and a few facts. */\nexport function Cta02({ eyebrow, title, description, primaryAction, secondaryLink, facts, className, ...props }: Cta02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-cta02\", className)} aria-labelledby={id} {...props}>\n <DotGrid fade className=\"ow-cta02__plate\">\n <div className=\"ow-cta02__content\">\n {/* A Chip, redrawn for the plate: the library's white Chip would glare on the brand colour. */}\n {eyebrow ? (\n <Text as=\"p\" variant=\"body\" className=\"ow-cta02__eyebrow\">\n {eyebrow}\n </Text>\n ) : null}\n <Text as=\"h2\" variant=\"page-title\" id={id} className=\"ow-cta02__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-cta02__lead\">\n {description}\n </Text>\n ) : null}\n <div className=\"ow-cta02__actions\">\n <BlockActionButton action={primaryAction} variant=\"secondary\" className=\"ow-cta02__action\" />\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\" className=\"ow-cta02__link\">\n <Text variant=\"label\">{secondaryLink.label}</Text>\n <ArrowRightIcon size={16} />\n </Link>\n ) : null}\n </div>\n {facts?.length ? (\n <ul className=\"ow-cta02__facts\">\n {facts.map((fact, index) => (\n <Text as=\"li\" variant=\"body\" key={index}>\n <CheckIcon size={15} />\n {fact}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n </DotGrid>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Cta03Props } from \"./Cta03.types\";\n\n/** Words, two buttons and a few points beside a picture. */\nexport function Cta03({ eyebrow, title, description, primaryAction, secondaryAction, points, visual, className, ...props }: Cta03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-cta03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-cta03__inner\">\n <div>\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n <BlockActions className=\"ow-cta03__actions\" primary={primaryAction} secondary={secondaryAction} />\n {points?.length ? (\n <ul className=\"ow-cta03__points\">\n {points.map((point, index) => (\n <Text as=\"li\" variant=\"body\" tone=\"soft\" key={index}>\n <CheckIcon size={16} />\n {point}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n {visual}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading } from \"@openwarelabs/ui\";\n\nimport type { SectionHeading01Props } from \"./SectionHeading01.types\";\n\n/** The label, the title and the intro centred over the section. */\nexport function SectionHeading01({ eyebrow, title, description, className, ...props }: SectionHeading01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-section-heading01\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-section-heading01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { SectionHeading02Props } from \"./SectionHeading02.types\";\n\n/** The heading on the left and a link to the rest on the right. */\nexport function SectionHeading02({ eyebrow, title, description, link, className, ...props }: SectionHeading02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-section-heading02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-section-heading02__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n <Link href={link.href} variant=\"standalone\" className=\"ow-section-heading02__link\">\n {link.label}\n <ArrowRightIcon size={16} />\n </Link>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport type { SectionHeading03Props } from \"./SectionHeading03.types\";\n\n/** The title on the left; the intro and a button on the right. */\nexport function SectionHeading03({ eyebrow, title, description, action, className, ...props }: SectionHeading03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-section-heading03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-section-heading03__inner\">\n {/* The intro sits beside the title instead of under it, so SectionHeading gets none. */}\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} />\n <div className=\"ow-section-heading03__aside\">\n {description ? (\n <Text variant=\"lead\" className=\"ow-section-heading03__intro\">\n {description}\n </Text>\n ) : null}\n {action ? <BlockActionButton action={action} variant=\"secondary\" size=\"md\" /> : null}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Text } from \"@openwarelabs/ui\";\n\nimport type { Logos01Props } from \"./Logos01.types\";\n\n/** A row of customers' logos under a small heading. */\nexport function Logos01({ title, logos, className, ...props }: Logos01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-logos01\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-logos01__inner\">\n {/* A small heading: the logos are the point. */}\n <Text as=\"h2\" variant=\"body\" tone=\"muted\" align=\"center\" id={id}>\n {title}\n </Text>\n <ul className=\"ow-logos01__list\">\n {logos.map((logo) => (\n <li key={logo.name} className=\"ow-logos01__logo\">\n {logo.logo}\n </li>\n ))}\n </ul>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Logos02Props } from \"./Logos02.types\";\n\n/** Customers' logos in tiles on one card, each linking to its story. */\nexport function Logos02({ eyebrow, title, description, logos, link, labels = {}, className, ...props }: Logos02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-logos02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-logos02__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n <ul className=\"ow-logos02__tiles\">\n {logos.map((logo) => (\n <li key={logo.name}>\n <Link href={logo.href} variant=\"standalone\" className=\"ow-logos02__tile\">\n <span className=\"ow-logos02__logo\">{logo.logo}</span>\n <Text variant=\"caption\" className=\"ow-logos02__more\">\n {labels.more ?? \"Read the story\"}\n <ArrowRightIcon size={13} />\n </Text>\n </Link>\n </li>\n ))}\n </ul>\n {link ? (\n <Text variant=\"body\" tone=\"muted\" align=\"center\" className=\"ow-logos02__footer\">\n <Link href={link.href}>{link.label}</Link>\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, cx, Text, Tooltip } from \"@openwarelabs/ui\";\n\nimport { PauseIcon, PlayIcon } from \"@blocks/shared/icons\";\nimport type { Logos03Logo, Logos03Props } from \"./Logos03.types\";\n\nfunction LogoList({ logos, copy = false }: { logos: Logos03Logo[]; copy?: boolean }) {\n return (\n <ul className={copy ? \"ow-logos03__list ow-logos03__list--copy\" : \"ow-logos03__list\"} aria-hidden={copy || undefined}>\n {logos.map((logo) => (\n <li key={logo.name} className=\"ow-logos03__logo\">\n {logo.logo}\n </li>\n ))}\n </ul>\n );\n}\n\n/** A slow, endless row of customers' logos that pauses on hover and stands still with reduced motion. */\nexport function Logos03({ title, logos, labels = {}, className, ...props }: Logos03Props) {\n const id = useId();\n const [paused, setPaused] = useState(false);\n const toggleLabel = paused ? (labels.play ?? \"Play the logos\") : (labels.pause ?? \"Pause the logos\");\n\n return (\n <section className={cx(\"ow-logos03\", className)} aria-labelledby={id} data-paused={paused || undefined} {...props}>\n <div className=\"ow-logos03__head\">\n <Text as=\"h2\" variant=\"body\" tone=\"muted\" align=\"center\" id={id}>\n {title}\n </Text>\n {/* Moving content needs a way to stop it for good; hover and focus only hold it still for a moment. */}\n <Tooltip label={toggleLabel}>\n <Button\n className=\"ow-logos03__toggle\"\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={toggleLabel}\n onClick={() => setPaused((value) => !value)}\n >\n {paused ? <PlayIcon size={14} /> : <PauseIcon size={14} />}\n </Button>\n </Tooltip>\n </div>\n {/* Focusable, so a keyboard can hold it still too. */}\n <div className=\"ow-logos03__viewport\" role=\"region\" aria-label={labels.region ?? \"Customer logos\"} tabIndex={0}>\n <div className=\"ow-logos03__track\">\n <LogoList logos={logos} />\n <LogoList logos={logos} copy />\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Stats01Props } from \"./Stats01.types\";\n\n/** Three or four large numbers in a row, each with a short label. */\nexport function Stats01({ eyebrow, title, stats, note, className, ...props }: Stats01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-stats01\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-stats01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} />\n\n <dl className=\"ow-stats01__list\">\n {stats.map((stat, index) => (\n <div key={index} className=\"ow-stats01__item\">\n <Text as=\"dt\" variant=\"body\" tone=\"muted\">\n {stat.label}\n </Text>\n <Text as=\"dd\" variant=\"page-title\" className=\"ow-stats01__value\">\n {stat.value}\n {stat.unit ? (\n <Text as=\"span\" variant=\"page-title\" tone=\"muted\" className=\"ow-stats01__unit\">\n {stat.unit}\n </Text>\n ) : null}\n </Text>\n </div>\n ))}\n </dl>\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-stats01__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading, Stat, Text } from \"@openwarelabs/ui\";\n\nimport type { Stats02Props } from \"./Stats02.types\";\n\n/** Each number on its own card, with its change and a trend line. */\nexport function Stats02({ eyebrow, title, description, link, stats, className, ...props }: Stats02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-stats02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-stats02__inner\">\n <div className=\"ow-stats02__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n {link ? (\n <Link href={link.href} variant=\"standalone\" className=\"ow-stats02__link\">\n {link.label}\n </Link>\n ) : null}\n </div>\n\n <div className=\"ow-stats02__grid\">\n {/* Stat is sized for an app's overview; on a marketing page the number takes a display size. */}\n {stats.map((stat, index) => (\n <Stat\n key={index}\n {...stat}\n value={\n <Text as=\"span\" variant=\"section-title\">\n {stat.value}\n </Text>\n }\n className=\"ow-stats02__stat\"\n />\n ))}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Stats03Props } from \"./Stats03.types\";\n\n/** A heading and a paragraph on the left, numbers on the right. */\nexport function Stats03({ eyebrow, title, description, link, stats, className, ...props }: Stats03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-stats03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-stats03__inner\">\n <div className=\"ow-stats03__copy\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n {link ? (\n <Link href={link.href} variant=\"standalone\" className=\"ow-stats03__link\">\n {link.label}\n </Link>\n ) : null}\n </div>\n\n <dl className=\"ow-stats03__grid\">\n {stats.map((stat, index) => (\n <div key={index} className=\"ow-stats03__item\">\n <Text as=\"dt\" variant=\"card-title\" className=\"ow-stats03__label\">\n {stat.label}\n </Text>\n <Text as=\"dd\" variant=\"page-title\" className=\"ow-stats03__value\">\n {stat.value}\n {stat.unit ? (\n <Text as=\"span\" variant=\"page-title\" tone=\"muted\" className=\"ow-stats03__unit\">\n {stat.unit}\n </Text>\n ) : null}\n </Text>\n {stat.detail ? (\n <Text as=\"dd\" variant=\"copy\" className=\"ow-stats03__detail\">\n {stat.detail}\n </Text>\n ) : null}\n </div>\n ))}\n </dl>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Badge, cx, Text, User, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { QuoteIcon } from \"@blocks/shared/icons\";\nimport type { Testimonial01Props } from \"./Testimonial01.types\";\n\n/** One large quote with the person under it. */\nexport function Testimonial01({ quote, highlight, name, jobTitle, avatar, badge, labels = {}, className, ...props }: Testimonial01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-testimonial01\", className)} aria-labelledby={id} {...props}>\n <Text variant=\"section-title\" id={id}>\n <VisuallyHidden>{labels.title ?? \"What customers say\"}</VisuallyHidden>\n </Text>\n <figure className=\"ow-testimonial01__figure\">\n <QuoteIcon size={22} className=\"ow-testimonial01__mark\" />\n <blockquote className=\"ow-testimonial01__quote\">\n {/* The setup sits back in muted grey; the part worth remembering is in full colour. */}\n <Text as=\"p\" variant=\"section-title\" tone=\"muted\" className=\"ow-testimonial01__text\">\n {quote}\n {highlight ? (\n <>\n {\" \"}\n <Text as=\"span\" variant=\"section-title\" tone=\"default\">\n {highlight}\n </Text>\n </>\n ) : null}\n </Text>\n </blockquote>\n <figcaption className=\"ow-testimonial01__caption\">\n <User name={name} description={jobTitle} src={avatar} size=\"lg\" />\n {badge ? (\n <Badge size=\"sm\" className=\"ow-testimonial01__sample\">\n {badge}\n </Badge>\n ) : null}\n </figcaption>\n </figure>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Badge, Card, cx, SectionHeading, Text, User } from \"@openwarelabs/ui\";\n\nimport type { Testimonial02Props } from \"./Testimonial02.types\";\n\n/** Several quotes in cards, in columns like a wall of notes. */\nexport function Testimonial02({ eyebrow, title, description, badge, quotes, className, ...props }: Testimonial02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-testimonial02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-testimonial02__inner\">\n <div className=\"ow-testimonial02__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n {badge ? (\n <Badge size=\"sm\" className=\"ow-testimonial02__sample\">\n {badge}\n </Badge>\n ) : null}\n </div>\n\n <ul className=\"ow-testimonial02__list\">\n {quotes.map((item, index) => (\n <li key={index} className=\"ow-testimonial02__item\">\n <Card padding=\"lg\" className=\"ow-testimonial02__card\">\n <figure className=\"ow-testimonial02__figure\">\n <blockquote className=\"ow-testimonial02__quote\">\n {/* Short quotes read as headlines. */}\n <Text as=\"p\" variant={item.short ? \"heading\" : \"copy\"} tone={item.short ? \"default\" : \"soft\"}>\n {item.quote}\n </Text>\n </blockquote>\n <figcaption>\n <User name={item.name} description={item.jobTitle} src={item.avatar} />\n </figcaption>\n </figure>\n </Card>\n </li>\n ))}\n </ul>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Tab, TabList, TabPanel, Tabs, Text, User } from \"@openwarelabs/ui\";\n\nimport { QuoteIcon } from \"@blocks/shared/icons\";\nimport type { Testimonial03Props } from \"./Testimonial03.types\";\n\n/** Customers' logos as tabs, each showing a quote, the person, and a panel about their company. */\nexport function Testimonial03({ eyebrow, title, stories, defaultStory = 0, note, labels = {}, className, ...props }: Testimonial03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-testimonial03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-testimonial03__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} />\n\n <Tabs defaultValue={String(defaultStory)} variant=\"line\" className=\"ow-testimonial03__tabs\">\n <TabList aria-label={labels.tabs ?? \"Customers\"}>\n {stories.map((story, index) => (\n <Tab key={story.company} value={String(index)} className=\"ow-testimonial03__tab\">\n {story.logo}\n </Tab>\n ))}\n </TabList>\n\n {stories.map((story, index) => (\n <TabPanel key={story.company} value={String(index)} className=\"ow-testimonial03__panel\">\n <figure className=\"ow-testimonial03__card\">\n <div className=\"ow-testimonial03__body\">\n <QuoteIcon size={18} className=\"ow-testimonial03__mark\" />\n <blockquote className=\"ow-testimonial03__quote\">\n <Text as=\"p\" variant=\"heading\" className=\"ow-testimonial03__text\">\n {story.quote}\n </Text>\n </blockquote>\n <figcaption className=\"ow-testimonial03__person\">\n <User name={story.name} description={story.jobTitle} src={story.avatar} size=\"lg\" />\n </figcaption>\n </div>\n <div className=\"ow-testimonial03__company\">\n {story.largeLogo ?? story.logo}\n {story.about ? (\n <Text variant=\"copy\" className=\"ow-testimonial03__about\">\n {story.about}\n </Text>\n ) : null}\n {story.facts?.length ? (\n <dl className=\"ow-testimonial03__facts\">\n {story.facts.map((fact, factIndex) => (\n <div key={factIndex} className=\"ow-testimonial03__fact\">\n <Text as=\"dt\" variant=\"body\" tone=\"muted\">\n {fact.label}\n </Text>\n <Text as=\"dd\" variant=\"label\" align=\"end\">\n {fact.value}\n </Text>\n </div>\n ))}\n </dl>\n ) : null}\n </div>\n </figure>\n </TabPanel>\n ))}\n </Tabs>\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-testimonial03__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Accordion, AccordionItem, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Faq01Props } from \"./Faq01.types\";\n\n/** Questions in an accordion that opens one at a time, under a centred heading. */\nexport function Faq01({ eyebrow, title, description, questions, defaultOpen, note, className, ...props }: Faq01Props) {\n const id = useId();\n const value = (index: number) => questions[index]?.id ?? String(index);\n return (\n <section className={cx(\"ow-faq01\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-faq01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n\n <Accordion className=\"ow-faq01__list\" defaultValue={defaultOpen ?? (questions.length ? [value(0)] : [])}>\n {questions.map((item, index) => (\n <AccordionItem key={value(index)} value={value(index)} title={item.question}>\n <Text variant=\"copy\" className=\"ow-faq01__answer\">\n {item.answer}\n </Text>\n </AccordionItem>\n ))}\n </Accordion>\n\n {note ? (\n <Text variant=\"body\" tone=\"muted\" align=\"center\" className=\"ow-faq01__more\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Accordion, AccordionItem, cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Faq02Props } from \"./Faq02.types\";\n\n/** A heading on the left, the questions on the right. */\nexport function Faq02({ eyebrow, title, description, links, questions, defaultOpen, className, ...props }: Faq02Props) {\n const id = useId();\n const value = (index: number) => questions[index]?.id ?? String(index);\n return (\n <section className={cx(\"ow-faq02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-faq02__inner\">\n <div className=\"ow-faq02__intro\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n {links?.length ? (\n <ul className=\"ow-faq02__links\">\n {links.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"standalone\">\n {link.label}\n <ArrowRightIcon size={14} />\n </Link>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n\n <Accordion className=\"ow-faq02__list\" type=\"multiple\" defaultValue={defaultOpen ?? (questions.length ? [value(0)] : [])}>\n {questions.map((item, index) => (\n <AccordionItem key={value(index)} value={value(index)} title={item.question}>\n <Text variant=\"copy\" className=\"ow-faq02__answer\">\n {item.answer}\n </Text>\n </AccordionItem>\n ))}\n </Accordion>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Avatar, AvatarGroup, Card, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport type { Faq03Props } from \"./Faq03.types\";\n\n/** Every question answered in two columns, and a card for anything they don't cover. */\nexport function Faq03({ eyebrow, title, description, questions, contact, className, ...props }: Faq03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-faq03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-faq03__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n\n <div className=\"ow-faq03__grid\">\n {questions.map((item, index) => (\n <div key={index} className=\"ow-faq03__item\">\n <Text variant=\"card-title\">{item.question}</Text>\n <Text variant=\"copy\" className=\"ow-faq03__answer\">\n {item.answer}\n </Text>\n </div>\n ))}\n </div>\n\n {contact ? (\n <Card padding=\"none\" className=\"ow-faq03__card\">\n {contact.people?.length ? (\n <AvatarGroup size=\"lg\" label={contact.peopleLabel} className=\"ow-faq03__people\">\n {contact.people.map((person, index) => (\n <Avatar key={index} name={person.name} src={person.avatar} />\n ))}\n </AvatarGroup>\n ) : null}\n <div className=\"ow-faq03__card-text\">\n <Text variant=\"card-title\">{contact.title}</Text>\n {contact.description ? (\n <Text variant=\"copy\" className=\"ow-faq03__card-body\">\n {contact.description}\n </Text>\n ) : null}\n {contact.status ? (\n <Text as=\"p\" variant=\"caption\" tone=\"soft\" className=\"ow-faq03__status\">\n {contact.status}\n </Text>\n ) : null}\n </div>\n <div className=\"ow-faq03__actions\">\n <BlockActionButton action={contact.primaryAction} variant=\"primary\" size=\"md\" />\n {contact.secondaryAction ? <BlockActionButton action={contact.secondaryAction} variant=\"secondary\" size=\"md\" /> : null}\n </div>\n </Card>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Field, Input, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { CircleCheckIcon } from \"@blocks/shared/icons\";\nimport type { Newsletter01Labels, Newsletter01Props } from \"./Newsletter01.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nfunction emailError(value: string, labels: Newsletter01Labels) {\n if (!value.trim()) return labels.empty ?? \"Enter your email address.\";\n if (!emailPattern.test(value.trim())) return labels.invalid ?? \"Enter an email address like name@example.com.\";\n return undefined;\n}\n\n/** A newsletter sign-up in one row: the heading on the left, the field and button on the right, a confirmation in place of the form. */\nexport function Newsletter01({\n eyebrow,\n title,\n description,\n submitLabel,\n onSubmit,\n note,\n successTitle,\n successDescription,\n labels = {},\n className,\n ...props\n}: Newsletter01Props) {\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState<string>();\n const [touched, setTouched] = useState(false);\n const [sending, setSending] = useState(false);\n const [subscribed, setSubscribed] = useState<string>();\n const doneRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const resetting = useRef(false);\n const id = useId();\n const titleId = `${id}-title`;\n\n // Move focus with the change, so keyboard and screen reader users land on the confirmation, and back on the field.\n useEffect(() => {\n if (subscribed) doneRef.current?.focus();\n else if (resetting.current) inputRef.current?.focus();\n resetting.current = false;\n }, [subscribed]);\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setTouched(true);\n const problem = emailError(email, labels);\n setError(problem);\n if (problem) return;\n const address = email.trim();\n setSending(true);\n try {\n await onSubmit(address);\n setSubscribed(address);\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n inputRef.current?.focus();\n } finally {\n setSending(false);\n }\n };\n\n const reset = () => {\n resetting.current = true;\n setSubscribed(undefined);\n setEmail(\"\");\n setTouched(false);\n setError(undefined);\n };\n\n return (\n <section className={cx(\"ow-newsletter01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-newsletter01__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n\n <div>\n {subscribed ? (\n <div\n ref={doneRef}\n tabIndex={-1}\n role=\"group\"\n aria-labelledby={`${id}-done-title`}\n aria-describedby={successDescription ? `${id}-done-text` : undefined}\n className=\"ow-newsletter01__done\"\n >\n <CircleCheckIcon size={20} />\n <div>\n <Text as=\"p\" variant=\"label\" id={`${id}-done-title`}>\n {successTitle}\n </Text>\n {successDescription ? (\n <Text variant=\"copy\" tone=\"soft\" id={`${id}-done-text`} className=\"ow-newsletter01__done-text\">\n {successDescription(subscribed)}\n </Text>\n ) : null}\n <Button variant=\"ghost\" size=\"sm\" className=\"ow-newsletter01__reset\" onClick={reset}>\n {labels.change ?? \"Use a different email\"}\n </Button>\n </div>\n </div>\n ) : (\n <form className=\"ow-newsletter01__form\" aria-labelledby={titleId} noValidate onSubmit={submit}>\n <Field label={labels.email ?? \"Email address\"} error={error}>\n <Input\n ref={inputRef}\n type=\"email\"\n autoComplete=\"email\"\n placeholder={labels.placeholder ?? \"you@example.com\"}\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n // Once they've tried to send, say as they type whether it's fixed.\n if (touched) setError(emailError(event.target.value, labels));\n }}\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" loading={sending} className=\"ow-newsletter01__submit\">\n {submitLabel}\n </Button>\n {note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-newsletter01__fine\">\n {note}\n </Text>\n ) : null}\n </form>\n )}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId, useState, type FormEvent } from \"react\";\n\nimport { Avatar, AvatarGroup, Button, Card, cx, Field, Input, Link, Text, toast } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Newsletter02Labels, Newsletter02Props } from \"./Newsletter02.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nfunction emailError(value: string, labels: Newsletter02Labels) {\n if (!value.trim()) return labels.empty ?? \"Enter your email address.\";\n if (!emailPattern.test(value.trim())) return labels.invalid ?? \"Enter an email address like name@example.com.\";\n return undefined;\n}\n\n/** A newsletter sign-up in a card at the reading width, for the end of a post, with its writers along the foot. */\nexport function Newsletter02({\n icon,\n title,\n description,\n submitLabel,\n onSubmit,\n successTitle,\n successDescription,\n authors = [],\n authorsNote,\n archiveLink,\n labels = {},\n className,\n ...props\n}: Newsletter02Props) {\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState<string>();\n const [touched, setTouched] = useState(false);\n const [sending, setSending] = useState(false);\n const titleId = `${useId()}-title`;\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setTouched(true);\n const problem = emailError(email, labels);\n setError(problem);\n if (problem) return;\n const address = email.trim();\n setSending(true);\n try {\n await onSubmit(address);\n toast.success(successTitle, { description: successDescription?.(address) });\n setEmail(\"\");\n setTouched(false);\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n } finally {\n setSending(false);\n }\n };\n\n const hasFoot = authors.length > 0 || Boolean(authorsNote) || Boolean(archiveLink);\n\n return (\n <section className={cx(\"ow-newsletter02\", className)} aria-labelledby={titleId} {...props}>\n <Card padding=\"none\" className=\"ow-newsletter02__card\">\n <div className=\"ow-newsletter02__body\">\n {icon ? (\n <span className=\"ow-newsletter02__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n <Text as=\"h2\" variant=\"heading\" id={titleId} className=\"ow-newsletter02__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-newsletter02__lead\">\n {description}\n </Text>\n ) : null}\n <form className=\"ow-newsletter02__form\" aria-labelledby={titleId} noValidate onSubmit={submit}>\n <Field label={labels.email ?? \"Email address\"} error={error}>\n <Input\n type=\"email\"\n autoComplete=\"email\"\n placeholder={labels.placeholder ?? \"you@example.com\"}\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n if (touched) setError(emailError(event.target.value, labels));\n }}\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" loading={sending} className=\"ow-newsletter02__submit\">\n {submitLabel}\n </Button>\n </form>\n </div>\n {hasFoot ? (\n <div className=\"ow-newsletter02__foot\">\n <div className=\"ow-newsletter02__authors\">\n {authors.length ? (\n <AvatarGroup size=\"sm\">\n {authors.map((name) => (\n <Avatar key={name} name={name} />\n ))}\n </AvatarGroup>\n ) : null}\n {authorsNote ? (\n <Text variant=\"body\" tone=\"muted\">\n {authorsNote}\n </Text>\n ) : null}\n </div>\n {archiveLink ? (\n <Link href={archiveLink.href} variant=\"standalone\" className=\"ow-newsletter02__past\">\n {archiveLink.label}\n <ArrowRightIcon size={14} />\n </Link>\n ) : null}\n </div>\n ) : null}\n </Card>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Card, cx, Link, SectionHeading, SegmentedControl, Tag, Text, User } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport type { Blog01Props } from \"./Blog01.types\";\n\n// The filter's value for every post: no category is empty.\nconst all = \"\";\n\n/** A grid of post cards, each with a cover, its category and date, a title, an excerpt and the author, with a filter by category. */\nexport function Blog01({ eyebrow, title, description, posts, categories, moreAction, labels = {}, className, ...props }: Blog01Props) {\n const [filter, setFilter] = useState(all);\n const titleId = `${useId()}-title`;\n const shown = posts.map((post, index) => ({ post, index })).filter(({ post }) => filter === all || post.category === filter);\n\n return (\n <section className={cx(\"ow-blog01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-blog01__inner\">\n <div className=\"ow-blog01__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n {categories?.length ? (\n <div className=\"ow-blog01__filter\">\n <SegmentedControl\n aria-label={labels.filter ?? \"Show posts about\"}\n options={[{ value: all, label: labels.all ?? \"All\" }, ...categories.map((value) => ({ value, label: value }))]}\n value={filter}\n onChange={setFilter}\n />\n </div>\n ) : null}\n </div>\n\n <ul className=\"ow-blog01__posts\">\n {shown.map(({ post, index }) => (\n <li key={index}>\n <Card padding=\"none\" className=\"ow-blog01__post\">\n {post.cover ? <div className=\"ow-blog01__cover\">{post.cover}</div> : null}\n <div className=\"ow-blog01__body\">\n <Text variant=\"caption\" as=\"div\" className=\"ow-blog01__meta\">\n {post.category ? <Tag size=\"sm\">{post.category}</Tag> : null}\n <time dateTime={post.dateTime}>{post.date}</time>\n </Text>\n <Text variant=\"heading\" as=\"h3\" className=\"ow-blog01__post-title\">\n <Link href={post.href} variant=\"standalone\" className=\"ow-blog01__link\">\n {post.title}\n </Link>\n </Text>\n {post.excerpt ? (\n <Text variant=\"copy\" className=\"ow-blog01__excerpt\">\n {post.excerpt}\n </Text>\n ) : null}\n {post.author || post.readingTime ? (\n <div className=\"ow-blog01__byline\">\n {post.author ? (\n <User name={post.author.name} description={post.author.jobTitle} src={post.author.avatar} size=\"sm\" />\n ) : null}\n {post.readingTime ? (\n <Text variant=\"caption\" className=\"ow-blog01__read\">\n {post.readingTime}\n </Text>\n ) : null}\n </div>\n ) : null}\n </div>\n </Card>\n </li>\n ))}\n </ul>\n\n {moreAction ? (\n <div className=\"ow-blog01__footer\">\n <BlockActionButton action={moreAction} variant=\"secondary\" size=\"md\" />\n </div>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Avatar, Card, cx, Link, Tag, Text, User } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Blog02Props } from \"./Blog02.types\";\n\n/** One post large, with its cover, excerpt, figures and author, and the next few in a row below it. */\nexport function Blog02({ title, allLink, featured, posts = [], className, ...props }: Blog02Props) {\n const titleId = `${useId()}-title`;\n\n return (\n <section className={cx(\"ow-blog02\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-blog02__inner\">\n <div className=\"ow-blog02__header\">\n <Text variant=\"section-title\" id={titleId}>\n {title}\n </Text>\n {allLink ? (\n <Link href={allLink.href} variant=\"standalone\" className=\"ow-blog02__all\">\n {allLink.label}\n <ArrowRightIcon size={16} />\n </Link>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-blog02__lead\">\n {featured.cover ? <div className=\"ow-blog02__lead-cover\">{featured.cover}</div> : null}\n <div className=\"ow-blog02__lead-body\">\n <Text variant=\"caption\" as=\"div\" className=\"ow-blog02__meta\">\n {featured.category ? <Tag size=\"sm\">{featured.category}</Tag> : null}\n <time dateTime={featured.dateTime}>{featured.date}</time>\n </Text>\n <Text variant=\"heading\" as=\"h3\" className=\"ow-blog02__lead-title\">\n <Link href={featured.href} variant=\"standalone\" className=\"ow-blog02__link\">\n {featured.title}\n </Link>\n </Text>\n {featured.excerpt ? (\n <Text variant=\"lead\" className=\"ow-blog02__excerpt\">\n {featured.excerpt}\n </Text>\n ) : null}\n {featured.facts?.length ? (\n <dl className=\"ow-blog02__facts\">\n {featured.facts.map((fact, index) => (\n <div key={index} className=\"ow-blog02__fact\">\n <Text variant=\"caption\" as=\"dt\">\n {fact.label}\n </Text>\n <Text variant=\"heading\" as=\"dd\" className=\"ow-blog02__fact-value\">\n {fact.value}\n </Text>\n </div>\n ))}\n </dl>\n ) : null}\n {featured.author || featured.readingTime ? (\n <div className=\"ow-blog02__byline\">\n {featured.author ? (\n <User name={featured.author.name} description={featured.author.jobTitle} src={featured.author.avatar} />\n ) : null}\n {featured.readingTime ? (\n <Text variant=\"caption\" className=\"ow-blog02__read\">\n {featured.readingTime}\n </Text>\n ) : null}\n </div>\n ) : null}\n </div>\n </Card>\n\n {posts.length ? (\n <ul className=\"ow-blog02__more\">\n {posts.map((post, index) => (\n <li key={index}>\n <div className=\"ow-blog02__item\">\n {post.cover ? <div className=\"ow-blog02__thumb\">{post.cover}</div> : null}\n <div>\n <Text variant=\"caption\" as=\"div\" className=\"ow-blog02__meta\">\n {post.category ? (\n <>\n <span>{post.category}</span>\n <span aria-hidden=\"true\">\u00B7</span>\n </>\n ) : null}\n <time dateTime={post.dateTime}>{post.date}</time>\n </Text>\n <Text variant=\"card-title\" as=\"h3\" className=\"ow-blog02__item-title\">\n <Link href={post.href} variant=\"standalone\" className=\"ow-blog02__link\">\n {post.title}\n </Link>\n </Text>\n {post.author ? (\n <Text variant=\"caption\" as=\"div\" className=\"ow-blog02__item-author\">\n <Avatar name={post.author.name} src={post.author.avatar} size=\"sm\" />\n {post.author.name}\n </Text>\n ) : null}\n </div>\n </div>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Badge, Button, cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { ChevronDownIcon } from \"@blocks/shared/icons\";\nimport type { Blog03Props } from \"./Blog03.types\";\n\n/** A changelog: releases down a timeline, the date and version on the left, the headline and its changes by group on the right. */\nexport function Blog03({ eyebrow, title, description, links = [], releases, initialCount = 3, labels = {}, className, ...props }: Blog03Props) {\n const [showAll, setShowAll] = useState(false);\n const id = useId();\n const titleId = `${id}-title`;\n const hidden = Math.max(releases.length - initialCount, 0);\n const shown = showAll ? releases : releases.slice(0, initialCount);\n\n return (\n <section className={cx(\"ow-blog03\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-blog03__inner\">\n <div className=\"ow-blog03__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n {links.length ? (\n <div className=\"ow-blog03__subscribe\">\n {links.map((link, index) => (\n <Link key={index} href={link.href} variant=\"standalone\">\n {link.icon}\n {link.label}\n </Link>\n ))}\n </div>\n ) : null}\n </div>\n\n <ol className=\"ow-blog03__list\">\n {shown.map((release, index) => (\n <li key={release.version} className=\"ow-blog03__release\">\n <div className=\"ow-blog03__when\">\n <Text variant=\"code\" as=\"span\" className=\"ow-blog03__version\">\n {labels.versionPrefix ?? \"v\"}\n {release.version}\n </Text>\n <Text variant=\"body\" as=\"span\" tone=\"muted\">\n <time dateTime={release.dateTime}>{release.date}</time>\n </Text>\n {index === 0 ? (\n <Badge size=\"sm\" variant=\"neutral\">\n {labels.latest ?? \"Latest\"}\n </Badge>\n ) : null}\n </div>\n <article className=\"ow-blog03__body\" aria-labelledby={`${id}-${index}`}>\n <span className=\"ow-blog03__node\" aria-hidden=\"true\" />\n <Text variant=\"heading\" as=\"h3\" id={`${id}-${index}`}>\n {release.title}\n </Text>\n {release.summary ? (\n <Text variant=\"prose\" tone=\"muted\" className=\"ow-blog03__summary\">\n {release.summary}\n </Text>\n ) : null}\n {release.visual}\n {release.changes?.length ? (\n <div className=\"ow-blog03__groups\">\n {release.changes.map((group) => (\n <div key={group.label} className=\"ow-blog03__group\">\n <Badge size=\"sm\" variant={group.variant ?? \"neutral\"}>\n {group.label}\n </Badge>\n <ul\n className=\"ow-blog03__items\"\n aria-label={labels.changes?.(group.label, release.version) ?? `${group.label} in ${release.version}`}\n >\n {group.items.map((change, item) => (\n <Text key={item} variant=\"copy\" as=\"li\" tone=\"soft\">\n {change}\n </Text>\n ))}\n </ul>\n </div>\n ))}\n </div>\n ) : null}\n </article>\n </li>\n ))}\n </ol>\n\n {showAll || !hidden ? null : (\n <div className=\"ow-blog03__more\">\n <Button shape=\"pill\" endIcon={<ChevronDownIcon size={16} />} onClick={() => setShowAll(true)}>\n {labels.showOlder ? labels.showOlder(hidden) : <>Show {hidden} older releases</>}\n </Button>\n </div>\n )}\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useState, type MouseEvent } from \"react\";\n\nimport { CopyButton, cx, Disclosure, Link, Tag, TagGroup, Text, User } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon, CalendarDaysIcon, ClockIcon } from \"@blocks/shared/icons\";\nimport type { Blog04Props } from \"./Blog04.types\";\n\n/** An article's page: the title, author and date, a wide cover, then the text at a readable width with On this page beside it. */\nexport function Blog04({\n backLink,\n category,\n topic,\n title,\n description,\n author,\n date,\n dateTime,\n readingTime,\n cover,\n children,\n sections = [],\n tags = [],\n shareUrl,\n labels = {},\n className,\n ...props\n}: Blog04Props) {\n const [active, setActive] = useState(sections[0]?.id);\n const id = useId();\n const titleId = `${id}-title`;\n const contentsLabel = labels.contents ?? \"On this page\";\n const sectionIds = sections.map((section) => section.id).join(\" \");\n\n // Marks the section being read: the last heading that has scrolled past the top of the window.\n useEffect(() => {\n const ids = sectionIds.split(\" \").filter(Boolean);\n if (!ids.length) return;\n const onScroll = () => {\n let current = ids[0];\n for (const sectionId of ids) {\n const heading = document.getElementById(sectionId);\n if (heading && heading.getBoundingClientRect().top < 140) current = sectionId;\n }\n setActive(current);\n };\n window.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => window.removeEventListener(\"scroll\", onScroll);\n }, [sectionIds]);\n\n const go = (event: MouseEvent<HTMLAnchorElement>, sectionId: string) => {\n event.preventDefault();\n const still = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n document.getElementById(sectionId)?.scrollIntoView({ behavior: still ? \"auto\" : \"smooth\", block: \"start\" });\n setActive(sectionId);\n };\n\n const contents = (\n <ol className=\"ow-blog04__toc\">\n {sections.map((section) => (\n <li key={section.id}>\n <Link\n href={`#${section.id}`}\n variant=\"standalone\"\n className=\"ow-blog04__toc-link\"\n aria-current={active === section.id ? \"location\" : undefined}\n onClick={(event) => go(event, section.id)}\n >\n {section.title}\n </Link>\n </li>\n ))}\n </ol>\n );\n\n const copy = shareUrl ? <CopyButton value={shareUrl} label={labels.copyLink ?? \"Copy link\"} copiedLabel={labels.linkCopied ?? \"Link copied\"} /> : null;\n\n return (\n <article className={cx(\"ow-blog04\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-blog04__inner\">\n {backLink ? (\n <Link href={backLink.href} variant=\"standalone\" className=\"ow-blog04__back\">\n <ArrowLeftIcon size={16} />\n {backLink.label}\n </Link>\n ) : null}\n\n <header className=\"ow-blog04__header\">\n {category || topic ? (\n <div className=\"ow-blog04__meta-top\">\n {category ? <Tag size=\"sm\">{category}</Tag> : null}\n {topic ? (\n <Text variant=\"body\" as=\"span\" tone=\"muted\">\n {topic}\n </Text>\n ) : null}\n </div>\n ) : null}\n <Text variant=\"page-title\" id={titleId} className=\"ow-blog04__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-blog04__dek\">\n {description}\n </Text>\n ) : null}\n {author || date || readingTime ? (\n <div className=\"ow-blog04__byline\">\n {author ? <User name={author.name} description={author.jobTitle} src={author.avatar} /> : null}\n {date || readingTime ? (\n <Text variant=\"body\" as=\"span\" tone=\"muted\" className=\"ow-blog04__byline-facts\">\n {date ? (\n <span>\n <CalendarDaysIcon size={15} />\n <time dateTime={dateTime}>{date}</time>\n </span>\n ) : null}\n {readingTime ? (\n <span>\n <ClockIcon size={15} />\n {readingTime}\n </span>\n ) : null}\n </Text>\n ) : null}\n </div>\n ) : null}\n </header>\n\n {cover ? <div className=\"ow-blog04__cover\">{cover}</div> : null}\n\n <div className=\"ow-blog04__layout\">\n {sections.length ? (\n <Disclosure title={contentsLabel} headingLevel={2} className=\"ow-blog04__toc-fold\">\n {contents}\n </Disclosure>\n ) : null}\n\n <div className=\"ow-blog04__prose\">\n {children}\n\n {tags.length || copy ? (\n <div className=\"ow-blog04__end\">\n {tags.length ? (\n <TagGroup label={labels.topics ?? \"Topics\"}>\n {tags.map((tag, index) => (\n <Tag key={index} size=\"sm\">\n {tag}\n </Tag>\n ))}\n </TagGroup>\n ) : null}\n {copy}\n </div>\n ) : null}\n </div>\n\n {sections.length || copy ? (\n <aside className=\"ow-blog04__aside\" aria-labelledby={sections.length ? `${id}-toc` : undefined}>\n {sections.length ? (\n <>\n <Text variant=\"label\" as=\"p\" id={`${id}-toc`} className=\"ow-blog04__toc-label\">\n {contentsLabel}\n </Text>\n {contents}\n </>\n ) : null}\n {copy ? <div className=\"ow-blog04__aside-share\">{copy}</div> : null}\n </aside>\n ) : null}\n </div>\n </div>\n </article>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Avatar, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Team01Props } from \"./Team01.types\";\n\n/** A centred grid of faces, each with a name and what they do, and a line at the end such as a link to open roles. */\nexport function Team01({ eyebrow, title, description, people, note, className, ...props }: Team01Props) {\n const titleId = `${useId()}-title`;\n\n return (\n <section className={cx(\"ow-team01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-team01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n\n <ul className=\"ow-team01__list\">\n {people.map((person, index) => (\n <li key={index} className=\"ow-team01__person\" data-tone={person.tone ?? \"brand\"}>\n <Avatar name={person.name} src={person.avatar} size={96} className=\"ow-team01__avatar\" />\n <Text variant=\"card-title\" as=\"span\" className=\"ow-team01__name\">\n {person.name}\n </Text>\n <Text variant=\"body\" as=\"span\" tone=\"muted\" className=\"ow-team01__role\">\n {person.jobTitle}\n </Text>\n </li>\n ))}\n </ul>\n\n {note ? (\n <Text variant=\"copy\" align=\"center\" className=\"ow-team01__hiring\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Avatar, buttonClassName, Card, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { LinkIcon, MailIcon, MapPinIcon } from \"@blocks/shared/icons\";\nimport type { Team02Props } from \"./Team02.types\";\n\n/** A card for each person: their face, name and job, a line about what they do, and where they are with ways to reach them. */\nexport function Team02({ eyebrow, title, description, people, labels = {}, className, ...props }: Team02Props) {\n const titleId = `${useId()}-title`;\n\n return (\n <section className={cx(\"ow-team02\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-team02__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n\n <ul className=\"ow-team02__list\">\n {people.map((person, index) => (\n <li key={index}>\n <Card padding=\"lg\" className=\"ow-team02__card\">\n <div className=\"ow-team02__head\">\n <Avatar name={person.name} src={person.avatar} size={56} />\n <div className=\"ow-team02__who\">\n <Text variant=\"card-title\">{person.name}</Text>\n <Text variant=\"body\" tone=\"muted\" className=\"ow-team02__role\">\n {person.jobTitle}\n </Text>\n </div>\n </div>\n {person.bio ? (\n <Text variant=\"copy\" tone=\"soft\" className=\"ow-team02__about\">\n {person.bio}\n </Text>\n ) : null}\n {person.location || person.email || person.website ? (\n <div className=\"ow-team02__foot\">\n {person.location ? (\n <Text variant=\"caption\" className=\"ow-team02__place\">\n <MapPinIcon size={14} />\n {person.location}\n </Text>\n ) : (\n <span />\n )}\n <span className=\"ow-team02__links\">\n {person.email ? (\n <a\n href={`mailto:${person.email}`}\n className={buttonClassName({ variant: \"ghost\", size: \"sm\", iconOnly: true })}\n aria-label={labels.email?.(person.name) ?? `Email ${person.name}`}\n >\n <MailIcon size={16} />\n </a>\n ) : null}\n {person.website ? (\n <a\n href={person.website}\n className={buttonClassName({ variant: \"ghost\", size: \"sm\", iconOnly: true })}\n aria-label={labels.website?.(person.name) ?? `${person.name}'s website`}\n >\n <LinkIcon size={16} />\n </a>\n ) : null}\n </span>\n </div>\n ) : null}\n </Card>\n </li>\n ))}\n </ul>\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, Card, cx, Field, Input, Link, SectionHeading, Select, Text, Textarea, type SelectItem } from \"@openwarelabs/ui\";\n\nimport { CircleCheckIcon } from \"@blocks/shared/icons\";\nimport type { Contact01Errors, Contact01Labels, Contact01Props, Contact01Values } from \"./Contact01.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nfunction validate(values: Contact01Values, labels: Contact01Labels, minMessageLength: number): Contact01Errors {\n const errors: Contact01Errors = {};\n if (!values.name.trim()) errors.name = labels.nameEmpty ?? \"Enter your name.\";\n if (!values.email.trim()) errors.email = labels.emailEmpty ?? \"Enter your work email.\";\n else if (!emailPattern.test(values.email.trim())) errors.email = labels.emailInvalid ?? \"Enter an email address like name@example.com.\";\n if (!values.message.trim()) errors.message = labels.messageEmpty ?? \"Tell us a little about what you need.\";\n else if (values.message.trim().length < minMessageLength) errors.message = labels.messageShort ?? \"Add a few more words, so it reaches the right person.\";\n return errors;\n}\n\nfunction firstValue(items: SelectItem[] = []): string {\n for (const item of items) {\n if (\"options\" in item) {\n const value = firstValue(item.options);\n if (value) return value;\n } else return item.value;\n }\n return \"\";\n}\n\n/** A short contact form in a card, beside the heading and a list of ways to reach you, with a thank-you in place of the form once it's sent. */\nexport function Contact01({\n eyebrow,\n title,\n description,\n details = [],\n topics,\n defaultTopic,\n sizes,\n minMessageLength = 20,\n onSubmit,\n note,\n successTitle,\n successDescription,\n labels = {},\n className,\n ...props\n}: Contact01Props) {\n const empty: Contact01Values = { name: \"\", email: \"\", company: \"\", size: \"\", topic: defaultTopic ?? firstValue(topics), message: \"\" };\n const [values, setValues] = useState<Contact01Values>(empty);\n const [errors, setErrors] = useState<Contact01Errors>({});\n const [tried, setTried] = useState(false);\n const [sending, setSending] = useState(false);\n const [failure, setFailure] = useState<string>();\n const [sent, setSent] = useState<Contact01Values>();\n const doneRef = useRef<HTMLDivElement>(null);\n const id = useId();\n const titleId = `${id}-title`;\n\n useEffect(() => {\n if (sent) doneRef.current?.focus();\n }, [sent]);\n\n const set = (key: keyof Contact01Values, value: string) => {\n const next = { ...values, [key]: value };\n setValues(next);\n // After the first try, errors clear as each field is fixed.\n if (tried) setErrors(validate(next, labels, minMessageLength));\n };\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setTried(true);\n setFailure(undefined);\n const found = validate(values, labels, minMessageLength);\n setErrors(found);\n const first = ([\"name\", \"email\", \"message\"] as const).find((key) => found[key]);\n if (first) {\n document.getElementById(`${id}-${first}`)?.focus();\n return;\n }\n setSending(true);\n try {\n await onSubmit(values);\n setSent(values);\n } catch (error) {\n setFailure(error instanceof Error && error.message ? error.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n } finally {\n setSending(false);\n }\n };\n\n const startAgain = () => {\n setValues(empty);\n setErrors({});\n setTried(false);\n setSent(undefined);\n };\n\n const optional = (label: string) => (\n <>\n {label}{\" \"}\n <Text variant=\"body\" as=\"span\" tone=\"muted\">\n {labels.optional ?? \"(optional)\"}\n </Text>\n </>\n );\n\n return (\n <section className={cx(\"ow-contact01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-contact01__inner\">\n <div>\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n {details.length ? (\n <ul className=\"ow-contact01__details\">\n {details.map((detail, index) => (\n <li key={index} className=\"ow-contact01__detail\">\n <span className=\"ow-contact01__detail-icon\" aria-hidden=\"true\">\n {detail.icon}\n </span>\n <div>\n <Text variant=\"caption\" as=\"p\">\n {detail.label}\n </Text>\n <Text variant=\"card-title\" as=\"p\" className=\"ow-contact01__detail-value\">\n {detail.href ? <Link href={detail.href}>{detail.value}</Link> : detail.value}\n </Text>\n {detail.note ? (\n <Text variant=\"copy\" className=\"ow-contact01__detail-note\">\n {detail.note}\n </Text>\n ) : null}\n </div>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-contact01__card\">\n {sent ? (\n <div ref={doneRef} tabIndex={-1} className=\"ow-contact01__done\" role=\"group\" aria-labelledby={`${id}-done-title`}>\n <span className=\"ow-contact01__done-icon\" aria-hidden=\"true\">\n <CircleCheckIcon size={22} />\n </span>\n <Text variant=\"heading\" as=\"h3\" id={`${id}-done-title`} className=\"ow-contact01__done-title\">\n {successTitle(sent)}\n </Text>\n {successDescription ? (\n <Text variant=\"copy\" className=\"ow-contact01__done-text\">\n {successDescription(sent)}\n </Text>\n ) : null}\n <Button shape=\"pill\" onClick={startAgain}>\n {labels.again ?? \"Send another message\"}\n </Button>\n </div>\n ) : (\n <form className=\"ow-contact01__form\" aria-labelledby={titleId} noValidate onSubmit={submit}>\n <Field label={labels.name ?? \"Name\"} error={errors.name}>\n <Input id={`${id}-name`} autoComplete=\"name\" value={values.name} onChange={(event) => set(\"name\", event.target.value)} />\n </Field>\n <Field label={labels.email ?? \"Work email\"} error={errors.email}>\n <Input\n id={`${id}-email`}\n type=\"email\"\n autoComplete=\"email\"\n placeholder={labels.emailPlaceholder ?? \"you@example.com\"}\n value={values.email}\n onChange={(event) => set(\"email\", event.target.value)}\n />\n </Field>\n <Field label={optional(labels.company ?? \"Company\")}>\n <Input autoComplete=\"organization\" value={values.company} onChange={(event) => set(\"company\", event.target.value)} />\n </Field>\n {sizes ? (\n <Field label={optional(labels.size ?? \"Team size\")}>\n <Select\n value={values.size}\n onChange={(value) => set(\"size\", value)}\n options={sizes}\n placeholder={labels.sizePlaceholder ?? \"Choose a size\"}\n />\n </Field>\n ) : null}\n {topics ? (\n <Field label={labels.topic ?? \"What's it about?\"} className=\"ow-contact01__wide\">\n <Select value={values.topic} onChange={(value) => set(\"topic\", value)} options={topics} />\n </Field>\n ) : null}\n <Field\n label={labels.message ?? \"Message\"}\n hint={errors.message ? undefined : (labels.messageHint ?? \"A few lines about your team and what you need.\")}\n error={errors.message}\n className=\"ow-contact01__wide\"\n >\n <Textarea id={`${id}-message`} rows={5} value={values.message} onChange={(event) => set(\"message\", event.target.value)} />\n </Field>\n <div className=\"ow-contact01__foot\">\n <Text variant=\"caption\" as=\"p\" tone={failure ? \"danger\" : undefined} aria-live=\"polite\">\n {failure ?? note}\n </Text>\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" loading={sending}>\n {labels.submit ?? \"Send message\"}\n </Button>\n </div>\n </form>\n )}\n </Card>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Card, CopyButton, cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Contact02Props } from \"./Contact02.types\";\n\n/** Ways to get help before writing in, a card each with a few links and the way in, and a line about the service's state. */\nexport function Contact02({ eyebrow, title, description, options, status, labels = {}, className, ...props }: Contact02Props) {\n const titleId = `${useId()}-title`;\n\n return (\n <section className={cx(\"ow-contact02\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-contact02__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n\n <div className=\"ow-contact02__grid\">\n {options.map((option, index) => (\n <Card key={index} padding=\"none\" className=\"ow-contact02__card\">\n <div className=\"ow-contact02__body\">\n {option.icon ? (\n <span className=\"ow-contact02__icon\" aria-hidden=\"true\">\n {option.icon}\n </span>\n ) : null}\n <Text variant=\"heading\" as=\"h3\" className=\"ow-contact02__title\">\n {option.title}\n </Text>\n {option.description ? (\n <Text variant=\"copy\" className=\"ow-contact02__text\">\n {option.description}\n </Text>\n ) : null}\n {option.email ? (\n <div className=\"ow-contact02__address\">\n <Text variant=\"body\" as=\"span\">\n {option.email}\n </Text>\n <CopyButton value={option.email} label={labels.copyAddress ?? \"Copy address\"} iconOnly />\n </div>\n ) : null}\n {option.list?.length ? (\n <ul className=\"ow-contact02__list\" aria-label={option.listLabel}>\n {option.list.map((item, row) => (\n <Text key={row} variant=\"body\" as=\"li\">\n {item.href ? (\n <Link href={item.href} variant=\"standalone\">\n {item.label}\n </Link>\n ) : (\n <span>{item.label}</span>\n )}\n {item.meta ? (\n <Text variant=\"caption\" className=\"ow-contact02__meta\">\n {item.meta}\n </Text>\n ) : null}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n <div className=\"ow-contact02__foot\">\n <Link href={option.link.href} variant=\"standalone\" className=\"ow-contact02__foot-link\">\n {option.link.label}\n <ArrowRightIcon size={14} />\n </Link>\n {option.footNote ? (\n <Text variant=\"caption\" className=\"ow-contact02__members\">\n {option.footNote}\n </Text>\n ) : null}\n </div>\n </Card>\n ))}\n </div>\n\n {status ? (\n <Text variant=\"body\" tone=\"muted\" align=\"center\" className=\"ow-contact02__status\">\n <Text variant=\"label\" as=\"span\" tone=\"default\" className=\"ow-contact02__state\">\n {status.label}\n </Text>\n {status.description ? <span>{status.description}</span> : null}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState, type FormEvent } from \"react\";\n\nimport { Button, Card, cx, Field, Input, Link, Separator, Text } from \"@openwarelabs/ui\";\n\nimport type { SignIn01Errors, SignIn01Props } from \"./SignIn01.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** One card in the middle of the window: the mark and heading above it, other accounts and the email form on it. */\nexport function SignIn01({\n title,\n description,\n logo,\n providers = [],\n onProviderSelect,\n onSubmit,\n forgotPasswordHref,\n footer,\n labels = {},\n className,\n ...props\n}: SignIn01Props) {\n const id = useId();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [errors, setErrors] = useState<SignIn01Errors>({});\n // The provider's id, or \"\" for the form, while it's working.\n const [busy, setBusy] = useState<string | null>(null);\n\n const fieldId = (name: string) => `${id}-${name}`;\n\n async function continueWith(provider: string) {\n setBusy(provider);\n try {\n await onProviderSelect?.(provider);\n } finally {\n setBusy(null);\n }\n }\n\n async function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim();\n const found: SignIn01Errors = {};\n if (!address) found.email = labels.emailEmpty ?? \"Enter the email address you signed up with.\";\n else if (!emailPattern.test(address)) found.email = labels.emailInvalid ?? \"That doesn't look like an email address.\";\n if (!password) found.password = labels.passwordEmpty ?? \"Enter your password.\";\n setErrors(found);\n if (found.email || found.password) {\n document.getElementById(fieldId(found.email ? \"email\" : \"password\"))?.focus();\n return;\n }\n setBusy(\"\");\n try {\n await onSubmit?.({ email: address, password });\n } catch (failure) {\n if (failure instanceof Error && failure.message) {\n setErrors({ password: failure.message });\n document.getElementById(fieldId(\"password\"))?.focus();\n }\n } finally {\n setBusy(null);\n }\n }\n\n return (\n <main className={cx(\"ow-sign-in01\", className)} {...props}>\n <div className=\"ow-sign-in01__inner\">\n {logo}\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in01__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-sign-in01__lead\">\n {description}\n </Text>\n ) : null}\n\n <Card padding=\"lg\" className=\"ow-sign-in01__card\">\n {providers.length ? (\n <>\n <div className=\"ow-sign-in01__providers\">\n {providers.map((provider) => (\n <Button\n key={provider.id}\n fullWidth\n startIcon={provider.icon}\n loading={busy === provider.id}\n disabled={busy !== null && busy !== provider.id}\n onClick={() => void continueWith(provider.id)}\n >\n {provider.label}\n </Button>\n ))}\n </div>\n\n <Separator label={labels.separator ?? \"or\"} spacing=\"3xl\" />\n </>\n ) : null}\n\n <form className=\"ow-sign-in01__form\" noValidate onSubmit={submit}>\n <Field label={labels.email ?? \"Email\"} error={errors.email}>\n <Input\n id={fieldId(\"email\")}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setErrors((current) => ({ ...current, email: undefined }));\n }}\n placeholder={labels.emailPlaceholder ?? \"maya@example.com\"}\n autoComplete=\"email\"\n />\n </Field>\n {/* The link sits on the label's line but outside the label, so clicking the label still focuses the field. */}\n <div className=\"ow-sign-in01__password\">\n <Field label={labels.password ?? \"Password\"} error={errors.password}>\n <Input\n id={fieldId(\"password\")}\n type=\"password\"\n value={password}\n onChange={(event) => {\n setPassword(event.target.value);\n setErrors((current) => ({ ...current, password: undefined }));\n }}\n autoComplete=\"current-password\"\n />\n </Field>\n {forgotPasswordHref !== undefined ? (\n <Link href={forgotPasswordHref} variant=\"muted\" className=\"ow-sign-in01__forgot\">\n {labels.forgotPassword ?? \"Forgot password?\"}\n </Link>\n ) : null}\n </div>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={busy === \"\"} disabled={busy !== null && busy !== \"\"}>\n {labels.submit ?? \"Sign in\"}\n </Button>\n </form>\n </Card>\n\n {footer ? (\n <Text variant=\"copy\" className=\"ow-sign-in01__switch\">\n {footer}\n </Text>\n ) : null}\n </div>\n </main>\n );\n}\n", "import { useId, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Field, Input, Separator, Text } from \"@openwarelabs/ui\";\n\nimport type { SignIn02Errors, SignIn02Props } from \"./SignIn02.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** Signing up: the form on one side of the window, a midnight plate with the product and a quote on the other. */\nexport function SignIn02({\n brand,\n title,\n description,\n providers = [],\n onProviderSelect,\n onSubmit,\n passwordMinLength = 12,\n terms,\n footer,\n eyebrow,\n headline,\n visual,\n quote,\n labels = {},\n className,\n ...props\n}: SignIn02Props) {\n const id = useId();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [errors, setErrors] = useState<SignIn02Errors>({});\n // The provider's id, or \"\" for the form, while it's working.\n const [busy, setBusy] = useState<string | null>(null);\n\n const fieldId = (name: string) => `${id}-${name}`;\n\n async function continueWith(provider: string) {\n setBusy(provider);\n try {\n await onProviderSelect?.(provider);\n } finally {\n setBusy(null);\n }\n }\n\n async function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim();\n const found: SignIn02Errors = {};\n if (!address) found.email = labels.emailEmpty ?? \"Enter your work email.\";\n else if (!emailPattern.test(address)) found.email = labels.emailInvalid ?? \"That doesn't look like an email address.\";\n if (password.length < passwordMinLength) {\n const missing = passwordMinLength - password.length;\n found.password = password ? (labels.passwordShort?.(missing) ?? `Add ${missing} more characters.`) : (labels.passwordEmpty ?? \"Choose a password.\");\n }\n setErrors(found);\n if (found.email || found.password) {\n document.getElementById(fieldId(found.email ? \"email\" : \"password\"))?.focus();\n return;\n }\n setBusy(\"\");\n try {\n await onSubmit?.({ email: address, password });\n } catch (failure) {\n if (failure instanceof Error && failure.message) {\n setErrors({ email: failure.message });\n document.getElementById(fieldId(\"email\"))?.focus();\n }\n } finally {\n setBusy(null);\n }\n }\n\n return (\n <main className={cx(\"ow-sign-in02\", className)} {...props}>\n <div className=\"ow-sign-in02__form-side\">\n <Text variant=\"card-title\" as=\"span\" className=\"ow-sign-in02__brand\">\n {brand.logo}\n {brand.name}\n </Text>\n\n <div className=\"ow-sign-in02__form-wrap\">\n <Text variant=\"heading\" as=\"h1\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-sign-in02__lead\">\n {description}\n </Text>\n ) : null}\n\n {providers.length ? (\n <>\n <div className=\"ow-sign-in02__providers\">\n {providers.map((provider) => (\n <Button\n key={provider.id}\n fullWidth\n startIcon={provider.icon}\n loading={busy === provider.id}\n disabled={busy !== null && busy !== provider.id}\n onClick={() => void continueWith(provider.id)}\n >\n {provider.label}\n </Button>\n ))}\n </div>\n\n <Separator label={labels.separator ?? \"or\"} spacing=\"3xl\" />\n </>\n ) : null}\n\n <form className=\"ow-sign-in02__form\" noValidate onSubmit={submit}>\n <Field label={labels.email ?? \"Work email\"} error={errors.email}>\n <Input\n id={fieldId(\"email\")}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setErrors((current) => ({ ...current, email: undefined }));\n }}\n placeholder={labels.emailPlaceholder ?? \"maya@example.com\"}\n autoComplete=\"email\"\n />\n </Field>\n <Field\n label={labels.password ?? \"Password\"}\n hint={errors.password ? undefined : (labels.passwordHint ?? `At least ${passwordMinLength} characters.`)}\n error={errors.password}\n >\n <Input\n id={fieldId(\"password\")}\n type=\"password\"\n value={password}\n onChange={(event) => {\n setPassword(event.target.value);\n setErrors((current) => ({ ...current, password: undefined }));\n }}\n autoComplete=\"new-password\"\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={busy === \"\"} disabled={busy !== null && busy !== \"\"}>\n {labels.submit ?? \"Create account\"}\n </Button>\n </form>\n\n {terms ? (\n <Text variant=\"caption\" as=\"p\" align=\"center\" className=\"ow-sign-in02__terms\">\n {terms}\n </Text>\n ) : null}\n </div>\n\n {footer ? (\n <Text variant=\"copy\" align=\"center\">\n {footer}\n </Text>\n ) : null}\n </div>\n\n <aside className=\"ow-sign-in02__plate\" aria-label={labels.plate ?? \"About the product\"}>\n <div className=\"ow-sign-in02__plate-inner\">\n {eyebrow ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-sign-in02__eyebrow\">\n <span className=\"ow-sign-in02__brass\" aria-hidden=\"true\" />\n {eyebrow}\n </Text>\n ) : null}\n {headline ? (\n <Text variant=\"heading\" as=\"p\" className=\"ow-sign-in02__headline\">\n {headline}\n </Text>\n ) : null}\n {visual}\n {quote ? (\n <figure className=\"ow-sign-in02__quote\">\n <Text variant=\"body\" as=\"blockquote\" className=\"ow-sign-in02__quote-text\">\n {quote.text}\n </Text>\n <Text variant=\"caption\" as=\"figcaption\" className=\"ow-sign-in02__quote-by\">\n {quote.author}\n {quote.badge ? (\n <>\n {\" \"}\n <span className=\"ow-sign-in02__sample\">{quote.badge}</span>\n </>\n ) : null}\n </Text>\n </figure>\n ) : null}\n </div>\n </aside>\n </main>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Field, Input, Link, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon, MailCheckIcon, MailIcon } from \"@blocks/shared/icons\";\nimport type { SignIn03Props } from \"./SignIn03.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** Signing in with a link by email: one field, then a page saying where the link went, with a way to send it again. */\nexport function SignIn03({\n brand,\n link,\n title,\n description,\n onSubmit,\n onResend,\n cooldown = 30,\n sentDescription,\n sentNote,\n labels = {},\n className,\n ...props\n}: SignIn03Props) {\n const emailId = useId();\n const titleId = useId();\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [sending, setSending] = useState(false);\n const [sentTo, setSentTo] = useState<string | null>(null);\n const [wait, setWait] = useState(0);\n const shown = useRef<string | null>(null);\n\n // Count the resend wait down a second at a time.\n useEffect(() => {\n if (wait <= 0) return undefined;\n const timer = window.setTimeout(() => setWait((current) => current - 1), 1000);\n return () => window.clearTimeout(timer);\n }, [wait]);\n\n // When the page changes, move focus to its title so it's read out; going back puts it in the email field.\n useEffect(() => {\n if (shown.current === sentTo) return;\n shown.current = sentTo;\n if (sentTo) document.getElementById(titleId)?.focus();\n else document.getElementById(emailId)?.focus();\n }, [sentTo, emailId, titleId]);\n\n async function send(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim();\n const found = !address\n ? (labels.emailEmpty ?? \"Enter your email address.\")\n : !emailPattern.test(address)\n ? (labels.emailInvalid ?? \"That doesn't look like an email address.\")\n : \"\";\n setError(found);\n if (found) {\n document.getElementById(emailId)?.focus();\n return;\n }\n setSending(true);\n try {\n await onSubmit?.(address);\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n document.getElementById(emailId)?.focus();\n return;\n } finally {\n setSending(false);\n }\n setSentTo(address);\n setWait(cooldown);\n }\n\n function resend() {\n if (!sentTo) return;\n setWait(cooldown);\n void onResend?.(sentTo);\n }\n\n const address = sentTo ? (\n <Text variant=\"label\" as=\"strong\" tone=\"default\" className=\"ow-sign-in03__email\">\n {sentTo}\n </Text>\n ) : null;\n\n return (\n <main className={cx(\"ow-sign-in03\", className)} {...props}>\n <div className=\"ow-sign-in03__panel\">\n <header className=\"ow-sign-in03__bar\">\n <Text variant=\"card-title\" as=\"span\" className=\"ow-sign-in03__brand\">\n {brand.logo}\n {brand.name}\n </Text>\n {link ? (\n <Link href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n ) : null}\n </header>\n\n <div className=\"ow-sign-in03__body\">\n {sentTo ? (\n <div className=\"ow-sign-in03__content\" key=\"sent\">\n <span className=\"ow-sign-in03__icon ow-sign-in03__icon--sent\" aria-hidden=\"true\">\n <MailCheckIcon size={22} />\n </span>\n <Text variant=\"heading\" as=\"h1\" id={titleId} tabIndex={-1} className=\"ow-sign-in03__title\">\n {labels.sentTitle ?? \"Check your email\"}\n </Text>\n <Text variant=\"copy\" className=\"ow-sign-in03__lead\">\n {sentDescription ? (\n sentDescription(address)\n ) : (\n <>\n We sent a sign-in link to\n {address}\n It works once, for the next 15 minutes, on any device.\n </>\n )}\n </Text>\n <div className=\"ow-sign-in03__actions\">\n <Button fullWidth disabled={wait > 0} onClick={resend}>\n {wait > 0 ? (labels.resendIn?.(wait) ?? `Send again in ${wait} s`) : (labels.resend ?? \"Send the link again\")}\n </Button>\n <Button fullWidth variant=\"ghost\" startIcon={<ArrowLeftIcon size={16} />} onClick={() => setSentTo(null)}>\n {labels.back ?? \"Use a different email\"}\n </Button>\n </div>\n {sentNote ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-sign-in03__note\">\n {sentNote}\n </Text>\n ) : null}\n </div>\n ) : (\n <form className=\"ow-sign-in03__content\" key=\"ask\" noValidate onSubmit={send}>\n <span className=\"ow-sign-in03__icon\" aria-hidden=\"true\">\n <MailIcon size={22} />\n </span>\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in03__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-sign-in03__lead\">\n {description}\n </Text>\n ) : null}\n <div className=\"ow-sign-in03__fields\">\n <Field label={labels.email ?? \"Email\"} error={error}>\n <Input\n id={emailId}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setError(\"\");\n }}\n placeholder={labels.emailPlaceholder ?? \"maya@example.com\"}\n autoComplete=\"email\"\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={sending}>\n {labels.submit ?? \"Email me a link\"}\n </Button>\n </div>\n </form>\n )}\n </div>\n </div>\n </main>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, Card, Checkbox, cx, Field, Input, InputOTP, Spinner, Text } from \"@openwarelabs/ui\";\n\nimport { CircleCheckIcon, KeyRoundIcon, ShieldCheckIcon } from \"@blocks/shared/icons\";\nimport type { SignIn04Mode, SignIn04Props, SignIn04Status } from \"./SignIn04.types\";\n\n/** Six boxes for the code from an authenticator app, checked as the last digit goes in, with a backup code as the way round. */\nexport function SignIn04({ title, description, onVerify, footer, labels = {}, className, ...props }: SignIn04Props) {\n const backupId = useId();\n const [mode, setMode] = useState<SignIn04Mode>(\"app\");\n const [code, setCode] = useState(\"\");\n const [backup, setBackup] = useState(\"\");\n const [backupError, setBackupError] = useState(\"\");\n const [trust, setTrust] = useState(false);\n const [status, setStatus] = useState<SignIn04Status>(\"idle\");\n const otpRef = useRef<HTMLDivElement>(null);\n const shownMode = useRef(mode);\n\n // Start in the first box. preventScroll keeps a page that embeds this (in a frame, say) from jumping to it.\n useEffect(() => {\n otpRef.current?.querySelector(\"input\")?.focus({ preventScroll: true });\n }, []);\n\n // After a wrong code, focus goes back to the last box (once it's enabled again) so the code can be fixed.\n useEffect(() => {\n if (status !== \"wrong\") return;\n const inputs = otpRef.current?.querySelectorAll(\"input\");\n inputs?.[inputs.length - 1]?.focus();\n }, [status]);\n\n // Switching between the app and a backup code puts focus in the field that's now showing.\n useEffect(() => {\n if (shownMode.current === mode) return;\n shownMode.current = mode;\n if (mode === \"backup\") document.getElementById(backupId)?.focus();\n else otpRef.current?.querySelector(\"input\")?.focus();\n }, [mode, backupId]);\n\n async function verify(value: string) {\n if (status === \"checking\") return;\n setStatus(\"checking\");\n let right = true;\n try {\n right = (await onVerify?.({ code: value, method: mode, trust })) !== false;\n } catch {\n right = false;\n }\n // Leave a wrong code in place, so the person can see what they typed.\n setStatus(right ? \"done\" : \"wrong\");\n }\n\n function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n if (mode === \"app\") {\n if (code.length === 6) void verify(code);\n return;\n }\n const cleaned = backup.trim().toLowerCase();\n if (!/^[a-z0-9]{4}-?[a-z0-9]{4}$/.test(cleaned)) {\n setBackupError(labels.backupInvalid ?? \"Backup codes have 8 letters and numbers, like 4f7k-29xq.\");\n document.getElementById(backupId)?.focus();\n return;\n }\n void verify(cleaned);\n }\n\n return (\n <main className={cx(\"ow-sign-in04\", className)} {...props}>\n <div className=\"ow-sign-in04__inner\">\n <Card padding=\"lg\" className=\"ow-sign-in04__card\">\n {status === \"done\" ? (\n <div className=\"ow-sign-in04__done\" role=\"status\">\n <span className=\"ow-sign-in04__icon ow-sign-in04__icon--done\" aria-hidden=\"true\">\n <CircleCheckIcon size={22} />\n </span>\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in04__title\">\n {labels.doneTitle ?? \"You're in\"}\n </Text>\n <Text variant=\"copy\" className=\"ow-sign-in04__lead\">\n {labels.doneDescription ?? \"Taking you to your workspace\u2026\"}\n </Text>\n <Spinner size=\"sm\" label=\"\" />\n </div>\n ) : (\n <form noValidate onSubmit={submit} className=\"ow-sign-in04__form\">\n <span className=\"ow-sign-in04__icon\" aria-hidden=\"true\">\n {mode === \"app\" ? <ShieldCheckIcon size={22} /> : <KeyRoundIcon size={22} />}\n </span>\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in04__title\">\n {mode === \"app\" ? title : (labels.backupTitle ?? \"Use a backup code\")}\n </Text>\n {mode === \"app\" && !description ? null : (\n <Text variant=\"copy\" className=\"ow-sign-in04__lead\">\n {mode === \"app\"\n ? description\n : (labels.backupDescription ?? \"Enter one of the codes you saved when you turned on two-factor. Each one works once.\")}\n </Text>\n )}\n\n {mode === \"app\" ? (\n <div className=\"ow-sign-in04__code\" ref={otpRef}>\n <InputOTP\n value={code}\n onChange={(value) => {\n setCode(value);\n if (status === \"wrong\") setStatus(\"idle\");\n }}\n onComplete={(value) => void verify(value)}\n groupSize={3}\n isInvalid={status === \"wrong\"}\n disabled={status === \"checking\"}\n aria-label={labels.code ?? \"Six-digit code\"}\n />\n <Text\n variant=\"body\"\n tone={status === \"wrong\" ? \"danger\" : \"muted\"}\n className=\"ow-sign-in04__message\"\n role={status === \"wrong\" ? \"alert\" : undefined}\n >\n {status === \"checking\" ? (\n <>\n <Spinner size=\"sm\" label=\"\" /> {labels.checking ?? \"Checking the code\u2026\"}\n </>\n ) : status === \"wrong\" ? (\n (labels.wrong ?? \"That code didn't work. Codes change every 30 seconds, so try the newest one.\")\n ) : (\n (labels.codeHint ?? \"It's checked as soon as you type the last digit.\")\n )}\n </Text>\n </div>\n ) : (\n <div className=\"ow-sign-in04__backup\">\n <Field label={labels.backupCode ?? \"Backup code\"} error={backupError}>\n <Input\n id={backupId}\n value={backup}\n onChange={(event) => {\n setBackup(event.target.value);\n setBackupError(\"\");\n }}\n placeholder={labels.backupPlaceholder ?? \"xxxx-xxxx\"}\n autoComplete=\"one-time-code\"\n spellCheck={false}\n className=\"ow-sign-in04__backup-input\"\n />\n </Field>\n </div>\n )}\n\n <Checkbox checked={trust} onChange={(event) => setTrust(event.target.checked)} className=\"ow-sign-in04__trust\">\n {labels.trust ?? \"Don't ask again on this device for 30 days\"}\n </Checkbox>\n\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={status === \"checking\"} disabled={mode === \"app\" && code.length < 6}>\n {labels.submit ?? \"Verify\"}\n </Button>\n\n <Button variant=\"ghost\" size=\"sm\" className=\"ow-sign-in04__switch\" onClick={() => setMode(mode === \"app\" ? \"backup\" : \"app\")}>\n {mode === \"app\" ? (labels.useBackup ?? \"Use a backup code instead\") : (labels.useApp ?? \"Use your authenticator app\")}\n </Button>\n </form>\n )}\n </Card>\n\n {status === \"done\" || !footer ? null : (\n <Text variant=\"copy\" align=\"center\" className=\"ow-sign-in04__foot\">\n {footer}\n </Text>\n )}\n </div>\n </main>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, Card, cx, Field, Input, Link, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon, CheckIcon, CircleCheckIcon, EyeIcon, EyeOffIcon, KeyRoundIcon } from \"@blocks/shared/icons\";\nimport type { SignIn05Props, SignIn05Rule, SignIn05Step } from \"./SignIn05.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nconst defaultRules: SignIn05Rule[] = [\n { label: \"At least 12 characters\", missing: \"at least 12 characters\", test: (value) => value.length >= 12 },\n { label: \"Upper and lower case letters\", missing: \"upper and lower case letters\", test: (value) => /[a-z]/.test(value) && /[A-Z]/.test(value) },\n { label: \"At least one number\", missing: \"a number\", test: (value) => /\\d/.test(value) },\n];\n\nconst counts = [\"\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\"];\n\n/** [\"a\", \"b\", \"c\"] \u2192 \"a, b and c\" */\nfunction joinWithAnd(items: string[]) {\n return items.length > 1 ? `${items.slice(0, -1).join(\", \")} and ${items[items.length - 1]}` : (items[0] ?? \"\");\n}\n\n/** Resetting a password on one card: ask for the email, then a new password with what it needs, then done. */\nexport function SignIn05({\n brand,\n backLink,\n title,\n description,\n onRequestLink,\n onSavePassword,\n rules = defaultRules,\n doneDescription,\n onContinue,\n labels = {},\n className,\n ...props\n}: SignIn05Props) {\n const id = useId();\n const [step, setStep] = useState<SignIn05Step>(\"email\");\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [shown, setShown] = useState(false);\n const [error, setError] = useState(\"\");\n const [busy, setBusy] = useState(false);\n const shownStep = useRef(step);\n\n const emailId = `${id}-email`;\n const passwordId = `${id}-password`;\n const rulesId = `${id}-rules`;\n const doneTitleId = `${id}-done-title`;\n\n // A new step moves focus: into the password field, or onto the title of the last page. Not on first load.\n useEffect(() => {\n if (shownStep.current === step) return;\n shownStep.current = step;\n if (step === \"password\") document.getElementById(passwordId)?.focus();\n else if (step === \"done\") document.getElementById(doneTitleId)?.focus();\n else document.getElementById(emailId)?.focus();\n }, [step, emailId, passwordId, doneTitleId]);\n\n /** Runs the callback with the button spinning, then moves on, or shows why it couldn't. */\n async function run(work: (() => void | Promise<void>) | undefined, next: SignIn05Step, field: string) {\n setBusy(true);\n try {\n await work?.();\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n document.getElementById(field)?.focus();\n return;\n } finally {\n setBusy(false);\n }\n setStep(next);\n }\n\n function sendLink(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim();\n const found = !address\n ? (labels.emailEmpty ?? \"Enter the email you use to sign in.\")\n : !emailPattern.test(address)\n ? (labels.emailInvalid ?? \"That doesn't look like an email address.\")\n : \"\";\n setError(found);\n if (found) {\n document.getElementById(emailId)?.focus();\n return;\n }\n void run(onRequestLink && (() => onRequestLink(address)), \"password\", emailId);\n }\n\n function savePassword(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const missing = rules.filter((rule) => !rule.test(password)).map((rule) => rule.missing);\n const found = !password\n ? (labels.passwordEmpty ?? \"Choose a new password.\")\n : missing.length === rules.length && rules.length > 1\n ? (labels.passwordNeedsAll?.(rules.length) ?? `Your password needs all ${counts[rules.length] ?? rules.length} things below.`)\n : missing.length\n ? (labels.passwordNeeds?.(joinWithAnd(missing)) ?? `Your password still needs ${joinWithAnd(missing)}.`)\n : \"\";\n setError(found);\n if (found) {\n document.getElementById(passwordId)?.focus();\n return;\n }\n void run(onSavePassword && (() => onSavePassword({ email: email.trim(), password })), \"done\", passwordId);\n }\n\n const icon = (\n <span className=\"ow-sign-in05__icon\" aria-hidden=\"true\">\n <KeyRoundIcon size={20} />\n </span>\n );\n const address = (\n <Text variant=\"label\" as=\"strong\" tone=\"default\" className=\"ow-sign-in05__email\">\n {email.trim()}\n </Text>\n );\n\n return (\n <main className={cx(\"ow-sign-in05\", className)} {...props}>\n <header className=\"ow-sign-in05__bar\">\n <Text variant=\"card-title\" as=\"span\" className=\"ow-sign-in05__brand\">\n {brand.logo}\n {brand.name}\n </Text>\n {backLink ? (\n <Link href={backLink.href} variant=\"standalone\" className=\"ow-sign-in05__back\">\n <ArrowLeftIcon size={15} />\n {backLink.label}\n </Link>\n ) : null}\n </header>\n\n <div className=\"ow-sign-in05__body\">\n <Card padding=\"lg\" className=\"ow-sign-in05__card\">\n {step === \"email\" ? (\n <form noValidate onSubmit={sendLink} className=\"ow-sign-in05__form\">\n {icon}\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in05__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-sign-in05__lead\">\n {description}\n </Text>\n ) : null}\n <Field label={labels.email ?? \"Email\"} error={error}>\n <Input\n id={emailId}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setError(\"\");\n }}\n placeholder={labels.emailPlaceholder ?? \"maya@example.com\"}\n autoComplete=\"email\"\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={busy}>\n {labels.sendLink ?? \"Email me a reset link\"}\n </Button>\n </form>\n ) : null}\n\n {step === \"password\" ? (\n <form noValidate onSubmit={savePassword} className=\"ow-sign-in05__form\">\n {icon}\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in05__title\">\n {labels.chooseTitle ?? \"Choose a new password\"}\n </Text>\n <Text variant=\"copy\" className=\"ow-sign-in05__lead\">\n {labels.chooseDescription ? labels.chooseDescription(address) : <>For {address}. You'll be signed in as soon as it's saved.</>}\n </Text>\n {/* A hidden username lets password managers save the new password against the right account. */}\n <Input type=\"email\" name=\"username\" value={email.trim()} autoComplete=\"username\" readOnly hidden />\n <Field label={labels.password ?? \"New password\"} error={error}>\n <Input\n id={passwordId}\n type={shown ? \"text\" : \"password\"}\n value={password}\n onChange={(event) => {\n setPassword(event.target.value);\n setError(\"\");\n }}\n autoComplete=\"new-password\"\n aria-describedby={rulesId}\n endContent={\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n iconOnly\n aria-label={shown ? (labels.hidePassword ?? \"Hide password\") : (labels.showPassword ?? \"Show password\")}\n onClick={() => setShown((current) => !current)}\n >\n {shown ? <EyeOffIcon size={16} /> : <EyeIcon size={16} />}\n </Button>\n }\n />\n </Field>\n <ul id={rulesId} className=\"ow-sign-in05__rules\" aria-label={labels.rules ?? \"Your password needs\"}>\n {rules.map((rule) => {\n const met = rule.test(password);\n return (\n <Text\n key={rule.label}\n variant=\"caption\"\n as=\"li\"\n tone={met ? \"default\" : \"muted\"}\n className=\"ow-sign-in05__rule\"\n data-met={met || undefined}\n >\n <span className=\"ow-sign-in05__rule-mark\" aria-hidden=\"true\">\n <CheckIcon size={11} strokeWidth={3} />\n </span>\n {rule.label}\n <VisuallyHidden>{met ? (labels.ruleMet ?? \" (done)\") : (labels.ruleNotMet ?? \" (not yet)\")}</VisuallyHidden>\n </Text>\n );\n })}\n </ul>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={busy}>\n {labels.save ?? \"Save password and sign in\"}\n </Button>\n </form>\n ) : null}\n\n {step === \"done\" ? (\n <div className=\"ow-sign-in05__form ow-sign-in05__form--done\">\n <span className=\"ow-sign-in05__icon ow-sign-in05__icon--done\" aria-hidden=\"true\">\n <CircleCheckIcon size={20} />\n </span>\n <Text variant=\"heading\" as=\"h1\" id={doneTitleId} tabIndex={-1} className=\"ow-sign-in05__title\">\n {labels.doneTitle ?? \"Password changed\"}\n </Text>\n {doneDescription ? (\n <Text variant=\"copy\" className=\"ow-sign-in05__lead\">\n {doneDescription}\n </Text>\n ) : null}\n <Button\n variant=\"primary\"\n fullWidth\n onClick={() => {\n if (onContinue) {\n onContinue();\n return;\n }\n setPassword(\"\");\n setShown(false);\n setStep(\"email\");\n }}\n >\n {labels.continue ?? \"Continue\"}\n </Button>\n </div>\n ) : null}\n </Card>\n </div>\n </main>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { CloseButton, cx, Dialog, NavItem, NavList, Text } from \"@openwarelabs/ui\";\n\nimport type { Settings01Props } from \"./Settings01.types\";\n\n/** Commandr's settings dialog: the sections down the left on the canvas, the chosen one's rows on an inset panel. */\nexport function Settings01({\n sections,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n shortcut = true,\n section: sectionProp,\n defaultSection,\n onSectionChange,\n labels = {},\n className,\n ...props\n}: Settings01Props) {\n const headingId = useId();\n const rootRef = useRef<HTMLDivElement>(null);\n const [openState, setOpenState] = useState(defaultOpen);\n const [sectionState, setSectionState] = useState(defaultSection ?? sections[0]?.id);\n const open = openProp ?? openState;\n const section = sectionProp ?? sectionState;\n\n const setOpen = (next: boolean) => {\n setOpenState(next);\n onOpenChange?.(next);\n };\n const latestSetOpen = useRef(setOpen);\n latestSetOpen.current = setOpen;\n\n // On opening, start on the current section in whichever list is showing, rather than the first thing that takes focus.\n useEffect(() => {\n if (!open) return undefined;\n const frame = requestAnimationFrame(() => {\n const items = rootRef.current?.querySelectorAll<HTMLElement>(\".ow-settings01__nav [aria-current='page']\") ?? [];\n [...items].find((item) => item.offsetParent !== null)?.focus({ preventScroll: true });\n });\n return () => cancelAnimationFrame(frame);\n }, [open]);\n\n // \u2318, or Ctrl+, opens settings, as in most desktop apps.\n useEffect(() => {\n if (!shortcut) return undefined;\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \",\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n latestSetOpen.current(true);\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [shortcut]);\n\n const current = sections.find((entry) => entry.id === section) ?? sections[0];\n const choose = (id: string) => {\n setSectionState(id);\n onSectionChange?.(id);\n };\n\n const navItems = sections.map(({ id, label, icon }) => (\n <NavItem key={id} icon={icon} active={current?.id === id} onClick={() => choose(id)}>\n {label}\n </NavItem>\n ));\n\n return (\n // Takes no room of its own: the dialog sits over the page it's placed in.\n <div ref={rootRef} className={cx(\"ow-settings01\", className)} {...props}>\n <Dialog open={open} onClose={() => setOpen(false)} title={labels.title ?? \"Settings\"} width={880} className=\"ow-settings01__dialog\">\n {/* Down the left on wider screens; a sideways strip on phones. */}\n <NavList label={labels.sections ?? \"Settings sections\"} className=\"ow-settings01__nav ow-settings01__nav--side\">\n {navItems}\n </NavList>\n <NavList label={labels.sections ?? \"Settings sections\"} orientation=\"horizontal\" className=\"ow-settings01__nav ow-settings01__nav--top\">\n {navItems}\n </NavList>\n <Text variant=\"caption\" as=\"p\" className=\"ow-settings01__saved\">\n {labels.saved ?? \"Changes save as you go.\"}\n </Text>\n\n <CloseButton label={labels.close ?? \"Close settings\"} className=\"ow-settings01__close\" onClick={() => setOpen(false)} />\n <div className=\"ow-settings01__panel\">\n {current ? (\n <section aria-labelledby={headingId} className=\"ow-settings01__section\">\n <Text variant=\"dialog-title\" as=\"h3\" id={headingId} className=\"ow-settings01__section-title\">\n {current.label}\n </Text>\n {current.description ? (\n <Text variant=\"copy\" className=\"ow-settings01__section-text\">\n {current.description}\n </Text>\n ) : null}\n <div className=\"ow-settings01__rows\">{current.content}</div>\n </section>\n ) : null}\n </div>\n </Dialog>\n </div>\n );\n}\n", "import { useEffect, useId, useState } from \"react\";\n\nimport { Card, cx, NavItem, NavList, Text } from \"@openwarelabs/ui\";\n\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Settings02Props } from \"./Settings02.types\";\n\n/** The settings dialog's sections as a page: the list of sections on the left, the chosen one's cards of rows beside it. */\nexport function Settings02({\n title,\n description,\n sections,\n section: sectionProp,\n defaultSection,\n onSectionChange,\n savedAt,\n labels = {},\n className,\n ...props\n}: Settings02Props) {\n const sectionId = useId();\n const [sectionState, setSectionState] = useState(defaultSection ?? sections[0]?.id);\n const [saved, setSaved] = useState(false);\n const [shownSave, setShownSave] = useState(savedAt);\n\n // Each change saves straight away; \"Saved\" shows beside the heading for a moment to say so.\n if (savedAt !== shownSave) {\n setShownSave(savedAt);\n if (savedAt !== undefined) setSaved(true);\n }\n useEffect(() => {\n if (!saved) return undefined;\n const timer = window.setTimeout(() => setSaved(false), 2000);\n return () => window.clearTimeout(timer);\n }, [saved, savedAt]);\n\n const current = sections.find((entry) => entry.id === (sectionProp ?? sectionState)) ?? sections[0];\n const choose = (id: string) => {\n setSectionState(id);\n onSectionChange?.(id);\n };\n const navItems = sections.map(({ id, label, icon }) => (\n <NavItem key={id} icon={icon} active={current?.id === id} onClick={() => choose(id)}>\n {label}\n </NavItem>\n ));\n\n return (\n <div className={cx(\"ow-settings02\", className)} {...props}>\n <div className=\"ow-settings02__inner\">\n <header className=\"ow-settings02__header\">\n <Text variant=\"heading\" as=\"h1\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-settings02__lead\">\n {description}\n </Text>\n ) : null}\n </header>\n\n <div className=\"ow-settings02__layout\">\n {/* Down the left on wider screens; a sideways strip on phones. */}\n <NavList label={labels.sections ?? \"Settings sections\"} className=\"ow-settings02__nav ow-settings02__nav--side\">\n {navItems}\n </NavList>\n <NavList label={labels.sections ?? \"Settings sections\"} orientation=\"horizontal\" className=\"ow-settings02__nav ow-settings02__nav--top\">\n {navItems}\n </NavList>\n\n {current ? (\n <section className=\"ow-settings02__section\" aria-labelledby={sectionId}>\n <div className=\"ow-settings02__section-header\">\n <div>\n <Text variant=\"dialog-title\" as=\"h2\" id={sectionId}>\n {current.label}\n </Text>\n {current.description ? (\n <Text variant=\"copy\" className=\"ow-settings02__section-text\">\n {current.description}\n </Text>\n ) : null}\n </div>\n <Text variant=\"caption\" tone=\"success\" className=\"ow-settings02__saved\" data-visible={saved || undefined} role=\"status\">\n {saved ? (\n <>\n <CheckIcon size={14} />\n {labels.saved ?? \"Saved\"}\n </>\n ) : null}\n </Text>\n </div>\n {current.groups.map((group, index) => (\n <div key={index} className=\"ow-settings02__group\">\n {group.title ? (\n <Text variant=\"label\" as=\"h3\" tone=\"muted\">\n {group.title}\n </Text>\n ) : null}\n <Card padding=\"none\" className=\"ow-settings02__card\">\n {group.content}\n </Card>\n </div>\n ))}\n </section>\n ) : null}\n </div>\n </div>\n </div>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport {\n Button,\n Code,\n ConfirmDialog,\n CopyButton,\n cx,\n Dialog,\n EmptyState,\n Field,\n Input,\n Select,\n Snippet,\n Table,\n Text,\n VisuallyHidden,\n type TableColumn,\n} from \"@openwarelabs/ui\";\n\nimport { KeyRoundIcon, PlusIcon } from \"@blocks/shared/icons\";\nimport type { Settings03CreatedKey, Settings03Key, Settings03NewKey, Settings03Props } from \"./Settings03.types\";\n\n/** Random letters and digits, for a sample key when there's no server to make one. */\nfunction randomText(length: number, alphabet: string) {\n const bytes = crypto.getRandomValues(new Uint8Array(length));\n return Array.from(bytes, (byte) => alphabet[byte % alphabet.length]).join(\"\");\n}\n\n/** API keys in a table, each with its public part to copy, when it was last used and a way to revoke it; and a dialog that makes one and shows it once. */\nexport function Settings03({\n title,\n description,\n keys: initialKeys,\n accessOptions,\n defaultAccess,\n expiryOptions,\n defaultExpiry,\n onCreateKey,\n onRevokeKey,\n note,\n labels = {},\n className,\n ...props\n}: Settings03Props) {\n const titleId = useId();\n const nameId = useId();\n const firstAccess = defaultAccess ?? accessOptions?.[0]?.value ?? \"\";\n const firstExpiry = defaultExpiry ?? expiryOptions?.[0]?.value ?? \"\";\n const [keys, setKeys] = useState(initialKeys);\n const [creating, setCreating] = useState(false);\n const [name, setName] = useState(\"\");\n const [access, setAccess] = useState(firstAccess);\n const [expiry, setExpiry] = useState(firstExpiry);\n const [nameError, setNameError] = useState(\"\");\n const [working, setWorking] = useState(false);\n const [created, setCreated] = useState<{ name: string; full: string } | null>(null);\n const [revoking, setRevoking] = useState<Settings03Key | null>(null);\n\n const columnLabels = labels.columns ?? {};\n const never = labels.never ?? \"Never\";\n\n function openCreate() {\n setName(\"\");\n setAccess(firstAccess);\n setExpiry(firstExpiry);\n setNameError(\"\");\n setCreated(null);\n setCreating(true);\n }\n\n /** A key made here, when there's no server to make one. */\n function sampleKey(values: Settings03NewKey): Settings03CreatedKey {\n const prefix = `key_${randomText(8, \"0123456789abcdef\")}`;\n const secret = randomText(32, \"ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789\");\n const option = accessOptions?.find((entry) => entry.value === values.access);\n return {\n key: { id: prefix, name: values.name, prefix, access: option?.label, createdBy: labels.you ?? \"You\", created: labels.today ?? \"Today\" },\n secret: `${prefix}_${secret}`,\n };\n }\n\n async function create() {\n // The same form shows the new key afterwards; there, Enter just closes it.\n if (created) {\n setCreating(false);\n return;\n }\n if (working) return;\n const trimmed = name.trim();\n const error = !trimmed\n ? (labels.nameEmpty ?? \"Name the key after where it's used, like the service or script.\")\n : keys.some((key) => key.name.toLowerCase() === trimmed.toLowerCase())\n ? (labels.nameTaken?.(trimmed) ?? `There's already a key called ${trimmed}.`)\n : \"\";\n setNameError(error);\n if (error) {\n document.getElementById(nameId)?.focus();\n return;\n }\n const values: Settings03NewKey = { name: trimmed, access: accessOptions ? access : undefined, expiry: expiryOptions ? expiry : undefined };\n setWorking(true);\n try {\n const made = onCreateKey ? await onCreateKey(values) : sampleKey(values);\n setKeys((current) => [made.key, ...current]);\n setCreated({ name: made.key.name, full: made.secret });\n } catch (failure) {\n setNameError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n document.getElementById(nameId)?.focus();\n } finally {\n setWorking(false);\n }\n }\n\n const usedText = (lastUsed: string | undefined) =>\n labels.used ? labels.used(lastUsed) : lastUsed === undefined ? \"never used\" : `used ${lastUsed.toLowerCase()}`;\n\n /** The key's public part, its secret masked, and a button that copies the public part. */\n const keyValue = (key: Settings03Key) => (\n <span className=\"ow-settings03__key\">\n <Code className=\"ow-settings03__secret\">\n {key.prefix}\n <span aria-hidden=\"true\">_\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022</span>\n <VisuallyHidden>{labels.secretHidden ?? \", then the secret, hidden\"}</VisuallyHidden>\n </Code>\n <CopyButton iconOnly value={key.prefix} label={labels.copy?.(key.name) ?? `Copy the ID of ${key.name}`} />\n </span>\n );\n\n const columns: Array<TableColumn<Settings03Key>> = [\n {\n key: \"name\",\n header: columnLabels.name ?? \"Name\",\n render: (key) => (\n <span className=\"ow-settings03__name\">\n <Text variant=\"label\">{key.name}</Text>\n <Text variant=\"caption\">\n {key.access ? <>{key.access} \u00B7 </> : null}\n <span className=\"ow-settings03__meta-wide\">{key.createdBy}</span>\n <span className=\"ow-settings03__meta-phone\">{usedText(key.lastUsed)}</span>\n </Text>\n {/* On phones the key column folds in here. */}\n <span className=\"ow-settings03__key-phone\">{keyValue(key)}</span>\n </span>\n ),\n },\n {\n key: \"prefix\",\n header: columnLabels.key ?? \"Key\",\n render: (key) => keyValue(key),\n },\n { key: \"created\", header: columnLabels.created ?? \"Created\", width: 130 },\n {\n key: \"lastUsed\",\n header: columnLabels.lastUsed ?? \"Last used\",\n width: 130,\n render: (key) => (\n <Text as=\"span\" tone={key.lastUsed === undefined ? \"muted\" : undefined}>\n {key.lastUsed ?? never}\n </Text>\n ),\n },\n {\n key: \"actions\",\n header: <VisuallyHidden>{columnLabels.actions ?? \"Actions\"}</VisuallyHidden>,\n align: \"end\",\n width: 96,\n render: (key) => (\n <Button size=\"sm\" variant=\"ghost\" onClick={() => setRevoking(key)} aria-label={labels.revokeKey?.(key.name) ?? `Revoke ${key.name}`}>\n {labels.revoke ?? \"Revoke\"}\n </Button>\n ),\n },\n ];\n\n const accessHint = accessOptions?.find((option) => option.value === access)?.description;\n const expiryHint = expiryOptions?.find((option) => option.value === expiry)?.description;\n\n return (\n <section className={cx(\"ow-settings03\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-settings03__inner\">\n <div className=\"ow-settings03__header\">\n <div>\n <Text variant=\"dialog-title\" as=\"h2\" id={titleId}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-settings03__text\">\n {description}\n </Text>\n ) : null}\n </div>\n <Button variant=\"primary\" startIcon={<PlusIcon size={16} />} onClick={openCreate}>\n {labels.create ?? \"Create key\"}\n </Button>\n </div>\n\n <Table\n className=\"ow-settings03__table\"\n caption={labels.table ?? \"API keys\"}\n hideCaption\n columns={columns}\n rows={keys}\n emptyContent={\n <EmptyState\n icon={<KeyRoundIcon size={20} />}\n title={labels.emptyTitle ?? \"No API keys\"}\n description={labels.emptyDescription ?? \"Create one to use the API from a script or your CI.\"}\n />\n }\n />\n\n {note ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-settings03__note\">\n {note}\n </Text>\n ) : null}\n </div>\n\n <Dialog\n open={creating}\n onClose={() => setCreating(false)}\n width={460}\n dismissible={!working}\n title={created ? (labels.createdTitle ?? \"Copy your new key\") : (labels.createTitle ?? \"Create an API key\")}\n description={\n created\n ? (labels.createdDescription ??\n \"This is the only time you'll see it. Put it somewhere safe, like your CI's secrets, before you close this.\")\n : (labels.createDescription ?? \"You'll see the key once, straight after you create it.\")\n }\n onSubmit={() => void create()}\n actions={\n created ? (\n <Button type=\"submit\" variant=\"primary\">\n {labels.done ?? \"Done\"}\n </Button>\n ) : (\n <>\n <Button type=\"button\" disabled={working} onClick={() => setCreating(false)}>\n {labels.cancel ?? \"Cancel\"}\n </Button>\n <Button type=\"submit\" variant=\"primary\" loading={working}>\n {labels.create ?? \"Create key\"}\n </Button>\n </>\n )\n }\n >\n {created ? (\n <div className=\"ow-settings03__created\">\n <Text variant=\"label\">{created.name}</Text>\n <Snippet value={created.full} prompt={null} />\n </div>\n ) : (\n <div className=\"ow-settings03__form\">\n <Field label={labels.name ?? \"Name\"} hint={labels.nameHint ?? \"Where it's used, so you know which one to revoke.\"} error={nameError}>\n <Input\n id={nameId}\n value={name}\n onChange={(event) => {\n setName(event.target.value);\n setNameError(\"\");\n }}\n placeholder={labels.namePlaceholder ?? \"Nightly backups\"}\n autoComplete=\"off\"\n autoFocus\n />\n </Field>\n {accessOptions ? (\n <Field label={labels.access ?? \"Access\"} hint={accessHint}>\n <Select value={access} onChange={setAccess} options={accessOptions.map(({ value, label }) => ({ value, label }))} />\n </Field>\n ) : null}\n {expiryOptions ? (\n <Field label={labels.expiry ?? \"Expires\"} hint={expiryHint}>\n <Select value={expiry} onChange={setExpiry} options={expiryOptions.map(({ value, label }) => ({ value, label }))} />\n </Field>\n ) : null}\n </div>\n )}\n </Dialog>\n\n <ConfirmDialog\n open={revoking !== null}\n onClose={() => setRevoking(null)}\n destructive\n title={labels.revokeTitle?.(revoking?.name ?? \"\") ?? `Revoke ${revoking?.name ?? \"this key\"}?`}\n description={\n labels.revokeDescription ? (\n labels.revokeDescription(<Code>{revoking?.prefix}</Code>)\n ) : (\n <>\n Anything still using <Code>{revoking?.prefix}</Code> stops working straight away. You can't undo this.\n </>\n )\n }\n confirmLabel={labels.revokeConfirm ?? \"Revoke key\"}\n onConfirm={async () => {\n const key = revoking;\n if (!key) return;\n await onRevokeKey?.(key);\n setKeys((current) => current.filter((entry) => entry.id !== key.id));\n }}\n />\n </section>\n );\n}\n", "import { useId, useState, type FormEvent, type ReactNode } from \"react\";\n\nimport { Avatar, Badge, Button, Card, ConfirmDialog, copyText, cx, Field, Input, Menu, MenuItem, MenuSeparator, Select, Text } from \"@openwarelabs/ui\";\n\nimport { CopyIcon, EllipsisIcon, MailIcon, RotateCwIcon, SendIcon, UserMinusIcon, XIcon } from \"@blocks/shared/icons\";\nimport type { Settings04Invite, Settings04Member, Settings04Props } from \"./Settings04.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** How many are in a list, beside its title. */\nfunction CountText({ children }: { children: ReactNode }) {\n return (\n <Text as=\"span\" tone=\"muted\" className=\"ow-settings04__count\">\n {children}\n </Text>\n );\n}\n\n/** People with their role and a menu to change it or remove them, an invite at the top, and the invites still waiting. */\nexport function Settings04({\n title,\n description,\n members: initialMembers,\n invites: initialInvites = [],\n roles,\n defaultInviteRole,\n currentUserEmail,\n onInvite,\n onRoleChange,\n onRemove,\n onResendInvite,\n onRevokeInvite,\n onCopyEmail,\n labels = {},\n className,\n ...props\n}: Settings04Props) {\n const titleId = useId();\n const emailId = useId();\n const [members, setMembers] = useState(initialMembers);\n const [invites, setInvites] = useState(initialInvites);\n const [email, setEmail] = useState(\"\");\n const [inviteRole, setInviteRole] = useState(defaultInviteRole ?? roles[0]?.value ?? \"\");\n const [emailError, setEmailError] = useState(\"\");\n const [sending, setSending] = useState(false);\n const [removing, setRemoving] = useState<Settings04Member | null>(null);\n\n const roleName = (role: string) => roles.find((option) => option.value === role)?.label ?? role;\n const you = members.find((member) => member.email === currentUserEmail);\n\n async function invite(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim().toLowerCase();\n const member = members.find((entry) => entry.email.toLowerCase() === address);\n const error = !address\n ? (labels.emailEmpty ?? \"Enter the email address to send the invite to.\")\n : !emailPattern.test(address)\n ? (labels.emailInvalid ?? \"That doesn't look like an email address.\")\n : member\n ? (labels.alreadyMember?.(member.name) ?? `${member.name} is already a member.`)\n : invites.some((entry) => entry.email.toLowerCase() === address)\n ? (labels.alreadyInvited ?? \"They're already invited. Resend it from the list below.\")\n : \"\";\n setEmailError(error);\n if (error) {\n document.getElementById(emailId)?.focus();\n return;\n }\n setSending(true);\n try {\n await onInvite?.({ email: address, role: inviteRole });\n } catch (failure) {\n setEmailError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n document.getElementById(emailId)?.focus();\n return;\n } finally {\n setSending(false);\n }\n setInvites((current) => [{ email: address, role: inviteRole, sent: labels.justNow ?? \"Just now\", invitedBy: you?.name }, ...current]);\n setEmail(\"\");\n }\n\n function changeRole(member: Settings04Member, role: string) {\n setMembers((current) => current.map((entry) => (entry.email === member.email ? { ...entry, role } : entry)));\n onRoleChange?.(member, role);\n }\n\n function revokeInvite(entry: Settings04Invite) {\n setInvites((current) => current.filter((item) => item.email !== entry.email));\n // Revoking can be undone, so it isn't confirmed first.\n onRevokeInvite?.(entry, () => setInvites((current) => [entry, ...current.filter((item) => item.email !== entry.email)]));\n }\n\n const invitedText = (entry: Settings04Invite) =>\n labels.invited ? (\n labels.invited(entry)\n ) : (\n <>\n Invited {entry.sent.toLowerCase()}\n {entry.invitedBy ? ` by ${entry.invitedBy}` : null}\n </>\n );\n\n return (\n <section className={cx(\"ow-settings04\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-settings04__inner\">\n <div className=\"ow-settings04__header\">\n <Text variant=\"dialog-title\" as=\"h2\" id={titleId}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-settings04__text\">\n {typeof description === \"function\" ? description({ members: members.length, invites: invites.length }) : description}\n </Text>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-settings04__card\">\n <form className=\"ow-settings04__invite\" noValidate onSubmit={invite}>\n <Field\n label={labels.inviteEmail ?? \"Invite by email\"}\n hint={labels.inviteHint ?? \"The link in the invite works for 7 days.\"}\n error={emailError}\n >\n <Input\n id={emailId}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setEmailError(\"\");\n }}\n placeholder={labels.invitePlaceholder ?? \"name@example.com\"}\n startContent={<MailIcon size={16} />}\n autoComplete=\"off\"\n />\n </Field>\n <Select\n aria-label={labels.inviteRole ?? \"Role for the invite\"}\n className=\"ow-settings04__invite-role\"\n value={inviteRole}\n onChange={setInviteRole}\n options={roles}\n />\n <Button type=\"submit\" variant=\"primary\" startIcon={<SendIcon size={16} />} loading={sending} className=\"ow-settings04__invite-send\">\n {labels.send ?? \"Send invite\"}\n </Button>\n </form>\n\n <Text variant=\"label\" as=\"h3\" tone=\"muted\" className=\"ow-settings04__list-title\">\n {`${labels.members ?? \"Members\"} `}\n <CountText>{members.length}</CountText>\n </Text>\n <ul className=\"ow-settings04__list\">\n {members.map((member) => (\n <li key={member.email} className=\"ow-settings04__row\">\n <span className=\"ow-settings04__person\">\n <Avatar name={member.name} />\n <span className=\"ow-settings04__person-text\">\n <Text variant=\"label\" className=\"ow-settings04__name\">\n {member.name}\n {member.email === currentUserEmail ? (\n <Badge size=\"sm\" variant=\"neutral\">\n {labels.you ?? \"You\"}\n </Badge>\n ) : null}\n </Text>\n <Text variant=\"caption\" truncate>\n {member.email}\n </Text>\n </span>\n </span>\n <span className=\"ow-settings04__controls\">\n {member.owner ? (\n <Text as=\"span\" tone=\"muted\" className=\"ow-settings04__owner\">\n {labels.owner ?? \"Owner\"}\n </Text>\n ) : (\n <Select\n aria-label={labels.roleFor?.(member.name) ?? `Role for ${member.name}`}\n size=\"sm\"\n className=\"ow-settings04__role\"\n value={member.role}\n onChange={(value) => changeRole(member, value)}\n options={roles}\n />\n )}\n {member.owner ? (\n <span className=\"ow-settings04__menu-spacer\" />\n ) : (\n <Menu\n label={labels.actionsFor?.(member.name) ?? `Actions for ${member.name}`}\n align=\"end\"\n trigger={\n <Button\n size=\"sm\"\n variant=\"ghost\"\n iconOnly\n aria-label={labels.moreFor?.(member.name) ?? `More for ${member.name}`}\n >\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <MenuItem\n icon={<CopyIcon size={15} />}\n onSelect={async () => {\n if (await copyText(member.email)) onCopyEmail?.(member);\n }}\n >\n {labels.copyEmail ?? \"Copy email address\"}\n </MenuItem>\n <MenuSeparator />\n <MenuItem icon={<UserMinusIcon size={15} />} destructive onSelect={() => setRemoving(member)}>\n {labels.remove ?? \"Remove\"}\n </MenuItem>\n </Menu>\n )}\n </span>\n </li>\n ))}\n </ul>\n\n {invites.length ? (\n <>\n <Text variant=\"label\" as=\"h3\" tone=\"muted\" className=\"ow-settings04__list-title\">\n {`${labels.invites ?? \"Pending invites\"} `}\n <CountText>{invites.length}</CountText>\n </Text>\n <ul className=\"ow-settings04__list\">\n {invites.map((entry) => (\n <li key={entry.email} className=\"ow-settings04__row\">\n <span className=\"ow-settings04__person\">\n <span className=\"ow-settings04__invite-icon\" aria-hidden=\"true\">\n <MailIcon size={14} />\n </span>\n <span className=\"ow-settings04__person-text\">\n <Text variant=\"label\" truncate>\n {entry.email}\n </Text>\n <Text variant=\"caption\" truncate>\n {invitedText(entry)}\n </Text>\n </span>\n </span>\n <span className=\"ow-settings04__controls\">\n <Badge size=\"sm\" variant=\"warning\">\n {labels.pending ? labels.pending(roleName(entry.role)) : <>{roleName(entry.role)} \u00B7 pending</>}\n </Badge>\n <Menu\n label={labels.inviteActionsFor?.(entry.email) ?? `Actions for the invite to ${entry.email}`}\n align=\"end\"\n trigger={\n <Button\n size=\"sm\"\n variant=\"ghost\"\n iconOnly\n aria-label={labels.moreFor?.(entry.email) ?? `More for ${entry.email}`}\n >\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <MenuItem icon={<RotateCwIcon size={15} />} onSelect={() => onResendInvite?.(entry)}>\n {labels.resend ?? \"Resend invite\"}\n </MenuItem>\n <MenuSeparator />\n <MenuItem icon={<XIcon size={15} />} destructive onSelect={() => revokeInvite(entry)}>\n {labels.revokeInvite ?? \"Revoke invite\"}\n </MenuItem>\n </Menu>\n </span>\n </li>\n ))}\n </ul>\n </>\n ) : null}\n </Card>\n </div>\n\n <ConfirmDialog\n open={removing !== null}\n onClose={() => setRemoving(null)}\n destructive\n title={labels.removeTitle?.(removing?.name ?? \"\") ?? `Remove ${removing?.name ?? \"them\"}?`}\n description={labels.removeDescription ?? \"They lose access straight away.\"}\n confirmLabel={labels.removeConfirm ?? \"Remove member\"}\n onConfirm={async () => {\n const member = removing;\n if (!member) return;\n await onRemove?.(member);\n setMembers((current) => current.filter((entry) => entry.email !== member.email));\n }}\n />\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, Card, Code, ConfirmDialog, cx, EmptyState, Field, Input, Select, SettingsRow, Text } from \"@openwarelabs/ui\";\n\nimport { ArchiveIcon, ArchiveRestoreIcon, ArrowLeftRightIcon, Trash2Icon } from \"@blocks/shared/icons\";\nimport type { Settings05Props } from \"./Settings05.types\";\n\n/** A project's danger zone on a card edged in red: transfer it, archive it, or delete it after typing its name. */\nexport function Settings05({\n title,\n description,\n project,\n owner: initialOwner,\n currentUserName,\n admins,\n contents = [],\n defaultArchived = false,\n onTransfer,\n onArchiveChange,\n onDelete,\n onBack,\n labels = {},\n className,\n ...props\n}: Settings05Props) {\n const titleId = useId();\n const [owner, setOwner] = useState(initialOwner);\n const [archived, setArchived] = useState(defaultArchived);\n const [deleted, setDeleted] = useState(false);\n const [transferring, setTransferring] = useState(false);\n const [newOwner, setNewOwner] = useState(\"\");\n const [deleting, setDeleting] = useState(false);\n const [typed, setTyped] = useState(\"\");\n\n function toggleArchive() {\n const next = !archived;\n setArchived(next);\n // Archiving can be undone, so it happens straight away rather than asking first.\n onArchiveChange?.(next, () => setArchived(!next));\n }\n\n const deleteTitle = labels.deleteTitle ?? \"Delete project\";\n\n return (\n <section className={cx(\"ow-settings05\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-settings05__inner\">\n <div className=\"ow-settings05__header\">\n <Text variant=\"dialog-title\" as=\"h2\" id={titleId}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-settings05__text\">\n {description}\n </Text>\n ) : null}\n </div>\n\n {deleted ? (\n <Card className=\"ow-settings05__gone\">\n <EmptyState\n icon={<Trash2Icon size={20} />}\n title={labels.deletedTitle?.(project) ?? `${project} was deleted`}\n description={labels.deletedDescription ?? \"Its data and settings are gone.\"}\n actions={\n <Button\n onClick={() => {\n if (onBack) {\n onBack();\n return;\n }\n setDeleted(false);\n setArchived(false);\n }}\n >\n {labels.back ?? \"Back to projects\"}\n </Button>\n }\n />\n </Card>\n ) : (\n <Card padding=\"none\" className=\"ow-settings05__card\">\n <SettingsRow\n label={labels.transferTitle ?? \"Transfer ownership\"}\n description={\n owner === currentUserName\n ? (labels.transferYou ?? \"You own it now. Hand it to another admin and stay on as a member.\")\n : (labels.transferOther?.(owner) ?? `${owner} owns it now. They can hand it back at any time.`)\n }\n >\n <Button\n size=\"sm\"\n startIcon={<ArrowLeftRightIcon size={16} />}\n onClick={() => {\n setNewOwner(\"\");\n setTransferring(true);\n }}\n >\n {labels.transfer ?? \"Transfer\"}\n </Button>\n </SettingsRow>\n <SettingsRow\n label={archived ? (labels.restoreTitle ?? \"Restore project\") : (labels.archiveTitle ?? \"Archive project\")}\n description={\n archived\n ? (labels.archivedDescription ?? \"It's archived: it's paused and hidden from the sidebar.\")\n : (labels.archiveDescription ?? \"Pauses the project and hides it from the sidebar. You can restore it at any time.\")\n }\n >\n <Button size=\"sm\" startIcon={archived ? <ArchiveRestoreIcon size={16} /> : <ArchiveIcon size={16} />} onClick={toggleArchive}>\n {archived ? (labels.restore ?? \"Restore\") : (labels.archive ?? \"Archive\")}\n </Button>\n </SettingsRow>\n <SettingsRow\n label={deleteTitle}\n description={labels.deleteDescription ?? \"Deletes it for good, with everything in it. This can't be undone.\"}\n >\n <Button\n size=\"sm\"\n variant=\"danger\"\n startIcon={<Trash2Icon size={16} />}\n onClick={() => {\n setTyped(\"\");\n setDeleting(true);\n }}\n >\n {deleteTitle}\n </Button>\n </SettingsRow>\n </Card>\n )}\n </div>\n\n <ConfirmDialog\n open={transferring}\n onClose={() => setTransferring(false)}\n title={labels.transferConfirmTitle?.(project) ?? `Transfer ${project}?`}\n description={labels.transferConfirmDescription ?? \"The new owner can rename, transfer or delete it. You'll stay on as a member.\"}\n confirmLabel={labels.transferConfirm ?? \"Transfer ownership\"}\n confirmDisabled={!newOwner}\n onConfirm={async () => {\n await onTransfer?.(newOwner);\n setOwner(newOwner);\n }}\n >\n <Field label={labels.newOwner ?? \"New owner\"}>\n <Select value={newOwner} onChange={setNewOwner} options={admins} placeholder={labels.newOwnerPlaceholder ?? \"Choose an admin\"} />\n </Field>\n </ConfirmDialog>\n\n <ConfirmDialog\n open={deleting}\n onClose={() => setDeleting(false)}\n destructive\n title={labels.deleteConfirmTitle?.(project) ?? `Delete ${project}?`}\n description={labels.deleteConfirmDescription ?? \"This deletes the project for everyone. Along with it go:\"}\n confirmLabel={labels.deleteConfirm ?? \"Delete project\"}\n confirmDisabled={typed.trim() !== project}\n onConfirm={async () => {\n await onDelete?.();\n setDeleted(true);\n }}\n >\n {contents.length ? (\n <ul className=\"ow-settings05__contents\">\n {contents.map((item, index) => (\n <Text as=\"li\" tone=\"soft\" key={index}>\n <Text as=\"strong\" variant=\"label\" tone=\"default\" className=\"ow-settings05__count\">\n {item.count}\n </Text>{\" \"}\n {item.what}\n </Text>\n ))}\n </ul>\n ) : null}\n <Field\n label={\n labels.typeToConfirm ? (\n labels.typeToConfirm(<Code>{project}</Code>)\n ) : (\n <>\n Type <Code>{project}</Code> to confirm\n </>\n )\n }\n >\n <Input\n value={typed}\n onChange={(event) => setTyped(event.target.value)}\n autoComplete=\"off\"\n spellCheck={false}\n className=\"ow-settings05__confirm\"\n />\n </Field>\n </ConfirmDialog>\n </section>\n );\n}\n", "import { useId, type FormEvent } from \"react\";\n\nimport { Button, cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon } from \"@blocks/shared/icons\";\nimport type { Form01Props } from \"./Form01.types\";\n\n/** One column on the canvas: a back link, the page's heading, then the fields on a card with the action in its footer. */\nexport function Form01({ title, description, backLink, children, submitLabel, onSubmit, submitting = false, note, className, ...props }: Form01Props) {\n const titleId = useId();\n\n const submit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n onSubmit?.(event);\n };\n\n return (\n <div className={cx(\"ow-form01\", className)} {...props}>\n <div className=\"ow-form01__inner\">\n {backLink ? (\n <Link href={backLink.href} variant=\"standalone\" className=\"ow-form01__back\">\n <ArrowLeftIcon size={15} />\n {backLink.label}\n </Link>\n ) : null}\n <header className=\"ow-form01__header\">\n <Text variant=\"heading\" as=\"h1\" id={titleId}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-form01__lead\">\n {description}\n </Text>\n ) : null}\n </header>\n\n <form className=\"ow-form01__card\" noValidate onSubmit={submit} aria-labelledby={titleId}>\n <div className=\"ow-form01__fields\">{children}</div>\n\n <div className=\"ow-form01__footer\">\n {note ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-form01__note\">\n {note}\n </Text>\n ) : (\n <span />\n )}\n <Button type=\"submit\" variant=\"primary\" loading={submitting}>\n {submitLabel}\n </Button>\n </div>\n </form>\n </div>\n </div>\n );\n}\n", "import { useId, type FormEvent } from \"react\";\n\nimport { Button, Card, cx, Text } from \"@openwarelabs/ui\";\n\nimport type { Form02Props } from \"./Form02.types\";\n\n/** Sections down the page, each one's title and purpose on the left and its fields on a card on the right, with Discard and Save at the end. */\nexport function Form02({ title, description, sections, dirty, onSubmit, onDiscard, submitting = false, labels = {}, className, ...props }: Form02Props) {\n const id = useId();\n\n const submit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n onSubmit?.(event);\n };\n\n return (\n <div className={cx(\"ow-form02\", className)} {...props}>\n <form className=\"ow-form02__inner\" noValidate onSubmit={submit} aria-labelledby={`${id}-title`}>\n <header className=\"ow-form02__header\">\n <Text variant=\"heading\" as=\"h1\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-form02__lead\">\n {description}\n </Text>\n ) : null}\n </header>\n\n {sections.map((section, index) => (\n <section key={index} className=\"ow-form02__section\" aria-labelledby={`${id}-section-${index}`}>\n <div className=\"ow-form02__intro\">\n <Text variant=\"card-title\" as=\"h2\" id={`${id}-section-${index}`}>\n {section.title}\n </Text>\n {section.description ? (\n <Text variant=\"copy\" className=\"ow-form02__section-text\">\n {section.description}\n </Text>\n ) : null}\n </div>\n <Card padding=\"none\" className=\"ow-form02__card\">\n <div className=\"ow-form02__fields\">{section.content}</div>\n </Card>\n </section>\n ))}\n\n <div className=\"ow-form02__actions\">\n <Text variant=\"caption\" as=\"p\" className=\"ow-form02__status\" aria-live=\"polite\">\n {dirty ? (labels.unsaved ?? \"You have unsaved changes.\") : (labels.saved ?? \"Everything is saved.\")}\n </Text>\n <Button type=\"button\" disabled={!dirty || submitting} onClick={onDiscard}>\n {labels.discard ?? \"Discard\"}\n </Button>\n <Button type=\"submit\" variant=\"primary\" disabled={!dirty} loading={submitting}>\n {labels.save ?? \"Save changes\"}\n </Button>\n </div>\n </form>\n </div>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Steps, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon, ArrowRightIcon, CheckIcon } from \"@blocks/shared/icons\";\nimport type { Form03Props } from \"./Form03.types\";\n\n/** A longer form split into steps on one card: the progress at the top, one step's fields in the middle, Back and Continue at the bottom. */\nexport function Form03({ title, description, steps, submitLabel, onSubmit, onStepChange, labels = {}, className, ...props }: Form03Props) {\n const id = useId();\n const [step, setStep] = useState(0);\n const [saving, setSaving] = useState(false);\n const shownStep = useRef(step);\n\n const last = steps.length - 1;\n const current = steps[step];\n\n // After moving between steps, put focus on the new step's heading so it's read out. Not on first load.\n useEffect(() => {\n if (shownStep.current === step) return;\n shownStep.current = step;\n document.getElementById(`${id}-step`)?.focus();\n }, [step, id]);\n\n function goTo(next: number) {\n setStep(next);\n onStepChange?.(next);\n }\n\n async function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n if (saving || current?.validate?.() === false) return;\n if (step < last) {\n goTo(step + 1);\n return;\n }\n setSaving(true);\n try {\n await onSubmit?.();\n goTo(0);\n } finally {\n setSaving(false);\n }\n }\n\n return (\n <div className={cx(\"ow-form03\", className)} {...props}>\n <form className=\"ow-form03__card\" noValidate onSubmit={submit} aria-labelledby={`${id}-title`}>\n <header className=\"ow-form03__header\">\n <Text variant=\"heading\" as=\"h1\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-form03__lead\">\n {description}\n </Text>\n ) : null}\n <Steps\n items={steps.map((entry) => ({ title: entry.title, description: entry.description }))}\n current={step}\n orientation=\"horizontal\"\n label={labels.progress ?? \"Progress\"}\n className=\"ow-form03__progress\"\n />\n </header>\n\n <div className=\"ow-form03__body\">\n <Text variant=\"card-title\" as=\"h2\" id={`${id}-step`} tabIndex={-1} className=\"ow-form03__step-title\">\n <Text variant=\"caption\">\n {labels.stepOf ? (\n labels.stepOf(step + 1, steps.length)\n ) : (\n <>\n Step {step + 1} of {steps.length}\n </>\n )}\n </Text>\n {current?.heading}\n </Text>\n\n {current?.content ? <div className=\"ow-form03__fields\">{current.content}</div> : null}\n\n {current?.review ? (\n <dl className=\"ow-form03__review\">\n {current.review.map((row) => (\n <div key={row.label} className=\"ow-form03__review-row\">\n <Text as=\"dt\" variant=\"caption\" className=\"ow-form03__review-label\">\n {row.label}\n </Text>\n <Text as=\"dd\" className=\"ow-form03__review-value\">\n {row.value}\n </Text>\n <dd className=\"ow-form03__review-edit\">\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => goTo(row.step)}\n aria-label={labels.editLabel?.(row.label) ?? `Edit ${row.label.toLowerCase()}`}\n >\n {labels.edit ?? \"Edit\"}\n </Button>\n </dd>\n </div>\n ))}\n </dl>\n ) : null}\n </div>\n\n <div className=\"ow-form03__footer\">\n {step > 0 ? (\n <Button type=\"button\" startIcon={<ArrowLeftIcon size={16} />} onClick={() => goTo(step - 1)} disabled={saving}>\n {labels.back ?? \"Back\"}\n </Button>\n ) : (\n <span />\n )}\n {step < last ? (\n <Button type=\"submit\" variant=\"primary\" endIcon={<ArrowRightIcon size={16} />}>\n {labels.continue ?? \"Continue\"}\n </Button>\n ) : (\n <Button type=\"submit\" variant=\"primary\" startIcon={<CheckIcon size={16} />} loading={saving}>\n {submitLabel}\n </Button>\n )}\n </div>\n </form>\n </div>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Button, buttonClassName, cx, ProgressBar, Steps, Text, type StepItem } from \"@openwarelabs/ui\";\n\nimport { RotateCcwIcon } from \"@blocks/shared/icons\";\nimport type { Onboarding01Props } from \"./Onboarding01.types\";\n\n/** A first-run checklist on a panel: what it's for and the progress on the left, the steps on the right with the current one's action beside it. */\nexport function Onboarding01({\n eyebrow,\n title,\n description,\n finishedTitle,\n finishedDescription,\n steps,\n stepsTitle,\n defaultCompleted = 0,\n onStepComplete,\n help,\n finishedAction,\n labels = {},\n className,\n ...props\n}: Onboarding01Props) {\n const titleId = useId();\n const [current, setCurrent] = useState(defaultCompleted);\n const [working, setWorking] = useState(false);\n const nextAction = useRef<HTMLElement | null>(null);\n const moved = useRef(false);\n\n const finished = current >= steps.length;\n\n // The finished step's button goes away; keep the keyboard on the next one.\n useEffect(() => {\n if (moved.current) nextAction.current?.focus();\n moved.current = false;\n }, [current]);\n\n async function complete(index: number) {\n setWorking(true);\n try {\n await steps[index]?.onAction?.();\n } catch {\n return;\n } finally {\n setWorking(false);\n }\n moved.current = true;\n setCurrent(index + 1);\n onStepComplete?.(index);\n }\n\n const keepRef = (node: HTMLElement | null) => {\n nextAction.current = node;\n };\n\n // Steps shows each step's button only while it's the current one, so only that one ever renders.\n const items: StepItem[] = steps.map((step, index) => ({\n title: step.title,\n description: step.description,\n action: (\n <Button ref={keepRef} size=\"sm\" variant=\"primary\" loading={working} onClick={() => void complete(index)}>\n {step.actionLabel}\n </Button>\n ),\n }));\n\n const heading = finished ? (finishedTitle ?? title) : title;\n const lead = finished ? (finishedDescription ?? description) : description;\n\n return (\n <section className={cx(\"ow-onboarding01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-onboarding01__panel\">\n <div className=\"ow-onboarding01__intro\">\n {eyebrow ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-onboarding01__eyebrow\">\n <span className=\"ow-onboarding01__dot\" aria-hidden=\"true\" />\n {eyebrow}\n </Text>\n ) : null}\n <Text variant=\"heading\" as=\"h2\" id={titleId} className=\"ow-onboarding01__title\">\n {heading}\n </Text>\n {lead ? (\n <Text variant=\"copy\" className=\"ow-onboarding01__lead\">\n {lead}\n </Text>\n ) : null}\n\n <ProgressBar\n className=\"ow-onboarding01__progress\"\n label={labels.progress ?? \"Setup\"}\n value={current}\n max={steps.length}\n valueLabel={`${Math.round((current / steps.length) * 100)}%`}\n />\n\n {finished ? (\n <div className=\"ow-onboarding01__actions\">\n {finishedAction ? (\n finishedAction.href !== undefined ? (\n <a\n ref={keepRef}\n className={buttonClassName({ variant: \"primary\" })}\n href={finishedAction.href}\n target={finishedAction.target}\n rel={finishedAction.target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n aria-label={finishedAction[\"aria-label\"]}\n onClick={finishedAction.onClick}\n >\n {finishedAction.startIcon ? <span className=\"ow-button__icon\">{finishedAction.startIcon}</span> : null}\n {finishedAction.label}\n {finishedAction.endIcon ? <span className=\"ow-button__icon\">{finishedAction.endIcon}</span> : null}\n </a>\n ) : (\n <Button\n ref={keepRef}\n variant=\"primary\"\n startIcon={finishedAction.startIcon}\n endIcon={finishedAction.endIcon}\n aria-label={finishedAction[\"aria-label\"]}\n onClick={finishedAction.onClick}\n >\n {finishedAction.label}\n </Button>\n )\n ) : null}\n <Button variant=\"ghost\" startIcon={<RotateCcwIcon size={16} />} onClick={() => setCurrent(defaultCompleted)}>\n {labels.restart ?? \"Run setup again\"}\n </Button>\n </div>\n ) : help ? (\n <Text variant=\"copy\" className=\"ow-onboarding01__help\">\n {help}\n </Text>\n ) : null}\n </div>\n\n <Steps className=\"ow-onboarding01__steps\" title={stepsTitle} current={current} items={items} />\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Badge, Button, buttonClassName, ChoiceCard, cx, Steps, Text, type ButtonVariant } from \"@openwarelabs/ui\";\n\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { BlockAction } from \"@blocks/shared/shared.types\";\nimport type { Onboarding02Props } from \"./Onboarding02.types\";\n\n/** An action as a button of the default shape: a link styled as one when it has an href. */\nfunction ActionButton({ action, variant, size, className }: { action: BlockAction; variant: ButtonVariant; size?: \"sm\" | \"md\"; className?: string }) {\n if (action.href !== undefined) {\n return (\n <a\n className={cx(buttonClassName({ variant, size }), className)}\n href={action.href}\n target={action.target}\n rel={action.target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n aria-label={action[\"aria-label\"]}\n onClick={action.onClick}\n >\n {action.startIcon ? <span className=\"ow-button__icon\">{action.startIcon}</span> : null}\n {action.label}\n {action.endIcon ? <span className=\"ow-button__icon\">{action.endIcon}</span> : null}\n </a>\n );\n }\n return (\n <Button\n className={className}\n variant={variant}\n size={size}\n startIcon={action.startIcon}\n endIcon={action.endIcon}\n aria-label={action[\"aria-label\"]}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n );\n}\n\n/** A setup screen: the brand and progress along the top, two or three ChoiceCards for how to start, each opening a short page of its own. */\nexport function Onboarding02({\n brand,\n progress,\n skip,\n title,\n description,\n choices,\n note,\n doneTitle,\n doneDescription,\n doneAction,\n onFinish,\n labels = {},\n className,\n ...props\n}: Onboarding02Props) {\n // The choice whose page is open, or \"\" for the choice itself.\n const [view, setView] = useState(\"\");\n const [made, setMade] = useState<string | null>(null);\n const titleId = useId();\n const recommendedId = useId();\n const moved = useRef(false);\n\n // Each view replaces the last, so move focus to its heading for screen readers and keyboards.\n useEffect(() => {\n if (moved.current) document.getElementById(titleId)?.focus();\n }, [view, made, titleId]);\n\n const go = (next: string, name: string | null = null) => {\n moved.current = true;\n setView(next);\n setMade(name);\n };\n const back = () => go(\"\");\n const done = made !== null;\n const choice = choices.find((entry) => entry.id === view);\n\n const heading = done ? (doneTitle ? doneTitle(made) : `${made} is ready`) : choice ? choice.heading : title;\n const lead = done ? doneDescription : choice ? choice.lead : description;\n\n return (\n <div className={cx(\"ow-onboarding02\", className)} {...props}>\n <header className=\"ow-onboarding02__top\">\n <Text variant=\"card-title\" as=\"span\" className=\"ow-onboarding02__brand\">\n {brand.logo}\n {brand.name}\n </Text>\n {progress ? (\n <Steps\n className=\"ow-onboarding02__progress\"\n orientation=\"horizontal\"\n label={labels.progress ?? \"Setup\"}\n current={done ? progress.current + 1 : progress.current}\n items={progress.steps.map((step) => ({ title: step }))}\n />\n ) : null}\n {skip ? <ActionButton action={skip} variant=\"ghost\" size=\"sm\" className=\"ow-onboarding02__skip\" /> : null}\n </header>\n\n <main className=\"ow-onboarding02__body\">\n {done ? (\n <span className=\"ow-onboarding02__done-icon\" aria-hidden=\"true\">\n <CheckIcon size={22} />\n </span>\n ) : null}\n <Text variant=\"heading\" as=\"h2\" id={titleId} tabIndex={-1} className=\"ow-onboarding02__title\">\n {heading}\n </Text>\n {lead ? (\n <Text variant=\"copy\" className=\"ow-onboarding02__lead\">\n {lead}\n </Text>\n ) : null}\n\n <div className=\"ow-onboarding02__content\">\n {done ? (\n <div className=\"ow-onboarding02__done-actions\">\n {doneAction ? <ActionButton action={doneAction} variant=\"primary\" /> : null}\n <Button variant=\"ghost\" onClick={back}>\n {labels.startAgain ?? \"Start again\"}\n </Button>\n </div>\n ) : choice ? (\n choice.render({\n back,\n finish: (name) => {\n go(choice.id, name);\n onFinish?.(choice.id, name);\n },\n })\n ) : (\n <>\n <div className=\"ow-onboarding02__options\">\n {choices.map((entry) => (\n <div key={entry.id} className=\"ow-onboarding02__option\">\n <ChoiceCard\n icon={entry.icon}\n title={entry.title}\n description={entry.description}\n recommended={entry.recommended}\n aria-describedby={entry.recommended ? recommendedId : undefined}\n onClick={() => go(entry.id)}\n />\n {entry.recommended ? (\n <Badge id={recommendedId} className=\"ow-onboarding02__recommended\" size=\"sm\" variant=\"active\">\n {labels.recommended ?? \"Recommended\"}\n </Badge>\n ) : null}\n </div>\n ))}\n </div>\n {note ? (\n <Text variant=\"copy\" className=\"ow-onboarding02__note\">\n {note}\n </Text>\n ) : null}\n </>\n )}\n </div>\n </main>\n </div>\n );\n}\n", "import { useEffect, useRef, useState } from \"react\";\n\nimport { Button, cx, Dialog, Link, Text } from \"@openwarelabs/ui\";\n\nimport type { Onboarding03Props } from \"./Onboarding03.types\";\n\n/** A short dialog for what's new: a picture, a few changes with their icons, and one button to carry on. */\nexport function Onboarding03({\n eyebrow,\n title,\n description,\n visual,\n changes,\n link,\n open: openProp,\n defaultOpen = true,\n onOpenChange,\n labels = {},\n className,\n ...props\n}: Onboarding03Props) {\n const [openState, setOpenState] = useState(defaultOpen);\n const open = openProp ?? openState;\n const continueButton = useRef<HTMLButtonElement>(null);\n\n // The dialog focuses its first link as it opens; start on the button that carries on instead.\n useEffect(() => {\n if (!open) return;\n const frame = requestAnimationFrame(() => continueButton.current?.focus());\n return () => cancelAnimationFrame(frame);\n }, [open]);\n\n const close = () => {\n setOpenState(false);\n onOpenChange?.(false);\n };\n\n return (\n // Takes no room of its own: the dialog sits over the page it's placed in.\n <div className={cx(\"ow-onboarding03\", className)} {...props}>\n <Dialog\n open={open}\n onClose={close}\n width={480}\n className=\"ow-onboarding03__dialog\"\n title={\n <>\n {eyebrow ? (\n <Text variant=\"caption\" className=\"ow-onboarding03__eyebrow\">\n <span className=\"ow-onboarding03__eyebrow-dot\" aria-hidden=\"true\" />\n {eyebrow}\n </Text>\n ) : null}\n {title}\n </>\n }\n description={description}\n actions={\n <>\n {link ? (\n <Link href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n ) : (\n <span />\n )}\n <Button ref={continueButton} variant=\"primary\" onClick={close}>\n {labels.continue ?? \"Continue\"}\n </Button>\n </>\n }\n >\n {visual}\n <ul className=\"ow-onboarding03__changes\">\n {changes.map((change, index) => (\n <li key={index} className=\"ow-onboarding03__change\">\n {change.icon ? (\n <span className=\"ow-onboarding03__change-icon\" aria-hidden=\"true\">\n {change.icon}\n </span>\n ) : null}\n <span className=\"ow-onboarding03__change-text\">\n <Text variant=\"label\">{change.title}</Text>\n {change.description ? (\n <Text variant=\"copy\" as=\"span\">\n {change.description}\n </Text>\n ) : null}\n </span>\n </li>\n ))}\n </ul>\n </Dialog>\n </div>\n );\n}\n", "import { Avatar, Button, CommandPalette, cx, Drawer, Menu, NavItem, NavList, Text } from \"@openwarelabs/ui\";\n\nimport { useAppShell } from \"@blocks/shared/appShell\";\nimport { AppWorkspaceItems } from \"@blocks/shared/AppWorkspaceItems\";\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronsUpDownIcon, MenuIcon, SearchIcon } from \"@blocks/shared/icons\";\nimport type { Shell01Props } from \"./Shell01.types\";\n\n/**\n * An app's frame: navigation down the left on the canvas, the account at the bottom, and the page on a raised panel\n * beside it. On phones the sidebar folds into a drawer behind a bar at the top.\n */\nexport function Shell01({\n workspace,\n logo,\n workspaces,\n onNewWorkspace,\n navigation,\n current,\n defaultCurrent,\n onNavigate,\n account,\n accountMenu,\n commands,\n children,\n labels = {},\n className,\n ...props\n}: Shell01Props) {\n const shell = useAppShell({ current, defaultCurrent: defaultCurrent ?? navigation[0]?.items[0]?.id, onNavigate, commands });\n const searchLabel = labels.search ?? \"Search\";\n const openSearch = () => shell.setSearchOpen(true);\n\n // Everything in the sidebar; the same list goes in the drawer on phones.\n const sidebar = (\n <div className=\"ow-shell01__nav\">\n <Menu\n label={labels.workspaces ?? \"Workspaces\"}\n width={232}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" fullWidth className=\"ow-shell01__workspace\" endIcon={<ChevronsUpDownIcon size={15} />}>\n {logo}\n <Text as=\"span\" variant=\"card-title\" tone=\"default\" className=\"ow-shell01__workspace-name\">\n {workspace}\n </Text>\n </Button>\n }\n >\n <AppWorkspaceItems\n workspaces={workspaces ?? [{ name: workspace, current: true }]}\n onNewWorkspace={onNewWorkspace}\n heading={labels.workspaces ?? \"Workspaces\"}\n newWorkspace={labels.newWorkspace ?? \"New workspace\"}\n spacerClassName=\"ow-shell01__menu-spacer\"\n />\n </Menu>\n\n {shell.hasSearch ? (\n <Button size=\"sm\" fullWidth className=\"ow-shell01__search\" startIcon={<SearchIcon size={15} />} shortcut=\"\u2318K\" onClick={openSearch}>\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell01__search-text\">\n {searchLabel}\n </Text>\n </Button>\n ) : null}\n\n {navigation.map((group, index) => (\n <NavList key={index} label={group.label} heading={group.heading}>\n {group.items.map((item) => (\n <NavItem\n key={item.id}\n icon={item.icon}\n href={item.href}\n active={shell.active === item.id}\n end={item.count}\n onClick={() => shell.navigate(item.id)}\n >\n {item.label}\n </NavItem>\n ))}\n </NavList>\n ))}\n\n <div className=\"ow-shell01__account\">\n <Menu\n label={labels.account ?? \"Account\"}\n above\n width={232}\n trigger={\n <Button variant=\"ghost\" fullWidth className=\"ow-shell01__user\" endIcon={<ChevronsUpDownIcon size={15} />}>\n <Avatar name={account.name} src={account.avatar} size=\"sm\" />\n <span className=\"ow-shell01__user-text\">\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {account.name}\n </Text>\n {account.email ? (\n <Text variant=\"caption\" truncate>\n {account.email}\n </Text>\n ) : null}\n </span>\n </Button>\n }\n >\n <BlockMenuItems items={accountMenu ?? []} onAfterSelect={shell.afterMenuSelect} />\n </Menu>\n </div>\n </div>\n );\n\n return (\n <div className={cx(\"ow-shell01\", className)} {...props}>\n <aside className=\"ow-shell01__aside\" aria-label={labels.navigation ?? \"Main navigation\"}>\n {sidebar}\n </aside>\n\n <div className=\"ow-shell01__body\">\n <header className=\"ow-shell01__topbar\">\n <Button variant=\"ghost\" iconOnly aria-label={labels.openNavigation ?? \"Open navigation\"} onClick={() => shell.setNavOpen(true)}>\n <MenuIcon size={18} />\n </Button>\n <Text as=\"span\" variant=\"card-title\" className=\"ow-shell01__topbar-brand\">\n {logo}\n {workspace}\n </Text>\n {shell.hasSearch ? (\n <Button variant=\"ghost\" iconOnly aria-label={searchLabel} onClick={openSearch}>\n <SearchIcon size={18} />\n </Button>\n ) : (\n <span />\n )}\n </header>\n\n <main className=\"ow-shell01__panel\">{children}</main>\n </div>\n\n <Drawer open={shell.navOpen} onClose={() => shell.setNavOpen(false)} side=\"left\" size={300} title={labels.menu ?? \"Menu\"}>\n {sidebar}\n </Drawer>\n {shell.hasSearch ? (\n <CommandPalette\n open={shell.searchOpen}\n onClose={() => shell.setSearchOpen(false)}\n commands={shell.paletteCommands}\n placeholder={labels.searchPlaceholder ?? \"Search\u2026\"}\n />\n ) : null}\n </div>\n );\n}\n", "import { useEffect, useState } from \"react\";\n\nimport type { Command } from \"@openwarelabs/ui\";\n\nimport type { AppShellStateOptions, BlockMenuItem } from \"@blocks/shared/shared.types\";\n\n/**\n * What every app shell keeps: the current place (its own, unless `current` is given), the phone drawer, and the\n * search, which \u2318K or Ctrl+K opens from anywhere when there are commands. Choosing a place closes the drawer.\n */\nexport function useAppShell({ current, defaultCurrent, onNavigate, commands }: AppShellStateOptions) {\n const [ownCurrent, setOwnCurrent] = useState(defaultCurrent);\n const [navOpen, setNavOpen] = useState(false);\n const [searchOpen, setSearchOpen] = useState(false);\n const active = current ?? ownCurrent;\n const hasSearch = Boolean(commands?.length);\n\n useEffect(() => {\n if (!hasSearch) return;\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"k\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setSearchOpen(true);\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [hasSearch]);\n\n const navigate = (id: string) => {\n setOwnCurrent(id);\n onNavigate?.(id);\n setNavOpen(false);\n };\n\n const paletteCommands: Command[] = (commands ?? []).map(({ run, page, ...command }) => ({\n ...command,\n run: () => {\n run?.();\n if (page !== undefined) navigate(page);\n },\n }));\n\n /** For a menu item that opens a place. */\n const afterMenuSelect = (item: BlockMenuItem & { page?: string }) => {\n if (item.page !== undefined) navigate(item.page);\n };\n\n return { active, navigate, navOpen, setNavOpen, searchOpen, setSearchOpen, hasSearch, paletteCommands, afterMenuSelect };\n}\n", "import { MenuItem, MenuLabel, MenuSeparator } from \"@openwarelabs/ui\";\n\nimport { CheckIcon, PlusIcon } from \"@blocks/shared/icons\";\nimport type { AppWorkspaceItemsProps } from \"@blocks/shared/shared.types\";\n\n/** The workspace menu's items: its heading, each workspace with the current one ticked, then a new one. */\nexport function AppWorkspaceItems({ workspaces, onNewWorkspace, heading, newWorkspace, spacerClassName }: AppWorkspaceItemsProps) {\n return (\n <>\n <MenuLabel>{heading}</MenuLabel>\n {workspaces.map((workspace) => (\n <MenuItem\n key={workspace.name}\n icon={workspace.current ? <CheckIcon size={15} /> : <span className={spacerClassName} />}\n onSelect={workspace.onSelect}\n >\n {workspace.name}\n </MenuItem>\n ))}\n <MenuSeparator />\n <MenuItem icon={<PlusIcon size={15} />} onSelect={onNewWorkspace}>\n {newWorkspace}\n </MenuItem>\n </>\n );\n}\n", "import { Fragment } from \"react\";\n\nimport { MenuItem, MenuSeparator } from \"@openwarelabs/ui\";\n\nimport type { BlockMenuItemsProps } from \"@blocks/shared/shared.types\";\n\n/** A menu's items, each a MenuItem, with a separator before those that start a new group. */\nexport function BlockMenuItems({ items, onAfterSelect }: BlockMenuItemsProps) {\n return (\n <>\n {items.map((item, index) => (\n <Fragment key={index}>\n {item.separatorBefore ? <MenuSeparator /> : null}\n <MenuItem\n icon={item.icon}\n disabled={item.disabled}\n destructive={item.destructive}\n onSelect={\n item.onSelect || onAfterSelect\n ? () => {\n item.onSelect?.();\n onAfterSelect?.(item);\n }\n : undefined\n }\n >\n {item.label}\n </MenuItem>\n </Fragment>\n ))}\n </>\n );\n}\n", "import { Avatar, Button, CommandPalette, cx, Drawer, Menu, MenuLabel, NavItem, NavList, Text } from \"@openwarelabs/ui\";\n\nimport { useAppShell } from \"@blocks/shared/appShell\";\nimport { AppWorkspaceItems } from \"@blocks/shared/AppWorkspaceItems\";\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronsUpDownIcon, MenuIcon, SearchIcon } from \"@blocks/shared/icons\";\nimport type { Shell02Props } from \"./Shell02.types\";\n\n/**\n * An app's frame for a few sections: the workspace, the sections and the account across the top on the canvas, and\n * the page on a raised panel under them. Under 1024px the search folds to its icon; on phones the sections and the\n * account move into a drawer.\n */\nexport function Shell02({\n workspace,\n logo,\n workspaces,\n onNewWorkspace,\n navigation,\n current,\n defaultCurrent,\n onNavigate,\n account,\n accountMenu = [],\n commands,\n children,\n labels = {},\n className,\n ...props\n}: Shell02Props) {\n const shell = useAppShell({ current, defaultCurrent: defaultCurrent ?? navigation[0]?.id, onNavigate, commands });\n const searchLabel = labels.search ?? \"Search\";\n const navigationLabel = labels.navigation ?? \"Main navigation\";\n const accountLabel = labels.account ?? \"Account\";\n const openSearch = () => shell.setSearchOpen(true);\n\n const items = (orientation: \"horizontal\" | \"vertical\") =>\n navigation.map((item) => (\n <NavItem\n key={item.id}\n icon={orientation === \"vertical\" ? item.icon : undefined}\n href={item.href}\n active={shell.active === item.id}\n end={item.count}\n onClick={() => shell.navigate(item.id)}\n >\n {item.label}\n </NavItem>\n ));\n\n return (\n <div className={cx(\"ow-shell02\", className)} {...props}>\n <header className=\"ow-shell02__header\">\n <Menu\n label={labels.workspaces ?? \"Workspaces\"}\n width={232}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" className=\"ow-shell02__workspace\" endIcon={<ChevronsUpDownIcon size={15} />}>\n {logo}\n <Text as=\"span\" variant=\"card-title\" tone=\"default\">\n {workspace}\n </Text>\n </Button>\n }\n >\n <AppWorkspaceItems\n workspaces={workspaces ?? [{ name: workspace, current: true }]}\n onNewWorkspace={onNewWorkspace}\n heading={labels.workspaces ?? \"Workspaces\"}\n newWorkspace={labels.newWorkspace ?? \"New workspace\"}\n spacerClassName=\"ow-shell02__menu-spacer\"\n />\n </Menu>\n\n <NavList label={navigationLabel} orientation=\"horizontal\" className=\"ow-shell02__nav\">\n {items(\"horizontal\")}\n </NavList>\n\n <div className=\"ow-shell02__end\">\n {shell.hasSearch ? (\n <>\n <Button size=\"sm\" className=\"ow-shell02__search\" startIcon={<SearchIcon size={15} />} shortcut=\"\u2318K\" onClick={openSearch}>\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell02__search-text\">\n {searchLabel}\n </Text>\n </Button>\n {/* Under 1024px wide the search field folds to its icon. */}\n <Button variant=\"ghost\" iconOnly className=\"ow-shell02__search-icon\" aria-label={searchLabel} onClick={openSearch}>\n <SearchIcon size={18} />\n </Button>\n </>\n ) : null}\n <span className=\"ow-shell02__account\">\n <Menu\n label={accountLabel}\n align=\"end\"\n width={232}\n trigger={\n <Button variant=\"ghost\" iconOnly aria-label={labels.accountButton?.(account.name) ?? `${accountLabel}: ${account.name}`}>\n <Avatar name={account.name} src={account.avatar} size=\"md\" />\n </Button>\n }\n >\n {account.email ? <MenuLabel>{account.email}</MenuLabel> : null}\n <BlockMenuItems items={accountMenu} onAfterSelect={shell.afterMenuSelect} />\n </Menu>\n </span>\n <span className=\"ow-shell02__menu-button\">\n <Button variant=\"ghost\" iconOnly aria-label={labels.openNavigation ?? \"Open navigation\"} onClick={() => shell.setNavOpen(true)}>\n <MenuIcon size={18} />\n </Button>\n </span>\n </div>\n </header>\n\n <main className=\"ow-shell02__panel\">\n <div className=\"ow-shell02__page\">{children}</div>\n </main>\n\n <Drawer open={shell.navOpen} onClose={() => shell.setNavOpen(false)} side=\"right\" size={300} title={labels.menu ?? \"Menu\"}>\n <div className=\"ow-shell02__drawer\">\n <NavList label={navigationLabel}>{items(\"vertical\")}</NavList>\n <div className=\"ow-shell02__drawer-account\">\n <Menu\n label={accountLabel}\n above\n width={232}\n trigger={\n <Button variant=\"ghost\" fullWidth className=\"ow-shell02__user\" endIcon={<ChevronsUpDownIcon size={15} />}>\n <Avatar name={account.name} src={account.avatar} size=\"sm\" />\n <span className=\"ow-shell02__user-text\">\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {account.name}\n </Text>\n {account.email ? (\n <Text variant=\"caption\" truncate>\n {account.email}\n </Text>\n ) : null}\n </span>\n </Button>\n }\n >\n <BlockMenuItems items={accountMenu} onAfterSelect={shell.afterMenuSelect} />\n </Menu>\n </div>\n </div>\n </Drawer>\n {shell.hasSearch ? (\n <CommandPalette\n open={shell.searchOpen}\n onClose={() => shell.setSearchOpen(false)}\n commands={shell.paletteCommands}\n placeholder={labels.searchPlaceholder ?? \"Search\u2026\"}\n />\n ) : null}\n </div>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Avatar, Badge, Button, cx, Menu, NavItem, ScrollShadow, SearchField, Text, Tooltip } from \"@openwarelabs/ui\";\n\nimport { AppWorkspaceItems } from \"@blocks/shared/AppWorkspaceItems\";\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronsUpDownIcon, PanelRightIcon, PlusIcon, XIcon } from \"@blocks/shared/icons\";\nimport type { Shell03Props, Shell03View } from \"./Shell03.types\";\n\n/** On phones one pane shows at a time; under 1024px the inspector takes the item's place. */\n\nfunction useMediaQuery(query: string) {\n const [matches, setMatches] = useState(() => window.matchMedia(query).matches);\n useEffect(() => {\n const list = window.matchMedia(query);\n const update = () => setMatches(list.matches);\n update();\n list.addEventListener(\"change\", update);\n return () => list.removeEventListener(\"change\", update);\n }, [query]);\n return matches;\n}\n\n/**\n * Three panes: a list on the canvas, and the open item with an inspector beside it on a raised panel. Under 1024px\n * the inspector takes the item's place when asked for; on phones one pane shows at a time, each with a way back.\n */\nexport function Shell03({\n workspace,\n logo,\n workspaces,\n onNewWorkspace,\n listTitle,\n items,\n selected,\n defaultSelected,\n onSelect,\n newItem,\n account,\n accountMenu = [],\n children,\n inspectorTitle = \"Details\",\n inspector,\n defaultInspectorOpen = true,\n labels = {},\n className,\n ...props\n}: Shell03Props) {\n const id = useId();\n const [ownSelected, setOwnSelected] = useState(defaultSelected ?? items[0]?.id);\n const [view, setView] = useState<Shell03View>(\"list\");\n const [inspectorOpen, setInspectorOpen] = useState(defaultInspectorOpen);\n const [query, setQuery] = useState(\"\");\n const wide = useMediaQuery(\"(min-width: 1024px)\");\n\n const selectedId = selected ?? ownSelected;\n const item = items.find((entry) => entry.id === selectedId);\n const visible = items.filter((entry) => entry.label.toLowerCase().includes(query.trim().toLowerCase()));\n\n // When a narrow screen swaps panes, take focus to the new pane's heading so keyboards and screen readers follow.\n const itemRef = useRef<HTMLElement>(null);\n const inspectorRef = useRef<HTMLElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const moved = useRef(false);\n useEffect(() => {\n if (!moved.current) return;\n if (view === \"item\") itemRef.current?.querySelector<HTMLElement>(\"h1\")?.focus();\n if (view === \"inspector\") inspectorRef.current?.querySelector<HTMLElement>(\"h2\")?.focus();\n if (view === \"list\") listRef.current?.querySelector<HTMLElement>('[aria-current=\"page\"]')?.focus();\n }, [view]);\n const go = (next: Shell03View) => {\n moved.current = true;\n setView(next);\n };\n\n const open = (next: string) => {\n setOwnSelected(next);\n onSelect?.(next);\n go(\"item\");\n };\n const showDetails = () => (wide ? setInspectorOpen((current) => !current) : go(\"inspector\"));\n const detailsLabel = wide && inspectorOpen ? (labels.hideDetails ?? \"Hide details\") : (labels.showDetails ?? \"Show details\");\n const filterLabel = labels.filter ?? \"Filter\";\n\n return (\n <div className={cx(\"ow-shell03\", className)} data-view={view} data-inspector={inspectorOpen ? \"open\" : \"closed\"} {...props}>\n <div ref={listRef} className=\"ow-shell03__list\">\n <Menu\n label={labels.workspaces ?? \"Workspaces\"}\n width={232}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" fullWidth className=\"ow-shell03__workspace\" endIcon={<ChevronsUpDownIcon size={15} />}>\n {logo}\n <Text as=\"span\" variant=\"card-title\" tone=\"default\" className=\"ow-shell03__workspace-name\">\n {workspace}\n </Text>\n </Button>\n }\n >\n <AppWorkspaceItems\n workspaces={workspaces ?? [{ name: workspace, current: true }]}\n onNewWorkspace={onNewWorkspace}\n heading={labels.workspaces ?? \"Workspaces\"}\n newWorkspace={labels.newWorkspace ?? \"New workspace\"}\n spacerClassName=\"ow-shell03__menu-spacer\"\n />\n </Menu>\n\n <div className=\"ow-shell03__list-heading\">\n <Text variant=\"label\">\n {listTitle}\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell03__list-count\">\n {items.length}\n </Text>\n </Text>\n {newItem ? (\n <Tooltip label={newItem.label}>\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={newItem.label} onClick={newItem.onClick}>\n <PlusIcon size={16} />\n </Button>\n </Tooltip>\n ) : null}\n </div>\n\n <SearchField size=\"sm\" className=\"ow-shell03__search\" placeholder={filterLabel} aria-label={filterLabel} value={query} onChange={setQuery} />\n\n <ScrollShadow className=\"ow-shell03__scroll\">\n <nav aria-label={listTitle}>\n {visible.length ? (\n <ul className=\"ow-shell03__projects\">\n {visible.map((entry) => (\n <li key={entry.id}>\n <NavItem\n className=\"ow-shell03__project\"\n icon={entry.icon}\n active={entry.id === selectedId}\n end={\n entry.status ? (\n <Badge size=\"sm\" variant={entry.status.tone ?? \"neutral\"}>\n {entry.status.label}\n </Badge>\n ) : undefined\n }\n onClick={() => open(entry.id)}\n >\n {/* The name takes the item's own type, which turns heavier on the open one. */}\n <span className=\"ow-shell03__project-text\">\n <span className=\"ow-shell03__project-name\">{entry.label}</span>\n {entry.caption !== undefined ? (\n <Text variant=\"caption\" truncate>\n {entry.caption}\n </Text>\n ) : null}\n </span>\n </NavItem>\n </li>\n ))}\n </ul>\n ) : (\n <Text variant=\"copy\" className=\"ow-shell03__no-match\">\n {labels.noMatch ? labels.noMatch(query.trim()) : <>Nothing matches \u201C{query.trim()}\u201D.</>}\n </Text>\n )}\n </nav>\n </ScrollShadow>\n\n <Menu\n label={labels.account ?? \"Account\"}\n above\n width={232}\n trigger={\n <Button variant=\"ghost\" fullWidth className=\"ow-shell03__user\" endIcon={<ChevronsUpDownIcon size={15} />}>\n <Avatar name={account.name} src={account.avatar} size=\"sm\" />\n <span className=\"ow-shell03__user-text\">\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {account.name}\n </Text>\n {account.email ? (\n <Text variant=\"caption\" truncate>\n {account.email}\n </Text>\n ) : null}\n </span>\n </Button>\n }\n >\n <BlockMenuItems items={accountMenu} />\n </Menu>\n </div>\n\n <div className=\"ow-shell03__panel\">\n <main ref={itemRef} className=\"ow-shell03__item\">\n <div className=\"ow-shell03__toolbar\">\n <span className=\"ow-shell03__back\">\n <Button variant=\"ghost\" size=\"sm\" startIcon={<ChevronLeftIcon size={16} />} onClick={() => go(\"list\")}>\n {listTitle}\n </Button>\n </span>\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell03__crumbs\" aria-hidden=\"true\">\n {listTitle}\n <ChevronRightIcon size={14} />\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {item?.label}\n </Text>\n </Text>\n {inspector ? (\n <Tooltip label={detailsLabel}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={detailsLabel}\n aria-expanded={wide ? inspectorOpen : undefined}\n onClick={showDetails}\n >\n <PanelRightIcon size={16} />\n </Button>\n </Tooltip>\n ) : null}\n </div>\n\n <div className=\"ow-shell03__content\">{children}</div>\n </main>\n\n {inspector ? (\n <aside ref={inspectorRef} className=\"ow-shell03__inspector\" aria-labelledby={`${id}-details`}>\n <div className=\"ow-shell03__inspector-header\">\n <span className=\"ow-shell03__inspector-back\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.backTo?.(item?.label ?? listTitle) ?? `Back to ${item?.label ?? listTitle}`}\n onClick={() => go(\"item\")}\n >\n <ChevronLeftIcon size={16} />\n </Button>\n </span>\n <Text as=\"h2\" variant=\"card-title\" id={`${id}-details`} tabIndex={-1} className=\"ow-shell03__inspector-title\">\n {inspectorTitle}\n </Text>\n <span className=\"ow-shell03__inspector-close\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.hideDetails ?? \"Hide details\"}\n onClick={() => setInspectorOpen(false)}\n >\n <XIcon size={16} />\n </Button>\n </span>\n </div>\n\n <div className=\"ow-shell03__inspector-body\">{inspector}</div>\n </aside>\n ) : null}\n </div>\n </div>\n );\n}\n", "import { Fragment, useId, useState, type ReactElement } from \"react\";\n\nimport { Avatar, Button, CommandPalette, cx, Drawer, Menu, NavItem, NavList, Text, Tooltip } from \"@openwarelabs/ui\";\n\nimport { useAppShell } from \"@blocks/shared/appShell\";\nimport { AppWorkspaceItems } from \"@blocks/shared/AppWorkspaceItems\";\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronRightIcon, ChevronsUpDownIcon, MenuIcon, PanelLeftCloseIcon, PanelLeftOpenIcon, SearchIcon } from \"@blocks/shared/icons\";\nimport type { Shell04Props } from \"./Shell04.types\";\n\n/** Names an item in a tooltip while the sidebar shows only its icon. */\nfunction Tip({ show, label, children }: { show: boolean; label: string; children: ReactElement }) {\n return show ? (\n <Tooltip label={label} placement=\"right\">\n {children}\n </Tooltip>\n ) : (\n children\n );\n}\n\n/**\n * An app's frame with a sidebar that folds down to its icons, from a button in the page's toolbar: the labels fade\n * and the edge closes over them, and each item is named in a tooltip. On phones the sidebar becomes a drawer.\n */\nexport function Shell04({\n workspace,\n logo,\n workspaces,\n onNewWorkspace,\n navigation,\n current,\n defaultCurrent,\n onNavigate,\n defaultCollapsed,\n onCollapsedChange,\n account,\n accountMenu,\n commands,\n breadcrumbs,\n children,\n labels = {},\n className,\n ...props\n}: Shell04Props) {\n const id = useId();\n const shell = useAppShell({ current, defaultCurrent: defaultCurrent ?? navigation[0]?.items[0]?.id, onNavigate, commands });\n // Folded on tablets to start with, open on desktops, unless told otherwise; nothing is remembered between visits.\n const [collapsed, setCollapsed] = useState(() => defaultCollapsed ?? window.matchMedia(\"(max-width: 1023px)\").matches);\n const toggle = () => {\n setCollapsed(!collapsed);\n onCollapsedChange?.(!collapsed);\n };\n const searchLabel = labels.search ?? \"Search\";\n const openSearch = () => shell.setSearchOpen(true);\n const foldLabel = collapsed ? (labels.expand ?? \"Expand sidebar\") : (labels.collapse ?? \"Collapse sidebar\");\n\n /** Everything in the sidebar; the same list goes in the drawer on phones, always unfolded there. */\n const sidebar = (folded: boolean) => (\n <div className=\"ow-shell04__nav\">\n <Tip show={folded} label={workspace}>\n <Menu\n label={labels.workspaces ?? \"Workspaces\"}\n width={232}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" fullWidth className=\"ow-shell04__workspace\" endIcon={<ChevronsUpDownIcon size={15} />}>\n {logo}\n <Text as=\"span\" variant=\"card-title\" tone=\"default\" className=\"ow-shell04__workspace-name ow-shell04__fade\">\n {workspace}\n </Text>\n </Button>\n }\n >\n <AppWorkspaceItems\n workspaces={workspaces ?? [{ name: workspace, current: true }]}\n onNewWorkspace={onNewWorkspace}\n heading={labels.workspaces ?? \"Workspaces\"}\n newWorkspace={labels.newWorkspace ?? \"New workspace\"}\n spacerClassName=\"ow-shell04__menu-spacer\"\n />\n </Menu>\n </Tip>\n\n {shell.hasSearch ? (\n <Tip show={folded} label={searchLabel}>\n <Button size=\"sm\" fullWidth className=\"ow-shell04__search\" startIcon={<SearchIcon size={15} />} shortcut=\"\u2318K\" onClick={openSearch}>\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell04__search-text ow-shell04__fade\">\n {searchLabel}\n </Text>\n </Button>\n </Tip>\n ) : null}\n\n {navigation.map((group, index) => (\n <NavList key={index} label={group.label} heading={group.heading}>\n {group.items.map((item) => (\n <Tip\n key={item.id}\n show={folded}\n label={typeof item.count === \"number\" || typeof item.count === \"string\" ? `${item.label} (${item.count})` : item.label}\n >\n <NavItem\n icon={\n <span className=\"ow-shell04__icon\">\n {item.icon}\n {item.unread ? <span className=\"ow-shell04__unread\" aria-hidden=\"true\" /> : null}\n </span>\n }\n href={item.href}\n active={shell.active === item.id}\n end={item.count}\n onClick={() => shell.navigate(item.id)}\n >\n {item.label}\n </NavItem>\n </Tip>\n ))}\n </NavList>\n ))}\n\n <div className=\"ow-shell04__account\">\n <Tip show={folded} label={account.name}>\n <Menu\n label={labels.account ?? \"Account\"}\n above\n width={232}\n trigger={\n <Button variant=\"ghost\" fullWidth className=\"ow-shell04__user\" endIcon={<ChevronsUpDownIcon size={15} />}>\n <Avatar name={account.name} src={account.avatar} size=\"sm\" />\n <span className=\"ow-shell04__user-text ow-shell04__fade\">\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {account.name}\n </Text>\n {account.email ? (\n <Text variant=\"caption\" truncate>\n {account.email}\n </Text>\n ) : null}\n </span>\n </Button>\n }\n >\n <BlockMenuItems items={accountMenu ?? []} onAfterSelect={shell.afterMenuSelect} />\n </Menu>\n </Tip>\n </div>\n </div>\n );\n\n return (\n <div className={cx(\"ow-shell04\", collapsed && \"ow-shell04--collapsed\", className)} {...props}>\n <aside id={`${id}-sidebar`} className=\"ow-shell04__aside\" aria-label={labels.navigation ?? \"Main navigation\"}>\n {sidebar(collapsed)}\n </aside>\n\n <div className=\"ow-shell04__body\">\n <header className=\"ow-shell04__topbar\">\n <Button variant=\"ghost\" iconOnly aria-label={labels.openNavigation ?? \"Open navigation\"} onClick={() => shell.setNavOpen(true)}>\n <MenuIcon size={18} />\n </Button>\n <Text as=\"span\" variant=\"card-title\" className=\"ow-shell04__topbar-brand\">\n {logo}\n {workspace}\n </Text>\n {shell.hasSearch ? (\n <Button variant=\"ghost\" iconOnly aria-label={searchLabel} onClick={openSearch}>\n <SearchIcon size={18} />\n </Button>\n ) : (\n <span />\n )}\n </header>\n\n <main className=\"ow-shell04__panel\">\n <div className=\"ow-shell04__toolbar\">\n <Tooltip label={foldLabel} placement=\"bottom\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={foldLabel}\n aria-expanded={!collapsed}\n aria-controls={`${id}-sidebar`}\n onClick={toggle}\n >\n {collapsed ? <PanelLeftOpenIcon size={16} /> : <PanelLeftCloseIcon size={16} />}\n </Button>\n </Tooltip>\n {breadcrumbs?.length ? (\n <>\n <span className=\"ow-shell04__toolbar-divider\" aria-hidden=\"true\" />\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell04__crumbs\">\n {breadcrumbs.slice(0, -1).map((crumb, index) => (\n <Fragment key={index}>\n {crumb}\n <ChevronRightIcon size={14} />\n </Fragment>\n ))}\n <Text as=\"span\" variant=\"label\" tone=\"default\">\n {breadcrumbs[breadcrumbs.length - 1]}\n </Text>\n </Text>\n </>\n ) : null}\n </div>\n\n <div className=\"ow-shell04__page\">{children}</div>\n </main>\n </div>\n\n <Drawer open={shell.navOpen} onClose={() => shell.setNavOpen(false)} side=\"left\" size={300} title={labels.menu ?? \"Menu\"}>\n {sidebar(false)}\n </Drawer>\n {shell.hasSearch ? (\n <CommandPalette\n open={shell.searchOpen}\n onClose={() => shell.setSearchOpen(false)}\n commands={shell.paletteCommands}\n placeholder={labels.searchPlaceholder ?? \"Search\u2026\"}\n />\n ) : null}\n </div>\n );\n}\n", "import { Badge, Button, cx, Menu, Text } from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { EllipsisIcon } from \"@blocks/shared/icons\";\nimport type { PageHeading01Props } from \"./PageHeading01.types\";\n\n/**\n * The top of a page on a raised panel: its name and state, one primary action and a menu for the rest, then a row\n * of facts. The page itself can carry on under it, on the same panel.\n */\nexport function PageHeading01({\n title,\n icon,\n status,\n description,\n primaryAction,\n menu,\n facts,\n children,\n labels = {},\n className,\n ...props\n}: PageHeading01Props) {\n return (\n <div className={cx(\"ow-page-heading01\", className)} {...props}>\n <div className=\"ow-page-heading01__panel\">\n <header className=\"ow-page-heading01__header\">\n <div className=\"ow-page-heading01__identity\">\n {icon ? (\n <span className=\"ow-page-heading01__tile\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n <div>\n <div className=\"ow-page-heading01__title-row\">\n <Text as=\"h1\" variant=\"heading\">\n {title}\n </Text>\n {status ? <Badge variant={status.tone ?? \"neutral\"}>{status.label}</Badge> : null}\n </div>\n {description ? (\n <Text variant=\"copy\" className=\"ow-page-heading01__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n </div>\n\n {menu?.length || primaryAction ? (\n <div className=\"ow-page-heading01__actions\">\n {menu?.length ? (\n <Menu\n label={labels.menu ?? \"Actions\"}\n align=\"end\"\n trigger={\n <Button iconOnly aria-label={labels.moreActions ?? \"More actions\"}>\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <BlockMenuItems items={menu} />\n </Menu>\n ) : null}\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n ) : null}\n </header>\n\n {facts?.length ? (\n <dl className=\"ow-page-heading01__facts\">\n {facts.map((fact, index) => (\n <div key={index} className=\"ow-page-heading01__fact\">\n <Text as=\"dt\" variant=\"caption\">\n {fact.label}\n </Text>\n <Text as=\"dd\" className=\"ow-page-heading01__value\">\n {fact.value}\n </Text>\n </div>\n ))}\n </dl>\n ) : null}\n\n {children}\n </div>\n </div>\n );\n}\n", "import { Avatar, AvatarGroup, Breadcrumbs, Button, cx, Tab, TabList, TabPanel, Tabs, Text } from \"@openwarelabs/ui\";\n\nimport type { PageHeading02Props } from \"./PageHeading02.types\";\n\n/** Breadcrumbs, the page's name and its action, then line tabs for its views that run edge to edge across the panel. */\nexport function PageHeading02({\n title,\n description,\n breadcrumbs,\n members,\n primaryAction,\n tabs,\n value,\n defaultValue,\n onValueChange,\n labels = {},\n className,\n ...props\n}: PageHeading02Props) {\n const tabsLabel = labels.tabs ?? (typeof title === \"string\" ? title : \"Views\");\n return (\n <div className={cx(\"ow-page-heading02\", className)} {...props}>\n <div className=\"ow-page-heading02__panel\">\n <div className=\"ow-page-heading02__top\">\n {breadcrumbs?.length ? <Breadcrumbs items={breadcrumbs} /> : null}\n <div className=\"ow-page-heading02__header\">\n <div>\n <Text as=\"h1\" variant=\"heading\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-page-heading02__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {members?.length || primaryAction ? (\n <div className=\"ow-page-heading02__actions\">\n {members?.length ? (\n <AvatarGroup size=\"sm\" max={4} label={labels.members?.(members.length) ?? `${members.length} people`}>\n {members.map((member, index) => (\n <Avatar key={index} name={member.name} src={member.avatar} label={member.name} />\n ))}\n </AvatarGroup>\n ) : null}\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n </div>\n\n <Tabs\n variant=\"line\"\n value={value}\n defaultValue={defaultValue ?? tabs[0]?.value}\n onValueChange={onValueChange}\n className=\"ow-page-heading02__tabs\"\n >\n <TabList aria-label={tabsLabel}>\n {tabs.map((tab) => (\n <Tab key={tab.value} value={tab.value}>\n {tab.label}\n {tab.count !== undefined ? (\n <Text variant=\"badge\" tone=\"muted\" className=\"ow-page-heading02__count\">\n {tab.count}\n </Text>\n ) : null}\n </Tab>\n ))}\n </TabList>\n\n {tabs.map((tab) => (\n <TabPanel key={tab.value} value={tab.value} className=\"ow-page-heading02__tab-panel\">\n {tab.content}\n </TabPanel>\n ))}\n </Tabs>\n </div>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Avatar, Badge, Button, cx, EmptyState, Menu, MenuItem, SearchField, Tag, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { CheckIcon, ChevronDownIcon, MessageSquareIcon, SearchXIcon } from \"@blocks/shared/icons\";\nimport type { PageHeading03Filter, PageHeading03Props } from \"./PageHeading03.types\";\n\n/**\n * A page title over a search field and filter menus. The filters in use show as tags above the list they narrow,\n * with a count, and a list that matches nothing says so and offers to clear them.\n */\nexport function PageHeading03({\n title,\n description,\n primaryAction,\n facets,\n items,\n defaultFilters = [],\n onFiltersChange,\n emptyIcon,\n labels = {},\n className,\n ...props\n}: PageHeading03Props) {\n const [query, setQuery] = useState(\"\");\n const [filters, setFiltersState] = useState<PageHeading03Filter[]>(defaultFilters);\n\n const setFilters = (next: PageHeading03Filter[]) => {\n setFiltersState(next);\n onFiltersChange?.(next);\n };\n const isOn = (facet: string, value: string) => filters.some((filter) => filter.facet === facet && filter.value === value);\n const toggle = (facet: string, value: string) =>\n setFilters(isOn(facet, value) ? filters.filter((filter) => !(filter.facet === facet && filter.value === value)) : [...filters, { facet, value }]);\n const clearAll = () => {\n setFilters([]);\n setQuery(\"\");\n };\n\n // Choices in the same menu widen the list (any of them); different menus narrow it (all of them).\n const text = query.trim().toLowerCase();\n const shown = items.filter((item) => {\n const words = item.searchText ?? (typeof item.title === \"string\" ? [item.title] : []);\n const matchesText = !text || words.some((field) => field.toLowerCase().includes(text));\n const matchesFilters = facets.every((facet) => {\n const chosen = filters.filter((filter) => filter.facet === facet.id).map((filter) => filter.value);\n return chosen.length === 0 || chosen.includes(item.facets[facet.id] ?? \"\");\n });\n return matchesText && matchesFilters;\n });\n\n return (\n <div className={cx(\"ow-page-heading03\", className)} {...props}>\n <div className=\"ow-page-heading03__panel\">\n <div className=\"ow-page-heading03__top\">\n <div className=\"ow-page-heading03__header\">\n <div>\n <Text as=\"h1\" variant=\"heading\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-page-heading03__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n\n <div className=\"ow-page-heading03__toolbar\">\n <SearchField\n className=\"ow-page-heading03__search\"\n size=\"sm\"\n placeholder={labels.searchPlaceholder ?? \"Search\"}\n aria-label={labels.search ?? \"Search\"}\n value={query}\n onChange={setQuery}\n />\n {facets.map((facet) => {\n const count = filters.filter((filter) => filter.facet === facet.id).length;\n return (\n <Menu\n key={facet.id}\n label={facet.label}\n trigger={\n <Button size=\"sm\" endIcon={<ChevronDownIcon size={14} />}>\n {facet.label}\n {count ? ` \u00B7 ${count}` : \"\"}\n </Button>\n }\n >\n {facet.options.map((option) => (\n <MenuItem\n key={option}\n role=\"menuitemcheckbox\"\n aria-checked={isOn(facet.id, option)}\n icon={isOn(facet.id, option) ? <CheckIcon size={15} /> : <span className=\"ow-page-heading03__menu-spacer\" />}\n onClick={(event) => {\n // Keep the menu open, so several choices can be ticked in a row.\n event.preventDefault();\n toggle(facet.id, option);\n }}\n >\n {option}\n </MenuItem>\n ))}\n </Menu>\n );\n })}\n </div>\n\n <div className=\"ow-page-heading03__applied\">\n {filters.map((filter) => {\n const facet = facets.find((entry) => entry.id === filter.facet);\n const facetLabel = facet?.label ?? filter.facet;\n return (\n <Tag\n key={`${filter.facet}-${filter.value}`}\n variant=\"active\"\n removeLabel={labels.removeFilter?.(facetLabel, filter.value) ?? `${facetLabel} filter: ${filter.value}`}\n onRemove={() => toggle(filter.facet, filter.value)}\n >\n <span className=\"ow-page-heading03__tag-key\">{facetLabel}:</span> {filter.value}\n </Tag>\n );\n })}\n {filters.length ? (\n <Button variant=\"ghost\" size=\"sm\" onClick={() => setFilters([])}>\n {labels.clearFilters ?? \"Clear filters\"}\n </Button>\n ) : null}\n <Text variant=\"caption\" className=\"ow-page-heading03__count\" aria-live=\"polite\">\n {labels.count ? (\n labels.count(shown.length, items.length)\n ) : (\n <>\n {shown.length} of {items.length} shown\n </>\n )}\n </Text>\n </div>\n </div>\n\n {shown.length ? (\n <ul className=\"ow-page-heading03__list\" aria-label={labels.list ?? \"Results\"}>\n {shown.map((item) => (\n <li key={item.id} className=\"ow-page-heading03__row\">\n {item.icon ? (\n <span className=\"ow-page-heading03__agent\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : item.person ? (\n <Avatar name={item.person} />\n ) : (\n <span />\n )}\n <span className=\"ow-page-heading03__row-text\">\n <Text as=\"span\" className=\"ow-page-heading03__row-line\">\n {item.title}\n </Text>\n <Text variant=\"caption\" className=\"ow-page-heading03__row-line\">\n {item.reference !== undefined ? (\n <>\n <Text as=\"span\" variant=\"code\" className=\"ow-page-heading03__number\">\n {item.reference}\n </Text>{\" \"}\n {item.meta !== undefined ? \"\u00B7 \" : null}\n </>\n ) : null}\n {item.meta}\n </Text>\n </span>\n {item.status ? (\n <Badge size=\"sm\" variant={item.status.tone ?? \"neutral\"}>\n {item.status.label}\n </Badge>\n ) : (\n <span />\n )}\n <Text variant=\"caption\" className=\"ow-page-heading03__comments\" data-none={item.comments ? undefined : \"\"}>\n <MessageSquareIcon size={14} />\n {item.comments ?? 0}\n <VisuallyHidden>{labels.comments ?? \" comments\"}</VisuallyHidden>\n </Text>\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"ow-page-heading03__empty\">\n <EmptyState\n icon={emptyIcon ?? <SearchXIcon size={20} />}\n title={labels.emptyTitle ?? \"Nothing matches\"}\n description={labels.emptyDescription ?? \"Try a different search, or take a filter off to see more.\"}\n actions={<Button onClick={clearAll}>{labels.clearAll ?? \"Clear search and filters\"}</Button>}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Card, cx, SegmentedControl, Select, Stat, Text } from \"@openwarelabs/ui\";\n\nimport type { Dashboard01Filter, Dashboard01Props } from \"./Dashboard01.types\";\n\n/** One filter, keeping its own value unless it's given one. */\nfunction Filter({ filter }: { filter: Dashboard01Filter }) {\n const [own, setOwn] = useState(filter.defaultValue ?? filter.options[0]?.value ?? \"\");\n const value = filter.value ?? own;\n const change = (next: string) => {\n setOwn(next);\n filter.onChange?.(next);\n };\n return filter.kind === \"select\" ? (\n <Select className=\"ow-dashboard01__select\" size=\"sm\" aria-label={filter.label} value={value} onChange={change} options={filter.options} />\n ) : (\n <SegmentedControl size=\"sm\" aria-label={filter.label} options={filter.options} value={value} onChange={change} />\n );\n}\n\n/** A page title with its filters, a row of stats, then a chart across the page in a card. */\nexport function Dashboard01({ title, description, filters, stats, chart, labels = {}, className, ...props }: Dashboard01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-dashboard01\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-dashboard01__inner\">\n <div className=\"ow-dashboard01__header\">\n <div>\n <Text as=\"h1\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-dashboard01__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {filters?.length ? (\n <div className=\"ow-dashboard01__filters\">\n {filters.map((filter, index) => (\n <Filter key={index} filter={filter} />\n ))}\n </div>\n ) : null}\n </div>\n\n <div className=\"ow-dashboard01__stats\">\n {stats.map((stat, index) => (\n <Stat key={index} {...stat} />\n ))}\n </div>\n\n {chart ? (\n <Card className=\"ow-dashboard01__card\" padding=\"none\">\n <div className=\"ow-dashboard01__card-header\">\n <div>\n <Text as=\"h2\" variant=\"card-title\">\n {chart.title}\n </Text>\n {chart.description ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-dashboard01__summary\">\n {chart.description}\n </Text>\n ) : null}\n </div>\n {chart.legend?.length ? (\n <ul className=\"ow-dashboard01__legend\" aria-label={labels.legend ?? \"Legend\"}>\n {chart.legend.map((item, index) => (\n <Text key={index} as=\"li\" variant=\"caption\" className=\"ow-dashboard01__legend-item\">\n {item.swatch}\n {item.label}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n {chart.content}\n </Card>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, Card, cx, SegmentedControl, Stat, Table, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowUpIcon } from \"@blocks/shared/icons\";\nimport { hiddenColumns } from \"@blocks/shared/tableColumns\";\nimport type { Dashboard02Event, Dashboard02Props } from \"./Dashboard02.types\";\n\n/** The numbers on the left, with a table under them; what just happened in a feed on the right, grouped by day. */\nexport function Dashboard02<Row extends object>({\n title,\n description,\n stats,\n table,\n events,\n newEvents = [],\n eventFilters,\n labels = {},\n className,\n ...props\n}: Dashboard02Props<Row>) {\n const id = useId();\n const [filter, setFilter] = useState(\"all\");\n const [shownNew, setShownNew] = useState<Dashboard02Event[]>([]);\n const [fresh, setFresh] = useState<string[]>([]);\n const [earlier, setEarlier] = useState(false);\n\n const waiting = newEvents.filter((event) => !shownNew.some((shown) => shown.id === event.id));\n const showWaiting = () => {\n setShownNew((current) => [...waiting, ...current]);\n setFresh(waiting.map((event) => event.id));\n };\n\n const feed = [...shownNew, ...events];\n const dayOrder = feed.map((event) => event.day).filter((day, index, all) => all.indexOf(day) === index);\n const firstDay = dayOrder[0];\n const shown = feed.filter((event) => (filter === \"all\" || event.kind === filter) && (earlier || event.day === firstDay));\n const days = dayOrder.map((day) => ({ day, items: shown.filter((event) => event.day === day) })).filter((group) => group.items.length);\n\n return (\n <section className={cx(\"ow-dashboard02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-dashboard02__inner\">\n <div className=\"ow-dashboard02__header\">\n <div>\n <Text as=\"h1\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-dashboard02__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n </div>\n\n <div className=\"ow-dashboard02__stats\">\n {stats.map((stat, index) => (\n <Stat key={index} {...stat} />\n ))}\n </div>\n\n {table ? (\n <Card padding=\"none\" className=\"ow-dashboard02__card ow-dashboard02__table-card\" {...hiddenColumns(table.columns)}>\n <div className=\"ow-dashboard02__card-header\">\n <Text as=\"h2\" variant=\"card-title\">\n {table.title}\n </Text>\n </div>\n <Table\n caption={table.caption}\n hideCaption\n density=\"compact\"\n columns={table.columns}\n rows={table.rows}\n defaultSort={table.defaultSort}\n />\n </Card>\n ) : null}\n\n <Card padding=\"none\" className=\"ow-dashboard02__card ow-dashboard02__feed\">\n <section aria-labelledby={`${id}-feed`}>\n <div className=\"ow-dashboard02__card-header\">\n <Text as=\"h2\" variant=\"card-title\" id={`${id}-feed`}>\n {labels.feed ?? \"Activity\"}\n </Text>\n {eventFilters?.length ? (\n <SegmentedControl\n size=\"sm\"\n aria-label={labels.filters ?? \"Show\"}\n options={[{ value: \"all\", label: labels.all ?? \"All\" }, ...eventFilters]}\n value={filter}\n onChange={setFilter}\n />\n ) : null}\n </div>\n\n <div aria-live=\"polite\">\n {waiting.length ? (\n <div className=\"ow-dashboard02__new\">\n <Button size=\"sm\" variant=\"ghost\" startIcon={<ArrowUpIcon size={14} />} onClick={showWaiting}>\n {labels.newEvents ? labels.newEvents(waiting.length) : <>{waiting.length} new events</>}\n </Button>\n </div>\n ) : null}\n </div>\n\n {days.length ? (\n days.map((group) => (\n <div key={group.day}>\n <Text as=\"h3\" variant=\"caption\" className=\"ow-dashboard02__day\">\n {group.day}\n </Text>\n <ol className=\"ow-dashboard02__events\">\n {group.items.map((event) => (\n <li key={event.id} className=\"ow-dashboard02__event\" data-fresh={fresh.includes(event.id) || undefined}>\n <span className=\"ow-dashboard02__icon\" data-tone={event.tone} aria-hidden=\"true\">\n {event.icon}\n </span>\n <Text tone=\"soft\" className=\"ow-dashboard02__event-text\">\n {event.text}\n {event.meta !== undefined ? (\n <Text variant=\"caption\" className=\"ow-dashboard02__event-meta\">\n {event.meta}\n </Text>\n ) : null}\n </Text>\n </li>\n ))}\n </ol>\n </div>\n ))\n ) : (\n <Text variant=\"copy\" align=\"center\" className=\"ow-dashboard02__none\">\n {earlier\n ? (labels.none ?? \"Nothing like this happened this week.\")\n : (labels.noneToday ?? \"Nothing like this has happened today.\")}\n </Text>\n )}\n\n {earlier || dayOrder.length < 2 ? null : (\n <div className=\"ow-dashboard02__earlier\">\n <Button size=\"sm\" variant=\"ghost\" onClick={() => setEarlier(true)}>\n {labels.showEarlier ?? \"Show earlier activity\"}\n </Button>\n </div>\n )}\n </section>\n </Card>\n </div>\n </section>\n );\n}\n", "import type { BlockTableColumn } from \"@blocks/shared/shared.types\";\n\n/**\n * The data attributes that hide a table's columns on smaller screens: the positions of the columns to hide under\n * 1024px and under 760px, counted as the cells are (from 1, after `offset` cells of its own such as checkboxes).\n * Each block's stylesheet turns them into `display: none` for those cells.\n */\nexport function hiddenColumns<Row>(columns: Array<BlockTableColumn<Row>>, offset = 0) {\n const at = (size: \"tablet\" | \"phone\") =>\n columns\n .map((column, index) => (column.hideBelow === size ? String(index + 1 + offset) : null))\n .filter(Boolean)\n .join(\" \") || undefined;\n return { \"data-hide-tablet\": at(\"tablet\"), \"data-hide-phone\": at(\"phone\") };\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, Card, Checkbox, cx, Field, NumberField, Popover, ProgressBar, Table, Text } from \"@openwarelabs/ui\";\n\nimport { CircleCheckIcon, CreditCardIcon, PencilIcon, TriangleAlertIcon } from \"@blocks/shared/icons\";\nimport { hiddenColumns } from \"@blocks/shared/tableColumns\";\nimport type { Dashboard03Props } from \"./Dashboard03.types\";\n\n/**\n * This month's spend against a budget the person can change, the same spend broken down in a table, and what the\n * next invoice will be. The meter turns amber at 80% and red at the budget.\n */\nexport function Dashboard03<Row extends object>({\n title,\n description,\n spendTitle = \"Spend this month\",\n spent,\n forecast,\n daysLeft,\n budget: budgetProp,\n defaultBudget = 1000,\n onBudgetChange,\n budgetOption,\n budgetNote,\n currency = \"EUR\",\n locale = \"en-IE\",\n table,\n invoice,\n labels = {},\n className,\n ...props\n}: Dashboard03Props<Row>) {\n const id = useId();\n const [ownBudget, setOwnBudget] = useState(defaultBudget);\n const budget = budgetProp ?? ownBudget;\n const [draft, setDraft] = useState<number | null>(budget);\n const [optionChecked, setOptionChecked] = useState(budgetOption?.defaultChecked ?? false);\n const [editing, setEditing] = useState(false);\n\n const amount = new Intl.NumberFormat(locale, { style: \"currency\", currency });\n const whole = new Intl.NumberFormat(locale, { style: \"currency\", currency, maximumFractionDigits: 0 });\n const used = (spent / budget) * 100;\n const over = forecast - budget;\n const tone = used >= 100 ? \"danger\" : used >= 80 ? \"warning\" : \"primary\";\n const forecastInfo = { forecast: whole.format(forecast), difference: whole.format(Math.abs(over)), over: over > 0, optionChecked };\n\n const save = () => {\n if (!draft || draft < 1) return;\n setOwnBudget(draft);\n setEditing(false);\n onBudgetChange?.(draft, optionChecked);\n };\n\n return (\n <section className={cx(\"ow-dashboard03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-dashboard03__inner\">\n <div className=\"ow-dashboard03__header\">\n <Text as=\"h1\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-dashboard03__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-dashboard03__budget\">\n <div className=\"ow-dashboard03__card-header\">\n <Text as=\"h2\" variant=\"card-title\">\n {spendTitle}\n </Text>\n <Popover\n title={labels.budgetTitle ?? \"Monthly budget\"}\n width={300}\n open={editing}\n onOpenChange={(open) => {\n setEditing(open);\n if (open) setDraft(budget);\n }}\n placement=\"bottom-end\"\n trigger={\n <Button size=\"sm\" startIcon={<PencilIcon size={14} />}>\n {labels.editBudget ?? \"Edit budget\"}\n </Button>\n }\n >\n <form\n className=\"ow-dashboard03__popover-body\"\n onSubmit={(event) => {\n event.preventDefault();\n save();\n }}\n >\n <Field\n label={labels.budgetField ?? \"Budget\"}\n error={draft && draft >= 1 ? undefined : (labels.budgetError ?? `Enter a budget of at least ${whole.format(1)}.`)}\n >\n <NumberField\n value={draft}\n onChange={setDraft}\n min={0}\n step={100}\n formatOptions={{ style: \"currency\", currency, maximumFractionDigits: 0 }}\n />\n </Field>\n {budgetOption ? (\n <Checkbox\n checked={optionChecked}\n onChange={(event) => setOptionChecked(event.target.checked)}\n description={budgetOption.description}\n >\n {budgetOption.label}\n </Checkbox>\n ) : null}\n {budgetNote ? (\n <Text as=\"p\" variant=\"caption\">\n {budgetNote}\n </Text>\n ) : null}\n <div className=\"ow-dashboard03__popover-actions\">\n <Button size=\"sm\" variant=\"ghost\" onClick={() => setEditing(false)}>\n {labels.cancel ?? \"Cancel\"}\n </Button>\n <Button size=\"sm\" variant=\"primary\" type=\"submit\">\n {labels.saveBudget ?? \"Save budget\"}\n </Button>\n </div>\n </form>\n </Popover>\n </div>\n\n <div className=\"ow-dashboard03__figure\">\n <Text as=\"span\" variant=\"heading\" className=\"ow-dashboard03__spent\">\n {amount.format(spent)}\n </Text>\n <Text as=\"span\" tone=\"muted\">\n {labels.ofBudget ? labels.ofBudget(whole.format(budget)) : <>of a {whole.format(budget)} budget</>}\n </Text>\n </div>\n\n <div className=\"ow-dashboard03__meter\">\n <ProgressBar\n size=\"md\"\n tone={tone}\n value={Math.min(used, 100)}\n showValue={false}\n aria-label={labels.meter?.(Math.round(used)) ?? `${Math.round(used)}% of the budget spent`}\n />\n <div className=\"ow-dashboard03__scale\">\n <Text variant=\"caption\">{labels.used ? labels.used(Math.round(used)) : <>{Math.round(used)}% used</>}</Text>\n <Text variant=\"caption\">{labels.daysLeft ? labels.daysLeft(daysLeft) : <>{daysLeft} days left</>}</Text>\n </div>\n </div>\n\n <Text tone=\"soft\" className=\"ow-dashboard03__forecast\" data-tone={over > 0 ? \"warning\" : \"success\"}>\n {over > 0 ? <TriangleAlertIcon size={16} /> : <CircleCheckIcon size={16} />}\n <span>\n {labels.forecast ? (\n labels.forecast(forecastInfo)\n ) : (\n <>\n At this pace you'll spend about{\" \"}\n <Text as=\"strong\" variant=\"label\" tone=\"default\">\n {forecastInfo.forecast}\n </Text>{\" \"}\n by the end of the month, {forecastInfo.difference} {over > 0 ? \"over\" : \"under\"} budget.\n </>\n )}\n </span>\n </Text>\n </Card>\n\n {table ? (\n <Card padding=\"none\" className=\"ow-dashboard03__projects\" {...hiddenColumns(table.columns)}>\n <div className=\"ow-dashboard03__card-header\">\n <Text as=\"h2\" variant=\"card-title\">\n {table.title}\n </Text>\n {table.description ? <Text variant=\"caption\">{table.description}</Text> : null}\n </div>\n <Table\n caption={table.caption}\n hideCaption\n density=\"compact\"\n columns={table.columns}\n rows={table.rows}\n defaultSort={table.defaultSort}\n />\n </Card>\n ) : null}\n\n {invoice ? (\n <Card padding=\"none\" className=\"ow-dashboard03__invoice\">\n <div>\n <Text as=\"h2\" variant=\"card-title\">\n {invoice.title}\n </Text>\n {invoice.due ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-dashboard03__due\">\n {invoice.due}\n </Text>\n ) : null}\n </div>\n <dl className=\"ow-dashboard03__lines\">\n {invoice.lines.map((line, index) => (\n <div key={index} className=\"ow-dashboard03__line\">\n <Text as=\"dt\" tone=\"soft\" className=\"ow-dashboard03__item\">\n {line.label}\n {line.hint ? (\n <Text variant=\"caption\" className=\"ow-dashboard03__hint\">\n {line.hint}\n </Text>\n ) : null}\n </Text>\n <Text as=\"dd\" className=\"ow-dashboard03__amount\">\n {line.amount}\n </Text>\n </div>\n ))}\n {invoice.total ? (\n <div className=\"ow-dashboard03__line ow-dashboard03__total\">\n <Text as=\"dt\" variant=\"label\" className=\"ow-dashboard03__item\">\n {invoice.total.label}\n </Text>\n <Text as=\"dd\" variant=\"dialog-title\" className=\"ow-dashboard03__amount\">\n {invoice.total.amount}\n </Text>\n </div>\n ) : null}\n </dl>\n {invoice.note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-dashboard03__note\">\n {invoice.note}\n </Text>\n ) : null}\n\n {invoice.payment ? (\n <div className=\"ow-dashboard03__payment\">\n <span className=\"ow-dashboard03__card-mark\" aria-hidden=\"true\">\n <CreditCardIcon size={15} />\n </span>\n <span className=\"ow-dashboard03__payment-text\">\n <Text as=\"span\">{invoice.payment.label}</Text>\n {invoice.payment.detail ? <Text variant=\"caption\">{invoice.payment.detail}</Text> : null}\n </span>\n <Button size=\"sm\" variant=\"ghost\" onClick={invoice.payment.onChange}>\n {labels.changePayment ?? \"Change\"}\n </Button>\n </div>\n ) : null}\n\n {invoice.action ? (\n <Button\n startIcon={invoice.action.icon}\n loading={invoice.action.loading}\n disabled={invoice.action.disabled}\n onClick={invoice.action.onClick}\n >\n {invoice.action.label}\n </Button>\n ) : null}\n </Card>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, Card, cx, EmptyState, Pagination, SearchField, Select, Table, Text, type TableSort } from \"@openwarelabs/ui\";\n\nimport { SearchXIcon } from \"@blocks/shared/icons\";\nimport { hiddenColumns } from \"@blocks/shared/tableColumns\";\nimport type { List01Props } from \"./List01.types\";\n\nfunction compare(a: unknown, b: unknown) {\n return typeof a === \"number\" && typeof b === \"number\" ? a - b : String(a ?? \"\").localeCompare(String(b ?? \"\"), \"en\", { sensitivity: \"base\" });\n}\n\n/**\n * A section title with its primary action, then one card: a search field and filters, a sortable table, and the\n * pages. Any change to what's shown starts again from the first page.\n */\nexport function List01<Row extends object>({\n title,\n description,\n primaryAction,\n columns,\n rows,\n rowKey,\n searchText,\n filters = [],\n defaultSort,\n pageSize = 8,\n emptyIcon,\n labels = {},\n className,\n ...props\n}: List01Props<Row>) {\n const id = useId();\n const [query, setQuery] = useState(\"\");\n const [chosen, setChosen] = useState<Record<string, string>>({});\n const [sort, setSort] = useState<TableSort | undefined>(defaultSort);\n const [page, setPage] = useState(1);\n\n const text = query.trim().toLowerCase();\n const matching = rows.filter(\n (row) =>\n filters.every((filter) => (chosen[filter.id] ?? \"all\") === \"all\" || filter.value(row) === chosen[filter.id]) &&\n (!text || !searchText || searchText(row).some((field) => field.toLowerCase().includes(text))),\n );\n\n // The table only shows arrows (manualSort): sorting happens here, before the rows are split into pages.\n const sorted = [...matching];\n if (sort) {\n const column = columns.find((entry) => entry.key === sort.key);\n const valueOf = (row: Row) => (column?.sortValue ? column.sortValue(row) : (row as Record<string, unknown>)[sort.key]);\n sorted.sort((a, b) => compare(valueOf(a), valueOf(b)));\n if (sort.direction === \"descending\") sorted.reverse();\n }\n\n const pageCount = Math.max(1, Math.ceil(sorted.length / pageSize));\n const current = Math.min(page, pageCount);\n const shown = sorted.slice((current - 1) * pageSize, current * pageSize);\n const first = sorted.length ? (current - 1) * pageSize + 1 : 0;\n\n const clear = () => {\n setQuery(\"\");\n setChosen({});\n setPage(1);\n };\n\n const caption = labels.caption ?? (typeof title === \"string\" ? title : \"Rows\");\n\n return (\n <section className={cx(\"ow-list01\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-list01__inner\">\n <div className=\"ow-list01__header\">\n <div>\n <Text as=\"h2\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-list01__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-list01__card\" {...hiddenColumns(columns)}>\n <div className=\"ow-list01__toolbar\">\n {searchText ? (\n <SearchField\n className=\"ow-list01__search\"\n size=\"sm\"\n placeholder={labels.searchPlaceholder ?? \"Search\"}\n aria-label={labels.search ?? \"Search\"}\n value={query}\n onChange={(value) => {\n setQuery(value);\n setPage(1);\n }}\n />\n ) : null}\n {filters.map((filter) => (\n <Select\n key={filter.id}\n className=\"ow-list01__select\"\n size=\"sm\"\n aria-label={filter.label}\n value={chosen[filter.id] ?? \"all\"}\n onChange={(value) => {\n setChosen((current) => ({ ...current, [filter.id]: value }));\n setPage(1);\n }}\n options={[{ value: \"all\", label: filter.allLabel }, ...filter.options]}\n />\n ))}\n <Text variant=\"caption\" className=\"ow-list01__count\" aria-live=\"polite\">\n {labels.count\n ? labels.count(matching.length, rows.length)\n : matching.length === rows.length\n ? `${rows.length} rows`\n : `${matching.length} of ${rows.length} rows`}\n </Text>\n </div>\n\n <Table\n caption={caption}\n hideCaption\n columns={columns}\n rows={shown}\n rowKey={rowKey}\n sort={sort}\n onSortChange={(next) => {\n setSort(next);\n setPage(1);\n }}\n manualSort\n emptyContent={\n <EmptyState\n className=\"ow-list01__empty\"\n icon={emptyIcon ?? <SearchXIcon size={20} />}\n title={labels.emptyTitle ?? \"Nothing matches\"}\n description={\n labels.emptyDescription?.(query.trim()) ??\n (text ? `Nothing matches \u201C${query.trim()}\u201D with these filters.` : \"Nothing matches these filters.\")\n }\n actions={<Button onClick={clear}>{labels.clearAll ?? \"Clear search and filters\"}</Button>}\n />\n }\n />\n\n {sorted.length ? (\n <div className=\"ow-list01__footer\">\n <Text variant=\"caption\" className=\"ow-list01__range\">\n {first}\u2013{first + shown.length - 1} of {sorted.length}\n </Text>\n {pageCount > 1 ? (\n <Pagination size=\"sm\" page={current} pageCount={pageCount} onPageChange={setPage} label={labels.pages ?? \"Pages\"} />\n ) : null}\n </div>\n ) : null}\n </Card>\n </div>\n </section>\n );\n}\n", "import { useId, useState, type Key } from \"react\";\n\nimport { Button, Card, cx, Menu, MenuLabel, Table, Text, Tooltip } from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronDownIcon, XIcon } from \"@blocks/shared/icons\";\nimport { hiddenColumns } from \"@blocks/shared/tableColumns\";\nimport type { List02Props } from \"./List02.types\";\n\n/** A table with checkboxes. Once rows are selected, a bar takes over the card's header with what can be done to all of them. */\nexport function List02<Row extends object>({\n title,\n description,\n primaryAction,\n columns,\n rows,\n rowKey,\n rowLabel,\n defaultSort,\n selectedKeys,\n defaultSelectedKeys = [],\n onSelectionChange,\n bulkActions,\n summary,\n hint,\n labels = {},\n className,\n ...props\n}: List02Props<Row>) {\n const id = useId();\n const [ownSelection, setOwnSelection] = useState<Key[]>(defaultSelectedKeys);\n const selected = selectedKeys ?? ownSelection;\n const select = (keys: Key[]) => {\n if (selectedKeys === undefined) setOwnSelection(keys);\n onSelectionChange?.(keys);\n };\n\n const keyOf = (row: Row): Key => (typeof rowKey === \"function\" ? rowKey(row) : ((row as Record<string, unknown>)[(rowKey ?? \"id\") as string] as Key));\n const chosen = rows.filter((row) => selected.includes(keyOf(row)));\n const actions = chosen.length && bulkActions ? bulkActions(chosen) : [];\n const caption = labels.caption ?? (typeof title === \"string\" ? title : \"Rows\");\n const clearLabel = labels.clearSelection ?? \"Clear selection\";\n\n return (\n <section className={cx(\"ow-list02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-list02__inner\">\n <div className=\"ow-list02__header\">\n <div>\n <Text as=\"h2\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-list02__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-list02__card\" {...hiddenColumns(columns, 1)}>\n {chosen.length ? (\n <div className=\"ow-list02__bar\" role=\"region\" aria-label={labels.bar ?? \"Selected rows\"}>\n <Text variant=\"label\" tone=\"primary\" className=\"ow-list02__selected\" aria-live=\"polite\">\n {labels.selected ? labels.selected(chosen.length) : <>{chosen.length} selected</>}\n </Text>\n <div className=\"ow-list02__actions\">\n {actions.map((action, index) =>\n action.menu ? (\n <Menu\n key={index}\n label={typeof action.label === \"string\" ? action.label : \"Actions\"}\n trigger={\n <Button size=\"sm\" endIcon={<ChevronDownIcon size={14} />} disabled={action.disabled}>\n {action.label}\n </Button>\n }\n >\n {action.menuHeading ? <MenuLabel>{action.menuHeading}</MenuLabel> : null}\n <BlockMenuItems items={action.menu} />\n </Menu>\n ) : (\n <Button\n key={index}\n size=\"sm\"\n variant={action.variant === \"danger\" ? \"danger\" : undefined}\n startIcon={action.icon}\n loading={action.loading}\n disabled={action.disabled}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ),\n )}\n </div>\n <span className=\"ow-list02__clear\">\n <Tooltip label={clearLabel}>\n <Button size=\"sm\" variant=\"ghost\" iconOnly aria-label={clearLabel} onClick={() => select([])}>\n <XIcon size={16} />\n </Button>\n </Tooltip>\n </span>\n </div>\n ) : (\n <div className=\"ow-list02__top\">\n {summary}\n {hint ? (\n <Text variant=\"caption\" className=\"ow-list02__hint\">\n {hint}\n </Text>\n ) : null}\n </div>\n )}\n\n <Table\n caption={caption}\n hideCaption\n columns={columns}\n rows={rows}\n rowKey={rowKey}\n selectionMode=\"multiple\"\n selectedKeys={selected}\n onSelectionChange={select}\n rowLabel={rowLabel}\n defaultSort={defaultSort}\n />\n </Card>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Badge, Button, Card, cx, Menu, Text } from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { EllipsisIcon } from \"@blocks/shared/icons\";\nimport type { List03Props } from \"./List03.types\";\n\n/** Rows of a title, one line of detail and a status, each with its actions in a menu at its end. On phones the status moves under the detail. */\nexport function List03({ title, description, primaryAction, items, footnote, labels = {}, className, ...props }: List03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-list03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-list03__inner\">\n <div className=\"ow-list03__header\">\n <div>\n <Text as=\"h2\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-list03__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-list03__card\">\n <ul className=\"ow-list03__list\">\n {items.map((item) => (\n <li key={item.id} className=\"ow-list03__row\" data-inactive={item.inactive || undefined}>\n {item.icon ? (\n <span className=\"ow-list03__icon\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : null}\n <span className=\"ow-list03__text\">\n <span className=\"ow-list03__name-row\">\n <Text as=\"span\" variant=\"label\" tone={item.inactive ? \"muted\" : undefined} truncate>\n {item.title}\n </Text>\n {item.code !== undefined ? (\n <Text as=\"span\" variant=\"code\" tone=\"muted\" className=\"ow-list03__key\">\n {item.code}\n </Text>\n ) : null}\n </span>\n {item.detail !== undefined ? (\n <Text variant=\"caption\" className=\"ow-list03__detail\">\n {item.detail}\n </Text>\n ) : null}\n </span>\n {item.status ? (\n <span className=\"ow-list03__status\">\n <Badge size=\"sm\" variant={item.status.tone ?? \"neutral\"}>\n {item.status.label}\n </Badge>\n </span>\n ) : null}\n {item.menu?.length ? (\n <span className=\"ow-list03__menu\">\n <Menu\n label={labels.menu?.(item.title) ?? `${item.title} actions`}\n align=\"end\"\n trigger={\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.actions?.(item.title) ?? `Actions for ${item.title}`}\n >\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <BlockMenuItems items={item.menu} />\n </Menu>\n </span>\n ) : null}\n </li>\n ))}\n </ul>\n </Card>\n\n {footnote ? (\n <Text as=\"p\" variant=\"caption\">\n {footnote}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Avatar, AvatarGroup, Badge, Button, Card, cx, EmptyState, Menu, SearchField, Text } from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { EllipsisIcon, SearchXIcon, StarIcon } from \"@blocks/shared/icons\";\nimport type { List04Props } from \"./List04.types\";\n\n/** A grid of cards, each with a tile, a name, a line about it, its status and its people, and a menu of actions. A search field narrows them. */\nexport function List04({ title, count, description, primaryAction, items, searchable = true, emptyIcon, labels = {}, className, ...props }: List04Props) {\n const id = useId();\n const [query, setQuery] = useState(\"\");\n\n const text = query.trim().toLowerCase();\n const shown = items.filter((item) => {\n const words = item.searchText ?? [item.title, ...(typeof item.description === \"string\" ? [item.description] : [])];\n return !text || words.some((word) => word.toLowerCase().includes(text));\n });\n const searchLabel = labels.search ?? \"Search\";\n\n return (\n <section className={cx(\"ow-list04\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-list04__inner\">\n <div className=\"ow-list04__header\">\n <div>\n <Text as=\"h2\" variant=\"heading\" id={`${id}-title`}>\n {title}\n {count !== undefined ? (\n <Text as=\"span\" variant=\"heading\" tone=\"muted\" className=\"ow-list04__count\">\n {count}\n </Text>\n ) : null}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-list04__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {searchable || primaryAction ? (\n <div className=\"ow-list04__tools\">\n {searchable ? (\n <SearchField\n className=\"ow-list04__search\"\n size=\"sm\"\n placeholder={searchLabel}\n aria-label={searchLabel}\n value={query}\n onChange={setQuery}\n />\n ) : null}\n {primaryAction ? (\n <Button\n variant=\"primary\"\n size=\"sm\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {shown.length ? (\n <ul className=\"ow-list04__grid\">\n {shown.map((item) => (\n <li key={item.id}>\n <Card padding=\"none\" role=\"article\" className=\"ow-list04__card\" aria-labelledby={`${id}-${item.id}`}>\n <div className=\"ow-list04__top\">\n {item.icon ? (\n <span className=\"ow-list04__tile\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : null}\n <div className=\"ow-list04__names\">\n <Text as=\"h3\" variant=\"card-title\" id={`${id}-${item.id}`} className=\"ow-list04__name\">\n <span className=\"ow-list04__name-text\">{item.title}</span>\n {item.pinned ? (\n <span className=\"ow-list04__star\" role=\"img\" aria-label={labels.pinned ?? \"Pinned\"}>\n <StarIcon size={13} />\n </span>\n ) : null}\n </Text>\n {item.subtitle !== undefined ? (\n <Text as=\"span\" variant=\"code\" tone=\"muted\" truncate className=\"ow-list04__repo\">\n {item.subtitle}\n </Text>\n ) : null}\n </div>\n {item.menu?.length ? (\n <Menu\n label={labels.menu?.(item.title) ?? `${item.title} actions`}\n align=\"end\"\n trigger={\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.actions?.(item.title) ?? `Actions for ${item.title}`}\n >\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <BlockMenuItems items={item.menu} />\n </Menu>\n ) : null}\n </div>\n\n {item.description ? (\n <Text variant=\"copy\" tone=\"soft\" className=\"ow-list04__description\">\n {item.description}\n </Text>\n ) : null}\n\n <div className=\"ow-list04__foot\">\n {item.status ? (\n <Badge size=\"sm\" variant={item.status.tone ?? \"neutral\"}>\n {item.status.label}\n </Badge>\n ) : null}\n <Text variant=\"caption\" truncate className=\"ow-list04__when\">\n {item.meta}\n </Text>\n {item.members?.length ? (\n <AvatarGroup\n size=\"sm\"\n max={3}\n label={labels.members?.(item.members.length, item.title) ?? `${item.members.length} people on ${item.title}`}\n >\n {item.members.map((name) => (\n <Avatar key={name} name={name} label={name} />\n ))}\n </AvatarGroup>\n ) : null}\n </div>\n </Card>\n </li>\n ))}\n </ul>\n ) : (\n <EmptyState\n bordered\n icon={emptyIcon ?? <SearchXIcon size={20} />}\n title={items.length ? (labels.emptyTitle ?? \"Nothing matches\") : (labels.noItemsTitle ?? \"Nothing here yet\")}\n description={\n items.length\n ? (labels.emptyDescription?.(query.trim()) ?? `Nothing is called \u201C${query.trim()}\u201D, and no description mentions it.`)\n : labels.noItemsDescription\n }\n actions={items.length ? <Button onClick={() => setQuery(\"\")}>{labels.clearSearch ?? \"Clear search\"}</Button> : undefined}\n />\n )}\n </div>\n </section>\n );\n}\n", "import { useId, useRef, useState } from \"react\";\n\nimport {\n Avatar,\n Button,\n ChatAgentAvatar,\n ChatConversation,\n ChatLoader,\n ChatMessage,\n ChatMessageActions,\n cx,\n EmptyState,\n Kbd,\n Menu,\n MenuLabel,\n PromptInput,\n PromptSuggestion,\n PromptSuggestions,\n Prose,\n Text,\n type ChatConversationHandle,\n} from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { EllipsisIcon, SquarePenIcon } from \"@blocks/shared/icons\";\nimport type { Chat01Props } from \"./Chat01.types\";\n\n/**\n * A chat with an agent that fills its frame: a header with the chat's name, then the messages, which scroll and keep\n * the reply box docked below them. The person's messages can be copied and edited; the agent's copied and rated.\n */\nexport function Chat01({\n title,\n context,\n messages,\n user,\n agentName = \"Agent\",\n day,\n thinking = false,\n onSend,\n onStop,\n onNewChat,\n onRate,\n menu,\n menuHeading,\n empty,\n draft: draftProp,\n onDraftChange,\n locale,\n labels = {},\n className,\n ...props\n}: Chat01Props) {\n const id = useId();\n const view = useRef<ChatConversationHandle>(null);\n const input = useRef<HTMLTextAreaElement>(null);\n const [ownDraft, setOwnDraft] = useState(\"\");\n const draft = draftProp ?? ownDraft;\n const setDraft = (text: string) => {\n setOwnDraft(text);\n onDraftChange?.(text);\n };\n\n const last = messages[messages.length - 1];\n const streaming = last?.status === \"streaming\";\n\n const send = (text: string) => {\n setDraft(\"\");\n onSend?.(text);\n view.current?.scrollToBottom();\n };\n\n const edit = (text: string) => {\n setDraft(text);\n input.current?.focus();\n };\n\n const newChat = () => {\n setDraft(\"\");\n onNewChat?.();\n input.current?.focus();\n };\n\n return (\n <div className={cx(\"ow-chat01\", className)} {...props}>\n <div className=\"ow-chat01__panel\">\n <header className=\"ow-chat01__header\">\n <ChatAgentAvatar size=\"lg\" />\n <div className=\"ow-chat01__heading\">\n <Text variant=\"card-title\" as=\"h1\" truncate id={`${id}-title`}>\n {title}\n </Text>\n {context ? (\n <Text variant=\"caption\" className=\"ow-chat01__context\">\n <span className=\"ow-chat01__context-dot\" aria-hidden=\"true\" />\n {context}\n </Text>\n ) : null}\n </div>\n {onNewChat ? (\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={labels.newChat ?? \"New chat\"} onClick={newChat}>\n <SquarePenIcon size={16} />\n </Button>\n ) : null}\n {menu?.length ? (\n <Menu\n label={labels.menu ?? \"Chat\"}\n align=\"end\"\n trigger={\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={labels.more ?? \"More\"}>\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n {menuHeading ? <MenuLabel>{menuHeading}</MenuLabel> : null}\n <BlockMenuItems items={menu} />\n </Menu>\n ) : null}\n </header>\n\n <ChatConversation\n ref={view}\n aria-labelledby={`${id}-title`}\n empty={\n empty ? (\n <EmptyState\n icon={empty.icon}\n title={empty.title}\n description={empty.description}\n actions={\n empty.suggestions?.length ? (\n <PromptSuggestions align=\"center\" aria-label={labels.suggestions ?? \"Ideas to start from\"}>\n {empty.suggestions.map((suggestion) => (\n <PromptSuggestion key={suggestion.label} icon={suggestion.icon} onClick={() => edit(suggestion.label)}>\n {suggestion.label}\n </PromptSuggestion>\n ))}\n </PromptSuggestions>\n ) : undefined\n }\n />\n ) : undefined\n }\n footer={\n <PromptInput\n ref={input}\n value={draft}\n onChange={setDraft}\n onSubmit={send}\n isStreaming={thinking || streaming}\n onStop={onStop}\n placeholder={labels.placeholder ?? \"Reply to the agent\u2026\"}\n aria-label={labels.input ?? \"Reply to the agent\"}\n hint={\n labels.hint ?? (\n <>\n <Kbd>Enter</Kbd> to send, <Kbd>Shift</Kbd> + <Kbd>Enter</Kbd> for a new line\n </>\n )\n }\n />\n }\n >\n {messages.length && day ? <ChatMessage from=\"system\">{day}</ChatMessage> : null}\n {messages.map((message) =>\n message.from === \"user\" ? (\n <ChatMessage\n key={message.id}\n from=\"user\"\n name={user.name}\n avatar={<Avatar name={user.name} src={user.avatar} />}\n time={message.time}\n locale={locale}\n actions={<ChatMessageActions copyText={message.text} onEdit={() => edit(message.text)} />}\n >\n {message.text}\n </ChatMessage>\n ) : (\n <ChatMessage\n key={message.id}\n from=\"assistant\"\n name={agentName}\n time={message.time}\n locale={locale}\n status={message.status}\n showActions={message === last ? \"always\" : \"hover\"}\n actions={<ChatMessageActions copyText={message.text} onRate={(rating) => onRate?.(message, rating)} />}\n >\n {message.body ?? (\n <Prose size=\"sm\">\n <Text variant=\"copy\" tone=\"default\">\n {message.text}\n </Text>\n </Prose>\n )}\n </ChatMessage>\n ),\n )}\n {thinking ? <ChatLoader name={agentName} label={labels.thinking ?? \"Thinking\u2026\"} /> : null}\n </ChatConversation>\n </div>\n </div>\n );\n}\n", "import { useId, useRef, useState } from \"react\";\n\nimport { Button, cx, Kbd, Menu, MenuItem, MenuLabel, PromptInput, PromptSuggestion, PromptSuggestions, Text, type PromptAttachment } from \"@openwarelabs/ui\";\n\nimport { CheckIcon, ChevronDownIcon } from \"@blocks/shared/icons\";\nimport type { Chat02Picker, Chat02Props } from \"./Chat02.types\";\n\n/** A ghost button in the toolbar that opens a menu of choices, the chosen one ticked. */\nfunction Picker({ picker, value, onChange }: { picker: Chat02Picker; value: string; onChange(value: string): void }) {\n const chosen = picker.options.find((option) => option.value === value);\n const label = chosen?.label ?? value;\n return (\n <Menu\n label={picker.label}\n above\n width={260}\n trigger={\n <Button\n className=\"ow-chat02__picker\"\n variant=\"ghost\"\n size=\"sm\"\n startIcon={picker.icon}\n endIcon={<ChevronDownIcon size={14} />}\n aria-label={`${picker.label}: ${label}`}\n >\n {label}\n </Button>\n }\n >\n <MenuLabel>{picker.label}</MenuLabel>\n {picker.options.map((option) => (\n <MenuItem\n key={option.value}\n role=\"menuitemradio\"\n aria-checked={option.value === value}\n icon={option.value === value ? <CheckIcon size={15} /> : <span className=\"ow-chat02__tick-space\" />}\n onSelect={() => onChange(option.value)}\n >\n {option.description ? (\n <span className=\"ow-chat02__option\">\n {option.label}\n <Text variant=\"caption\">{option.description}</Text>\n </span>\n ) : (\n option.label\n )}\n </MenuItem>\n ))}\n </Menu>\n );\n}\n\n/**\n * A new-task page: a question, a growing box to answer it in with attachments and pickers for the project and the\n * model, and a few ideas to start from.\n */\nexport function Chat02({ title, description, pickers = [], defaultAttachments = [], suggestions, onSend, labels = {}, className, ...props }: Chat02Props) {\n const id = useId();\n const [text, setText] = useState(\"\");\n const [files, setFiles] = useState<PromptAttachment[]>(defaultAttachments);\n const [ownChoices, setOwnChoices] = useState<Record<string, string>>(() =>\n Object.fromEntries(pickers.map((picker) => [picker.id, picker.defaultValue ?? picker.options[0]?.value ?? \"\"])),\n );\n const input = useRef<HTMLTextAreaElement>(null);\n\n const choiceOf = (picker: Chat02Picker) => picker.value ?? ownChoices[picker.id] ?? \"\";\n const choose = (picker: Chat02Picker, value: string) => {\n setOwnChoices((current) => ({ ...current, [picker.id]: value }));\n picker.onChange?.(value);\n };\n\n const send = (task: string, attachments: PromptAttachment[]) => {\n onSend?.({ text: task, attachments, choices: Object.fromEntries(pickers.map((picker) => [picker.id, choiceOf(picker)])) });\n setText(\"\");\n setFiles([]);\n };\n\n const attach = (picked: File[]) =>\n setFiles((current) => [\n ...current,\n ...picked\n .filter((file) => !current.some((other) => other.name === file.name))\n .map((file) => ({ id: `${file.name}-${file.lastModified}`, name: file.name, type: file.type, size: file.size })),\n ]);\n\n return (\n <section className={cx(\"ow-chat02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-chat02__inner\">\n <Text variant=\"heading\" as=\"h2\" align=\"center\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" align=\"center\" className=\"ow-chat02__lead\">\n {description}\n </Text>\n ) : null}\n\n <PromptInput\n ref={input}\n className=\"ow-chat02__input\"\n value={text}\n onChange={setText}\n onSubmit={send}\n minRows={2}\n maxRows={10}\n placeholder={labels.placeholder ?? \"Describe the task\u2026\"}\n aria-label={labels.input ?? \"Task for the agent\"}\n attachments={files}\n onAttach={attach}\n onRemoveAttachment={(fileId) => setFiles((current) => current.filter((file) => file.id !== fileId))}\n startActions={\n pickers.length ? (\n <>\n {pickers.map((picker) => (\n <Picker key={picker.id} picker={picker} value={choiceOf(picker)} onChange={(value) => choose(picker, value)} />\n ))}\n </>\n ) : undefined\n }\n hint={\n labels.hint ?? (\n <>\n <Kbd>Enter</Kbd> to send, <Kbd>Shift</Kbd> + <Kbd>Enter</Kbd> for a new line. Drop or paste files to attach them.\n </>\n )\n }\n />\n\n {suggestions?.length ? (\n <PromptSuggestions className=\"ow-chat02__suggestions\" align=\"center\" aria-label={labels.suggestions ?? \"Ideas to start from\"}>\n {suggestions.map((suggestion) => (\n <PromptSuggestion\n key={suggestion.label}\n icon={suggestion.icon}\n onClick={() => {\n setText(suggestion.label);\n input.current?.focus();\n }}\n >\n {suggestion.label}\n </PromptSuggestion>\n ))}\n </PromptSuggestions>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Badge, Button, ChainOfThought, ChatAgentAvatar, ChatSources, ChatTool, Code, cx, Text, VisuallyHidden, type BadgeVariant } from \"@openwarelabs/ui\";\n\nimport { ChevronRightIcon, CircleStopIcon, RotateCcwIcon } from \"@blocks/shared/icons\";\nimport type { Chat03File, Chat03Labels, Chat03Props, Chat03Status } from \"./Chat03.types\";\n\nconst formatElapsed = (seconds: number) => `${Math.floor(seconds / 60)}:${String(seconds % 60).padStart(2, \"0\")}`;\n\n/** Lines added and removed, in green and red, with words for screen readers. */\nfunction DiffCount({ added, removed, labels }: { added: number; removed: number; labels: Chat03Labels }) {\n return (\n <>\n <Text as=\"span\" variant=\"caption\" tone=\"success\">\n <span aria-hidden=\"true\">+{added}</span>\n <VisuallyHidden>{labels.linesAdded?.(added) ?? `${added} lines added,`}</VisuallyHidden>\n </Text>{\" \"}\n <Text as=\"span\" variant=\"caption\" tone=\"danger\">\n <span aria-hidden=\"true\">\u2212{removed}</span>\n <VisuallyHidden>{labels.linesRemoved?.(removed) ?? `${removed} removed`}</VisuallyHidden>\n </Text>\n </>\n );\n}\n\n/** The files a call changed, each opening to its diff. */\nfunction Files({ files, open, onToggle, labels }: { files: Chat03File[]; open: string[]; onToggle(path: string): void; labels: Chat03Labels }) {\n return (\n <ul className=\"ow-chat03__files\" aria-label={labels.files ?? \"Files changed\"}>\n {files.map((file) => {\n const expanded = open.includes(file.path);\n return (\n <li key={file.path} className=\"ow-chat03__file\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n fullWidth\n className=\"ow-chat03__file-button\"\n aria-expanded={expanded}\n startIcon={<ChevronRightIcon size={14} />}\n onClick={() => onToggle(file.path)}\n >\n <Text variant=\"code\" tone=\"default\" truncate className=\"ow-chat03__path\">\n {file.path}\n </Text>\n <DiffCount added={file.added} removed={file.removed} labels={labels} />\n </Button>\n {expanded ? (\n <Text\n as=\"pre\"\n variant=\"code\"\n className=\"ow-chat03__diff\"\n tabIndex={0}\n aria-label={labels.diff?.(file.path) ?? `Changes to ${file.path}`}\n >\n {file.diff.map((line, index) => {\n const kind = line.startsWith(\"@@\") ? \"hunk\" : line[0] === \"+\" ? \"add\" : line[0] === \"-\" ? \"remove\" : \"context\";\n const sign = kind === \"add\" ? \"+\" : kind === \"remove\" ? \"\u2212\" : \"\";\n return (\n <span key={index} className={`ow-chat03__line ow-chat03__line--${kind}`} data-sign={sign}>\n {kind === \"hunk\" ? line : line.slice(1)}\n {\"\\n\"}\n </span>\n );\n })}\n </Text>\n ) : null}\n </li>\n );\n })}\n </ul>\n );\n}\n\nconst badgeTone: Record<Chat03Status, BadgeVariant> = { running: \"active\", waiting: \"warning\", stopped: \"neutral\", done: \"success\" };\nconst badgeLabel: Record<Chat03Status, string> = { running: \"Running\", waiting: \"Needs approval\", stopped: \"Stopped\", done: \"Done\" };\n\n/**\n * One agent run: what it's working on at the top, with its status, a clock and Stop; its reasoning, sources and\n * tool calls below as they happen, each call opening to its input, output and the diffs of the files it changed.\n */\nexport function Chat03({\n title,\n project,\n branch,\n byline,\n status,\n elapsed,\n onStop,\n onRestart,\n reasoning,\n sources,\n steps,\n summary,\n labels = {},\n className,\n ...props\n}: Chat03Props) {\n const id = useId();\n const [open, setOpen] = useState<string[]>(() => steps.flatMap((step) => step.tool?.files ?? []).flatMap((file) => (file.defaultOpen ? [file.path] : [])));\n const toggleFile = (path: string) => setOpen((paths) => (paths.includes(path) ? paths.filter((other) => other !== path) : [...paths, path]));\n const working = status === \"running\" || status === \"waiting\";\n\n return (\n <section className={cx(\"ow-chat03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-chat03__panel\">\n <header className=\"ow-chat03__header\">\n <ChatAgentAvatar size=\"lg\" />\n <div className=\"ow-chat03__heading\">\n <Text variant=\"card-title\" as=\"h2\" id={`${id}-title`}>\n {title}\n </Text>\n {project !== undefined || branch !== undefined || byline !== undefined ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-chat03__meta\">\n {project !== undefined ? <span>{project}</span> : null}\n {project !== undefined && branch !== undefined ? (\n <span className=\"ow-chat03__meta-sep\" aria-hidden=\"true\">\n /\n </span>\n ) : null}\n {branch !== undefined ? <Code>{branch}</Code> : null}\n {byline !== undefined && (project !== undefined || branch !== undefined) ? (\n <span className=\"ow-chat03__meta-sep ow-chat03__meta-sep--dot\" aria-hidden=\"true\">\n \u00B7\n </span>\n ) : null}\n {byline !== undefined ? <span>{byline}</span> : null}\n </Text>\n ) : null}\n </div>\n <div className=\"ow-chat03__controls\">\n <Badge size=\"sm\" variant={badgeTone[status]} role=\"status\">\n {labels[status] ?? badgeLabel[status]}\n </Badge>\n {elapsed !== undefined ? (\n <Text variant=\"caption\" className=\"ow-chat03__elapsed\">\n <VisuallyHidden>{labels.elapsed ?? \"Time taken: \"}</VisuallyHidden>\n {formatElapsed(elapsed)}\n </Text>\n ) : null}\n {working ? (\n <Button size=\"sm\" startIcon={<CircleStopIcon size={16} />} onClick={onStop}>\n {labels.stop ?? \"Stop\"}\n </Button>\n ) : (\n <Button size=\"sm\" startIcon={<RotateCcwIcon size={16} />} onClick={onRestart}>\n {labels.runAgain ?? \"Run again\"}\n </Button>\n )}\n </div>\n </header>\n\n <div className=\"ow-chat03__body\">\n {reasoning ? (\n <ChainOfThought duration={reasoning.duration} defaultExpanded={reasoning.defaultExpanded ?? true} steps={reasoning.steps}>\n {reasoning.text}\n </ChainOfThought>\n ) : null}\n\n {sources?.length ? <ChatSources sources={sources} /> : null}\n\n <ol className=\"ow-chat03__steps\" aria-label={labels.steps ?? \"Steps\"}>\n {steps.map((step) => {\n const tool = step.tool;\n if (!tool) {\n return (\n <li key={step.id}>\n <Text variant=\"copy\" className=\"ow-chat03__note\">\n {step.note}\n </Text>\n </li>\n );\n }\n const { files, summary: toolSummary, output, ...rest } = tool;\n const added = files?.reduce((sum, file) => sum + file.added, 0) ?? 0;\n const removed = files?.reduce((sum, file) => sum + file.removed, 0) ?? 0;\n return (\n <li key={step.id}>\n <ChatTool\n {...rest}\n summary={toolSummary ?? (files?.length ? <DiffCount added={added} removed={removed} labels={labels} /> : undefined)}\n output={files?.length ? <Files files={files} open={open} onToggle={toggleFile} labels={labels} /> : output}\n />\n </li>\n );\n })}\n </ol>\n\n {summary && !working ? <div className=\"ow-chat03__summary\">{summary}</div> : null}\n </div>\n </div>\n </section>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Badge, Button, ChoiceCard, cx, Dialog, EmptyState, Field, Input, Separator, Text, toast } from \"@openwarelabs/ui\";\n\nimport { PlusIcon } from \"@blocks/shared/icons\";\nimport type { Empty01Item, Empty01Props } from \"./Empty01.types\";\n\nconst slug = /^[a-z0-9]+(-[a-z0-9]+)*$/;\n\n/** A first-run page: what will be here, the button that makes the first one, and other ways to start. */\nexport function Empty01({\n title,\n description,\n icon,\n emptyTitle,\n emptyDescription,\n ways = [],\n defaultItems = [],\n onCreate,\n onRemove,\n namePattern = slug,\n labels = {},\n className,\n ...props\n}: Empty01Props) {\n const [items, setItems] = useState<Empty01Item[]>(defaultItems);\n const [open, setOpen] = useState(false);\n // The way picked, or null for the main button.\n const [wayId, setWayId] = useState<string | null>(null);\n const [name, setName] = useState(\"\");\n const [error, setError] = useState(\"\");\n\n const way = ways.find((entry) => entry.id === wayId);\n const createLabel = labels.create ?? \"Create project\";\n\n const start = (next: string | null) => {\n setWayId(next);\n setOpen(true);\n setName(\"\");\n setError(\"\");\n };\n\n const create = () => {\n const value = name.trim();\n if (!value) return setError(labels.nameRequired ?? \"Give the project a name.\");\n if (!namePattern.test(value)) return setError(labels.nameInvalid ?? \"Use only lowercase letters, numbers and dashes.\");\n if (items.some((item) => item.name === value))\n return setError(labels.nameTaken ? labels.nameTaken(value) : `There's already a project called ${value}.`);\n const item: Empty01Item = { name: value, source: way ? way.source : (labels.blankSource ?? \"Blank project\"), way: way?.id };\n setItems((list) => [...list, item]);\n setOpen(false);\n onCreate?.(item);\n toast.success(labels.created ? labels.created(value) : `Created ${value}`, {\n action: {\n label: labels.undo ?? \"Undo\",\n onClick: () => {\n setItems((list) => list.filter((entry) => entry.name !== value));\n onRemove?.(item);\n },\n },\n });\n };\n\n return (\n <div className={cx(\"ow-empty01\", className)} {...props}>\n <main className=\"ow-empty01__panel\">\n <div className=\"ow-empty01__header\">\n <div>\n <Text variant=\"heading\" as=\"h2\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-empty01__subtitle\">\n {description}\n </Text>\n ) : null}\n </div>\n {items.length > 0 ? (\n <Button variant=\"primary\" startIcon={<PlusIcon size={16} />} onClick={() => start(null)}>\n {labels.newItem ?? \"New project\"}\n </Button>\n ) : null}\n </div>\n\n {items.length === 0 ? (\n <div className=\"ow-empty01__area\">\n <EmptyState\n icon={icon}\n title={emptyTitle}\n description={emptyDescription}\n actions={\n <Button variant=\"primary\" startIcon={<PlusIcon size={16} />} onClick={() => start(null)}>\n {createLabel}\n </Button>\n }\n />\n {ways.length ? (\n <div className=\"ow-empty01__ways\">\n <Separator label={labels.otherWays ?? \"or start another way\"} spacing=\"2xl\" />\n <div className=\"ow-empty01__choices\">\n {ways.map((entry) => (\n <ChoiceCard\n key={entry.id}\n icon={entry.icon}\n title={entry.title}\n description={entry.description}\n recommended={entry.recommended}\n onClick={() => start(entry.id)}\n />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n ) : (\n <ul className=\"ow-empty01__list\" aria-label={labels.list ?? \"Projects\"}>\n {items.map((item) => (\n <li key={item.name} className=\"ow-empty01__row\">\n <span className=\"ow-empty01__dot\" aria-hidden=\"true\" />\n <span className=\"ow-empty01__name\">\n <Text variant=\"label\" truncate>\n {item.name}\n </Text>\n {item.source ? <Text variant=\"caption\">{item.source}</Text> : null}\n </span>\n <Text variant=\"caption\" className=\"ow-empty01__when\">\n {labels.createdJustNow ?? \"Created just now\"}\n </Text>\n <Badge size=\"sm\" variant=\"active\">\n {labels.newBadge ?? \"New\"}\n </Badge>\n </li>\n ))}\n </ul>\n )}\n </main>\n\n <Dialog\n open={open}\n onClose={() => setOpen(false)}\n title={way ? (way.dialogTitle ?? way.title) : (labels.dialogTitle ?? \"Create a project\")}\n description={way ? way.dialogDescription : (labels.dialogDescription ?? \"An empty project. Connect a repository to it whenever you're ready.\")}\n onSubmit={create}\n actions={\n <>\n <Button onClick={() => setOpen(false)}>{labels.cancel ?? \"Cancel\"}</Button>\n <Button type=\"submit\" variant=\"primary\">\n {way ? (labels.continue ?? \"Continue\") : createLabel}\n </Button>\n </>\n }\n >\n <Field\n label={labels.name ?? \"Project name\"}\n hint={error ? undefined : (labels.nameHint ?? \"Lowercase letters, numbers and dashes.\")}\n error={error || undefined}\n >\n <Input\n autoFocus\n placeholder={labels.placeholder ?? \"billing-api\"}\n value={name}\n onChange={(event) => {\n setName(event.target.value);\n if (error) setError(\"\");\n }}\n />\n </Field>\n </Dialog>\n </div>\n );\n}\n", "import { Fragment, useState } from \"react\";\n\nimport { Button, cx, EmptyState, Menu, MenuItem, MenuLabel, MenuSeparator, SearchField, Table, Tag, TagGroup, Text } from \"@openwarelabs/ui\";\n\nimport { ListFilterIcon, SearchXIcon } from \"@blocks/shared/icons\";\nimport type { Empty02Props } from \"./Empty02.types\";\n\n/** A searchable, filterable table that says what was looked for when nothing matches, with the ways back. */\nexport function Empty02<Row extends object>({\n title,\n description,\n columns,\n rows,\n rowKey,\n searchText,\n filters = [],\n defaultQuery = \"\",\n defaultFilters = {},\n onQueryChange,\n onFiltersChange,\n emptyTitle,\n emptyDescription,\n labels = {},\n className,\n ...props\n}: Empty02Props<Row>) {\n const [query, setQuery] = useState(defaultQuery);\n const [active, setActive] = useState<Record<string, string>>(defaultFilters);\n\n const changeQuery = (value: string) => {\n setQuery(value);\n onQueryChange?.(value);\n };\n const changeFilters = (next: Record<string, string>) => {\n setActive(next);\n onFiltersChange?.(next);\n };\n const setFilter = (key: string, value: string) => changeFilters({ ...active, [key]: value });\n const removeFilter = (key: string) => {\n const { [key]: _removed, ...rest } = active;\n changeFilters(rest);\n };\n\n const words = query.trim().toLowerCase().split(/\\s+/).filter(Boolean);\n const on = filters.filter((filter) => active[filter.key] !== undefined);\n const shown = rows.filter(\n (row) => on.every((filter) => filter.value(row) === active[filter.key]) && words.every((word) => searchText(row).toLowerCase().includes(word)),\n );\n const filtered = on.length > 0;\n const searched = query.trim();\n const search = { query: searched, filters: Object.fromEntries(on.map((filter) => [filter.key, active[filter.key]!])) };\n\n const fallbackDescription =\n searched && filtered\n ? \"Try other words, or clear the filters to look wider.\"\n : searched\n ? \"Try fewer or different words.\"\n : \"Clear the filters to see them all.\";\n\n return (\n <div className={cx(\"ow-empty02\", className)} {...props}>\n <main className=\"ow-empty02__panel\">\n <Text variant=\"heading\" as=\"h2\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-empty02__subtitle\">\n {description}\n </Text>\n ) : null}\n\n <div className=\"ow-empty02__toolbar\">\n <div className=\"ow-empty02__search\">\n <SearchField\n size=\"sm\"\n aria-label={labels.search ?? \"Search\"}\n placeholder={labels.search ?? \"Search\"}\n value={query}\n onChange={changeQuery}\n />\n </div>\n <TagGroup label={labels.filters ?? \"Filters\"}>\n {on.map((filter) => (\n <Tag\n key={filter.key}\n variant=\"active\"\n onRemove={() => removeFilter(filter.key)}\n removeLabel={\n labels.removeFilter\n ? labels.removeFilter(filter.label, active[filter.key]!)\n : `${filter.label.toLowerCase()} filter: ${active[filter.key]}`\n }\n >\n {`${filter.label}: `}\n {active[filter.key]}\n </Tag>\n ))}\n {filters.length ? (\n <Menu\n label={labels.filterMenu ?? \"Add a filter\"}\n trigger={\n <Button size=\"sm\" variant=\"ghost\" startIcon={<ListFilterIcon size={16} />}>\n {filtered ? (labels.filter ?? \"Filter\") : (labels.addFilter ?? \"Add filter\")}\n </Button>\n }\n >\n {filters.map((filter, index) => (\n <Fragment key={filter.key}>\n {index > 0 ? <MenuSeparator /> : null}\n <MenuLabel>{filter.label}</MenuLabel>\n {filter.options.map((value) => (\n <MenuItem key={value} onSelect={() => setFilter(filter.key, value)}>\n {value}\n </MenuItem>\n ))}\n </Fragment>\n ))}\n </Menu>\n ) : null}\n </TagGroup>\n <Text variant=\"caption\" className=\"ow-empty02__count\" aria-live=\"polite\">\n {labels.count ? labels.count(shown.length, rows.length) : `${shown.length} of ${rows.length}`}\n </Text>\n </div>\n\n <Table\n className=\"ow-empty02__table\"\n caption={title}\n hideCaption\n columns={columns}\n rows={shown}\n rowKey={rowKey}\n emptyContent={\n <EmptyState\n icon={<SearchXIcon size={20} />}\n title={emptyTitle ? emptyTitle(search) : searched ? `No results match \u201C${searched}\u201D` : \"No results match these filters\"}\n description={emptyDescription ? emptyDescription(search) : fallbackDescription}\n actions={\n <>\n {searched ? (\n <Button variant={filtered ? \"secondary\" : \"primary\"} onClick={() => changeQuery(\"\")}>\n {labels.clearSearch ?? \"Clear search\"}\n </Button>\n ) : null}\n {filtered ? (\n <Button variant=\"primary\" onClick={() => changeFilters({})}>\n {labels.clearFilters ?? \"Clear filters\"}\n </Button>\n ) : null}\n </>\n }\n />\n }\n />\n </main>\n </div>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Badge, Button, Code, cx, EmptyState, SegmentedControl, Spinner, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CloudOffIcon, RotateCwIcon } from \"@blocks/shared/icons\";\nimport type { Empty03Props, Empty03Status } from \"./Empty03.types\";\n\n/** A card whose list couldn't load: what went wrong, a button to try again, and the list once it comes back. */\nexport function Empty03({\n title,\n description,\n cardTitle,\n views,\n items,\n status,\n defaultStatus = \"failed\",\n onRetry,\n errorIcon,\n errorTitle,\n errorDescription,\n errorDetail,\n secondaryAction,\n labels = {},\n className,\n ...props\n}: Empty03Props) {\n const id = useId();\n const [ownStatus, setOwnStatus] = useState<Empty03Status>(defaultStatus);\n const load = status ?? ownStatus;\n const [view, setView] = useState(views?.[0]?.value ?? \"\");\n\n const retry = async () => {\n setOwnStatus(\"loading\");\n try {\n await onRetry?.();\n setOwnStatus(\"loaded\");\n } catch {\n setOwnStatus(\"failed\");\n }\n };\n\n const match = views?.find((entry) => entry.value === view)?.match;\n const shown = match ? items.filter(match) : items;\n\n return (\n <div className={cx(\"ow-empty03\", className)} {...props}>\n <main className=\"ow-empty03__panel\">\n <div className=\"ow-empty03__header\">\n <div>\n <Text variant=\"heading\" as=\"h2\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-empty03__subtitle\">\n {description}\n </Text>\n ) : null}\n </div>\n </div>\n\n <section className=\"ow-empty03__card\" aria-labelledby={id} aria-busy={load === \"loading\"}>\n <div className=\"ow-empty03__card-head\">\n <Text variant=\"card-title\" as=\"h3\" id={id}>\n {cardTitle}\n </Text>\n {views?.length ? (\n <SegmentedControl\n size=\"sm\"\n aria-label={labels.views ?? \"Show\"}\n options={views.map(({ value, label }) => ({ value, label }))}\n value={view}\n onChange={setView}\n disabled={load !== \"loaded\"}\n />\n ) : null}\n </div>\n\n <div className={cx(\"ow-empty03__body\", load !== \"loaded\" && \"ow-empty03__body--waiting\")}>\n {load === \"failed\" ? (\n <EmptyState\n icon={errorIcon ?? <CloudOffIcon size={20} />}\n title={errorTitle}\n description={\n errorDetail ? (\n <>\n {errorDescription}\n <br />\n <Code className=\"ow-empty03__detail\">{errorDetail}</Code>\n </>\n ) : (\n errorDescription\n )\n }\n actions={\n <>\n <Button variant=\"primary\" startIcon={<RotateCwIcon size={16} />} onClick={retry}>\n {labels.retry ?? \"Try again\"}\n </Button>\n {secondaryAction ? <BlockActionButton action={secondaryAction} variant=\"secondary\" size=\"md\" shape=\"rounded\" /> : null}\n </>\n }\n />\n ) : null}\n\n {load === \"loading\" ? (\n <div className=\"ow-empty03__loading\" role=\"status\">\n <Spinner size=\"lg\" label=\"\" />\n <Text variant=\"copy\">{labels.loading ?? \"Loading\u2026\"}</Text>\n </div>\n ) : null}\n\n {load === \"loaded\" ? (\n <ul className=\"ow-empty03__runs\" aria-label={labels.list ?? (typeof cardTitle === \"string\" ? cardTitle : undefined)}>\n {shown.map((item, index) => (\n <li key={item.id ?? index} className=\"ow-empty03__run\">\n <span className=\"ow-empty03__agent\" aria-hidden=\"true\">\n {item.icon}\n </span>\n <span className=\"ow-empty03__run-text\">\n <Text variant=\"label\" truncate>\n {item.title}\n </Text>\n {item.meta ? (\n <Text variant=\"caption\" truncate>\n {item.meta}\n </Text>\n ) : null}\n </span>\n <Text variant=\"caption\" className=\"ow-empty03__run-time\">\n {item.time}\n </Text>\n {item.status ? (\n <Badge size=\"sm\" variant={item.status.tone}>\n {item.status.label}\n </Badge>\n ) : null}\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n </section>\n </main>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { cx, DotGrid, Link, SearchField, Text } from \"@openwarelabs/ui\";\n\nimport type { ErrorPage01Props } from \"./ErrorPage01.types\";\n\n/** A 404 on the dot grid: the zero drawn as an empty orbit, a search field, and links to the main places. */\nexport function ErrorPage01({ brand, helpLink, title, description, places, maxPlaces = 4, onSearch, labels = {}, className, ...props }: ErrorPage01Props) {\n const [query, setQuery] = useState(\"\");\n const words = query.trim().toLowerCase();\n const matches = places\n .filter((place) => !words || `${place.name} ${place.description ?? \"\"} ${place.keywords ?? \"\"}`.toLowerCase().includes(words))\n .slice(0, maxPlaces);\n\n return (\n <div className={cx(\"ow-error-page01\", className)} {...props}>\n <DotGrid fade interactive className=\"ow-error-page01__ground\">\n <header className=\"ow-error-page01__bar\">\n <Link href={brand.href} variant=\"standalone\" className=\"ow-error-page01__logo\" aria-label={labels.home}>\n {brand.logo}\n <Text variant=\"card-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {helpLink ? (\n <Link href={helpLink.href} variant=\"standalone\">\n {helpLink.label}\n </Link>\n ) : null}\n </header>\n\n <main className=\"ow-error-page01__main\">\n <div className=\"ow-error-page01__code\" role=\"img\" aria-label={labels.code ?? \"Error 404\"}>\n <span aria-hidden=\"true\">4</span>\n <span className=\"ow-error-page01__zero\" aria-hidden=\"true\" />\n <span aria-hidden=\"true\">4</span>\n </div>\n <Text variant=\"heading\" as=\"h1\" className=\"ow-error-page01__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-error-page01__text\">\n {description}\n </Text>\n ) : null}\n\n <div className=\"ow-error-page01__search\">\n <SearchField\n aria-label={labels.search ?? \"Search\"}\n placeholder={labels.placeholder ?? \"Search\"}\n value={query}\n onChange={setQuery}\n onSubmit={(text) => {\n if (text.trim()) onSearch?.(text.trim());\n }}\n />\n </div>\n\n <ul className=\"ow-error-page01__places\" aria-label={labels.places ?? \"Places to go\"}>\n {matches.map((place) => (\n <li key={place.name}>\n <Link href={place.href} variant=\"standalone\" className=\"ow-error-page01__place\">\n <span className=\"ow-error-page01__place-icon\" aria-hidden=\"true\">\n {place.icon}\n </span>\n <span className=\"ow-error-page01__place-text\">\n <Text variant=\"label\">{place.name}</Text>\n {place.description ? (\n <Text variant=\"caption\" truncate className=\"ow-error-page01__place-description\">\n {place.description}\n </Text>\n ) : null}\n </span>\n </Link>\n </li>\n ))}\n {matches.length === 0 ? (\n <Text as=\"li\" variant=\"body\" tone=\"muted\" align=\"center\" className=\"ow-error-page01__none\" role=\"status\">\n {labels.noMatches ? labels.noMatches(query.trim()) : `Nothing here matches \u201C${query.trim()}\u201D. Press Enter to search.`}\n </Text>\n ) : null}\n </ul>\n </main>\n </DotGrid>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Badge, Button, CopyButton, cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { RotateCwIcon } from \"@blocks/shared/icons\";\nimport type { ErrorPage02Props } from \"./ErrorPage02.types\";\n\nconst reload = () => window.location.reload();\n\n/** A 500: that it isn't their fault, a button to try again, and an error ID to send to support. */\nexport function ErrorPage02({\n brand,\n statusLink,\n badge,\n title,\n description,\n onRetry = reload,\n homeAction,\n report,\n errorId,\n visual,\n labels = {},\n className,\n ...props\n}: ErrorPage02Props) {\n const [retrying, setRetrying] = useState(false);\n const [tries, setTries] = useState(1);\n\n const tryAgain = async () => {\n setRetrying(true);\n try {\n await onRetry();\n } catch {\n // Still failing: the page stays, and counts the try.\n }\n setRetrying(false);\n setTries((count) => count + 1);\n };\n\n return (\n <div className={cx(\"ow-error-page02\", className)} {...props}>\n <header className=\"ow-error-page02__bar\">\n <Link href={brand.href} variant=\"standalone\" className=\"ow-error-page02__logo\" aria-label={labels.home}>\n {brand.logo}\n <Text variant=\"card-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {statusLink ? (\n <Link href={statusLink.href} variant=\"standalone\" className=\"ow-error-page02__status-link\">\n <span className=\"ow-error-page02__status-dot\" aria-hidden=\"true\" />\n {statusLink.label}\n </Link>\n ) : null}\n </header>\n\n <main className=\"ow-error-page02__main\">\n <div>\n {badge ? (\n <Badge size=\"sm\" variant=\"danger\">\n {badge}\n </Badge>\n ) : null}\n <Text variant=\"section-title\" as=\"h1\" className=\"ow-error-page02__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-error-page02__text\">\n {description}\n </Text>\n ) : null}\n <div className=\"ow-error-page02__actions\">\n <Button variant=\"primary\" startIcon={<RotateCwIcon size={16} />} loading={retrying} onClick={tryAgain}>\n {retrying ? (labels.retrying ?? \"Trying again\u2026\") : (labels.retry ?? \"Try again\")}\n </Button>\n {homeAction ? <BlockActionButton action={homeAction} variant=\"secondary\" size=\"md\" shape=\"rounded\" /> : null}\n </div>\n\n {report || errorId ? (\n <div className=\"ow-error-page02__report\">\n <Text variant=\"label\" as=\"p\">\n {labels.reportTitle ?? \"If it keeps happening\"}\n </Text>\n {report ? (\n <Text variant=\"copy\" className=\"ow-error-page02__report-text\">\n {report}\n {tries > 1 ? ` ${labels.tries ? labels.tries(tries) : `You've tried ${tries} times.`}` : \"\"}\n </Text>\n ) : null}\n {errorId ? (\n <div className=\"ow-error-page02__id\">\n <Text variant=\"caption\">{labels.errorId ?? \"Error ID\"}</Text>\n <Text variant=\"code\" truncate className=\"ow-error-page02__id-value\">\n {errorId}\n </Text>\n <CopyButton value={errorId} label={labels.copy ?? \"Copy ID\"} />\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {visual ? <div className=\"ow-error-page02__visual\">{visual}</div> : null}\n </main>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Badge, Button, cx, DotGrid, Link, Steps, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowUpRightIcon, BellRingIcon, CheckIcon, ClockIcon, RotateCwIcon } from \"@blocks/shared/icons\";\nimport type { ErrorPage03Props } from \"./ErrorPage03.types\";\n\nconst reload = () => window.location.reload();\n\n/** A maintenance page: when it'll be back, how the work is going, and a way to hear when it's done. */\nexport function ErrorPage03({\n brand,\n statusLink,\n badge,\n title,\n description,\n backTime,\n backDetail,\n onCheckAgain = reload,\n onNotify,\n steps,\n currentStep = 0,\n labels = {},\n className,\n ...props\n}: ErrorPage03Props) {\n const [checking, setChecking] = useState(false);\n const [notified, setNotified] = useState(false);\n\n const checkAgain = async () => {\n setChecking(true);\n try {\n await onCheckAgain();\n } catch {\n // Still under way: the page stays.\n }\n setChecking(false);\n };\n\n return (\n <div className={cx(\"ow-error-page03\", className)} {...props}>\n <DotGrid fade className=\"ow-error-page03__ground\">\n <header className=\"ow-error-page03__bar\">\n <Link href={brand.href} variant=\"standalone\" className=\"ow-error-page03__logo\" aria-label={labels.home}>\n {brand.logo}\n <Text variant=\"card-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {statusLink ? (\n <Link href={statusLink.href} variant=\"standalone\" className=\"ow-error-page03__status\">\n {statusLink.label}\n <ArrowUpRightIcon size={15} />\n </Link>\n ) : null}\n </header>\n\n <main className=\"ow-error-page03__main\">\n <div>\n {badge ? (\n <Badge size=\"sm\" variant=\"warning\">\n {badge}\n </Badge>\n ) : null}\n <Text variant=\"section-title\" as=\"h1\" className=\"ow-error-page03__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-error-page03__text\">\n {description}\n </Text>\n ) : null}\n\n {backTime ? (\n <div className=\"ow-error-page03__back\">\n <span className=\"ow-error-page03__clock\" aria-hidden=\"true\">\n <ClockIcon size={20} />\n </span>\n <div className=\"ow-error-page03__time\">\n <Text variant=\"heading\" as=\"p\" className=\"ow-error-page03__time-main\">\n {backTime}\n </Text>\n {backDetail ? <Text variant=\"copy\">{backDetail}</Text> : null}\n </div>\n </div>\n ) : null}\n\n <div className=\"ow-error-page03__actions\">\n <Button variant=\"primary\" startIcon={<RotateCwIcon size={16} />} loading={checking} onClick={checkAgain}>\n {labels.checkAgain ?? \"Check again\"}\n </Button>\n {onNotify ? (\n <Button\n startIcon={notified ? <CheckIcon size={16} /> : <BellRingIcon size={16} />}\n disabled={notified}\n onClick={() => {\n setNotified(true);\n onNotify();\n }}\n >\n {notified ? (labels.notified ?? \"We'll email you\") : (labels.notify ?? \"Email me when it's back\")}\n </Button>\n ) : null}\n </div>\n </div>\n\n {steps?.length ? (\n <div className=\"ow-error-page03__plan\">\n <Steps title={labels.steps ?? \"Maintenance plan\"} current={currentStep} items={steps} />\n </div>\n ) : null}\n </main>\n </DotGrid>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Avatar, Badge, Button, cx, Link, Popover, ScrollShadow, Tab, TabList, TabPanel, Tabs, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { BellIcon, CheckCheckIcon, SettingsIcon } from \"@blocks/shared/icons\";\nimport type { Notifications01Item, Notifications01ListProps, Notifications01Props } from \"./Notifications01.types\";\n\nfunction Sender({ item }: { item: Notifications01Item }) {\n if (item.icon) {\n return (\n <span className={cx(\"ow-notifications01__agent\", item.tone === \"danger\" && \"ow-notifications01__agent--danger\")} aria-hidden=\"true\">\n {item.icon}\n </span>\n );\n }\n return <Avatar name={item.from ?? \"\"} size=\"md\" />;\n}\n\nfunction NotificationList({ items, isUnread, onOpen, labels }: Notifications01ListProps) {\n if (!items.length) {\n return (\n <Text tone=\"muted\" align=\"center\" className=\"ow-notifications01__empty\">\n {labels.empty ?? \"Nothing here yet.\"}\n </Text>\n );\n }\n return (\n <ScrollShadow maxSize={320}>\n <ul className=\"ow-notifications01__list\">\n {items.map((item) => {\n const unread = isUnread(item);\n return (\n <li key={item.id}>\n {/* Each one opens the thing it's about; opening it marks it read. */}\n <Link\n href={item.href ?? \"#\"}\n variant=\"standalone\"\n className=\"ow-notifications01__item\"\n onClick={(event) => {\n if (item.href === undefined) event.preventDefault();\n onOpen(item);\n }}\n >\n {/* Named by what it shows, so voice control matches it; \"Unread\" is for screen readers only. */}\n {unread ? <VisuallyHidden>{labels.unread ?? \"Unread: \"}</VisuallyHidden> : null}\n <Sender item={item} />\n <span className=\"ow-notifications01__text\">\n <Text as=\"span\" tone=\"muted\">\n {item.message}\n </Text>\n {item.quote ? (\n <Text variant=\"caption\" tone=\"soft\" className=\"ow-notifications01__quote\">\n {item.quote}\n </Text>\n ) : null}\n <Text variant=\"caption\">\n {item.where} \u00B7 {item.when}\n </Text>\n </span>\n {unread ? <span className=\"ow-notifications01__unread\" /> : null}\n </Link>\n </li>\n );\n })}\n </ul>\n </ScrollShadow>\n );\n}\n\n/** A bell with the unread count that opens the latest notifications, in All and Mentions tabs, with Mark all as read. */\nexport function Notifications01({\n notifications,\n onOpen,\n onMarkAllRead,\n viewAllHref,\n onSettings,\n defaultOpen = false,\n labels = {},\n className,\n ...props\n}: Notifications01Props) {\n // The ones read here, on top of what came in already read.\n const [read, setRead] = useState<ReadonlySet<string>>(() => new Set());\n const [tab, setTab] = useState(\"all\");\n // Opened on load, it doesn't pull focus into it; once someone opens it, focus moves in.\n const [focusOnOpen, setFocusOnOpen] = useState(!defaultOpen);\n\n const isUnread = (item: Notifications01Item) => Boolean(item.unread) && !read.has(item.id);\n const unread = notifications.filter(isUnread).length;\n const mentions = notifications.filter((item) => item.mention);\n const unreadMentions = mentions.filter(isUnread).length;\n\n const open = (item: Notifications01Item) => {\n setRead((current) => new Set(current).add(item.id));\n onOpen?.(item);\n };\n const markAllRead = () => {\n setRead(new Set(notifications.map((item) => item.id)));\n onMarkAllRead?.();\n };\n\n const title = labels.title ?? \"Notifications\";\n\n return (\n <div className={cx(\"ow-notifications01\", className)} {...props}>\n <Popover\n defaultOpen={defaultOpen}\n autoFocus={focusOnOpen}\n onOpenChange={(isOpen) => isOpen || setFocusOnOpen(true)}\n placement=\"bottom-end\"\n width=\"min(400px, calc(100vw - 16px))\"\n aria-label={title}\n className=\"ow-notifications01__popover\"\n trigger={\n <Button\n className=\"ow-notifications01__bell\"\n variant=\"ghost\"\n iconOnly\n aria-label={labels.bell ? labels.bell(unread) : unread ? `Notifications, ${unread} unread` : \"Notifications\"}\n >\n <BellIcon size={18} />\n {unread ? (\n <Badge className=\"ow-notifications01__count\" size=\"sm\" variant=\"active\" aria-hidden=\"true\">\n {unread}\n </Badge>\n ) : null}\n </Button>\n }\n >\n <div className=\"ow-notifications01__head\">\n <Text variant=\"card-title\" as=\"h2\">\n {title}\n </Text>\n <Button variant=\"ghost\" size=\"sm\" startIcon={<CheckCheckIcon size={16} />} disabled={!unread} onClick={markAllRead}>\n {labels.markAllRead ?? \"Mark all as read\"}\n </Button>\n </div>\n\n <Tabs className=\"ow-notifications01__tabs\" variant=\"line\" value={tab} onValueChange={setTab}>\n <TabList aria-label={labels.tabs ?? \"Show\"}>\n <Tab value=\"all\">\n {labels.all ?? \"All\"}\n {unread ? (\n <Badge size=\"sm\" className=\"ow-notifications01__tab-count\">\n {unread}\n </Badge>\n ) : null}\n </Tab>\n <Tab value=\"mentions\">\n {labels.mentions ?? \"Mentions\"}\n {unreadMentions ? (\n <Badge size=\"sm\" className=\"ow-notifications01__tab-count\">\n {unreadMentions}\n </Badge>\n ) : null}\n </Tab>\n </TabList>\n <TabPanel value=\"all\">\n <NotificationList items={notifications} isUnread={isUnread} onOpen={open} labels={labels} />\n </TabPanel>\n <TabPanel value=\"mentions\">\n <NotificationList items={mentions} isUnread={isUnread} onOpen={open} labels={labels} />\n </TabPanel>\n </Tabs>\n\n <div className=\"ow-notifications01__foot\">\n {viewAllHref !== undefined ? (\n <Link href={viewAllHref} variant=\"standalone\">\n {labels.viewAll ?? \"View all notifications\"}\n </Link>\n ) : (\n <span />\n )}\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={labels.settings ?? \"Notification settings\"} onClick={onSettings}>\n <SettingsIcon size={16} />\n </Button>\n </div>\n </Popover>\n </div>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Avatar, Button, cx, SegmentedControl, Text } from \"@openwarelabs/ui\";\n\nimport type { Notifications02Day, Notifications02Event, Notifications02Props } from \"./Notifications02.types\";\n\nfunction Node({ event }: { event: Notifications02Event }) {\n if (event.icon) {\n return (\n <span\n className={cx(\"ow-notifications02__node\", event.tone && event.tone !== \"default\" && `ow-notifications02__node--${event.tone}`)}\n aria-hidden=\"true\"\n >\n {event.icon}\n </span>\n );\n }\n return <Avatar name={event.by ?? \"\"} />;\n}\n\n/** An activity page: days down the page, each day's events on a thin rail, with a filter and a way to load older days. */\nexport function Notifications02({ title, description, days, kinds, onLoadEarlier, labels = {}, className, ...props }: Notifications02Props) {\n const id = useId();\n const [filter, setFilter] = useState(\"all\");\n const [earlier, setEarlier] = useState<Notifications02Day[] | null>(null);\n const [loading, setLoading] = useState(false);\n const panel = useRef<HTMLDivElement>(null);\n\n // The button goes once the older days are in; move focus to the first of them.\n useEffect(() => {\n if (earlier) panel.current?.querySelector<HTMLElement>(\"[data-earlier] h3\")?.focus();\n }, [earlier]);\n\n const loadEarlier = async () => {\n if (!onLoadEarlier) return;\n setLoading(true);\n try {\n setEarlier(await onLoadEarlier());\n } catch {\n // Didn't load: the button stays, to try again.\n }\n setLoading(false);\n };\n\n const shown = [...days.map((day) => ({ day, older: false })), ...(earlier ?? []).map((day) => ({ day, older: true }))]\n .map(({ day, older }) => ({ day, older, events: day.events.filter((event) => filter === \"all\" || event.kind === filter) }))\n .filter((entry) => entry.events.length > 0);\n\n return (\n <section className={cx(\"ow-notifications02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div ref={panel} className=\"ow-notifications02__panel\">\n <header className=\"ow-notifications02__header\">\n <div>\n <Text variant=\"heading\" as=\"h2\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-notifications02__subtitle\">\n {description}\n </Text>\n ) : null}\n </div>\n {kinds?.length ? (\n <SegmentedControl\n className=\"ow-notifications02__filter\"\n size=\"sm\"\n options={[{ value: \"all\", label: labels.all ?? \"All\" }, ...kinds]}\n value={filter}\n onChange={setFilter}\n aria-label={labels.filter ?? \"Show\"}\n />\n ) : null}\n </header>\n\n {shown.length ? (\n shown.map(({ day, older, events }, index) => (\n <section\n key={`${day.dateTime}-${older}`}\n className=\"ow-notifications02__day\"\n aria-labelledby={`${id}-day-${index}`}\n data-earlier={older || undefined}\n >\n <Text variant=\"label\" as=\"h3\" id={`${id}-day-${index}`} className=\"ow-notifications02__day-title\" tabIndex={-1}>\n {day.label}\n {day.date ? (\n <Text as=\"span\" tone=\"muted\">\n {day.date}\n </Text>\n ) : null}\n </Text>\n <ol className=\"ow-notifications02__events\">\n {events.map((event) => (\n <li key={event.id} className=\"ow-notifications02__event\">\n <Node event={event} />\n <div className=\"ow-notifications02__body\">\n <Text variant=\"copy\" className=\"ow-notifications02__line\">\n {event.line}\n </Text>\n {event.detail ? (\n <Text as=\"div\" variant=\"caption\" className=\"ow-notifications02__detail\">\n {event.detail}\n </Text>\n ) : null}\n </div>\n <Text variant=\"caption\" className=\"ow-notifications02__time\">\n <time dateTime={`${day.dateTime}T${event.time}`}>{event.time}</time>\n </Text>\n </li>\n ))}\n </ol>\n </section>\n ))\n ) : (\n <Text tone=\"muted\" align=\"center\" className=\"ow-notifications02__empty\">\n {labels.empty ?? \"Nothing of this kind yet.\"}\n </Text>\n )}\n\n <div className=\"ow-notifications02__more\">\n {onLoadEarlier && !earlier ? (\n <Button loading={loading} onClick={loadEarlier}>\n {labels.loadEarlier ?? \"Show earlier activity\"}\n </Button>\n ) : (\n <Text variant=\"caption\" as=\"p\">\n {labels.end ?? \"That's everything.\"}\n </Text>\n )}\n </div>\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { cx, Select, SettingsRow, Switch, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Notifications03Props, Notifications03Value } from \"./Notifications03.types\";\n\n/** Notification settings: a grid of switches with events down the side and channels across the top, and delivery settings under it. */\nexport function Notifications03({\n title,\n description,\n channels,\n groups,\n value,\n defaultValue = {},\n onChange,\n options = [],\n onOptionChange,\n labels = {},\n className,\n ...props\n}: Notifications03Props) {\n const id = useId();\n const [ownValue, setOwnValue] = useState<Notifications03Value>(defaultValue);\n const settings = value ?? ownValue;\n const [optionValues, setOptionValues] = useState<Record<string, string | boolean>>(() =>\n Object.fromEntries(options.map((option) => [option.id, option.defaultValue])),\n );\n const [saved, setSaved] = useState(false);\n const timer = useRef(0);\n useEffect(() => () => window.clearTimeout(timer.current), []);\n\n // Each change saves at once; say so for a moment.\n const save = () => {\n setSaved(true);\n window.clearTimeout(timer.current);\n timer.current = window.setTimeout(() => setSaved(false), 2000);\n };\n\n const toggle = (event: string, channel: string, on: boolean) => {\n const current = settings[event] ?? [];\n const next = { ...settings, [event]: on ? [...current, channel] : current.filter((other) => other !== channel) };\n setOwnValue(next);\n onChange?.(next, { event, channel, on });\n save();\n };\n\n const setOption = (option: string, next: string | boolean) => {\n setOptionValues((current) => ({ ...current, [option]: next }));\n onOptionChange?.(option, next);\n save();\n };\n\n return (\n <section className={cx(\"ow-notifications03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-notifications03__panel\">\n <div>\n <div className=\"ow-notifications03__header\">\n <Text variant=\"heading\" as=\"h2\" id={`${id}-title`}>\n {title}\n </Text>\n <Text variant=\"caption\" tone=\"success\" className=\"ow-notifications03__saved\" role=\"status\" data-hidden={saved ? undefined : \"\"}>\n {saved ? (\n <>\n <CheckIcon size={15} />\n {labels.saved ?? \"Saved\"}\n </>\n ) : null}\n </Text>\n </div>\n {description ? (\n <Text variant=\"copy\" className=\"ow-notifications03__subtitle\">\n {description}\n </Text>\n ) : null}\n </div>\n\n <div className=\"ow-notifications03__card\">\n <table className=\"ow-notifications03__grid\">\n <thead>\n <tr>\n <th scope=\"col\" className=\"ow-notifications03__corner\">\n <Text variant=\"caption\">{labels.event ?? \"Event\"}</Text>\n </th>\n {channels.map((channel) => (\n <th key={channel.id} scope=\"col\" className=\"ow-notifications03__channel\" id={`${id}-${channel.id}`}>\n <Text variant=\"label\" tone=\"soft\" className=\"ow-notifications03__channel-label\">\n {channel.icon}\n {channel.label}\n </Text>\n </th>\n ))}\n </tr>\n </thead>\n {groups.map((group, groupIndex) => (\n <tbody key={groupIndex}>\n <tr className=\"ow-notifications03__group\">\n <th scope=\"colgroup\" colSpan={channels.length + 1}>\n <Text variant=\"overline\">{group.label}</Text>\n </th>\n </tr>\n {group.events.map((event) => {\n const on = settings[event.id] ?? [];\n const rowId = `${id}-event-${event.id}`;\n return (\n <tr key={event.id}>\n <th scope=\"row\" className=\"ow-notifications03__event\">\n <span className=\"ow-notifications03__event-label\">\n <Text as=\"span\" id={rowId}>\n {event.label}\n </Text>\n {on.length === 0 ? <Text variant=\"caption\">{labels.muted ?? \"Muted\"}</Text> : null}\n </span>\n {event.description ? (\n <Text variant=\"caption\" className=\"ow-notifications03__event-description\">\n {event.description}\n </Text>\n ) : null}\n </th>\n {channels.map((channel) => (\n <td key={channel.id}>\n <span className=\"ow-notifications03__cell\">\n {event.unavailable?.includes(channel.id) ? (\n <span className=\"ow-notifications03__unavailable\">\n <span aria-hidden=\"true\">\u2013</span>\n <VisuallyHidden>\n {labels.unavailable\n ? labels.unavailable(channel.label)\n : `Not sent by ${channel.label.toLowerCase()}`}\n </VisuallyHidden>\n </span>\n ) : (\n <Switch\n checked={on.includes(channel.id)}\n onChange={(checked) => toggle(event.id, channel.id, checked)}\n aria-labelledby={`${id}-${channel.id} ${rowId}`}\n />\n )}\n </span>\n </td>\n ))}\n </tr>\n );\n })}\n </tbody>\n ))}\n </table>\n </div>\n\n {options.length ? (\n <div>\n <Text variant=\"card-title\" className=\"ow-notifications03__section-title\">\n {labels.options ?? \"Delivery\"}\n </Text>\n <div className=\"ow-notifications03__rows\">\n {options.map((option) => (\n <SettingsRow key={option.id} label={option.label} description={option.description}>\n {option.kind === \"select\" ? (\n <Select\n aria-label={option.label}\n size=\"sm\"\n value={String(optionValues[option.id] ?? option.defaultValue)}\n options={option.options}\n onChange={(next) => setOption(option.id, next)}\n />\n ) : (\n <Switch\n label={option.label}\n checked={Boolean(optionValues[option.id] ?? option.defaultValue)}\n onChange={(checked) => setOption(option.id, checked)}\n />\n )}\n </SettingsRow>\n ))}\n </div>\n </div>\n ) : null}\n </div>\n </section>\n );\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useId } from \"react\";\n\nimport { Chip, cx, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport type { Hero01Props } from \"./Hero01.types\";\n\n/** A centred hero: an eyebrow, the headline, a lead, two actions and a note, with the product below, running on into the page. */\nexport function Hero01({ eyebrow, title, description, primaryAction, secondaryAction, note, visual, className, ...props }: Hero01Props) {\n const titleId = useId();\n return (\n <section className={cx(\"ow-hero01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-hero01__inner\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"hero\" align=\"center\" id={titleId} className=\"ow-hero01__title\">\n {title}\n </Text>\n <Text variant=\"lead\" align=\"center\" className=\"ow-hero01__lead\">\n {description}\n </Text>\n <BlockActions className=\"ow-hero01__actions\" primary={primaryAction} secondary={secondaryAction} />\n {note ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-hero01__note\">\n {note}\n </Text>\n ) : null}\n </div>\n {visual ? <div className=\"ow-hero01__visual\">{visual}</div> : null}\n </section>\n );\n}\n", "import type { MouseEvent } from \"react\";\n\nimport { Button, buttonClassName, cx } from \"@openwarelabs/ui\";\n\nimport type { BlockActionButtonProps, BlockActionsProps } from \"@blocks/shared/shared.types\";\n\n/** One action as a large pill: a link styled as a button when it has an href, a button otherwise. */\nexport function BlockActionButton({ action, variant, size = \"lg\", shape = \"pill\", className, onAfterClick, fullWidth = false }: BlockActionButtonProps) {\n const { label, href, onClick, startIcon, endIcon, target, \"aria-label\": ariaLabel } = action;\n const click =\n onClick || onAfterClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick?.(event);\n onAfterClick?.();\n }\n : undefined;\n if (href !== undefined) {\n return (\n <a\n className={cx(buttonClassName({ variant, size, shape }), fullWidth && \"ow-button--full\", className)}\n href={href}\n target={target}\n rel={target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n aria-label={ariaLabel}\n onClick={click}\n >\n {startIcon ? <span className=\"ow-button__icon\">{startIcon}</span> : null}\n {label}\n {endIcon ? <span className=\"ow-button__icon\">{endIcon}</span> : null}\n </a>\n );\n }\n return (\n <Button\n variant={variant}\n shape={shape}\n size={size}\n startIcon={startIcon}\n endIcon={endIcon}\n aria-label={ariaLabel}\n onClick={click}\n fullWidth={fullWidth}\n className={className}\n >\n {label}\n </Button>\n );\n}\n\n/** The primary action and an optional secondary one, side by side. */\nexport function BlockActions({ primary, secondary, className }: BlockActionsProps) {\n return (\n <div className={className}>\n <BlockActionButton action={primary} variant=\"primary\" />\n {secondary ? <BlockActionButton action={secondary} variant=\"secondary\" /> : null}\n </div>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Chip, cx, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Hero02Props } from \"./Hero02.types\";\n\n/** A split hero: the words on the left and the product on the right. They stack on phones. */\nexport function Hero02({ eyebrow, title, description, primaryAction, secondaryAction, points, visual, className, ...props }: Hero02Props) {\n const titleId = useId();\n return (\n <section className={cx(\"ow-hero02\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-hero02__inner\">\n <div className=\"ow-hero02__text\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"page-title\" id={titleId} className=\"ow-hero02__title\">\n {title}\n </Text>\n <Text variant=\"lead\" className=\"ow-hero02__lead\">\n {description}\n </Text>\n <BlockActions className=\"ow-hero02__actions\" primary={primaryAction} secondary={secondaryAction} />\n {points?.length ? (\n <ul className=\"ow-hero02__points\">\n {points.map((point, index) => (\n <Text as=\"li\" key={index} tone=\"muted\" className=\"ow-hero02__point\">\n <CheckIcon size={15} />\n {point}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n {visual}\n </div>\n </section>\n );\n}\n", "import type { ReactNode } from \"react\";\n\nimport type { BlockIconProps } from \"@blocks/shared/shared.types\";\n\n// The few icons the blocks draw themselves, as Lucide shapes (ISC licence), so the package needs no icon library.\nconst icon = (paths: ReactNode) =>\n function BlockIcon({ size = 16, strokeWidth = 2, className }: BlockIconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n className={className}\n >\n {paths}\n </svg>\n );\n };\n\nexport const CheckIcon = /* @__PURE__ */ icon(<path d=\"M20 6 9 17l-5-5\" />);\nexport const MailIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\" />\n <rect x=\"2\" y=\"4\" width=\"20\" height=\"16\" rx=\"2\" />\n </>,\n);\nexport const DownloadIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M12 15V3\" />\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <path d=\"m7 10 5 5 5-5\" />\n </>,\n);\nexport const MenuIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M4 5h16\" />\n <path d=\"M4 12h16\" />\n <path d=\"M4 19h16\" />\n </>,\n);\nexport const XIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </>,\n);\nexport const ChevronDownIcon = /* @__PURE__ */ icon(<path d=\"m6 9 6 6 6-6\" />);\nexport const ChevronRightIcon = /* @__PURE__ */ icon(<path d=\"m9 18 6-6-6-6\" />);\nexport const ArrowRightIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M5 12h14\" />\n <path d=\"m12 5 7 7-7 7\" />\n </>,\n);\nexport const MinusIcon = /* @__PURE__ */ icon(<path d=\"M5 12h14\" />);\nexport const SunIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path d=\"M12 2v2\" />\n <path d=\"M12 20v2\" />\n <path d=\"m4.93 4.93 1.41 1.41\" />\n <path d=\"m17.66 17.66 1.41 1.41\" />\n <path d=\"M2 12h2\" />\n <path d=\"M20 12h2\" />\n <path d=\"m6.34 17.66-1.41 1.41\" />\n <path d=\"m19.07 4.93-1.41 1.41\" />\n </>,\n);\nexport const MoonIcon = /* @__PURE__ */ icon(\n <path d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\" />,\n);\nexport const MonitorIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"20\" height=\"14\" x=\"2\" y=\"3\" rx=\"2\" />\n <line x1=\"8\" x2=\"16\" y1=\"21\" y2=\"21\" />\n <line x1=\"12\" x2=\"12\" y1=\"17\" y2=\"21\" />\n </>,\n);\nexport const CircleCheckIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m16 9-5.5 5.5L8 12\" />\n </>,\n);\nexport const PauseIcon = /* @__PURE__ */ icon(\n <>\n <rect x=\"14\" y=\"3\" width=\"5\" height=\"18\" rx=\"1\" />\n <rect x=\"5\" y=\"3\" width=\"5\" height=\"18\" rx=\"1\" />\n </>,\n);\nexport const PlayIcon = /* @__PURE__ */ icon(<path d=\"M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z\" />);\nexport const QuoteIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z\" />\n <path d=\"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z\" />\n </>,\n);\n\nexport const ArrowLeftIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m12 19-7-7 7-7\" />\n <path d=\"M19 12H5\" />\n </>,\n);\n\nexport const CalendarDaysIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M8 2v3\" />\n <path d=\"M16 2v3\" />\n <rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" />\n <path d=\"M3 9h18\" />\n <path d=\"M8 13h.01\" />\n <path d=\"M12 13h.01\" />\n <path d=\"M16 13h.01\" />\n <path d=\"M8 17h.01\" />\n <path d=\"M12 17h.01\" />\n <path d=\"M16 17h.01\" />\n </>,\n);\n\nexport const ClockIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 6v6l4 2\" />\n </>,\n);\n\nexport const MapPinIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0\" />\n <circle cx=\"12\" cy=\"10\" r=\"3\" />\n </>,\n);\n\nexport const LinkIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\" />\n <path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\" />\n </>,\n);\n\nexport const MailCheckIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M22 13V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h8\" />\n <path d=\"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7\" />\n <path d=\"m16 19 2 2 4-4\" />\n </>,\n);\n\nexport const ShieldCheckIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z\" />\n <path d=\"m9 12 2 2 4-4\" />\n </>,\n);\n\nexport const KeyRoundIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\" />\n <circle cx=\"16.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\" />\n </>,\n);\n\nexport const EyeIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n);\n\nexport const EyeOffIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\" />\n <path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\" />\n <path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\" />\n <path d=\"m2 2 20 20\" />\n </>,\n);\n\nexport const PlusIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </>,\n);\n\nexport const EllipsisIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </>,\n);\n\nexport const CopyIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\" />\n <path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\" />\n </>,\n);\n\nexport const UserMinusIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2\" />\n <circle cx=\"9\" cy=\"7\" r=\"4\" />\n <line x1=\"22\" x2=\"16\" y1=\"11\" y2=\"11\" />\n </>,\n);\n\nexport const RotateCwIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\" />\n <path d=\"M21 3v5h-5\" />\n </>,\n);\n\nexport const SendIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z\" />\n <path d=\"m21.854 2.147-10.94 10.939\" />\n </>,\n);\n\nexport const Trash2Icon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10 11v6\" />\n <path d=\"M14 11v6\" />\n <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6\" />\n <path d=\"M3 6h18\" />\n <path d=\"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n </>,\n);\n\nexport const ArchiveIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"20\" height=\"5\" x=\"2\" y=\"3\" rx=\"1\" />\n <path d=\"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8\" />\n <path d=\"M10 12h4\" />\n </>,\n);\n\nexport const ArchiveRestoreIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"20\" height=\"5\" x=\"2\" y=\"3\" rx=\"1\" />\n <path d=\"M4 8v11a2 2 0 0 0 2 2h2\" />\n <path d=\"M20 8v11a2 2 0 0 1-2 2h-2\" />\n <path d=\"m9 15 3-3 3 3\" />\n <path d=\"M12 12v9\" />\n </>,\n);\n\nexport const ArrowLeftRightIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M8 3 4 7l4 4\" />\n <path d=\"M4 7h16\" />\n <path d=\"m16 21 4-4-4-4\" />\n <path d=\"M20 17H4\" />\n </>,\n);\n\nexport const RotateCcwIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8\" />\n <path d=\"M3 3v5h5\" />\n </>,\n);\n\nexport const SearchIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m21 21-4.34-4.34\" />\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n </>,\n);\n\nexport const ChevronsUpDownIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </>,\n);\n\nexport const ChevronLeftIcon = /* @__PURE__ */ icon(<path d=\"m15 18-6-6 6-6\" />);\nexport const PanelRightIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M15 3v18\" />\n </>,\n);\n\nexport const PanelLeftOpenIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d=\"m14 9 3 3-3 3\" />\n </>,\n);\n\nexport const PanelLeftCloseIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n <path d=\"m16 15-3-3 3-3\" />\n </>,\n);\n\nexport const SearchXIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m13.5 8.5-5 5\" />\n <path d=\"m8.5 8.5 5 5\" />\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </>,\n);\n\nexport const MessageSquareIcon = /* @__PURE__ */ icon(\n <path d=\"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z\" />,\n);\n\nexport const PencilIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z\" />\n <path d=\"m15 5 4 4\" />\n </>,\n);\n\nexport const TriangleAlertIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </>,\n);\n\nexport const CreditCardIcon = /* @__PURE__ */ icon(\n <>\n <rect width=\"20\" height=\"14\" x=\"2\" y=\"5\" rx=\"2\" />\n <line x1=\"2\" x2=\"22\" y1=\"10\" y2=\"10\" />\n <path d=\"M6 14h2\" />\n </>,\n);\n\nexport const ArrowUpIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"m5 12 7-7 7 7\" />\n <path d=\"M12 19V5\" />\n </>,\n);\n\nexport const CircleStopIcon = /* @__PURE__ */ icon(\n <>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <rect x=\"9\" y=\"9\" width=\"6\" height=\"6\" rx=\"1\" />\n </>,\n);\n\nexport const SquarePenIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\" />\n <path d=\"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\" />\n </>,\n);\n\nexport const StarIcon = /* @__PURE__ */ icon(\n <path d=\"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z\" />,\n);\n\nexport const ListFilterIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M2 5h20\" />\n <path d=\"M6 12h12\" />\n <path d=\"M9 19h6\" />\n </>,\n);\n\nexport const CloudOffIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10.94 5.274A7 7 0 0 1 15.71 10h1.79a4.5 4.5 0 0 1 4.222 6.057\" />\n <path d=\"M18.796 18.81A4.5 4.5 0 0 1 17.5 19H9A7 7 0 0 1 5.79 5.78\" />\n <path d=\"m2 2 20 20\" />\n </>,\n);\n\nexport const ArrowUpRightIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M7 7h10v10\" />\n <path d=\"M7 17 17 7\" />\n </>,\n);\n\nexport const BellRingIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10.268 21a2 2 0 0 0 3.464 0\" />\n <path d=\"M22 8c0-2.3-.8-4.3-2-6\" />\n <path d=\"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\" />\n <path d=\"M4 2C2.8 3.7 2 5.7 2 8\" />\n </>,\n);\n\nexport const BellIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M10.268 21a2 2 0 0 0 3.464 0\" />\n <path d=\"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326\" />\n </>,\n);\n\nexport const CheckCheckIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M18 6 7 17l-5-5\" />\n <path d=\"m22 10-7.5 7.5L13 16\" />\n </>,\n);\n\nexport const SettingsIcon = /* @__PURE__ */ icon(\n <>\n <path d=\"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </>,\n);\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, Chip, cx, Input, Text } from \"@openwarelabs/ui\";\n\nimport { CheckIcon, MailIcon } from \"@blocks/shared/icons\";\nimport type { Hero03Props } from \"./Hero03.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** A hero with an email field: join a waitlist or start a trial in one step, with a confirmation in place of the form. */\nexport function Hero03({\n eyebrow,\n title,\n description,\n submitLabel,\n onSubmit,\n note,\n successTitle,\n successDescription,\n visual,\n labels = {},\n className,\n ...props\n}: Hero03Props) {\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState<string | null>(null);\n const [sending, setSending] = useState(false);\n const [joined, setJoined] = useState<string | null>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const doneRef = useRef<HTMLDivElement>(null);\n const touched = useRef(false);\n const id = useId();\n const titleId = `${id}-title`;\n\n // Moving between the form and the confirmation, take focus along so it isn't lost with the element that had it.\n useEffect(() => {\n if (!touched.current) return;\n if (joined) doneRef.current?.focus();\n else inputRef.current?.focus();\n }, [joined]);\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const value = email.trim();\n const problem = !value\n ? (labels.empty ?? \"Enter your work email to join the waitlist.\")\n : !emailPattern.test(value)\n ? (labels.invalid ?? \"That doesn't look like an email address. Try one like maya@example.com.\")\n : null;\n setError(problem);\n if (problem) {\n inputRef.current?.focus();\n return;\n }\n setSending(true);\n try {\n await onSubmit(value);\n touched.current = true;\n setJoined(value);\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n inputRef.current?.focus();\n } finally {\n setSending(false);\n }\n };\n\n return (\n <section className={cx(\"ow-hero03\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-hero03__inner\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"hero\" align=\"center\" id={titleId} className=\"ow-hero03__title\">\n {title}\n </Text>\n <Text variant=\"lead\" align=\"center\" className=\"ow-hero03__lead\">\n {description}\n </Text>\n\n {joined ? (\n <div ref={doneRef} className=\"ow-hero03__done\" tabIndex={-1}>\n <span className=\"ow-hero03__done-icon\" aria-hidden=\"true\">\n <CheckIcon size={16} />\n </span>\n <div className=\"ow-hero03__done-text\">\n <Text variant=\"label\">{successTitle}</Text>\n {successDescription ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-hero03__done-detail\">\n {successDescription(joined)}\n </Text>\n ) : null}\n </div>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => {\n touched.current = true;\n setJoined(null);\n }}\n >\n {labels.change ?? \"Change email\"}\n </Button>\n </div>\n ) : (\n <form className=\"ow-hero03__form\" noValidate onSubmit={submit}>\n <div className=\"ow-hero03__row\">\n <Input\n ref={inputRef}\n className=\"ow-hero03__input\"\n type=\"email\"\n autoComplete=\"email\"\n aria-label={labels.email ?? \"Work email\"}\n aria-describedby={error ? `${id}-error` : note ? `${id}-note` : undefined}\n placeholder={labels.placeholder ?? \"you@company.com\"}\n startContent={<MailIcon size={16} />}\n value={email}\n isInvalid={Boolean(error)}\n onChange={(event) => {\n setEmail(event.target.value);\n if (error) setError(null);\n }}\n />\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" size=\"lg\" loading={sending}>\n {submitLabel}\n </Button>\n </div>\n {error ? (\n <Text tone=\"danger\" id={`${id}-error`} className=\"ow-hero03__error\" role=\"alert\">\n {error}\n </Text>\n ) : null}\n {note ? (\n <Text variant=\"caption\" as=\"p\" id={`${id}-note`} className=\"ow-hero03__note\">\n {note}\n </Text>\n ) : null}\n </form>\n )}\n\n {visual}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Chip, cx, DotGrid, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport type { Hero04Props } from \"./Hero04.types\";\n\n/** A hero on Openware's dot grid, with the dots turning brass under the pointer and room for something either side. */\nexport function Hero04({ eyebrow, title, description, primaryAction, secondaryAction, start, end, interactive = true, className, ...props }: Hero04Props) {\n const titleId = useId();\n return (\n <section className={cx(\"ow-hero04\", className)} aria-labelledby={titleId} {...props}>\n <DotGrid fade interactive={interactive} className=\"ow-hero04__grid\">\n <div className=\"ow-hero04__layout\">\n {start}\n <div className=\"ow-hero04__text\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"hero\" align=\"center\" id={titleId} className=\"ow-hero04__title\">\n {title}\n </Text>\n <Text variant=\"lead\" align=\"center\" className=\"ow-hero04__lead\">\n {description}\n </Text>\n <BlockActions className=\"ow-hero04__actions\" primary={primaryAction} secondary={secondaryAction} />\n </div>\n {end}\n </div>\n </DotGrid>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Chip, cx, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport type { Hero05Props } from \"./Hero05.types\";\n\n/** The usual hero, with the headline beside the lead, then a row of customers' logos as the first proof. */\nexport function Hero05({ eyebrow, title, description, primaryAction, secondaryAction, logosTitle, logos, className, ...props }: Hero05Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-hero05\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-hero05__inner\">\n <div className=\"ow-hero05__top\">\n <div className=\"ow-hero05__heading\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"hero\" id={`${id}-title`} className=\"ow-hero05__title\">\n {title}\n </Text>\n </div>\n <div>\n <Text variant=\"lead\">{description}</Text>\n <BlockActions className=\"ow-hero05__actions\" primary={primaryAction} secondary={secondaryAction} />\n </div>\n </div>\n\n <div className=\"ow-hero05__proof\">\n <Text tone=\"muted\" id={`${id}-logos`}>\n {logosTitle}\n </Text>\n <ul className=\"ow-hero05__list\" aria-labelledby={`${id}-logos`}>\n {logos.map((logo) => (\n <li key={logo.name} className=\"ow-hero05__logo\">\n {logo.logo}\n </li>\n ))}\n </ul>\n </div>\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useState } from \"react\";\n\nimport { Button, buttonClassName, Chip, cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport { DownloadIcon } from \"@blocks/shared/icons\";\nimport type { Hero06Platform, Hero06PlatformId, Hero06Props } from \"./Hero06.types\";\n\n/** The computer this page is open on, or null for phones, tablets and anything unknown. */\nfunction detectPlatform(): Hero06PlatformId | null {\n const nav = navigator as Navigator & { userAgentData?: { platform?: string } };\n const name = `${nav.userAgentData?.platform ?? \"\"} ${navigator.platform} ${navigator.userAgent}`.toLowerCase();\n if (/android|iphone|ipad|ipod/.test(name) || (name.includes(\"mac\") && navigator.maxTouchPoints > 1)) return null;\n if (name.includes(\"mac\")) return \"mac\";\n if (name.includes(\"win\")) return \"windows\";\n if (name.includes(\"linux\") || name.includes(\"x11\")) return \"linux\";\n return null;\n}\n\nconst defaultLabel = (name: string) => `Download for ${name}`;\n\n/** A hero for a desktop app: a download button for each system, with the visitor's own first, and the app beside it. */\nexport function Hero06({\n eyebrow,\n title,\n description,\n platforms,\n version,\n otherDownloads,\n downloadLabel = defaultLabel,\n visual,\n className,\n ...props\n}: Hero06Props) {\n const titleId = useId();\n // Until the page knows which computer it's on (after it mounts), the first platform leads.\n const [detected, setDetected] = useState<Hero06PlatformId | null>(null);\n useEffect(() => setDetected(detectPlatform()), []);\n\n const current = platforms.find((platform) => platform.id === detected) ?? platforms[0];\n const order = current ? [current, ...platforms.filter((platform) => platform !== current)] : [];\n\n const button = (platform: Hero06Platform, primary: boolean) => {\n const label = downloadLabel(platform.name);\n const content = primary ? label : platform.name;\n const icon = primary ? <DownloadIcon size={16} /> : null;\n if (platform.href !== undefined) {\n return (\n <a\n key={platform.id}\n className={buttonClassName({ variant: primary ? \"primary\" : \"secondary\", size: \"lg\", shape: \"pill\" })}\n href={platform.href}\n aria-label={primary ? undefined : label}\n onClick={platform.onDownload}\n >\n {icon ? <span className=\"ow-button__icon\">{icon}</span> : null}\n {content}\n </a>\n );\n }\n return (\n <Button\n key={platform.id}\n variant={primary ? \"primary\" : \"secondary\"}\n shape=\"pill\"\n size=\"lg\"\n startIcon={icon}\n aria-label={primary ? undefined : label}\n onClick={platform.onDownload}\n >\n {content}\n </Button>\n );\n };\n\n return (\n <section className={cx(\"ow-hero06\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-hero06__inner\">\n <div className=\"ow-hero06__text\">\n {eyebrow ? <Chip>{eyebrow}</Chip> : null}\n <Text variant=\"page-title\" id={titleId} className=\"ow-hero06__title\">\n {title}\n </Text>\n <Text variant=\"lead\" className=\"ow-hero06__lead\">\n {description}\n </Text>\n <div className=\"ow-hero06__buttons\">{order.map((platform, index) => button(platform, index === 0))}</div>\n {version || current?.requirement || otherDownloads ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-hero06__meta\">\n {version ? <span>{version}</span> : null}\n {current?.requirement ? <span>{current.requirement}</span> : null}\n {otherDownloads ? (\n <span className=\"ow-hero06__other\">\n <Link href={otherDownloads.href} variant=\"muted\">\n {otherDownloads.label}\n </Link>\n </span>\n ) : null}\n </Text>\n ) : null}\n </div>\n {visual}\n </div>\n </section>\n );\n}\n", "import { useEffect, useState } from \"react\";\n\nimport { Button, cx, Link, Popover, SiteHeader } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport { MenuIcon } from \"@blocks/shared/icons\";\nimport type { Header01Props } from \"./Header01.types\";\n\n/**\n * A blurred pill that floats above the page and follows it down: the logo, the links in the middle and one call\n * to action. On phones the links fold into a menu behind a button. Put it first inside the page's scrolling area.\n */\nexport function Header01({ brand, links, primaryAction, secondaryLink, labels = {}, className, ...props }: Header01Props) {\n const [menuOpen, setMenuOpen] = useState(false);\n const menuLabel = labels.menu ?? \"Menu\";\n\n // The menu button only shows on phones; close its menu if the window grows past them.\n useEffect(() => {\n const wide = window.matchMedia(\"(min-width: 761px)\");\n const onChange = () => wide.matches && setMenuOpen(false);\n wide.addEventListener(\"change\", onChange);\n return () => wide.removeEventListener(\"change\", onChange);\n }, []);\n\n return (\n <div className={cx(\"ow-header01\", className)} {...props}>\n <SiteHeader\n brand={<BlockBrandLink brand={brand} className=\"ow-header01__brand\" />}\n nav={links.map((link, index) => (\n <Link key={index} href={link.href} variant=\"standalone\" aria-current={link.current ? \"page\" : undefined}>\n {link.label}\n </Link>\n ))}\n actions={\n <>\n {secondaryLink ? (\n <Link\n href={secondaryLink.href}\n variant=\"standalone\"\n className=\"ow-header01__sign-in\"\n aria-current={secondaryLink.current ? \"page\" : undefined}\n >\n {secondaryLink.label}\n </Link>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n <span className=\"ow-header01__phone-menu\">\n <Popover\n aria-label={menuLabel}\n placement=\"bottom-end\"\n width={240}\n open={menuOpen}\n onOpenChange={setMenuOpen}\n trigger={\n <Button variant=\"ghost\" shape=\"pill\" size=\"sm\" iconOnly aria-label={menuLabel}>\n <MenuIcon size={16} />\n </Button>\n }\n >\n <nav className=\"ow-header01__menu\" aria-label=\"Main\">\n {links.map((link, index) => (\n <Link\n key={index}\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header01__menu-link\"\n aria-current={link.current ? \"page\" : undefined}\n onClick={() => setMenuOpen(false)}\n >\n {link.label}\n </Link>\n ))}\n {secondaryLink ? (\n <Link\n href={secondaryLink.href}\n variant=\"standalone\"\n className=\"ow-header01__menu-link ow-header01__menu-link--sign-in\"\n onClick={() => setMenuOpen(false)}\n >\n {secondaryLink.label}\n </Link>\n ) : null}\n </nav>\n </Popover>\n </span>\n </>\n }\n />\n </div>\n );\n}\n", "import { forwardRef } from \"react\";\n\nimport { Link } from \"@openwarelabs/ui\";\n\nimport type { BlockBrandLinkProps } from \"@blocks/shared/shared.types\";\n\n/** The product's logo and name, as a link home. */\nexport const BlockBrandLink = /* @__PURE__ */ forwardRef<HTMLAnchorElement, BlockBrandLinkProps>(function BlockBrandLink({ brand, className }, ref) {\n return (\n <Link ref={ref} href={brand.href} variant=\"standalone\" className={className}>\n {brand.logo}\n {brand.name}\n </Link>\n );\n});\n", "import { Fragment, useEffect, useId, useState } from \"react\";\n\nimport { Badge, Button, buttonClassName, cx, Link, Menu, MenuItem, MenuSeparator, Popover, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport { ArrowRightIcon, ChevronDownIcon, MenuIcon, XIcon } from \"@blocks/shared/icons\";\nimport type { Header02Panel, Header02Props } from \"./Header02.types\";\n\nconst navigateTo = (href: string) => window.location.assign(href);\n\nfunction PanelContent({ panel, onNavigate }: { panel: Header02Panel; onNavigate(): void }) {\n return (\n <div className=\"ow-header02__product\">\n <ul className=\"ow-header02__features\">\n {panel.features.map((feature, index) => (\n <li key={index}>\n <Link href={feature.href} variant=\"standalone\" className=\"ow-header02__feature\" onClick={onNavigate}>\n {feature.icon ? (\n <span className=\"ow-header02__feature-icon\" aria-hidden=\"true\">\n {feature.icon}\n </span>\n ) : null}\n <span className=\"ow-header02__feature-text\">\n <Text variant=\"label\">{feature.title}</Text>\n <Text variant=\"caption\">{feature.description}</Text>\n </span>\n </Link>\n </li>\n ))}\n </ul>\n {panel.highlight ? (\n <Link href={panel.highlight.href} variant=\"standalone\" className=\"ow-header02__news\" onClick={onNavigate}>\n {panel.highlight.badge ? (\n <Badge size=\"sm\" variant=\"active\">\n {panel.highlight.badge}\n </Badge>\n ) : null}\n <Text variant=\"label\">{panel.highlight.title}</Text>\n <Text as=\"span\" tone=\"primary\" className=\"ow-header02__news-link\">\n {panel.highlight.linkLabel}\n <ArrowRightIcon size={14} />\n </Text>\n </Link>\n ) : null}\n </div>\n );\n}\n\n/**\n * A bar across the top with a big menu (a grid of features and a highlight), dropdowns of links and plain links,\n * then one call to action. On phones everything folds into a panel under the bar.\n */\nexport function Header02({\n brand,\n panel,\n menus = [],\n links = [],\n primaryAction,\n secondaryLink,\n onNavigate = navigateTo,\n defaultPanelOpen = false,\n labels = {},\n className,\n ...props\n}: Header02Props) {\n const [productOpen, setProductOpen] = useState(defaultPanelOpen);\n const [phoneOpen, setPhoneOpen] = useState(false);\n const phoneId = useId();\n const closePhone = () => setPhoneOpen(false);\n\n useEffect(() => {\n const wide = window.matchMedia(\"(min-width: 761px)\");\n const onChange = () => (wide.matches ? setPhoneOpen(false) : setProductOpen(false));\n wide.addEventListener(\"change\", onChange);\n return () => wide.removeEventListener(\"change\", onChange);\n }, []);\n\n return (\n <header className={cx(\"ow-header02\", className)} {...props}>\n <div className=\"ow-header02__inner\">\n <BlockBrandLink brand={brand} className=\"ow-header02__brand\" />\n <nav className=\"ow-header02__nav\" aria-label=\"Main\">\n {panel ? (\n <Popover\n className=\"ow-header02__popover\"\n aria-label={panel.label}\n width={720}\n autoFocus={false}\n open={productOpen}\n onOpenChange={setProductOpen}\n trigger={\n <Button variant=\"ghost\" shape=\"pill\" size=\"sm\" className=\"ow-header02__item\" endIcon={<ChevronDownIcon size={14} />}>\n {panel.label}\n </Button>\n }\n >\n <PanelContent panel={panel} onNavigate={() => setProductOpen(false)} />\n </Popover>\n ) : null}\n {menus.map((menu) => (\n <Menu\n key={menu.label}\n label={menu.label}\n width={220}\n trigger={\n <Button variant=\"ghost\" shape=\"pill\" size=\"sm\" className=\"ow-header02__item\" endIcon={<ChevronDownIcon size={14} />}>\n {menu.label}\n </Button>\n }\n >\n {menu.groups.map((group, index) => (\n <Fragment key={index}>\n {index > 0 ? <MenuSeparator /> : null}\n {group.map((entry) => (\n <MenuItem key={entry.label} icon={entry.icon} onSelect={() => onNavigate(entry.href)}>\n {entry.label}\n </MenuItem>\n ))}\n </Fragment>\n ))}\n </Menu>\n ))}\n {links.map((link, index) => (\n <a\n key={index}\n href={link.href}\n className={cx(buttonClassName({ variant: \"ghost\", shape: \"pill\", size: \"sm\" }), \"ow-header02__item\")}\n aria-current={link.current ? \"page\" : undefined}\n >\n {link.label}\n </a>\n ))}\n </nav>\n <div className=\"ow-header02__actions\">\n {secondaryLink ? (\n <a\n href={secondaryLink.href}\n className={cx(buttonClassName({ variant: \"ghost\", shape: \"pill\", size: \"sm\" }), \"ow-header02__item ow-header02__sign-in\")}\n >\n {secondaryLink.label}\n </a>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n <Button\n className=\"ow-header02__toggle\"\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.menu ?? \"Menu\"}\n aria-expanded={phoneOpen}\n aria-controls={phoneId}\n onClick={() => setPhoneOpen((open) => !open)}\n >\n {phoneOpen ? <XIcon size={18} /> : <MenuIcon size={18} />}\n </Button>\n </div>\n </div>\n\n {/* Phones: everything in the bar, folded into a panel under it. */}\n <nav id={phoneId} className=\"ow-header02__panel\" aria-label=\"Main\" hidden={!phoneOpen}>\n {panel ? (\n <>\n <Text variant=\"overline\" as=\"p\" className=\"ow-header02__panel-label\">\n {panel.label}\n </Text>\n <ul className=\"ow-header02__panel-list\">\n {panel.features.map((feature, index) => (\n <li key={index}>\n <Link href={feature.href} variant=\"standalone\" className=\"ow-header02__panel-link\" onClick={closePhone}>\n {feature.icon}\n {feature.title}\n </Link>\n </li>\n ))}\n </ul>\n </>\n ) : null}\n {menus.map((menu) => (\n <Fragment key={menu.label}>\n <Text variant=\"overline\" as=\"p\" className=\"ow-header02__panel-label\">\n {menu.label}\n </Text>\n <ul className=\"ow-header02__panel-list ow-header02__panel-list--columns\">\n {menu.groups.flat().map((entry) => (\n <li key={entry.label}>\n <Link href={entry.href} variant=\"standalone\" className=\"ow-header02__panel-link\" onClick={closePhone}>\n {entry.label}\n </Link>\n </li>\n ))}\n </ul>\n </Fragment>\n ))}\n {links.length ? (\n <ul className=\"ow-header02__panel-list ow-header02__panel-list--ruled\">\n {links.map((link, index) => (\n <li key={index}>\n <Link\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header02__panel-link\"\n aria-current={link.current ? \"page\" : undefined}\n onClick={closePhone}\n >\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n ) : null}\n {secondaryLink ? (\n <a href={secondaryLink.href} className={cx(buttonClassName({ shape: \"pill\" }), \"ow-button--full\")} onClick={closePhone}>\n {secondaryLink.label}\n </a>\n ) : null}\n </nav>\n </header>\n );\n}\n", "import { cx, Link, ScrollShadow } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport type { HeaderLink } from \"@blocks/shared/shared.types\";\nimport type { Header03Props } from \"./Header03.types\";\n\nfunction NavLink({ link }: { link: HeaderLink }) {\n return (\n <Link href={link.href} variant=\"standalone\" className=\"ow-header03__link\" aria-current={link.current ? \"page\" : undefined}>\n {link.label}\n </Link>\n );\n}\n\n/**\n * The logo in the middle with links either side, for a brand-led site. On tablets and phones every link moves to a\n * line of its own under the bar, scrolling sideways when it runs out of room.\n */\nexport function Header03({ brand, start, end = [], primaryAction, secondaryLink, labels = {}, className, ...props }: Header03Props) {\n return (\n <header className={cx(\"ow-header03\", className)} {...props}>\n <div className=\"ow-header03__inner\">\n <nav className=\"ow-header03__nav\" aria-label={labels.start ?? \"Primary\"}>\n {start.map((link, index) => (\n <NavLink key={index} link={link} />\n ))}\n </nav>\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\" className=\"ow-header03__link ow-header03__phone-only\">\n {secondaryLink.label}\n </Link>\n ) : null}\n\n <BlockBrandLink brand={brand} className=\"ow-header03__brand\" />\n\n <div className=\"ow-header03__end\">\n {end.length ? (\n <nav className=\"ow-header03__nav\" aria-label={labels.end ?? \"More\"}>\n {end.map((link, index) => (\n <NavLink key={index} link={link} />\n ))}\n </nav>\n ) : null}\n <div className=\"ow-header03__actions\">\n {secondaryLink ? <NavLink link={secondaryLink} /> : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n </div>\n </div>\n </div>\n\n {/* Tablets and phones: every link on a line of its own, scrolling sideways when it runs out of room. */}\n <ScrollShadow orientation=\"horizontal\" size={24} className=\"ow-header03__phone-only ow-header03__phone-nav\">\n <nav aria-label={labels.all ?? \"Main\"}>\n <ul className=\"ow-header03__phone-links\">\n {[...start, ...end].map((link, index) => (\n <li key={index}>\n <NavLink link={link} />\n </li>\n ))}\n </ul>\n </nav>\n </ScrollShadow>\n </header>\n );\n}\n", "import { useRef, useState } from \"react\";\n\nimport { Button, CloseButton, cx, Link, Menu, MenuItem, MenuSeparator, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport { ArrowRightIcon, MenuIcon } from \"@blocks/shared/icons\";\nimport type { Header04Props } from \"./Header04.types\";\n\nconst navigateTo = (href: string) => window.location.assign(href);\n\n/** A header with a slim announcement above it: a line of news, a link and a close button that folds it away. */\nexport function Header04({\n announcement,\n onDismiss,\n defaultDismissed = false,\n brand,\n links,\n primaryAction,\n secondaryLink,\n onNavigate = navigateTo,\n labels = {},\n className,\n ...props\n}: Header04Props) {\n const [closed, setClosed] = useState(defaultDismissed);\n const brandRef = useRef<HTMLAnchorElement>(null);\n\n const dismiss = () => {\n setClosed(true);\n onDismiss?.();\n // The close button is going away; leave focus at the top of the header rather than nowhere.\n brandRef.current?.focus();\n };\n\n return (\n <div className={cx(\"ow-header04\", className)} {...props}>\n <aside\n className=\"ow-header04__notice\"\n aria-label={labels.announcement ?? \"Announcement\"}\n data-closed={closed || undefined}\n aria-hidden={closed || undefined}\n >\n <div className=\"ow-header04__clip\">\n <div className=\"ow-header04__notice-inner\">\n <Text className=\"ow-header04__message\">\n <span className=\"ow-header04__dot\" aria-hidden=\"true\" />\n <strong>{announcement.title}</strong>\n {announcement.description ? (\n <>\n {\" \"}\n <span className=\"ow-header04__detail\">{announcement.description}</span>\n </>\n ) : null}\n {announcement.link ? (\n <Link href={announcement.link.href} className=\"ow-header04__link\">\n <span className=\"ow-header04__link-wide\">{announcement.link.label}</span>\n <span className=\"ow-header04__link-narrow\">{announcement.link.shortLabel ?? announcement.link.label}</span>\n <ArrowRightIcon size={14} />\n </Link>\n ) : null}\n </Text>\n <CloseButton size=\"sm\" label={labels.dismiss ?? \"Dismiss the announcement\"} onClick={dismiss} />\n </div>\n </div>\n </aside>\n\n <header className=\"ow-header04__header\">\n <div className=\"ow-header04__inner\">\n <BlockBrandLink ref={brandRef} brand={brand} className=\"ow-header04__brand\" />\n <nav className=\"ow-header04__nav\" aria-label=\"Main\">\n {links.map((link, index) => (\n <Link\n key={index}\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header04__link-plain\"\n aria-current={link.current ? \"page\" : undefined}\n >\n {link.label}\n </Link>\n ))}\n </nav>\n <div className=\"ow-header04__actions\">\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\" className=\"ow-header04__link-plain\">\n {secondaryLink.label}\n </Link>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n <span className=\"ow-header04__phone-menu\">\n <Menu\n label={labels.menu ?? \"Menu\"}\n align=\"end\"\n width={220}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={labels.menu ?? \"Menu\"}>\n <MenuIcon size={18} />\n </Button>\n }\n >\n {links.map((link, index) => (\n <MenuItem key={index} onSelect={() => onNavigate(link.href)}>\n {link.label}\n </MenuItem>\n ))}\n {secondaryLink ? (\n <>\n <MenuSeparator />\n <MenuItem onSelect={() => onNavigate(secondaryLink.href)}>{secondaryLink.label}</MenuItem>\n </>\n ) : null}\n </Menu>\n </span>\n </div>\n </div>\n </header>\n </div>\n );\n}\n", "import { useEffect, useId, useState } from \"react\";\n\nimport { Button, buttonClassName, cx, Drawer, Link, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { BlockBrandLink } from \"@blocks/shared/BlockBrandLink\";\nimport { ChevronRightIcon, MenuIcon } from \"@blocks/shared/icons\";\nimport type { Header05Props } from \"./Header05.types\";\n\n// Under this width the links fold into the drawer (the same width as the media query in the CSS).\nconst narrow = \"(max-width: 1024px)\";\n\n/** A header whose links fold into a drawer behind a menu button on tablets and phones, with a second list and both actions. */\nexport function Header05({ brand, links, more, primaryAction, secondaryLink, defaultOpen = false, labels = {}, className, ...props }: Header05Props) {\n const [open, setOpen] = useState(defaultOpen);\n const moreId = useId();\n\n useEffect(() => {\n const query = window.matchMedia(narrow);\n const onChange = () => !query.matches && setOpen(false);\n query.addEventListener(\"change\", onChange);\n return () => query.removeEventListener(\"change\", onChange);\n }, []);\n\n const close = () => setOpen(false);\n\n return (\n <>\n <header className={cx(\"ow-header05\", className)} {...props}>\n <div className=\"ow-header05__inner\">\n <BlockBrandLink brand={brand} className=\"ow-header05__brand\" />\n <nav className=\"ow-header05__nav\" aria-label=\"Main\">\n {links.map((link, index) => (\n <Link\n key={index}\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header05__link\"\n aria-current={link.current ? \"page\" : undefined}\n >\n {link.label}\n </Link>\n ))}\n </nav>\n <div className=\"ow-header05__actions\">\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\" className=\"ow-header05__link\">\n {secondaryLink.label}\n </Link>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"sm\" />\n <Button\n className=\"ow-header05__open\"\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.open ?? \"Open menu\"}\n aria-haspopup=\"dialog\"\n aria-expanded={open}\n onClick={() => setOpen(true)}\n >\n <MenuIcon size={18} />\n </Button>\n </div>\n </div>\n </header>\n\n <Drawer\n className=\"ow-header05__drawer\"\n open={open}\n onClose={close}\n title={labels.title ?? \"Menu\"}\n side=\"right\"\n size={320}\n footer={\n <>\n {secondaryLink ? (\n <a href={secondaryLink.href} className={buttonClassName({ shape: \"pill\" })} onClick={close}>\n {secondaryLink.label}\n </a>\n ) : null}\n <BlockActionButton action={primaryAction} variant=\"primary\" size=\"md\" onAfterClick={close} />\n </>\n }\n >\n <nav aria-label=\"Main\">\n <ul className=\"ow-header05__drawer-list\">\n {links.map((link, index) => (\n <li key={index}>\n <Link\n href={link.href}\n variant=\"standalone\"\n className=\"ow-header05__drawer-link\"\n aria-current={link.current ? \"page\" : undefined}\n onClick={close}\n >\n {link.label}\n {link.current ? <span className=\"ow-header05__current\" aria-hidden=\"true\" /> : null}\n <ChevronRightIcon size={16} />\n </Link>\n </li>\n ))}\n </ul>\n {more ? (\n <div className=\"ow-header05__more\">\n <Text variant=\"overline\" as=\"p\" className=\"ow-header05__more-label\" id={moreId}>\n {more.title}\n </Text>\n <ul className=\"ow-header05__more-list\" aria-labelledby={moreId}>\n {more.links.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"standalone\" className=\"ow-header05__more-link\" onClick={close}>\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n ) : null}\n </nav>\n </Drawer>\n </>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Badge, Card, cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { ArrowRightIcon, CheckIcon } from \"@blocks/shared/icons\";\nimport type { Pricing01Props } from \"./Pricing01.types\";\n\n/** Plans side by side as cards, the recommended one raised, with a line for an enterprise plan below. */\nexport function Pricing01({ eyebrow, title, description, plans, enterprise, note, className, ...props }: Pricing01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-pricing01\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <div className=\"ow-pricing01__grid\">\n {plans.map((plan, index) => (\n <Card\n key={index}\n padding=\"none\"\n className=\"ow-pricing01__card\"\n data-recommended={plan.recommended || undefined}\n aria-labelledby={`${id}-plan-${index}`}\n role=\"group\"\n >\n <div className=\"ow-pricing01__head\">\n <div className=\"ow-pricing01__name-row\">\n <Text variant=\"card-title\" id={`${id}-plan-${index}`}>\n {plan.name}\n </Text>\n {plan.badge ? (\n <Badge size=\"sm\" variant=\"active\">\n {plan.badge}\n </Badge>\n ) : null}\n </div>\n {plan.summary ? (\n <Text variant=\"copy\" className=\"ow-pricing01__summary\">\n {plan.summary}\n </Text>\n ) : null}\n <Text as=\"p\" variant=\"body\" tone=\"muted\" className=\"ow-pricing01__price\">\n <Text as=\"span\" variant=\"section-title\" tone=\"default\" className=\"ow-pricing01__amount\">\n {plan.price}\n </Text>\n {plan.unit}\n </Text>\n <BlockActionButton action={plan.action} variant={plan.recommended ? \"primary\" : \"secondary\"} size=\"md\" fullWidth />\n </div>\n <div className=\"ow-pricing01__body\">\n {plan.featuresTitle ? (\n <Text as=\"p\" variant=\"label\">\n {plan.featuresTitle}\n </Text>\n ) : null}\n <ul className=\"ow-pricing01__features\">\n {plan.features.map((feature, featureIndex) => (\n <Text as=\"li\" variant=\"body\" tone=\"soft\" key={featureIndex}>\n <CheckIcon size={16} />\n {feature}\n </Text>\n ))}\n </ul>\n </div>\n </Card>\n ))}\n </div>\n\n {enterprise ? (\n <div className=\"ow-pricing01__enterprise\">\n {enterprise.icon ? (\n <span className=\"ow-pricing01__enterprise-icon\" aria-hidden=\"true\">\n {enterprise.icon}\n </span>\n ) : null}\n <Text variant=\"copy\" className=\"ow-pricing01__enterprise-text\">\n <Text as=\"strong\" variant=\"label\" tone=\"default\">\n {enterprise.title}\n </Text>{\" \"}\n {enterprise.description}\n </Text>\n <Link href={enterprise.link.href} variant=\"standalone\" className=\"ow-pricing01__enterprise-link\">\n {enterprise.link.label}\n <ArrowRightIcon size={14} />\n </Link>\n </div>\n ) : null}\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-pricing01__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Badge, cx, SectionHeading, SegmentedControl, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Pricing02Period, Pricing02Plan, Pricing02Price, Pricing02Props } from \"./Pricing02.types\";\n\nconst priceFor = (plan: Pricing02Plan, period: Pricing02Period): Pricing02Price => (\"amount\" in plan.price ? plan.price : plan.price[period]);\n\nconst includes = (name: string) => `${name} includes`;\n\n/** Plans in one panel with a switch between monthly and yearly prices, which fade in as they change. */\nexport function Pricing02({\n eyebrow,\n title,\n description,\n plans,\n periodNote,\n defaultPeriod = \"monthly\",\n onPeriodChange,\n note,\n labels = {},\n className,\n ...props\n}: Pricing02Props) {\n const [period, setPeriod] = useState<Pricing02Period>(defaultPeriod);\n const id = useId();\n\n return (\n <section className={cx(\"ow-pricing02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing02__inner\">\n <div className=\"ow-pricing02__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n <div className=\"ow-pricing02__switch\">\n <SegmentedControl\n aria-label={labels.period ?? \"Billing period\"}\n value={period}\n onChange={(value) => {\n setPeriod(value as Pricing02Period);\n onPeriodChange?.(value as Pricing02Period);\n }}\n options={[\n { value: \"monthly\", label: labels.monthly ?? \"Monthly\" },\n { value: \"yearly\", label: labels.yearly ?? \"Yearly\" },\n ]}\n />\n {periodNote ? (\n <Text as=\"p\" variant=\"caption\">\n {periodNote}\n </Text>\n ) : null}\n </div>\n </div>\n\n <VisuallyHidden aria-live=\"polite\">\n {period === \"yearly\" ? (labels.showingYearly ?? \"Showing yearly prices.\") : (labels.showingMonthly ?? \"Showing monthly prices.\")}\n </VisuallyHidden>\n\n <div className=\"ow-pricing02__panel\">\n {plans.map((plan, index) => {\n const price = priceFor(plan, period);\n return (\n <div key={index} className=\"ow-pricing02__plan\" data-popular={plan.recommended || undefined}>\n <div className=\"ow-pricing02__name-row\">\n <Text variant=\"card-title\">{plan.name}</Text>\n {plan.badge ? (\n <Badge size=\"sm\" variant=\"active\">\n {plan.badge}\n </Badge>\n ) : null}\n </div>\n {plan.summary ? (\n <Text variant=\"copy\" className=\"ow-pricing02__summary\">\n {plan.summary}\n </Text>\n ) : null}\n <div className=\"ow-pricing02__price\">\n <Text as=\"p\" variant=\"body\" tone=\"muted\" className=\"ow-pricing02__figure\">\n {/* The key restarts the fade when the amount changes. */}\n <Text\n as=\"span\"\n variant=\"section-title\"\n tone=\"default\"\n key={price.amount}\n className={price.custom ? \"ow-pricing02__amount ow-pricing02__amount--text\" : \"ow-pricing02__amount\"}\n >\n {price.amount}\n </Text>\n {price.unit}\n </Text>\n {price.billing ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-pricing02__billing\">\n {price.billing}\n </Text>\n ) : null}\n </div>\n <BlockActionButton action={plan.action} variant={plan.recommended ? \"primary\" : \"secondary\"} size=\"md\" fullWidth />\n <ul className=\"ow-pricing02__features\" aria-label={(labels.includes ?? includes)(plan.name)}>\n {plan.features.map((feature, featureIndex) => (\n <Text as=\"li\" variant=\"body\" tone=\"soft\" key={featureIndex}>\n <CheckIcon size={16} />\n {feature}\n </Text>\n ))}\n </ul>\n </div>\n );\n })}\n </div>\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-pricing02__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState, useSyncExternalStore } from \"react\";\n\nimport { Badge, cx, SectionHeading, SegmentedControl, Table, Text, VisuallyHidden, type TableColumn } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon, MinusIcon } from \"@blocks/shared/icons\";\nimport type { Pricing03Props, Pricing03Row, Pricing03Value } from \"./Pricing03.types\";\n\nconst phoneQuery = \"(max-width: 760px)\";\n\n/** Whether the window is phone-sized, following it as it changes. */\nfunction useIsPhone() {\n return useSyncExternalStore(\n (onChange) => {\n const list = window.matchMedia(phoneQuery);\n list.addEventListener(\"change\", onChange);\n return () => list.removeEventListener(\"change\", onChange);\n },\n () => window.matchMedia(phoneQuery).matches,\n () => false,\n );\n}\n\nconst caption = (title: string) => `${title}, by plan`;\n\n/** Every feature down the side and a tick, a dash or a limit for each plan; one plan at a time on phones. */\nexport function Pricing03({ eyebrow, title, description, plans, groups, pricesNote, defaultPlan, note, labels = {}, className, ...props }: Pricing03Props) {\n const id = useId();\n const isPhone = useIsPhone();\n const [picked, setPicked] = useState(() => defaultPlan ?? (plans.find((plan) => plan.recommended) ?? plans[0])?.id ?? \"\");\n const shown = isPhone ? plans.filter((plan) => plan.id === picked) : plans;\n\n const cell = (value: Pricing03Value) => {\n if (value === true) {\n return (\n <span className=\"ow-pricing03__yes\">\n <CheckIcon size={14} strokeWidth={2.5} />\n <VisuallyHidden>{labels.included ?? \"Included\"}</VisuallyHidden>\n </span>\n );\n }\n if (value === false) {\n return (\n <span className=\"ow-pricing03__no\">\n <MinusIcon size={16} />\n <VisuallyHidden>{labels.notIncluded ?? \"Not included\"}</VisuallyHidden>\n </span>\n );\n }\n return value;\n };\n\n const columns = (groupTitle: string): Array<TableColumn<Pricing03Row & { id: string }>> => [\n {\n key: \"feature\",\n header: groupTitle,\n render: (row) => (\n <Text as=\"span\" variant=\"body\" className=\"ow-pricing03__feature\">\n {row.feature}\n {row.note ? (\n <Text variant=\"caption\" className=\"ow-pricing03__feature-note\">\n {row.note}\n </Text>\n ) : null}\n </Text>\n ),\n },\n ...shown.map((plan) => ({\n key: plan.id,\n header: plan.name,\n render: (row: Pricing03Row) => cell(row.values[plan.id]),\n })),\n ];\n\n return (\n <section className={cx(\"ow-pricing03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing03__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <div className=\"ow-pricing03__picker\">\n <SegmentedControl\n aria-label={labels.picker ?? \"Plan to compare\"}\n fullWidth\n value={picked}\n onChange={setPicked}\n options={plans.map((plan) => ({ value: plan.id, label: plan.name }))}\n />\n </div>\n\n <div className=\"ow-pricing03__plans\">\n {pricesNote ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-pricing03__plans-label\">\n {pricesNote}\n </Text>\n ) : null}\n {shown.map((plan) => (\n <div key={plan.id} className=\"ow-pricing03__plan\">\n <Text as=\"p\" variant=\"card-title\" className=\"ow-pricing03__plan-name\">\n {plan.name}\n {plan.badge ? (\n <Badge size=\"sm\" variant=\"active\">\n {plan.badge}\n </Badge>\n ) : null}\n </Text>\n <Text as=\"p\" variant=\"caption\" className=\"ow-pricing03__plan-price\">\n <Text as=\"strong\" variant=\"label\" tone=\"default\" className=\"ow-pricing03__plan-amount\">\n {plan.price}\n </Text>{\" \"}\n {plan.unit}\n </Text>\n <BlockActionButton action={plan.action} variant={plan.recommended ? \"primary\" : \"secondary\"} size=\"sm\" />\n </div>\n ))}\n </div>\n\n <div className=\"ow-pricing03__groups\">\n {groups.map((group) => (\n <Table\n key={group.title}\n className=\"ow-pricing03__group\"\n caption={(labels.caption ?? caption)(group.title)}\n hideCaption\n columns={columns(group.title)}\n rows={group.rows.map((row, index) => ({ ...row, id: `${group.title}-${index}` }))}\n />\n ))}\n </div>\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-pricing03__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Card, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Pricing04Props } from \"./Pricing04.types\";\n\n/** One price with what's included, for a simple product: a wide card with the features on the left and the offer on the right. */\nexport function Pricing04({ eyebrow, title, description, product, offer, promises, className, ...props }: Pricing04Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-pricing04\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing04__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <Card padding=\"none\" className=\"ow-pricing04__card\">\n <div className=\"ow-pricing04__details\">\n <Text variant=\"heading\">{product.name}</Text>\n {product.description ? (\n <Text variant=\"copy\" className=\"ow-pricing04__description\">\n {product.description}\n </Text>\n ) : null}\n {product.featuresTitle ? (\n <Text as=\"p\" variant=\"label\" tone=\"primary\" className=\"ow-pricing04__included\">\n {product.featuresTitle}\n </Text>\n ) : null}\n <ul className=\"ow-pricing04__features\">\n {product.features.map((feature, index) => (\n <Text as=\"li\" variant=\"body\" tone=\"soft\" key={index}>\n <CheckIcon size={16} />\n {feature}\n </Text>\n ))}\n </ul>\n </div>\n\n <div className=\"ow-pricing04__offer\">\n {offer.label ? (\n <Text as=\"p\" variant=\"label\" tone=\"soft\">\n {offer.label}\n </Text>\n ) : null}\n <Text as=\"p\" variant=\"label\" tone=\"muted\" className=\"ow-pricing04__price\">\n <Text as=\"span\" variant=\"page-title\" tone=\"default\" className=\"ow-pricing04__amount\">\n {offer.price}\n </Text>\n {offer.currency}\n </Text>\n {offer.unit ? (\n <Text variant=\"body\" tone=\"muted\" className=\"ow-pricing04__unit\">\n {offer.unit}\n </Text>\n ) : null}\n <BlockActionButton action={offer.action} variant=\"primary\" fullWidth />\n {offer.note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-pricing04__fine\">\n {offer.note}\n </Text>\n ) : null}\n </div>\n </Card>\n\n {promises?.length ? (\n <ul className=\"ow-pricing04__promises\">\n {promises.map((promise, index) => (\n <Text as=\"li\" variant=\"body\" tone=\"muted\" key={index}>\n {promise.icon}\n {promise.text}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useMemo, useState } from \"react\";\n\nimport { Card, cx, SectionHeading, Slider, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport type { Pricing05Props, Pricing05Tier } from \"./Pricing05.types\";\n\n/** How many units fall in each band, and what they cost. */\nfunction estimate(tiers: Pricing05Tier[], units: number) {\n const lines = tiers.map((tier) => {\n const count = Math.max(0, Math.min(units, tier.to) - tier.from);\n return { tier, count, cost: count * tier.price };\n });\n return { lines, total: lines.reduce((sum, line) => sum + line.cost, 0) };\n}\n\nconst capitalise = (text: string) => text.charAt(0).toUpperCase() + text.slice(1);\n\n/** A price per unit in bands, with a slider to estimate the month and the cost of each band beside it. */\nexport function Pricing05({\n eyebrow,\n title,\n description,\n tiers,\n aside,\n estimate: words,\n max,\n step = max / 200,\n defaultValue,\n marks = [0, max / 4, max / 2, (max * 3) / 4, max],\n currency = \"EUR\",\n locale,\n action,\n note,\n labels = {},\n className,\n ...props\n}: Pricing05Props) {\n const id = useId();\n const [units, setUnits] = useState(defaultValue);\n const { lines, total } = estimate(tiers, units);\n const current = tiers.findIndex((tier) => units <= tier.to);\n\n const unit = labels.unit ?? \"unit\";\n const plural = labels.units ?? \"units\";\n const perMonth = labels.perMonth ?? `${plural} a month`;\n\n const format = useMemo(() => {\n const number = new Intl.NumberFormat(locale);\n const money = new Intl.NumberFormat(locale, { style: \"currency\", currency });\n const unitPrice = new Intl.NumberFormat(locale, { style: \"currency\", currency, minimumFractionDigits: 2, maximumFractionDigits: 3 });\n return { number: (value: number) => number.format(value), money: (value: number) => money.format(value), unitPrice: (value: number) => unitPrice.format(value) };\n }, [locale, currency]);\n\n const rangeLabel = (tier: Pricing05Tier) => {\n if (tier.from === 0) return `First ${format.number(tier.to)} ${plural}`;\n if (tier.to === Infinity) return `Over ${format.number(tier.from)}`;\n return `${format.number(tier.from + 1)} to ${format.number(tier.to)}`;\n };\n\n const mark = (value: number) => (value === 0 ? \"0\" : value >= 1000 && value % 1000 === 0 ? `${value / 1000}k` : format.number(value));\n\n return (\n <section className={cx(\"ow-pricing05\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-pricing05__inner\">\n <div>\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n <ul className=\"ow-pricing05__tiers\" aria-label={labels.tiers ?? `Price per ${unit}`}>\n {tiers.map((tier, index) => (\n <li key={tier.from} className=\"ow-pricing05__tier\" data-current={index === current || undefined}>\n <span className=\"ow-pricing05__tier-dot\" aria-hidden=\"true\" />\n <Text variant={index === current ? \"label\" : \"body\"} tone={index === current ? \"default\" : \"soft\"}>\n {rangeLabel(tier)}\n </Text>\n <Text variant=\"label\" className=\"ow-pricing05__tier-price\">\n {tier.price === 0 ? (\n (labels.free ?? \"Free\")\n ) : (\n <>\n {format.unitPrice(tier.price)}\n <Text as=\"small\" variant=\"caption\" className=\"ow-pricing05__tier-unit\">\n a {unit}\n </Text>\n </>\n )}\n </Text>\n </li>\n ))}\n </ul>\n {aside ? (\n <Text variant=\"copy\" className=\"ow-pricing05__aside\">\n {aside}\n </Text>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-pricing05__card\">\n <Text variant=\"card-title\">{words.title}</Text>\n {words.description ? (\n <Text variant=\"copy\" className=\"ow-pricing05__card-intro\">\n {words.description}\n </Text>\n ) : null}\n\n <Text as=\"p\" variant=\"heading\" className=\"ow-pricing05__runs\" aria-hidden=\"true\">\n {format.number(units)}{\" \"}\n <Text as=\"small\" variant=\"body\" tone=\"muted\" className=\"ow-pricing05__runs-unit\">\n {perMonth}\n </Text>\n </Text>\n {/* The big number above is the slider's visible label; screen readers hear the amount and the cost. */}\n <Slider\n aria-label={labels.slider ?? capitalise(perMonth)}\n showValue={false}\n min={0}\n max={max}\n step={step}\n value={units}\n onChange={setUnits}\n formatValue={(value) => `${format.number(value)} ${plural}, about ${format.money(estimate(tiers, value).total)} a month`}\n />\n <div className=\"ow-pricing05__scale\" aria-hidden=\"true\">\n {marks.map((value) => (\n <span key={value}>{mark(value)}</span>\n ))}\n </div>\n\n <div className=\"ow-pricing05__breakdown\">\n {lines.map(({ tier, count, cost }) => (\n <Text as=\"div\" variant=\"body\" tone=\"soft\" key={tier.from} className=\"ow-pricing05__line\" data-idle={count === 0 || undefined}>\n <span>\n {format.number(count)} {plural} {tier.price === 0 ? (labels.free ?? \"Free\").toLowerCase() : `at ${format.unitPrice(tier.price)}`}\n </span>\n <span>{format.money(cost)}</span>\n </Text>\n ))}\n </div>\n\n <div className=\"ow-pricing05__total\">\n <Text as=\"p\" variant=\"label\">\n {words.totalLabel}\n {words.totalNote ? (\n <Text as=\"small\" variant=\"caption\" className=\"ow-pricing05__total-note\">\n {words.totalNote}\n </Text>\n ) : null}\n </Text>\n <Text as=\"p\" variant=\"section-title\" className=\"ow-pricing05__total-amount\">\n {format.money(total)}\n </Text>\n </div>\n\n <BlockActionButton action={action} variant=\"primary\" fullWidth className=\"ow-pricing05__action\" />\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-pricing05__fine\">\n {note}\n </Text>\n ) : null}\n </Card>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Features01Props } from \"./Features01.types\";\n\n/** An icon, a short title and a sentence for each feature, in a grid that drops to one column on phones. */\nexport function Features01({ eyebrow, title, description, features, footer, className, ...props }: Features01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features01\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <ul className=\"ow-features01__grid\">\n {features.map((feature, index) => (\n <li key={index} className=\"ow-features01__item\">\n {feature.icon ? (\n <span className=\"ow-features01__icon\" aria-hidden=\"true\">\n {feature.icon}\n </span>\n ) : null}\n <Text variant=\"card-title\" className=\"ow-features01__title\">\n {feature.title}\n </Text>\n <Text variant=\"copy\" className=\"ow-features01__text\">\n {feature.description}\n </Text>\n </li>\n ))}\n </ul>\n\n {footer ? (\n <Text variant=\"copy\" align=\"center\" className=\"ow-features01__more\">\n {footer}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, DotGrid, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Features02Props } from \"./Features02.types\";\n\n/** Rows that swap sides, each a few lines and points beside a picture on a dot grid. */\nexport function Features02({ eyebrow, title, description, rows, className, ...props }: Features02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features02__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <div className=\"ow-features02__rows\">\n {rows.map((row, index) => (\n <article key={index} className=\"ow-features02__row\" aria-labelledby={`${id}-row-${index}`}>\n <div className=\"ow-features02__copy\">\n {row.kicker || row.icon ? (\n <Text variant=\"label\" tone=\"primary\" className=\"ow-features02__kicker\">\n {row.icon}\n {row.kicker}\n </Text>\n ) : null}\n <Text variant=\"heading\" id={`${id}-row-${index}`} className=\"ow-features02__title\">\n {row.title}\n </Text>\n <Text variant=\"lead\" className=\"ow-features02__text\">\n {row.description}\n </Text>\n {row.points?.length ? (\n <ul className=\"ow-features02__points\">\n {row.points.map((point, pointIndex) => (\n <Text as=\"li\" key={pointIndex} tone=\"soft\" className=\"ow-features02__point\">\n <CheckIcon size={16} />\n {point}\n </Text>\n ))}\n </ul>\n ) : null}\n {row.link ? (\n <Link href={row.link.href} variant=\"standalone\" className=\"ow-features02__link\">\n {row.link.label} \u2192\n </Link>\n ) : null}\n </div>\n <DotGrid\n className=\"ow-features02__stage\"\n role={row.visualLabel ? \"img\" : undefined}\n aria-label={row.visualLabel}\n >\n {row.visual}\n </DotGrid>\n </article>\n ))}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Features03Props } from \"./Features03.types\";\n\n/** A bento grid: cards of different sizes, the biggest for the feature that matters most. */\nexport function Features03({ eyebrow, title, description, cards, className, ...props }: Features03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features03__inner\">\n <div className=\"ow-features03__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} />\n {description ? (\n <Text variant=\"lead\" className=\"ow-features03__intro\">\n {description}\n </Text>\n ) : null}\n </div>\n\n {/* The first card is the big one, with a heading and a lead; the rest are dense cards. */}\n <div className=\"ow-features03__grid\">\n {cards.map((card, index) => {\n const featured = index === 0;\n return (\n <article\n key={index}\n className={cx(\n \"ow-features03__card\",\n featured && \"ow-features03__card--featured\",\n index === cards.length - 1 && index > 0 && \"ow-features03__card--last\",\n )}\n aria-labelledby={`${id}-card-${index}`}\n >\n <div className=\"ow-features03__copy\">\n <Text variant={featured ? \"heading\" : \"card-title\"} id={`${id}-card-${index}`}>\n {card.title}\n </Text>\n <Text variant={featured ? \"lead\" : \"copy\"} className=\"ow-features03__text\">\n {card.description}\n </Text>\n </div>\n <div className=\"ow-features03__visual\" role={card.visualLabel ? \"img\" : undefined} aria-label={card.visualLabel}>\n {card.visual}\n </div>\n </article>\n );\n })}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Tab, TabList, TabPanel, Tabs, Text } from \"@openwarelabs/ui\";\n\nimport type { Features04Props } from \"./Features04.types\";\n\n/** A row of tabs, each showing its part of the product with a caption above it. */\nexport function Features04({ eyebrow, title, description, tabs, defaultTab = 0, labels = {}, className, ...props }: Features04Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features04\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features04__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n\n <Tabs defaultValue={String(defaultTab)} className=\"ow-features04__tabs\">\n <TabList aria-label={labels.tabs ?? \"Features\"}>\n {tabs.map((tab, index) => (\n <Tab key={index} value={String(index)} icon={tab.icon}>\n {tab.label}\n </Tab>\n ))}\n </TabList>\n {tabs.map((tab, index) => (\n <TabPanel key={index} value={String(index)} className=\"ow-features04__panel\">\n {tab.caption ? (\n <Text variant=\"copy\" align=\"center\" className=\"ow-features04__caption\">\n {tab.caption}\n </Text>\n ) : null}\n {tab.visual}\n </TabPanel>\n ))}\n </Tabs>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Features05Props } from \"./Features05.types\";\n\n/** A checklist of what's included, with a button, beside one large picture. */\nexport function Features05({ eyebrow, title, description, items, primaryAction, secondaryLink, visual, className, ...props }: Features05Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-features05\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-features05__inner\">\n <div className=\"ow-features05__copy\">\n <SectionHeading eyebrow={eyebrow} title={<span id={`${id}-title`}>{title}</span>} intro={description} />\n <ul className=\"ow-features05__list\">\n {items.map((item, index) => (\n <Text as=\"li\" key={index} tone=\"soft\" className=\"ow-features05__item\">\n <span className=\"ow-features05__tick\" aria-hidden=\"true\">\n <CheckIcon size={12} strokeWidth={3} />\n </span>\n {item}\n </Text>\n ))}\n </ul>\n {primaryAction || secondaryLink ? (\n <div className=\"ow-features05__actions\">\n {primaryAction ? <BlockActionButton action={primaryAction} variant=\"primary\" /> : null}\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\">\n {secondaryLink.label}\n </Link>\n ) : null}\n </div>\n ) : null}\n </div>\n <div className=\"ow-features05__visual\">{visual}</div>\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useState } from \"react\";\n\nimport { cx, Link, SegmentedControl, Separator, Text } from \"@openwarelabs/ui\";\n\nimport { FooterColumns } from \"@blocks/shared/FooterColumns\";\nimport { MonitorIcon, MoonIcon, SunIcon } from \"@blocks/shared/icons\";\nimport type { Footer01Props } from \"./Footer01.types\";\n\nconst currentTheme = () => (typeof document === \"undefined\" ? \"system\" : (document.documentElement.dataset.theme ?? \"system\"));\n\n/** Light, dark or the system's choice, set on <html data-theme>. */\nfunction useTheme() {\n const [theme, setTheme] = useState(currentTheme);\n\n // Stay in step if something else changes the theme.\n useEffect(() => {\n const observer = new MutationObserver(() => setTheme(currentTheme()));\n observer.observe(document.documentElement, { attributes: true, attributeFilter: [\"data-theme\"] });\n return () => observer.disconnect();\n }, []);\n\n const choose = (value: string) => {\n document.documentElement.dataset.theme = value;\n setTheme(value);\n };\n return [theme, choose] as const;\n}\n\n/** The logo and a line, then three or four columns of links, with the small print and a theme switch below. */\nexport function Footer01({ brand, description, status, columns, legal, legalLinks = [], themeSwitch = false, labels = {}, className, ...props }: Footer01Props) {\n const [theme, setTheme] = useTheme();\n const themeId = useId();\n const home = labels.home ?? (typeof brand.name === \"string\" ? `${brand.name} home` : undefined);\n\n return (\n <footer className={cx(\"ow-footer01\", className)} {...props}>\n <div className=\"ow-footer01__inner\">\n <div className=\"ow-footer01__top\">\n <div className=\"ow-footer01__brand\">\n <Link href={brand.href} variant=\"standalone\" className=\"ow-footer01__logo\" aria-label={home}>\n {brand.logo}\n <Text variant=\"dialog-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {description ? <Text variant=\"copy\">{description}</Text> : null}\n {status ? (\n <Link href={status.href} variant=\"standalone\" className=\"ow-footer01__status\">\n <span className=\"ow-footer01__status-dot\" aria-hidden=\"true\" />\n {status.label}\n </Link>\n ) : null}\n </div>\n\n <FooterColumns columns={columns} headingClassName=\"ow-footer01__heading\" listClassName=\"ow-footer01__links\" badgeClassName=\"ow-footer01__new\" />\n </div>\n\n <Separator />\n\n <div className=\"ow-footer01__bottom\">\n <Text variant=\"caption\" as=\"p\" className=\"ow-footer01__legal\">\n <span>{legal}</span>\n {legalLinks.map((link, index) => (\n <Link key={index} href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n ))}\n </Text>\n {themeSwitch ? (\n <div className=\"ow-footer01__theme\">\n <Text variant=\"caption\" id={themeId}>\n {labels.theme ?? \"Theme\"}\n </Text>\n <SegmentedControl\n size=\"sm\"\n aria-labelledby={themeId}\n options={[\n { value: \"light\", label: null, icon: <SunIcon size={15} />, \"aria-label\": labels.light ?? \"Light\" },\n { value: \"dark\", label: null, icon: <MoonIcon size={15} />, \"aria-label\": labels.dark ?? \"Dark\" },\n { value: \"system\", label: null, icon: <MonitorIcon size={15} />, \"aria-label\": labels.system ?? \"Match the system\" },\n ]}\n value={theme}\n onChange={setTheme}\n />\n </div>\n ) : null}\n </div>\n </div>\n </footer>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Link, Text } from \"@openwarelabs/ui\";\n\nimport type { FooterColumnsProps } from \"@blocks/shared/shared.types\";\n\n/** A footer's columns of links, each a <nav> named by its heading. */\nexport function FooterColumns({ columns, headingClassName, listClassName, badgeClassName }: FooterColumnsProps) {\n const id = useId();\n return (\n <>\n {columns.map((column, index) => (\n <nav key={index} aria-labelledby={`${id}-${index}`}>\n <Text variant=\"label\" as=\"h2\" id={`${id}-${index}`} className={headingClassName}>\n {column.title}\n </Text>\n <ul className={listClassName}>\n {column.links.map((link, linkIndex) => (\n <li key={linkIndex}>\n <Link href={link.href} variant=\"standalone\">\n {link.label}\n </Link>\n {link.badge ? (\n <Text variant=\"badge\" className={badgeClassName}>\n {link.badge}\n </Text>\n ) : null}\n </li>\n ))}\n </ul>\n </nav>\n ))}\n </>\n );\n}\n", "import { cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport type { Footer02Props } from \"./Footer02.types\";\n\n/** The logo, one line of links and the small print, centred. */\nexport function Footer02({ brand, links, legal, labels = {}, className, ...props }: Footer02Props) {\n return (\n <footer className={cx(\"ow-footer02\", className)} {...props}>\n <div className=\"ow-footer02__inner\">\n <Link href={brand.href} className=\"ow-footer02__logo\" aria-label={labels.home ?? (typeof brand.name === \"string\" ? `${brand.name} home` : undefined)}>\n {brand.logo}\n </Link>\n <nav aria-label={labels.nav ?? \"Footer\"}>\n <ul className=\"ow-footer02__links\">\n {links.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"standalone\">\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n <Text variant=\"caption\" as=\"p\">\n {legal}\n </Text>\n </div>\n </footer>\n );\n}\n", "import { useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Input, Link, Separator, Text } from \"@openwarelabs/ui\";\n\nimport { FooterColumns } from \"@blocks/shared/FooterColumns\";\nimport { CircleCheckIcon, MailIcon } from \"@blocks/shared/icons\";\nimport type { Footer03Props } from \"./Footer03.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** A newsletter sign-up across the top, then the brand and columns of links, then the small print. */\nexport function Footer03({ newsletter, brand, description, columns, legal, legalLinks = [], labels = {}, className, ...props }: Footer03Props) {\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [sending, setSending] = useState(false);\n const [sentTo, setSentTo] = useState(\"\");\n const input = useRef<HTMLInputElement>(null);\n const id = useId();\n\n const subscribe = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n const address = email.trim();\n if (!address) setError(labels.empty ?? \"Enter your email address.\");\n else if (!emailPattern.test(address)) setError(labels.invalid ?? \"That doesn't look like an email address. Check it for a typo.\");\n else {\n setError(\"\");\n setSending(true);\n try {\n await newsletter.onSubmit(address);\n setSentTo(address);\n return;\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n } finally {\n setSending(false);\n }\n }\n input.current?.focus();\n };\n\n const startAgain = () => {\n setSentTo(\"\");\n setEmail(\"\");\n window.setTimeout(() => input.current?.focus());\n };\n\n return (\n <footer className={cx(\"ow-footer03\", className)} {...props}>\n <div className=\"ow-footer03__inner\">\n <section className=\"ow-footer03__signup\" aria-labelledby={`${id}-title`}>\n <div>\n <Text variant=\"heading\" as=\"h2\" id={`${id}-title`}>\n {newsletter.title}\n </Text>\n {newsletter.description ? (\n <Text variant=\"copy\" className=\"ow-footer03__intro\">\n {newsletter.description}\n </Text>\n ) : null}\n </div>\n\n {sentTo ? (\n <div className=\"ow-footer03__done\" role=\"status\">\n <CircleCheckIcon size={18} />\n <span className=\"ow-footer03__done-text\">\n <Text variant=\"label\">{newsletter.successTitle}</Text>\n {newsletter.successDescription ? (\n <Text variant=\"body\" as=\"span\" tone=\"soft\" className=\"ow-footer03__done-detail\">\n {newsletter.successDescription(sentTo)}\n </Text>\n ) : null}\n </span>\n <Button size=\"sm\" variant=\"ghost\" onClick={startAgain}>\n {labels.change ?? \"Change\"}\n </Button>\n </div>\n ) : (\n <form noValidate onSubmit={subscribe}>\n <div className=\"ow-footer03__row\">\n <Input\n ref={input}\n type=\"email\"\n autoComplete=\"email\"\n placeholder={labels.placeholder ?? \"you@example.com\"}\n aria-label={labels.email ?? \"Email address\"}\n aria-describedby={`${id}-note`}\n className=\"ow-footer03__email\"\n startContent={<MailIcon size={16} />}\n isInvalid={Boolean(error)}\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n if (error) setError(\"\");\n }}\n />\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" loading={sending} endIcon={newsletter.submitIcon}>\n {newsletter.submitLabel}\n </Button>\n </div>\n <Text\n variant=\"caption\"\n as=\"p\"\n id={`${id}-note`}\n tone={error ? \"danger\" : undefined}\n className=\"ow-footer03__note\"\n aria-live=\"polite\"\n >\n {error || newsletter.note}\n </Text>\n </form>\n )}\n </section>\n\n <div className=\"ow-footer03__links\">\n <div className=\"ow-footer03__brand\">\n <Link\n href={brand.href}\n variant=\"standalone\"\n className=\"ow-footer03__logo\"\n aria-label={labels.home ?? (typeof brand.name === \"string\" ? `${brand.name} home` : undefined)}\n >\n {brand.logo}\n <Text variant=\"dialog-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {description ? (\n <Text variant=\"copy\" className=\"ow-footer03__line\">\n {description}\n </Text>\n ) : null}\n </div>\n <FooterColumns columns={columns} headingClassName=\"ow-footer03__heading\" listClassName=\"ow-footer03__list\" />\n </div>\n\n <Separator />\n\n <div className=\"ow-footer03__bottom\">\n <Text variant=\"caption\" as=\"p\">\n {legal}\n </Text>\n {legalLinks.length ? (\n <Text variant=\"caption\" as=\"ul\" className=\"ow-footer03__legal\">\n {legalLinks.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n </li>\n ))}\n </Text>\n ) : null}\n </div>\n </div>\n </footer>\n );\n}\n", "import { cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { FooterColumns } from \"@blocks/shared/FooterColumns\";\nimport type { Footer04Props } from \"./Footer04.types\";\n\n/** A last line of pitch and a button, columns of links, the small print, and the product's name set very large across the bottom. */\nexport function Footer04({ title, titleMuted, primaryAction, columns, legal, legalLinks = [], wordmark, className, ...props }: Footer04Props) {\n return (\n <footer className={cx(\"ow-footer04\", className)} {...props}>\n <div className=\"ow-footer04__inner\">\n <div className=\"ow-footer04__top\">\n <div className=\"ow-footer04__pitch\">\n <Text variant=\"heading\" as=\"p\">\n {title}\n {titleMuted ? (\n <>\n {\" \"}\n <Text variant=\"heading\" as=\"span\" tone=\"muted\">\n {titleMuted}\n </Text>\n </>\n ) : null}\n </Text>\n {primaryAction ? <BlockActionButton action={primaryAction} variant=\"primary\" size=\"md\" /> : null}\n </div>\n <div className=\"ow-footer04__columns\">\n <FooterColumns columns={columns} headingClassName=\"ow-footer04__heading\" listClassName=\"ow-footer04__list\" />\n </div>\n </div>\n\n <div className=\"ow-footer04__legal\">\n <Text variant=\"caption\" as=\"p\">\n {legal}\n </Text>\n {legalLinks.length ? (\n <Text variant=\"caption\" as=\"ul\" className=\"ow-footer04__legal-links\">\n {legalLinks.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n </li>\n ))}\n </Text>\n ) : null}\n </div>\n\n <div className=\"ow-footer04__name\" aria-hidden=\"true\">\n <div className=\"ow-footer04__crop\">\n <span>{wordmark}</span>\n </div>\n </div>\n </div>\n </footer>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, DotGrid, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport type { Cta01Props } from \"./Cta01.types\";\n\n/** A wide panel on a dot grid with a headline on the left and the buttons on the right. */\nexport function Cta01({ title, description, primaryAction, secondaryAction, note, className, ...props }: Cta01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-cta01\", className)} aria-labelledby={id} {...props}>\n <DotGrid fade className=\"ow-cta01__panel\">\n <div className=\"ow-cta01__content\">\n <div className=\"ow-cta01__text\">\n <Text variant=\"section-title\" id={id}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-cta01__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n <div className=\"ow-cta01__side\">\n <BlockActions className=\"ow-cta01__actions\" primary={primaryAction} secondary={secondaryAction} />\n {note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-cta01__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </div>\n </DotGrid>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, DotGrid, Link, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { ArrowRightIcon, CheckIcon } from \"@blocks/shared/icons\";\nimport type { Cta02Props } from \"./Cta02.types\";\n\n/** A centred call to action on the brand colour, with white text, a white button and a few facts. */\nexport function Cta02({ eyebrow, title, description, primaryAction, secondaryLink, facts, className, ...props }: Cta02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-cta02\", className)} aria-labelledby={id} {...props}>\n <DotGrid fade className=\"ow-cta02__plate\">\n <div className=\"ow-cta02__content\">\n {/* A Chip, redrawn for the plate: the library's white Chip would glare on the brand colour. */}\n {eyebrow ? (\n <Text as=\"p\" variant=\"body\" className=\"ow-cta02__eyebrow\">\n {eyebrow}\n </Text>\n ) : null}\n <Text as=\"h2\" variant=\"page-title\" id={id} className=\"ow-cta02__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-cta02__lead\">\n {description}\n </Text>\n ) : null}\n <div className=\"ow-cta02__actions\">\n <BlockActionButton action={primaryAction} variant=\"secondary\" className=\"ow-cta02__action\" />\n {secondaryLink ? (\n <Link href={secondaryLink.href} variant=\"standalone\" className=\"ow-cta02__link\">\n <Text variant=\"label\">{secondaryLink.label}</Text>\n <ArrowRightIcon size={16} />\n </Link>\n ) : null}\n </div>\n {facts?.length ? (\n <ul className=\"ow-cta02__facts\">\n {facts.map((fact, index) => (\n <Text as=\"li\" variant=\"body\" key={index}>\n <CheckIcon size={15} />\n {fact}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n </DotGrid>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActions } from \"@blocks/shared/BlockActions\";\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Cta03Props } from \"./Cta03.types\";\n\n/** Words, two buttons and a few points beside a picture. */\nexport function Cta03({ eyebrow, title, description, primaryAction, secondaryAction, points, visual, className, ...props }: Cta03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-cta03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-cta03__inner\">\n <div>\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n <BlockActions className=\"ow-cta03__actions\" primary={primaryAction} secondary={secondaryAction} />\n {points?.length ? (\n <ul className=\"ow-cta03__points\">\n {points.map((point, index) => (\n <Text as=\"li\" variant=\"body\" tone=\"soft\" key={index}>\n <CheckIcon size={16} />\n {point}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n {visual}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading } from \"@openwarelabs/ui\";\n\nimport type { SectionHeading01Props } from \"./SectionHeading01.types\";\n\n/** The label, the title and the intro centred over the section. */\nexport function SectionHeading01({ eyebrow, title, description, className, ...props }: SectionHeading01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-section-heading01\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-section-heading01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { SectionHeading02Props } from \"./SectionHeading02.types\";\n\n/** The heading on the left and a link to the rest on the right. */\nexport function SectionHeading02({ eyebrow, title, description, link, className, ...props }: SectionHeading02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-section-heading02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-section-heading02__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n <Link href={link.href} variant=\"standalone\" className=\"ow-section-heading02__link\">\n {link.label}\n <ArrowRightIcon size={16} />\n </Link>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport type { SectionHeading03Props } from \"./SectionHeading03.types\";\n\n/** The title on the left; the intro and a button on the right. */\nexport function SectionHeading03({ eyebrow, title, description, action, className, ...props }: SectionHeading03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-section-heading03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-section-heading03__inner\">\n {/* The intro sits beside the title instead of under it, so SectionHeading gets none. */}\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} />\n <div className=\"ow-section-heading03__aside\">\n {description ? (\n <Text variant=\"lead\" className=\"ow-section-heading03__intro\">\n {description}\n </Text>\n ) : null}\n {action ? <BlockActionButton action={action} variant=\"secondary\" size=\"md\" /> : null}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Text } from \"@openwarelabs/ui\";\n\nimport type { Logos01Props } from \"./Logos01.types\";\n\n/** A row of customers' logos under a small heading. */\nexport function Logos01({ title, logos, className, ...props }: Logos01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-logos01\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-logos01__inner\">\n {/* A small heading: the logos are the point. */}\n <Text as=\"h2\" variant=\"body\" tone=\"muted\" align=\"center\" id={id}>\n {title}\n </Text>\n <ul className=\"ow-logos01__list\">\n {logos.map((logo) => (\n <li key={logo.name} className=\"ow-logos01__logo\">\n {logo.logo}\n </li>\n ))}\n </ul>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Logos02Props } from \"./Logos02.types\";\n\n/** Customers' logos in tiles on one card, each linking to its story. */\nexport function Logos02({ eyebrow, title, description, logos, link, labels = {}, className, ...props }: Logos02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-logos02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-logos02__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n <ul className=\"ow-logos02__tiles\">\n {logos.map((logo) => (\n <li key={logo.name}>\n <Link href={logo.href} variant=\"standalone\" className=\"ow-logos02__tile\">\n <span className=\"ow-logos02__logo\">{logo.logo}</span>\n <Text variant=\"caption\" className=\"ow-logos02__more\">\n {labels.more ?? \"Read the story\"}\n <ArrowRightIcon size={13} />\n </Text>\n </Link>\n </li>\n ))}\n </ul>\n {link ? (\n <Text variant=\"body\" tone=\"muted\" align=\"center\" className=\"ow-logos02__footer\">\n <Link href={link.href}>{link.label}</Link>\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, cx, Text, Tooltip } from \"@openwarelabs/ui\";\n\nimport { PauseIcon, PlayIcon } from \"@blocks/shared/icons\";\nimport type { Logos03Logo, Logos03Props } from \"./Logos03.types\";\n\nfunction LogoList({ logos, copy = false }: { logos: Logos03Logo[]; copy?: boolean }) {\n return (\n <ul className={copy ? \"ow-logos03__list ow-logos03__list--copy\" : \"ow-logos03__list\"} aria-hidden={copy || undefined}>\n {logos.map((logo) => (\n <li key={logo.name} className=\"ow-logos03__logo\">\n {logo.logo}\n </li>\n ))}\n </ul>\n );\n}\n\n/** A slow, endless row of customers' logos that pauses on hover and stands still with reduced motion. */\nexport function Logos03({ title, logos, labels = {}, className, ...props }: Logos03Props) {\n const id = useId();\n const [paused, setPaused] = useState(false);\n const toggleLabel = paused ? (labels.play ?? \"Play the logos\") : (labels.pause ?? \"Pause the logos\");\n\n return (\n <section className={cx(\"ow-logos03\", className)} aria-labelledby={id} data-paused={paused || undefined} {...props}>\n <div className=\"ow-logos03__head\">\n <Text as=\"h2\" variant=\"body\" tone=\"muted\" align=\"center\" id={id}>\n {title}\n </Text>\n {/* Moving content needs a way to stop it for good; hover and focus only hold it still for a moment. */}\n <Tooltip label={toggleLabel}>\n <Button\n className=\"ow-logos03__toggle\"\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={toggleLabel}\n onClick={() => setPaused((value) => !value)}\n >\n {paused ? <PlayIcon size={14} /> : <PauseIcon size={14} />}\n </Button>\n </Tooltip>\n </div>\n {/* Focusable, so a keyboard can hold it still too. */}\n <div className=\"ow-logos03__viewport\" role=\"region\" aria-label={labels.region ?? \"Customer logos\"} tabIndex={0}>\n <div className=\"ow-logos03__track\">\n <LogoList logos={logos} />\n <LogoList logos={logos} copy />\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Stats01Props } from \"./Stats01.types\";\n\n/** Three or four large numbers in a row, each with a short label. */\nexport function Stats01({ eyebrow, title, stats, note, className, ...props }: Stats01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-stats01\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-stats01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} />\n\n <dl className=\"ow-stats01__list\">\n {stats.map((stat, index) => (\n <div key={index} className=\"ow-stats01__item\">\n <Text as=\"dt\" variant=\"body\" tone=\"muted\">\n {stat.label}\n </Text>\n <Text as=\"dd\" variant=\"page-title\" className=\"ow-stats01__value\">\n {stat.value}\n {stat.unit ? (\n <Text as=\"span\" variant=\"page-title\" tone=\"muted\" className=\"ow-stats01__unit\">\n {stat.unit}\n </Text>\n ) : null}\n </Text>\n </div>\n ))}\n </dl>\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-stats01__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading, Stat, Text } from \"@openwarelabs/ui\";\n\nimport type { Stats02Props } from \"./Stats02.types\";\n\n/** Each number on its own card, with its change and a trend line. */\nexport function Stats02({ eyebrow, title, description, link, stats, className, ...props }: Stats02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-stats02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-stats02__inner\">\n <div className=\"ow-stats02__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n {link ? (\n <Link href={link.href} variant=\"standalone\" className=\"ow-stats02__link\">\n {link.label}\n </Link>\n ) : null}\n </div>\n\n <div className=\"ow-stats02__grid\">\n {/* Stat is sized for an app's overview; on a marketing page the number takes a display size. */}\n {stats.map((stat, index) => (\n <Stat\n key={index}\n {...stat}\n value={\n <Text as=\"span\" variant=\"section-title\">\n {stat.value}\n </Text>\n }\n className=\"ow-stats02__stat\"\n />\n ))}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Stats03Props } from \"./Stats03.types\";\n\n/** A heading and a paragraph on the left, numbers on the right. */\nexport function Stats03({ eyebrow, title, description, link, stats, className, ...props }: Stats03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-stats03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-stats03__inner\">\n <div className=\"ow-stats03__copy\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n {link ? (\n <Link href={link.href} variant=\"standalone\" className=\"ow-stats03__link\">\n {link.label}\n </Link>\n ) : null}\n </div>\n\n <dl className=\"ow-stats03__grid\">\n {stats.map((stat, index) => (\n <div key={index} className=\"ow-stats03__item\">\n <Text as=\"dt\" variant=\"card-title\" className=\"ow-stats03__label\">\n {stat.label}\n </Text>\n <Text as=\"dd\" variant=\"page-title\" className=\"ow-stats03__value\">\n {stat.value}\n {stat.unit ? (\n <Text as=\"span\" variant=\"page-title\" tone=\"muted\" className=\"ow-stats03__unit\">\n {stat.unit}\n </Text>\n ) : null}\n </Text>\n {stat.detail ? (\n <Text as=\"dd\" variant=\"copy\" className=\"ow-stats03__detail\">\n {stat.detail}\n </Text>\n ) : null}\n </div>\n ))}\n </dl>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Badge, cx, Text, User, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { QuoteIcon } from \"@blocks/shared/icons\";\nimport type { Testimonial01Props } from \"./Testimonial01.types\";\n\n/** One large quote with the person under it. */\nexport function Testimonial01({ quote, highlight, name, jobTitle, avatar, badge, labels = {}, className, ...props }: Testimonial01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-testimonial01\", className)} aria-labelledby={id} {...props}>\n <Text variant=\"section-title\" id={id}>\n <VisuallyHidden>{labels.title ?? \"What customers say\"}</VisuallyHidden>\n </Text>\n <figure className=\"ow-testimonial01__figure\">\n <QuoteIcon size={22} className=\"ow-testimonial01__mark\" />\n <blockquote className=\"ow-testimonial01__quote\">\n {/* The setup sits back in muted grey; the part worth remembering is in full colour. */}\n <Text as=\"p\" variant=\"section-title\" tone=\"muted\" className=\"ow-testimonial01__text\">\n {quote}\n {highlight ? (\n <>\n {\" \"}\n <Text as=\"span\" variant=\"section-title\" tone=\"default\">\n {highlight}\n </Text>\n </>\n ) : null}\n </Text>\n </blockquote>\n <figcaption className=\"ow-testimonial01__caption\">\n <User name={name} description={jobTitle} src={avatar} size=\"lg\" />\n {badge ? (\n <Badge size=\"sm\" className=\"ow-testimonial01__sample\">\n {badge}\n </Badge>\n ) : null}\n </figcaption>\n </figure>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Badge, Card, cx, SectionHeading, Text, User } from \"@openwarelabs/ui\";\n\nimport type { Testimonial02Props } from \"./Testimonial02.types\";\n\n/** Several quotes in cards, in columns like a wall of notes. */\nexport function Testimonial02({ eyebrow, title, description, badge, quotes, className, ...props }: Testimonial02Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-testimonial02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-testimonial02__inner\">\n <div className=\"ow-testimonial02__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n {badge ? (\n <Badge size=\"sm\" className=\"ow-testimonial02__sample\">\n {badge}\n </Badge>\n ) : null}\n </div>\n\n <ul className=\"ow-testimonial02__list\">\n {quotes.map((item, index) => (\n <li key={index} className=\"ow-testimonial02__item\">\n <Card padding=\"lg\" className=\"ow-testimonial02__card\">\n <figure className=\"ow-testimonial02__figure\">\n <blockquote className=\"ow-testimonial02__quote\">\n {/* Short quotes read as headlines. */}\n <Text as=\"p\" variant={item.short ? \"heading\" : \"copy\"} tone={item.short ? \"default\" : \"soft\"}>\n {item.quote}\n </Text>\n </blockquote>\n <figcaption>\n <User name={item.name} description={item.jobTitle} src={item.avatar} />\n </figcaption>\n </figure>\n </Card>\n </li>\n ))}\n </ul>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { cx, SectionHeading, Tab, TabList, TabPanel, Tabs, Text, User } from \"@openwarelabs/ui\";\n\nimport { QuoteIcon } from \"@blocks/shared/icons\";\nimport type { Testimonial03Props } from \"./Testimonial03.types\";\n\n/** Customers' logos as tabs, each showing a quote, the person, and a panel about their company. */\nexport function Testimonial03({ eyebrow, title, stories, defaultStory = 0, note, labels = {}, className, ...props }: Testimonial03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-testimonial03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-testimonial03__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} />\n\n <Tabs defaultValue={String(defaultStory)} variant=\"line\" className=\"ow-testimonial03__tabs\">\n <TabList aria-label={labels.tabs ?? \"Customers\"}>\n {stories.map((story, index) => (\n <Tab key={story.company} value={String(index)} className=\"ow-testimonial03__tab\">\n {story.logo}\n </Tab>\n ))}\n </TabList>\n\n {stories.map((story, index) => (\n <TabPanel key={story.company} value={String(index)} className=\"ow-testimonial03__panel\">\n <figure className=\"ow-testimonial03__card\">\n <div className=\"ow-testimonial03__body\">\n <QuoteIcon size={18} className=\"ow-testimonial03__mark\" />\n <blockquote className=\"ow-testimonial03__quote\">\n <Text as=\"p\" variant=\"heading\" className=\"ow-testimonial03__text\">\n {story.quote}\n </Text>\n </blockquote>\n <figcaption className=\"ow-testimonial03__person\">\n <User name={story.name} description={story.jobTitle} src={story.avatar} size=\"lg\" />\n </figcaption>\n </div>\n <div className=\"ow-testimonial03__company\">\n {story.largeLogo ?? story.logo}\n {story.about ? (\n <Text variant=\"copy\" className=\"ow-testimonial03__about\">\n {story.about}\n </Text>\n ) : null}\n {story.facts?.length ? (\n <dl className=\"ow-testimonial03__facts\">\n {story.facts.map((fact, factIndex) => (\n <div key={factIndex} className=\"ow-testimonial03__fact\">\n <Text as=\"dt\" variant=\"body\" tone=\"muted\">\n {fact.label}\n </Text>\n <Text as=\"dd\" variant=\"label\" align=\"end\">\n {fact.value}\n </Text>\n </div>\n ))}\n </dl>\n ) : null}\n </div>\n </figure>\n </TabPanel>\n ))}\n </Tabs>\n\n {note ? (\n <Text as=\"p\" variant=\"caption\" align=\"center\" className=\"ow-testimonial03__note\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Accordion, AccordionItem, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Faq01Props } from \"./Faq01.types\";\n\n/** Questions in an accordion that opens one at a time, under a centred heading. */\nexport function Faq01({ eyebrow, title, description, questions, defaultOpen, note, className, ...props }: Faq01Props) {\n const id = useId();\n const value = (index: number) => questions[index]?.id ?? String(index);\n return (\n <section className={cx(\"ow-faq01\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-faq01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n\n <Accordion className=\"ow-faq01__list\" defaultValue={defaultOpen ?? (questions.length ? [value(0)] : [])}>\n {questions.map((item, index) => (\n <AccordionItem key={value(index)} value={value(index)} title={item.question}>\n <Text variant=\"copy\" className=\"ow-faq01__answer\">\n {item.answer}\n </Text>\n </AccordionItem>\n ))}\n </Accordion>\n\n {note ? (\n <Text variant=\"body\" tone=\"muted\" align=\"center\" className=\"ow-faq01__more\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Accordion, AccordionItem, cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Faq02Props } from \"./Faq02.types\";\n\n/** A heading on the left, the questions on the right. */\nexport function Faq02({ eyebrow, title, description, links, questions, defaultOpen, className, ...props }: Faq02Props) {\n const id = useId();\n const value = (index: number) => questions[index]?.id ?? String(index);\n return (\n <section className={cx(\"ow-faq02\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-faq02__inner\">\n <div className=\"ow-faq02__intro\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n {links?.length ? (\n <ul className=\"ow-faq02__links\">\n {links.map((link, index) => (\n <li key={index}>\n <Link href={link.href} variant=\"standalone\">\n {link.label}\n <ArrowRightIcon size={14} />\n </Link>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n\n <Accordion className=\"ow-faq02__list\" type=\"multiple\" defaultValue={defaultOpen ?? (questions.length ? [value(0)] : [])}>\n {questions.map((item, index) => (\n <AccordionItem key={value(index)} value={value(index)} title={item.question}>\n <Text variant=\"copy\" className=\"ow-faq02__answer\">\n {item.answer}\n </Text>\n </AccordionItem>\n ))}\n </Accordion>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Avatar, AvatarGroup, Card, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport type { Faq03Props } from \"./Faq03.types\";\n\n/** Every question answered in two columns, and a card for anything they don't cover. */\nexport function Faq03({ eyebrow, title, description, questions, contact, className, ...props }: Faq03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-faq03\", className)} aria-labelledby={id} {...props}>\n <div className=\"ow-faq03__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={id}>{title}</span>} intro={description} />\n\n <div className=\"ow-faq03__grid\">\n {questions.map((item, index) => (\n <div key={index} className=\"ow-faq03__item\">\n <Text variant=\"card-title\">{item.question}</Text>\n <Text variant=\"copy\" className=\"ow-faq03__answer\">\n {item.answer}\n </Text>\n </div>\n ))}\n </div>\n\n {contact ? (\n <Card padding=\"none\" className=\"ow-faq03__card\">\n {contact.people?.length ? (\n <AvatarGroup size=\"lg\" label={contact.peopleLabel} className=\"ow-faq03__people\">\n {contact.people.map((person, index) => (\n <Avatar key={index} name={person.name} src={person.avatar} />\n ))}\n </AvatarGroup>\n ) : null}\n <div className=\"ow-faq03__card-text\">\n <Text variant=\"card-title\">{contact.title}</Text>\n {contact.description ? (\n <Text variant=\"copy\" className=\"ow-faq03__card-body\">\n {contact.description}\n </Text>\n ) : null}\n {contact.status ? (\n <Text as=\"p\" variant=\"caption\" tone=\"soft\" className=\"ow-faq03__status\">\n {contact.status}\n </Text>\n ) : null}\n </div>\n <div className=\"ow-faq03__actions\">\n <BlockActionButton action={contact.primaryAction} variant=\"primary\" size=\"md\" />\n {contact.secondaryAction ? <BlockActionButton action={contact.secondaryAction} variant=\"secondary\" size=\"md\" /> : null}\n </div>\n </Card>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Field, Input, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { CircleCheckIcon } from \"@blocks/shared/icons\";\nimport type { Newsletter01Labels, Newsletter01Props } from \"./Newsletter01.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nfunction emailError(value: string, labels: Newsletter01Labels) {\n if (!value.trim()) return labels.empty ?? \"Enter your email address.\";\n if (!emailPattern.test(value.trim())) return labels.invalid ?? \"Enter an email address like name@example.com.\";\n return undefined;\n}\n\n/** A newsletter sign-up in one row: the heading on the left, the field and button on the right, a confirmation in place of the form. */\nexport function Newsletter01({\n eyebrow,\n title,\n description,\n submitLabel,\n onSubmit,\n note,\n successTitle,\n successDescription,\n labels = {},\n className,\n ...props\n}: Newsletter01Props) {\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState<string>();\n const [touched, setTouched] = useState(false);\n const [sending, setSending] = useState(false);\n const [subscribed, setSubscribed] = useState<string>();\n const doneRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const resetting = useRef(false);\n const id = useId();\n const titleId = `${id}-title`;\n\n // Move focus with the change, so keyboard and screen reader users land on the confirmation, and back on the field.\n useEffect(() => {\n if (subscribed) doneRef.current?.focus();\n else if (resetting.current) inputRef.current?.focus();\n resetting.current = false;\n }, [subscribed]);\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setTouched(true);\n const problem = emailError(email, labels);\n setError(problem);\n if (problem) return;\n const address = email.trim();\n setSending(true);\n try {\n await onSubmit(address);\n setSubscribed(address);\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n inputRef.current?.focus();\n } finally {\n setSending(false);\n }\n };\n\n const reset = () => {\n resetting.current = true;\n setSubscribed(undefined);\n setEmail(\"\");\n setTouched(false);\n setError(undefined);\n };\n\n return (\n <section className={cx(\"ow-newsletter01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-newsletter01__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n\n <div>\n {subscribed ? (\n <div\n ref={doneRef}\n tabIndex={-1}\n role=\"group\"\n aria-labelledby={`${id}-done-title`}\n aria-describedby={successDescription ? `${id}-done-text` : undefined}\n className=\"ow-newsletter01__done\"\n >\n <CircleCheckIcon size={20} />\n <div>\n <Text as=\"p\" variant=\"label\" id={`${id}-done-title`}>\n {successTitle}\n </Text>\n {successDescription ? (\n <Text variant=\"copy\" tone=\"soft\" id={`${id}-done-text`} className=\"ow-newsletter01__done-text\">\n {successDescription(subscribed)}\n </Text>\n ) : null}\n <Button variant=\"ghost\" size=\"sm\" className=\"ow-newsletter01__reset\" onClick={reset}>\n {labels.change ?? \"Use a different email\"}\n </Button>\n </div>\n </div>\n ) : (\n <form className=\"ow-newsletter01__form\" aria-labelledby={titleId} noValidate onSubmit={submit}>\n <Field label={labels.email ?? \"Email address\"} error={error}>\n <Input\n ref={inputRef}\n type=\"email\"\n autoComplete=\"email\"\n placeholder={labels.placeholder ?? \"you@example.com\"}\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n // Once they've tried to send, say as they type whether it's fixed.\n if (touched) setError(emailError(event.target.value, labels));\n }}\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" loading={sending} className=\"ow-newsletter01__submit\">\n {submitLabel}\n </Button>\n {note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-newsletter01__fine\">\n {note}\n </Text>\n ) : null}\n </form>\n )}\n </div>\n </div>\n </section>\n );\n}\n", "import { useId, useState, type FormEvent } from \"react\";\n\nimport { Avatar, AvatarGroup, Button, Card, cx, Field, Input, Link, Text, toast } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Newsletter02Labels, Newsletter02Props } from \"./Newsletter02.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nfunction emailError(value: string, labels: Newsletter02Labels) {\n if (!value.trim()) return labels.empty ?? \"Enter your email address.\";\n if (!emailPattern.test(value.trim())) return labels.invalid ?? \"Enter an email address like name@example.com.\";\n return undefined;\n}\n\n/** A newsletter sign-up in a card at the reading width, for the end of a post, with its writers along the foot. */\nexport function Newsletter02({\n icon,\n title,\n description,\n submitLabel,\n onSubmit,\n successTitle,\n successDescription,\n authors = [],\n authorsNote,\n archiveLink,\n labels = {},\n className,\n ...props\n}: Newsletter02Props) {\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState<string>();\n const [touched, setTouched] = useState(false);\n const [sending, setSending] = useState(false);\n const titleId = `${useId()}-title`;\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setTouched(true);\n const problem = emailError(email, labels);\n setError(problem);\n if (problem) return;\n const address = email.trim();\n setSending(true);\n try {\n await onSubmit(address);\n toast.success(successTitle, { description: successDescription?.(address) });\n setEmail(\"\");\n setTouched(false);\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n } finally {\n setSending(false);\n }\n };\n\n const hasFoot = authors.length > 0 || Boolean(authorsNote) || Boolean(archiveLink);\n\n return (\n <section className={cx(\"ow-newsletter02\", className)} aria-labelledby={titleId} {...props}>\n <Card padding=\"none\" className=\"ow-newsletter02__card\">\n <div className=\"ow-newsletter02__body\">\n {icon ? (\n <span className=\"ow-newsletter02__icon\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n <Text as=\"h2\" variant=\"heading\" id={titleId} className=\"ow-newsletter02__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-newsletter02__lead\">\n {description}\n </Text>\n ) : null}\n <form className=\"ow-newsletter02__form\" aria-labelledby={titleId} noValidate onSubmit={submit}>\n <Field label={labels.email ?? \"Email address\"} error={error}>\n <Input\n type=\"email\"\n autoComplete=\"email\"\n placeholder={labels.placeholder ?? \"you@example.com\"}\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n if (touched) setError(emailError(event.target.value, labels));\n }}\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" loading={sending} className=\"ow-newsletter02__submit\">\n {submitLabel}\n </Button>\n </form>\n </div>\n {hasFoot ? (\n <div className=\"ow-newsletter02__foot\">\n <div className=\"ow-newsletter02__authors\">\n {authors.length ? (\n <AvatarGroup size=\"sm\">\n {authors.map((name) => (\n <Avatar key={name} name={name} />\n ))}\n </AvatarGroup>\n ) : null}\n {authorsNote ? (\n <Text variant=\"body\" tone=\"muted\">\n {authorsNote}\n </Text>\n ) : null}\n </div>\n {archiveLink ? (\n <Link href={archiveLink.href} variant=\"standalone\" className=\"ow-newsletter02__past\">\n {archiveLink.label}\n <ArrowRightIcon size={14} />\n </Link>\n ) : null}\n </div>\n ) : null}\n </Card>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Card, cx, Link, SectionHeading, SegmentedControl, Tag, Text, User } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport type { Blog01Props } from \"./Blog01.types\";\n\n// The filter's value for every post: no category is empty.\nconst all = \"\";\n\n/** A grid of post cards, each with a cover, its category and date, a title, an excerpt and the author, with a filter by category. */\nexport function Blog01({ eyebrow, title, description, posts, categories, moreAction, labels = {}, className, ...props }: Blog01Props) {\n const [filter, setFilter] = useState(all);\n const titleId = `${useId()}-title`;\n const shown = posts.map((post, index) => ({ post, index })).filter(({ post }) => filter === all || post.category === filter);\n\n return (\n <section className={cx(\"ow-blog01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-blog01__inner\">\n <div className=\"ow-blog01__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n {categories?.length ? (\n <div className=\"ow-blog01__filter\">\n <SegmentedControl\n aria-label={labels.filter ?? \"Show posts about\"}\n options={[{ value: all, label: labels.all ?? \"All\" }, ...categories.map((value) => ({ value, label: value }))]}\n value={filter}\n onChange={setFilter}\n />\n </div>\n ) : null}\n </div>\n\n <ul className=\"ow-blog01__posts\">\n {shown.map(({ post, index }) => (\n <li key={index}>\n <Card padding=\"none\" className=\"ow-blog01__post\">\n {post.cover ? <div className=\"ow-blog01__cover\">{post.cover}</div> : null}\n <div className=\"ow-blog01__body\">\n <Text variant=\"caption\" as=\"div\" className=\"ow-blog01__meta\">\n {post.category ? <Tag size=\"sm\">{post.category}</Tag> : null}\n <time dateTime={post.dateTime}>{post.date}</time>\n </Text>\n <Text variant=\"heading\" as=\"h3\" className=\"ow-blog01__post-title\">\n <Link href={post.href} variant=\"standalone\" className=\"ow-blog01__link\">\n {post.title}\n </Link>\n </Text>\n {post.excerpt ? (\n <Text variant=\"copy\" className=\"ow-blog01__excerpt\">\n {post.excerpt}\n </Text>\n ) : null}\n {post.author || post.readingTime ? (\n <div className=\"ow-blog01__byline\">\n {post.author ? (\n <User name={post.author.name} description={post.author.jobTitle} src={post.author.avatar} size=\"sm\" />\n ) : null}\n {post.readingTime ? (\n <Text variant=\"caption\" className=\"ow-blog01__read\">\n {post.readingTime}\n </Text>\n ) : null}\n </div>\n ) : null}\n </div>\n </Card>\n </li>\n ))}\n </ul>\n\n {moreAction ? (\n <div className=\"ow-blog01__footer\">\n <BlockActionButton action={moreAction} variant=\"secondary\" size=\"md\" />\n </div>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Avatar, Card, cx, Link, Tag, Text, User } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Blog02Props } from \"./Blog02.types\";\n\n/** One post large, with its cover, excerpt, figures and author, and the next few in a row below it. */\nexport function Blog02({ title, allLink, featured, posts = [], className, ...props }: Blog02Props) {\n const titleId = `${useId()}-title`;\n\n return (\n <section className={cx(\"ow-blog02\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-blog02__inner\">\n <div className=\"ow-blog02__header\">\n <Text variant=\"section-title\" id={titleId}>\n {title}\n </Text>\n {allLink ? (\n <Link href={allLink.href} variant=\"standalone\" className=\"ow-blog02__all\">\n {allLink.label}\n <ArrowRightIcon size={16} />\n </Link>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-blog02__lead\">\n {featured.cover ? <div className=\"ow-blog02__lead-cover\">{featured.cover}</div> : null}\n <div className=\"ow-blog02__lead-body\">\n <Text variant=\"caption\" as=\"div\" className=\"ow-blog02__meta\">\n {featured.category ? <Tag size=\"sm\">{featured.category}</Tag> : null}\n <time dateTime={featured.dateTime}>{featured.date}</time>\n </Text>\n <Text variant=\"heading\" as=\"h3\" className=\"ow-blog02__lead-title\">\n <Link href={featured.href} variant=\"standalone\" className=\"ow-blog02__link\">\n {featured.title}\n </Link>\n </Text>\n {featured.excerpt ? (\n <Text variant=\"lead\" className=\"ow-blog02__excerpt\">\n {featured.excerpt}\n </Text>\n ) : null}\n {featured.facts?.length ? (\n <dl className=\"ow-blog02__facts\">\n {featured.facts.map((fact, index) => (\n <div key={index} className=\"ow-blog02__fact\">\n <Text variant=\"caption\" as=\"dt\">\n {fact.label}\n </Text>\n <Text variant=\"heading\" as=\"dd\" className=\"ow-blog02__fact-value\">\n {fact.value}\n </Text>\n </div>\n ))}\n </dl>\n ) : null}\n {featured.author || featured.readingTime ? (\n <div className=\"ow-blog02__byline\">\n {featured.author ? (\n <User name={featured.author.name} description={featured.author.jobTitle} src={featured.author.avatar} />\n ) : null}\n {featured.readingTime ? (\n <Text variant=\"caption\" className=\"ow-blog02__read\">\n {featured.readingTime}\n </Text>\n ) : null}\n </div>\n ) : null}\n </div>\n </Card>\n\n {posts.length ? (\n <ul className=\"ow-blog02__more\">\n {posts.map((post, index) => (\n <li key={index}>\n <div className=\"ow-blog02__item\">\n {post.cover ? <div className=\"ow-blog02__thumb\">{post.cover}</div> : null}\n <div>\n <Text variant=\"caption\" as=\"div\" className=\"ow-blog02__meta\">\n {post.category ? (\n <>\n <span>{post.category}</span>\n <span aria-hidden=\"true\">\u00B7</span>\n </>\n ) : null}\n <time dateTime={post.dateTime}>{post.date}</time>\n </Text>\n <Text variant=\"card-title\" as=\"h3\" className=\"ow-blog02__item-title\">\n <Link href={post.href} variant=\"standalone\" className=\"ow-blog02__link\">\n {post.title}\n </Link>\n </Text>\n {post.author ? (\n <Text variant=\"caption\" as=\"div\" className=\"ow-blog02__item-author\">\n <Avatar name={post.author.name} src={post.author.avatar} size=\"sm\" />\n {post.author.name}\n </Text>\n ) : null}\n </div>\n </div>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Badge, Button, cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { ChevronDownIcon } from \"@blocks/shared/icons\";\nimport type { Blog03Props } from \"./Blog03.types\";\n\n/** A changelog: releases down a timeline, the date and version on the left, the headline and its changes by group on the right. */\nexport function Blog03({ eyebrow, title, description, links = [], releases, initialCount = 3, labels = {}, className, ...props }: Blog03Props) {\n const [showAll, setShowAll] = useState(false);\n const id = useId();\n const titleId = `${id}-title`;\n const hidden = Math.max(releases.length - initialCount, 0);\n const shown = showAll ? releases : releases.slice(0, initialCount);\n\n return (\n <section className={cx(\"ow-blog03\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-blog03__inner\">\n <div className=\"ow-blog03__header\">\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n {links.length ? (\n <div className=\"ow-blog03__subscribe\">\n {links.map((link, index) => (\n <Link key={index} href={link.href} variant=\"standalone\">\n {link.icon}\n {link.label}\n </Link>\n ))}\n </div>\n ) : null}\n </div>\n\n <ol className=\"ow-blog03__list\">\n {shown.map((release, index) => (\n <li key={release.version} className=\"ow-blog03__release\">\n <div className=\"ow-blog03__when\">\n <Text variant=\"code\" as=\"span\" className=\"ow-blog03__version\">\n {labels.versionPrefix ?? \"v\"}\n {release.version}\n </Text>\n <Text variant=\"body\" as=\"span\" tone=\"muted\">\n <time dateTime={release.dateTime}>{release.date}</time>\n </Text>\n {index === 0 ? (\n <Badge size=\"sm\" variant=\"neutral\">\n {labels.latest ?? \"Latest\"}\n </Badge>\n ) : null}\n </div>\n <article className=\"ow-blog03__body\" aria-labelledby={`${id}-${index}`}>\n <span className=\"ow-blog03__node\" aria-hidden=\"true\" />\n <Text variant=\"heading\" as=\"h3\" id={`${id}-${index}`}>\n {release.title}\n </Text>\n {release.summary ? (\n <Text variant=\"prose\" tone=\"muted\" className=\"ow-blog03__summary\">\n {release.summary}\n </Text>\n ) : null}\n {release.visual}\n {release.changes?.length ? (\n <div className=\"ow-blog03__groups\">\n {release.changes.map((group) => (\n <div key={group.label} className=\"ow-blog03__group\">\n <Badge size=\"sm\" variant={group.variant ?? \"neutral\"}>\n {group.label}\n </Badge>\n <ul\n className=\"ow-blog03__items\"\n aria-label={labels.changes?.(group.label, release.version) ?? `${group.label} in ${release.version}`}\n >\n {group.items.map((change, item) => (\n <Text key={item} variant=\"copy\" as=\"li\" tone=\"soft\">\n {change}\n </Text>\n ))}\n </ul>\n </div>\n ))}\n </div>\n ) : null}\n </article>\n </li>\n ))}\n </ol>\n\n {showAll || !hidden ? null : (\n <div className=\"ow-blog03__more\">\n <Button shape=\"pill\" endIcon={<ChevronDownIcon size={16} />} onClick={() => setShowAll(true)}>\n {labels.showOlder ? labels.showOlder(hidden) : <>Show {hidden} older releases</>}\n </Button>\n </div>\n )}\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useState, type MouseEvent } from \"react\";\n\nimport { CopyButton, cx, Disclosure, Link, Tag, TagGroup, Text, User } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon, CalendarDaysIcon, ClockIcon } from \"@blocks/shared/icons\";\nimport type { Blog04Props } from \"./Blog04.types\";\n\n/** An article's page: the title, author and date, a wide cover, then the text at a readable width with On this page beside it. */\nexport function Blog04({\n backLink,\n category,\n topic,\n title,\n description,\n author,\n date,\n dateTime,\n readingTime,\n cover,\n children,\n sections = [],\n tags = [],\n shareUrl,\n labels = {},\n className,\n ...props\n}: Blog04Props) {\n const [active, setActive] = useState(sections[0]?.id);\n const id = useId();\n const titleId = `${id}-title`;\n const contentsLabel = labels.contents ?? \"On this page\";\n const sectionIds = sections.map((section) => section.id).join(\" \");\n\n // Marks the section being read: the last heading that has scrolled past the top of the window.\n useEffect(() => {\n const ids = sectionIds.split(\" \").filter(Boolean);\n if (!ids.length) return;\n const onScroll = () => {\n let current = ids[0];\n for (const sectionId of ids) {\n const heading = document.getElementById(sectionId);\n if (heading && heading.getBoundingClientRect().top < 140) current = sectionId;\n }\n setActive(current);\n };\n window.addEventListener(\"scroll\", onScroll, { passive: true });\n return () => window.removeEventListener(\"scroll\", onScroll);\n }, [sectionIds]);\n\n const go = (event: MouseEvent<HTMLAnchorElement>, sectionId: string) => {\n event.preventDefault();\n const still = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n document.getElementById(sectionId)?.scrollIntoView({ behavior: still ? \"auto\" : \"smooth\", block: \"start\" });\n setActive(sectionId);\n };\n\n const contents = (\n <ol className=\"ow-blog04__toc\">\n {sections.map((section) => (\n <li key={section.id}>\n <Link\n href={`#${section.id}`}\n variant=\"standalone\"\n className=\"ow-blog04__toc-link\"\n aria-current={active === section.id ? \"location\" : undefined}\n onClick={(event) => go(event, section.id)}\n >\n {section.title}\n </Link>\n </li>\n ))}\n </ol>\n );\n\n const copy = shareUrl ? <CopyButton value={shareUrl} label={labels.copyLink ?? \"Copy link\"} copiedLabel={labels.linkCopied ?? \"Link copied\"} /> : null;\n\n return (\n <article className={cx(\"ow-blog04\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-blog04__inner\">\n {backLink ? (\n <Link href={backLink.href} variant=\"standalone\" className=\"ow-blog04__back\">\n <ArrowLeftIcon size={16} />\n {backLink.label}\n </Link>\n ) : null}\n\n <header className=\"ow-blog04__header\">\n {category || topic ? (\n <div className=\"ow-blog04__meta-top\">\n {category ? <Tag size=\"sm\">{category}</Tag> : null}\n {topic ? (\n <Text variant=\"body\" as=\"span\" tone=\"muted\">\n {topic}\n </Text>\n ) : null}\n </div>\n ) : null}\n <Text variant=\"page-title\" id={titleId} className=\"ow-blog04__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-blog04__dek\">\n {description}\n </Text>\n ) : null}\n {author || date || readingTime ? (\n <div className=\"ow-blog04__byline\">\n {author ? <User name={author.name} description={author.jobTitle} src={author.avatar} /> : null}\n {date || readingTime ? (\n <Text variant=\"body\" as=\"span\" tone=\"muted\" className=\"ow-blog04__byline-facts\">\n {date ? (\n <span>\n <CalendarDaysIcon size={15} />\n <time dateTime={dateTime}>{date}</time>\n </span>\n ) : null}\n {readingTime ? (\n <span>\n <ClockIcon size={15} />\n {readingTime}\n </span>\n ) : null}\n </Text>\n ) : null}\n </div>\n ) : null}\n </header>\n\n {cover ? <div className=\"ow-blog04__cover\">{cover}</div> : null}\n\n <div className=\"ow-blog04__layout\">\n {sections.length ? (\n <Disclosure title={contentsLabel} headingLevel={2} className=\"ow-blog04__toc-fold\">\n {contents}\n </Disclosure>\n ) : null}\n\n <div className=\"ow-blog04__prose\">\n {children}\n\n {tags.length || copy ? (\n <div className=\"ow-blog04__end\">\n {tags.length ? (\n <TagGroup label={labels.topics ?? \"Topics\"}>\n {tags.map((tag, index) => (\n <Tag key={index} size=\"sm\">\n {tag}\n </Tag>\n ))}\n </TagGroup>\n ) : null}\n {copy}\n </div>\n ) : null}\n </div>\n\n {sections.length || copy ? (\n <aside className=\"ow-blog04__aside\" aria-labelledby={sections.length ? `${id}-toc` : undefined}>\n {sections.length ? (\n <>\n <Text variant=\"label\" as=\"p\" id={`${id}-toc`} className=\"ow-blog04__toc-label\">\n {contentsLabel}\n </Text>\n {contents}\n </>\n ) : null}\n {copy ? <div className=\"ow-blog04__aside-share\">{copy}</div> : null}\n </aside>\n ) : null}\n </div>\n </div>\n </article>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Avatar, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport type { Team01Props } from \"./Team01.types\";\n\n/** A centred grid of faces, each with a name and what they do, and a line at the end such as a link to open roles. */\nexport function Team01({ eyebrow, title, description, people, note, className, ...props }: Team01Props) {\n const titleId = `${useId()}-title`;\n\n return (\n <section className={cx(\"ow-team01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-team01__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n\n <ul className=\"ow-team01__list\">\n {people.map((person, index) => (\n <li key={index} className=\"ow-team01__person\" data-tone={person.tone ?? \"brand\"}>\n <Avatar name={person.name} src={person.avatar} size={96} className=\"ow-team01__avatar\" />\n <Text variant=\"card-title\" as=\"span\" className=\"ow-team01__name\">\n {person.name}\n </Text>\n <Text variant=\"body\" as=\"span\" tone=\"muted\" className=\"ow-team01__role\">\n {person.jobTitle}\n </Text>\n </li>\n ))}\n </ul>\n\n {note ? (\n <Text variant=\"copy\" align=\"center\" className=\"ow-team01__hiring\">\n {note}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Avatar, buttonClassName, Card, cx, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { LinkIcon, MailIcon, MapPinIcon } from \"@blocks/shared/icons\";\nimport type { Team02Props } from \"./Team02.types\";\n\n/** A card for each person: their face, name and job, a line about what they do, and where they are with ways to reach them. */\nexport function Team02({ eyebrow, title, description, people, labels = {}, className, ...props }: Team02Props) {\n const titleId = `${useId()}-title`;\n\n return (\n <section className={cx(\"ow-team02\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-team02__inner\">\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n\n <ul className=\"ow-team02__list\">\n {people.map((person, index) => (\n <li key={index}>\n <Card padding=\"lg\" className=\"ow-team02__card\">\n <div className=\"ow-team02__head\">\n <Avatar name={person.name} src={person.avatar} size={56} />\n <div className=\"ow-team02__who\">\n <Text variant=\"card-title\">{person.name}</Text>\n <Text variant=\"body\" tone=\"muted\" className=\"ow-team02__role\">\n {person.jobTitle}\n </Text>\n </div>\n </div>\n {person.bio ? (\n <Text variant=\"copy\" tone=\"soft\" className=\"ow-team02__about\">\n {person.bio}\n </Text>\n ) : null}\n {person.location || person.email || person.website ? (\n <div className=\"ow-team02__foot\">\n {person.location ? (\n <Text variant=\"caption\" className=\"ow-team02__place\">\n <MapPinIcon size={14} />\n {person.location}\n </Text>\n ) : (\n <span />\n )}\n <span className=\"ow-team02__links\">\n {person.email ? (\n <a\n href={`mailto:${person.email}`}\n className={buttonClassName({ variant: \"ghost\", size: \"sm\", iconOnly: true })}\n aria-label={labels.email?.(person.name) ?? `Email ${person.name}`}\n >\n <MailIcon size={16} />\n </a>\n ) : null}\n {person.website ? (\n <a\n href={person.website}\n className={buttonClassName({ variant: \"ghost\", size: \"sm\", iconOnly: true })}\n aria-label={labels.website?.(person.name) ?? `${person.name}'s website`}\n >\n <LinkIcon size={16} />\n </a>\n ) : null}\n </span>\n </div>\n ) : null}\n </Card>\n </li>\n ))}\n </ul>\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, Card, cx, Field, Input, Link, SectionHeading, Select, Text, Textarea, type SelectItem } from \"@openwarelabs/ui\";\n\nimport { CircleCheckIcon } from \"@blocks/shared/icons\";\nimport type { Contact01Errors, Contact01Labels, Contact01Props, Contact01Values } from \"./Contact01.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nfunction validate(values: Contact01Values, labels: Contact01Labels, minMessageLength: number): Contact01Errors {\n const errors: Contact01Errors = {};\n if (!values.name.trim()) errors.name = labels.nameEmpty ?? \"Enter your name.\";\n if (!values.email.trim()) errors.email = labels.emailEmpty ?? \"Enter your work email.\";\n else if (!emailPattern.test(values.email.trim())) errors.email = labels.emailInvalid ?? \"Enter an email address like name@example.com.\";\n if (!values.message.trim()) errors.message = labels.messageEmpty ?? \"Tell us a little about what you need.\";\n else if (values.message.trim().length < minMessageLength) errors.message = labels.messageShort ?? \"Add a few more words, so it reaches the right person.\";\n return errors;\n}\n\nfunction firstValue(items: SelectItem[] = []): string {\n for (const item of items) {\n if (\"options\" in item) {\n const value = firstValue(item.options);\n if (value) return value;\n } else return item.value;\n }\n return \"\";\n}\n\n/** A short contact form in a card, beside the heading and a list of ways to reach you, with a thank-you in place of the form once it's sent. */\nexport function Contact01({\n eyebrow,\n title,\n description,\n details = [],\n topics,\n defaultTopic,\n sizes,\n minMessageLength = 20,\n onSubmit,\n note,\n successTitle,\n successDescription,\n labels = {},\n className,\n ...props\n}: Contact01Props) {\n const empty: Contact01Values = { name: \"\", email: \"\", company: \"\", size: \"\", topic: defaultTopic ?? firstValue(topics), message: \"\" };\n const [values, setValues] = useState<Contact01Values>(empty);\n const [errors, setErrors] = useState<Contact01Errors>({});\n const [tried, setTried] = useState(false);\n const [sending, setSending] = useState(false);\n const [failure, setFailure] = useState<string>();\n const [sent, setSent] = useState<Contact01Values>();\n const doneRef = useRef<HTMLDivElement>(null);\n const id = useId();\n const titleId = `${id}-title`;\n\n useEffect(() => {\n if (sent) doneRef.current?.focus();\n }, [sent]);\n\n const set = (key: keyof Contact01Values, value: string) => {\n const next = { ...values, [key]: value };\n setValues(next);\n // After the first try, errors clear as each field is fixed.\n if (tried) setErrors(validate(next, labels, minMessageLength));\n };\n\n const submit = async (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n setTried(true);\n setFailure(undefined);\n const found = validate(values, labels, minMessageLength);\n setErrors(found);\n const first = ([\"name\", \"email\", \"message\"] as const).find((key) => found[key]);\n if (first) {\n document.getElementById(`${id}-${first}`)?.focus();\n return;\n }\n setSending(true);\n try {\n await onSubmit(values);\n setSent(values);\n } catch (error) {\n setFailure(error instanceof Error && error.message ? error.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n } finally {\n setSending(false);\n }\n };\n\n const startAgain = () => {\n setValues(empty);\n setErrors({});\n setTried(false);\n setSent(undefined);\n };\n\n const optional = (label: string) => (\n <>\n {label}{\" \"}\n <Text variant=\"body\" as=\"span\" tone=\"muted\">\n {labels.optional ?? \"(optional)\"}\n </Text>\n </>\n );\n\n return (\n <section className={cx(\"ow-contact01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-contact01__inner\">\n <div>\n <SectionHeading eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n {details.length ? (\n <ul className=\"ow-contact01__details\">\n {details.map((detail, index) => (\n <li key={index} className=\"ow-contact01__detail\">\n <span className=\"ow-contact01__detail-icon\" aria-hidden=\"true\">\n {detail.icon}\n </span>\n <div>\n <Text variant=\"caption\" as=\"p\">\n {detail.label}\n </Text>\n <Text variant=\"card-title\" as=\"p\" className=\"ow-contact01__detail-value\">\n {detail.href ? <Link href={detail.href}>{detail.value}</Link> : detail.value}\n </Text>\n {detail.note ? (\n <Text variant=\"copy\" className=\"ow-contact01__detail-note\">\n {detail.note}\n </Text>\n ) : null}\n </div>\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-contact01__card\">\n {sent ? (\n <div ref={doneRef} tabIndex={-1} className=\"ow-contact01__done\" role=\"group\" aria-labelledby={`${id}-done-title`}>\n <span className=\"ow-contact01__done-icon\" aria-hidden=\"true\">\n <CircleCheckIcon size={22} />\n </span>\n <Text variant=\"heading\" as=\"h3\" id={`${id}-done-title`} className=\"ow-contact01__done-title\">\n {successTitle(sent)}\n </Text>\n {successDescription ? (\n <Text variant=\"copy\" className=\"ow-contact01__done-text\">\n {successDescription(sent)}\n </Text>\n ) : null}\n <Button shape=\"pill\" onClick={startAgain}>\n {labels.again ?? \"Send another message\"}\n </Button>\n </div>\n ) : (\n <form className=\"ow-contact01__form\" aria-labelledby={titleId} noValidate onSubmit={submit}>\n <Field label={labels.name ?? \"Name\"} error={errors.name}>\n <Input id={`${id}-name`} autoComplete=\"name\" value={values.name} onChange={(event) => set(\"name\", event.target.value)} />\n </Field>\n <Field label={labels.email ?? \"Work email\"} error={errors.email}>\n <Input\n id={`${id}-email`}\n type=\"email\"\n autoComplete=\"email\"\n placeholder={labels.emailPlaceholder ?? \"you@example.com\"}\n value={values.email}\n onChange={(event) => set(\"email\", event.target.value)}\n />\n </Field>\n <Field label={optional(labels.company ?? \"Company\")}>\n <Input autoComplete=\"organization\" value={values.company} onChange={(event) => set(\"company\", event.target.value)} />\n </Field>\n {sizes ? (\n <Field label={optional(labels.size ?? \"Team size\")}>\n <Select\n value={values.size}\n onChange={(value) => set(\"size\", value)}\n options={sizes}\n placeholder={labels.sizePlaceholder ?? \"Choose a size\"}\n />\n </Field>\n ) : null}\n {topics ? (\n <Field label={labels.topic ?? \"What's it about?\"} className=\"ow-contact01__wide\">\n <Select value={values.topic} onChange={(value) => set(\"topic\", value)} options={topics} />\n </Field>\n ) : null}\n <Field\n label={labels.message ?? \"Message\"}\n hint={errors.message ? undefined : (labels.messageHint ?? \"A few lines about your team and what you need.\")}\n error={errors.message}\n className=\"ow-contact01__wide\"\n >\n <Textarea id={`${id}-message`} rows={5} value={values.message} onChange={(event) => set(\"message\", event.target.value)} />\n </Field>\n <div className=\"ow-contact01__foot\">\n <Text variant=\"caption\" as=\"p\" tone={failure ? \"danger\" : undefined} aria-live=\"polite\">\n {failure ?? note}\n </Text>\n <Button type=\"submit\" variant=\"primary\" shape=\"pill\" loading={sending}>\n {labels.submit ?? \"Send message\"}\n </Button>\n </div>\n </form>\n )}\n </Card>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Card, CopyButton, cx, Link, SectionHeading, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowRightIcon } from \"@blocks/shared/icons\";\nimport type { Contact02Props } from \"./Contact02.types\";\n\n/** Ways to get help before writing in, a card each with a few links and the way in, and a line about the service's state. */\nexport function Contact02({ eyebrow, title, description, options, status, labels = {}, className, ...props }: Contact02Props) {\n const titleId = `${useId()}-title`;\n\n return (\n <section className={cx(\"ow-contact02\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-contact02__inner\">\n <SectionHeading align=\"center\" eyebrow={eyebrow} title={<span id={titleId}>{title}</span>} intro={description} />\n\n <div className=\"ow-contact02__grid\">\n {options.map((option, index) => (\n <Card key={index} padding=\"none\" className=\"ow-contact02__card\">\n <div className=\"ow-contact02__body\">\n {option.icon ? (\n <span className=\"ow-contact02__icon\" aria-hidden=\"true\">\n {option.icon}\n </span>\n ) : null}\n <Text variant=\"heading\" as=\"h3\" className=\"ow-contact02__title\">\n {option.title}\n </Text>\n {option.description ? (\n <Text variant=\"copy\" className=\"ow-contact02__text\">\n {option.description}\n </Text>\n ) : null}\n {option.email ? (\n <div className=\"ow-contact02__address\">\n <Text variant=\"body\" as=\"span\">\n {option.email}\n </Text>\n <CopyButton value={option.email} label={labels.copyAddress ?? \"Copy address\"} iconOnly />\n </div>\n ) : null}\n {option.list?.length ? (\n <ul className=\"ow-contact02__list\" aria-label={option.listLabel}>\n {option.list.map((item, row) => (\n <Text key={row} variant=\"body\" as=\"li\">\n {item.href ? (\n <Link href={item.href} variant=\"standalone\">\n {item.label}\n </Link>\n ) : (\n <span>{item.label}</span>\n )}\n {item.meta ? (\n <Text variant=\"caption\" className=\"ow-contact02__meta\">\n {item.meta}\n </Text>\n ) : null}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n <div className=\"ow-contact02__foot\">\n <Link href={option.link.href} variant=\"standalone\" className=\"ow-contact02__foot-link\">\n {option.link.label}\n <ArrowRightIcon size={14} />\n </Link>\n {option.footNote ? (\n <Text variant=\"caption\" className=\"ow-contact02__members\">\n {option.footNote}\n </Text>\n ) : null}\n </div>\n </Card>\n ))}\n </div>\n\n {status ? (\n <Text variant=\"body\" tone=\"muted\" align=\"center\" className=\"ow-contact02__status\">\n <Text variant=\"label\" as=\"span\" tone=\"default\" className=\"ow-contact02__state\">\n {status.label}\n </Text>\n {status.description ? <span>{status.description}</span> : null}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState, type FormEvent } from \"react\";\n\nimport { Button, Card, cx, Field, Input, Link, Separator, Text } from \"@openwarelabs/ui\";\n\nimport type { SignIn01Errors, SignIn01Props } from \"./SignIn01.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** One card in the middle of the window: the mark and heading above it, other accounts and the email form on it. */\nexport function SignIn01({\n title,\n description,\n logo,\n providers = [],\n onProviderSelect,\n onSubmit,\n forgotPasswordHref,\n footer,\n labels = {},\n className,\n ...props\n}: SignIn01Props) {\n const id = useId();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [errors, setErrors] = useState<SignIn01Errors>({});\n // The provider's id, or \"\" for the form, while it's working.\n const [busy, setBusy] = useState<string | null>(null);\n\n const fieldId = (name: string) => `${id}-${name}`;\n\n async function continueWith(provider: string) {\n setBusy(provider);\n try {\n await onProviderSelect?.(provider);\n } finally {\n setBusy(null);\n }\n }\n\n async function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim();\n const found: SignIn01Errors = {};\n if (!address) found.email = labels.emailEmpty ?? \"Enter the email address you signed up with.\";\n else if (!emailPattern.test(address)) found.email = labels.emailInvalid ?? \"That doesn't look like an email address.\";\n if (!password) found.password = labels.passwordEmpty ?? \"Enter your password.\";\n setErrors(found);\n if (found.email || found.password) {\n document.getElementById(fieldId(found.email ? \"email\" : \"password\"))?.focus();\n return;\n }\n setBusy(\"\");\n try {\n await onSubmit?.({ email: address, password });\n } catch (failure) {\n if (failure instanceof Error && failure.message) {\n setErrors({ password: failure.message });\n document.getElementById(fieldId(\"password\"))?.focus();\n }\n } finally {\n setBusy(null);\n }\n }\n\n return (\n <main className={cx(\"ow-sign-in01\", className)} {...props}>\n <div className=\"ow-sign-in01__inner\">\n {logo}\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in01__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-sign-in01__lead\">\n {description}\n </Text>\n ) : null}\n\n <Card padding=\"lg\" className=\"ow-sign-in01__card\">\n {providers.length ? (\n <>\n <div className=\"ow-sign-in01__providers\">\n {providers.map((provider) => (\n <Button\n key={provider.id}\n fullWidth\n startIcon={provider.icon}\n loading={busy === provider.id}\n disabled={busy !== null && busy !== provider.id}\n onClick={() => void continueWith(provider.id)}\n >\n {provider.label}\n </Button>\n ))}\n </div>\n\n <Separator label={labels.separator ?? \"or\"} spacing=\"3xl\" />\n </>\n ) : null}\n\n <form className=\"ow-sign-in01__form\" noValidate onSubmit={submit}>\n <Field label={labels.email ?? \"Email\"} error={errors.email}>\n <Input\n id={fieldId(\"email\")}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setErrors((current) => ({ ...current, email: undefined }));\n }}\n placeholder={labels.emailPlaceholder ?? \"maya@example.com\"}\n autoComplete=\"email\"\n />\n </Field>\n {/* The link sits on the label's line but outside the label, so clicking the label still focuses the field. */}\n <div className=\"ow-sign-in01__password\">\n <Field label={labels.password ?? \"Password\"} error={errors.password}>\n <Input\n id={fieldId(\"password\")}\n type=\"password\"\n value={password}\n onChange={(event) => {\n setPassword(event.target.value);\n setErrors((current) => ({ ...current, password: undefined }));\n }}\n autoComplete=\"current-password\"\n />\n </Field>\n {forgotPasswordHref !== undefined ? (\n <Link href={forgotPasswordHref} variant=\"muted\" className=\"ow-sign-in01__forgot\">\n {labels.forgotPassword ?? \"Forgot password?\"}\n </Link>\n ) : null}\n </div>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={busy === \"\"} disabled={busy !== null && busy !== \"\"}>\n {labels.submit ?? \"Sign in\"}\n </Button>\n </form>\n </Card>\n\n {footer ? (\n <Text variant=\"copy\" className=\"ow-sign-in01__switch\">\n {footer}\n </Text>\n ) : null}\n </div>\n </main>\n );\n}\n", "import { useId, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Field, Input, Separator, Text } from \"@openwarelabs/ui\";\n\nimport type { SignIn02Errors, SignIn02Props } from \"./SignIn02.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** Signing up: the form on one side of the window, a midnight plate with the product and a quote on the other. */\nexport function SignIn02({\n brand,\n title,\n description,\n providers = [],\n onProviderSelect,\n onSubmit,\n passwordMinLength = 12,\n terms,\n footer,\n eyebrow,\n headline,\n visual,\n quote,\n labels = {},\n className,\n ...props\n}: SignIn02Props) {\n const id = useId();\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [errors, setErrors] = useState<SignIn02Errors>({});\n // The provider's id, or \"\" for the form, while it's working.\n const [busy, setBusy] = useState<string | null>(null);\n\n const fieldId = (name: string) => `${id}-${name}`;\n\n async function continueWith(provider: string) {\n setBusy(provider);\n try {\n await onProviderSelect?.(provider);\n } finally {\n setBusy(null);\n }\n }\n\n async function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim();\n const found: SignIn02Errors = {};\n if (!address) found.email = labels.emailEmpty ?? \"Enter your work email.\";\n else if (!emailPattern.test(address)) found.email = labels.emailInvalid ?? \"That doesn't look like an email address.\";\n if (password.length < passwordMinLength) {\n const missing = passwordMinLength - password.length;\n found.password = password ? (labels.passwordShort?.(missing) ?? `Add ${missing} more characters.`) : (labels.passwordEmpty ?? \"Choose a password.\");\n }\n setErrors(found);\n if (found.email || found.password) {\n document.getElementById(fieldId(found.email ? \"email\" : \"password\"))?.focus();\n return;\n }\n setBusy(\"\");\n try {\n await onSubmit?.({ email: address, password });\n } catch (failure) {\n if (failure instanceof Error && failure.message) {\n setErrors({ email: failure.message });\n document.getElementById(fieldId(\"email\"))?.focus();\n }\n } finally {\n setBusy(null);\n }\n }\n\n return (\n <main className={cx(\"ow-sign-in02\", className)} {...props}>\n <div className=\"ow-sign-in02__form-side\">\n <Text variant=\"card-title\" as=\"span\" className=\"ow-sign-in02__brand\">\n {brand.logo}\n {brand.name}\n </Text>\n\n <div className=\"ow-sign-in02__form-wrap\">\n <Text variant=\"heading\" as=\"h1\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-sign-in02__lead\">\n {description}\n </Text>\n ) : null}\n\n {providers.length ? (\n <>\n <div className=\"ow-sign-in02__providers\">\n {providers.map((provider) => (\n <Button\n key={provider.id}\n fullWidth\n startIcon={provider.icon}\n loading={busy === provider.id}\n disabled={busy !== null && busy !== provider.id}\n onClick={() => void continueWith(provider.id)}\n >\n {provider.label}\n </Button>\n ))}\n </div>\n\n <Separator label={labels.separator ?? \"or\"} spacing=\"3xl\" />\n </>\n ) : null}\n\n <form className=\"ow-sign-in02__form\" noValidate onSubmit={submit}>\n <Field label={labels.email ?? \"Work email\"} error={errors.email}>\n <Input\n id={fieldId(\"email\")}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setErrors((current) => ({ ...current, email: undefined }));\n }}\n placeholder={labels.emailPlaceholder ?? \"maya@example.com\"}\n autoComplete=\"email\"\n />\n </Field>\n <Field\n label={labels.password ?? \"Password\"}\n hint={errors.password ? undefined : (labels.passwordHint ?? `At least ${passwordMinLength} characters.`)}\n error={errors.password}\n >\n <Input\n id={fieldId(\"password\")}\n type=\"password\"\n value={password}\n onChange={(event) => {\n setPassword(event.target.value);\n setErrors((current) => ({ ...current, password: undefined }));\n }}\n autoComplete=\"new-password\"\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={busy === \"\"} disabled={busy !== null && busy !== \"\"}>\n {labels.submit ?? \"Create account\"}\n </Button>\n </form>\n\n {terms ? (\n <Text variant=\"caption\" as=\"p\" align=\"center\" className=\"ow-sign-in02__terms\">\n {terms}\n </Text>\n ) : null}\n </div>\n\n {footer ? (\n <Text variant=\"copy\" align=\"center\">\n {footer}\n </Text>\n ) : null}\n </div>\n\n <aside className=\"ow-sign-in02__plate\" aria-label={labels.plate ?? \"About the product\"}>\n <div className=\"ow-sign-in02__plate-inner\">\n {eyebrow ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-sign-in02__eyebrow\">\n <span className=\"ow-sign-in02__brass\" aria-hidden=\"true\" />\n {eyebrow}\n </Text>\n ) : null}\n {headline ? (\n <Text variant=\"heading\" as=\"p\" className=\"ow-sign-in02__headline\">\n {headline}\n </Text>\n ) : null}\n {visual}\n {quote ? (\n <figure className=\"ow-sign-in02__quote\">\n <Text variant=\"body\" as=\"blockquote\" className=\"ow-sign-in02__quote-text\">\n {quote.text}\n </Text>\n <Text variant=\"caption\" as=\"figcaption\" className=\"ow-sign-in02__quote-by\">\n {quote.author}\n {quote.badge ? (\n <>\n {\" \"}\n <span className=\"ow-sign-in02__sample\">{quote.badge}</span>\n </>\n ) : null}\n </Text>\n </figure>\n ) : null}\n </div>\n </aside>\n </main>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Field, Input, Link, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon, MailCheckIcon, MailIcon } from \"@blocks/shared/icons\";\nimport type { SignIn03Props } from \"./SignIn03.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** Signing in with a link by email: one field, then a page saying where the link went, with a way to send it again. */\nexport function SignIn03({\n brand,\n link,\n title,\n description,\n onSubmit,\n onResend,\n cooldown = 30,\n sentDescription,\n sentNote,\n labels = {},\n className,\n ...props\n}: SignIn03Props) {\n const emailId = useId();\n const titleId = useId();\n const [email, setEmail] = useState(\"\");\n const [error, setError] = useState(\"\");\n const [sending, setSending] = useState(false);\n const [sentTo, setSentTo] = useState<string | null>(null);\n const [wait, setWait] = useState(0);\n const shown = useRef<string | null>(null);\n\n // Count the resend wait down a second at a time.\n useEffect(() => {\n if (wait <= 0) return undefined;\n const timer = window.setTimeout(() => setWait((current) => current - 1), 1000);\n return () => window.clearTimeout(timer);\n }, [wait]);\n\n // When the page changes, move focus to its title so it's read out; going back puts it in the email field.\n useEffect(() => {\n if (shown.current === sentTo) return;\n shown.current = sentTo;\n if (sentTo) document.getElementById(titleId)?.focus();\n else document.getElementById(emailId)?.focus();\n }, [sentTo, emailId, titleId]);\n\n async function send(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim();\n const found = !address\n ? (labels.emailEmpty ?? \"Enter your email address.\")\n : !emailPattern.test(address)\n ? (labels.emailInvalid ?? \"That doesn't look like an email address.\")\n : \"\";\n setError(found);\n if (found) {\n document.getElementById(emailId)?.focus();\n return;\n }\n setSending(true);\n try {\n await onSubmit?.(address);\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n document.getElementById(emailId)?.focus();\n return;\n } finally {\n setSending(false);\n }\n setSentTo(address);\n setWait(cooldown);\n }\n\n function resend() {\n if (!sentTo) return;\n setWait(cooldown);\n void onResend?.(sentTo);\n }\n\n const address = sentTo ? (\n <Text variant=\"label\" as=\"strong\" tone=\"default\" className=\"ow-sign-in03__email\">\n {sentTo}\n </Text>\n ) : null;\n\n return (\n <main className={cx(\"ow-sign-in03\", className)} {...props}>\n <div className=\"ow-sign-in03__panel\">\n <header className=\"ow-sign-in03__bar\">\n <Text variant=\"card-title\" as=\"span\" className=\"ow-sign-in03__brand\">\n {brand.logo}\n {brand.name}\n </Text>\n {link ? (\n <Link href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n ) : null}\n </header>\n\n <div className=\"ow-sign-in03__body\">\n {sentTo ? (\n <div className=\"ow-sign-in03__content\" key=\"sent\">\n <span className=\"ow-sign-in03__icon ow-sign-in03__icon--sent\" aria-hidden=\"true\">\n <MailCheckIcon size={22} />\n </span>\n <Text variant=\"heading\" as=\"h1\" id={titleId} tabIndex={-1} className=\"ow-sign-in03__title\">\n {labels.sentTitle ?? \"Check your email\"}\n </Text>\n <Text variant=\"copy\" className=\"ow-sign-in03__lead\">\n {sentDescription ? (\n sentDescription(address)\n ) : (\n <>\n We sent a sign-in link to\n {address}\n It works once, for the next 15 minutes, on any device.\n </>\n )}\n </Text>\n <div className=\"ow-sign-in03__actions\">\n <Button fullWidth disabled={wait > 0} onClick={resend}>\n {wait > 0 ? (labels.resendIn?.(wait) ?? `Send again in ${wait} s`) : (labels.resend ?? \"Send the link again\")}\n </Button>\n <Button fullWidth variant=\"ghost\" startIcon={<ArrowLeftIcon size={16} />} onClick={() => setSentTo(null)}>\n {labels.back ?? \"Use a different email\"}\n </Button>\n </div>\n {sentNote ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-sign-in03__note\">\n {sentNote}\n </Text>\n ) : null}\n </div>\n ) : (\n <form className=\"ow-sign-in03__content\" key=\"ask\" noValidate onSubmit={send}>\n <span className=\"ow-sign-in03__icon\" aria-hidden=\"true\">\n <MailIcon size={22} />\n </span>\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in03__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-sign-in03__lead\">\n {description}\n </Text>\n ) : null}\n <div className=\"ow-sign-in03__fields\">\n <Field label={labels.email ?? \"Email\"} error={error}>\n <Input\n id={emailId}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setError(\"\");\n }}\n placeholder={labels.emailPlaceholder ?? \"maya@example.com\"}\n autoComplete=\"email\"\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={sending}>\n {labels.submit ?? \"Email me a link\"}\n </Button>\n </div>\n </form>\n )}\n </div>\n </div>\n </main>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, Card, Checkbox, cx, Field, Input, InputOTP, Spinner, Text } from \"@openwarelabs/ui\";\n\nimport { CircleCheckIcon, KeyRoundIcon, ShieldCheckIcon } from \"@blocks/shared/icons\";\nimport type { SignIn04Mode, SignIn04Props, SignIn04Status } from \"./SignIn04.types\";\n\n/** Six boxes for the code from an authenticator app, checked as the last digit goes in, with a backup code as the way round. */\nexport function SignIn04({ title, description, onVerify, footer, labels = {}, className, ...props }: SignIn04Props) {\n const backupId = useId();\n const [mode, setMode] = useState<SignIn04Mode>(\"app\");\n const [code, setCode] = useState(\"\");\n const [backup, setBackup] = useState(\"\");\n const [backupError, setBackupError] = useState(\"\");\n const [trust, setTrust] = useState(false);\n const [status, setStatus] = useState<SignIn04Status>(\"idle\");\n const otpRef = useRef<HTMLDivElement>(null);\n const shownMode = useRef(mode);\n\n // Start in the first box. preventScroll keeps a page that embeds this (in a frame, say) from jumping to it.\n useEffect(() => {\n otpRef.current?.querySelector(\"input\")?.focus({ preventScroll: true });\n }, []);\n\n // After a wrong code, focus goes back to the last box (once it's enabled again) so the code can be fixed.\n useEffect(() => {\n if (status !== \"wrong\") return;\n const inputs = otpRef.current?.querySelectorAll(\"input\");\n inputs?.[inputs.length - 1]?.focus();\n }, [status]);\n\n // Switching between the app and a backup code puts focus in the field that's now showing.\n useEffect(() => {\n if (shownMode.current === mode) return;\n shownMode.current = mode;\n if (mode === \"backup\") document.getElementById(backupId)?.focus();\n else otpRef.current?.querySelector(\"input\")?.focus();\n }, [mode, backupId]);\n\n async function verify(value: string) {\n if (status === \"checking\") return;\n setStatus(\"checking\");\n let right = true;\n try {\n right = (await onVerify?.({ code: value, method: mode, trust })) !== false;\n } catch {\n right = false;\n }\n // Leave a wrong code in place, so the person can see what they typed.\n setStatus(right ? \"done\" : \"wrong\");\n }\n\n function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n if (mode === \"app\") {\n if (code.length === 6) void verify(code);\n return;\n }\n const cleaned = backup.trim().toLowerCase();\n if (!/^[a-z0-9]{4}-?[a-z0-9]{4}$/.test(cleaned)) {\n setBackupError(labels.backupInvalid ?? \"Backup codes have 8 letters and numbers, like 4f7k-29xq.\");\n document.getElementById(backupId)?.focus();\n return;\n }\n void verify(cleaned);\n }\n\n return (\n <main className={cx(\"ow-sign-in04\", className)} {...props}>\n <div className=\"ow-sign-in04__inner\">\n <Card padding=\"lg\" className=\"ow-sign-in04__card\">\n {status === \"done\" ? (\n <div className=\"ow-sign-in04__done\" role=\"status\">\n <span className=\"ow-sign-in04__icon ow-sign-in04__icon--done\" aria-hidden=\"true\">\n <CircleCheckIcon size={22} />\n </span>\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in04__title\">\n {labels.doneTitle ?? \"You're in\"}\n </Text>\n <Text variant=\"copy\" className=\"ow-sign-in04__lead\">\n {labels.doneDescription ?? \"Taking you to your workspace\u2026\"}\n </Text>\n <Spinner size=\"sm\" label=\"\" />\n </div>\n ) : (\n <form noValidate onSubmit={submit} className=\"ow-sign-in04__form\">\n <span className=\"ow-sign-in04__icon\" aria-hidden=\"true\">\n {mode === \"app\" ? <ShieldCheckIcon size={22} /> : <KeyRoundIcon size={22} />}\n </span>\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in04__title\">\n {mode === \"app\" ? title : (labels.backupTitle ?? \"Use a backup code\")}\n </Text>\n {mode === \"app\" && !description ? null : (\n <Text variant=\"copy\" className=\"ow-sign-in04__lead\">\n {mode === \"app\"\n ? description\n : (labels.backupDescription ?? \"Enter one of the codes you saved when you turned on two-factor. Each one works once.\")}\n </Text>\n )}\n\n {mode === \"app\" ? (\n <div className=\"ow-sign-in04__code\" ref={otpRef}>\n <InputOTP\n value={code}\n onChange={(value) => {\n setCode(value);\n if (status === \"wrong\") setStatus(\"idle\");\n }}\n onComplete={(value) => void verify(value)}\n groupSize={3}\n isInvalid={status === \"wrong\"}\n disabled={status === \"checking\"}\n aria-label={labels.code ?? \"Six-digit code\"}\n />\n <Text\n variant=\"body\"\n tone={status === \"wrong\" ? \"danger\" : \"muted\"}\n className=\"ow-sign-in04__message\"\n role={status === \"wrong\" ? \"alert\" : undefined}\n >\n {status === \"checking\" ? (\n <>\n <Spinner size=\"sm\" label=\"\" /> {labels.checking ?? \"Checking the code\u2026\"}\n </>\n ) : status === \"wrong\" ? (\n (labels.wrong ?? \"That code didn't work. Codes change every 30 seconds, so try the newest one.\")\n ) : (\n (labels.codeHint ?? \"It's checked as soon as you type the last digit.\")\n )}\n </Text>\n </div>\n ) : (\n <div className=\"ow-sign-in04__backup\">\n <Field label={labels.backupCode ?? \"Backup code\"} error={backupError}>\n <Input\n id={backupId}\n value={backup}\n onChange={(event) => {\n setBackup(event.target.value);\n setBackupError(\"\");\n }}\n placeholder={labels.backupPlaceholder ?? \"xxxx-xxxx\"}\n autoComplete=\"one-time-code\"\n spellCheck={false}\n className=\"ow-sign-in04__backup-input\"\n />\n </Field>\n </div>\n )}\n\n <Checkbox checked={trust} onChange={(event) => setTrust(event.target.checked)} className=\"ow-sign-in04__trust\">\n {labels.trust ?? \"Don't ask again on this device for 30 days\"}\n </Checkbox>\n\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={status === \"checking\"} disabled={mode === \"app\" && code.length < 6}>\n {labels.submit ?? \"Verify\"}\n </Button>\n\n <Button variant=\"ghost\" size=\"sm\" className=\"ow-sign-in04__switch\" onClick={() => setMode(mode === \"app\" ? \"backup\" : \"app\")}>\n {mode === \"app\" ? (labels.useBackup ?? \"Use a backup code instead\") : (labels.useApp ?? \"Use your authenticator app\")}\n </Button>\n </form>\n )}\n </Card>\n\n {status === \"done\" || !footer ? null : (\n <Text variant=\"copy\" align=\"center\" className=\"ow-sign-in04__foot\">\n {footer}\n </Text>\n )}\n </div>\n </main>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, Card, cx, Field, Input, Link, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon, CheckIcon, CircleCheckIcon, EyeIcon, EyeOffIcon, KeyRoundIcon } from \"@blocks/shared/icons\";\nimport type { SignIn05Props, SignIn05Rule, SignIn05Step } from \"./SignIn05.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\nconst defaultRules: SignIn05Rule[] = [\n { label: \"At least 12 characters\", missing: \"at least 12 characters\", test: (value) => value.length >= 12 },\n { label: \"Upper and lower case letters\", missing: \"upper and lower case letters\", test: (value) => /[a-z]/.test(value) && /[A-Z]/.test(value) },\n { label: \"At least one number\", missing: \"a number\", test: (value) => /\\d/.test(value) },\n];\n\nconst counts = [\"\", \"one\", \"two\", \"three\", \"four\", \"five\", \"six\"];\n\n/** [\"a\", \"b\", \"c\"] \u2192 \"a, b and c\" */\nfunction joinWithAnd(items: string[]) {\n return items.length > 1 ? `${items.slice(0, -1).join(\", \")} and ${items[items.length - 1]}` : (items[0] ?? \"\");\n}\n\n/** Resetting a password on one card: ask for the email, then a new password with what it needs, then done. */\nexport function SignIn05({\n brand,\n backLink,\n title,\n description,\n onRequestLink,\n onSavePassword,\n rules = defaultRules,\n doneDescription,\n onContinue,\n labels = {},\n className,\n ...props\n}: SignIn05Props) {\n const id = useId();\n const [step, setStep] = useState<SignIn05Step>(\"email\");\n const [email, setEmail] = useState(\"\");\n const [password, setPassword] = useState(\"\");\n const [shown, setShown] = useState(false);\n const [error, setError] = useState(\"\");\n const [busy, setBusy] = useState(false);\n const shownStep = useRef(step);\n\n const emailId = `${id}-email`;\n const passwordId = `${id}-password`;\n const rulesId = `${id}-rules`;\n const doneTitleId = `${id}-done-title`;\n\n // A new step moves focus: into the password field, or onto the title of the last page. Not on first load.\n useEffect(() => {\n if (shownStep.current === step) return;\n shownStep.current = step;\n if (step === \"password\") document.getElementById(passwordId)?.focus();\n else if (step === \"done\") document.getElementById(doneTitleId)?.focus();\n else document.getElementById(emailId)?.focus();\n }, [step, emailId, passwordId, doneTitleId]);\n\n /** Runs the callback with the button spinning, then moves on, or shows why it couldn't. */\n async function run(work: (() => void | Promise<void>) | undefined, next: SignIn05Step, field: string) {\n setBusy(true);\n try {\n await work?.();\n } catch (failure) {\n setError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n document.getElementById(field)?.focus();\n return;\n } finally {\n setBusy(false);\n }\n setStep(next);\n }\n\n function sendLink(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim();\n const found = !address\n ? (labels.emailEmpty ?? \"Enter the email you use to sign in.\")\n : !emailPattern.test(address)\n ? (labels.emailInvalid ?? \"That doesn't look like an email address.\")\n : \"\";\n setError(found);\n if (found) {\n document.getElementById(emailId)?.focus();\n return;\n }\n void run(onRequestLink && (() => onRequestLink(address)), \"password\", emailId);\n }\n\n function savePassword(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const missing = rules.filter((rule) => !rule.test(password)).map((rule) => rule.missing);\n const found = !password\n ? (labels.passwordEmpty ?? \"Choose a new password.\")\n : missing.length === rules.length && rules.length > 1\n ? (labels.passwordNeedsAll?.(rules.length) ?? `Your password needs all ${counts[rules.length] ?? rules.length} things below.`)\n : missing.length\n ? (labels.passwordNeeds?.(joinWithAnd(missing)) ?? `Your password still needs ${joinWithAnd(missing)}.`)\n : \"\";\n setError(found);\n if (found) {\n document.getElementById(passwordId)?.focus();\n return;\n }\n void run(onSavePassword && (() => onSavePassword({ email: email.trim(), password })), \"done\", passwordId);\n }\n\n const icon = (\n <span className=\"ow-sign-in05__icon\" aria-hidden=\"true\">\n <KeyRoundIcon size={20} />\n </span>\n );\n const address = (\n <Text variant=\"label\" as=\"strong\" tone=\"default\" className=\"ow-sign-in05__email\">\n {email.trim()}\n </Text>\n );\n\n return (\n <main className={cx(\"ow-sign-in05\", className)} {...props}>\n <header className=\"ow-sign-in05__bar\">\n <Text variant=\"card-title\" as=\"span\" className=\"ow-sign-in05__brand\">\n {brand.logo}\n {brand.name}\n </Text>\n {backLink ? (\n <Link href={backLink.href} variant=\"standalone\" className=\"ow-sign-in05__back\">\n <ArrowLeftIcon size={15} />\n {backLink.label}\n </Link>\n ) : null}\n </header>\n\n <div className=\"ow-sign-in05__body\">\n <Card padding=\"lg\" className=\"ow-sign-in05__card\">\n {step === \"email\" ? (\n <form noValidate onSubmit={sendLink} className=\"ow-sign-in05__form\">\n {icon}\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in05__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-sign-in05__lead\">\n {description}\n </Text>\n ) : null}\n <Field label={labels.email ?? \"Email\"} error={error}>\n <Input\n id={emailId}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setError(\"\");\n }}\n placeholder={labels.emailPlaceholder ?? \"maya@example.com\"}\n autoComplete=\"email\"\n />\n </Field>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={busy}>\n {labels.sendLink ?? \"Email me a reset link\"}\n </Button>\n </form>\n ) : null}\n\n {step === \"password\" ? (\n <form noValidate onSubmit={savePassword} className=\"ow-sign-in05__form\">\n {icon}\n <Text variant=\"heading\" as=\"h1\" className=\"ow-sign-in05__title\">\n {labels.chooseTitle ?? \"Choose a new password\"}\n </Text>\n <Text variant=\"copy\" className=\"ow-sign-in05__lead\">\n {labels.chooseDescription ? labels.chooseDescription(address) : <>For {address}. You'll be signed in as soon as it's saved.</>}\n </Text>\n {/* A hidden username lets password managers save the new password against the right account. */}\n <Input type=\"email\" name=\"username\" value={email.trim()} autoComplete=\"username\" readOnly hidden />\n <Field label={labels.password ?? \"New password\"} error={error}>\n <Input\n id={passwordId}\n type={shown ? \"text\" : \"password\"}\n value={password}\n onChange={(event) => {\n setPassword(event.target.value);\n setError(\"\");\n }}\n autoComplete=\"new-password\"\n aria-describedby={rulesId}\n endContent={\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n iconOnly\n aria-label={shown ? (labels.hidePassword ?? \"Hide password\") : (labels.showPassword ?? \"Show password\")}\n onClick={() => setShown((current) => !current)}\n >\n {shown ? <EyeOffIcon size={16} /> : <EyeIcon size={16} />}\n </Button>\n }\n />\n </Field>\n <ul id={rulesId} className=\"ow-sign-in05__rules\" aria-label={labels.rules ?? \"Your password needs\"}>\n {rules.map((rule) => {\n const met = rule.test(password);\n return (\n <Text\n key={rule.label}\n variant=\"caption\"\n as=\"li\"\n tone={met ? \"default\" : \"muted\"}\n className=\"ow-sign-in05__rule\"\n data-met={met || undefined}\n >\n <span className=\"ow-sign-in05__rule-mark\" aria-hidden=\"true\">\n <CheckIcon size={11} strokeWidth={3} />\n </span>\n {rule.label}\n <VisuallyHidden>{met ? (labels.ruleMet ?? \" (done)\") : (labels.ruleNotMet ?? \" (not yet)\")}</VisuallyHidden>\n </Text>\n );\n })}\n </ul>\n <Button type=\"submit\" variant=\"primary\" fullWidth loading={busy}>\n {labels.save ?? \"Save password and sign in\"}\n </Button>\n </form>\n ) : null}\n\n {step === \"done\" ? (\n <div className=\"ow-sign-in05__form ow-sign-in05__form--done\">\n <span className=\"ow-sign-in05__icon ow-sign-in05__icon--done\" aria-hidden=\"true\">\n <CircleCheckIcon size={20} />\n </span>\n <Text variant=\"heading\" as=\"h1\" id={doneTitleId} tabIndex={-1} className=\"ow-sign-in05__title\">\n {labels.doneTitle ?? \"Password changed\"}\n </Text>\n {doneDescription ? (\n <Text variant=\"copy\" className=\"ow-sign-in05__lead\">\n {doneDescription}\n </Text>\n ) : null}\n <Button\n variant=\"primary\"\n fullWidth\n onClick={() => {\n if (onContinue) {\n onContinue();\n return;\n }\n setPassword(\"\");\n setShown(false);\n setStep(\"email\");\n }}\n >\n {labels.continue ?? \"Continue\"}\n </Button>\n </div>\n ) : null}\n </Card>\n </div>\n </main>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { CloseButton, cx, Dialog, NavItem, NavList, Text } from \"@openwarelabs/ui\";\n\nimport type { Settings01Props } from \"./Settings01.types\";\n\n/** Commandr's settings dialog: the sections down the left on the canvas, the chosen one's rows on an inset panel. */\nexport function Settings01({\n sections,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n shortcut = true,\n section: sectionProp,\n defaultSection,\n onSectionChange,\n labels = {},\n className,\n ...props\n}: Settings01Props) {\n const headingId = useId();\n const rootRef = useRef<HTMLDivElement>(null);\n const [openState, setOpenState] = useState(defaultOpen);\n const [sectionState, setSectionState] = useState(defaultSection ?? sections[0]?.id);\n const open = openProp ?? openState;\n const section = sectionProp ?? sectionState;\n\n const setOpen = (next: boolean) => {\n setOpenState(next);\n onOpenChange?.(next);\n };\n const latestSetOpen = useRef(setOpen);\n latestSetOpen.current = setOpen;\n\n // On opening, start on the current section in whichever list is showing, rather than the first thing that takes focus.\n useEffect(() => {\n if (!open) return undefined;\n const frame = requestAnimationFrame(() => {\n const items = rootRef.current?.querySelectorAll<HTMLElement>(\".ow-settings01__nav [aria-current='page']\") ?? [];\n [...items].find((item) => item.offsetParent !== null)?.focus({ preventScroll: true });\n });\n return () => cancelAnimationFrame(frame);\n }, [open]);\n\n // \u2318, or Ctrl+, opens settings, as in most desktop apps.\n useEffect(() => {\n if (!shortcut) return undefined;\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \",\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n latestSetOpen.current(true);\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [shortcut]);\n\n const current = sections.find((entry) => entry.id === section) ?? sections[0];\n const choose = (id: string) => {\n setSectionState(id);\n onSectionChange?.(id);\n };\n\n const navItems = sections.map(({ id, label, icon }) => (\n <NavItem key={id} icon={icon} active={current?.id === id} onClick={() => choose(id)}>\n {label}\n </NavItem>\n ));\n\n return (\n // Takes no room of its own: the dialog sits over the page it's placed in.\n <div ref={rootRef} className={cx(\"ow-settings01\", className)} {...props}>\n <Dialog open={open} onClose={() => setOpen(false)} title={labels.title ?? \"Settings\"} width={880} className=\"ow-settings01__dialog\">\n {/* Down the left on wider screens; a sideways strip on phones. */}\n <NavList label={labels.sections ?? \"Settings sections\"} className=\"ow-settings01__nav ow-settings01__nav--side\">\n {navItems}\n </NavList>\n <NavList label={labels.sections ?? \"Settings sections\"} orientation=\"horizontal\" className=\"ow-settings01__nav ow-settings01__nav--top\">\n {navItems}\n </NavList>\n <Text variant=\"caption\" as=\"p\" className=\"ow-settings01__saved\">\n {labels.saved ?? \"Changes save as you go.\"}\n </Text>\n\n <CloseButton label={labels.close ?? \"Close settings\"} className=\"ow-settings01__close\" onClick={() => setOpen(false)} />\n <div className=\"ow-settings01__panel\">\n {current ? (\n <section aria-labelledby={headingId} className=\"ow-settings01__section\">\n <Text variant=\"dialog-title\" as=\"h3\" id={headingId} className=\"ow-settings01__section-title\">\n {current.label}\n </Text>\n {current.description ? (\n <Text variant=\"copy\" className=\"ow-settings01__section-text\">\n {current.description}\n </Text>\n ) : null}\n <div className=\"ow-settings01__rows\">{current.content}</div>\n </section>\n ) : null}\n </div>\n </Dialog>\n </div>\n );\n}\n", "import { useEffect, useId, useState } from \"react\";\n\nimport { Card, cx, NavItem, NavList, Text } from \"@openwarelabs/ui\";\n\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Settings02Props } from \"./Settings02.types\";\n\n/** The settings dialog's sections as a page: the list of sections on the left, the chosen one's cards of rows beside it. */\nexport function Settings02({\n title,\n description,\n sections,\n section: sectionProp,\n defaultSection,\n onSectionChange,\n savedAt,\n labels = {},\n className,\n ...props\n}: Settings02Props) {\n const sectionId = useId();\n const [sectionState, setSectionState] = useState(defaultSection ?? sections[0]?.id);\n const [saved, setSaved] = useState(false);\n const [shownSave, setShownSave] = useState(savedAt);\n\n // Each change saves straight away; \"Saved\" shows beside the heading for a moment to say so.\n if (savedAt !== shownSave) {\n setShownSave(savedAt);\n if (savedAt !== undefined) setSaved(true);\n }\n useEffect(() => {\n if (!saved) return undefined;\n const timer = window.setTimeout(() => setSaved(false), 2000);\n return () => window.clearTimeout(timer);\n }, [saved, savedAt]);\n\n const current = sections.find((entry) => entry.id === (sectionProp ?? sectionState)) ?? sections[0];\n const choose = (id: string) => {\n setSectionState(id);\n onSectionChange?.(id);\n };\n const navItems = sections.map(({ id, label, icon }) => (\n <NavItem key={id} icon={icon} active={current?.id === id} onClick={() => choose(id)}>\n {label}\n </NavItem>\n ));\n\n return (\n <div className={cx(\"ow-settings02\", className)} {...props}>\n <div className=\"ow-settings02__inner\">\n <header className=\"ow-settings02__header\">\n <Text variant=\"heading\" as=\"h1\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-settings02__lead\">\n {description}\n </Text>\n ) : null}\n </header>\n\n <div className=\"ow-settings02__layout\">\n {/* Down the left on wider screens; a sideways strip on phones. */}\n <NavList label={labels.sections ?? \"Settings sections\"} className=\"ow-settings02__nav ow-settings02__nav--side\">\n {navItems}\n </NavList>\n <NavList label={labels.sections ?? \"Settings sections\"} orientation=\"horizontal\" className=\"ow-settings02__nav ow-settings02__nav--top\">\n {navItems}\n </NavList>\n\n {current ? (\n <section className=\"ow-settings02__section\" aria-labelledby={sectionId}>\n <div className=\"ow-settings02__section-header\">\n <div>\n <Text variant=\"dialog-title\" as=\"h2\" id={sectionId}>\n {current.label}\n </Text>\n {current.description ? (\n <Text variant=\"copy\" className=\"ow-settings02__section-text\">\n {current.description}\n </Text>\n ) : null}\n </div>\n <Text variant=\"caption\" tone=\"success\" className=\"ow-settings02__saved\" data-visible={saved || undefined} role=\"status\">\n {saved ? (\n <>\n <CheckIcon size={14} />\n {labels.saved ?? \"Saved\"}\n </>\n ) : null}\n </Text>\n </div>\n {current.groups.map((group, index) => (\n <div key={index} className=\"ow-settings02__group\">\n {group.title ? (\n <Text variant=\"label\" as=\"h3\" tone=\"muted\">\n {group.title}\n </Text>\n ) : null}\n <Card padding=\"none\" className=\"ow-settings02__card\">\n {group.content}\n </Card>\n </div>\n ))}\n </section>\n ) : null}\n </div>\n </div>\n </div>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport {\n Button,\n Code,\n ConfirmDialog,\n CopyButton,\n cx,\n Dialog,\n EmptyState,\n Field,\n Input,\n Select,\n Snippet,\n Table,\n Text,\n VisuallyHidden,\n type TableColumn,\n} from \"@openwarelabs/ui\";\n\nimport { KeyRoundIcon, PlusIcon } from \"@blocks/shared/icons\";\nimport type { Settings03CreatedKey, Settings03Key, Settings03NewKey, Settings03Props } from \"./Settings03.types\";\n\n/** Random letters and digits, for a sample key when there's no server to make one. */\nfunction randomText(length: number, alphabet: string) {\n const bytes = crypto.getRandomValues(new Uint8Array(length));\n return Array.from(bytes, (byte) => alphabet[byte % alphabet.length]).join(\"\");\n}\n\n/** API keys in a table, each with its public part to copy, when it was last used and a way to revoke it; and a dialog that makes one and shows it once. */\nexport function Settings03({\n title,\n description,\n keys: initialKeys,\n accessOptions,\n defaultAccess,\n expiryOptions,\n defaultExpiry,\n onCreateKey,\n onRevokeKey,\n note,\n labels = {},\n className,\n ...props\n}: Settings03Props) {\n const titleId = useId();\n const nameId = useId();\n const firstAccess = defaultAccess ?? accessOptions?.[0]?.value ?? \"\";\n const firstExpiry = defaultExpiry ?? expiryOptions?.[0]?.value ?? \"\";\n const [keys, setKeys] = useState(initialKeys);\n const [creating, setCreating] = useState(false);\n const [name, setName] = useState(\"\");\n const [access, setAccess] = useState(firstAccess);\n const [expiry, setExpiry] = useState(firstExpiry);\n const [nameError, setNameError] = useState(\"\");\n const [working, setWorking] = useState(false);\n const [created, setCreated] = useState<{ name: string; full: string } | null>(null);\n const [revoking, setRevoking] = useState<Settings03Key | null>(null);\n\n const columnLabels = labels.columns ?? {};\n const never = labels.never ?? \"Never\";\n\n function openCreate() {\n setName(\"\");\n setAccess(firstAccess);\n setExpiry(firstExpiry);\n setNameError(\"\");\n setCreated(null);\n setCreating(true);\n }\n\n /** A key made here, when there's no server to make one. */\n function sampleKey(values: Settings03NewKey): Settings03CreatedKey {\n const prefix = `key_${randomText(8, \"0123456789abcdef\")}`;\n const secret = randomText(32, \"ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz23456789\");\n const option = accessOptions?.find((entry) => entry.value === values.access);\n return {\n key: { id: prefix, name: values.name, prefix, access: option?.label, createdBy: labels.you ?? \"You\", created: labels.today ?? \"Today\" },\n secret: `${prefix}_${secret}`,\n };\n }\n\n async function create() {\n // The same form shows the new key afterwards; there, Enter just closes it.\n if (created) {\n setCreating(false);\n return;\n }\n if (working) return;\n const trimmed = name.trim();\n const error = !trimmed\n ? (labels.nameEmpty ?? \"Name the key after where it's used, like the service or script.\")\n : keys.some((key) => key.name.toLowerCase() === trimmed.toLowerCase())\n ? (labels.nameTaken?.(trimmed) ?? `There's already a key called ${trimmed}.`)\n : \"\";\n setNameError(error);\n if (error) {\n document.getElementById(nameId)?.focus();\n return;\n }\n const values: Settings03NewKey = { name: trimmed, access: accessOptions ? access : undefined, expiry: expiryOptions ? expiry : undefined };\n setWorking(true);\n try {\n const made = onCreateKey ? await onCreateKey(values) : sampleKey(values);\n setKeys((current) => [made.key, ...current]);\n setCreated({ name: made.key.name, full: made.secret });\n } catch (failure) {\n setNameError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n document.getElementById(nameId)?.focus();\n } finally {\n setWorking(false);\n }\n }\n\n const usedText = (lastUsed: string | undefined) =>\n labels.used ? labels.used(lastUsed) : lastUsed === undefined ? \"never used\" : `used ${lastUsed.toLowerCase()}`;\n\n /** The key's public part, its secret masked, and a button that copies the public part. */\n const keyValue = (key: Settings03Key) => (\n <span className=\"ow-settings03__key\">\n <Code className=\"ow-settings03__secret\">\n {key.prefix}\n <span aria-hidden=\"true\">_\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022</span>\n <VisuallyHidden>{labels.secretHidden ?? \", then the secret, hidden\"}</VisuallyHidden>\n </Code>\n <CopyButton iconOnly value={key.prefix} label={labels.copy?.(key.name) ?? `Copy the ID of ${key.name}`} />\n </span>\n );\n\n const columns: Array<TableColumn<Settings03Key>> = [\n {\n key: \"name\",\n header: columnLabels.name ?? \"Name\",\n render: (key) => (\n <span className=\"ow-settings03__name\">\n <Text variant=\"label\">{key.name}</Text>\n <Text variant=\"caption\">\n {key.access ? <>{key.access} \u00B7 </> : null}\n <span className=\"ow-settings03__meta-wide\">{key.createdBy}</span>\n <span className=\"ow-settings03__meta-phone\">{usedText(key.lastUsed)}</span>\n </Text>\n {/* On phones the key column folds in here. */}\n <span className=\"ow-settings03__key-phone\">{keyValue(key)}</span>\n </span>\n ),\n },\n {\n key: \"prefix\",\n header: columnLabels.key ?? \"Key\",\n render: (key) => keyValue(key),\n },\n { key: \"created\", header: columnLabels.created ?? \"Created\", width: 130 },\n {\n key: \"lastUsed\",\n header: columnLabels.lastUsed ?? \"Last used\",\n width: 130,\n render: (key) => (\n <Text as=\"span\" tone={key.lastUsed === undefined ? \"muted\" : undefined}>\n {key.lastUsed ?? never}\n </Text>\n ),\n },\n {\n key: \"actions\",\n header: <VisuallyHidden>{columnLabels.actions ?? \"Actions\"}</VisuallyHidden>,\n align: \"end\",\n width: 96,\n render: (key) => (\n <Button size=\"sm\" variant=\"ghost\" onClick={() => setRevoking(key)} aria-label={labels.revokeKey?.(key.name) ?? `Revoke ${key.name}`}>\n {labels.revoke ?? \"Revoke\"}\n </Button>\n ),\n },\n ];\n\n const accessHint = accessOptions?.find((option) => option.value === access)?.description;\n const expiryHint = expiryOptions?.find((option) => option.value === expiry)?.description;\n\n return (\n <section className={cx(\"ow-settings03\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-settings03__inner\">\n <div className=\"ow-settings03__header\">\n <div>\n <Text variant=\"dialog-title\" as=\"h2\" id={titleId}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-settings03__text\">\n {description}\n </Text>\n ) : null}\n </div>\n <Button variant=\"primary\" startIcon={<PlusIcon size={16} />} onClick={openCreate}>\n {labels.create ?? \"Create key\"}\n </Button>\n </div>\n\n <Table\n className=\"ow-settings03__table\"\n caption={labels.table ?? \"API keys\"}\n hideCaption\n columns={columns}\n rows={keys}\n emptyContent={\n <EmptyState\n icon={<KeyRoundIcon size={20} />}\n title={labels.emptyTitle ?? \"No API keys\"}\n description={labels.emptyDescription ?? \"Create one to use the API from a script or your CI.\"}\n />\n }\n />\n\n {note ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-settings03__note\">\n {note}\n </Text>\n ) : null}\n </div>\n\n <Dialog\n open={creating}\n onClose={() => setCreating(false)}\n width={460}\n dismissible={!working}\n title={created ? (labels.createdTitle ?? \"Copy your new key\") : (labels.createTitle ?? \"Create an API key\")}\n description={\n created\n ? (labels.createdDescription ??\n \"This is the only time you'll see it. Put it somewhere safe, like your CI's secrets, before you close this.\")\n : (labels.createDescription ?? \"You'll see the key once, straight after you create it.\")\n }\n onSubmit={() => void create()}\n actions={\n created ? (\n <Button type=\"submit\" variant=\"primary\">\n {labels.done ?? \"Done\"}\n </Button>\n ) : (\n <>\n <Button type=\"button\" disabled={working} onClick={() => setCreating(false)}>\n {labels.cancel ?? \"Cancel\"}\n </Button>\n <Button type=\"submit\" variant=\"primary\" loading={working}>\n {labels.create ?? \"Create key\"}\n </Button>\n </>\n )\n }\n >\n {created ? (\n <div className=\"ow-settings03__created\">\n <Text variant=\"label\">{created.name}</Text>\n <Snippet value={created.full} prompt={null} />\n </div>\n ) : (\n <div className=\"ow-settings03__form\">\n <Field label={labels.name ?? \"Name\"} hint={labels.nameHint ?? \"Where it's used, so you know which one to revoke.\"} error={nameError}>\n <Input\n id={nameId}\n value={name}\n onChange={(event) => {\n setName(event.target.value);\n setNameError(\"\");\n }}\n placeholder={labels.namePlaceholder ?? \"Nightly backups\"}\n autoComplete=\"off\"\n autoFocus\n />\n </Field>\n {accessOptions ? (\n <Field label={labels.access ?? \"Access\"} hint={accessHint}>\n <Select value={access} onChange={setAccess} options={accessOptions.map(({ value, label }) => ({ value, label }))} />\n </Field>\n ) : null}\n {expiryOptions ? (\n <Field label={labels.expiry ?? \"Expires\"} hint={expiryHint}>\n <Select value={expiry} onChange={setExpiry} options={expiryOptions.map(({ value, label }) => ({ value, label }))} />\n </Field>\n ) : null}\n </div>\n )}\n </Dialog>\n\n <ConfirmDialog\n open={revoking !== null}\n onClose={() => setRevoking(null)}\n destructive\n title={labels.revokeTitle?.(revoking?.name ?? \"\") ?? `Revoke ${revoking?.name ?? \"this key\"}?`}\n description={\n labels.revokeDescription ? (\n labels.revokeDescription(<Code>{revoking?.prefix}</Code>)\n ) : (\n <>\n Anything still using <Code>{revoking?.prefix}</Code> stops working straight away. You can't undo this.\n </>\n )\n }\n confirmLabel={labels.revokeConfirm ?? \"Revoke key\"}\n onConfirm={async () => {\n const key = revoking;\n if (!key) return;\n await onRevokeKey?.(key);\n setKeys((current) => current.filter((entry) => entry.id !== key.id));\n }}\n />\n </section>\n );\n}\n", "import { useId, useState, type FormEvent, type ReactNode } from \"react\";\n\nimport { Avatar, Badge, Button, Card, ConfirmDialog, copyText, cx, Field, Input, Menu, MenuItem, MenuSeparator, Select, Text } from \"@openwarelabs/ui\";\n\nimport { CopyIcon, EllipsisIcon, MailIcon, RotateCwIcon, SendIcon, UserMinusIcon, XIcon } from \"@blocks/shared/icons\";\nimport type { Settings04Invite, Settings04Member, Settings04Props } from \"./Settings04.types\";\n\nconst emailPattern = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\n/** How many are in a list, beside its title. */\nfunction CountText({ children }: { children: ReactNode }) {\n return (\n <Text as=\"span\" tone=\"muted\" className=\"ow-settings04__count\">\n {children}\n </Text>\n );\n}\n\n/** People with their role and a menu to change it or remove them, an invite at the top, and the invites still waiting. */\nexport function Settings04({\n title,\n description,\n members: initialMembers,\n invites: initialInvites = [],\n roles,\n defaultInviteRole,\n currentUserEmail,\n onInvite,\n onRoleChange,\n onRemove,\n onResendInvite,\n onRevokeInvite,\n onCopyEmail,\n labels = {},\n className,\n ...props\n}: Settings04Props) {\n const titleId = useId();\n const emailId = useId();\n const [members, setMembers] = useState(initialMembers);\n const [invites, setInvites] = useState(initialInvites);\n const [email, setEmail] = useState(\"\");\n const [inviteRole, setInviteRole] = useState(defaultInviteRole ?? roles[0]?.value ?? \"\");\n const [emailError, setEmailError] = useState(\"\");\n const [sending, setSending] = useState(false);\n const [removing, setRemoving] = useState<Settings04Member | null>(null);\n\n const roleName = (role: string) => roles.find((option) => option.value === role)?.label ?? role;\n const you = members.find((member) => member.email === currentUserEmail);\n\n async function invite(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n const address = email.trim().toLowerCase();\n const member = members.find((entry) => entry.email.toLowerCase() === address);\n const error = !address\n ? (labels.emailEmpty ?? \"Enter the email address to send the invite to.\")\n : !emailPattern.test(address)\n ? (labels.emailInvalid ?? \"That doesn't look like an email address.\")\n : member\n ? (labels.alreadyMember?.(member.name) ?? `${member.name} is already a member.`)\n : invites.some((entry) => entry.email.toLowerCase() === address)\n ? (labels.alreadyInvited ?? \"They're already invited. Resend it from the list below.\")\n : \"\";\n setEmailError(error);\n if (error) {\n document.getElementById(emailId)?.focus();\n return;\n }\n setSending(true);\n try {\n await onInvite?.({ email: address, role: inviteRole });\n } catch (failure) {\n setEmailError(failure instanceof Error && failure.message ? failure.message : (labels.failed ?? \"That didn't go through. Try again in a moment.\"));\n document.getElementById(emailId)?.focus();\n return;\n } finally {\n setSending(false);\n }\n setInvites((current) => [{ email: address, role: inviteRole, sent: labels.justNow ?? \"Just now\", invitedBy: you?.name }, ...current]);\n setEmail(\"\");\n }\n\n function changeRole(member: Settings04Member, role: string) {\n setMembers((current) => current.map((entry) => (entry.email === member.email ? { ...entry, role } : entry)));\n onRoleChange?.(member, role);\n }\n\n function revokeInvite(entry: Settings04Invite) {\n setInvites((current) => current.filter((item) => item.email !== entry.email));\n // Revoking can be undone, so it isn't confirmed first.\n onRevokeInvite?.(entry, () => setInvites((current) => [entry, ...current.filter((item) => item.email !== entry.email)]));\n }\n\n const invitedText = (entry: Settings04Invite) =>\n labels.invited ? (\n labels.invited(entry)\n ) : (\n <>\n Invited {entry.sent.toLowerCase()}\n {entry.invitedBy ? ` by ${entry.invitedBy}` : null}\n </>\n );\n\n return (\n <section className={cx(\"ow-settings04\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-settings04__inner\">\n <div className=\"ow-settings04__header\">\n <Text variant=\"dialog-title\" as=\"h2\" id={titleId}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-settings04__text\">\n {typeof description === \"function\" ? description({ members: members.length, invites: invites.length }) : description}\n </Text>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-settings04__card\">\n <form className=\"ow-settings04__invite\" noValidate onSubmit={invite}>\n <Field\n label={labels.inviteEmail ?? \"Invite by email\"}\n hint={labels.inviteHint ?? \"The link in the invite works for 7 days.\"}\n error={emailError}\n >\n <Input\n id={emailId}\n type=\"email\"\n value={email}\n onChange={(event) => {\n setEmail(event.target.value);\n setEmailError(\"\");\n }}\n placeholder={labels.invitePlaceholder ?? \"name@example.com\"}\n startContent={<MailIcon size={16} />}\n autoComplete=\"off\"\n />\n </Field>\n <Select\n aria-label={labels.inviteRole ?? \"Role for the invite\"}\n className=\"ow-settings04__invite-role\"\n value={inviteRole}\n onChange={setInviteRole}\n options={roles}\n />\n <Button type=\"submit\" variant=\"primary\" startIcon={<SendIcon size={16} />} loading={sending} className=\"ow-settings04__invite-send\">\n {labels.send ?? \"Send invite\"}\n </Button>\n </form>\n\n <Text variant=\"label\" as=\"h3\" tone=\"muted\" className=\"ow-settings04__list-title\">\n {`${labels.members ?? \"Members\"} `}\n <CountText>{members.length}</CountText>\n </Text>\n <ul className=\"ow-settings04__list\">\n {members.map((member) => (\n <li key={member.email} className=\"ow-settings04__row\">\n <span className=\"ow-settings04__person\">\n <Avatar name={member.name} />\n <span className=\"ow-settings04__person-text\">\n <Text variant=\"label\" className=\"ow-settings04__name\">\n {member.name}\n {member.email === currentUserEmail ? (\n <Badge size=\"sm\" variant=\"neutral\">\n {labels.you ?? \"You\"}\n </Badge>\n ) : null}\n </Text>\n <Text variant=\"caption\" truncate>\n {member.email}\n </Text>\n </span>\n </span>\n <span className=\"ow-settings04__controls\">\n {member.owner ? (\n <Text as=\"span\" tone=\"muted\" className=\"ow-settings04__owner\">\n {labels.owner ?? \"Owner\"}\n </Text>\n ) : (\n <Select\n aria-label={labels.roleFor?.(member.name) ?? `Role for ${member.name}`}\n size=\"sm\"\n className=\"ow-settings04__role\"\n value={member.role}\n onChange={(value) => changeRole(member, value)}\n options={roles}\n />\n )}\n {member.owner ? (\n <span className=\"ow-settings04__menu-spacer\" />\n ) : (\n <Menu\n label={labels.actionsFor?.(member.name) ?? `Actions for ${member.name}`}\n align=\"end\"\n trigger={\n <Button\n size=\"sm\"\n variant=\"ghost\"\n iconOnly\n aria-label={labels.moreFor?.(member.name) ?? `More for ${member.name}`}\n >\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <MenuItem\n icon={<CopyIcon size={15} />}\n onSelect={async () => {\n if (await copyText(member.email)) onCopyEmail?.(member);\n }}\n >\n {labels.copyEmail ?? \"Copy email address\"}\n </MenuItem>\n <MenuSeparator />\n <MenuItem icon={<UserMinusIcon size={15} />} destructive onSelect={() => setRemoving(member)}>\n {labels.remove ?? \"Remove\"}\n </MenuItem>\n </Menu>\n )}\n </span>\n </li>\n ))}\n </ul>\n\n {invites.length ? (\n <>\n <Text variant=\"label\" as=\"h3\" tone=\"muted\" className=\"ow-settings04__list-title\">\n {`${labels.invites ?? \"Pending invites\"} `}\n <CountText>{invites.length}</CountText>\n </Text>\n <ul className=\"ow-settings04__list\">\n {invites.map((entry) => (\n <li key={entry.email} className=\"ow-settings04__row\">\n <span className=\"ow-settings04__person\">\n <span className=\"ow-settings04__invite-icon\" aria-hidden=\"true\">\n <MailIcon size={14} />\n </span>\n <span className=\"ow-settings04__person-text\">\n <Text variant=\"label\" truncate>\n {entry.email}\n </Text>\n <Text variant=\"caption\" truncate>\n {invitedText(entry)}\n </Text>\n </span>\n </span>\n <span className=\"ow-settings04__controls\">\n <Badge size=\"sm\" variant=\"warning\">\n {labels.pending ? labels.pending(roleName(entry.role)) : <>{roleName(entry.role)} \u00B7 pending</>}\n </Badge>\n <Menu\n label={labels.inviteActionsFor?.(entry.email) ?? `Actions for the invite to ${entry.email}`}\n align=\"end\"\n trigger={\n <Button\n size=\"sm\"\n variant=\"ghost\"\n iconOnly\n aria-label={labels.moreFor?.(entry.email) ?? `More for ${entry.email}`}\n >\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <MenuItem icon={<RotateCwIcon size={15} />} onSelect={() => onResendInvite?.(entry)}>\n {labels.resend ?? \"Resend invite\"}\n </MenuItem>\n <MenuSeparator />\n <MenuItem icon={<XIcon size={15} />} destructive onSelect={() => revokeInvite(entry)}>\n {labels.revokeInvite ?? \"Revoke invite\"}\n </MenuItem>\n </Menu>\n </span>\n </li>\n ))}\n </ul>\n </>\n ) : null}\n </Card>\n </div>\n\n <ConfirmDialog\n open={removing !== null}\n onClose={() => setRemoving(null)}\n destructive\n title={labels.removeTitle?.(removing?.name ?? \"\") ?? `Remove ${removing?.name ?? \"them\"}?`}\n description={labels.removeDescription ?? \"They lose access straight away.\"}\n confirmLabel={labels.removeConfirm ?? \"Remove member\"}\n onConfirm={async () => {\n const member = removing;\n if (!member) return;\n await onRemove?.(member);\n setMembers((current) => current.filter((entry) => entry.email !== member.email));\n }}\n />\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, Card, Code, ConfirmDialog, cx, EmptyState, Field, Input, Select, SettingsRow, Text } from \"@openwarelabs/ui\";\n\nimport { ArchiveIcon, ArchiveRestoreIcon, ArrowLeftRightIcon, Trash2Icon } from \"@blocks/shared/icons\";\nimport type { Settings05Props } from \"./Settings05.types\";\n\n/** A project's danger zone on a card edged in red: transfer it, archive it, or delete it after typing its name. */\nexport function Settings05({\n title,\n description,\n project,\n owner: initialOwner,\n currentUserName,\n admins,\n contents = [],\n defaultArchived = false,\n onTransfer,\n onArchiveChange,\n onDelete,\n onBack,\n labels = {},\n className,\n ...props\n}: Settings05Props) {\n const titleId = useId();\n const [owner, setOwner] = useState(initialOwner);\n const [archived, setArchived] = useState(defaultArchived);\n const [deleted, setDeleted] = useState(false);\n const [transferring, setTransferring] = useState(false);\n const [newOwner, setNewOwner] = useState(\"\");\n const [deleting, setDeleting] = useState(false);\n const [typed, setTyped] = useState(\"\");\n\n function toggleArchive() {\n const next = !archived;\n setArchived(next);\n // Archiving can be undone, so it happens straight away rather than asking first.\n onArchiveChange?.(next, () => setArchived(!next));\n }\n\n const deleteTitle = labels.deleteTitle ?? \"Delete project\";\n\n return (\n <section className={cx(\"ow-settings05\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-settings05__inner\">\n <div className=\"ow-settings05__header\">\n <Text variant=\"dialog-title\" as=\"h2\" id={titleId}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-settings05__text\">\n {description}\n </Text>\n ) : null}\n </div>\n\n {deleted ? (\n <Card className=\"ow-settings05__gone\">\n <EmptyState\n icon={<Trash2Icon size={20} />}\n title={labels.deletedTitle?.(project) ?? `${project} was deleted`}\n description={labels.deletedDescription ?? \"Its data and settings are gone.\"}\n actions={\n <Button\n onClick={() => {\n if (onBack) {\n onBack();\n return;\n }\n setDeleted(false);\n setArchived(false);\n }}\n >\n {labels.back ?? \"Back to projects\"}\n </Button>\n }\n />\n </Card>\n ) : (\n <Card padding=\"none\" className=\"ow-settings05__card\">\n <SettingsRow\n label={labels.transferTitle ?? \"Transfer ownership\"}\n description={\n owner === currentUserName\n ? (labels.transferYou ?? \"You own it now. Hand it to another admin and stay on as a member.\")\n : (labels.transferOther?.(owner) ?? `${owner} owns it now. They can hand it back at any time.`)\n }\n >\n <Button\n size=\"sm\"\n startIcon={<ArrowLeftRightIcon size={16} />}\n onClick={() => {\n setNewOwner(\"\");\n setTransferring(true);\n }}\n >\n {labels.transfer ?? \"Transfer\"}\n </Button>\n </SettingsRow>\n <SettingsRow\n label={archived ? (labels.restoreTitle ?? \"Restore project\") : (labels.archiveTitle ?? \"Archive project\")}\n description={\n archived\n ? (labels.archivedDescription ?? \"It's archived: it's paused and hidden from the sidebar.\")\n : (labels.archiveDescription ?? \"Pauses the project and hides it from the sidebar. You can restore it at any time.\")\n }\n >\n <Button size=\"sm\" startIcon={archived ? <ArchiveRestoreIcon size={16} /> : <ArchiveIcon size={16} />} onClick={toggleArchive}>\n {archived ? (labels.restore ?? \"Restore\") : (labels.archive ?? \"Archive\")}\n </Button>\n </SettingsRow>\n <SettingsRow\n label={deleteTitle}\n description={labels.deleteDescription ?? \"Deletes it for good, with everything in it. This can't be undone.\"}\n >\n <Button\n size=\"sm\"\n variant=\"danger\"\n startIcon={<Trash2Icon size={16} />}\n onClick={() => {\n setTyped(\"\");\n setDeleting(true);\n }}\n >\n {deleteTitle}\n </Button>\n </SettingsRow>\n </Card>\n )}\n </div>\n\n <ConfirmDialog\n open={transferring}\n onClose={() => setTransferring(false)}\n title={labels.transferConfirmTitle?.(project) ?? `Transfer ${project}?`}\n description={labels.transferConfirmDescription ?? \"The new owner can rename, transfer or delete it. You'll stay on as a member.\"}\n confirmLabel={labels.transferConfirm ?? \"Transfer ownership\"}\n confirmDisabled={!newOwner}\n onConfirm={async () => {\n await onTransfer?.(newOwner);\n setOwner(newOwner);\n }}\n >\n <Field label={labels.newOwner ?? \"New owner\"}>\n <Select value={newOwner} onChange={setNewOwner} options={admins} placeholder={labels.newOwnerPlaceholder ?? \"Choose an admin\"} />\n </Field>\n </ConfirmDialog>\n\n <ConfirmDialog\n open={deleting}\n onClose={() => setDeleting(false)}\n destructive\n title={labels.deleteConfirmTitle?.(project) ?? `Delete ${project}?`}\n description={labels.deleteConfirmDescription ?? \"This deletes the project for everyone. Along with it go:\"}\n confirmLabel={labels.deleteConfirm ?? \"Delete project\"}\n confirmDisabled={typed.trim() !== project}\n onConfirm={async () => {\n await onDelete?.();\n setDeleted(true);\n }}\n >\n {contents.length ? (\n <ul className=\"ow-settings05__contents\">\n {contents.map((item, index) => (\n <Text as=\"li\" tone=\"soft\" key={index}>\n <Text as=\"strong\" variant=\"label\" tone=\"default\" className=\"ow-settings05__count\">\n {item.count}\n </Text>{\" \"}\n {item.what}\n </Text>\n ))}\n </ul>\n ) : null}\n <Field\n label={\n labels.typeToConfirm ? (\n labels.typeToConfirm(<Code>{project}</Code>)\n ) : (\n <>\n Type <Code>{project}</Code> to confirm\n </>\n )\n }\n >\n <Input\n value={typed}\n onChange={(event) => setTyped(event.target.value)}\n autoComplete=\"off\"\n spellCheck={false}\n className=\"ow-settings05__confirm\"\n />\n </Field>\n </ConfirmDialog>\n </section>\n );\n}\n", "import { useId, type FormEvent } from \"react\";\n\nimport { Button, cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon } from \"@blocks/shared/icons\";\nimport type { Form01Props } from \"./Form01.types\";\n\n/** One column on the canvas: a back link, the page's heading, then the fields on a card with the action in its footer. */\nexport function Form01({ title, description, backLink, children, submitLabel, onSubmit, submitting = false, note, className, ...props }: Form01Props) {\n const titleId = useId();\n\n const submit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n onSubmit?.(event);\n };\n\n return (\n <div className={cx(\"ow-form01\", className)} {...props}>\n <div className=\"ow-form01__inner\">\n {backLink ? (\n <Link href={backLink.href} variant=\"standalone\" className=\"ow-form01__back\">\n <ArrowLeftIcon size={15} />\n {backLink.label}\n </Link>\n ) : null}\n <header className=\"ow-form01__header\">\n <Text variant=\"heading\" as=\"h1\" id={titleId}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-form01__lead\">\n {description}\n </Text>\n ) : null}\n </header>\n\n <form className=\"ow-form01__card\" noValidate onSubmit={submit} aria-labelledby={titleId}>\n <div className=\"ow-form01__fields\">{children}</div>\n\n <div className=\"ow-form01__footer\">\n {note ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-form01__note\">\n {note}\n </Text>\n ) : (\n <span />\n )}\n <Button type=\"submit\" variant=\"primary\" loading={submitting}>\n {submitLabel}\n </Button>\n </div>\n </form>\n </div>\n </div>\n );\n}\n", "import { useId, type FormEvent } from \"react\";\n\nimport { Button, Card, cx, Text } from \"@openwarelabs/ui\";\n\nimport type { Form02Props } from \"./Form02.types\";\n\n/** Sections down the page, each one's title and purpose on the left and its fields on a card on the right, with Discard and Save at the end. */\nexport function Form02({ title, description, sections, dirty, onSubmit, onDiscard, submitting = false, labels = {}, className, ...props }: Form02Props) {\n const id = useId();\n\n const submit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n onSubmit?.(event);\n };\n\n return (\n <div className={cx(\"ow-form02\", className)} {...props}>\n <form className=\"ow-form02__inner\" noValidate onSubmit={submit} aria-labelledby={`${id}-title`}>\n <header className=\"ow-form02__header\">\n <Text variant=\"heading\" as=\"h1\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-form02__lead\">\n {description}\n </Text>\n ) : null}\n </header>\n\n {sections.map((section, index) => (\n <section key={index} className=\"ow-form02__section\" aria-labelledby={`${id}-section-${index}`}>\n <div className=\"ow-form02__intro\">\n <Text variant=\"card-title\" as=\"h2\" id={`${id}-section-${index}`}>\n {section.title}\n </Text>\n {section.description ? (\n <Text variant=\"copy\" className=\"ow-form02__section-text\">\n {section.description}\n </Text>\n ) : null}\n </div>\n <Card padding=\"none\" className=\"ow-form02__card\">\n <div className=\"ow-form02__fields\">{section.content}</div>\n </Card>\n </section>\n ))}\n\n <div className=\"ow-form02__actions\">\n <Text variant=\"caption\" as=\"p\" className=\"ow-form02__status\" aria-live=\"polite\">\n {dirty ? (labels.unsaved ?? \"You have unsaved changes.\") : (labels.saved ?? \"Everything is saved.\")}\n </Text>\n <Button type=\"button\" disabled={!dirty || submitting} onClick={onDiscard}>\n {labels.discard ?? \"Discard\"}\n </Button>\n <Button type=\"submit\" variant=\"primary\" disabled={!dirty} loading={submitting}>\n {labels.save ?? \"Save changes\"}\n </Button>\n </div>\n </form>\n </div>\n );\n}\n", "import { useEffect, useId, useRef, useState, type FormEvent } from \"react\";\n\nimport { Button, cx, Steps, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowLeftIcon, ArrowRightIcon, CheckIcon } from \"@blocks/shared/icons\";\nimport type { Form03Props } from \"./Form03.types\";\n\n/** A longer form split into steps on one card: the progress at the top, one step's fields in the middle, Back and Continue at the bottom. */\nexport function Form03({ title, description, steps, submitLabel, onSubmit, onStepChange, labels = {}, className, ...props }: Form03Props) {\n const id = useId();\n const [step, setStep] = useState(0);\n const [saving, setSaving] = useState(false);\n const shownStep = useRef(step);\n\n const last = steps.length - 1;\n const current = steps[step];\n\n // After moving between steps, put focus on the new step's heading so it's read out. Not on first load.\n useEffect(() => {\n if (shownStep.current === step) return;\n shownStep.current = step;\n document.getElementById(`${id}-step`)?.focus();\n }, [step, id]);\n\n function goTo(next: number) {\n setStep(next);\n onStepChange?.(next);\n }\n\n async function submit(event: FormEvent<HTMLFormElement>) {\n event.preventDefault();\n if (saving || current?.validate?.() === false) return;\n if (step < last) {\n goTo(step + 1);\n return;\n }\n setSaving(true);\n try {\n await onSubmit?.();\n goTo(0);\n } finally {\n setSaving(false);\n }\n }\n\n return (\n <div className={cx(\"ow-form03\", className)} {...props}>\n <form className=\"ow-form03__card\" noValidate onSubmit={submit} aria-labelledby={`${id}-title`}>\n <header className=\"ow-form03__header\">\n <Text variant=\"heading\" as=\"h1\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-form03__lead\">\n {description}\n </Text>\n ) : null}\n <Steps\n items={steps.map((entry) => ({ title: entry.title, description: entry.description }))}\n current={step}\n orientation=\"horizontal\"\n label={labels.progress ?? \"Progress\"}\n className=\"ow-form03__progress\"\n />\n </header>\n\n <div className=\"ow-form03__body\">\n <Text variant=\"card-title\" as=\"h2\" id={`${id}-step`} tabIndex={-1} className=\"ow-form03__step-title\">\n <Text variant=\"caption\">\n {labels.stepOf ? (\n labels.stepOf(step + 1, steps.length)\n ) : (\n <>\n Step {step + 1} of {steps.length}\n </>\n )}\n </Text>\n {current?.heading}\n </Text>\n\n {current?.content ? <div className=\"ow-form03__fields\">{current.content}</div> : null}\n\n {current?.review ? (\n <dl className=\"ow-form03__review\">\n {current.review.map((row) => (\n <div key={row.label} className=\"ow-form03__review-row\">\n <Text as=\"dt\" variant=\"caption\" className=\"ow-form03__review-label\">\n {row.label}\n </Text>\n <Text as=\"dd\" className=\"ow-form03__review-value\">\n {row.value}\n </Text>\n <dd className=\"ow-form03__review-edit\">\n <Button\n type=\"button\"\n size=\"sm\"\n variant=\"ghost\"\n onClick={() => goTo(row.step)}\n aria-label={labels.editLabel?.(row.label) ?? `Edit ${row.label.toLowerCase()}`}\n >\n {labels.edit ?? \"Edit\"}\n </Button>\n </dd>\n </div>\n ))}\n </dl>\n ) : null}\n </div>\n\n <div className=\"ow-form03__footer\">\n {step > 0 ? (\n <Button type=\"button\" startIcon={<ArrowLeftIcon size={16} />} onClick={() => goTo(step - 1)} disabled={saving}>\n {labels.back ?? \"Back\"}\n </Button>\n ) : (\n <span />\n )}\n {step < last ? (\n <Button type=\"submit\" variant=\"primary\" endIcon={<ArrowRightIcon size={16} />}>\n {labels.continue ?? \"Continue\"}\n </Button>\n ) : (\n <Button type=\"submit\" variant=\"primary\" startIcon={<CheckIcon size={16} />} loading={saving}>\n {submitLabel}\n </Button>\n )}\n </div>\n </form>\n </div>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Button, buttonClassName, cx, ProgressBar, Steps, Text, type StepItem } from \"@openwarelabs/ui\";\n\nimport { RotateCcwIcon } from \"@blocks/shared/icons\";\nimport type { Onboarding01Props } from \"./Onboarding01.types\";\n\n/** A first-run checklist on a panel: what it's for and the progress on the left, the steps on the right with the current one's action beside it. */\nexport function Onboarding01({\n eyebrow,\n title,\n description,\n finishedTitle,\n finishedDescription,\n steps,\n stepsTitle,\n defaultCompleted = 0,\n onStepComplete,\n help,\n finishedAction,\n labels = {},\n className,\n ...props\n}: Onboarding01Props) {\n const titleId = useId();\n const [current, setCurrent] = useState(defaultCompleted);\n const [working, setWorking] = useState(false);\n const nextAction = useRef<HTMLElement | null>(null);\n const moved = useRef(false);\n\n const finished = current >= steps.length;\n\n // The finished step's button goes away; keep the keyboard on the next one.\n useEffect(() => {\n if (moved.current) nextAction.current?.focus();\n moved.current = false;\n }, [current]);\n\n async function complete(index: number) {\n setWorking(true);\n try {\n await steps[index]?.onAction?.();\n } catch {\n return;\n } finally {\n setWorking(false);\n }\n moved.current = true;\n setCurrent(index + 1);\n onStepComplete?.(index);\n }\n\n const keepRef = (node: HTMLElement | null) => {\n nextAction.current = node;\n };\n\n // Steps shows each step's button only while it's the current one, so only that one ever renders.\n const items: StepItem[] = steps.map((step, index) => ({\n title: step.title,\n description: step.description,\n action: (\n <Button ref={keepRef} size=\"sm\" variant=\"primary\" loading={working} onClick={() => void complete(index)}>\n {step.actionLabel}\n </Button>\n ),\n }));\n\n const heading = finished ? (finishedTitle ?? title) : title;\n const lead = finished ? (finishedDescription ?? description) : description;\n\n return (\n <section className={cx(\"ow-onboarding01\", className)} aria-labelledby={titleId} {...props}>\n <div className=\"ow-onboarding01__panel\">\n <div className=\"ow-onboarding01__intro\">\n {eyebrow ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-onboarding01__eyebrow\">\n <span className=\"ow-onboarding01__dot\" aria-hidden=\"true\" />\n {eyebrow}\n </Text>\n ) : null}\n <Text variant=\"heading\" as=\"h2\" id={titleId} className=\"ow-onboarding01__title\">\n {heading}\n </Text>\n {lead ? (\n <Text variant=\"copy\" className=\"ow-onboarding01__lead\">\n {lead}\n </Text>\n ) : null}\n\n <ProgressBar\n className=\"ow-onboarding01__progress\"\n label={labels.progress ?? \"Setup\"}\n value={current}\n max={steps.length}\n valueLabel={`${Math.round((current / steps.length) * 100)}%`}\n />\n\n {finished ? (\n <div className=\"ow-onboarding01__actions\">\n {finishedAction ? (\n finishedAction.href !== undefined ? (\n <a\n ref={keepRef}\n className={buttonClassName({ variant: \"primary\" })}\n href={finishedAction.href}\n target={finishedAction.target}\n rel={finishedAction.target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n aria-label={finishedAction[\"aria-label\"]}\n onClick={finishedAction.onClick}\n >\n {finishedAction.startIcon ? <span className=\"ow-button__icon\">{finishedAction.startIcon}</span> : null}\n {finishedAction.label}\n {finishedAction.endIcon ? <span className=\"ow-button__icon\">{finishedAction.endIcon}</span> : null}\n </a>\n ) : (\n <Button\n ref={keepRef}\n variant=\"primary\"\n startIcon={finishedAction.startIcon}\n endIcon={finishedAction.endIcon}\n aria-label={finishedAction[\"aria-label\"]}\n onClick={finishedAction.onClick}\n >\n {finishedAction.label}\n </Button>\n )\n ) : null}\n <Button variant=\"ghost\" startIcon={<RotateCcwIcon size={16} />} onClick={() => setCurrent(defaultCompleted)}>\n {labels.restart ?? \"Run setup again\"}\n </Button>\n </div>\n ) : help ? (\n <Text variant=\"copy\" className=\"ow-onboarding01__help\">\n {help}\n </Text>\n ) : null}\n </div>\n\n <Steps className=\"ow-onboarding01__steps\" title={stepsTitle} current={current} items={items} />\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Badge, Button, buttonClassName, ChoiceCard, cx, Steps, Text, type ButtonVariant } from \"@openwarelabs/ui\";\n\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { BlockAction } from \"@blocks/shared/shared.types\";\nimport type { Onboarding02Props } from \"./Onboarding02.types\";\n\n/** An action as a button of the default shape: a link styled as one when it has an href. */\nfunction ActionButton({ action, variant, size, className }: { action: BlockAction; variant: ButtonVariant; size?: \"sm\" | \"md\"; className?: string }) {\n if (action.href !== undefined) {\n return (\n <a\n className={cx(buttonClassName({ variant, size }), className)}\n href={action.href}\n target={action.target}\n rel={action.target === \"_blank\" ? \"noopener noreferrer\" : undefined}\n aria-label={action[\"aria-label\"]}\n onClick={action.onClick}\n >\n {action.startIcon ? <span className=\"ow-button__icon\">{action.startIcon}</span> : null}\n {action.label}\n {action.endIcon ? <span className=\"ow-button__icon\">{action.endIcon}</span> : null}\n </a>\n );\n }\n return (\n <Button\n className={className}\n variant={variant}\n size={size}\n startIcon={action.startIcon}\n endIcon={action.endIcon}\n aria-label={action[\"aria-label\"]}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n );\n}\n\n/** A setup screen: the brand and progress along the top, two or three ChoiceCards for how to start, each opening a short page of its own. */\nexport function Onboarding02({\n brand,\n progress,\n skip,\n title,\n description,\n choices,\n note,\n doneTitle,\n doneDescription,\n doneAction,\n onFinish,\n labels = {},\n className,\n ...props\n}: Onboarding02Props) {\n // The choice whose page is open, or \"\" for the choice itself.\n const [view, setView] = useState(\"\");\n const [made, setMade] = useState<string | null>(null);\n const titleId = useId();\n const recommendedId = useId();\n const moved = useRef(false);\n\n // Each view replaces the last, so move focus to its heading for screen readers and keyboards.\n useEffect(() => {\n if (moved.current) document.getElementById(titleId)?.focus();\n }, [view, made, titleId]);\n\n const go = (next: string, name: string | null = null) => {\n moved.current = true;\n setView(next);\n setMade(name);\n };\n const back = () => go(\"\");\n const done = made !== null;\n const choice = choices.find((entry) => entry.id === view);\n\n const heading = done ? (doneTitle ? doneTitle(made) : `${made} is ready`) : choice ? choice.heading : title;\n const lead = done ? doneDescription : choice ? choice.lead : description;\n\n return (\n <div className={cx(\"ow-onboarding02\", className)} {...props}>\n <header className=\"ow-onboarding02__top\">\n <Text variant=\"card-title\" as=\"span\" className=\"ow-onboarding02__brand\">\n {brand.logo}\n {brand.name}\n </Text>\n {progress ? (\n <Steps\n className=\"ow-onboarding02__progress\"\n orientation=\"horizontal\"\n label={labels.progress ?? \"Setup\"}\n current={done ? progress.current + 1 : progress.current}\n items={progress.steps.map((step) => ({ title: step }))}\n />\n ) : null}\n {skip ? <ActionButton action={skip} variant=\"ghost\" size=\"sm\" className=\"ow-onboarding02__skip\" /> : null}\n </header>\n\n <main className=\"ow-onboarding02__body\">\n {done ? (\n <span className=\"ow-onboarding02__done-icon\" aria-hidden=\"true\">\n <CheckIcon size={22} />\n </span>\n ) : null}\n <Text variant=\"heading\" as=\"h2\" id={titleId} tabIndex={-1} className=\"ow-onboarding02__title\">\n {heading}\n </Text>\n {lead ? (\n <Text variant=\"copy\" className=\"ow-onboarding02__lead\">\n {lead}\n </Text>\n ) : null}\n\n <div className=\"ow-onboarding02__content\">\n {done ? (\n <div className=\"ow-onboarding02__done-actions\">\n {doneAction ? <ActionButton action={doneAction} variant=\"primary\" /> : null}\n <Button variant=\"ghost\" onClick={back}>\n {labels.startAgain ?? \"Start again\"}\n </Button>\n </div>\n ) : choice ? (\n choice.render({\n back,\n finish: (name) => {\n go(choice.id, name);\n onFinish?.(choice.id, name);\n },\n })\n ) : (\n <>\n <div className=\"ow-onboarding02__options\">\n {choices.map((entry) => (\n <div key={entry.id} className=\"ow-onboarding02__option\">\n <ChoiceCard\n icon={entry.icon}\n title={entry.title}\n description={entry.description}\n recommended={entry.recommended}\n aria-describedby={entry.recommended ? recommendedId : undefined}\n onClick={() => go(entry.id)}\n />\n {entry.recommended ? (\n <Badge id={recommendedId} className=\"ow-onboarding02__recommended\" size=\"sm\" variant=\"active\">\n {labels.recommended ?? \"Recommended\"}\n </Badge>\n ) : null}\n </div>\n ))}\n </div>\n {note ? (\n <Text variant=\"copy\" className=\"ow-onboarding02__note\">\n {note}\n </Text>\n ) : null}\n </>\n )}\n </div>\n </main>\n </div>\n );\n}\n", "import { useEffect, useRef, useState } from \"react\";\n\nimport { Button, cx, Dialog, Link, Text } from \"@openwarelabs/ui\";\n\nimport type { Onboarding03Props } from \"./Onboarding03.types\";\n\n/** A short dialog for what's new: a picture, a few changes with their icons, and one button to carry on. */\nexport function Onboarding03({\n eyebrow,\n title,\n description,\n visual,\n changes,\n link,\n open: openProp,\n defaultOpen = true,\n onOpenChange,\n labels = {},\n className,\n ...props\n}: Onboarding03Props) {\n const [openState, setOpenState] = useState(defaultOpen);\n const open = openProp ?? openState;\n const continueButton = useRef<HTMLButtonElement>(null);\n\n // The dialog focuses its first link as it opens; start on the button that carries on instead.\n useEffect(() => {\n if (!open) return;\n const frame = requestAnimationFrame(() => continueButton.current?.focus());\n return () => cancelAnimationFrame(frame);\n }, [open]);\n\n const close = () => {\n setOpenState(false);\n onOpenChange?.(false);\n };\n\n return (\n // Takes no room of its own: the dialog sits over the page it's placed in.\n <div className={cx(\"ow-onboarding03\", className)} {...props}>\n <Dialog\n open={open}\n onClose={close}\n width={480}\n className=\"ow-onboarding03__dialog\"\n title={\n <>\n {eyebrow ? (\n <Text variant=\"caption\" className=\"ow-onboarding03__eyebrow\">\n <span className=\"ow-onboarding03__eyebrow-dot\" aria-hidden=\"true\" />\n {eyebrow}\n </Text>\n ) : null}\n {title}\n </>\n }\n description={description}\n actions={\n <>\n {link ? (\n <Link href={link.href} variant=\"muted\">\n {link.label}\n </Link>\n ) : (\n <span />\n )}\n <Button ref={continueButton} variant=\"primary\" onClick={close}>\n {labels.continue ?? \"Continue\"}\n </Button>\n </>\n }\n >\n {visual}\n <ul className=\"ow-onboarding03__changes\">\n {changes.map((change, index) => (\n <li key={index} className=\"ow-onboarding03__change\">\n {change.icon ? (\n <span className=\"ow-onboarding03__change-icon\" aria-hidden=\"true\">\n {change.icon}\n </span>\n ) : null}\n <span className=\"ow-onboarding03__change-text\">\n <Text variant=\"label\">{change.title}</Text>\n {change.description ? (\n <Text variant=\"copy\" as=\"span\">\n {change.description}\n </Text>\n ) : null}\n </span>\n </li>\n ))}\n </ul>\n </Dialog>\n </div>\n );\n}\n", "import { Avatar, Button, CommandPalette, cx, Drawer, Menu, NavItem, NavList, Text } from \"@openwarelabs/ui\";\n\nimport { useAppShell } from \"@blocks/shared/appShell\";\nimport { AppWorkspaceItems } from \"@blocks/shared/AppWorkspaceItems\";\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronsUpDownIcon, MenuIcon, SearchIcon } from \"@blocks/shared/icons\";\nimport type { Shell01Props } from \"./Shell01.types\";\n\n/**\n * An app's frame: navigation down the left on the canvas, the account at the bottom, and the page on a raised panel\n * beside it. On phones the sidebar folds into a drawer behind a bar at the top.\n */\nexport function Shell01({\n workspace,\n logo,\n workspaces,\n onNewWorkspace,\n navigation,\n current,\n defaultCurrent,\n onNavigate,\n account,\n accountMenu,\n commands,\n children,\n labels = {},\n className,\n ...props\n}: Shell01Props) {\n const shell = useAppShell({ current, defaultCurrent: defaultCurrent ?? navigation[0]?.items[0]?.id, onNavigate, commands });\n const searchLabel = labels.search ?? \"Search\";\n const openSearch = () => shell.setSearchOpen(true);\n\n // Everything in the sidebar; the same list goes in the drawer on phones.\n const sidebar = (\n <div className=\"ow-shell01__nav\">\n <Menu\n label={labels.workspaces ?? \"Workspaces\"}\n width={232}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" fullWidth className=\"ow-shell01__workspace\" endIcon={<ChevronsUpDownIcon size={15} />}>\n {logo}\n <Text as=\"span\" variant=\"card-title\" tone=\"default\" className=\"ow-shell01__workspace-name\">\n {workspace}\n </Text>\n </Button>\n }\n >\n <AppWorkspaceItems\n workspaces={workspaces ?? [{ name: workspace, current: true }]}\n onNewWorkspace={onNewWorkspace}\n heading={labels.workspaces ?? \"Workspaces\"}\n newWorkspace={labels.newWorkspace ?? \"New workspace\"}\n spacerClassName=\"ow-shell01__menu-spacer\"\n />\n </Menu>\n\n {shell.hasSearch ? (\n <Button size=\"sm\" fullWidth className=\"ow-shell01__search\" startIcon={<SearchIcon size={15} />} shortcut=\"\u2318K\" onClick={openSearch}>\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell01__search-text\">\n {searchLabel}\n </Text>\n </Button>\n ) : null}\n\n {navigation.map((group, index) => (\n <NavList key={index} label={group.label} heading={group.heading}>\n {group.items.map((item) => (\n <NavItem\n key={item.id}\n icon={item.icon}\n href={item.href}\n active={shell.active === item.id}\n end={item.count}\n onClick={() => shell.navigate(item.id)}\n >\n {item.label}\n </NavItem>\n ))}\n </NavList>\n ))}\n\n <div className=\"ow-shell01__account\">\n <Menu\n label={labels.account ?? \"Account\"}\n above\n width={232}\n trigger={\n <Button variant=\"ghost\" fullWidth className=\"ow-shell01__user\" endIcon={<ChevronsUpDownIcon size={15} />}>\n <Avatar name={account.name} src={account.avatar} size=\"sm\" />\n <span className=\"ow-shell01__user-text\">\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {account.name}\n </Text>\n {account.email ? (\n <Text variant=\"caption\" truncate>\n {account.email}\n </Text>\n ) : null}\n </span>\n </Button>\n }\n >\n <BlockMenuItems items={accountMenu ?? []} onAfterSelect={shell.afterMenuSelect} />\n </Menu>\n </div>\n </div>\n );\n\n return (\n <div className={cx(\"ow-shell01\", className)} {...props}>\n <aside className=\"ow-shell01__aside\" aria-label={labels.navigation ?? \"Main navigation\"}>\n {sidebar}\n </aside>\n\n <div className=\"ow-shell01__body\">\n <header className=\"ow-shell01__topbar\">\n <Button variant=\"ghost\" iconOnly aria-label={labels.openNavigation ?? \"Open navigation\"} onClick={() => shell.setNavOpen(true)}>\n <MenuIcon size={18} />\n </Button>\n <Text as=\"span\" variant=\"card-title\" className=\"ow-shell01__topbar-brand\">\n {logo}\n {workspace}\n </Text>\n {shell.hasSearch ? (\n <Button variant=\"ghost\" iconOnly aria-label={searchLabel} onClick={openSearch}>\n <SearchIcon size={18} />\n </Button>\n ) : (\n <span />\n )}\n </header>\n\n <main className=\"ow-shell01__panel\">{children}</main>\n </div>\n\n <Drawer open={shell.navOpen} onClose={() => shell.setNavOpen(false)} side=\"left\" size={300} title={labels.menu ?? \"Menu\"}>\n {sidebar}\n </Drawer>\n {shell.hasSearch ? (\n <CommandPalette\n open={shell.searchOpen}\n onClose={() => shell.setSearchOpen(false)}\n commands={shell.paletteCommands}\n placeholder={labels.searchPlaceholder ?? \"Search\u2026\"}\n />\n ) : null}\n </div>\n );\n}\n", "import { useEffect, useState } from \"react\";\n\nimport type { Command } from \"@openwarelabs/ui\";\n\nimport type { AppShellStateOptions, BlockMenuItem } from \"@blocks/shared/shared.types\";\n\n/**\n * What every app shell keeps: the current place (its own, unless `current` is given), the phone drawer, and the\n * search, which \u2318K or Ctrl+K opens from anywhere when there are commands. Choosing a place closes the drawer.\n */\nexport function useAppShell({ current, defaultCurrent, onNavigate, commands }: AppShellStateOptions) {\n const [ownCurrent, setOwnCurrent] = useState(defaultCurrent);\n const [navOpen, setNavOpen] = useState(false);\n const [searchOpen, setSearchOpen] = useState(false);\n const active = current ?? ownCurrent;\n const hasSearch = Boolean(commands?.length);\n\n useEffect(() => {\n if (!hasSearch) return;\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"k\" && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n setSearchOpen(true);\n }\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [hasSearch]);\n\n const navigate = (id: string) => {\n setOwnCurrent(id);\n onNavigate?.(id);\n setNavOpen(false);\n };\n\n const paletteCommands: Command[] = (commands ?? []).map(({ run, page, ...command }) => ({\n ...command,\n run: () => {\n run?.();\n if (page !== undefined) navigate(page);\n },\n }));\n\n /** For a menu item that opens a place. */\n const afterMenuSelect = (item: BlockMenuItem & { page?: string }) => {\n if (item.page !== undefined) navigate(item.page);\n };\n\n return { active, navigate, navOpen, setNavOpen, searchOpen, setSearchOpen, hasSearch, paletteCommands, afterMenuSelect };\n}\n", "import { MenuItem, MenuLabel, MenuSeparator } from \"@openwarelabs/ui\";\n\nimport { CheckIcon, PlusIcon } from \"@blocks/shared/icons\";\nimport type { AppWorkspaceItemsProps } from \"@blocks/shared/shared.types\";\n\n/** The workspace menu's items: its heading, each workspace with the current one ticked, then a new one. */\nexport function AppWorkspaceItems({ workspaces, onNewWorkspace, heading, newWorkspace, spacerClassName }: AppWorkspaceItemsProps) {\n return (\n <>\n <MenuLabel>{heading}</MenuLabel>\n {workspaces.map((workspace) => (\n <MenuItem\n key={workspace.name}\n icon={workspace.current ? <CheckIcon size={15} /> : <span className={spacerClassName} />}\n onSelect={workspace.onSelect}\n >\n {workspace.name}\n </MenuItem>\n ))}\n <MenuSeparator />\n <MenuItem icon={<PlusIcon size={15} />} onSelect={onNewWorkspace}>\n {newWorkspace}\n </MenuItem>\n </>\n );\n}\n", "import { Fragment } from \"react\";\n\nimport { MenuItem, MenuSeparator } from \"@openwarelabs/ui\";\n\nimport type { BlockMenuItemsProps } from \"@blocks/shared/shared.types\";\n\n/** A menu's items, each a MenuItem, with a separator before those that start a new group. */\nexport function BlockMenuItems({ items, onAfterSelect }: BlockMenuItemsProps) {\n return (\n <>\n {items.map((item, index) => (\n <Fragment key={index}>\n {item.separatorBefore ? <MenuSeparator /> : null}\n <MenuItem\n icon={item.icon}\n disabled={item.disabled}\n destructive={item.destructive}\n onSelect={\n item.onSelect || onAfterSelect\n ? () => {\n item.onSelect?.();\n onAfterSelect?.(item);\n }\n : undefined\n }\n >\n {item.label}\n </MenuItem>\n </Fragment>\n ))}\n </>\n );\n}\n", "import { Avatar, Button, CommandPalette, cx, Drawer, Menu, MenuLabel, NavItem, NavList, Text } from \"@openwarelabs/ui\";\n\nimport { useAppShell } from \"@blocks/shared/appShell\";\nimport { AppWorkspaceItems } from \"@blocks/shared/AppWorkspaceItems\";\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronsUpDownIcon, MenuIcon, SearchIcon } from \"@blocks/shared/icons\";\nimport type { Shell02Props } from \"./Shell02.types\";\n\n/**\n * An app's frame for a few sections: the workspace, the sections and the account across the top on the canvas, and\n * the page on a raised panel under them. Under 1024px the search folds to its icon; on phones the sections and the\n * account move into a drawer.\n */\nexport function Shell02({\n workspace,\n logo,\n workspaces,\n onNewWorkspace,\n navigation,\n current,\n defaultCurrent,\n onNavigate,\n account,\n accountMenu = [],\n commands,\n children,\n labels = {},\n className,\n ...props\n}: Shell02Props) {\n const shell = useAppShell({ current, defaultCurrent: defaultCurrent ?? navigation[0]?.id, onNavigate, commands });\n const searchLabel = labels.search ?? \"Search\";\n const navigationLabel = labels.navigation ?? \"Main navigation\";\n const accountLabel = labels.account ?? \"Account\";\n const openSearch = () => shell.setSearchOpen(true);\n\n const items = (orientation: \"horizontal\" | \"vertical\") =>\n navigation.map((item) => (\n <NavItem\n key={item.id}\n icon={orientation === \"vertical\" ? item.icon : undefined}\n href={item.href}\n active={shell.active === item.id}\n end={item.count}\n onClick={() => shell.navigate(item.id)}\n >\n {item.label}\n </NavItem>\n ));\n\n return (\n <div className={cx(\"ow-shell02\", className)} {...props}>\n <header className=\"ow-shell02__header\">\n <Menu\n label={labels.workspaces ?? \"Workspaces\"}\n width={232}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" className=\"ow-shell02__workspace\" endIcon={<ChevronsUpDownIcon size={15} />}>\n {logo}\n <Text as=\"span\" variant=\"card-title\" tone=\"default\">\n {workspace}\n </Text>\n </Button>\n }\n >\n <AppWorkspaceItems\n workspaces={workspaces ?? [{ name: workspace, current: true }]}\n onNewWorkspace={onNewWorkspace}\n heading={labels.workspaces ?? \"Workspaces\"}\n newWorkspace={labels.newWorkspace ?? \"New workspace\"}\n spacerClassName=\"ow-shell02__menu-spacer\"\n />\n </Menu>\n\n <NavList label={navigationLabel} orientation=\"horizontal\" className=\"ow-shell02__nav\">\n {items(\"horizontal\")}\n </NavList>\n\n <div className=\"ow-shell02__end\">\n {shell.hasSearch ? (\n <>\n <Button size=\"sm\" className=\"ow-shell02__search\" startIcon={<SearchIcon size={15} />} shortcut=\"\u2318K\" onClick={openSearch}>\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell02__search-text\">\n {searchLabel}\n </Text>\n </Button>\n {/* Under 1024px wide the search field folds to its icon. */}\n <Button variant=\"ghost\" iconOnly className=\"ow-shell02__search-icon\" aria-label={searchLabel} onClick={openSearch}>\n <SearchIcon size={18} />\n </Button>\n </>\n ) : null}\n <span className=\"ow-shell02__account\">\n <Menu\n label={accountLabel}\n align=\"end\"\n width={232}\n trigger={\n <Button variant=\"ghost\" iconOnly aria-label={labels.accountButton?.(account.name) ?? `${accountLabel}: ${account.name}`}>\n <Avatar name={account.name} src={account.avatar} size=\"md\" />\n </Button>\n }\n >\n {account.email ? <MenuLabel>{account.email}</MenuLabel> : null}\n <BlockMenuItems items={accountMenu} onAfterSelect={shell.afterMenuSelect} />\n </Menu>\n </span>\n <span className=\"ow-shell02__menu-button\">\n <Button variant=\"ghost\" iconOnly aria-label={labels.openNavigation ?? \"Open navigation\"} onClick={() => shell.setNavOpen(true)}>\n <MenuIcon size={18} />\n </Button>\n </span>\n </div>\n </header>\n\n <main className=\"ow-shell02__panel\">\n <div className=\"ow-shell02__page\">{children}</div>\n </main>\n\n <Drawer open={shell.navOpen} onClose={() => shell.setNavOpen(false)} side=\"right\" size={300} title={labels.menu ?? \"Menu\"}>\n <div className=\"ow-shell02__drawer\">\n <NavList label={navigationLabel}>{items(\"vertical\")}</NavList>\n <div className=\"ow-shell02__drawer-account\">\n <Menu\n label={accountLabel}\n above\n width={232}\n trigger={\n <Button variant=\"ghost\" fullWidth className=\"ow-shell02__user\" endIcon={<ChevronsUpDownIcon size={15} />}>\n <Avatar name={account.name} src={account.avatar} size=\"sm\" />\n <span className=\"ow-shell02__user-text\">\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {account.name}\n </Text>\n {account.email ? (\n <Text variant=\"caption\" truncate>\n {account.email}\n </Text>\n ) : null}\n </span>\n </Button>\n }\n >\n <BlockMenuItems items={accountMenu} onAfterSelect={shell.afterMenuSelect} />\n </Menu>\n </div>\n </div>\n </Drawer>\n {shell.hasSearch ? (\n <CommandPalette\n open={shell.searchOpen}\n onClose={() => shell.setSearchOpen(false)}\n commands={shell.paletteCommands}\n placeholder={labels.searchPlaceholder ?? \"Search\u2026\"}\n />\n ) : null}\n </div>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Avatar, Badge, Button, cx, Menu, NavItem, ScrollShadow, SearchField, Text, Tooltip } from \"@openwarelabs/ui\";\n\nimport { AppWorkspaceItems } from \"@blocks/shared/AppWorkspaceItems\";\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronLeftIcon, ChevronRightIcon, ChevronsUpDownIcon, PanelRightIcon, PlusIcon, XIcon } from \"@blocks/shared/icons\";\nimport type { Shell03Props, Shell03View } from \"./Shell03.types\";\n\n/** On phones one pane shows at a time; under 1024px the inspector takes the item's place. */\n\nfunction useMediaQuery(query: string) {\n const [matches, setMatches] = useState(() => window.matchMedia(query).matches);\n useEffect(() => {\n const list = window.matchMedia(query);\n const update = () => setMatches(list.matches);\n update();\n list.addEventListener(\"change\", update);\n return () => list.removeEventListener(\"change\", update);\n }, [query]);\n return matches;\n}\n\n/**\n * Three panes: a list on the canvas, and the open item with an inspector beside it on a raised panel. Under 1024px\n * the inspector takes the item's place when asked for; on phones one pane shows at a time, each with a way back.\n */\nexport function Shell03({\n workspace,\n logo,\n workspaces,\n onNewWorkspace,\n listTitle,\n items,\n selected,\n defaultSelected,\n onSelect,\n newItem,\n account,\n accountMenu = [],\n children,\n inspectorTitle = \"Details\",\n inspector,\n defaultInspectorOpen = true,\n labels = {},\n className,\n ...props\n}: Shell03Props) {\n const id = useId();\n const [ownSelected, setOwnSelected] = useState(defaultSelected ?? items[0]?.id);\n const [view, setView] = useState<Shell03View>(\"list\");\n const [inspectorOpen, setInspectorOpen] = useState(defaultInspectorOpen);\n const [query, setQuery] = useState(\"\");\n const wide = useMediaQuery(\"(min-width: 1024px)\");\n\n const selectedId = selected ?? ownSelected;\n const item = items.find((entry) => entry.id === selectedId);\n const visible = items.filter((entry) => entry.label.toLowerCase().includes(query.trim().toLowerCase()));\n\n // When a narrow screen swaps panes, take focus to the new pane's heading so keyboards and screen readers follow.\n const itemRef = useRef<HTMLElement>(null);\n const inspectorRef = useRef<HTMLElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const moved = useRef(false);\n useEffect(() => {\n if (!moved.current) return;\n if (view === \"item\") itemRef.current?.querySelector<HTMLElement>(\"h1\")?.focus();\n if (view === \"inspector\") inspectorRef.current?.querySelector<HTMLElement>(\"h2\")?.focus();\n if (view === \"list\") listRef.current?.querySelector<HTMLElement>('[aria-current=\"page\"]')?.focus();\n }, [view]);\n const go = (next: Shell03View) => {\n moved.current = true;\n setView(next);\n };\n\n const open = (next: string) => {\n setOwnSelected(next);\n onSelect?.(next);\n go(\"item\");\n };\n const showDetails = () => (wide ? setInspectorOpen((current) => !current) : go(\"inspector\"));\n const detailsLabel = wide && inspectorOpen ? (labels.hideDetails ?? \"Hide details\") : (labels.showDetails ?? \"Show details\");\n const filterLabel = labels.filter ?? \"Filter\";\n\n return (\n <div className={cx(\"ow-shell03\", className)} data-view={view} data-inspector={inspectorOpen ? \"open\" : \"closed\"} {...props}>\n <div ref={listRef} className=\"ow-shell03__list\">\n <Menu\n label={labels.workspaces ?? \"Workspaces\"}\n width={232}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" fullWidth className=\"ow-shell03__workspace\" endIcon={<ChevronsUpDownIcon size={15} />}>\n {logo}\n <Text as=\"span\" variant=\"card-title\" tone=\"default\" className=\"ow-shell03__workspace-name\">\n {workspace}\n </Text>\n </Button>\n }\n >\n <AppWorkspaceItems\n workspaces={workspaces ?? [{ name: workspace, current: true }]}\n onNewWorkspace={onNewWorkspace}\n heading={labels.workspaces ?? \"Workspaces\"}\n newWorkspace={labels.newWorkspace ?? \"New workspace\"}\n spacerClassName=\"ow-shell03__menu-spacer\"\n />\n </Menu>\n\n <div className=\"ow-shell03__list-heading\">\n <Text variant=\"label\">\n {listTitle}\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell03__list-count\">\n {items.length}\n </Text>\n </Text>\n {newItem ? (\n <Tooltip label={newItem.label}>\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={newItem.label} onClick={newItem.onClick}>\n <PlusIcon size={16} />\n </Button>\n </Tooltip>\n ) : null}\n </div>\n\n <SearchField size=\"sm\" className=\"ow-shell03__search\" placeholder={filterLabel} aria-label={filterLabel} value={query} onChange={setQuery} />\n\n <ScrollShadow className=\"ow-shell03__scroll\">\n <nav aria-label={listTitle}>\n {visible.length ? (\n <ul className=\"ow-shell03__projects\">\n {visible.map((entry) => (\n <li key={entry.id}>\n <NavItem\n className=\"ow-shell03__project\"\n icon={entry.icon}\n active={entry.id === selectedId}\n end={\n entry.status ? (\n <Badge size=\"sm\" variant={entry.status.tone ?? \"neutral\"}>\n {entry.status.label}\n </Badge>\n ) : undefined\n }\n onClick={() => open(entry.id)}\n >\n {/* The name takes the item's own type, which turns heavier on the open one. */}\n <span className=\"ow-shell03__project-text\">\n <span className=\"ow-shell03__project-name\">{entry.label}</span>\n {entry.caption !== undefined ? (\n <Text variant=\"caption\" truncate>\n {entry.caption}\n </Text>\n ) : null}\n </span>\n </NavItem>\n </li>\n ))}\n </ul>\n ) : (\n <Text variant=\"copy\" className=\"ow-shell03__no-match\">\n {labels.noMatch ? labels.noMatch(query.trim()) : <>Nothing matches \u201C{query.trim()}\u201D.</>}\n </Text>\n )}\n </nav>\n </ScrollShadow>\n\n <Menu\n label={labels.account ?? \"Account\"}\n above\n width={232}\n trigger={\n <Button variant=\"ghost\" fullWidth className=\"ow-shell03__user\" endIcon={<ChevronsUpDownIcon size={15} />}>\n <Avatar name={account.name} src={account.avatar} size=\"sm\" />\n <span className=\"ow-shell03__user-text\">\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {account.name}\n </Text>\n {account.email ? (\n <Text variant=\"caption\" truncate>\n {account.email}\n </Text>\n ) : null}\n </span>\n </Button>\n }\n >\n <BlockMenuItems items={accountMenu} />\n </Menu>\n </div>\n\n <div className=\"ow-shell03__panel\">\n <main ref={itemRef} className=\"ow-shell03__item\">\n <div className=\"ow-shell03__toolbar\">\n <span className=\"ow-shell03__back\">\n <Button variant=\"ghost\" size=\"sm\" startIcon={<ChevronLeftIcon size={16} />} onClick={() => go(\"list\")}>\n {listTitle}\n </Button>\n </span>\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell03__crumbs\" aria-hidden=\"true\">\n {listTitle}\n <ChevronRightIcon size={14} />\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {item?.label}\n </Text>\n </Text>\n {inspector ? (\n <Tooltip label={detailsLabel}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={detailsLabel}\n aria-expanded={wide ? inspectorOpen : undefined}\n onClick={showDetails}\n >\n <PanelRightIcon size={16} />\n </Button>\n </Tooltip>\n ) : null}\n </div>\n\n <div className=\"ow-shell03__content\">{children}</div>\n </main>\n\n {inspector ? (\n <aside ref={inspectorRef} className=\"ow-shell03__inspector\" aria-labelledby={`${id}-details`}>\n <div className=\"ow-shell03__inspector-header\">\n <span className=\"ow-shell03__inspector-back\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.backTo?.(item?.label ?? listTitle) ?? `Back to ${item?.label ?? listTitle}`}\n onClick={() => go(\"item\")}\n >\n <ChevronLeftIcon size={16} />\n </Button>\n </span>\n <Text as=\"h2\" variant=\"card-title\" id={`${id}-details`} tabIndex={-1} className=\"ow-shell03__inspector-title\">\n {inspectorTitle}\n </Text>\n <span className=\"ow-shell03__inspector-close\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.hideDetails ?? \"Hide details\"}\n onClick={() => setInspectorOpen(false)}\n >\n <XIcon size={16} />\n </Button>\n </span>\n </div>\n\n <div className=\"ow-shell03__inspector-body\">{inspector}</div>\n </aside>\n ) : null}\n </div>\n </div>\n );\n}\n", "import { Fragment, useId, useState, type ReactElement } from \"react\";\n\nimport { Avatar, Button, CommandPalette, cx, Drawer, Menu, NavItem, NavList, Text, Tooltip } from \"@openwarelabs/ui\";\n\nimport { useAppShell } from \"@blocks/shared/appShell\";\nimport { AppWorkspaceItems } from \"@blocks/shared/AppWorkspaceItems\";\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronRightIcon, ChevronsUpDownIcon, MenuIcon, PanelLeftCloseIcon, PanelLeftOpenIcon, SearchIcon } from \"@blocks/shared/icons\";\nimport type { Shell04Props } from \"./Shell04.types\";\n\n/** Names an item in a tooltip while the sidebar shows only its icon. */\nfunction Tip({ show, label, children }: { show: boolean; label: string; children: ReactElement }) {\n return show ? (\n <Tooltip label={label} placement=\"right\">\n {children}\n </Tooltip>\n ) : (\n children\n );\n}\n\n/**\n * An app's frame with a sidebar that folds down to its icons, from a button in the page's toolbar: the labels fade\n * and the edge closes over them, and each item is named in a tooltip. On phones the sidebar becomes a drawer.\n */\nexport function Shell04({\n workspace,\n logo,\n workspaces,\n onNewWorkspace,\n navigation,\n current,\n defaultCurrent,\n onNavigate,\n defaultCollapsed,\n onCollapsedChange,\n account,\n accountMenu,\n commands,\n breadcrumbs,\n children,\n labels = {},\n className,\n ...props\n}: Shell04Props) {\n const id = useId();\n const shell = useAppShell({ current, defaultCurrent: defaultCurrent ?? navigation[0]?.items[0]?.id, onNavigate, commands });\n // Folded on tablets to start with, open on desktops, unless told otherwise; nothing is remembered between visits.\n const [collapsed, setCollapsed] = useState(() => defaultCollapsed ?? window.matchMedia(\"(max-width: 1023px)\").matches);\n const toggle = () => {\n setCollapsed(!collapsed);\n onCollapsedChange?.(!collapsed);\n };\n const searchLabel = labels.search ?? \"Search\";\n const openSearch = () => shell.setSearchOpen(true);\n const foldLabel = collapsed ? (labels.expand ?? \"Expand sidebar\") : (labels.collapse ?? \"Collapse sidebar\");\n\n /** Everything in the sidebar; the same list goes in the drawer on phones, always unfolded there. */\n const sidebar = (folded: boolean) => (\n <div className=\"ow-shell04__nav\">\n <Tip show={folded} label={workspace}>\n <Menu\n label={labels.workspaces ?? \"Workspaces\"}\n width={232}\n trigger={\n <Button variant=\"ghost\" size=\"sm\" fullWidth className=\"ow-shell04__workspace\" endIcon={<ChevronsUpDownIcon size={15} />}>\n {logo}\n <Text as=\"span\" variant=\"card-title\" tone=\"default\" className=\"ow-shell04__workspace-name ow-shell04__fade\">\n {workspace}\n </Text>\n </Button>\n }\n >\n <AppWorkspaceItems\n workspaces={workspaces ?? [{ name: workspace, current: true }]}\n onNewWorkspace={onNewWorkspace}\n heading={labels.workspaces ?? \"Workspaces\"}\n newWorkspace={labels.newWorkspace ?? \"New workspace\"}\n spacerClassName=\"ow-shell04__menu-spacer\"\n />\n </Menu>\n </Tip>\n\n {shell.hasSearch ? (\n <Tip show={folded} label={searchLabel}>\n <Button size=\"sm\" fullWidth className=\"ow-shell04__search\" startIcon={<SearchIcon size={15} />} shortcut=\"\u2318K\" onClick={openSearch}>\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell04__search-text ow-shell04__fade\">\n {searchLabel}\n </Text>\n </Button>\n </Tip>\n ) : null}\n\n {navigation.map((group, index) => (\n <NavList key={index} label={group.label} heading={group.heading}>\n {group.items.map((item) => (\n <Tip\n key={item.id}\n show={folded}\n label={typeof item.count === \"number\" || typeof item.count === \"string\" ? `${item.label} (${item.count})` : item.label}\n >\n <NavItem\n icon={\n <span className=\"ow-shell04__icon\">\n {item.icon}\n {item.unread ? <span className=\"ow-shell04__unread\" aria-hidden=\"true\" /> : null}\n </span>\n }\n href={item.href}\n active={shell.active === item.id}\n end={item.count}\n onClick={() => shell.navigate(item.id)}\n >\n {item.label}\n </NavItem>\n </Tip>\n ))}\n </NavList>\n ))}\n\n <div className=\"ow-shell04__account\">\n <Tip show={folded} label={account.name}>\n <Menu\n label={labels.account ?? \"Account\"}\n above\n width={232}\n trigger={\n <Button variant=\"ghost\" fullWidth className=\"ow-shell04__user\" endIcon={<ChevronsUpDownIcon size={15} />}>\n <Avatar name={account.name} src={account.avatar} size=\"sm\" />\n <span className=\"ow-shell04__user-text ow-shell04__fade\">\n <Text as=\"span\" variant=\"label\" tone=\"default\" truncate>\n {account.name}\n </Text>\n {account.email ? (\n <Text variant=\"caption\" truncate>\n {account.email}\n </Text>\n ) : null}\n </span>\n </Button>\n }\n >\n <BlockMenuItems items={accountMenu ?? []} onAfterSelect={shell.afterMenuSelect} />\n </Menu>\n </Tip>\n </div>\n </div>\n );\n\n return (\n <div className={cx(\"ow-shell04\", collapsed && \"ow-shell04--collapsed\", className)} {...props}>\n <aside id={`${id}-sidebar`} className=\"ow-shell04__aside\" aria-label={labels.navigation ?? \"Main navigation\"}>\n {sidebar(collapsed)}\n </aside>\n\n <div className=\"ow-shell04__body\">\n <header className=\"ow-shell04__topbar\">\n <Button variant=\"ghost\" iconOnly aria-label={labels.openNavigation ?? \"Open navigation\"} onClick={() => shell.setNavOpen(true)}>\n <MenuIcon size={18} />\n </Button>\n <Text as=\"span\" variant=\"card-title\" className=\"ow-shell04__topbar-brand\">\n {logo}\n {workspace}\n </Text>\n {shell.hasSearch ? (\n <Button variant=\"ghost\" iconOnly aria-label={searchLabel} onClick={openSearch}>\n <SearchIcon size={18} />\n </Button>\n ) : (\n <span />\n )}\n </header>\n\n <main className=\"ow-shell04__panel\">\n <div className=\"ow-shell04__toolbar\">\n <Tooltip label={foldLabel} placement=\"bottom\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={foldLabel}\n aria-expanded={!collapsed}\n aria-controls={`${id}-sidebar`}\n onClick={toggle}\n >\n {collapsed ? <PanelLeftOpenIcon size={16} /> : <PanelLeftCloseIcon size={16} />}\n </Button>\n </Tooltip>\n {breadcrumbs?.length ? (\n <>\n <span className=\"ow-shell04__toolbar-divider\" aria-hidden=\"true\" />\n <Text as=\"span\" tone=\"muted\" className=\"ow-shell04__crumbs\">\n {breadcrumbs.slice(0, -1).map((crumb, index) => (\n <Fragment key={index}>\n {crumb}\n <ChevronRightIcon size={14} />\n </Fragment>\n ))}\n <Text as=\"span\" variant=\"label\" tone=\"default\">\n {breadcrumbs[breadcrumbs.length - 1]}\n </Text>\n </Text>\n </>\n ) : null}\n </div>\n\n <div className=\"ow-shell04__page\">{children}</div>\n </main>\n </div>\n\n <Drawer open={shell.navOpen} onClose={() => shell.setNavOpen(false)} side=\"left\" size={300} title={labels.menu ?? \"Menu\"}>\n {sidebar(false)}\n </Drawer>\n {shell.hasSearch ? (\n <CommandPalette\n open={shell.searchOpen}\n onClose={() => shell.setSearchOpen(false)}\n commands={shell.paletteCommands}\n placeholder={labels.searchPlaceholder ?? \"Search\u2026\"}\n />\n ) : null}\n </div>\n );\n}\n", "import { Badge, Button, cx, Menu, Text } from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { EllipsisIcon } from \"@blocks/shared/icons\";\nimport type { PageHeading01Props } from \"./PageHeading01.types\";\n\n/**\n * The top of a page on a raised panel: its name and state, one primary action and a menu for the rest, then a row\n * of facts. The page itself can carry on under it, on the same panel.\n */\nexport function PageHeading01({\n title,\n icon,\n status,\n description,\n primaryAction,\n menu,\n facts,\n children,\n labels = {},\n className,\n ...props\n}: PageHeading01Props) {\n return (\n <div className={cx(\"ow-page-heading01\", className)} {...props}>\n <div className=\"ow-page-heading01__panel\">\n <header className=\"ow-page-heading01__header\">\n <div className=\"ow-page-heading01__identity\">\n {icon ? (\n <span className=\"ow-page-heading01__tile\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : null}\n <div>\n <div className=\"ow-page-heading01__title-row\">\n <Text as=\"h1\" variant=\"heading\">\n {title}\n </Text>\n {status ? <Badge variant={status.tone ?? \"neutral\"}>{status.label}</Badge> : null}\n </div>\n {description ? (\n <Text variant=\"copy\" className=\"ow-page-heading01__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n </div>\n\n {menu?.length || primaryAction ? (\n <div className=\"ow-page-heading01__actions\">\n {menu?.length ? (\n <Menu\n label={labels.menu ?? \"Actions\"}\n align=\"end\"\n trigger={\n <Button iconOnly aria-label={labels.moreActions ?? \"More actions\"}>\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <BlockMenuItems items={menu} />\n </Menu>\n ) : null}\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n ) : null}\n </header>\n\n {facts?.length ? (\n <dl className=\"ow-page-heading01__facts\">\n {facts.map((fact, index) => (\n <div key={index} className=\"ow-page-heading01__fact\">\n <Text as=\"dt\" variant=\"caption\">\n {fact.label}\n </Text>\n <Text as=\"dd\" className=\"ow-page-heading01__value\">\n {fact.value}\n </Text>\n </div>\n ))}\n </dl>\n ) : null}\n\n {children}\n </div>\n </div>\n );\n}\n", "import { Avatar, AvatarGroup, Breadcrumbs, Button, cx, Tab, TabList, TabPanel, Tabs, Text } from \"@openwarelabs/ui\";\n\nimport type { PageHeading02Props } from \"./PageHeading02.types\";\n\n/** Breadcrumbs, the page's name and its action, then line tabs for its views that run edge to edge across the panel. */\nexport function PageHeading02({\n title,\n description,\n breadcrumbs,\n members,\n primaryAction,\n tabs,\n value,\n defaultValue,\n onValueChange,\n labels = {},\n className,\n ...props\n}: PageHeading02Props) {\n const tabsLabel = labels.tabs ?? (typeof title === \"string\" ? title : \"Views\");\n return (\n <div className={cx(\"ow-page-heading02\", className)} {...props}>\n <div className=\"ow-page-heading02__panel\">\n <div className=\"ow-page-heading02__top\">\n {breadcrumbs?.length ? <Breadcrumbs items={breadcrumbs} /> : null}\n <div className=\"ow-page-heading02__header\">\n <div>\n <Text as=\"h1\" variant=\"heading\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-page-heading02__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {members?.length || primaryAction ? (\n <div className=\"ow-page-heading02__actions\">\n {members?.length ? (\n <AvatarGroup size=\"sm\" max={4} label={labels.members?.(members.length) ?? `${members.length} people`}>\n {members.map((member, index) => (\n <Avatar key={index} name={member.name} src={member.avatar} label={member.name} />\n ))}\n </AvatarGroup>\n ) : null}\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n </div>\n\n <Tabs\n variant=\"line\"\n value={value}\n defaultValue={defaultValue ?? tabs[0]?.value}\n onValueChange={onValueChange}\n className=\"ow-page-heading02__tabs\"\n >\n <TabList aria-label={tabsLabel}>\n {tabs.map((tab) => (\n <Tab key={tab.value} value={tab.value}>\n {tab.label}\n {tab.count !== undefined ? (\n <Text variant=\"badge\" tone=\"muted\" className=\"ow-page-heading02__count\">\n {tab.count}\n </Text>\n ) : null}\n </Tab>\n ))}\n </TabList>\n\n {tabs.map((tab) => (\n <TabPanel key={tab.value} value={tab.value} className=\"ow-page-heading02__tab-panel\">\n {tab.content}\n </TabPanel>\n ))}\n </Tabs>\n </div>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Avatar, Badge, Button, cx, EmptyState, Menu, MenuItem, SearchField, Tag, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { CheckIcon, ChevronDownIcon, MessageSquareIcon, SearchXIcon } from \"@blocks/shared/icons\";\nimport type { PageHeading03Filter, PageHeading03Props } from \"./PageHeading03.types\";\n\n/**\n * A page title over a search field and filter menus. The filters in use show as tags above the list they narrow,\n * with a count, and a list that matches nothing says so and offers to clear them.\n */\nexport function PageHeading03({\n title,\n description,\n primaryAction,\n facets,\n items,\n defaultFilters = [],\n onFiltersChange,\n emptyIcon,\n labels = {},\n className,\n ...props\n}: PageHeading03Props) {\n const [query, setQuery] = useState(\"\");\n const [filters, setFiltersState] = useState<PageHeading03Filter[]>(defaultFilters);\n\n const setFilters = (next: PageHeading03Filter[]) => {\n setFiltersState(next);\n onFiltersChange?.(next);\n };\n const isOn = (facet: string, value: string) => filters.some((filter) => filter.facet === facet && filter.value === value);\n const toggle = (facet: string, value: string) =>\n setFilters(isOn(facet, value) ? filters.filter((filter) => !(filter.facet === facet && filter.value === value)) : [...filters, { facet, value }]);\n const clearAll = () => {\n setFilters([]);\n setQuery(\"\");\n };\n\n // Choices in the same menu widen the list (any of them); different menus narrow it (all of them).\n const text = query.trim().toLowerCase();\n const shown = items.filter((item) => {\n const words = item.searchText ?? (typeof item.title === \"string\" ? [item.title] : []);\n const matchesText = !text || words.some((field) => field.toLowerCase().includes(text));\n const matchesFilters = facets.every((facet) => {\n const chosen = filters.filter((filter) => filter.facet === facet.id).map((filter) => filter.value);\n return chosen.length === 0 || chosen.includes(item.facets[facet.id] ?? \"\");\n });\n return matchesText && matchesFilters;\n });\n\n return (\n <div className={cx(\"ow-page-heading03\", className)} {...props}>\n <div className=\"ow-page-heading03__panel\">\n <div className=\"ow-page-heading03__top\">\n <div className=\"ow-page-heading03__header\">\n <div>\n <Text as=\"h1\" variant=\"heading\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-page-heading03__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n\n <div className=\"ow-page-heading03__toolbar\">\n <SearchField\n className=\"ow-page-heading03__search\"\n size=\"sm\"\n placeholder={labels.searchPlaceholder ?? \"Search\"}\n aria-label={labels.search ?? \"Search\"}\n value={query}\n onChange={setQuery}\n />\n {facets.map((facet) => {\n const count = filters.filter((filter) => filter.facet === facet.id).length;\n return (\n <Menu\n key={facet.id}\n label={facet.label}\n trigger={\n <Button size=\"sm\" endIcon={<ChevronDownIcon size={14} />}>\n {facet.label}\n {count ? ` \u00B7 ${count}` : \"\"}\n </Button>\n }\n >\n {facet.options.map((option) => (\n <MenuItem\n key={option}\n role=\"menuitemcheckbox\"\n aria-checked={isOn(facet.id, option)}\n icon={isOn(facet.id, option) ? <CheckIcon size={15} /> : <span className=\"ow-page-heading03__menu-spacer\" />}\n onClick={(event) => {\n // Keep the menu open, so several choices can be ticked in a row.\n event.preventDefault();\n toggle(facet.id, option);\n }}\n >\n {option}\n </MenuItem>\n ))}\n </Menu>\n );\n })}\n </div>\n\n <div className=\"ow-page-heading03__applied\">\n {filters.map((filter) => {\n const facet = facets.find((entry) => entry.id === filter.facet);\n const facetLabel = facet?.label ?? filter.facet;\n return (\n <Tag\n key={`${filter.facet}-${filter.value}`}\n variant=\"active\"\n removeLabel={labels.removeFilter?.(facetLabel, filter.value) ?? `${facetLabel} filter: ${filter.value}`}\n onRemove={() => toggle(filter.facet, filter.value)}\n >\n <span className=\"ow-page-heading03__tag-key\">{facetLabel}:</span> {filter.value}\n </Tag>\n );\n })}\n {filters.length ? (\n <Button variant=\"ghost\" size=\"sm\" onClick={() => setFilters([])}>\n {labels.clearFilters ?? \"Clear filters\"}\n </Button>\n ) : null}\n <Text variant=\"caption\" className=\"ow-page-heading03__count\" aria-live=\"polite\">\n {labels.count ? (\n labels.count(shown.length, items.length)\n ) : (\n <>\n {shown.length} of {items.length} shown\n </>\n )}\n </Text>\n </div>\n </div>\n\n {shown.length ? (\n <ul className=\"ow-page-heading03__list\" aria-label={labels.list ?? \"Results\"}>\n {shown.map((item) => (\n <li key={item.id} className=\"ow-page-heading03__row\">\n {item.icon ? (\n <span className=\"ow-page-heading03__agent\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : item.person ? (\n <Avatar name={item.person} />\n ) : (\n <span />\n )}\n <span className=\"ow-page-heading03__row-text\">\n <Text as=\"span\" className=\"ow-page-heading03__row-line\">\n {item.title}\n </Text>\n <Text variant=\"caption\" className=\"ow-page-heading03__row-line\">\n {item.reference !== undefined ? (\n <>\n <Text as=\"span\" variant=\"code\" className=\"ow-page-heading03__number\">\n {item.reference}\n </Text>{\" \"}\n {item.meta !== undefined ? \"\u00B7 \" : null}\n </>\n ) : null}\n {item.meta}\n </Text>\n </span>\n {item.status ? (\n <Badge size=\"sm\" variant={item.status.tone ?? \"neutral\"}>\n {item.status.label}\n </Badge>\n ) : (\n <span />\n )}\n <Text variant=\"caption\" className=\"ow-page-heading03__comments\" data-none={item.comments ? undefined : \"\"}>\n <MessageSquareIcon size={14} />\n {item.comments ?? 0}\n <VisuallyHidden>{labels.comments ?? \" comments\"}</VisuallyHidden>\n </Text>\n </li>\n ))}\n </ul>\n ) : (\n <div className=\"ow-page-heading03__empty\">\n <EmptyState\n icon={emptyIcon ?? <SearchXIcon size={20} />}\n title={labels.emptyTitle ?? \"Nothing matches\"}\n description={labels.emptyDescription ?? \"Try a different search, or take a filter off to see more.\"}\n actions={<Button onClick={clearAll}>{labels.clearAll ?? \"Clear search and filters\"}</Button>}\n />\n </div>\n )}\n </div>\n </div>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Card, cx, SegmentedControl, Select, Stat, Text } from \"@openwarelabs/ui\";\n\nimport type { Dashboard01Filter, Dashboard01Props } from \"./Dashboard01.types\";\n\n/** One filter, keeping its own value unless it's given one. */\nfunction Filter({ filter }: { filter: Dashboard01Filter }) {\n const [own, setOwn] = useState(filter.defaultValue ?? filter.options[0]?.value ?? \"\");\n const value = filter.value ?? own;\n const change = (next: string) => {\n setOwn(next);\n filter.onChange?.(next);\n };\n return filter.kind === \"select\" ? (\n <Select className=\"ow-dashboard01__select\" size=\"sm\" aria-label={filter.label} value={value} onChange={change} options={filter.options} />\n ) : (\n <SegmentedControl size=\"sm\" aria-label={filter.label} options={filter.options} value={value} onChange={change} />\n );\n}\n\n/** A page title with its filters, a row of stats, then a chart across the page in a card. */\nexport function Dashboard01({ title, description, filters, stats, chart, labels = {}, className, ...props }: Dashboard01Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-dashboard01\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-dashboard01__inner\">\n <div className=\"ow-dashboard01__header\">\n <div>\n <Text as=\"h1\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-dashboard01__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {filters?.length ? (\n <div className=\"ow-dashboard01__filters\">\n {filters.map((filter, index) => (\n <Filter key={index} filter={filter} />\n ))}\n </div>\n ) : null}\n </div>\n\n <div className=\"ow-dashboard01__stats\">\n {stats.map((stat, index) => (\n <Stat key={index} {...stat} />\n ))}\n </div>\n\n {chart ? (\n <Card className=\"ow-dashboard01__card\" padding=\"none\">\n <div className=\"ow-dashboard01__card-header\">\n <div>\n <Text as=\"h2\" variant=\"card-title\">\n {chart.title}\n </Text>\n {chart.description ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-dashboard01__summary\">\n {chart.description}\n </Text>\n ) : null}\n </div>\n {chart.legend?.length ? (\n <ul className=\"ow-dashboard01__legend\" aria-label={labels.legend ?? \"Legend\"}>\n {chart.legend.map((item, index) => (\n <Text key={index} as=\"li\" variant=\"caption\" className=\"ow-dashboard01__legend-item\">\n {item.swatch}\n {item.label}\n </Text>\n ))}\n </ul>\n ) : null}\n </div>\n {chart.content}\n </Card>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, Card, cx, SegmentedControl, Stat, Table, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowUpIcon } from \"@blocks/shared/icons\";\nimport { hiddenColumns } from \"@blocks/shared/tableColumns\";\nimport type { Dashboard02Event, Dashboard02Props } from \"./Dashboard02.types\";\n\n/** The numbers on the left, with a table under them; what just happened in a feed on the right, grouped by day. */\nexport function Dashboard02<Row extends object>({\n title,\n description,\n stats,\n table,\n events,\n newEvents = [],\n eventFilters,\n labels = {},\n className,\n ...props\n}: Dashboard02Props<Row>) {\n const id = useId();\n const [filter, setFilter] = useState(\"all\");\n const [shownNew, setShownNew] = useState<Dashboard02Event[]>([]);\n const [fresh, setFresh] = useState<string[]>([]);\n const [earlier, setEarlier] = useState(false);\n\n const waiting = newEvents.filter((event) => !shownNew.some((shown) => shown.id === event.id));\n const showWaiting = () => {\n setShownNew((current) => [...waiting, ...current]);\n setFresh(waiting.map((event) => event.id));\n };\n\n const feed = [...shownNew, ...events];\n const dayOrder = feed.map((event) => event.day).filter((day, index, all) => all.indexOf(day) === index);\n const firstDay = dayOrder[0];\n const shown = feed.filter((event) => (filter === \"all\" || event.kind === filter) && (earlier || event.day === firstDay));\n const days = dayOrder.map((day) => ({ day, items: shown.filter((event) => event.day === day) })).filter((group) => group.items.length);\n\n return (\n <section className={cx(\"ow-dashboard02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-dashboard02__inner\">\n <div className=\"ow-dashboard02__header\">\n <div>\n <Text as=\"h1\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-dashboard02__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n </div>\n\n <div className=\"ow-dashboard02__stats\">\n {stats.map((stat, index) => (\n <Stat key={index} {...stat} />\n ))}\n </div>\n\n {table ? (\n <Card padding=\"none\" className=\"ow-dashboard02__card ow-dashboard02__table-card\" {...hiddenColumns(table.columns)}>\n <div className=\"ow-dashboard02__card-header\">\n <Text as=\"h2\" variant=\"card-title\">\n {table.title}\n </Text>\n </div>\n <Table\n variant=\"plain\"\n caption={table.caption}\n hideCaption\n density=\"compact\"\n columns={table.columns}\n rows={table.rows}\n defaultSort={table.defaultSort}\n />\n </Card>\n ) : null}\n\n <Card padding=\"none\" className=\"ow-dashboard02__card ow-dashboard02__feed\">\n <section aria-labelledby={`${id}-feed`}>\n <div className=\"ow-dashboard02__card-header\">\n <Text as=\"h2\" variant=\"card-title\" id={`${id}-feed`}>\n {labels.feed ?? \"Activity\"}\n </Text>\n {eventFilters?.length ? (\n <SegmentedControl\n size=\"sm\"\n aria-label={labels.filters ?? \"Show\"}\n options={[{ value: \"all\", label: labels.all ?? \"All\" }, ...eventFilters]}\n value={filter}\n onChange={setFilter}\n />\n ) : null}\n </div>\n\n <div aria-live=\"polite\">\n {waiting.length ? (\n <div className=\"ow-dashboard02__new\">\n <Button size=\"sm\" variant=\"ghost\" startIcon={<ArrowUpIcon size={14} />} onClick={showWaiting}>\n {labels.newEvents ? labels.newEvents(waiting.length) : <>{waiting.length} new events</>}\n </Button>\n </div>\n ) : null}\n </div>\n\n {days.length ? (\n days.map((group) => (\n <div key={group.day}>\n <Text as=\"h3\" variant=\"caption\" className=\"ow-dashboard02__day\">\n {group.day}\n </Text>\n <ol className=\"ow-dashboard02__events\">\n {group.items.map((event) => (\n <li key={event.id} className=\"ow-dashboard02__event\" data-fresh={fresh.includes(event.id) || undefined}>\n <span className=\"ow-dashboard02__icon\" data-tone={event.tone} aria-hidden=\"true\">\n {event.icon}\n </span>\n <Text tone=\"soft\" className=\"ow-dashboard02__event-text\">\n {event.text}\n {event.meta !== undefined ? (\n <Text variant=\"caption\" className=\"ow-dashboard02__event-meta\">\n {event.meta}\n </Text>\n ) : null}\n </Text>\n </li>\n ))}\n </ol>\n </div>\n ))\n ) : (\n <Text variant=\"copy\" align=\"center\" className=\"ow-dashboard02__none\">\n {earlier\n ? (labels.none ?? \"Nothing like this happened this week.\")\n : (labels.noneToday ?? \"Nothing like this has happened today.\")}\n </Text>\n )}\n\n {earlier || dayOrder.length < 2 ? null : (\n <div className=\"ow-dashboard02__earlier\">\n <Button size=\"sm\" variant=\"ghost\" onClick={() => setEarlier(true)}>\n {labels.showEarlier ?? \"Show earlier activity\"}\n </Button>\n </div>\n )}\n </section>\n </Card>\n </div>\n </section>\n );\n}\n", "import type { BlockTableColumn } from \"@blocks/shared/shared.types\";\n\n/**\n * The data attributes that hide a table's columns on smaller screens: the positions of the columns to hide under\n * 1024px and under 760px, counted as the cells are (from 1, after `offset` cells of its own such as checkboxes).\n * Each block's stylesheet turns them into `display: none` for those cells.\n */\nexport function hiddenColumns<Row>(columns: Array<BlockTableColumn<Row>>, offset = 0) {\n const at = (size: \"tablet\" | \"phone\") =>\n columns\n .map((column, index) => (column.hideBelow === size ? String(index + 1 + offset) : null))\n .filter(Boolean)\n .join(\" \") || undefined;\n return { \"data-hide-tablet\": at(\"tablet\"), \"data-hide-phone\": at(\"phone\") };\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, Card, Checkbox, cx, Field, NumberField, Popover, ProgressBar, Table, Text } from \"@openwarelabs/ui\";\n\nimport { CircleCheckIcon, CreditCardIcon, PencilIcon, TriangleAlertIcon } from \"@blocks/shared/icons\";\nimport { hiddenColumns } from \"@blocks/shared/tableColumns\";\nimport type { Dashboard03Props } from \"./Dashboard03.types\";\n\n/**\n * This month's spend against a budget the person can change, the same spend broken down in a table, and what the\n * next invoice will be. The meter turns amber at 80% and red at the budget.\n */\nexport function Dashboard03<Row extends object>({\n title,\n description,\n spendTitle = \"Spend this month\",\n spent,\n forecast,\n daysLeft,\n budget: budgetProp,\n defaultBudget = 1000,\n onBudgetChange,\n budgetOption,\n budgetNote,\n currency = \"EUR\",\n locale = \"en-IE\",\n table,\n invoice,\n labels = {},\n className,\n ...props\n}: Dashboard03Props<Row>) {\n const id = useId();\n const [ownBudget, setOwnBudget] = useState(defaultBudget);\n const budget = budgetProp ?? ownBudget;\n const [draft, setDraft] = useState<number | null>(budget);\n const [optionChecked, setOptionChecked] = useState(budgetOption?.defaultChecked ?? false);\n const [editing, setEditing] = useState(false);\n\n const amount = new Intl.NumberFormat(locale, { style: \"currency\", currency });\n const whole = new Intl.NumberFormat(locale, { style: \"currency\", currency, maximumFractionDigits: 0 });\n const used = (spent / budget) * 100;\n const over = forecast - budget;\n const tone = used >= 100 ? \"danger\" : used >= 80 ? \"warning\" : \"primary\";\n const forecastInfo = { forecast: whole.format(forecast), difference: whole.format(Math.abs(over)), over: over > 0, optionChecked };\n\n const save = () => {\n if (!draft || draft < 1) return;\n setOwnBudget(draft);\n setEditing(false);\n onBudgetChange?.(draft, optionChecked);\n };\n\n return (\n <section className={cx(\"ow-dashboard03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-dashboard03__inner\">\n <div className=\"ow-dashboard03__header\">\n <Text as=\"h1\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-dashboard03__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-dashboard03__budget\">\n <div className=\"ow-dashboard03__card-header\">\n <Text as=\"h2\" variant=\"card-title\">\n {spendTitle}\n </Text>\n <Popover\n title={labels.budgetTitle ?? \"Monthly budget\"}\n width={300}\n open={editing}\n onOpenChange={(open) => {\n setEditing(open);\n if (open) setDraft(budget);\n }}\n placement=\"bottom-end\"\n trigger={\n <Button size=\"sm\" startIcon={<PencilIcon size={14} />}>\n {labels.editBudget ?? \"Edit budget\"}\n </Button>\n }\n >\n <form\n className=\"ow-dashboard03__popover-body\"\n onSubmit={(event) => {\n event.preventDefault();\n save();\n }}\n >\n <Field\n label={labels.budgetField ?? \"Budget\"}\n error={draft && draft >= 1 ? undefined : (labels.budgetError ?? `Enter a budget of at least ${whole.format(1)}.`)}\n >\n <NumberField\n value={draft}\n onChange={setDraft}\n min={0}\n step={100}\n formatOptions={{ style: \"currency\", currency, maximumFractionDigits: 0 }}\n />\n </Field>\n {budgetOption ? (\n <Checkbox\n checked={optionChecked}\n onChange={(event) => setOptionChecked(event.target.checked)}\n description={budgetOption.description}\n >\n {budgetOption.label}\n </Checkbox>\n ) : null}\n {budgetNote ? (\n <Text as=\"p\" variant=\"caption\">\n {budgetNote}\n </Text>\n ) : null}\n <div className=\"ow-dashboard03__popover-actions\">\n <Button size=\"sm\" variant=\"ghost\" onClick={() => setEditing(false)}>\n {labels.cancel ?? \"Cancel\"}\n </Button>\n <Button size=\"sm\" variant=\"primary\" type=\"submit\">\n {labels.saveBudget ?? \"Save budget\"}\n </Button>\n </div>\n </form>\n </Popover>\n </div>\n\n <div className=\"ow-dashboard03__figure\">\n <Text as=\"span\" variant=\"heading\" className=\"ow-dashboard03__spent\">\n {amount.format(spent)}\n </Text>\n <Text as=\"span\" tone=\"muted\">\n {labels.ofBudget ? labels.ofBudget(whole.format(budget)) : <>of a {whole.format(budget)} budget</>}\n </Text>\n </div>\n\n <div className=\"ow-dashboard03__meter\">\n <ProgressBar\n size=\"md\"\n tone={tone}\n value={Math.min(used, 100)}\n showValue={false}\n aria-label={labels.meter?.(Math.round(used)) ?? `${Math.round(used)}% of the budget spent`}\n />\n <div className=\"ow-dashboard03__scale\">\n <Text variant=\"caption\">{labels.used ? labels.used(Math.round(used)) : <>{Math.round(used)}% used</>}</Text>\n <Text variant=\"caption\">{labels.daysLeft ? labels.daysLeft(daysLeft) : <>{daysLeft} days left</>}</Text>\n </div>\n </div>\n\n <Text tone=\"soft\" className=\"ow-dashboard03__forecast\" data-tone={over > 0 ? \"warning\" : \"success\"}>\n {over > 0 ? <TriangleAlertIcon size={16} /> : <CircleCheckIcon size={16} />}\n <span>\n {labels.forecast ? (\n labels.forecast(forecastInfo)\n ) : (\n <>\n At this pace you'll spend about{\" \"}\n <Text as=\"strong\" variant=\"label\" tone=\"default\">\n {forecastInfo.forecast}\n </Text>{\" \"}\n by the end of the month, {forecastInfo.difference} {over > 0 ? \"over\" : \"under\"} budget.\n </>\n )}\n </span>\n </Text>\n </Card>\n\n {table ? (\n <Card padding=\"none\" className=\"ow-dashboard03__projects\" {...hiddenColumns(table.columns)}>\n <div className=\"ow-dashboard03__card-header\">\n <Text as=\"h2\" variant=\"card-title\">\n {table.title}\n </Text>\n {table.description ? <Text variant=\"caption\">{table.description}</Text> : null}\n </div>\n <Table\n variant=\"plain\"\n caption={table.caption}\n hideCaption\n density=\"compact\"\n columns={table.columns}\n rows={table.rows}\n defaultSort={table.defaultSort}\n />\n </Card>\n ) : null}\n\n {invoice ? (\n <Card padding=\"none\" className=\"ow-dashboard03__invoice\">\n <div>\n <Text as=\"h2\" variant=\"card-title\">\n {invoice.title}\n </Text>\n {invoice.due ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-dashboard03__due\">\n {invoice.due}\n </Text>\n ) : null}\n </div>\n <dl className=\"ow-dashboard03__lines\">\n {invoice.lines.map((line, index) => (\n <div key={index} className=\"ow-dashboard03__line\">\n <Text as=\"dt\" tone=\"soft\" className=\"ow-dashboard03__item\">\n {line.label}\n {line.hint ? (\n <Text variant=\"caption\" className=\"ow-dashboard03__hint\">\n {line.hint}\n </Text>\n ) : null}\n </Text>\n <Text as=\"dd\" className=\"ow-dashboard03__amount\">\n {line.amount}\n </Text>\n </div>\n ))}\n {invoice.total ? (\n <div className=\"ow-dashboard03__line ow-dashboard03__total\">\n <Text as=\"dt\" variant=\"label\" className=\"ow-dashboard03__item\">\n {invoice.total.label}\n </Text>\n <Text as=\"dd\" variant=\"dialog-title\" className=\"ow-dashboard03__amount\">\n {invoice.total.amount}\n </Text>\n </div>\n ) : null}\n </dl>\n {invoice.note ? (\n <Text as=\"p\" variant=\"caption\" className=\"ow-dashboard03__note\">\n {invoice.note}\n </Text>\n ) : null}\n\n {invoice.payment ? (\n <div className=\"ow-dashboard03__payment\">\n <span className=\"ow-dashboard03__card-mark\" aria-hidden=\"true\">\n <CreditCardIcon size={15} />\n </span>\n <span className=\"ow-dashboard03__payment-text\">\n <Text as=\"span\">{invoice.payment.label}</Text>\n {invoice.payment.detail ? <Text variant=\"caption\">{invoice.payment.detail}</Text> : null}\n </span>\n <Button size=\"sm\" variant=\"ghost\" onClick={invoice.payment.onChange}>\n {labels.changePayment ?? \"Change\"}\n </Button>\n </div>\n ) : null}\n\n {invoice.action ? (\n <Button\n startIcon={invoice.action.icon}\n loading={invoice.action.loading}\n disabled={invoice.action.disabled}\n onClick={invoice.action.onClick}\n >\n {invoice.action.label}\n </Button>\n ) : null}\n </Card>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Button, Card, cx, EmptyState, Pagination, SearchField, Select, Table, Text, type TableSort } from \"@openwarelabs/ui\";\n\nimport { SearchXIcon } from \"@blocks/shared/icons\";\nimport { hiddenColumns } from \"@blocks/shared/tableColumns\";\nimport type { List01Props } from \"./List01.types\";\n\nfunction compare(a: unknown, b: unknown) {\n return typeof a === \"number\" && typeof b === \"number\" ? a - b : String(a ?? \"\").localeCompare(String(b ?? \"\"), \"en\", { sensitivity: \"base\" });\n}\n\n/**\n * A section title with its primary action, then one card: a search field and filters, a sortable table, and the\n * pages. Any change to what's shown starts again from the first page.\n */\nexport function List01<Row extends object>({\n title,\n description,\n primaryAction,\n columns,\n rows,\n rowKey,\n searchText,\n filters = [],\n defaultSort,\n pageSize = 8,\n emptyIcon,\n labels = {},\n className,\n ...props\n}: List01Props<Row>) {\n const id = useId();\n const [query, setQuery] = useState(\"\");\n const [chosen, setChosen] = useState<Record<string, string>>({});\n const [sort, setSort] = useState<TableSort | undefined>(defaultSort);\n const [page, setPage] = useState(1);\n\n const text = query.trim().toLowerCase();\n const matching = rows.filter(\n (row) =>\n filters.every((filter) => (chosen[filter.id] ?? \"all\") === \"all\" || filter.value(row) === chosen[filter.id]) &&\n (!text || !searchText || searchText(row).some((field) => field.toLowerCase().includes(text))),\n );\n\n // The table only shows arrows (manualSort): sorting happens here, before the rows are split into pages.\n const sorted = [...matching];\n if (sort) {\n const column = columns.find((entry) => entry.key === sort.key);\n const valueOf = (row: Row) => (column?.sortValue ? column.sortValue(row) : (row as Record<string, unknown>)[sort.key]);\n sorted.sort((a, b) => compare(valueOf(a), valueOf(b)));\n if (sort.direction === \"descending\") sorted.reverse();\n }\n\n const pageCount = Math.max(1, Math.ceil(sorted.length / pageSize));\n const current = Math.min(page, pageCount);\n const shown = sorted.slice((current - 1) * pageSize, current * pageSize);\n const first = sorted.length ? (current - 1) * pageSize + 1 : 0;\n\n const clear = () => {\n setQuery(\"\");\n setChosen({});\n setPage(1);\n };\n\n const caption = labels.caption ?? (typeof title === \"string\" ? title : \"Rows\");\n\n return (\n <section className={cx(\"ow-list01\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-list01__inner\">\n <div className=\"ow-list01__header\">\n <div>\n <Text as=\"h2\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-list01__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-list01__card\" {...hiddenColumns(columns)}>\n <div className=\"ow-list01__toolbar\">\n {searchText ? (\n <SearchField\n className=\"ow-list01__search\"\n size=\"sm\"\n placeholder={labels.searchPlaceholder ?? \"Search\"}\n aria-label={labels.search ?? \"Search\"}\n value={query}\n onChange={(value) => {\n setQuery(value);\n setPage(1);\n }}\n />\n ) : null}\n {filters.map((filter) => (\n <Select\n key={filter.id}\n className=\"ow-list01__select\"\n size=\"sm\"\n aria-label={filter.label}\n value={chosen[filter.id] ?? \"all\"}\n onChange={(value) => {\n setChosen((current) => ({ ...current, [filter.id]: value }));\n setPage(1);\n }}\n options={[{ value: \"all\", label: filter.allLabel }, ...filter.options]}\n />\n ))}\n <Text variant=\"caption\" className=\"ow-list01__count\" aria-live=\"polite\">\n {labels.count\n ? labels.count(matching.length, rows.length)\n : matching.length === rows.length\n ? `${rows.length} rows`\n : `${matching.length} of ${rows.length} rows`}\n </Text>\n </div>\n\n <Table\n variant=\"plain\"\n caption={caption}\n hideCaption\n columns={columns}\n rows={shown}\n rowKey={rowKey}\n sort={sort}\n onSortChange={(next) => {\n setSort(next);\n setPage(1);\n }}\n manualSort\n emptyContent={\n <EmptyState\n className=\"ow-list01__empty\"\n icon={emptyIcon ?? <SearchXIcon size={20} />}\n title={labels.emptyTitle ?? \"Nothing matches\"}\n description={\n labels.emptyDescription?.(query.trim()) ??\n (text ? `Nothing matches \u201C${query.trim()}\u201D with these filters.` : \"Nothing matches these filters.\")\n }\n actions={<Button onClick={clear}>{labels.clearAll ?? \"Clear search and filters\"}</Button>}\n />\n }\n />\n\n {sorted.length ? (\n <div className=\"ow-list01__footer\">\n <Text variant=\"caption\" className=\"ow-list01__range\">\n {first}\u2013{first + shown.length - 1} of {sorted.length}\n </Text>\n {pageCount > 1 ? (\n <Pagination size=\"sm\" page={current} pageCount={pageCount} onPageChange={setPage} label={labels.pages ?? \"Pages\"} />\n ) : null}\n </div>\n ) : null}\n </Card>\n </div>\n </section>\n );\n}\n", "import { useId, useState, type Key } from \"react\";\n\nimport { Button, Card, cx, Menu, MenuLabel, Table, Text, Tooltip } from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { ChevronDownIcon, XIcon } from \"@blocks/shared/icons\";\nimport { hiddenColumns } from \"@blocks/shared/tableColumns\";\nimport type { List02Props } from \"./List02.types\";\n\n/** A table with checkboxes. Once rows are selected, a bar takes over the card's header with what can be done to all of them. */\nexport function List02<Row extends object>({\n title,\n description,\n primaryAction,\n columns,\n rows,\n rowKey,\n rowLabel,\n defaultSort,\n selectedKeys,\n defaultSelectedKeys = [],\n onSelectionChange,\n bulkActions,\n summary,\n hint,\n labels = {},\n className,\n ...props\n}: List02Props<Row>) {\n const id = useId();\n const [ownSelection, setOwnSelection] = useState<Key[]>(defaultSelectedKeys);\n const selected = selectedKeys ?? ownSelection;\n const select = (keys: Key[]) => {\n if (selectedKeys === undefined) setOwnSelection(keys);\n onSelectionChange?.(keys);\n };\n\n const keyOf = (row: Row): Key => (typeof rowKey === \"function\" ? rowKey(row) : ((row as Record<string, unknown>)[(rowKey ?? \"id\") as string] as Key));\n const chosen = rows.filter((row) => selected.includes(keyOf(row)));\n const actions = chosen.length && bulkActions ? bulkActions(chosen) : [];\n const caption = labels.caption ?? (typeof title === \"string\" ? title : \"Rows\");\n const clearLabel = labels.clearSelection ?? \"Clear selection\";\n\n return (\n <section className={cx(\"ow-list02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-list02__inner\">\n <div className=\"ow-list02__header\">\n <div>\n <Text as=\"h2\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-list02__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-list02__card\" {...hiddenColumns(columns, 1)}>\n {chosen.length ? (\n <div className=\"ow-list02__bar\" role=\"region\" aria-label={labels.bar ?? \"Selected rows\"}>\n <Text variant=\"label\" tone=\"primary\" className=\"ow-list02__selected\" aria-live=\"polite\">\n {labels.selected ? labels.selected(chosen.length) : <>{chosen.length} selected</>}\n </Text>\n <div className=\"ow-list02__actions\">\n {actions.map((action, index) =>\n action.menu ? (\n <Menu\n key={index}\n label={typeof action.label === \"string\" ? action.label : \"Actions\"}\n trigger={\n <Button size=\"sm\" endIcon={<ChevronDownIcon size={14} />} disabled={action.disabled}>\n {action.label}\n </Button>\n }\n >\n {action.menuHeading ? <MenuLabel>{action.menuHeading}</MenuLabel> : null}\n <BlockMenuItems items={action.menu} />\n </Menu>\n ) : (\n <Button\n key={index}\n size=\"sm\"\n variant={action.variant === \"danger\" ? \"danger\" : undefined}\n startIcon={action.icon}\n loading={action.loading}\n disabled={action.disabled}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ),\n )}\n </div>\n <span className=\"ow-list02__clear\">\n <Tooltip label={clearLabel}>\n <Button size=\"sm\" variant=\"ghost\" iconOnly aria-label={clearLabel} onClick={() => select([])}>\n <XIcon size={16} />\n </Button>\n </Tooltip>\n </span>\n </div>\n ) : (\n <div className=\"ow-list02__top\">\n {summary}\n {hint ? (\n <Text variant=\"caption\" className=\"ow-list02__hint\">\n {hint}\n </Text>\n ) : null}\n </div>\n )}\n\n <Table\n variant=\"plain\"\n caption={caption}\n hideCaption\n columns={columns}\n rows={rows}\n rowKey={rowKey}\n selectionMode=\"multiple\"\n selectedKeys={selected}\n onSelectionChange={select}\n rowLabel={rowLabel}\n defaultSort={defaultSort}\n />\n </Card>\n </div>\n </section>\n );\n}\n", "import { useId } from \"react\";\n\nimport { Badge, Button, Card, cx, Menu, Text } from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { EllipsisIcon } from \"@blocks/shared/icons\";\nimport type { List03Props } from \"./List03.types\";\n\n/** Rows of a title, one line of detail and a status, each with its actions in a menu at its end. On phones the status moves under the detail. */\nexport function List03({ title, description, primaryAction, items, footnote, labels = {}, className, ...props }: List03Props) {\n const id = useId();\n return (\n <section className={cx(\"ow-list03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-list03__inner\">\n <div className=\"ow-list03__header\">\n <div>\n <Text as=\"h2\" variant=\"heading\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-list03__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {primaryAction ? (\n <Button\n variant=\"primary\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n\n <Card padding=\"none\" className=\"ow-list03__card\">\n <ul className=\"ow-list03__list\">\n {items.map((item) => (\n <li key={item.id} className=\"ow-list03__row\" data-inactive={item.inactive || undefined}>\n {item.icon ? (\n <span className=\"ow-list03__icon\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : null}\n <span className=\"ow-list03__text\">\n <span className=\"ow-list03__name-row\">\n <Text as=\"span\" variant=\"label\" tone={item.inactive ? \"muted\" : undefined} truncate>\n {item.title}\n </Text>\n {item.code !== undefined ? (\n <Text as=\"span\" variant=\"code\" tone=\"muted\" className=\"ow-list03__key\">\n {item.code}\n </Text>\n ) : null}\n </span>\n {item.detail !== undefined ? (\n <Text variant=\"caption\" className=\"ow-list03__detail\">\n {item.detail}\n </Text>\n ) : null}\n </span>\n {item.status ? (\n <span className=\"ow-list03__status\">\n <Badge size=\"sm\" variant={item.status.tone ?? \"neutral\"}>\n {item.status.label}\n </Badge>\n </span>\n ) : null}\n {item.menu?.length ? (\n <span className=\"ow-list03__menu\">\n <Menu\n label={labels.menu?.(item.title) ?? `${item.title} actions`}\n align=\"end\"\n trigger={\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.actions?.(item.title) ?? `Actions for ${item.title}`}\n >\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <BlockMenuItems items={item.menu} />\n </Menu>\n </span>\n ) : null}\n </li>\n ))}\n </ul>\n </Card>\n\n {footnote ? (\n <Text as=\"p\" variant=\"caption\">\n {footnote}\n </Text>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Avatar, AvatarGroup, Badge, Button, Card, cx, EmptyState, Menu, SearchField, Text } from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { EllipsisIcon, SearchXIcon, StarIcon } from \"@blocks/shared/icons\";\nimport type { List04Props } from \"./List04.types\";\n\n/** A grid of cards, each with a tile, a name, a line about it, its status and its people, and a menu of actions. A search field narrows them. */\nexport function List04({ title, count, description, primaryAction, items, searchable = true, emptyIcon, labels = {}, className, ...props }: List04Props) {\n const id = useId();\n const [query, setQuery] = useState(\"\");\n\n const text = query.trim().toLowerCase();\n const shown = items.filter((item) => {\n const words = item.searchText ?? [item.title, ...(typeof item.description === \"string\" ? [item.description] : [])];\n return !text || words.some((word) => word.toLowerCase().includes(text));\n });\n const searchLabel = labels.search ?? \"Search\";\n\n return (\n <section className={cx(\"ow-list04\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-list04__inner\">\n <div className=\"ow-list04__header\">\n <div>\n <Text as=\"h2\" variant=\"heading\" id={`${id}-title`}>\n {title}\n {count !== undefined ? (\n <Text as=\"span\" variant=\"heading\" tone=\"muted\" className=\"ow-list04__count\">\n {count}\n </Text>\n ) : null}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-list04__lead\">\n {description}\n </Text>\n ) : null}\n </div>\n {searchable || primaryAction ? (\n <div className=\"ow-list04__tools\">\n {searchable ? (\n <SearchField\n className=\"ow-list04__search\"\n size=\"sm\"\n placeholder={searchLabel}\n aria-label={searchLabel}\n value={query}\n onChange={setQuery}\n />\n ) : null}\n {primaryAction ? (\n <Button\n variant=\"primary\"\n size=\"sm\"\n startIcon={primaryAction.icon}\n loading={primaryAction.loading}\n disabled={primaryAction.disabled}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </Button>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {shown.length ? (\n <ul className=\"ow-list04__grid\">\n {shown.map((item) => (\n <li key={item.id}>\n <Card padding=\"none\" role=\"article\" className=\"ow-list04__card\" aria-labelledby={`${id}-${item.id}`}>\n <div className=\"ow-list04__top\">\n {item.icon ? (\n <span className=\"ow-list04__tile\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : null}\n <div className=\"ow-list04__names\">\n <Text as=\"h3\" variant=\"card-title\" id={`${id}-${item.id}`} className=\"ow-list04__name\">\n <span className=\"ow-list04__name-text\">{item.title}</span>\n {item.pinned ? (\n <span className=\"ow-list04__star\" role=\"img\" aria-label={labels.pinned ?? \"Pinned\"}>\n <StarIcon size={13} />\n </span>\n ) : null}\n </Text>\n {item.subtitle !== undefined ? (\n <Text as=\"span\" variant=\"code\" tone=\"muted\" truncate className=\"ow-list04__repo\">\n {item.subtitle}\n </Text>\n ) : null}\n </div>\n {item.menu?.length ? (\n <Menu\n label={labels.menu?.(item.title) ?? `${item.title} actions`}\n align=\"end\"\n trigger={\n <Button\n variant=\"ghost\"\n size=\"sm\"\n iconOnly\n aria-label={labels.actions?.(item.title) ?? `Actions for ${item.title}`}\n >\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n <BlockMenuItems items={item.menu} />\n </Menu>\n ) : null}\n </div>\n\n {item.description ? (\n <Text variant=\"copy\" tone=\"soft\" className=\"ow-list04__description\">\n {item.description}\n </Text>\n ) : null}\n\n <div className=\"ow-list04__foot\">\n {item.status ? (\n <Badge size=\"sm\" variant={item.status.tone ?? \"neutral\"}>\n {item.status.label}\n </Badge>\n ) : null}\n <Text variant=\"caption\" truncate className=\"ow-list04__when\">\n {item.meta}\n </Text>\n {item.members?.length ? (\n <AvatarGroup\n size=\"sm\"\n max={3}\n label={labels.members?.(item.members.length, item.title) ?? `${item.members.length} people on ${item.title}`}\n >\n {item.members.map((name) => (\n <Avatar key={name} name={name} label={name} />\n ))}\n </AvatarGroup>\n ) : null}\n </div>\n </Card>\n </li>\n ))}\n </ul>\n ) : (\n <EmptyState\n bordered\n icon={emptyIcon ?? <SearchXIcon size={20} />}\n title={items.length ? (labels.emptyTitle ?? \"Nothing matches\") : (labels.noItemsTitle ?? \"Nothing here yet\")}\n description={\n items.length\n ? (labels.emptyDescription?.(query.trim()) ?? `Nothing is called \u201C${query.trim()}\u201D, and no description mentions it.`)\n : labels.noItemsDescription\n }\n actions={items.length ? <Button onClick={() => setQuery(\"\")}>{labels.clearSearch ?? \"Clear search\"}</Button> : undefined}\n />\n )}\n </div>\n </section>\n );\n}\n", "import { useId, useRef, useState } from \"react\";\n\nimport {\n Avatar,\n Button,\n ChatAgentAvatar,\n ChatConversation,\n ChatLoader,\n ChatMessage,\n ChatMessageActions,\n cx,\n EmptyState,\n Kbd,\n Menu,\n MenuLabel,\n PromptInput,\n PromptSuggestion,\n PromptSuggestions,\n Prose,\n Text,\n type ChatConversationHandle,\n} from \"@openwarelabs/ui\";\n\nimport { BlockMenuItems } from \"@blocks/shared/BlockMenuItems\";\nimport { EllipsisIcon, SquarePenIcon } from \"@blocks/shared/icons\";\nimport type { Chat01Props } from \"./Chat01.types\";\n\n/**\n * A chat with an agent that fills its frame: a header with the chat's name, then the messages, which scroll and keep\n * the reply box docked below them. The person's messages can be copied and edited; the agent's copied and rated.\n */\nexport function Chat01({\n title,\n context,\n messages,\n user,\n agentName = \"Agent\",\n day,\n thinking = false,\n onSend,\n onStop,\n onNewChat,\n onRate,\n menu,\n menuHeading,\n empty,\n draft: draftProp,\n onDraftChange,\n locale,\n labels = {},\n className,\n ...props\n}: Chat01Props) {\n const id = useId();\n const view = useRef<ChatConversationHandle>(null);\n const input = useRef<HTMLTextAreaElement>(null);\n const [ownDraft, setOwnDraft] = useState(\"\");\n const draft = draftProp ?? ownDraft;\n const setDraft = (text: string) => {\n setOwnDraft(text);\n onDraftChange?.(text);\n };\n\n const last = messages[messages.length - 1];\n const streaming = last?.status === \"streaming\";\n\n const send = (text: string) => {\n setDraft(\"\");\n onSend?.(text);\n view.current?.scrollToBottom();\n };\n\n const edit = (text: string) => {\n setDraft(text);\n input.current?.focus();\n };\n\n const newChat = () => {\n setDraft(\"\");\n onNewChat?.();\n input.current?.focus();\n };\n\n return (\n <div className={cx(\"ow-chat01\", className)} {...props}>\n <div className=\"ow-chat01__panel\">\n <header className=\"ow-chat01__header\">\n <ChatAgentAvatar size=\"lg\" />\n <div className=\"ow-chat01__heading\">\n <Text variant=\"card-title\" as=\"h1\" truncate id={`${id}-title`}>\n {title}\n </Text>\n {context ? (\n <Text variant=\"caption\" className=\"ow-chat01__context\">\n <span className=\"ow-chat01__context-dot\" aria-hidden=\"true\" />\n {context}\n </Text>\n ) : null}\n </div>\n {onNewChat ? (\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={labels.newChat ?? \"New chat\"} onClick={newChat}>\n <SquarePenIcon size={16} />\n </Button>\n ) : null}\n {menu?.length ? (\n <Menu\n label={labels.menu ?? \"Chat\"}\n align=\"end\"\n trigger={\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={labels.more ?? \"More\"}>\n <EllipsisIcon size={16} />\n </Button>\n }\n >\n {menuHeading ? <MenuLabel>{menuHeading}</MenuLabel> : null}\n <BlockMenuItems items={menu} />\n </Menu>\n ) : null}\n </header>\n\n <ChatConversation\n ref={view}\n aria-labelledby={`${id}-title`}\n empty={\n empty ? (\n <EmptyState\n icon={empty.icon}\n title={empty.title}\n description={empty.description}\n actions={\n empty.suggestions?.length ? (\n <PromptSuggestions align=\"center\" aria-label={labels.suggestions ?? \"Ideas to start from\"}>\n {empty.suggestions.map((suggestion) => (\n <PromptSuggestion key={suggestion.label} icon={suggestion.icon} onClick={() => edit(suggestion.label)}>\n {suggestion.label}\n </PromptSuggestion>\n ))}\n </PromptSuggestions>\n ) : undefined\n }\n />\n ) : undefined\n }\n footer={\n <PromptInput\n ref={input}\n value={draft}\n onChange={setDraft}\n onSubmit={send}\n isStreaming={thinking || streaming}\n onStop={onStop}\n placeholder={labels.placeholder ?? \"Reply to the agent\u2026\"}\n aria-label={labels.input ?? \"Reply to the agent\"}\n hint={\n labels.hint ?? (\n <>\n <Kbd>Enter</Kbd> to send, <Kbd>Shift</Kbd> + <Kbd>Enter</Kbd> for a new line\n </>\n )\n }\n />\n }\n >\n {messages.length && day ? <ChatMessage from=\"system\">{day}</ChatMessage> : null}\n {messages.map((message) =>\n message.from === \"user\" ? (\n <ChatMessage\n key={message.id}\n from=\"user\"\n name={user.name}\n avatar={<Avatar name={user.name} src={user.avatar} />}\n time={message.time}\n locale={locale}\n actions={<ChatMessageActions copyText={message.text} onEdit={() => edit(message.text)} />}\n >\n {message.text}\n </ChatMessage>\n ) : (\n <ChatMessage\n key={message.id}\n from=\"assistant\"\n name={agentName}\n time={message.time}\n locale={locale}\n status={message.status}\n showActions={message === last ? \"always\" : \"hover\"}\n actions={<ChatMessageActions copyText={message.text} onRate={(rating) => onRate?.(message, rating)} />}\n >\n {message.body ?? (\n <Prose size=\"sm\">\n <Text variant=\"copy\" tone=\"default\">\n {message.text}\n </Text>\n </Prose>\n )}\n </ChatMessage>\n ),\n )}\n {thinking ? <ChatLoader name={agentName} label={labels.thinking ?? \"Thinking\u2026\"} /> : null}\n </ChatConversation>\n </div>\n </div>\n );\n}\n", "import { useId, useRef, useState } from \"react\";\n\nimport { Button, cx, Kbd, Menu, MenuItem, MenuLabel, PromptInput, PromptSuggestion, PromptSuggestions, Text, type PromptAttachment } from \"@openwarelabs/ui\";\n\nimport { CheckIcon, ChevronDownIcon } from \"@blocks/shared/icons\";\nimport type { Chat02Picker, Chat02Props } from \"./Chat02.types\";\n\n/** A ghost button in the toolbar that opens a menu of choices, the chosen one ticked. */\nfunction Picker({ picker, value, onChange }: { picker: Chat02Picker; value: string; onChange(value: string): void }) {\n const chosen = picker.options.find((option) => option.value === value);\n const label = chosen?.label ?? value;\n return (\n <Menu\n label={picker.label}\n above\n width={260}\n trigger={\n <Button\n className=\"ow-chat02__picker\"\n variant=\"ghost\"\n size=\"sm\"\n startIcon={picker.icon}\n endIcon={<ChevronDownIcon size={14} />}\n aria-label={`${picker.label}: ${label}`}\n >\n {label}\n </Button>\n }\n >\n <MenuLabel>{picker.label}</MenuLabel>\n {picker.options.map((option) => (\n <MenuItem\n key={option.value}\n role=\"menuitemradio\"\n aria-checked={option.value === value}\n icon={option.value === value ? <CheckIcon size={15} /> : <span className=\"ow-chat02__tick-space\" />}\n onSelect={() => onChange(option.value)}\n >\n {option.description ? (\n <span className=\"ow-chat02__option\">\n {option.label}\n <Text variant=\"caption\">{option.description}</Text>\n </span>\n ) : (\n option.label\n )}\n </MenuItem>\n ))}\n </Menu>\n );\n}\n\n/**\n * A new-task page: a question, a growing box to answer it in with attachments and pickers for the project and the\n * model, and a few ideas to start from.\n */\nexport function Chat02({ title, description, pickers = [], defaultAttachments = [], suggestions, onSend, labels = {}, className, ...props }: Chat02Props) {\n const id = useId();\n const [text, setText] = useState(\"\");\n const [files, setFiles] = useState<PromptAttachment[]>(defaultAttachments);\n const [ownChoices, setOwnChoices] = useState<Record<string, string>>(() =>\n Object.fromEntries(pickers.map((picker) => [picker.id, picker.defaultValue ?? picker.options[0]?.value ?? \"\"])),\n );\n const input = useRef<HTMLTextAreaElement>(null);\n\n const choiceOf = (picker: Chat02Picker) => picker.value ?? ownChoices[picker.id] ?? \"\";\n const choose = (picker: Chat02Picker, value: string) => {\n setOwnChoices((current) => ({ ...current, [picker.id]: value }));\n picker.onChange?.(value);\n };\n\n const send = (task: string, attachments: PromptAttachment[]) => {\n onSend?.({ text: task, attachments, choices: Object.fromEntries(pickers.map((picker) => [picker.id, choiceOf(picker)])) });\n setText(\"\");\n setFiles([]);\n };\n\n const attach = (picked: File[]) =>\n setFiles((current) => [\n ...current,\n ...picked\n .filter((file) => !current.some((other) => other.name === file.name))\n .map((file) => ({ id: `${file.name}-${file.lastModified}`, name: file.name, type: file.type, size: file.size })),\n ]);\n\n return (\n <section className={cx(\"ow-chat02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-chat02__inner\">\n <Text variant=\"heading\" as=\"h2\" align=\"center\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" align=\"center\" className=\"ow-chat02__lead\">\n {description}\n </Text>\n ) : null}\n\n <PromptInput\n ref={input}\n className=\"ow-chat02__input\"\n value={text}\n onChange={setText}\n onSubmit={send}\n minRows={2}\n maxRows={10}\n placeholder={labels.placeholder ?? \"Describe the task\u2026\"}\n aria-label={labels.input ?? \"Task for the agent\"}\n attachments={files}\n onAttach={attach}\n onRemoveAttachment={(fileId) => setFiles((current) => current.filter((file) => file.id !== fileId))}\n startActions={\n pickers.length ? (\n <>\n {pickers.map((picker) => (\n <Picker key={picker.id} picker={picker} value={choiceOf(picker)} onChange={(value) => choose(picker, value)} />\n ))}\n </>\n ) : undefined\n }\n hint={\n labels.hint ?? (\n <>\n <Kbd>Enter</Kbd> to send, <Kbd>Shift</Kbd> + <Kbd>Enter</Kbd> for a new line. Drop or paste files to attach them.\n </>\n )\n }\n />\n\n {suggestions?.length ? (\n <PromptSuggestions className=\"ow-chat02__suggestions\" align=\"center\" aria-label={labels.suggestions ?? \"Ideas to start from\"}>\n {suggestions.map((suggestion) => (\n <PromptSuggestion\n key={suggestion.label}\n icon={suggestion.icon}\n onClick={() => {\n setText(suggestion.label);\n input.current?.focus();\n }}\n >\n {suggestion.label}\n </PromptSuggestion>\n ))}\n </PromptSuggestions>\n ) : null}\n </div>\n </section>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Badge, Button, ChainOfThought, ChatAgentAvatar, ChatSources, ChatTool, Code, cx, Text, VisuallyHidden, type BadgeVariant } from \"@openwarelabs/ui\";\n\nimport { ChevronRightIcon, CircleStopIcon, RotateCcwIcon } from \"@blocks/shared/icons\";\nimport type { Chat03File, Chat03Labels, Chat03Props, Chat03Status } from \"./Chat03.types\";\n\nconst formatElapsed = (seconds: number) => `${Math.floor(seconds / 60)}:${String(seconds % 60).padStart(2, \"0\")}`;\n\n/** Lines added and removed, in green and red, with words for screen readers. */\nfunction DiffCount({ added, removed, labels }: { added: number; removed: number; labels: Chat03Labels }) {\n return (\n <>\n <Text as=\"span\" variant=\"caption\" tone=\"success\">\n <span aria-hidden=\"true\">+{added}</span>\n <VisuallyHidden>{labels.linesAdded?.(added) ?? `${added} lines added,`}</VisuallyHidden>\n </Text>{\" \"}\n <Text as=\"span\" variant=\"caption\" tone=\"danger\">\n <span aria-hidden=\"true\">\u2212{removed}</span>\n <VisuallyHidden>{labels.linesRemoved?.(removed) ?? `${removed} removed`}</VisuallyHidden>\n </Text>\n </>\n );\n}\n\n/** The files a call changed, each opening to its diff. */\nfunction Files({ files, open, onToggle, labels }: { files: Chat03File[]; open: string[]; onToggle(path: string): void; labels: Chat03Labels }) {\n return (\n <ul className=\"ow-chat03__files\" aria-label={labels.files ?? \"Files changed\"}>\n {files.map((file) => {\n const expanded = open.includes(file.path);\n return (\n <li key={file.path} className=\"ow-chat03__file\">\n <Button\n variant=\"ghost\"\n size=\"sm\"\n fullWidth\n className=\"ow-chat03__file-button\"\n aria-expanded={expanded}\n startIcon={<ChevronRightIcon size={14} />}\n onClick={() => onToggle(file.path)}\n >\n <Text variant=\"code\" tone=\"default\" truncate className=\"ow-chat03__path\">\n {file.path}\n </Text>\n <DiffCount added={file.added} removed={file.removed} labels={labels} />\n </Button>\n {expanded ? (\n <Text\n as=\"pre\"\n variant=\"code\"\n className=\"ow-chat03__diff\"\n tabIndex={0}\n aria-label={labels.diff?.(file.path) ?? `Changes to ${file.path}`}\n >\n {file.diff.map((line, index) => {\n const kind = line.startsWith(\"@@\") ? \"hunk\" : line[0] === \"+\" ? \"add\" : line[0] === \"-\" ? \"remove\" : \"context\";\n const sign = kind === \"add\" ? \"+\" : kind === \"remove\" ? \"\u2212\" : \"\";\n return (\n <span key={index} className={`ow-chat03__line ow-chat03__line--${kind}`} data-sign={sign}>\n {kind === \"hunk\" ? line : line.slice(1)}\n {\"\\n\"}\n </span>\n );\n })}\n </Text>\n ) : null}\n </li>\n );\n })}\n </ul>\n );\n}\n\nconst badgeTone: Record<Chat03Status, BadgeVariant> = { running: \"active\", waiting: \"warning\", stopped: \"neutral\", done: \"success\" };\nconst badgeLabel: Record<Chat03Status, string> = { running: \"Running\", waiting: \"Needs approval\", stopped: \"Stopped\", done: \"Done\" };\n\n/**\n * One agent run: what it's working on at the top, with its status, a clock and Stop; its reasoning, sources and\n * tool calls below as they happen, each call opening to its input, output and the diffs of the files it changed.\n */\nexport function Chat03({\n title,\n project,\n branch,\n byline,\n status,\n elapsed,\n onStop,\n onRestart,\n reasoning,\n sources,\n steps,\n summary,\n labels = {},\n className,\n ...props\n}: Chat03Props) {\n const id = useId();\n const [open, setOpen] = useState<string[]>(() => steps.flatMap((step) => step.tool?.files ?? []).flatMap((file) => (file.defaultOpen ? [file.path] : [])));\n const toggleFile = (path: string) => setOpen((paths) => (paths.includes(path) ? paths.filter((other) => other !== path) : [...paths, path]));\n const working = status === \"running\" || status === \"waiting\";\n\n return (\n <section className={cx(\"ow-chat03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-chat03__panel\">\n <header className=\"ow-chat03__header\">\n <ChatAgentAvatar size=\"lg\" />\n <div className=\"ow-chat03__heading\">\n <Text variant=\"card-title\" as=\"h2\" id={`${id}-title`}>\n {title}\n </Text>\n {project !== undefined || branch !== undefined || byline !== undefined ? (\n <Text variant=\"caption\" as=\"p\" className=\"ow-chat03__meta\">\n {project !== undefined ? <span>{project}</span> : null}\n {project !== undefined && branch !== undefined ? (\n <span className=\"ow-chat03__meta-sep\" aria-hidden=\"true\">\n /\n </span>\n ) : null}\n {branch !== undefined ? <Code>{branch}</Code> : null}\n {byline !== undefined && (project !== undefined || branch !== undefined) ? (\n <span className=\"ow-chat03__meta-sep ow-chat03__meta-sep--dot\" aria-hidden=\"true\">\n \u00B7\n </span>\n ) : null}\n {byline !== undefined ? <span>{byline}</span> : null}\n </Text>\n ) : null}\n </div>\n <div className=\"ow-chat03__controls\">\n <Badge size=\"sm\" variant={badgeTone[status]} role=\"status\">\n {labels[status] ?? badgeLabel[status]}\n </Badge>\n {elapsed !== undefined ? (\n <Text variant=\"caption\" className=\"ow-chat03__elapsed\">\n <VisuallyHidden>{labels.elapsed ?? \"Time taken: \"}</VisuallyHidden>\n {formatElapsed(elapsed)}\n </Text>\n ) : null}\n {working ? (\n <Button size=\"sm\" startIcon={<CircleStopIcon size={16} />} onClick={onStop}>\n {labels.stop ?? \"Stop\"}\n </Button>\n ) : (\n <Button size=\"sm\" startIcon={<RotateCcwIcon size={16} />} onClick={onRestart}>\n {labels.runAgain ?? \"Run again\"}\n </Button>\n )}\n </div>\n </header>\n\n <div className=\"ow-chat03__body\">\n {reasoning ? (\n <ChainOfThought duration={reasoning.duration} defaultExpanded={reasoning.defaultExpanded ?? true} steps={reasoning.steps}>\n {reasoning.text}\n </ChainOfThought>\n ) : null}\n\n {sources?.length ? <ChatSources sources={sources} /> : null}\n\n <ol className=\"ow-chat03__steps\" aria-label={labels.steps ?? \"Steps\"}>\n {steps.map((step) => {\n const tool = step.tool;\n if (!tool) {\n return (\n <li key={step.id}>\n <Text variant=\"copy\" className=\"ow-chat03__note\">\n {step.note}\n </Text>\n </li>\n );\n }\n const { files, summary: toolSummary, output, ...rest } = tool;\n const added = files?.reduce((sum, file) => sum + file.added, 0) ?? 0;\n const removed = files?.reduce((sum, file) => sum + file.removed, 0) ?? 0;\n return (\n <li key={step.id}>\n <ChatTool\n {...rest}\n summary={toolSummary ?? (files?.length ? <DiffCount added={added} removed={removed} labels={labels} /> : undefined)}\n output={files?.length ? <Files files={files} open={open} onToggle={toggleFile} labels={labels} /> : output}\n />\n </li>\n );\n })}\n </ol>\n\n {summary && !working ? <div className=\"ow-chat03__summary\">{summary}</div> : null}\n </div>\n </div>\n </section>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Badge, Button, ChoiceCard, cx, Dialog, EmptyState, Field, Input, Separator, Text, toast } from \"@openwarelabs/ui\";\n\nimport { PlusIcon } from \"@blocks/shared/icons\";\nimport type { Empty01Item, Empty01Props } from \"./Empty01.types\";\n\nconst slug = /^[a-z0-9]+(-[a-z0-9]+)*$/;\n\n/** A first-run page: what will be here, the button that makes the first one, and other ways to start. */\nexport function Empty01({\n title,\n description,\n icon,\n emptyTitle,\n emptyDescription,\n ways = [],\n defaultItems = [],\n onCreate,\n onRemove,\n namePattern = slug,\n labels = {},\n className,\n ...props\n}: Empty01Props) {\n const [items, setItems] = useState<Empty01Item[]>(defaultItems);\n const [open, setOpen] = useState(false);\n // The way picked, or null for the main button.\n const [wayId, setWayId] = useState<string | null>(null);\n const [name, setName] = useState(\"\");\n const [error, setError] = useState(\"\");\n\n const way = ways.find((entry) => entry.id === wayId);\n const createLabel = labels.create ?? \"Create project\";\n\n const start = (next: string | null) => {\n setWayId(next);\n setOpen(true);\n setName(\"\");\n setError(\"\");\n };\n\n const create = () => {\n const value = name.trim();\n if (!value) return setError(labels.nameRequired ?? \"Give the project a name.\");\n if (!namePattern.test(value)) return setError(labels.nameInvalid ?? \"Use only lowercase letters, numbers and dashes.\");\n if (items.some((item) => item.name === value))\n return setError(labels.nameTaken ? labels.nameTaken(value) : `There's already a project called ${value}.`);\n const item: Empty01Item = { name: value, source: way ? way.source : (labels.blankSource ?? \"Blank project\"), way: way?.id };\n setItems((list) => [...list, item]);\n setOpen(false);\n onCreate?.(item);\n toast.success(labels.created ? labels.created(value) : `Created ${value}`, {\n action: {\n label: labels.undo ?? \"Undo\",\n onClick: () => {\n setItems((list) => list.filter((entry) => entry.name !== value));\n onRemove?.(item);\n },\n },\n });\n };\n\n return (\n <div className={cx(\"ow-empty01\", className)} {...props}>\n <main className=\"ow-empty01__panel\">\n <div className=\"ow-empty01__header\">\n <div>\n <Text variant=\"heading\" as=\"h2\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-empty01__subtitle\">\n {description}\n </Text>\n ) : null}\n </div>\n {items.length > 0 ? (\n <Button variant=\"primary\" startIcon={<PlusIcon size={16} />} onClick={() => start(null)}>\n {labels.newItem ?? \"New project\"}\n </Button>\n ) : null}\n </div>\n\n {items.length === 0 ? (\n <div className=\"ow-empty01__area\">\n <EmptyState\n icon={icon}\n title={emptyTitle}\n description={emptyDescription}\n actions={\n <Button variant=\"primary\" startIcon={<PlusIcon size={16} />} onClick={() => start(null)}>\n {createLabel}\n </Button>\n }\n />\n {ways.length ? (\n <div className=\"ow-empty01__ways\">\n <Separator label={labels.otherWays ?? \"or start another way\"} spacing=\"2xl\" />\n <div className=\"ow-empty01__choices\">\n {ways.map((entry) => (\n <ChoiceCard\n key={entry.id}\n icon={entry.icon}\n title={entry.title}\n description={entry.description}\n recommended={entry.recommended}\n onClick={() => start(entry.id)}\n />\n ))}\n </div>\n </div>\n ) : null}\n </div>\n ) : (\n <ul className=\"ow-empty01__list\" aria-label={labels.list ?? \"Projects\"}>\n {items.map((item) => (\n <li key={item.name} className=\"ow-empty01__row\">\n <span className=\"ow-empty01__dot\" aria-hidden=\"true\" />\n <span className=\"ow-empty01__name\">\n <Text variant=\"label\" truncate>\n {item.name}\n </Text>\n {item.source ? <Text variant=\"caption\">{item.source}</Text> : null}\n </span>\n <Text variant=\"caption\" className=\"ow-empty01__when\">\n {labels.createdJustNow ?? \"Created just now\"}\n </Text>\n <Badge size=\"sm\" variant=\"active\">\n {labels.newBadge ?? \"New\"}\n </Badge>\n </li>\n ))}\n </ul>\n )}\n </main>\n\n <Dialog\n open={open}\n onClose={() => setOpen(false)}\n title={way ? (way.dialogTitle ?? way.title) : (labels.dialogTitle ?? \"Create a project\")}\n description={way ? way.dialogDescription : (labels.dialogDescription ?? \"An empty project. Connect a repository to it whenever you're ready.\")}\n onSubmit={create}\n actions={\n <>\n <Button onClick={() => setOpen(false)}>{labels.cancel ?? \"Cancel\"}</Button>\n <Button type=\"submit\" variant=\"primary\">\n {way ? (labels.continue ?? \"Continue\") : createLabel}\n </Button>\n </>\n }\n >\n <Field\n label={labels.name ?? \"Project name\"}\n hint={error ? undefined : (labels.nameHint ?? \"Lowercase letters, numbers and dashes.\")}\n error={error || undefined}\n >\n <Input\n autoFocus\n placeholder={labels.placeholder ?? \"billing-api\"}\n value={name}\n onChange={(event) => {\n setName(event.target.value);\n if (error) setError(\"\");\n }}\n />\n </Field>\n </Dialog>\n </div>\n );\n}\n", "import { Fragment, useState } from \"react\";\n\nimport { Button, cx, EmptyState, Menu, MenuItem, MenuLabel, MenuSeparator, SearchField, Table, Tag, TagGroup, Text } from \"@openwarelabs/ui\";\n\nimport { ListFilterIcon, SearchXIcon } from \"@blocks/shared/icons\";\nimport type { Empty02Props } from \"./Empty02.types\";\n\n/** A searchable, filterable table that says what was looked for when nothing matches, with the ways back. */\nexport function Empty02<Row extends object>({\n title,\n description,\n columns,\n rows,\n rowKey,\n searchText,\n filters = [],\n defaultQuery = \"\",\n defaultFilters = {},\n onQueryChange,\n onFiltersChange,\n emptyTitle,\n emptyDescription,\n labels = {},\n className,\n ...props\n}: Empty02Props<Row>) {\n const [query, setQuery] = useState(defaultQuery);\n const [active, setActive] = useState<Record<string, string>>(defaultFilters);\n\n const changeQuery = (value: string) => {\n setQuery(value);\n onQueryChange?.(value);\n };\n const changeFilters = (next: Record<string, string>) => {\n setActive(next);\n onFiltersChange?.(next);\n };\n const setFilter = (key: string, value: string) => changeFilters({ ...active, [key]: value });\n const removeFilter = (key: string) => {\n const { [key]: _removed, ...rest } = active;\n changeFilters(rest);\n };\n\n const words = query.trim().toLowerCase().split(/\\s+/).filter(Boolean);\n const on = filters.filter((filter) => active[filter.key] !== undefined);\n const shown = rows.filter(\n (row) => on.every((filter) => filter.value(row) === active[filter.key]) && words.every((word) => searchText(row).toLowerCase().includes(word)),\n );\n const filtered = on.length > 0;\n const searched = query.trim();\n const search = { query: searched, filters: Object.fromEntries(on.map((filter) => [filter.key, active[filter.key]!])) };\n\n const fallbackDescription =\n searched && filtered\n ? \"Try other words, or clear the filters to look wider.\"\n : searched\n ? \"Try fewer or different words.\"\n : \"Clear the filters to see them all.\";\n\n return (\n <div className={cx(\"ow-empty02\", className)} {...props}>\n <main className=\"ow-empty02__panel\">\n <Text variant=\"heading\" as=\"h2\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-empty02__subtitle\">\n {description}\n </Text>\n ) : null}\n\n <div className=\"ow-empty02__toolbar\">\n <div className=\"ow-empty02__search\">\n <SearchField\n size=\"sm\"\n aria-label={labels.search ?? \"Search\"}\n placeholder={labels.search ?? \"Search\"}\n value={query}\n onChange={changeQuery}\n />\n </div>\n <TagGroup label={labels.filters ?? \"Filters\"}>\n {on.map((filter) => (\n <Tag\n key={filter.key}\n variant=\"active\"\n onRemove={() => removeFilter(filter.key)}\n removeLabel={\n labels.removeFilter\n ? labels.removeFilter(filter.label, active[filter.key]!)\n : `${filter.label.toLowerCase()} filter: ${active[filter.key]}`\n }\n >\n {`${filter.label}: `}\n {active[filter.key]}\n </Tag>\n ))}\n {filters.length ? (\n <Menu\n label={labels.filterMenu ?? \"Add a filter\"}\n trigger={\n <Button size=\"sm\" variant=\"ghost\" startIcon={<ListFilterIcon size={16} />}>\n {filtered ? (labels.filter ?? \"Filter\") : (labels.addFilter ?? \"Add filter\")}\n </Button>\n }\n >\n {filters.map((filter, index) => (\n <Fragment key={filter.key}>\n {index > 0 ? <MenuSeparator /> : null}\n <MenuLabel>{filter.label}</MenuLabel>\n {filter.options.map((value) => (\n <MenuItem key={value} onSelect={() => setFilter(filter.key, value)}>\n {value}\n </MenuItem>\n ))}\n </Fragment>\n ))}\n </Menu>\n ) : null}\n </TagGroup>\n <Text variant=\"caption\" className=\"ow-empty02__count\" aria-live=\"polite\">\n {labels.count ? labels.count(shown.length, rows.length) : `${shown.length} of ${rows.length}`}\n </Text>\n </div>\n\n <Table\n className=\"ow-empty02__table\"\n caption={title}\n hideCaption\n columns={columns}\n rows={shown}\n rowKey={rowKey}\n emptyContent={\n <EmptyState\n icon={<SearchXIcon size={20} />}\n title={emptyTitle ? emptyTitle(search) : searched ? `No results match \u201C${searched}\u201D` : \"No results match these filters\"}\n description={emptyDescription ? emptyDescription(search) : fallbackDescription}\n actions={\n <>\n {searched ? (\n <Button variant={filtered ? \"secondary\" : \"primary\"} onClick={() => changeQuery(\"\")}>\n {labels.clearSearch ?? \"Clear search\"}\n </Button>\n ) : null}\n {filtered ? (\n <Button variant=\"primary\" onClick={() => changeFilters({})}>\n {labels.clearFilters ?? \"Clear filters\"}\n </Button>\n ) : null}\n </>\n }\n />\n }\n />\n </main>\n </div>\n );\n}\n", "import { useId, useState } from \"react\";\n\nimport { Badge, Button, Code, cx, EmptyState, SegmentedControl, Spinner, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { CloudOffIcon, RotateCwIcon } from \"@blocks/shared/icons\";\nimport type { Empty03Props, Empty03Status } from \"./Empty03.types\";\n\n/** A card whose list couldn't load: what went wrong, a button to try again, and the list once it comes back. */\nexport function Empty03({\n title,\n description,\n cardTitle,\n views,\n items,\n status,\n defaultStatus = \"failed\",\n onRetry,\n errorIcon,\n errorTitle,\n errorDescription,\n errorDetail,\n secondaryAction,\n labels = {},\n className,\n ...props\n}: Empty03Props) {\n const id = useId();\n const [ownStatus, setOwnStatus] = useState<Empty03Status>(defaultStatus);\n const load = status ?? ownStatus;\n const [view, setView] = useState(views?.[0]?.value ?? \"\");\n\n const retry = async () => {\n setOwnStatus(\"loading\");\n try {\n await onRetry?.();\n setOwnStatus(\"loaded\");\n } catch {\n setOwnStatus(\"failed\");\n }\n };\n\n const match = views?.find((entry) => entry.value === view)?.match;\n const shown = match ? items.filter(match) : items;\n\n return (\n <div className={cx(\"ow-empty03\", className)} {...props}>\n <main className=\"ow-empty03__panel\">\n <div className=\"ow-empty03__header\">\n <div>\n <Text variant=\"heading\" as=\"h2\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-empty03__subtitle\">\n {description}\n </Text>\n ) : null}\n </div>\n </div>\n\n <section className=\"ow-empty03__card\" aria-labelledby={id} aria-busy={load === \"loading\"}>\n <div className=\"ow-empty03__card-head\">\n <Text variant=\"card-title\" as=\"h3\" id={id}>\n {cardTitle}\n </Text>\n {views?.length ? (\n <SegmentedControl\n size=\"sm\"\n aria-label={labels.views ?? \"Show\"}\n options={views.map(({ value, label }) => ({ value, label }))}\n value={view}\n onChange={setView}\n disabled={load !== \"loaded\"}\n />\n ) : null}\n </div>\n\n <div className={cx(\"ow-empty03__body\", load !== \"loaded\" && \"ow-empty03__body--waiting\")}>\n {load === \"failed\" ? (\n <EmptyState\n icon={errorIcon ?? <CloudOffIcon size={20} />}\n title={errorTitle}\n description={\n errorDetail ? (\n <>\n {errorDescription}\n <br />\n <Code className=\"ow-empty03__detail\">{errorDetail}</Code>\n </>\n ) : (\n errorDescription\n )\n }\n actions={\n <>\n <Button variant=\"primary\" startIcon={<RotateCwIcon size={16} />} onClick={retry}>\n {labels.retry ?? \"Try again\"}\n </Button>\n {secondaryAction ? <BlockActionButton action={secondaryAction} variant=\"secondary\" size=\"md\" shape=\"rounded\" /> : null}\n </>\n }\n />\n ) : null}\n\n {load === \"loading\" ? (\n <div className=\"ow-empty03__loading\" role=\"status\">\n <Spinner size=\"lg\" label=\"\" />\n <Text variant=\"copy\">{labels.loading ?? \"Loading\u2026\"}</Text>\n </div>\n ) : null}\n\n {load === \"loaded\" ? (\n <ul className=\"ow-empty03__runs\" aria-label={labels.list ?? (typeof cardTitle === \"string\" ? cardTitle : undefined)}>\n {shown.map((item, index) => (\n <li key={item.id ?? index} className=\"ow-empty03__run\">\n <span className=\"ow-empty03__agent\" aria-hidden=\"true\">\n {item.icon}\n </span>\n <span className=\"ow-empty03__run-text\">\n <Text variant=\"label\" truncate>\n {item.title}\n </Text>\n {item.meta ? (\n <Text variant=\"caption\" truncate>\n {item.meta}\n </Text>\n ) : null}\n </span>\n <Text variant=\"caption\" className=\"ow-empty03__run-time\">\n {item.time}\n </Text>\n {item.status ? (\n <Badge size=\"sm\" variant={item.status.tone}>\n {item.status.label}\n </Badge>\n ) : null}\n </li>\n ))}\n </ul>\n ) : null}\n </div>\n </section>\n </main>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { cx, DotGrid, Link, SearchField, Text } from \"@openwarelabs/ui\";\n\nimport type { ErrorPage01Props } from \"./ErrorPage01.types\";\n\n/** A 404 on the dot grid: the zero drawn as an empty orbit, a search field, and links to the main places. */\nexport function ErrorPage01({ brand, helpLink, title, description, places, maxPlaces = 4, onSearch, labels = {}, className, ...props }: ErrorPage01Props) {\n const [query, setQuery] = useState(\"\");\n const words = query.trim().toLowerCase();\n const matches = places\n .filter((place) => !words || `${place.name} ${place.description ?? \"\"} ${place.keywords ?? \"\"}`.toLowerCase().includes(words))\n .slice(0, maxPlaces);\n\n return (\n <div className={cx(\"ow-error-page01\", className)} {...props}>\n <DotGrid fade interactive className=\"ow-error-page01__ground\">\n <header className=\"ow-error-page01__bar\">\n <Link href={brand.href} variant=\"standalone\" className=\"ow-error-page01__logo\" aria-label={labels.home}>\n {brand.logo}\n <Text variant=\"card-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {helpLink ? (\n <Link href={helpLink.href} variant=\"standalone\">\n {helpLink.label}\n </Link>\n ) : null}\n </header>\n\n <main className=\"ow-error-page01__main\">\n <div className=\"ow-error-page01__code\" role=\"img\" aria-label={labels.code ?? \"Error 404\"}>\n <span aria-hidden=\"true\">4</span>\n <span className=\"ow-error-page01__zero\" aria-hidden=\"true\" />\n <span aria-hidden=\"true\">4</span>\n </div>\n <Text variant=\"heading\" as=\"h1\" className=\"ow-error-page01__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-error-page01__text\">\n {description}\n </Text>\n ) : null}\n\n <div className=\"ow-error-page01__search\">\n <SearchField\n aria-label={labels.search ?? \"Search\"}\n placeholder={labels.placeholder ?? \"Search\"}\n value={query}\n onChange={setQuery}\n onSubmit={(text) => {\n if (text.trim()) onSearch?.(text.trim());\n }}\n />\n </div>\n\n <ul className=\"ow-error-page01__places\" aria-label={labels.places ?? \"Places to go\"}>\n {matches.map((place) => (\n <li key={place.name}>\n <Link href={place.href} variant=\"standalone\" className=\"ow-error-page01__place\">\n <span className=\"ow-error-page01__place-icon\" aria-hidden=\"true\">\n {place.icon}\n </span>\n <span className=\"ow-error-page01__place-text\">\n <Text variant=\"label\">{place.name}</Text>\n {place.description ? (\n <Text variant=\"caption\" truncate className=\"ow-error-page01__place-description\">\n {place.description}\n </Text>\n ) : null}\n </span>\n </Link>\n </li>\n ))}\n {matches.length === 0 ? (\n <Text as=\"li\" variant=\"body\" tone=\"muted\" align=\"center\" className=\"ow-error-page01__none\" role=\"status\">\n {labels.noMatches ? labels.noMatches(query.trim()) : `Nothing here matches \u201C${query.trim()}\u201D. Press Enter to search.`}\n </Text>\n ) : null}\n </ul>\n </main>\n </DotGrid>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Badge, Button, CopyButton, cx, Link, Text } from \"@openwarelabs/ui\";\n\nimport { BlockActionButton } from \"@blocks/shared/BlockActions\";\nimport { RotateCwIcon } from \"@blocks/shared/icons\";\nimport type { ErrorPage02Props } from \"./ErrorPage02.types\";\n\nconst reload = () => window.location.reload();\n\n/** A 500: that it isn't their fault, a button to try again, and an error ID to send to support. */\nexport function ErrorPage02({\n brand,\n statusLink,\n badge,\n title,\n description,\n onRetry = reload,\n homeAction,\n report,\n errorId,\n visual,\n labels = {},\n className,\n ...props\n}: ErrorPage02Props) {\n const [retrying, setRetrying] = useState(false);\n const [tries, setTries] = useState(1);\n\n const tryAgain = async () => {\n setRetrying(true);\n try {\n await onRetry();\n } catch {\n // Still failing: the page stays, and counts the try.\n }\n setRetrying(false);\n setTries((count) => count + 1);\n };\n\n return (\n <div className={cx(\"ow-error-page02\", className)} {...props}>\n <header className=\"ow-error-page02__bar\">\n <Link href={brand.href} variant=\"standalone\" className=\"ow-error-page02__logo\" aria-label={labels.home}>\n {brand.logo}\n <Text variant=\"card-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {statusLink ? (\n <Link href={statusLink.href} variant=\"standalone\" className=\"ow-error-page02__status-link\">\n <span className=\"ow-error-page02__status-dot\" aria-hidden=\"true\" />\n {statusLink.label}\n </Link>\n ) : null}\n </header>\n\n <main className=\"ow-error-page02__main\">\n <div>\n {badge ? (\n <Badge size=\"sm\" variant=\"danger\">\n {badge}\n </Badge>\n ) : null}\n <Text variant=\"section-title\" as=\"h1\" className=\"ow-error-page02__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-error-page02__text\">\n {description}\n </Text>\n ) : null}\n <div className=\"ow-error-page02__actions\">\n <Button variant=\"primary\" startIcon={<RotateCwIcon size={16} />} loading={retrying} onClick={tryAgain}>\n {retrying ? (labels.retrying ?? \"Trying again\u2026\") : (labels.retry ?? \"Try again\")}\n </Button>\n {homeAction ? <BlockActionButton action={homeAction} variant=\"secondary\" size=\"md\" shape=\"rounded\" /> : null}\n </div>\n\n {report || errorId ? (\n <div className=\"ow-error-page02__report\">\n <Text variant=\"label\" as=\"p\">\n {labels.reportTitle ?? \"If it keeps happening\"}\n </Text>\n {report ? (\n <Text variant=\"copy\" className=\"ow-error-page02__report-text\">\n {report}\n {tries > 1 ? ` ${labels.tries ? labels.tries(tries) : `You've tried ${tries} times.`}` : \"\"}\n </Text>\n ) : null}\n {errorId ? (\n <div className=\"ow-error-page02__id\">\n <Text variant=\"caption\">{labels.errorId ?? \"Error ID\"}</Text>\n <Text variant=\"code\" truncate className=\"ow-error-page02__id-value\">\n {errorId}\n </Text>\n <CopyButton value={errorId} label={labels.copy ?? \"Copy ID\"} />\n </div>\n ) : null}\n </div>\n ) : null}\n </div>\n\n {visual ? <div className=\"ow-error-page02__visual\">{visual}</div> : null}\n </main>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Badge, Button, cx, DotGrid, Link, Steps, Text } from \"@openwarelabs/ui\";\n\nimport { ArrowUpRightIcon, BellRingIcon, CheckIcon, ClockIcon, RotateCwIcon } from \"@blocks/shared/icons\";\nimport type { ErrorPage03Props } from \"./ErrorPage03.types\";\n\nconst reload = () => window.location.reload();\n\n/** A maintenance page: when it'll be back, how the work is going, and a way to hear when it's done. */\nexport function ErrorPage03({\n brand,\n statusLink,\n badge,\n title,\n description,\n backTime,\n backDetail,\n onCheckAgain = reload,\n onNotify,\n steps,\n currentStep = 0,\n labels = {},\n className,\n ...props\n}: ErrorPage03Props) {\n const [checking, setChecking] = useState(false);\n const [notified, setNotified] = useState(false);\n\n const checkAgain = async () => {\n setChecking(true);\n try {\n await onCheckAgain();\n } catch {\n // Still under way: the page stays.\n }\n setChecking(false);\n };\n\n return (\n <div className={cx(\"ow-error-page03\", className)} {...props}>\n <DotGrid fade className=\"ow-error-page03__ground\">\n <header className=\"ow-error-page03__bar\">\n <Link href={brand.href} variant=\"standalone\" className=\"ow-error-page03__logo\" aria-label={labels.home}>\n {brand.logo}\n <Text variant=\"card-title\" as=\"span\">\n {brand.name}\n </Text>\n </Link>\n {statusLink ? (\n <Link href={statusLink.href} variant=\"standalone\" className=\"ow-error-page03__status\">\n {statusLink.label}\n <ArrowUpRightIcon size={15} />\n </Link>\n ) : null}\n </header>\n\n <main className=\"ow-error-page03__main\">\n <div>\n {badge ? (\n <Badge size=\"sm\" variant=\"warning\">\n {badge}\n </Badge>\n ) : null}\n <Text variant=\"section-title\" as=\"h1\" className=\"ow-error-page03__title\">\n {title}\n </Text>\n {description ? (\n <Text variant=\"lead\" className=\"ow-error-page03__text\">\n {description}\n </Text>\n ) : null}\n\n {backTime ? (\n <div className=\"ow-error-page03__back\">\n <span className=\"ow-error-page03__clock\" aria-hidden=\"true\">\n <ClockIcon size={20} />\n </span>\n <div className=\"ow-error-page03__time\">\n <Text variant=\"heading\" as=\"p\" className=\"ow-error-page03__time-main\">\n {backTime}\n </Text>\n {backDetail ? <Text variant=\"copy\">{backDetail}</Text> : null}\n </div>\n </div>\n ) : null}\n\n <div className=\"ow-error-page03__actions\">\n <Button variant=\"primary\" startIcon={<RotateCwIcon size={16} />} loading={checking} onClick={checkAgain}>\n {labels.checkAgain ?? \"Check again\"}\n </Button>\n {onNotify ? (\n <Button\n startIcon={notified ? <CheckIcon size={16} /> : <BellRingIcon size={16} />}\n disabled={notified}\n onClick={() => {\n setNotified(true);\n onNotify();\n }}\n >\n {notified ? (labels.notified ?? \"We'll email you\") : (labels.notify ?? \"Email me when it's back\")}\n </Button>\n ) : null}\n </div>\n </div>\n\n {steps?.length ? (\n <div className=\"ow-error-page03__plan\">\n <Steps title={labels.steps ?? \"Maintenance plan\"} current={currentStep} items={steps} />\n </div>\n ) : null}\n </main>\n </DotGrid>\n </div>\n );\n}\n", "import { useState } from \"react\";\n\nimport { Avatar, Badge, Button, cx, Link, Popover, ScrollShadow, Tab, TabList, TabPanel, Tabs, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { BellIcon, CheckCheckIcon, SettingsIcon } from \"@blocks/shared/icons\";\nimport type { Notifications01Item, Notifications01ListProps, Notifications01Props } from \"./Notifications01.types\";\n\nfunction Sender({ item }: { item: Notifications01Item }) {\n if (item.icon) {\n return (\n <span className={cx(\"ow-notifications01__agent\", item.tone === \"danger\" && \"ow-notifications01__agent--danger\")} aria-hidden=\"true\">\n {item.icon}\n </span>\n );\n }\n return <Avatar name={item.from ?? \"\"} size=\"md\" />;\n}\n\nfunction NotificationList({ items, isUnread, onOpen, labels }: Notifications01ListProps) {\n if (!items.length) {\n return (\n <Text tone=\"muted\" align=\"center\" className=\"ow-notifications01__empty\">\n {labels.empty ?? \"Nothing here yet.\"}\n </Text>\n );\n }\n return (\n <ScrollShadow maxSize={320}>\n <ul className=\"ow-notifications01__list\">\n {items.map((item) => {\n const unread = isUnread(item);\n return (\n <li key={item.id}>\n {/* Each one opens the thing it's about; opening it marks it read. */}\n <Link\n href={item.href ?? \"#\"}\n variant=\"standalone\"\n className=\"ow-notifications01__item\"\n onClick={(event) => {\n if (item.href === undefined) event.preventDefault();\n onOpen(item);\n }}\n >\n {/* Named by what it shows, so voice control matches it; \"Unread\" is for screen readers only. */}\n {unread ? <VisuallyHidden>{labels.unread ?? \"Unread: \"}</VisuallyHidden> : null}\n <Sender item={item} />\n <span className=\"ow-notifications01__text\">\n <Text as=\"span\" tone=\"muted\">\n {item.message}\n </Text>\n {item.quote ? (\n <Text variant=\"caption\" tone=\"soft\" className=\"ow-notifications01__quote\">\n {item.quote}\n </Text>\n ) : null}\n <Text variant=\"caption\">\n {item.where} \u00B7 {item.when}\n </Text>\n </span>\n {unread ? <span className=\"ow-notifications01__unread\" /> : null}\n </Link>\n </li>\n );\n })}\n </ul>\n </ScrollShadow>\n );\n}\n\n/** A bell with the unread count that opens the latest notifications, in All and Mentions tabs, with Mark all as read. */\nexport function Notifications01({\n notifications,\n onOpen,\n onMarkAllRead,\n viewAllHref,\n onSettings,\n defaultOpen = false,\n labels = {},\n className,\n ...props\n}: Notifications01Props) {\n // The ones read here, on top of what came in already read.\n const [read, setRead] = useState<ReadonlySet<string>>(() => new Set());\n const [tab, setTab] = useState(\"all\");\n // Opened on load, it doesn't pull focus into it; once someone opens it, focus moves in.\n const [focusOnOpen, setFocusOnOpen] = useState(!defaultOpen);\n\n const isUnread = (item: Notifications01Item) => Boolean(item.unread) && !read.has(item.id);\n const unread = notifications.filter(isUnread).length;\n const mentions = notifications.filter((item) => item.mention);\n const unreadMentions = mentions.filter(isUnread).length;\n\n const open = (item: Notifications01Item) => {\n setRead((current) => new Set(current).add(item.id));\n onOpen?.(item);\n };\n const markAllRead = () => {\n setRead(new Set(notifications.map((item) => item.id)));\n onMarkAllRead?.();\n };\n\n const title = labels.title ?? \"Notifications\";\n\n return (\n <div className={cx(\"ow-notifications01\", className)} {...props}>\n <Popover\n defaultOpen={defaultOpen}\n autoFocus={focusOnOpen}\n onOpenChange={(isOpen) => isOpen || setFocusOnOpen(true)}\n placement=\"bottom-end\"\n width=\"min(400px, calc(100vw - 16px))\"\n aria-label={title}\n className=\"ow-notifications01__popover\"\n trigger={\n <Button\n className=\"ow-notifications01__bell\"\n variant=\"ghost\"\n iconOnly\n aria-label={labels.bell ? labels.bell(unread) : unread ? `Notifications, ${unread} unread` : \"Notifications\"}\n >\n <BellIcon size={18} />\n {unread ? (\n <Badge className=\"ow-notifications01__count\" size=\"sm\" variant=\"active\" aria-hidden=\"true\">\n {unread}\n </Badge>\n ) : null}\n </Button>\n }\n >\n <div className=\"ow-notifications01__head\">\n <Text variant=\"card-title\" as=\"h2\">\n {title}\n </Text>\n <Button variant=\"ghost\" size=\"sm\" startIcon={<CheckCheckIcon size={16} />} disabled={!unread} onClick={markAllRead}>\n {labels.markAllRead ?? \"Mark all as read\"}\n </Button>\n </div>\n\n <Tabs className=\"ow-notifications01__tabs\" variant=\"line\" value={tab} onValueChange={setTab}>\n <TabList aria-label={labels.tabs ?? \"Show\"}>\n <Tab value=\"all\">\n {labels.all ?? \"All\"}\n {unread ? (\n <Badge size=\"sm\" className=\"ow-notifications01__tab-count\">\n {unread}\n </Badge>\n ) : null}\n </Tab>\n <Tab value=\"mentions\">\n {labels.mentions ?? \"Mentions\"}\n {unreadMentions ? (\n <Badge size=\"sm\" className=\"ow-notifications01__tab-count\">\n {unreadMentions}\n </Badge>\n ) : null}\n </Tab>\n </TabList>\n <TabPanel value=\"all\">\n <NotificationList items={notifications} isUnread={isUnread} onOpen={open} labels={labels} />\n </TabPanel>\n <TabPanel value=\"mentions\">\n <NotificationList items={mentions} isUnread={isUnread} onOpen={open} labels={labels} />\n </TabPanel>\n </Tabs>\n\n <div className=\"ow-notifications01__foot\">\n {viewAllHref !== undefined ? (\n <Link href={viewAllHref} variant=\"standalone\">\n {labels.viewAll ?? \"View all notifications\"}\n </Link>\n ) : (\n <span />\n )}\n <Button variant=\"ghost\" size=\"sm\" iconOnly aria-label={labels.settings ?? \"Notification settings\"} onClick={onSettings}>\n <SettingsIcon size={16} />\n </Button>\n </div>\n </Popover>\n </div>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { Avatar, Button, cx, SegmentedControl, Text } from \"@openwarelabs/ui\";\n\nimport type { Notifications02Day, Notifications02Event, Notifications02Props } from \"./Notifications02.types\";\n\nfunction Node({ event }: { event: Notifications02Event }) {\n if (event.icon) {\n return (\n <span\n className={cx(\"ow-notifications02__node\", event.tone && event.tone !== \"default\" && `ow-notifications02__node--${event.tone}`)}\n aria-hidden=\"true\"\n >\n {event.icon}\n </span>\n );\n }\n return <Avatar name={event.by ?? \"\"} />;\n}\n\n/** An activity page: days down the page, each day's events on a thin rail, with a filter and a way to load older days. */\nexport function Notifications02({ title, description, days, kinds, onLoadEarlier, labels = {}, className, ...props }: Notifications02Props) {\n const id = useId();\n const [filter, setFilter] = useState(\"all\");\n const [earlier, setEarlier] = useState<Notifications02Day[] | null>(null);\n const [loading, setLoading] = useState(false);\n const panel = useRef<HTMLDivElement>(null);\n\n // The button goes once the older days are in; move focus to the first of them.\n useEffect(() => {\n if (earlier) panel.current?.querySelector<HTMLElement>(\"[data-earlier] h3\")?.focus();\n }, [earlier]);\n\n const loadEarlier = async () => {\n if (!onLoadEarlier) return;\n setLoading(true);\n try {\n setEarlier(await onLoadEarlier());\n } catch {\n // Didn't load: the button stays, to try again.\n }\n setLoading(false);\n };\n\n const shown = [...days.map((day) => ({ day, older: false })), ...(earlier ?? []).map((day) => ({ day, older: true }))]\n .map(({ day, older }) => ({ day, older, events: day.events.filter((event) => filter === \"all\" || event.kind === filter) }))\n .filter((entry) => entry.events.length > 0);\n\n return (\n <section className={cx(\"ow-notifications02\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div ref={panel} className=\"ow-notifications02__panel\">\n <header className=\"ow-notifications02__header\">\n <div>\n <Text variant=\"heading\" as=\"h2\" id={`${id}-title`}>\n {title}\n </Text>\n {description ? (\n <Text variant=\"copy\" className=\"ow-notifications02__subtitle\">\n {description}\n </Text>\n ) : null}\n </div>\n {kinds?.length ? (\n <SegmentedControl\n className=\"ow-notifications02__filter\"\n size=\"sm\"\n options={[{ value: \"all\", label: labels.all ?? \"All\" }, ...kinds]}\n value={filter}\n onChange={setFilter}\n aria-label={labels.filter ?? \"Show\"}\n />\n ) : null}\n </header>\n\n {shown.length ? (\n shown.map(({ day, older, events }, index) => (\n <section\n key={`${day.dateTime}-${older}`}\n className=\"ow-notifications02__day\"\n aria-labelledby={`${id}-day-${index}`}\n data-earlier={older || undefined}\n >\n <Text variant=\"label\" as=\"h3\" id={`${id}-day-${index}`} className=\"ow-notifications02__day-title\" tabIndex={-1}>\n {day.label}\n {day.date ? (\n <Text as=\"span\" tone=\"muted\">\n {day.date}\n </Text>\n ) : null}\n </Text>\n <ol className=\"ow-notifications02__events\">\n {events.map((event) => (\n <li key={event.id} className=\"ow-notifications02__event\">\n <Node event={event} />\n <div className=\"ow-notifications02__body\">\n <Text variant=\"copy\" className=\"ow-notifications02__line\">\n {event.line}\n </Text>\n {event.detail ? (\n <Text as=\"div\" variant=\"caption\" className=\"ow-notifications02__detail\">\n {event.detail}\n </Text>\n ) : null}\n </div>\n <Text variant=\"caption\" className=\"ow-notifications02__time\">\n <time dateTime={`${day.dateTime}T${event.time}`}>{event.time}</time>\n </Text>\n </li>\n ))}\n </ol>\n </section>\n ))\n ) : (\n <Text tone=\"muted\" align=\"center\" className=\"ow-notifications02__empty\">\n {labels.empty ?? \"Nothing of this kind yet.\"}\n </Text>\n )}\n\n <div className=\"ow-notifications02__more\">\n {onLoadEarlier && !earlier ? (\n <Button loading={loading} onClick={loadEarlier}>\n {labels.loadEarlier ?? \"Show earlier activity\"}\n </Button>\n ) : (\n <Text variant=\"caption\" as=\"p\">\n {labels.end ?? \"That's everything.\"}\n </Text>\n )}\n </div>\n </div>\n </section>\n );\n}\n", "import { useEffect, useId, useRef, useState } from \"react\";\n\nimport { cx, Select, SettingsRow, Switch, Text, VisuallyHidden } from \"@openwarelabs/ui\";\n\nimport { CheckIcon } from \"@blocks/shared/icons\";\nimport type { Notifications03Props, Notifications03Value } from \"./Notifications03.types\";\n\n/** Notification settings: a grid of switches with events down the side and channels across the top, and delivery settings under it. */\nexport function Notifications03({\n title,\n description,\n channels,\n groups,\n value,\n defaultValue = {},\n onChange,\n options = [],\n onOptionChange,\n labels = {},\n className,\n ...props\n}: Notifications03Props) {\n const id = useId();\n const [ownValue, setOwnValue] = useState<Notifications03Value>(defaultValue);\n const settings = value ?? ownValue;\n const [optionValues, setOptionValues] = useState<Record<string, string | boolean>>(() =>\n Object.fromEntries(options.map((option) => [option.id, option.defaultValue])),\n );\n const [saved, setSaved] = useState(false);\n const timer = useRef(0);\n useEffect(() => () => window.clearTimeout(timer.current), []);\n\n // Each change saves at once; say so for a moment.\n const save = () => {\n setSaved(true);\n window.clearTimeout(timer.current);\n timer.current = window.setTimeout(() => setSaved(false), 2000);\n };\n\n const toggle = (event: string, channel: string, on: boolean) => {\n const current = settings[event] ?? [];\n const next = { ...settings, [event]: on ? [...current, channel] : current.filter((other) => other !== channel) };\n setOwnValue(next);\n onChange?.(next, { event, channel, on });\n save();\n };\n\n const setOption = (option: string, next: string | boolean) => {\n setOptionValues((current) => ({ ...current, [option]: next }));\n onOptionChange?.(option, next);\n save();\n };\n\n return (\n <section className={cx(\"ow-notifications03\", className)} aria-labelledby={`${id}-title`} {...props}>\n <div className=\"ow-notifications03__panel\">\n <div>\n <div className=\"ow-notifications03__header\">\n <Text variant=\"heading\" as=\"h2\" id={`${id}-title`}>\n {title}\n </Text>\n <Text variant=\"caption\" tone=\"success\" className=\"ow-notifications03__saved\" role=\"status\" data-hidden={saved ? undefined : \"\"}>\n {saved ? (\n <>\n <CheckIcon size={15} />\n {labels.saved ?? \"Saved\"}\n </>\n ) : null}\n </Text>\n </div>\n {description ? (\n <Text variant=\"copy\" className=\"ow-notifications03__subtitle\">\n {description}\n </Text>\n ) : null}\n </div>\n\n <div className=\"ow-notifications03__card\">\n <table className=\"ow-notifications03__grid\">\n <thead>\n <tr>\n <th scope=\"col\" className=\"ow-notifications03__corner\">\n <Text variant=\"caption\">{labels.event ?? \"Event\"}</Text>\n </th>\n {channels.map((channel) => (\n <th key={channel.id} scope=\"col\" className=\"ow-notifications03__channel\" id={`${id}-${channel.id}`}>\n <Text variant=\"label\" tone=\"soft\" className=\"ow-notifications03__channel-label\">\n {channel.icon}\n {channel.label}\n </Text>\n </th>\n ))}\n </tr>\n </thead>\n {groups.map((group, groupIndex) => (\n <tbody key={groupIndex}>\n <tr className=\"ow-notifications03__group\">\n <th scope=\"colgroup\" colSpan={channels.length + 1}>\n <Text variant=\"overline\">{group.label}</Text>\n </th>\n </tr>\n {group.events.map((event) => {\n const on = settings[event.id] ?? [];\n const rowId = `${id}-event-${event.id}`;\n return (\n <tr key={event.id}>\n <th scope=\"row\" className=\"ow-notifications03__event\">\n <span className=\"ow-notifications03__event-label\">\n <Text as=\"span\" id={rowId}>\n {event.label}\n </Text>\n {on.length === 0 ? <Text variant=\"caption\">{labels.muted ?? \"Muted\"}</Text> : null}\n </span>\n {event.description ? (\n <Text variant=\"caption\" className=\"ow-notifications03__event-description\">\n {event.description}\n </Text>\n ) : null}\n </th>\n {channels.map((channel) => (\n <td key={channel.id}>\n <span className=\"ow-notifications03__cell\">\n {event.unavailable?.includes(channel.id) ? (\n <span className=\"ow-notifications03__unavailable\">\n <span aria-hidden=\"true\">\u2013</span>\n <VisuallyHidden>\n {labels.unavailable\n ? labels.unavailable(channel.label)\n : `Not sent by ${channel.label.toLowerCase()}`}\n </VisuallyHidden>\n </span>\n ) : (\n <Switch\n checked={on.includes(channel.id)}\n onChange={(checked) => toggle(event.id, channel.id, checked)}\n aria-labelledby={`${id}-${channel.id} ${rowId}`}\n />\n )}\n </span>\n </td>\n ))}\n </tr>\n );\n })}\n </tbody>\n ))}\n </table>\n </div>\n\n {options.length ? (\n <div>\n <Text variant=\"card-title\" className=\"ow-notifications03__section-title\">\n {labels.options ?? \"Delivery\"}\n </Text>\n <div className=\"ow-notifications03__rows\">\n {options.map((option) => (\n <SettingsRow key={option.id} label={option.label} description={option.description}>\n {option.kind === \"select\" ? (\n <Select\n aria-label={option.label}\n size=\"sm\"\n value={String(optionValues[option.id] ?? option.defaultValue)}\n options={option.options}\n onChange={(next) => setOption(option.id, next)}\n />\n ) : (\n <Switch\n label={option.label}\n checked={Boolean(optionValues[option.id] ?? option.defaultValue)}\n onChange={(checked) => setOption(option.id, checked)}\n />\n )}\n </SettingsRow>\n ))}\n </div>\n </div>\n ) : null}\n </div>\n </section>\n );\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["cx", "jsx", "jsxs", "cx", "useId", "Chip", "cx", "Text", "jsx", "jsxs", "jsx", "jsxs", "useId", "cx", "Chip", "Text", "useId", "Button", "Chip", "cx", "Text", "jsx", "jsxs", "useId", "cx", "Chip", "Text", "Button", "useId", "Chip", "cx", "Text", "jsx", "jsxs", "useId", "cx", "Chip", "Text", "useId", "Chip", "cx", "Text", "jsx", "jsxs", "useId", "cx", "Chip", "Text", "useEffect", "useId", "useState", "Button", "buttonClassName", "Chip", "cx", "Text", "jsx", "jsxs", "useId", "useState", "useEffect", "icon", "buttonClassName", "Button", "cx", "Chip", "Text", "useEffect", "useState", "Button", "cx", "Link", "Link", "jsxs", "BlockBrandLink", "Fragment", "jsx", "jsxs", "useState", "useEffect", "cx", "Link", "Button", "Fragment", "useEffect", "useId", "useState", "Button", "buttonClassName", "cx", "Link", "Popover", "Text", "Fragment", "jsx", "jsxs", "Link", "Text", "useState", "useId", "useEffect", "cx", "Popover", "Button", "buttonClassName", "cx", "Link", "jsx", "jsxs", "Link", "cx", "useRef", "useState", "Button", "cx", "Link", "Menu", "MenuItem", "MenuSeparator", "Text", "Fragment", "jsx", "jsxs", "navigateTo", "useState", "useRef", "cx", "Text", "Link", "Menu", "Button", "MenuItem", "MenuSeparator", "useEffect", "useId", "useState", "Button", "buttonClassName", "cx", "Link", "Text", "Fragment", "jsx", "jsxs", "useState", "useId", "useEffect", "cx", "Link", "Button", "buttonClassName", "Text", "useId", "Badge", "cx", "Link", "Text", "jsx", "jsxs", "useId", "cx", "Text", "Badge", "Link", "useId", "useState", "Badge", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useState", "useId", "cx", "SectionHeading", "Text", "Badge", "useId", "useState", "Badge", "cx", "SectionHeading", "SegmentedControl", "Text", "VisuallyHidden", "jsx", "jsxs", "useId", "useState", "VisuallyHidden", "Text", "cx", "SectionHeading", "SegmentedControl", "Badge", "useId", "Card", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Card", "Text", "useId", "useState", "Card", "cx", "SectionHeading", "Text", "Fragment", "jsx", "jsxs", "useId", "useState", "cx", "SectionHeading", "Text", "Card", "useId", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "DotGrid", "Link", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Text", "Link", "DotGrid", "useId", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "Link", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Text", "Link", "useEffect", "useId", "useState", "cx", "Link", "SegmentedControl", "Text", "useId", "Link", "Text", "Fragment", "jsx", "jsxs", "jsx", "jsxs", "useState", "useEffect", "useId", "cx", "Link", "Text", "SegmentedControl", "cx", "Link", "Text", "jsx", "jsxs", "useId", "useRef", "useState", "Button", "cx", "Input", "Link", "Separator", "Text", "jsx", "jsxs", "emailPattern", "useState", "useRef", "useId", "cx", "Text", "Button", "Input", "Link", "Separator", "cx", "Link", "Text", "Fragment", "jsx", "jsxs", "cx", "Text", "Link", "useId", "cx", "DotGrid", "Text", "jsx", "jsxs", "useId", "cx", "DotGrid", "Text", "useId", "cx", "DotGrid", "Link", "Text", "jsx", "jsxs", "useId", "cx", "DotGrid", "Text", "Link", "useId", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Text", "useId", "cx", "SectionHeading", "jsx", "useId", "cx", "Link", "SectionHeading", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Link", "useId", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Text", "useId", "cx", "Text", "jsx", "jsxs", "useId", "cx", "Link", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Link", "Text", "useId", "useState", "Button", "cx", "Text", "jsx", "jsxs", "useId", "useState", "cx", "Text", "Button", "useId", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "Link", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "Link", "SectionHeading", "Text", "jsx", "jsxs", "useId", "Badge", "cx", "Text", "VisuallyHidden", "Fragment", "jsx", "jsxs", "useId", "cx", "Text", "VisuallyHidden", "Badge", "useId", "Badge", "Card", "cx", "SectionHeading", "Text", "User", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Tab", "TabList", "TabPanel", "Tabs", "Text", "User", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Tabs", "TabList", "Tab", "TabPanel", "Text", "User", "useId", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "Accordion", "AccordionItem", "cx", "Link", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Link", "Accordion", "AccordionItem", "Text", "useId", "Card", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Text", "Card", "useEffect", "useId", "useRef", "useState", "Button", "cx", "Input", "SectionHeading", "Text", "jsx", "jsxs", "emailPattern", "useState", "useRef", "useId", "useEffect", "cx", "SectionHeading", "Text", "Button", "Input", "useId", "useState", "Avatar", "AvatarGroup", "Button", "Card", "cx", "Field", "Input", "Link", "Text", "jsx", "jsxs", "emailPattern", "emailError", "icon", "useState", "useId", "cx", "Card", "Text", "Field", "Input", "Button", "AvatarGroup", "Avatar", "Link", "useId", "useState", "Card", "cx", "Link", "SectionHeading", "SegmentedControl", "Text", "User", "jsx", "jsxs", "useState", "useId", "cx", "SectionHeading", "SegmentedControl", "Card", "Text", "Link", "User", "useId", "Avatar", "Card", "cx", "Link", "Tag", "Text", "User", "Fragment", "jsx", "jsxs", "useId", "cx", "Text", "Link", "Card", "Tag", "User", "Avatar", "useId", "useState", "Badge", "Button", "cx", "Link", "SectionHeading", "Text", "Fragment", "jsx", "jsxs", "useState", "useId", "cx", "SectionHeading", "Link", "Text", "Badge", "Button", "useEffect", "useId", "useState", "cx", "Link", "Tag", "Text", "User", "Fragment", "jsx", "jsxs", "useState", "useId", "useEffect", "Link", "cx", "Tag", "Text", "User", "useId", "Avatar", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "Avatar", "buttonClassName", "Card", "cx", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Card", "Avatar", "Text", "buttonClassName", "useEffect", "useId", "useRef", "useState", "Button", "Card", "cx", "Field", "Input", "Link", "SectionHeading", "Text", "Fragment", "jsx", "jsxs", "emailPattern", "useState", "useRef", "useId", "useEffect", "Text", "cx", "SectionHeading", "Link", "Card", "Button", "Field", "Input", "useId", "Card", "CopyButton", "cx", "Link", "SectionHeading", "Text", "jsx", "jsxs", "useId", "cx", "SectionHeading", "Card", "Text", "CopyButton", "Link", "useId", "useState", "Button", "Card", "cx", "Field", "Input", "Link", "Separator", "Text", "Fragment", "jsx", "jsxs", "emailPattern", "useId", "useState", "Button", "cx", "Field", "Input", "Separator", "Text", "Fragment", "jsx", "jsxs", "emailPattern", "useEffect", "useId", "useRef", "useState", "Button", "cx", "Field", "Input", "Link", "Text", "Fragment", "jsx", "jsxs", "emailPattern", "useId", "useState", "useRef", "useEffect", "address", "Text", "cx", "Link", "Button", "Field", "Input", "useEffect", "useId", "useRef", "useState", "Button", "Card", "cx", "Field", "Input", "Text", "Fragment", "jsx", "jsxs", "useId", "useState", "useRef", "useEffect", "cx", "Card", "Text", "Field", "Input", "Button", "useEffect", "useId", "useRef", "useState", "Button", "Card", "cx", "Field", "Input", "Link", "Text", "VisuallyHidden", "Fragment", "jsx", "jsxs", "emailPattern", "useId", "useState", "useRef", "useEffect", "address", "icon", "Text", "cx", "Link", "Card", "Field", "Input", "Button", "VisuallyHidden", "useEffect", "useId", "useRef", "useState", "CloseButton", "cx", "Text", "jsx", "jsxs", "icon", "useEffect", "useId", "useState", "Card", "cx", "NavItem", "NavList", "Text", "Fragment", "jsx", "jsxs", "useId", "useState", "useEffect", "icon", "NavItem", "cx", "Text", "NavList", "Card", "useId", "useState", "Button", "CopyButton", "cx", "Dialog", "Field", "Input", "Select", "Table", "Text", "VisuallyHidden", "Fragment", "jsx", "jsxs", "useId", "useState", "VisuallyHidden", "CopyButton", "Text", "Button", "cx", "Table", "Dialog", "Field", "Input", "Select", "useId", "useState", "Avatar", "Badge", "Button", "Card", "ConfirmDialog", "cx", "Field", "Input", "Menu", "MenuItem", "MenuSeparator", "Select", "Text", "Fragment", "jsx", "jsxs", "emailPattern", "Text", "useId", "useState", "emailError", "cx", "Card", "Field", "Input", "Select", "Button", "Avatar", "Badge", "Menu", "MenuItem", "MenuSeparator", "ConfirmDialog", "useId", "useState", "Button", "Card", "Code", "ConfirmDialog", "cx", "EmptyState", "Field", "Input", "Select", "Text", "Fragment", "jsx", "jsxs", "useId", "useState", "cx", "Text", "Card", "EmptyState", "Button", "ConfirmDialog", "Field", "Select", "Code", "Input", "useId", "Button", "cx", "Link", "Text", "jsx", "jsxs", "useId", "cx", "Link", "Text", "Button", "useId", "Button", "Card", "cx", "Text", "jsx", "jsxs", "useEffect", "useId", "useRef", "useState", "Button", "cx", "Text", "Fragment", "jsx", "jsxs", "useId", "useState", "useRef", "useEffect", "cx", "Text", "Button", "useEffect", "useId", "useRef", "useState", "Button", "buttonClassName", "cx", "Steps", "Text", "jsx", "jsxs", "useId", "useState", "useRef", "useEffect", "Button", "cx", "Text", "buttonClassName", "Steps", "useEffect", "useId", "useRef", "useState", "Badge", "Button", "buttonClassName", "cx", "Steps", "Text", "Fragment", "jsx", "jsxs", "cx", "buttonClassName", "Button", "useState", "useId", "useRef", "useEffect", "Text", "Steps", "Badge", "useEffect", "useRef", "useState", "Button", "cx", "Dialog", "Link", "Text", "Fragment", "jsx", "jsxs", "Avatar", "Button", "cx", "Drawer", "Menu", "NavItem", "NavList", "Text", "useEffect", "useState", "MenuItem", "MenuSeparator", "Fragment", "jsx", "jsxs", "MenuItem", "MenuSeparator", "Fragment", "MenuItem", "MenuSeparator", "jsx", "jsxs", "jsx", "jsxs", "Menu", "Button", "Text", "NavList", "NavItem", "Avatar", "cx", "Drawer", "Avatar", "Button", "CommandPalette", "cx", "Drawer", "Menu", "MenuLabel", "NavItem", "NavList", "Text", "Fragment", "jsx", "jsxs", "NavItem", "cx", "Menu", "Button", "Text", "NavList", "Avatar", "MenuLabel", "Drawer", "CommandPalette", "useEffect", "useId", "useRef", "useState", "Avatar", "Badge", "Button", "cx", "Menu", "NavItem", "ScrollShadow", "Text", "Tooltip", "Fragment", "jsx", "jsxs", "useState", "useEffect", "useId", "useRef", "cx", "Menu", "Button", "Text", "Tooltip", "ScrollShadow", "NavItem", "Badge", "Avatar", "Fragment", "useId", "useState", "Avatar", "Button", "CommandPalette", "cx", "Drawer", "Menu", "NavItem", "NavList", "Text", "Tooltip", "Fragment", "jsx", "jsxs", "Tooltip", "useId", "useState", "Menu", "Button", "Text", "NavList", "NavItem", "Avatar", "cx", "Drawer", "CommandPalette", "Badge", "Button", "cx", "Menu", "Text", "jsx", "jsxs", "icon", "cx", "Text", "Badge", "Menu", "Button", "Avatar", "AvatarGroup", "Button", "cx", "Tab", "TabList", "TabPanel", "Tabs", "Text", "jsx", "jsxs", "useState", "Avatar", "Badge", "Button", "cx", "EmptyState", "Menu", "MenuItem", "SearchField", "Tag", "Text", "VisuallyHidden", "Fragment", "jsx", "jsxs", "useState", "cx", "Text", "Button", "SearchField", "Menu", "MenuItem", "Tag", "Avatar", "Badge", "VisuallyHidden", "EmptyState", "useId", "useState", "Card", "cx", "SegmentedControl", "Select", "Stat", "Text", "jsx", "jsxs", "useId", "useState", "Button", "Card", "cx", "SegmentedControl", "Stat", "Table", "Text", "Fragment", "jsx", "jsxs", "useId", "useState", "shown", "all", "cx", "Text", "Stat", "Card", "Table", "SegmentedControl", "Button", "useId", "useState", "Button", "Card", "Checkbox", "cx", "Field", "Popover", "ProgressBar", "Table", "Text", "Fragment", "jsx", "jsxs", "useId", "useState", "cx", "Text", "Card", "Popover", "Button", "Field", "Checkbox", "ProgressBar", "Table", "useId", "useState", "Button", "Card", "cx", "EmptyState", "SearchField", "Select", "Table", "Text", "jsx", "jsxs", "useId", "useState", "caption", "cx", "Text", "Button", "Card", "SearchField", "Select", "current", "Table", "EmptyState", "useId", "useState", "Button", "Card", "cx", "Menu", "MenuLabel", "Table", "Text", "Tooltip", "Fragment", "jsx", "jsxs", "useId", "useState", "caption", "cx", "Text", "Button", "Card", "Menu", "MenuLabel", "Tooltip", "Table", "useId", "Badge", "Button", "Card", "cx", "Menu", "Text", "jsx", "jsxs", "useId", "cx", "Text", "Button", "Card", "Badge", "Menu", "useId", "useState", "Avatar", "AvatarGroup", "Badge", "Button", "Card", "cx", "EmptyState", "Menu", "SearchField", "Text", "jsx", "jsxs", "useId", "useState", "cx", "Text", "SearchField", "Button", "Card", "Menu", "Badge", "AvatarGroup", "Avatar", "EmptyState", "useId", "useRef", "useState", "Avatar", "Button", "cx", "EmptyState", "Menu", "MenuLabel", "Text", "Fragment", "jsx", "jsxs", "useId", "useRef", "useState", "cx", "Text", "Button", "Menu", "MenuLabel", "EmptyState", "Avatar", "useId", "useRef", "useState", "Button", "cx", "Kbd", "Menu", "MenuItem", "MenuLabel", "PromptInput", "PromptSuggestion", "PromptSuggestions", "Text", "Fragment", "jsx", "jsxs", "Menu", "Button", "MenuLabel", "MenuItem", "Text", "useId", "useState", "useRef", "cx", "PromptInput", "Kbd", "PromptSuggestions", "PromptSuggestion", "useId", "useState", "Badge", "Button", "ChatAgentAvatar", "Code", "cx", "Text", "VisuallyHidden", "Fragment", "jsx", "jsxs", "Text", "VisuallyHidden", "Button", "useId", "useState", "cx", "ChatAgentAvatar", "Code", "Badge", "useState", "Badge", "Button", "ChoiceCard", "cx", "Dialog", "EmptyState", "Field", "Input", "Separator", "Text", "toast", "Fragment", "jsx", "jsxs", "icon", "useState", "item", "toast", "cx", "Text", "Button", "EmptyState", "Separator", "ChoiceCard", "Badge", "Dialog", "Field", "Input", "Fragment", "useState", "Button", "cx", "EmptyState", "Menu", "MenuItem", "MenuLabel", "MenuSeparator", "SearchField", "Table", "Tag", "TagGroup", "Text", "Fragment", "jsx", "jsxs", "useState", "cx", "Text", "SearchField", "TagGroup", "Tag", "Menu", "Button", "MenuSeparator", "MenuLabel", "MenuItem", "Table", "EmptyState", "useId", "useState", "Badge", "Button", "Code", "cx", "EmptyState", "SegmentedControl", "Spinner", "Text", "Fragment", "jsx", "jsxs", "useId", "useState", "cx", "Text", "SegmentedControl", "EmptyState", "Code", "Button", "Spinner", "Badge", "useState", "cx", "DotGrid", "Link", "SearchField", "Text", "jsx", "jsxs", "useState", "Badge", "Button", "CopyButton", "cx", "Link", "Text", "jsx", "jsxs", "useState", "cx", "Link", "Text", "Badge", "Button", "CopyButton", "useState", "Badge", "Button", "cx", "DotGrid", "Link", "Steps", "Text", "jsx", "jsxs", "reload", "useState", "cx", "DotGrid", "Link", "Text", "Badge", "Button", "Steps", "useState", "Avatar", "Badge", "Button", "cx", "Link", "Popover", "ScrollShadow", "Tab", "TabList", "TabPanel", "Tabs", "Text", "VisuallyHidden", "jsx", "jsxs", "cx", "Avatar", "Text", "ScrollShadow", "Link", "VisuallyHidden", "useState", "Popover", "Button", "Badge", "Tabs", "TabList", "Tab", "TabPanel", "useEffect", "useId", "useRef", "useState", "Avatar", "Button", "cx", "SegmentedControl", "Text", "jsx", "jsxs", "useEffect", "useId", "useRef", "useState", "cx", "Select", "SettingsRow", "Text", "VisuallyHidden", "Fragment", "jsx", "jsxs", "useId", "useState", "useRef", "useEffect", "cx", "Text", "VisuallyHidden", "SettingsRow", "Select"]
7
7
  }