govuk-chakra 0.0.13 → 0.0.15

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.
@@ -1 +0,0 @@
1
- {"version":3,"file":"govuk-chakra-CPBwDjU9.mjs","names":[],"sources":["../src/components/Link/Link.tsx","../src/components/Accordion/Accordion.tsx","../src/components/Heading/Heading.tsx","../src/components/Alert/Alert.tsx","../src/components/Avatar/Avatar.tsx","../src/components/BackLink/BackLink.tsx","../src/components/Breadcrumbs/Breadcrumbs.tsx","../src/components/Calendar/Calendar.tsx","../src/components/Card/Card.tsx","../src/components/Carousel/Carousel.tsx","../src/components/Fieldset/Fieldset.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Code/Code.tsx","../src/components/Collapsible/Collapsible.tsx","../src/components/ColorPicker/ColorPicker.tsx","../src/components/ColorSwatch/ColorSwatch.tsx","../src/components/Combobox/Combobox.tsx","../src/components/CookieBanner/CookieBanner.tsx","../src/components/DateInput/DateInput.tsx","../src/components/Details/Details.tsx","../src/components/Dialog/Dialog.tsx","../src/components/Editable/Editable.tsx","../src/components/EmptyState/EmptyState.tsx","../src/components/ErrorSummary/ErrorSummary.tsx","../src/components/FileUpload/FileUpload.tsx","../src/components/GOVUKCrest/GOVUKCrest.tsx","../src/components/GOVUKCrown/GOVUKCrown.tsx","../src/components/GOVUKFooter/GOVUKFooter.tsx","../src/components/GOVUKLogo/GOVUKLogo.tsx","../src/components/GOVUKHeader/GOVUKHeader.tsx","../src/components/GOVUKOGL/GOVUKOGL.tsx","../src/components/Highlight/Highlight.tsx","../src/components/HoverCard/HoverCard.tsx","../src/components/IconButton/IconButton.tsx","../src/components/Image/Image.tsx","../src/components/InsetText/InsetText.tsx","../src/components/Kbd/Kbd.tsx","../src/components/Listbox/Listbox.tsx","../src/components/Marquee/Marquee.tsx","../src/components/Menu/Menu.tsx","../src/components/NotificationBanner/NotificationBanner.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Panel/Panel.tsx","../src/components/PinInput/PinInput.tsx","../src/components/Popover/Popover.tsx","../src/components/Progress/Progress.tsx","../src/components/ProgressCircle/ProgressCircle.tsx","../src/components/QRCode/QRCode.tsx","../src/components/Radio/Radio.tsx","../src/components/RadioCard/RadioCard.tsx","../src/components/Rating/Rating.tsx","../src/components/Select/Select.tsx","../src/components/SegmentedControl/SegmentedControl.tsx","../src/components/Separator/Separator.tsx","../src/components/ServiceNavigation/ServiceNavigation.tsx","../src/components/Skeleton/Skeleton.tsx","../src/components/SkipLink/SkipLink.tsx","../src/components/Slider/Slider.tsx","../src/components/Spinner/Spinner.tsx","../src/components/Stat/Stat.tsx","../src/components/Status/Status.tsx","../src/components/Steps/Steps.tsx","../src/components/SummaryList/SummaryList.tsx","../src/components/Switch/Switch.tsx","../src/components/Table/Table.tsx","../src/components/Tabs/Tabs.tsx","../src/components/TagsInput/TagsInput.tsx","../src/components/TaskList/TaskList.tsx","../src/components/Textarea/Textarea.tsx","../src/components/Textinput/Textinput.tsx","../src/components/Timeline/Timeline.tsx","../src/components/Toast/Toast.tsx","../src/components/ToggleTip/ToggleTip.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/TreeView/TreeView.tsx","../src/components/WarningText/WarningText.tsx","../src/components/Tag/Tag.tsx","../src/components/PhaseBanner/PhaseBanner.tsx"],"sourcesContent":["import { pxToRem } from '@/utils'\nimport { Link as ChakraLink, LinkProps as ChakraLinkProps } from '@chakra-ui/react'\n\nimport { forwardRef } from 'react'\n\nexport interface LinkProps extends ChakraLinkProps {\n noStyle?: boolean\n}\n\nexport const Link = forwardRef<HTMLAnchorElement, LinkProps>(({ noStyle, ...props }, ref) => {\n return (\n <ChakraLink\n ref={ref}\n color={noStyle ? 'inherit' : 'fg.link'}\n textDecoration={noStyle ? 'none' : 'underline'}\n textDecorationThickness={pxToRem(1)}\n textUnderlineOffset=\"0.1578em\"\n textDecorationColor={noStyle ? 'inherit' : 'fg.link'}\n fontWeight=\"normal\"\n fontFamily=\"body\"\n _hover={{\n color: noStyle ? 'inherit' : 'primary.700',\n textDecoration: 'underline',\n textDecorationThickness: pxToRem(3), // Thicker on hover (GOV.UK style)\n }}\n _focus={{\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n bgColor: 'yellow.500',\n color: 'fg',\n textDecoration: 'underline',\n textDecorationThickness: pxToRem(3),\n textDecorationColor: 'common.black',\n _hover: {\n color: noStyle ? 'inherit' : 'fg',\n textDecorationThickness: pxToRem(3),\n },\n }}\n _visited={{\n color: noStyle ? 'inherit' : 'fg.link',\n }}\n _dark={{\n color: noStyle ? 'inherit' : 'fg.link',\n _hover: {\n color: noStyle ? 'inherit' : 'primary.300',\n },\n _focus: {\n color: noStyle ? 'inherit' : 'common.black',\n textDecorationColor: 'common.black',\n _hover: {\n color: noStyle ? 'inherit' : 'common.black',\n },\n _visited: {\n color: noStyle ? 'inherit' : 'common.black',\n },\n },\n _visited: {\n color: noStyle ? 'inherit' : 'fg.link',\n },\n }}\n {...props}\n />\n )\n})\n\nLink.displayName = 'Link'\n","import {\n Accordion as ChakraAccordion,\n AccordionItem as ChakraAccordionItem,\n AccordionItemContent as ChakraAccordionItemContent,\n AccordionItemContentProps as ChakraAccordionItemContentProps,\n AccordionItemProps as ChakraAccordionItemProps,\n AccordionItemTrigger as ChakraAccordionItemTrigger,\n AccordionItemTriggerProps as ChakraAccordionItemTriggerProps,\n AccordionRootProps as ChakraAccordionRootProps,\n Box,\n type BoxProps,\n Stack,\n type StackProps,\n VStack,\n} from '@chakra-ui/react'\nimport {\n type ComponentProps,\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n type MouseEvent,\n type ReactNode,\n} from 'react'\n\nimport { Link } from '@/components/Link'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\ntype AccordionValueChangeDetails = { value: string[] }\n\ntype AccordionContextValue = {\n value: string[]\n multiple: boolean\n onValueChange: (details: AccordionValueChangeDetails) => void\n itemValues: string[]\n registerItemValue: (value: string) => () => void\n}\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null)\n\nfunction useAccordionContext(componentName: string) {\n const context = useContext(AccordionContext)\n\n if (!context) {\n throw new Error(`${componentName} must be used within Accordion.Root`)\n }\n\n return context\n}\n\nexport interface AccordionProps\n extends\n Omit<BoxProps, 'children' | 'defaultValue' | 'onValueChange' | 'value'>,\n Pick<ChakraAccordionRootProps, 'defaultValue' | 'multiple' | 'onValueChange' | 'value'> {\n children: ReactNode\n}\n\nconst AccordionRoot = forwardRef<HTMLDivElement, AccordionProps>(function AccordionRoot(\n { children, defaultValue, multiple = true, onValueChange, value, ...props },\n ref\n) {\n const [internalValue, setInternalValue] = useState<string[]>(defaultValue ?? [])\n const [itemValues, setItemValues] = useState<string[]>([])\n const currentValue = value ?? internalValue\n\n const handleValueChange = useCallback(\n (details: AccordionValueChangeDetails) => {\n if (value === undefined) {\n setInternalValue(details.value)\n }\n\n onValueChange?.(details)\n },\n [onValueChange, value]\n )\n\n const registerItemValue = useCallback((itemValue: string) => {\n setItemValues((currentValues) =>\n currentValues.includes(itemValue) ? currentValues : [...currentValues, itemValue]\n )\n\n return () => {\n setItemValues((currentValues) => currentValues.filter((value) => value !== itemValue))\n }\n }, [])\n\n const contextValue = useMemo<AccordionContextValue>(\n () => ({\n value: currentValue,\n multiple,\n onValueChange: handleValueChange,\n itemValues,\n registerItemValue,\n }),\n [currentValue, handleValueChange, itemValues, multiple, registerItemValue]\n )\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <Box\n ref={ref}\n width=\"100%\"\n fontSize={pxToRem(16)}\n css={{\n h2: { fontSize: pxToRem(19), fontWeight: 700, lineHeight: '1.3', margin: 0 },\n }}\n {...props}\n >\n {children}\n </Box>\n </AccordionContext.Provider>\n )\n})\n\nAccordionRoot.displayName = 'Accordion'\n\nexport interface AccordionActionsProps extends StackProps {\n children: ReactNode\n}\n\nconst AccordionActions = forwardRef<HTMLDivElement, AccordionActionsProps>(\n function AccordionActions({ children, ...props }, ref) {\n return (\n <Stack\n ref={ref}\n direction=\"row\"\n justify=\"flex-start\"\n pb={pxToRem(14)}\n borderBottom=\"1px solid\"\n borderColor=\"border.emphasized\"\n {...props}\n >\n {children}\n </Stack>\n )\n }\n)\n\nAccordionActions.displayName = 'AccordionActions'\n\nexport interface AccordionToggleAllProps extends Omit<\n ComponentProps<typeof Link>,\n 'children' | 'href' | 'onClick'\n> {\n openLabel?: ReactNode\n closeLabel?: ReactNode\n href?: string\n}\n\nconst AccordionToggleAll = forwardRef<HTMLAnchorElement, AccordionToggleAllProps>(\n function AccordionToggleAll(\n { closeLabel = 'Hide all sections', href = '#', openLabel = 'Show all sections', ...props },\n ref\n ) {\n const { itemValues, onValueChange, value } = useAccordionContext('Accordion.ToggleAll')\n const allOpen =\n itemValues.length > 0 && itemValues.every((itemValue) => value.includes(itemValue))\n\n const handleClick = (event: MouseEvent<HTMLAnchorElement>) => {\n event.preventDefault()\n onValueChange({ value: allOpen ? [] : itemValues })\n }\n\n return (\n <Link\n ref={ref}\n href={href}\n py={pxToRem(5)}\n fontSize=\"sm\"\n onClick={handleClick}\n textDecoration=\"underline\"\n css={{\n '& .chevron': {\n color: 'currentColor',\n bgColor: 'transparent',\n borderColor: 'currentColor',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n '& .chevron:after': {\n color: 'currentColor',\n borderColor: 'currentColor',\n },\n '& .chevron-text': {\n color: 'currentColor',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n }}\n _dark={{\n '& .chevron-text': {\n color: 'primary.300',\n },\n _hover: {\n '& .chevron': {\n color: 'primary.600',\n borderColor: 'primary.200',\n },\n '& .chevron:after': {\n color: 'primary.200',\n borderColor: 'primary.200',\n },\n '& .chevron-text': {\n color: 'primary.200',\n },\n },\n _focus: {\n '& .chevron-text': {\n color: 'common.black',\n borderColor: 'common.black',\n },\n },\n }}\n _hover={{\n bgColor: 'bg.muted',\n _focus: {\n bgColor: 'yellow.500',\n color: 'fg',\n },\n }}\n _focus={{\n bgColor: 'yellow.500',\n outline: 0,\n color: 'fg',\n }}\n {...props}\n >\n <Box\n as=\"span\"\n className=\"chevron\"\n transform={allOpen ? 'rotate(0deg)' : 'rotate(180deg)'}\n boxSizing=\"border-box\"\n display=\"inline-block\"\n position=\"relative\"\n width={pxToRem(20)}\n height={pxToRem(20)}\n border=\"1px solid\"\n borderColor=\"primary.500\"\n borderRadius=\"50%\"\n verticalAlign=\"middle\"\n transition=\"transform 0.2s ease-in-out\"\n _after={{\n content: '\"\"',\n color: 'primary.500',\n boxSizing: 'border-box',\n display: 'block',\n position: 'absolute',\n bottom: pxToRem(5),\n left: pxToRem(6),\n width: pxToRem(6),\n height: pxToRem(6),\n transform: 'rotate(-45deg)',\n borderTop: `${pxToRem(2)} solid`,\n borderRight: `${pxToRem(2)} solid`,\n }}\n _dark={{\n borderColor: 'primary.300',\n color: 'primary.300',\n _after: {\n color: 'primary.300',\n borderColor: 'primary.300',\n },\n }}\n />\n <Text className=\"chevron-text\" color=\"currentColor\" fontSize={19}>\n {allOpen ? closeLabel : openLabel}\n </Text>\n </Link>\n )\n }\n)\n\nAccordionToggleAll.displayName = 'AccordionToggleAll'\n\nexport interface AccordionItemsProps {\n children: ReactNode\n}\n\nconst AccordionItems = forwardRef<HTMLDivElement, AccordionItemsProps>(function AccordionItems(\n { children },\n ref\n) {\n const { multiple, onValueChange, value } = useAccordionContext('Accordion.Items')\n\n return (\n <ChakraAccordion.Root\n ref={ref}\n multiple={multiple}\n value={value}\n onValueChange={onValueChange}\n fontSize={pxToRem(16)}\n lineHeight=\"1.25\"\n >\n {children}\n </ChakraAccordion.Root>\n )\n})\n\nAccordionItems.displayName = 'AccordionItems'\n\nexport interface AccordionItemProps extends ChakraAccordionItemProps {\n children: ReactNode\n}\n\nconst AccordionItem = forwardRef<HTMLDivElement, AccordionItemProps>(function AccordionItem(\n { children, value, ...props },\n ref\n) {\n const { registerItemValue } = useAccordionContext('Accordion.Item')\n\n useEffect(() => registerItemValue(value), [registerItemValue, value])\n\n return (\n <ChakraAccordionItem\n ref={ref}\n value={value}\n border=\"none\"\n borderTop=\"1px solid\"\n borderTopColor=\"border\"\n _first={{\n borderTop: 'none',\n }}\n {...props}\n >\n {children}\n </ChakraAccordionItem>\n )\n})\n\nAccordionItem.displayName = 'AccordionItem'\n\nexport interface AccordionTriggerProps extends ChakraAccordionItemTriggerProps {\n children: ReactNode\n}\n\nconst AccordionTrigger = forwardRef<HTMLButtonElement, AccordionTriggerProps>(\n function AccordionTrigger(props, ref) {\n return (\n <ChakraAccordionItemTrigger\n ref={ref}\n px={0}\n textAlign=\"left\"\n fontWeight=\"bold\"\n fontSize=\"19px\"\n lineHeight=\"1.31579\"\n color=\"fg\"\n border=\"none\"\n pt={pxToRem(10)}\n pb={pxToRem(20)}\n transition=\" background-color 0.1s ease\"\n css={{\n '& .trigger-title': {\n fontSize: pxToRem(24),\n },\n }}\n _hover={{\n bg: 'bg.muted',\n color: 'primary.500',\n '& .chevron': {\n color: 'primary.300',\n bgColor: 'transparent',\n borderColor: 'primary.300',\n },\n '& .chevron:after': { borderColor: 'primary.300' },\n '& .chevron-text': { color: 'primary.300' },\n }}\n _open={{\n bg: 'transparent',\n }}\n _focus={{\n outline: '0px solid',\n '& .trigger-title, & .chevron-container, & .chevron-text': {\n color: 'common.black',\n bgColor: 'yellow.500',\n borderColor: 'yellow.500',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n '& .chevron': {\n color: 'common.black',\n bgColor: 'transparent',\n borderColor: 'common.black',\n },\n '& .chevron:after': { borderColor: 'common.black' },\n _hover: {\n '& .chevron': {\n color: 'common.black',\n bgColor: 'transparent',\n borderColor: 'common.black',\n },\n '& .chevron:after': { borderColor: 'common.black' },\n '& .chevron-text': { color: 'common.black' },\n },\n }}\n _dark={{\n _hover: {\n color: 'primary.300',\n '& .chevron': {\n color: 'primary.200',\n bgColor: 'transparent',\n borderColor: 'primary.200',\n },\n '& .chevron:after': { borderColor: 'primary.200' },\n '& .chevron-text': { color: 'primary.200' },\n },\n _focus: {\n color: 'common.black',\n '& .chevron': {\n color: 'common.black',\n bgColor: 'transparent',\n borderColor: 'common.black',\n },\n '& .chevron:after': { borderColor: 'common.black' },\n '& .chevron-text': { color: 'common.black' },\n _hover: {\n color: 'common.black',\n '& .chevron': {\n color: 'common.black',\n bgColor: 'transparent',\n borderColor: 'common.black',\n },\n '& .chevron:after': { borderColor: 'common.black' },\n '& .chevron-text': { color: 'common.black' },\n },\n },\n }}\n {...props}\n >\n <VStack gap={2} w=\"100%\" justifyContent=\"flex-start\" alignItems=\"flex-start\">\n <Box as=\"span\" flex=\"1\" mr={2} className=\"trigger-title\" color=\"fg\">\n {props.children}\n </Box>\n <Box\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={pxToRem(5)}\n className=\"chevron-container\"\n mb={pxToRem(13)}\n >\n <Box\n as=\"span\"\n className=\"chevron\"\n transform=\"rotate(180deg)\"\n boxSizing=\"border-box\"\n display=\"inline-block\"\n position=\"relative\"\n width={pxToRem(20)}\n height={pxToRem(20)}\n border=\"1px solid\"\n borderColor=\"primary.500\"\n borderRadius=\"50%\"\n verticalAlign=\"middle\"\n transition=\"transform 0.2s ease-in-out\"\n css={{\n \"[data-state='open'] &\": {\n transform: 'rotate(0deg)',\n },\n }}\n _after={{\n content: '\"\"',\n color: 'primary.500',\n boxSizing: 'border-box',\n display: 'block',\n position: 'absolute',\n bottom: pxToRem(5),\n left: pxToRem(6),\n width: pxToRem(6),\n height: pxToRem(6),\n transform: 'rotate(-45deg)',\n borderTop: `${pxToRem(2)} solid`,\n borderRight: `${pxToRem(2)} solid`,\n borderColor: 'primary.500',\n }}\n _dark={{\n borderColor: 'primary.300',\n _after: {\n color: 'primary.300',\n borderColor: 'primary.300',\n },\n }}\n />\n <Text\n className=\"chevron-text\"\n fontSize={19}\n color=\"primary.500\"\n _dark={{\n color: 'primary.300',\n }}\n css={{\n \"[data-state='closed'] &\": {\n display: 'inherit',\n },\n \"[data-state='open'] &\": {\n display: 'none',\n },\n }}\n >\n Show\n </Text>\n <Text\n className=\"chevron-text\"\n fontSize={19}\n color=\"primary.500\"\n _dark={{\n color: 'primary.300',\n }}\n css={{\n \"[data-state='closed'] &\": {\n display: 'none',\n },\n \"[data-state='open'] &\": {\n display: 'inherit',\n },\n }}\n >\n Hide\n </Text>\n </Box>\n </VStack>\n </ChakraAccordionItemTrigger>\n )\n }\n)\n\nAccordionTrigger.displayName = 'AccordionTrigger'\n\nexport interface AccordionContentProps extends ChakraAccordionItemContentProps {\n children: ReactNode\n}\n\nconst AccordionContent = forwardRef<HTMLDivElement, AccordionContentProps>(\n function AccordionContent(props, ref) {\n return (\n <ChakraAccordionItemContent\n ref={ref}\n px={0}\n pt={pxToRem(15)}\n pb={pxToRem(50)}\n fontSize={pxToRem(19)}\n lineHeight=\"1.5\"\n color=\"fg\"\n {...props}\n />\n )\n }\n)\n\nAccordionContent.displayName = 'AccordionContent'\n\ntype AccordionCompound = typeof AccordionRoot & {\n Root: typeof AccordionRoot\n Actions: typeof AccordionActions\n ToggleAll: typeof AccordionToggleAll\n Items: typeof AccordionItems\n Item: typeof AccordionItem\n Trigger: typeof AccordionTrigger\n Content: typeof AccordionContent\n}\n\nconst Accordion = Object.assign(AccordionRoot, {\n Root: AccordionRoot,\n Actions: AccordionActions,\n ToggleAll: AccordionToggleAll,\n Items: AccordionItems,\n Item: AccordionItem,\n Trigger: AccordionTrigger,\n Content: AccordionContent,\n}) as AccordionCompound\n\nexport {\n Accordion,\n AccordionActions,\n AccordionContent,\n AccordionItem,\n AccordionItems,\n AccordionToggleAll,\n AccordionTrigger,\n}\n","import { Heading as ChakraHeading, type HeadingProps as ChakraHeadingProps } from '@chakra-ui/react'\nimport { forwardRef } from 'react'\nimport { getGovukTypeScale, govukTypeScale, type GovukTypeScalePoint } from '@/utils'\n\nexport interface HeadingProps extends Omit<ChakraHeadingProps, 'size'> {\n size?: GovukTypeScalePoint | ChakraHeadingProps['size']\n}\n\nexport const Heading = forwardRef<HTMLHeadingElement, HeadingProps>(function Heading(\n { size, ...props },\n ref\n) {\n if (typeof size === 'number' && !(size in govukTypeScale)) {\n console.warn(\n `[GOV.UK Heading] size={${size}} is not a valid GOV.UK type scale point. Use one of: 16, 19, 24, 27, 36, 48, 80.`\n )\n }\n\n const scale = getGovukTypeScale(size)\n\n if (scale) {\n return (\n <ChakraHeading\n ref={ref}\n fontFamily=\"heading\"\n fontWeight={'700'}\n fontSize={{ base: scale.small.fontSize, md: scale.large.fontSize }}\n lineHeight={{ base: scale.small.lineHeight, md: scale.large.lineHeight }}\n {...props}\n />\n )\n }\n\n return <ChakraHeading ref={ref} size={size as ChakraHeadingProps['size']} {...props} />\n})\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n useId,\n type ComponentPropsWithoutRef,\n type HTMLAttributes,\n type ReactNode,\n} from 'react'\n\nimport { Heading } from '@/components/Heading'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\nimport { FaCircleCheck } from 'react-icons/fa6'\nimport { IoMdInformationCircle, IoMdWarning } from 'react-icons/io'\nimport { MdOutlineError } from 'react-icons/md'\n\nexport type AlertStatus = 'info' | 'warning' | 'success' | 'error' | 'neutral'\nexport type AlertVariant = 'subtle' | 'surface' | 'outline' | 'solid'\n\ntype AlertContextValue = {\n status: AlertStatus\n titleId: string\n}\n\nconst AlertContext = createContext<AlertContextValue | null>(null)\n\nfunction useAlertContext(componentName: string) {\n const context = useContext(AlertContext)\n\n if (!context) {\n throw new Error(`${componentName} must be used within Alert.Root`)\n }\n\n return context\n}\n\nconst statusStyles: Record<\n AlertStatus,\n {\n borderColor: string\n headerBg: string\n label: string\n role: 'alert' | 'region'\n }\n> = {\n info: {\n borderColor: 'primary.500',\n headerBg: 'primary.500',\n label: 'Important',\n role: 'region',\n },\n warning: {\n borderColor: 'orange.600',\n headerBg: 'orange.600',\n label: 'Important',\n role: 'region',\n },\n success: {\n borderColor: 'green.500',\n headerBg: 'green.500',\n label: 'Success',\n role: 'alert',\n },\n error: {\n borderColor: 'red.500',\n headerBg: 'red.500',\n label: 'Error',\n role: 'alert',\n },\n neutral: {\n borderColor: 'grey.700',\n headerBg: 'grey.700',\n label: 'Important',\n role: 'region',\n },\n}\n\nconst statusIcons: Record<AlertStatus, ReactNode> = {\n info: <IoMdInformationCircle />,\n warning: <IoMdWarning />,\n success: <FaCircleCheck />,\n error: <MdOutlineError />,\n neutral: <IoMdInformationCircle />,\n}\n\nexport interface AlertProps extends Omit<BoxProps, 'title'> {\n children?: ReactNode\n showIndicator?: boolean\n status?: AlertStatus\n variant?: AlertVariant\n}\n\nexport type AlertTitleProps = ComponentPropsWithoutRef<typeof Heading>\n\nexport type AlertDescriptionProps = ComponentPropsWithoutRef<typeof Text>\n\nexport type AlertIndicatorProps = HTMLAttributes<HTMLSpanElement> & {\n children?: ReactNode\n}\n\nconst AlertIndicator = forwardRef<HTMLSpanElement, AlertIndicatorProps>(function AlertIndicator(\n { children, ...props },\n ref\n) {\n const { status } = useAlertContext('Alert.Indicator')\n\n return (\n <Box\n ref={ref}\n as=\"span\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n flexShrink={0}\n fontSize={pxToRem(24)}\n lineHeight=\"1\"\n color=\"common.white\"\n aria-hidden=\"true\"\n {...props}\n >\n {children ?? statusIcons[status]}\n </Box>\n )\n})\n\nAlertIndicator.displayName = 'AlertIndicator'\n\nconst AlertRoot = forwardRef<HTMLDivElement, AlertProps>(function AlertRoot(\n { children, showIndicator = true, status = 'info', variant, ...props },\n ref\n) {\n const titleId = useId()\n const styles = statusStyles[status]\n const childArray = Children.toArray(children)\n const indicatorChild = childArray.find(\n (child) => isValidElement(child) && child.type === AlertIndicator\n )\n const bodyChildren = childArray.filter((child) => child !== indicatorChild)\n\n void variant\n\n return (\n <AlertContext.Provider value={{ status, titleId }}>\n <Box\n ref={ref}\n role={styles.role}\n aria-labelledby={titleId}\n border=\"5px solid\"\n borderColor={styles.borderColor}\n bg=\"common.white\"\n color=\"fg\"\n {...props}\n >\n <Box\n bg={styles.headerBg}\n px={pxToRem(15)}\n py={pxToRem(10)}\n display=\"flex\"\n alignItems=\"center\"\n gap={pxToRem(10)}\n >\n {showIndicator ? (\n isValidElement(indicatorChild) ? (\n indicatorChild\n ) : (\n <AlertIndicator />\n )\n ) : null}\n <Heading as=\"h2\" id={titleId} size={24} color=\"common.white\" mb={0}>\n {styles.label}\n </Heading>\n </Box>\n <Box\n px={{ base: pxToRem(15), md: pxToRem(20) }}\n py={{ base: pxToRem(15), md: pxToRem(20) }}\n >\n {bodyChildren}\n </Box>\n </Box>\n </AlertContext.Provider>\n )\n})\n\nAlertRoot.displayName = 'Alert'\n\nconst AlertTitle = forwardRef<HTMLHeadingElement, AlertTitleProps>(function AlertTitle(\n { as = 'h3', color = 'fg', mb = pxToRem(15), size = 24, ...props },\n ref\n) {\n useAlertContext('Alert.Title')\n\n return <Heading ref={ref} as={as} color={color} mb={mb} size={size} {...props} />\n})\n\nAlertTitle.displayName = 'AlertTitle'\n\nconst AlertDescription = forwardRef<HTMLParagraphElement, AlertDescriptionProps>(\n function AlertDescription({ color = 'fg', fontSize = 19, mb = 0, ...props }, ref) {\n useAlertContext('Alert.Description')\n\n return <Text ref={ref} color={color} fontSize={fontSize} mb={mb} {...props} />\n }\n)\n\nAlertDescription.displayName = 'AlertDescription'\n\nexport { AlertRoot, AlertTitle, AlertDescription, AlertIndicator }\n\nexport const Alert = Object.assign(AlertRoot, {\n Root: AlertRoot,\n Title: AlertTitle,\n Description: AlertDescription,\n Indicator: AlertIndicator,\n})\n","import { Avatar as ChakraAvatar } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type AvatarProps = ComponentPropsWithoutRef<typeof ChakraAvatar.Root>\ntype AvatarComponent = typeof ChakraAvatar.Root & typeof ChakraAvatar\n\nexport const AvatarRoot = ChakraAvatar.Root\n\nexport const Avatar: AvatarComponent = Object.assign(ChakraAvatar.Root, {\n ...ChakraAvatar,\n})\n","import { Link, LinkProps } from '../Link'\n\nimport { forwardRef } from 'react'\nimport { pxToRem } from '@/utils'\n\nexport interface BackLinkProps extends LinkProps {\n inverse?: boolean\n}\n\nexport const BackLink = forwardRef<HTMLAnchorElement, BackLinkProps>(\n ({ children = 'Back', href = '#', inverse = false, ...props }, ref) => {\n const linkColor = inverse ? 'common.white' : 'fg'\n const hoverColor = inverse ? 'common.white' : 'fg'\n\n return (\n <Link\n noStyle\n ref={ref}\n href={href}\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={pxToRem(8)}\n color={linkColor}\n textDecoration=\"underline\"\n textDecorationThickness=\"max(1px, 0.0625rem)\"\n textUnderlineOffset=\"0.1578em\"\n fontSize={pxToRem(16)}\n lineHeight={1.25}\n pl={pxToRem(14)}\n position={'relative'}\n _hover={{\n color: hoverColor,\n textDecorationThickness: 'max(3px, 0.1875rem)',\n }}\n _focus={{\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n bgColor: 'yellow.500',\n color: 'common.black',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n _hover: {\n color: 'common.black',\n },\n }}\n _visited={{\n color: linkColor,\n }}\n {...props}\n _after={{\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: 0,\n fontSize: pxToRem(16),\n width: pxToRem(7),\n height: pxToRem(7),\n transform: 'translateY(-50%) rotate(135deg)',\n borderRight: '1px solid',\n borderBottom: '1px solid',\n borderColor: 'currentColor',\n }}\n >\n {children}\n </Link>\n )\n }\n)\n\nBackLink.displayName = 'BackLink'\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport { createContext, forwardRef, useContext, type ComponentProps } from 'react'\n\nimport { Link } from '@/components/Link'\nimport { pxToRem } from '@/utils'\nimport { Text } from '../Text'\n\nexport interface BreadcrumbsProps extends BoxProps {\n inverse?: boolean\n landmarkLabel?: string\n}\n\nexport type BreadcrumbsListProps = BoxProps\n\nexport interface BreadcrumbsItemProps extends BoxProps {\n current?: boolean\n}\n\nexport type BreadcrumbsLinkProps = ComponentProps<typeof Link>\n\nexport type BreadcrumbsCurrentProps = BoxProps\n\ntype BreadcrumbsContextValue = {\n inverse: boolean\n}\n\nconst BreadcrumbsContext = createContext<BreadcrumbsContextValue>({ inverse: false })\n\nfunction useBreadcrumbsContext() {\n return useContext(BreadcrumbsContext)\n}\n\nconst BreadcrumbsRoot = forwardRef<HTMLDivElement, BreadcrumbsProps>(function Breadcrumbs(\n { inverse = false, landmarkLabel = 'Breadcrumb', children, ...props },\n ref\n) {\n return (\n <BreadcrumbsContext.Provider value={{ inverse }}>\n <Box ref={ref} as=\"nav\" aria-label={landmarkLabel} width=\"100%\" color=\"inherit\" {...props}>\n {children}\n </Box>\n </BreadcrumbsContext.Provider>\n )\n})\n\nconst BreadcrumbsList = forwardRef<HTMLOListElement, BreadcrumbsListProps>(\n function BreadcrumbsList(props, ref) {\n const { inverse } = useBreadcrumbsContext()\n\n return (\n <Box\n ref={ref}\n as=\"ol\"\n display=\"flex\"\n flexWrap=\"wrap\"\n alignItems=\"center\"\n listStyleType=\"none\"\n m={0}\n p={0}\n fontSize={pxToRem(16)}\n lineHeight={1.25}\n color={inverse ? 'common.white' : 'fg'}\n {...props}\n />\n )\n }\n)\n\nconst BreadcrumbsItem = forwardRef<HTMLLIElement, BreadcrumbsItemProps>(function BreadcrumbsItem(\n { current = false, children, ...props },\n ref\n) {\n const { inverse } = useBreadcrumbsContext()\n\n return (\n <Box\n ref={ref}\n as=\"li\"\n display=\"inline-flex\"\n alignItems=\"center\"\n position=\"relative\"\n pe={pxToRem(5)}\n // me={pxToRem(10)}\n // mb={pxToRem(5)}\n _dark={{\n '&:not(:first-of-type)::before': {\n borderColor: inverse ? 'common.white' : 'common.white/70',\n },\n }}\n css={{\n '&:not(:first-of-type)': {\n paddingInlineStart: pxToRem(15),\n },\n '&:not(:first-of-type)::before': {\n content: '\"\"',\n position: 'absolute',\n top: '50%',\n left: 0,\n width: pxToRem(7),\n height: pxToRem(7),\n transform: 'translateY(-50%) rotate(-45deg)',\n borderRight: '1px solid',\n borderBottom: '1px solid',\n borderColor: inverse ? 'common.white' : 'border.subtle',\n },\n }}\n aria-current={current ? 'page' : undefined}\n {...props}\n >\n {children}\n </Box>\n )\n})\n\nconst BreadcrumbsLink = forwardRef<HTMLAnchorElement, BreadcrumbsLinkProps>(\n function BreadcrumbsLink(props, ref) {\n const { inverse } = useBreadcrumbsContext()\n\n return (\n <Link\n ref={ref}\n color={inverse ? 'common.white' : 'fg'}\n _hover={{\n color: inverse ? 'common.white' : 'fg',\n textDecorationThickness: '3px',\n }}\n _visited={{\n color: inverse ? 'common.white' : 'fg',\n }}\n _dark={undefined}\n {...props}\n >\n <Text as=\"span\" whiteSpace=\"nowrap\" fontSize={16} color={'currentColor'}>\n {props.children}\n </Text>\n </Link>\n )\n }\n)\n\nconst BreadcrumbsCurrent = forwardRef<HTMLSpanElement, BreadcrumbsCurrentProps>(\n function BreadcrumbsCurrent(props, ref) {\n const { inverse } = useBreadcrumbsContext()\n\n return (\n <Box\n ref={ref}\n as=\"span\"\n fontSize={pxToRem(16)}\n lineHeight={1.25}\n color={inverse ? 'common.white' : 'fg'}\n whiteSpace=\"nowrap\"\n {...props}\n />\n )\n }\n)\n\ntype BreadcrumbsCompound = typeof BreadcrumbsRoot & {\n Root: typeof BreadcrumbsRoot\n List: typeof BreadcrumbsList\n Item: typeof BreadcrumbsItem\n Link: typeof BreadcrumbsLink\n Current: typeof BreadcrumbsCurrent\n}\n\nexport const Breadcrumbs = Object.assign(BreadcrumbsRoot, {\n Root: BreadcrumbsRoot,\n List: BreadcrumbsList,\n Item: BreadcrumbsItem,\n Link: BreadcrumbsLink,\n Current: BreadcrumbsCurrent,\n}) as BreadcrumbsCompound\n\nexport { BreadcrumbsRoot, BreadcrumbsList, BreadcrumbsItem, BreadcrumbsLink, BreadcrumbsCurrent }\n","import { DatePicker as ChakraCalendar } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type CalendarProps = ComponentPropsWithoutRef<typeof ChakraCalendar.Root>\n\nexport const CalendarRoot = ChakraCalendar.Root\n\nexport const Calendar = Object.assign(ChakraCalendar.Root, {\n ...ChakraCalendar,\n})\n","import {\n Card as ChakraCard,\n Image,\n LinkOverlay,\n SimpleGrid,\n type HeadingProps,\n type SimpleGridProps,\n} from '@chakra-ui/react'\nimport { forwardRef } from 'react'\nimport { Text } from '@/components/Text'\nimport { Heading } from '@/components/Heading'\n\ntype HeadingTag = Extract<HeadingProps['as'], 'h2' | 'h3' | 'h4'>\n\nexport interface CardHeaderProps extends ChakraCard.HeaderProps {\n headingType?: HeadingTag\n href?: string\n openInNewTab?: boolean\n linkCard?: boolean\n}\n\nexport interface CardRootProps extends ChakraCard.RootProps {\n imageSrc?: string\n imageAlt?: string\n href?: string\n headingType?: HeadingTag\n openInNewTab?: boolean\n linkCard?: boolean\n /** Accessible label for the card, used when there is no visible header */\n 'aria-label'?: string\n /** ID of the element that labels this card (typically the header) */\n 'aria-labelledby'?: string\n /** ID of the element that describes this card (typically the body) */\n 'aria-describedby'?: string\n}\n\nexport interface CardProps extends Omit<CardRootProps, 'title'> {\n title: string\n href?: string\n description?: string\n meta?: string\n openInNewTab?: boolean\n linkCard?: boolean\n}\n\nexport const Card = {\n Root: forwardRef<HTMLDivElement, CardRootProps>(function CardRoot(\n { imageSrc, imageAlt, openInNewTab = false, linkCard = true, href, ...props },\n ref\n ) {\n const hasLink = Boolean(href)\n\n return (\n <ChakraCard.Root\n ref={ref}\n role=\"region\"\n bg=\"bg\"\n border=\"1px solid\"\n borderColor=\"border\"\n overflow=\"hidden\"\n cursor={hasLink && linkCard ? 'pointer' : 'default'}\n asChild={hasLink && linkCard ? true : undefined}\n {...props}\n >\n {hasLink && linkCard ? (\n <LinkOverlay\n href={href}\n target={openInNewTab ? '_blank' : undefined}\n rel={openInNewTab ? 'noopener noreferrer' : undefined}\n aria-label={\n openInNewTab ? `${props['aria-label'] ?? ''} (opens in new tab)`.trim() : undefined\n }\n color=\"link\"\n css={{\n '& .card-body': { color: 'fg' },\n }}\n _hover={{\n color: 'common.white',\n textDecoration: 'none',\n bg: 'primary',\n '& .card-body': { color: 'common.white' },\n }}\n _focus={{\n bg: 'primary.700',\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n color: 'black',\n '& .card-header': {\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n bgColor: 'yellow.500',\n color: 'black',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n '& .card-body': { color: 'common.white' },\n }}\n _visited={{ color: 'link.visited' }}\n >\n {imageSrc ? (\n <Image\n src={imageSrc}\n alt={imageAlt ?? ''}\n width=\"100%\"\n objectFit=\"cover\"\n borderBottom=\"1px solid\"\n borderColor=\"border\"\n />\n ) : null}\n {props.children}\n </LinkOverlay>\n ) : (\n <>\n {imageSrc ? (\n <Image\n src={imageSrc}\n alt={imageAlt ?? ''}\n width=\"100%\"\n objectFit=\"cover\"\n borderBottom=\"1px solid\"\n borderColor=\"border\"\n />\n ) : null}\n {props.children}\n </>\n )}\n </ChakraCard.Root>\n )\n }),\n Header: forwardRef<HTMLDivElement, CardHeaderProps>(function CardHeader(\n { headingType = 'h2', ...props },\n ref\n ) {\n return (\n <ChakraCard.Header ref={ref} {...props}>\n <Heading\n as={headingType}\n size={24}\n lineHeight=\"1.35\"\n className=\"card-header\"\n alignItems={'flex-start'}\n >\n {props.children}\n </Heading>\n </ChakraCard.Header>\n )\n }),\n Body: forwardRef<HTMLDivElement, ChakraCard.BodyProps>(function CardBody(props, ref) {\n return (\n <ChakraCard.Body ref={ref} {...props}>\n <Text className=\"card-body\" fontSize={'md'}>\n {props.children}\n </Text>\n </ChakraCard.Body>\n )\n }),\n Footer: forwardRef<HTMLDivElement, ChakraCard.FooterProps>(function CardFooter(props, ref) {\n return <ChakraCard.Footer ref={ref} role=\"contentinfo\" {...props} />\n }),\n}\n\nexport const CardRoot = Card.Root\nexport const CardHeader = Card.Header\nexport const CardBody = Card.Body\nexport const CardFooter = Card.Footer\n\nexport interface CardGroupProps extends Omit<SimpleGridProps, 'children'> {\n cards: CardProps[]\n}\n\nexport function CardGroup({\n cards,\n columns = { base: 1, md: 2 },\n gap = 4,\n ...props\n}: CardGroupProps) {\n return (\n <SimpleGrid columns={columns} gap={gap} {...props}>\n {cards.map((card, index) => (\n <Card.Root key={card.href ?? `${card.title}-${index}`}>\n <Card.Header href={card.href} openInNewTab={card.openInNewTab} linkCard={card.linkCard}>\n {card.title}\n </Card.Header>\n <Card.Body>{card.description}</Card.Body>\n <Card.Footer>{card.meta}</Card.Footer>\n </Card.Root>\n ))}\n </SimpleGrid>\n )\n}\n","import { Carousel as ChakraCarousel } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef, ForwardRefExoticComponent, RefAttributes } from 'react'\n\ntype CarouselColorPalette =\n | 'gray'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'green'\n | 'teal'\n | 'blue'\n | 'cyan'\n | 'purple'\n | 'pink'\n\ntype CarouselSize = 'sm' | 'md' | 'lg'\ntype CarouselVariant = 'subtle' | 'solid' | 'outline' | 'plain'\n\nexport interface CarouselProps extends ComponentPropsWithoutRef<typeof ChakraCarousel.Root> {\n colorPalette?: CarouselColorPalette\n size?: CarouselSize\n variant?: CarouselVariant\n}\n\ntype CarouselRootComponent = ForwardRefExoticComponent<\n CarouselProps & RefAttributes<HTMLDivElement>\n>\ntype CarouselComponent = typeof ChakraCarousel & { Root: CarouselRootComponent }\n\nexport const CarouselRoot = ChakraCarousel.Root as unknown as CarouselRootComponent\n\nexport const Carousel = Object.assign(CarouselRoot, {\n ...ChakraCarousel,\n Root: CarouselRoot,\n}) as CarouselComponent\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport { forwardRef, type ReactNode } from 'react'\n\nimport { Heading } from '@/components/Heading'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nexport interface FieldsetRootProps extends BoxProps {\n children: ReactNode\n invalid?: boolean\n}\n\nexport interface FieldsetLegendProps extends BoxProps {\n legendAsHeading?: boolean\n children: ReactNode\n}\n\nexport type FieldsetHintProps = React.ComponentProps<typeof Text>\n\nexport type FieldsetErrorProps = React.ComponentProps<typeof Text>\n\nexport interface FieldsetContentProps extends BoxProps {\n children: ReactNode\n}\n\nconst FieldsetRoot = forwardRef<HTMLFieldSetElement, FieldsetRootProps>(function FieldsetRoot(\n { children, invalid = false, ...props },\n ref\n) {\n return (\n <Box\n ref={ref}\n as=\"fieldset\"\n mb={{ base: pxToRem(30), md: pxToRem(20) }}\n border=\"0px solid transparent\"\n padding={0}\n minInlineSize={0}\n paddingLeft={invalid ? pxToRem(15) : 0}\n borderLeftWidth={invalid ? pxToRem(5) : 0}\n borderLeftColor={invalid ? 'danger' : 'transparent'}\n {...props}\n >\n {children}\n </Box>\n )\n})\n\nconst FieldsetLegend = forwardRef<HTMLLegendElement, FieldsetLegendProps>(function FieldsetLegend(\n { legendAsHeading = false, children, ...props },\n ref\n) {\n return (\n <Box ref={ref} as=\"legend\" float=\"left\" width=\"100%\" {...props}>\n {legendAsHeading ? (\n <Heading as=\"h1\" size={36}>\n {children}\n </Heading>\n ) : (\n <Text fontSize={24}>{children}</Text>\n )}\n </Box>\n )\n})\n\nconst FieldsetHint = forwardRef<HTMLParagraphElement, FieldsetHintProps>(\n function FieldsetHint(props, ref) {\n return <Text ref={ref} fontSize={19} color=\"fg.muted\" mb={3} {...props} />\n }\n)\n\nconst FieldsetError = forwardRef<HTMLParagraphElement, FieldsetErrorProps>(\n function FieldsetError(props, ref) {\n return <Text ref={ref} fontSize={19} fontWeight=\"700\" color=\"danger\" mb={3} {...props} />\n }\n)\n\nconst FieldsetContent = forwardRef<HTMLDivElement, FieldsetContentProps>(\n function FieldsetContent(props, ref) {\n return <Box ref={ref} display=\"flex\" flexDirection=\"column\" gap={0} {...props} />\n }\n)\n\nexport const Fieldset = {\n Root: FieldsetRoot,\n Legend: FieldsetLegend,\n Hint: FieldsetHint,\n Error: FieldsetError,\n Content: FieldsetContent,\n}\n\nexport { FieldsetRoot, FieldsetLegend, FieldsetHint, FieldsetError, FieldsetContent }\n","import { Checkbox as ChakraCheckbox, type CheckboxRootProps } from '@chakra-ui/react'\nimport React, { forwardRef, type ReactNode } from 'react'\nimport { Fieldset, type FieldsetRootProps } from '@/components/Fieldset'\nimport { Text } from '@/components/Text/Text'\nimport { pxToRem } from '@/utils'\n\n// ─── Types ───────────────────────────────────────────────────────────\nexport interface CheckboxProps extends CheckboxRootProps {\n /** Hint text displayed below the label */\n hint?: string\n size?: 'sm' | 'lg'\n}\n\nexport type CheckboxControlProps = ChakraCheckbox.ControlProps\n\nexport interface CheckboxGroupProps extends Omit<FieldsetRootProps, 'children'> {\n /** Legend / question text */\n legend: string\n /** Whether the legend should be visually styled as page heading */\n legendAsHeading?: boolean\n /** Hint text below the legend */\n hint?: string\n /** Error message */\n error?: string\n children: ReactNode\n}\n\n// ─── Subcomponents ───────────────────────────────────────────────────\nexport const Checkbox = {\n Root: forwardRef<HTMLLabelElement, CheckboxProps>(function CheckboxRoot(\n { size, children, ...props },\n ref\n ) {\n return (\n <ChakraCheckbox.Root\n ref={ref}\n className=\"root\"\n display=\"flex\"\n alignItems={size === 'sm' ? 'center' : 'flex-start'}\n gap={pxToRem(15)}\n py={0}\n mb={pxToRem(10)}\n cursor=\"pointer\"\n color=\"fg\"\n _dark={{\n _hover: {\n '& > .control': {\n bg: 'common.transparent',\n borderColor: 'common.white',\n },\n },\n }}\n _hover={{\n '& > .control': {\n bg: 'common.transparent',\n borderColor: 'common.black',\n boxShadow: size === 'sm' ? `0 0 0 10px var(--govuk-color-hover, #cecece)` : 'none',\n },\n '& > .control > .indicator': {\n stroke: 'fg',\n },\n '&:focus > .control, &:focus-within > .control': {\n borderWidth: '4px',\n outline: '3px solid transparent',\n outlineOffset: '1px',\n boxShadow: '0 0 0 3px var(--govuk-color-focus, #fd0)',\n },\n }}\n css={{\n '&:focus > .control, &:focus-within > .control': {\n borderWidth: '4px',\n outline: '3px solid transparent',\n outlineOffset: '1px',\n boxShadow: '0 0 0 3px var(--govuk-color-focus, #fd0)',\n },\n\n '& .label': {\n lineHeight: size === 'sm' ? pxToRem(19) : pxToRem(41),\n },\n '& .control': {\n width: size === 'sm' ? pxToRem(20) : pxToRem(40),\n height: size === 'sm' ? pxToRem(20) : pxToRem(40),\n minWidth: size === 'sm' ? pxToRem(20) : pxToRem(40),\n },\n }}\n {...props}\n >\n {children}\n </ChakraCheckbox.Root>\n )\n }),\n\n Control: forwardRef<HTMLElement, CheckboxControlProps>(function CheckboxControl(\n { children, ...props },\n ref\n ) {\n return (\n <ChakraCheckbox.Control\n ref={ref}\n className=\"control\"\n bg=\"common.transparent\"\n borderRadius=\"0\"\n borderColor={'common.black'}\n borderWidth=\"2px\"\n borderStyle={'solid'}\n alignItems=\"flex-start\"\n _dark={{\n borderColor: 'common.white',\n _checked: {\n bg: 'common.transparent',\n borderColor: 'common.white',\n },\n _hover: {\n bg: 'common.transparent',\n _checked: {\n bg: 'common.transparent',\n },\n },\n }}\n _checked={{\n borderColor: 'black',\n color: 'fg',\n bg: 'bg',\n _hover: {\n borderColor: 'black',\n bg: 'common.transparent',\n },\n }}\n _focus={{\n borderWidth: '4px',\n outline: '3px solid transparent',\n outlineOffset: '1px',\n boxShadow: ' 0 0 0 3px var(--govuk-color-focus, #fd0)',\n }}\n _disabled={{\n opacity: 0.5,\n cursor: 'not-allowed',\n }}\n _invalid={{\n borderColor: 'border.error',\n }}\n {...props}\n >\n {children ?? (\n <ChakraCheckbox.Indicator\n className=\"indicator\"\n stroke=\"currentColor\"\n strokeWidth=\"3.5\"\n strokeLinecap=\"butt\"\n strokeLinejoin=\"butt\"\n />\n )}\n </ChakraCheckbox.Control>\n )\n }),\n\n Label: forwardRef<HTMLSpanElement, ChakraCheckbox.LabelProps>(function CheckboxLabel(\n { children, ...props },\n ref\n ) {\n return (\n <ChakraCheckbox.Label\n ref={ref}\n color=\"fg\"\n cursor=\"pointer\"\n className=\"label\"\n // py={pxToRem(7)}\n asChild\n {...props}\n >\n <Text fontSize={16}>{children}</Text>\n </ChakraCheckbox.Label>\n )\n }),\n\n HiddenInput: forwardRef<\n HTMLInputElement,\n React.ComponentPropsWithRef<typeof ChakraCheckbox.HiddenInput>\n >(function CheckboxHiddenInput(props, ref) {\n return <ChakraCheckbox.HiddenInput ref={ref} className=\"hidden-input\" {...props} />\n }),\n\n Indicator: forwardRef<SVGSVGElement, ChakraCheckbox.IndicatorProps>(\n function CheckboxIndicator(props, ref) {\n return (\n <ChakraCheckbox.Indicator\n ref={ref}\n className=\"indicator-check\"\n stroke=\"currentColor\"\n strokeWidth=\"3.5\"\n strokeLinecap=\"butt\"\n strokeLinejoin=\"butt\"\n {...props}\n />\n )\n }\n ),\n\n Hint: forwardRef<HTMLParagraphElement, React.ComponentProps<typeof Text>>(\n function CheckboxHint(props, ref) {\n return (\n <Text\n ref={ref}\n fontSize={16}\n color=\"fg.muted\"\n className=\"hint\"\n mt={1}\n css={{ '[data-disabled] &': { opacity: 0.5 } }}\n {...props}\n />\n )\n }\n ),\n\n Group: forwardRef<HTMLFieldSetElement, CheckboxGroupProps>(function CheckboxGroup(\n { legend, legendAsHeading = false, hint, error, children, ...props },\n ref\n ) {\n return (\n <Fieldset.Root\n ref={ref}\n invalid={Boolean(error)}\n className=\"group\"\n mb={{ base: pxToRem(30), md: pxToRem(20) }}\n border={'0px solid transparent'}\n padding={0}\n paddingLeft={error ? pxToRem(15) : 0}\n borderLeftWidth={error ? pxToRem(5) : 0}\n borderLeftColor={error ? 'danger' : 'transparent'}\n css={{\n '& .root:last-of-type': {\n mb: 0,\n },\n }}\n {...props}\n >\n <Fieldset.Legend\n legendAsHeading={legendAsHeading}\n mb={hint || error ? 1 : 3}\n float=\"left\"\n width=\"100%\"\n >\n {legend}\n </Fieldset.Legend>\n\n {hint ? (\n <Text fontSize={19} color=\"fg.muted\" mb={3}>\n {hint}\n </Text>\n ) : null}\n\n {error ? (\n <Fieldset.Error asChild mb={3}>\n <Text fontSize={19} fontWeight={'700'} color=\"danger\">\n {error}\n </Text>\n </Fieldset.Error>\n ) : null}\n\n <Fieldset.Content display=\"flex\" flexDirection=\"column\" gap={0}>\n {children}\n </Fieldset.Content>\n </Fieldset.Root>\n )\n }),\n}\n\nexport const CheckboxRoot = Checkbox.Root\nexport const CheckboxControl = Checkbox.Control\nexport const CheckboxLabel = Checkbox.Label\nexport const CheckboxHiddenInput = Checkbox.HiddenInput\nexport const CheckboxIndicator = Checkbox.Indicator\nexport const CheckboxHint = Checkbox.Hint\nexport const CheckboxGroup = Checkbox.Group\n","import { Code as ChakraCode } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\ntype CodeVariant = 'solid' | 'subtle' | 'surface' | 'outline' | 'plain'\ntype CodeColorPalette =\n | 'gray'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'green'\n | 'teal'\n | 'blue'\n | 'cyan'\n | 'purple'\n | 'pink'\n\nexport interface CodeProps extends ComponentPropsWithoutRef<typeof ChakraCode> {\n variant?: CodeVariant\n colorPalette?: CodeColorPalette\n}\n\nexport function CodeRoot({ ...props }: CodeProps) {\n return <ChakraCode {...props} />\n}\n\nexport const Code = Object.assign(CodeRoot, {\n Root: CodeRoot,\n})\n","import { Collapsible as ChakraCollapsible } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type CollapsibleProps = ComponentPropsWithoutRef<typeof ChakraCollapsible.Root>\ntype CollapsibleComponent = typeof ChakraCollapsible.Root & typeof ChakraCollapsible\n\nexport const CollapsibleRoot = ChakraCollapsible.Root\n\nexport const Collapsible: CollapsibleComponent = Object.assign(ChakraCollapsible.Root, {\n ...ChakraCollapsible,\n})\n","import { ColorPicker as ChakraColorPicker } from '@chakra-ui/react'\nimport { forwardRef, type ComponentPropsWithoutRef } from 'react'\n\nexport type ColorPickerProps = ComponentPropsWithoutRef<typeof ChakraColorPicker.Root>\ntype ColorPickerComponent = typeof ChakraColorPicker.Root & typeof ChakraColorPicker\n\nexport const ColorPickerRoot = forwardRef<HTMLDivElement, ColorPickerProps>(\n function ColorPickerRoot({ size = 'md', variant = 'outline', ...props }, ref) {\n return <ChakraColorPicker.Root ref={ref} size={size} variant={variant} {...props} />\n }\n)\n\nexport const ColorPicker: ColorPickerComponent = Object.assign(ChakraColorPicker.Root, {\n ...ChakraColorPicker,\n Root: ColorPickerRoot,\n})\n","import {\n ColorSwatch as ChakraColorSwatch,\n ColorSwatchMix as ChakraColorSwatchMix,\n} from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type ColorSwatchProps = ComponentPropsWithoutRef<typeof ChakraColorSwatch>\nexport type ColorSwatchMixProps = ComponentPropsWithoutRef<typeof ChakraColorSwatchMix>\n\nexport const ColorSwatchRoot = ChakraColorSwatch\nexport const ColorSwatchMix = ChakraColorSwatchMix\n\nexport const ColorSwatch = Object.assign(ChakraColorSwatch, {\n Root: ChakraColorSwatch,\n Mix: ChakraColorSwatchMix,\n})\n","import { Combobox as ChakraCombobox } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type ComboboxProps = ComponentPropsWithoutRef<typeof ChakraCombobox.Root>\ntype ComboboxComponent = typeof ChakraCombobox.Root & typeof ChakraCombobox\n\nexport const ComboboxRoot = ChakraCombobox.Root\n\nexport const Combobox: ComboboxComponent = Object.assign(ChakraCombobox.Root, {\n ...ChakraCombobox,\n})\n","import { Box, HStack, Stack, type BoxProps } from '@chakra-ui/react'\nimport { useState } from 'react'\n\nimport { Button } from '@/components/Button/Button'\nimport { Heading } from '@/components/Heading/Heading'\nimport { Link } from '@/components/Link/Link'\nimport { Text } from '@/components/Text/Text'\nimport { pxToRem } from '@/utils'\n\nexport type CookieDecision = 'accepted' | 'rejected' | null\n\nexport interface CookieBannerProps extends BoxProps {\n serviceName?: string\n heading?: string\n essentialCookiesText?: string\n analyticsCookiesText?: string\n acceptButtonText?: string\n rejectButtonText?: string\n hideButtonText?: string\n viewCookiesHref?: string\n viewCookiesText?: string\n acceptedConfirmationText?: string\n rejectedConfirmationText?: string\n defaultDecision?: CookieDecision\n decision?: CookieDecision\n onDecisionChange?: (decision: Exclude<CookieDecision, null>) => void\n onHide?: () => void\n}\n\nexport function CookieBanner({\n serviceName = 'name of service',\n heading,\n essentialCookiesText = 'We use some essential cookies to make this service work.',\n analyticsCookiesText = \"We'd also like to use analytics cookies so we can understand how you use the service and make improvements.\",\n acceptButtonText = 'Accept analytics cookies',\n rejectButtonText = 'Reject analytics cookies',\n hideButtonText = 'Hide cookie message',\n viewCookiesHref = '#',\n viewCookiesText = 'View cookies',\n acceptedConfirmationText = \"You've accepted analytics cookies. You can change your cookie settings at any time.\",\n rejectedConfirmationText = \"You've rejected analytics cookies. You can change your cookie settings at any time.\",\n defaultDecision = null,\n decision: controlledDecision,\n onDecisionChange,\n onHide,\n ...props\n}: CookieBannerProps) {\n const [internalDecision, setInternalDecision] = useState<CookieDecision>(() => defaultDecision)\n const [isVisible, setIsVisible] = useState(true)\n\n const decision = controlledDecision ?? internalDecision\n const hasDecision = decision !== null\n const computedHeading = heading ?? `Cookies on ${serviceName}`\n\n const handleDecision = (nextDecision: Exclude<CookieDecision, null>) => {\n if (controlledDecision === undefined) {\n setInternalDecision(nextDecision)\n }\n onDecisionChange?.(nextDecision)\n }\n\n const handleHide = () => {\n setIsVisible(false)\n onHide?.()\n }\n\n if (!isVisible) {\n return null\n }\n\n return (\n <Box\n width=\"100%\"\n bg=\"primary.50\"\n borderBottom=\"1px solid\"\n borderColor=\"grey.100\"\n role=\"region\"\n aria-label={computedHeading}\n _dark={{\n bgColor: 'primary.950',\n borderColor: 'grey.900',\n }}\n {...props}\n >\n <Box maxW=\"960px\" mx=\"auto\" px={{ base: pxToRem(15), md: pxToRem(30) }} py={pxToRem(20)}>\n {!hasDecision ? (\n <Stack gap={pxToRem(15)} alignItems=\"flex-start\">\n <Heading as=\"h2\" size={24} color=\"fg\" mb={0}>\n {computedHeading}\n </Heading>\n\n <Text fontSize={19} color=\"fg\" mb={0}>\n {essentialCookiesText}\n </Text>\n\n <Text fontSize={19} color=\"fg\" mb={0}>\n {analyticsCookiesText}\n </Text>\n\n <HStack wrap=\"wrap\" align=\"center\" gap={pxToRem(12)}>\n <Button onClick={() => handleDecision('accepted')}>{acceptButtonText}</Button>\n <Button variant=\"primary\" onClick={() => handleDecision('rejected')}>\n {rejectButtonText}\n </Button>\n <Link href={viewCookiesHref}>{viewCookiesText}</Link>\n </HStack>\n </Stack>\n ) : (\n <Stack\n gap={pxToRem(12)}\n alignItems=\"flex-start\"\n role=\"alert\"\n tabIndex={-1}\n ref={(node) => {\n if (node) {\n node.focus()\n }\n }}\n _focusVisible={{ outline: 'none' }}\n >\n <Text fontSize={19} color=\"fg\" mb={0}>\n {decision === 'accepted' ? acceptedConfirmationText : rejectedConfirmationText}\n </Text>\n\n <HStack wrap=\"wrap\" align=\"center\" gap={pxToRem(12)}>\n <Button variant=\"primary\" onClick={handleHide}>\n {hideButtonText}\n </Button>\n <Link href={viewCookiesHref}>{viewCookiesText}</Link>\n </HStack>\n </Stack>\n )}\n </Box>\n </Box>\n )\n}\n","import { Box, Input as ChakraInput, chakra, type BoxProps, type InputProps } from '@chakra-ui/react'\nimport { createContext, forwardRef, useContext, useId, type ReactNode } from 'react'\n\nimport { pxToRem } from '@/utils'\nimport { Text } from '@/components/Text'\nimport { Heading } from '@/components/Heading'\n\n// ─── Context ─────────────────────────────────────────────────────────\n\ninterface DateInputContextValue {\n invalid?: boolean\n showHint?: boolean\n hideLegend?: boolean\n asPageHeading?: boolean\n hintId: string\n errorId: string\n describedBy?: string\n}\n\ninterface DateInputFieldContextValue {\n inputId: string\n}\n\nconst DateInputContext = createContext<DateInputContextValue>({\n hintId: '',\n errorId: '',\n})\nconst DateInputFieldContext = createContext<DateInputFieldContextValue | null>(null)\nconst useDateInputContext = () => useContext(DateInputContext)\nconst useDateInputFieldContext = () => useContext(DateInputFieldContext)\n\n// ─── Types ───────────────────────────────────────────────────────────\n\nexport type DateInputWidth = '2' | '4'\n\nconst WIDTH_MAX: Record<DateInputWidth, string> = {\n '2': '5.4ex',\n '4': '9ex',\n}\n\nexport interface DateInputRootProps extends BoxProps {\n children: ReactNode\n asPageHeading?: boolean\n invalid?: boolean\n showHint?: boolean\n hideLegend?: boolean\n}\n\nexport interface DateInputLegendProps {\n /** Render the legend as an h1 page heading */\n\n children: ReactNode\n}\n\nexport interface DateInputHintProps {\n id?: string\n children: ReactNode\n}\n\nexport interface DateInputErrorProps {\n id?: string\n children: ReactNode\n}\n\nexport interface DateInputContainerProps extends BoxProps {\n children: ReactNode\n}\n\nexport interface DateInputFieldProps extends BoxProps {\n children: ReactNode\n}\n\nexport interface DateInputLabelProps {\n htmlFor?: string\n children: ReactNode\n}\n\nexport interface DateInputInputProps extends Omit<InputProps, 'size'> {\n inputWidth?: DateInputWidth\n}\n\n// ─── Subcomponents ───────────────────────────────────────────────────\n\nexport const DateInput = {\n Root: forwardRef<HTMLDivElement, DateInputRootProps>(function DateInputRoot(\n { children, invalid, hideLegend = false, asPageHeading = false, showHint = false, ...props },\n ref\n ) {\n const generatedId = useId()\n const baseId = `govuk-date-input-${generatedId}`\n const hintId = `${baseId}-hint`\n const errorId = `${baseId}-error`\n const describedBy =\n [showHint ? hintId : undefined, invalid ? errorId : undefined].filter(Boolean).join(' ') ||\n undefined\n\n return (\n <DateInputContext.Provider\n value={{\n invalid: Boolean(invalid),\n showHint: Boolean(showHint),\n hideLegend: Boolean(hideLegend),\n asPageHeading: Boolean(asPageHeading),\n hintId,\n errorId,\n describedBy,\n }}\n >\n <Box\n ref={ref}\n paddingLeft={invalid ? pxToRem(15) : 0}\n borderLeft={invalid ? `${pxToRem(5)} solid` : '0'}\n borderColor={invalid ? 'border.error' : 'transparent'}\n {...props}\n >\n <Box as=\"fieldset\" border=\"0\" p={0} m={0} minInlineSize={0}>\n {children}\n </Box>\n </Box>\n </DateInputContext.Provider>\n )\n }),\n\n Legend: forwardRef<HTMLDivElement, DateInputLegendProps>(function DateInputLegend(\n { children, ...props },\n ref\n ) {\n const { hideLegend, asPageHeading } = useDateInputContext()\n if (hideLegend) return null\n return (\n <Box ref={ref} as=\"legend\" mb={pxToRem(10)} width=\"100%\" {...props}>\n {asPageHeading ? (\n <Heading as=\"h1\" size={36} color=\"fg\">\n {children}\n </Heading>\n ) : (\n <Text as=\"span\" fontSize={24} fontWeight=\"700\" color=\"fg\">\n {children}\n </Text>\n )}\n </Box>\n )\n }),\n\n Hint: forwardRef<HTMLParagraphElement, DateInputHintProps>(function DateInputHint(\n { children, ...props },\n ref\n ) {\n const { hintId, showHint } = useDateInputContext()\n if (!showHint) return null\n\n return (\n <Text ref={ref} id={hintId} fontSize={19} color=\"fg.muted\" mb={pxToRem(15)} {...props}>\n {children}\n </Text>\n )\n }),\n\n Error: forwardRef<HTMLParagraphElement, DateInputErrorProps>(function DateInputError(\n { children, ...props },\n ref\n ) {\n const { errorId, invalid } = useDateInputContext()\n if (!invalid) return null\n\n return (\n <Text\n ref={ref}\n id={errorId}\n fontSize={19}\n color=\"border.error\"\n fontWeight=\"700\"\n mb={3}\n {...props}\n >\n {children}\n </Text>\n )\n }),\n\n Container: forwardRef<HTMLDivElement, DateInputContainerProps>(function DateInputContainer(\n { children, ...props },\n ref\n ) {\n return (\n <Box ref={ref} display=\"flex\" flexWrap=\"wrap\" gap={pxToRem(20)} {...props}>\n {children}\n </Box>\n )\n }),\n\n Field: forwardRef<HTMLDivElement, DateInputFieldProps>(function DateInputField(\n { children, ...props },\n ref\n ) {\n const generatedId = useId()\n const inputId = `govuk-date-input-field-${generatedId}`\n\n return (\n <DateInputFieldContext.Provider value={{ inputId }}>\n <Box ref={ref} display=\"flex\" flexDirection=\"column\" gap={pxToRem(10)} {...props}>\n {children}\n </Box>\n </DateInputFieldContext.Provider>\n )\n }),\n\n Label: forwardRef<HTMLLabelElement, DateInputLabelProps>(function DateInputLabel(\n { children, ...props },\n ref\n ) {\n const field = useDateInputFieldContext()\n\n return (\n <chakra.label\n ref={ref}\n htmlFor={props.htmlFor ?? field?.inputId}\n fontSize={pxToRem(19)}\n lineHeight={pxToRem(25)}\n color=\"fg\"\n marginBottom={0}\n {...props}\n >\n {children}\n </chakra.label>\n )\n }),\n\n Input: forwardRef<HTMLInputElement, DateInputInputProps>(function DateInputInput(\n { id, inputWidth = '2', ...props },\n ref\n ) {\n const { describedBy, invalid } = useDateInputContext()\n const field = useDateInputFieldContext()\n const describedByIds =\n [describedBy, props['aria-describedby']].filter(Boolean).join(' ') || undefined\n\n return (\n <ChakraInput\n ref={ref}\n id={id ?? field?.inputId}\n aria-describedby={describedByIds}\n w=\"100%\"\n maxW={WIDTH_MAX[inputWidth]}\n inputMode=\"numeric\"\n borderRadius=\"0\"\n borderWidth={pxToRem(2)}\n borderColor={invalid ? 'border.error' : 'border.input'}\n bgColor=\"transparent\"\n color=\"fg\"\n fontSize={pxToRem(19)}\n lineHeight={pxToRem(25)}\n px={pxToRem(8)}\n py={pxToRem(5)}\n h={pxToRem(40)}\n _placeholder={{ color: 'fg.muted', opacity: 1 }}\n _hover={{ borderColor: invalid ? 'border.error' : 'border.input' }}\n _focusVisible={{\n outline: `${pxToRem(3)} solid`,\n outlineColor: 'focus',\n outlineOffset: '0',\n borderColor: invalid ? 'border.error' : 'border.input',\n boxShadow: 'inset 0 0 0 2px {colors.border.input})',\n }}\n _invalid={{ borderColor: 'border.error' }}\n _disabled={{\n opacity: 1,\n cursor: 'not-allowed',\n color: 'fg.disabled',\n bgColor: 'bg.disabled',\n }}\n {...props}\n />\n )\n }),\n}\n\n// ─── Named Exports ───────────────────────────────────────────────────\n\nexport const DateInputRoot = DateInput.Root\nexport const DateInputLegend = DateInput.Legend\nexport const DateInputHint = DateInput.Hint\nexport const DateInputError = DateInput.Error\nexport const DateInputContainer = DateInput.Container\nexport const DateInputField = DateInput.Field\nexport const DateInputLabel = DateInput.Label\nexport const DateInputInput = DateInput.Input\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport { forwardRef, type ReactNode } from 'react'\n\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nexport interface DetailsRootProps extends BoxProps {\n children: ReactNode\n}\n\nexport interface DetailsSummaryProps extends BoxProps {\n children: ReactNode\n}\n\nexport interface DetailsContentProps extends BoxProps {\n children: ReactNode\n}\n\nexport type DetailsTextProps = React.ComponentProps<typeof Text>\n\nconst DetailsRoot = forwardRef<HTMLDetailsElement, DetailsRootProps>(function DetailsRoot(\n { children, ...props },\n ref\n) {\n return (\n <Box ref={ref} as=\"details\" mb={pxToRem(20)} {...props}>\n {children}\n </Box>\n )\n})\n\nconst DetailsSummary = forwardRef<HTMLElement, DetailsSummaryProps>(function DetailsSummary(\n { children, ...props },\n ref\n) {\n return (\n <Box\n ref={ref}\n as=\"summary\"\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={pxToRem(8)}\n cursor=\"pointer\"\n color=\"fg.link\"\n borderRadius={2}\n textDecoration=\"underline\"\n textDecorationThickness=\"max(1px, 0.0625rem)\"\n textUnderlineOffset=\"0.1578em\"\n _hover={{\n color: 'fg.link',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n '&:focus': {\n color: 'common.black',\n },\n }}\n _focus={{\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n bgColor: 'yellow.500',\n color: 'fg',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n }}\n _dark={{\n _hover: {\n color: 'primary.200',\n '&:focus': {\n color: 'common.black',\n },\n },\n _focus: {\n color: 'common.black',\n },\n }}\n css={{\n '&::-webkit-details-marker': {\n display: 'none',\n },\n 'details[open] > &:hover': {\n color: 'fg',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n }}\n {...props}\n >\n <Box\n as=\"span\"\n aria-hidden=\"true\"\n width={0}\n height={0}\n borderTop={`${pxToRem(6)} solid transparent`}\n borderBottom={`${pxToRem(6)} solid transparent`}\n borderLeft={`${pxToRem(10)} solid currentColor`}\n transform=\"rotate(0deg)\"\n transition=\"transform 0.1s ease\"\n css={{\n 'details[open] &': {\n transform: 'rotate(90deg)',\n },\n }}\n />\n {children}\n </Box>\n )\n})\n\nconst DetailsContent = forwardRef<HTMLDivElement, DetailsContentProps>(function DetailsContent(\n { children, ...props },\n ref\n) {\n return (\n <Box\n ref={ref}\n mt={pxToRem(15)}\n pl={pxToRem(20)}\n borderLeft=\"5px solid\"\n borderColor=\"border\"\n {...props}\n >\n {children}\n </Box>\n )\n})\n\nconst DetailsText = forwardRef<HTMLParagraphElement, DetailsTextProps>(\n function DetailsText(props, ref) {\n return <Text ref={ref} fontSize={19} color=\"fg\" mb={0} {...props} />\n }\n)\n\nexport const Details = {\n Root: DetailsRoot,\n Summary: DetailsSummary,\n Content: DetailsContent,\n Text: DetailsText,\n}\n\nexport { DetailsRoot, DetailsSummary, DetailsContent, DetailsText }\n","import { Dialog as ChakraDialog } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type DialogProps = ComponentPropsWithoutRef<typeof ChakraDialog.Root>\ntype DialogComponent = typeof ChakraDialog.Root & typeof ChakraDialog\n\nexport const DialogRoot = ChakraDialog.Root\n\nexport const Dialog: DialogComponent = Object.assign(ChakraDialog.Root, {\n ...ChakraDialog,\n})\n","import { Editable as ChakraEditable } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type EditableProps = ComponentPropsWithoutRef<typeof ChakraEditable.Root>\ntype EditableComponent = typeof ChakraEditable.Root & typeof ChakraEditable\n\nexport const EditableRoot = ChakraEditable.Root\n\nexport const Editable: EditableComponent = Object.assign(ChakraEditable.Root, {\n ...ChakraEditable,\n})\n","import { EmptyState as ChakraEmptyState } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef, ForwardRefExoticComponent, RefAttributes } from 'react'\n\ntype EmptyStateColorPalette =\n | 'gray'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'green'\n | 'teal'\n | 'blue'\n | 'cyan'\n | 'purple'\n | 'pink'\n\ntype EmptyStateSize = 'sm' | 'md' | 'lg'\ntype EmptyStateVariant = 'subtle' | 'solid' | 'outline' | 'plain'\n\ntype ChakraEmptyStateRootProps = Omit<\n ComponentPropsWithoutRef<typeof ChakraEmptyState.Root>,\n 'colorPalette' | 'size' | 'variant'\n>\n\nexport interface EmptyStateProps extends ChakraEmptyStateRootProps {\n colorPalette?: EmptyStateColorPalette\n size?: EmptyStateSize\n variant?: EmptyStateVariant\n}\n\ntype EmptyStateRootComponent = ForwardRefExoticComponent<\n EmptyStateProps & RefAttributes<HTMLDivElement>\n>\ntype EmptyStateComponent = typeof ChakraEmptyState & { Root: EmptyStateRootComponent }\n\nexport const EmptyStateRoot = ChakraEmptyState.Root as unknown as EmptyStateRootComponent\n\nexport const EmptyState = Object.assign(EmptyStateRoot, {\n ...ChakraEmptyState,\n Root: EmptyStateRoot,\n}) as EmptyStateComponent\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport {\n createContext,\n forwardRef,\n useContext,\n useEffect,\n useId,\n useRef,\n type ReactNode,\n} from 'react'\n\nimport { Heading } from '@/components/Heading/Heading'\nimport { Link } from '@/components/Link/Link'\nimport { Text } from '@/components/Text/Text'\nimport { pxToRem } from '@/utils'\n\ninterface ErrorSummaryContextValue {\n headingId: string\n}\n\nconst ErrorSummaryContext = createContext<ErrorSummaryContextValue | null>(null)\nconst useErrorSummaryContext = () => useContext(ErrorSummaryContext)\n\nexport interface ErrorSummaryRootProps extends BoxProps {\n children: ReactNode\n disableAutoFocus?: boolean\n}\n\nexport interface ErrorSummaryTitleProps extends React.ComponentProps<typeof Heading> {\n children: ReactNode\n}\n\nexport interface ErrorSummaryDescriptionProps extends React.ComponentProps<typeof Text> {\n children: ReactNode\n}\n\nexport interface ErrorSummaryListProps extends BoxProps {\n children: ReactNode\n}\n\nexport interface ErrorSummaryItemProps extends BoxProps {\n children: ReactNode\n}\n\nexport interface ErrorSummaryLinkProps extends React.ComponentProps<typeof Link> {\n children: ReactNode\n}\n\nconst ErrorSummaryRoot = forwardRef<HTMLDivElement, ErrorSummaryRootProps>(\n function ErrorSummaryRoot({ children, disableAutoFocus = false, id, ...props }, ref) {\n const generatedId = useId()\n const headingId = id ? `${id}-title` : `govuk-error-summary-${generatedId}-title`\n const localRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!disableAutoFocus) {\n localRef.current?.focus()\n }\n }, [disableAutoFocus])\n\n return (\n <ErrorSummaryContext.Provider value={{ headingId }}>\n <Box\n ref={(node: HTMLDivElement | null) => {\n localRef.current = node\n\n if (typeof ref === 'function') {\n ref(node)\n } else if (ref) {\n ref.current = node\n }\n }}\n id={id}\n as=\"section\"\n role=\"alert\"\n aria-labelledby={headingId}\n tabIndex={-1}\n borderStyle=\"solid\"\n borderWidth={pxToRem(5)}\n borderColor=\"border.error\"\n bg=\"transparent\"\n color=\"fg\"\n p={{ base: pxToRem(15), md: pxToRem(20) }}\n _focusVisible={{\n outline: `${pxToRem(3)} solid`,\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n }}\n {...props}\n >\n {children}\n </Box>\n </ErrorSummaryContext.Provider>\n )\n }\n)\n\nconst ErrorSummaryTitle = forwardRef<HTMLHeadingElement, ErrorSummaryTitleProps>(\n function ErrorSummaryTitle({ children, id, ...props }, ref) {\n const context = useErrorSummaryContext()\n const titleId = id ?? context?.headingId\n\n return (\n <Heading ref={ref} as=\"h2\" id={titleId} size={24} color=\"fg\" mb={pxToRem(15)} {...props}>\n {children}\n </Heading>\n )\n }\n)\n\nconst ErrorSummaryDescription = forwardRef<HTMLParagraphElement, ErrorSummaryDescriptionProps>(\n function ErrorSummaryDescription({ children, ...props }, ref) {\n return (\n <Text ref={ref} fontSize={19} color=\"fg.muted\" mb={pxToRem(15)} {...props}>\n {children}\n </Text>\n )\n }\n)\n\nconst ErrorSummaryList = forwardRef<HTMLUListElement, ErrorSummaryListProps>(\n function ErrorSummaryList({ children, ...props }, ref) {\n return (\n <Box ref={ref} as=\"ul\" listStyleType=\"none\" m={0} p={0} {...props}>\n {children}\n </Box>\n )\n }\n)\n\nconst ErrorSummaryItem = forwardRef<HTMLLIElement, ErrorSummaryItemProps>(function ErrorSummaryItem(\n { children, ...props },\n ref\n) {\n return (\n <Box ref={ref} as=\"li\" m={0} mb={pxToRem(5)} {...props}>\n {children}\n </Box>\n )\n})\n\nconst ErrorSummaryLink = forwardRef<HTMLAnchorElement, ErrorSummaryLinkProps>(\n function ErrorSummaryLink({ children, ...props }, ref) {\n return (\n <Link\n ref={ref}\n fontSize={19}\n fontWeight=\"700\"\n color=\"red.500\"\n _hover={{\n color: 'red.700',\n }}\n _dark={{\n color: 'red.200',\n _hover: {\n color: 'red.400',\n },\n _focus: {\n color: 'fg',\n },\n _visited: {\n color: 'govuk.darkGrey',\n },\n }}\n {...props}\n >\n {children}\n </Link>\n )\n }\n)\n\nexport const ErrorSummary = {\n Root: ErrorSummaryRoot,\n Title: ErrorSummaryTitle,\n Description: ErrorSummaryDescription,\n List: ErrorSummaryList,\n Item: ErrorSummaryItem,\n Link: ErrorSummaryLink,\n}\n\nexport {\n ErrorSummaryRoot,\n ErrorSummaryTitle,\n ErrorSummaryDescription,\n ErrorSummaryList,\n ErrorSummaryItem,\n ErrorSummaryLink,\n}\n","import { Box, chakra, type BoxProps, type InputProps } from '@chakra-ui/react'\nimport {\n createContext,\n forwardRef,\n useEffect,\n useContext,\n useId,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type ComponentProps,\n type Dispatch,\n type DragEvent,\n type ReactNode,\n type Ref,\n type RefObject,\n type SetStateAction,\n} from 'react'\n\nimport { Button, ButtonProps } from '@/components/Button'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\ninterface FileUploadContextValue {\n disabled: boolean\n invalid: boolean\n inputId: string\n hintId: string\n errorId: string\n describedBy?: string\n inputRef: RefObject<HTMLInputElement | null>\n isDragging: boolean\n fileText: string\n multiple: boolean\n openFileDialog: () => void\n setDragging: (isDragging: boolean) => void\n setFileText: Dispatch<SetStateAction<string>>\n setMultiple: Dispatch<SetStateAction<boolean>>\n}\n\nconst FileUploadContext = createContext<FileUploadContextValue | null>(null)\n\nconst useFileUploadContext = () => {\n const context = useContext(FileUploadContext)\n\n if (!context) {\n throw new Error('FileUpload components must be used within FileUpload.Root')\n }\n\n return context\n}\n\nconst getEmptyFileText = (multiple: boolean) => (multiple ? 'No files chosen' : 'No file chosen')\n\nconst formatSelectedFiles = (files: FileList | null, multiple: boolean) => {\n if (!files || files.length === 0) {\n return getEmptyFileText(multiple)\n }\n\n if (files.length === 1) {\n return files[0]?.name ?? getEmptyFileText(multiple)\n }\n\n return `${files.length} files chosen`\n}\n\nconst assignRef = <T,>(ref: Ref<T> | undefined, value: T) => {\n if (typeof ref === 'function') {\n ref(value)\n return\n }\n\n if (ref) {\n ;(ref as { current: T }).current = value\n }\n}\n\nexport interface FileUploadRootProps extends BoxProps {\n children: ReactNode\n id?: string\n disabled?: boolean\n invalid?: boolean\n}\n\nexport interface FileUploadLabelProps {\n children: ReactNode\n}\n\nexport interface FileUploadHintProps {\n children: ReactNode\n}\n\nexport interface FileUploadErrorProps {\n children: ReactNode\n}\n\nexport interface FileUploadDropzoneProps extends BoxProps {\n children: ReactNode\n prompt?: ReactNode\n}\n\nexport interface FileUploadTriggerProps extends Omit<ButtonProps, 'children'> {\n children?: ReactNode\n}\n\nexport interface FileUploadFileTextProps extends ComponentProps<typeof Text> {\n emptyText?: string\n}\n\nexport type FileUploadInputProps = Omit<InputProps, 'size' | 'type'>\n\nexport const FileUpload = {\n Root: forwardRef<HTMLDivElement, FileUploadRootProps>(function FileUploadRoot(\n { children, disabled = false, invalid = false, id, ...props },\n ref\n ) {\n const generatedId = useId()\n const inputId = id ?? `govuk-file-upload-${generatedId}`\n const hintId = `${inputId}-hint`\n const errorId = `${inputId}-error`\n const inputRef = useRef<HTMLInputElement>(null)\n const [isDragging, setDragging] = useState(false)\n const [multiple, setMultiple] = useState(false)\n const [fileText, setFileText] = useState(() => getEmptyFileText(false))\n\n const describedBy = useMemo(\n () => [hintId, invalid ? errorId : undefined].filter(Boolean).join(' ') || undefined,\n [errorId, hintId, invalid]\n )\n\n const openFileDialog = () => {\n if (disabled) {\n return\n }\n\n inputRef.current?.click()\n }\n\n return (\n <FileUploadContext.Provider\n value={{\n disabled,\n invalid,\n inputId,\n hintId,\n errorId,\n describedBy,\n inputRef,\n isDragging,\n fileText,\n multiple,\n openFileDialog,\n setDragging,\n setFileText,\n setMultiple,\n }}\n >\n <Box\n ref={ref}\n className=\"file-upload\"\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n gap={pxToRem(10)}\n paddingLeft={invalid ? pxToRem(15) : 0}\n borderLeft={invalid ? `${pxToRem(5)} solid` : '0'}\n borderColor={invalid ? 'border.error' : 'transparent'}\n _hover={{\n '& button': {\n bgColor: 'grey.100',\n },\n '& .dropzone': {\n bg: 'bg.subtle',\n borderColor: invalid ? 'border.error' : 'border',\n },\n _dark: {\n '& button': {\n bgColor: 'grey.700',\n },\n },\n }}\n {...props}\n >\n {children}\n </Box>\n </FileUploadContext.Provider>\n )\n }),\n\n Label: forwardRef<HTMLLabelElement, FileUploadLabelProps>(function FileUploadLabel(\n { children, ...props },\n ref\n ) {\n const { inputId } = useFileUploadContext()\n\n return (\n <chakra.label\n ref={ref}\n htmlFor={inputId}\n fontSize={pxToRem(19)}\n lineHeight={pxToRem(25)}\n color=\"fg\"\n marginBottom={0}\n {...props}\n >\n {children}\n </chakra.label>\n )\n }),\n\n Hint: forwardRef<HTMLParagraphElement, FileUploadHintProps>(function FileUploadHint(\n { children, ...props },\n ref\n ) {\n const { hintId } = useFileUploadContext()\n\n return (\n <Text ref={ref} id={hintId} fontSize={19} color=\"fg.muted\" marginBottom={0} {...props}>\n {children}\n </Text>\n )\n }),\n\n Error: forwardRef<HTMLParagraphElement, FileUploadErrorProps>(function FileUploadError(\n { children, ...props },\n ref\n ) {\n const { errorId, invalid } = useFileUploadContext()\n\n if (!invalid) {\n return null\n }\n\n return (\n <Text\n ref={ref}\n id={errorId}\n fontSize={19}\n color=\"border.error\"\n fontWeight=\"700\"\n marginBottom={0}\n {...props}\n >\n {children}\n </Text>\n )\n }),\n\n Dropzone: forwardRef<HTMLDivElement, FileUploadDropzoneProps>(function FileUploadDropzone(\n {\n children,\n prompt = 'Drag and drop files here or',\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDrop,\n ...props\n },\n ref\n ) {\n const { disabled, invalid, inputRef, isDragging, setDragging, setFileText, multiple } =\n useFileUploadContext()\n const promptLabel = typeof prompt === 'string' ? prompt : undefined\n\n const syncDroppedFiles = (files: FileList) => {\n if (!inputRef.current) {\n return\n }\n\n const dataTransfer = new DataTransfer()\n\n Array.from(files).forEach((file) => {\n dataTransfer.items.add(file)\n })\n\n inputRef.current.files = dataTransfer.files\n inputRef.current.dispatchEvent(new Event('change', { bubbles: true }))\n setFileText(formatSelectedFiles(dataTransfer.files, multiple))\n }\n\n const handleDragEnter = (event: DragEvent<HTMLDivElement>) => {\n if (disabled) {\n return\n }\n\n setDragging(true)\n onDragEnter?.(event)\n }\n\n const handleDragLeave = (event: DragEvent<HTMLDivElement>) => {\n setDragging(false)\n onDragLeave?.(event)\n }\n\n const handleDragOver = (event: DragEvent<HTMLDivElement>) => {\n if (disabled) {\n return\n }\n\n event.preventDefault()\n setDragging(true)\n onDragOver?.(event)\n }\n\n const handleDrop = (event: DragEvent<HTMLDivElement>) => {\n if (disabled) {\n return\n }\n\n event.preventDefault()\n setDragging(false)\n\n if (event.dataTransfer.files.length > 0) {\n syncDroppedFiles(event.dataTransfer.files)\n }\n\n onDrop?.(event)\n }\n\n return (\n <Box\n ref={ref}\n className=\"dropzone\"\n position=\"relative\"\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n gap={pxToRem(15)}\n width=\"100%\"\n padding={pxToRem(15)}\n borderWidth={pxToRem(2)}\n borderStyle=\"dashed\"\n borderColor={invalid ? 'border.error' : 'border.subtle'}\n bgColor={isDragging ? 'yellow.500' : 'transparent'}\n transition=\"background-color 0.15s ease, border-color 0.15s ease\"\n opacity={disabled ? 0.7 : 1}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n aria-label={promptLabel}\n {...props}\n >\n <Box\n display=\"flex\"\n className=\"dropzone-container\"\n w=\"full\"\n flexWrap=\"wrap\"\n flexDirection=\"column\"\n alignItems=\"flex-start\"\n gap={pxToRem(10)}\n >\n {children}\n </Box>\n </Box>\n )\n }),\n\n Trigger: forwardRef<HTMLButtonElement, FileUploadTriggerProps>(function FileUploadTrigger(\n { children, ...props },\n ref\n ) {\n const { disabled, multiple, openFileDialog } = useFileUploadContext()\n\n return (\n <Button\n ref={ref}\n type=\"button\"\n onClick={openFileDialog}\n disabled={disabled}\n borderRadius=\"0\"\n fontSize={pxToRem(19)}\n lineHeight={pxToRem(25)}\n fontWeight=\"400\"\n color=\"fg\"\n bgColor=\"bg.muted\"\n boxShadow=\"0 2px 0 var(--govuk-colors-grey-200)\"\n padding={`${pxToRem(8)} ${pxToRem(12)} ${pxToRem(7)}`}\n _hover={{\n bgColor: 'bg.muted',\n color: 'fg',\n }}\n _focusVisible={{\n outline: `${pxToRem(3)} solid`,\n outlineColor: 'yellow.500',\n outlineOffset: '0',\n color: 'fg',\n bgColor: 'yellow.500',\n boxShadow: '0 2px 0 var(--govuk-colors-grey-200)',\n }}\n _disabled={{\n opacity: 1,\n cursor: 'not-allowed',\n color: 'fg.muted',\n bgColor: 'bg.muted',\n }}\n {...props}\n >\n {children ?? (multiple ? 'Choose files' : 'Choose file')}\n </Button>\n )\n }),\n\n FileText: forwardRef<HTMLParagraphElement, FileUploadFileTextProps>(function FileUploadFileText(\n { emptyText, ...props },\n ref\n ) {\n const { fileText, multiple } = useFileUploadContext()\n\n const nextEmptyText = emptyText ?? getEmptyFileText(multiple)\n\n return (\n <Box\n bgColor={'primary.100'}\n py={pxToRem(15)}\n px={pxToRem(10)}\n textAlign=\"left\"\n wordWrap=\"break-word\"\n overflowWrap=\"break-word\"\n className=\"file-text\"\n w=\"full\"\n _dark={{\n bgColor: 'primary.900',\n }}\n >\n <Text ref={ref} fontSize={19} color=\"fg\" marginBottom={0} {...props}>\n {fileText === getEmptyFileText(multiple) ? nextEmptyText : fileText}\n </Text>\n </Box>\n )\n }),\n\n Input: forwardRef<HTMLInputElement, FileUploadInputProps>(function FileUploadInput(\n { multiple = false, onChange, onBlur, onFocus, ...props },\n ref\n ) {\n const { describedBy, disabled, inputId, inputRef, setDragging, setFileText, setMultiple } =\n useFileUploadContext()\n const describedByIds =\n [describedBy, props['aria-describedby']].filter(Boolean).join(' ') || undefined\n\n useEffect(() => {\n setMultiple(Boolean(multiple))\n setFileText((currentValue) =>\n currentValue === getEmptyFileText(!multiple) || currentValue === getEmptyFileText(multiple)\n ? getEmptyFileText(Boolean(multiple))\n : currentValue\n )\n }, [multiple, setFileText, setMultiple])\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFileText(formatSelectedFiles(event.target.files, multiple))\n onChange?.(event)\n }\n\n return (\n <chakra.input\n ref={(node: HTMLInputElement | null) => {\n assignRef(ref, node)\n assignRef(inputRef, node)\n }}\n id={inputId}\n type=\"file\"\n multiple={multiple}\n disabled={disabled}\n aria-describedby={describedByIds}\n onFocus={onFocus}\n onBlur={onBlur}\n onChange={handleChange}\n onClick={() => {\n setDragging(false)\n }}\n position=\"absolute\"\n width=\"1px\"\n height=\"1px\"\n padding=\"0\"\n margin=\"-1px\"\n overflow=\"hidden\"\n clip=\"rect(0, 0, 0, 0)\"\n whiteSpace=\"nowrap\"\n border=\"0\"\n {...props}\n />\n )\n }),\n}\n\nexport const FileUploadRoot = FileUpload.Root\nexport const FileUploadLabel = FileUpload.Label\nexport const FileUploadHint = FileUpload.Hint\nexport const FileUploadError = FileUpload.Error\nexport const FileUploadDropzone = FileUpload.Dropzone\nexport const FileUploadTrigger = FileUpload.Trigger\nexport const FileUploadFileText = FileUpload.FileText\nexport const FileUploadInput = FileUpload.Input\n","import { Icon, type IconProps } from '@chakra-ui/react'\nimport { forwardRef, useId } from 'react'\n\nexport interface GOVUKCrestProps extends Omit<IconProps, 'children'> {\n title?: string\n titleId?: string\n}\n\nexport const GOVUKCrest = forwardRef<SVGSVGElement, GOVUKCrestProps>(function GOVUKCrest(\n { title = 'GOV.UK Crest', titleId, ...props },\n ref\n) {\n const autoTitleId = useId()\n const resolvedTitleId = title ? (titleId ?? autoTitleId) : undefined\n\n return (\n <Icon\n as=\"svg\"\n ref={ref}\n width=\"125\"\n height=\"102\"\n viewBox=\"0 0 125 102\"\n fill=\"none\"\n aria-hidden={title ? undefined : true}\n aria-labelledby={resolvedTitleId}\n role={title ? 'img' : undefined}\n {...props}\n >\n {title ? <title id={resolvedTitleId}>{title}</title> : null}\n <path\n fill=\"currentColor\"\n d=\"m108.76 55.62-.27-.03-.74-1.97c.35-.44.53-1.14 0-1.49-.72-.28-2.74-2.56-3.34-1.08-.26.09-1.86.18-1.98.47a17.72 17.72 0 0 1-1.9-3.9c.31-1.64 4.72-3.7 4.72-3.7s-1.25-1.78-1.75-2.79c-.22.5-.42.29-.9.5 2.44-4.3 2.96-9.97-.28-14.04-.33-.7-.18-1.63-.5-2.33-.56-.73-.95-2.18-1.95-2.33 0 1.28-.13 2.53.5 3.72.66.82-.92 1.53-1.4.87.93-.1 1.1-.29.77-.82-4.05-.9-6.3 1.92-10.17 2.36-.34 0-.64.12-.83.42-2.38 3.17 2.96 1.01 3.42 3.11-.89.73-1.01.25-1.85.04-1.2.05-2.36.42-.86 1.42-.92 1.43-.87 1.93-2.74 2.05.81 1.13.64 2.76.85 4.04-1.33.24-2.23.87-2.26 2.28-.6.13-1.24-.18-1.66.46-.84-.69-1.8-.81-2.8-.83-.48-.36-1.66-1.2-2.93-1.84l.71-2.62 2.06-1.3-1.08-2.15c2.39-8.11 3.16-8.57 4.37-8.74l.06-.23-4.4-1.4-.08.3c1.1.8 1.47 2.12.96 3.68-1.17-.5-1.84-1.61-1.72-2.6l-.29-.08-1.47 4.85.23.07c.58-.83 1.6-1.3 2.76-1.1-1.36 4.29-7.5 2.95-6.4-.7.78-1.5 2.27-.54 1.55 1.04 3.45-1.2 1.41-6.1-1.53-3.17.97-1.98 1.52-3.53.3-5.44-1.59 1.01-2 2.84-1.69 5.27-1.94-4.4-5.33.13-2.58 2.43-.5-3.27 3.58-1.11.82 1.52-2.63 1.84-5.86-.27-5.95-3.52 1.52.13 2.67 1.02 2.83 2.14h.28l.19-5.54-.35-.01c-.23 1.12-1.47 2.07-3.02 2.1.1-1.7 1.1-3.04 2.37-3.26v-.31h-6.46v.31c1.28.22 2.27 1.55 2.38 3.26-1.56-.03-2.8-.98-3.03-2.1l-.34.01.18 5.55.28-.01c.16-1.12 1.32-2.01 2.83-2.14-.09 3.24-3.32 5.36-5.95 3.52-2.75-2.63 1.32-4.79.82-1.52 2.76-2.3-.64-6.83-2.58-2.43.3-2.43-.1-4.26-1.69-5.27-1.22 1.91-.67 3.46.3 5.44-2.94-2.93-4.97 1.98-1.53 3.17-.71-1.58.77-2.54 1.55-1.04 1.1 3.65-5.04 4.99-6.4.7 1.17-.2 2.18.27 2.76 1.1l.24-.07-1.48-4.85-.3.08c.14.99-.53 2.1-1.71 2.6-.5-1.56-.15-2.89.97-3.69l-.08-.28-4.41 1.4.06.22c1.21.17 1.98.63 4.37 8.74l-1.08 2.15 2.06 1.3.65 2.37.02-.01c0 .03-.01.04-.02.01-5.94 2.75-4.59 4.61-9.15 4.08-.41.93-.8 1.86-1.72 2.5a6.64 6.64 0 0 0-1.67-3.56c-.42-.49-1 .05-1.63.1-1.24 2.67-2.1.26-4.28 1.65.09 1.25.28 2.49.97 3.64a7.83 7.83 0 0 1-4.04-1.3c-4.85 5.36-9.92 10.51-14.07 16.42-2.21 2.9-8.14 1.2-6.58-2.79.72-2.91 4.97-2.29 4.7.6 2.1-2.31.76-4.61-2.46-4.1 2.95-1.26 4.72 1.13 7.38-2.15-2.03.04-3.75-.6-5.78-.13 2.57-1.52 6.09.74 8.27-3.45-1.9.2-3.63.99-5.6 1.28 11.84-11.18.45-11.73 1.9-16.56-.93.78-1.46 1.56-1.03 2.6-2.66-1.1-6.59-.77-7.66-3.96-.26 4.54 1.75 4.22 5.22 5.15-1.6-.19-3.18-.2-4.68-.75.31 2.04 1.87 2.47 3.71 2.28-1.8.98-1.39 3.52.44 4.39-1.17-6.57 8.78-4.32 4.24 1.72-2.11 3.1-5.16 5.42-7.72 8.13-.49-.83-1-1.66-2.11-1.54 1.95 2.23-.25 4.66-.77 6.96-.75 2.84 1.79 5.26 4.5 5.6-1.08 1.27-1.16 2.4-.33 3.44.82-4.18 6.94-3.24 7.52-7.76.1-.53.36-.95.96-1.19-2.76 3.09 3.87 9.62-2.36 10.38-.89.03-1.1.95-.62 1.61-2.57-.13-3.28.84-3.67 3.25l3.25-.84c-1.12 2.9-3.66-.17-3.24 5 1.04-.49 2.02-1.01 2.97-1.6.92 2.9-4.67 1.65-.47 6.28a8.57 8.57 0 0 1 1.95-3.03c-.51 1.46-.4 3.15 1.26 3.8l.22-1.07h.13c.24.96.28 2.3 1.22 2.86.31.12.48.3.59.62.17.54.67.68 1.16.74.62.13.78-.56 1.23-.84.13.76 1.04.89 1.5 1.54.33-3.77-4.72-2.4-3.56-4.9.45 1.52 1.88 1.2 2.88 1.81.4.63 1.34 1.16 1.82.28l1.31.97c-.98-4.47-3.33-1.7-4.8-4.05 1.02.04 2.12 1.55 3.23.52.6.61 1.06 1.32 1.51 2.04a3.29 3.29 0 0 0-1.5-3.32c-1.28-.77-3.02.6-4.12-.95-1.5-1.83-1.45-4.4-.67-6.52.71-1.63 2.7-2.24 3.63-3.78-.26 1.36-.13 3.73 1.43 4.17-.38-2.53 1.44-4.81 1.81-7.26.48-.62.5-1.1.07-1.77-.78-1.26-.99-2.77-1.84-4.01-1.33-1.85-2.97-1.9-.26-3.84-1.64 2.53-.3 1.6 1.12 3.99.26-.8 1.47-1.85-.04-1.85-2.39-1.16 3.1-4.18 4.35-4.25 1.23-.1 2.94.04 3.87-1.16C32.56 55 32 54.83 33 53.7c-.67-.39-1.26-.85-1.38-1.71l-1.85.63c.6-.67 2.37-2.03 2.56-.52.04.84.89 1 1.55 1.2-.48.7-1.28 1.4-.55 2.2.5.54.82 1.54 1.61 1.67l.63-2.31c1.74 1.8-1.75 2.8 3.03 4.43a9.56 9.56 0 0 1-.2-2.93c2.3 1.9-1 3.1 4.3 3.72-.58-.7-.72-1.46-.94-2.24.89.15 1.6.98 2.17 1.61.55.83.95 1.28 2.2.47.06.15.07.34.18.43.56.42.33.93.32 1.49h.15c.74-.74.8-1.58.56-2.5-.5-1.74-2.65-.36-3.4-2.13 1 .68 2.02 1.08 3.13.5.62.59.88 1.01 1.18 1.83.5-1.87-.08-3.78-2.07-3.22-.62.22-.88.17-1.5-.37.92.32 1.54-.15 2.13-.57.13.17.2.35.29.36.56.03.92.36 1.27.77.19-1.6-1.42-2.9-3.04-2.49-.4 1.97-2.07.86-3.4.6-2.04-1.2-3.12-3.47-4.93-4.95a3.6 3.6 0 0 0-3.9-3.83c2-.87 4.39.84 4.54 2.91.08.85.6 1.39 1.14 2.02 6.79-13.5 28.69-17.04 41.26-8.47 1.07.98 2.23 1.77 3.34 2.8.44-1.3.18-2.83 2.12-2.05l.37-.24a1.84 1.84 0 0 1 1.58-2.4v.84c-.5.09-.9.57-.82 1.1.39-.09.74.42.53.75a1 1 0 0 0 1.16-.18l.96.08c-.44 1.04-1.97 1.4-2.84.63.17.23-.58 2.53-.6 2.8a.73.73 0 0 1-.75.54l.38.61c.55-.3 1.32-.28 1.25-1.05.1-.44-.18-2.46.45-2.28.25.77-.23 1.65.34 2.4 1.82-.44 1.02-2.06 3.22-2.48.88-.08 2.72-.5 3.19.36-1.92-.5-4.4.02-4.83 2.19-2 .46-3.68 1.88-5.8 1.88-1.7.09-2.15 2.1-2.22 3.48-.29 1.58-.37 3.22-1.08 4.69-.35.56-.06 1.2.13 1.72.65.34 1.11 2.56 1.2 3.36 0 1.45 2.51 1.93 3.54 2.84.28-1.82-3.2-1.3-2.71-3.85.62 1.69 1.97 2.03 3.45 2.86-.46-1.7-.6-4.53-3-4.18-.93-1.27.42-1.34-.01-2.86.69.21 1.01.45 1.2.87l-.7-.22c.08 1.08 1.02 1.33 1.75 2.07-.12-1.76-.28-2.87-1.94-3.73-.94-.85.14-2.81.08-3.99-.03-.34 2.22-1.45 2.56-1.35 1.67.21 3.41-.05 5.02.36 1.61.5.23-2.95 2.83-1.13-1.88-.55-.74 1.48-2.1 1.59-.94 0-1.75-.08-2.74-.12 3.42 7.52 10.99 5.32 13.07 12.03 1.74-1.52.56-1.5.07-3.09 3.94 2.6-3.66 5.6-.8 10.16-.19-.52 1.6-2.65 1.8-3.08.32-.48.88-.5 1.23-.16l.57-1.17c-1.06-.57.86-3.03 1-3.73.2-.42.65-.62 1-.45l.53-1.46c-1-.27-.25-2.67-.33-3.34-1.4-1.26-2.56-2.84-3.65-4.3l.67-.1c-.07.32.05.68.33.87.48.19 2.33 1.96 2.91 1.54l.3.78c-.47.12-.55.77-.56 1.21.25.2.52.4.76.62.03-.16.01-.87.15-.98.22.29.62.3.87.06.22.12-.06 1.67-.03 1.87.27.3.53.6.77.9-.1-.7.78-3.43-.44-3.57ZM88.93 30.25l.76-.08c-.5-.35-.02-.84.4-.5.98.76-1 2-1.16.58Zm-39.44 7.11-2.07-1.3 1.1-2.2 2.98 1.06-2 2.44Zm6.78-1.7c-3.25.66-3.93-2.88-.67-3.47 3.24-.65 3.93 2.89.67 3.47Zm7.34-.27-3.2-2.24 3.2-2.23 3.2 2.23-3.2 2.24Zm10.19-.99c-.38 2.27-5.5 1.29-5.01-.95.38-2.26 5.5-1.29 5 .95Zm1.92.52 3-1.05 1.09 2.18-2.08 1.31-2.01-2.44Zm24.64-10.39c.6.65.85 1.35.85 2.14-.57-.19-.81-.8-.85-2.14Zm-2.69 4.2c-.79.53-1.5 1.32-2.3.25l-.54.1c1.2-1.83 1.1-1.51 2.84-.36Zm-6.61 6.64c.53.19 1.03.46 1.56-.06-.51 0-.67-.36-.81-.7-.25-1.73 2.6-1.12 3.66-1 2.68 1.62 7.23.6 5.65-3.24 1.24.75.81 2.86-.13 3.68-2.47 1.32-4.82.32-7.29 2.92-.37-1.19-1.8-1.12-2.3.18l-1.05.05c-.08-.68.49-1.18.71-1.83Zm9.33 11.35-.33.42c-2.06-2.32-9-4.99-12-4.56l.05-.53-.02.02 1.14-.72-.98-.8c.01-.11-.62-4.02-.62-4.02l1.72-.05s-.61.7-.64 1.27c.1.07.18.17.24.29.34-.15.71-.86.71-.86l.16 2.32s-.47-.67-.82-.79a.56.56 0 0 1-.13.23c.5 1.53 2.76 1.62 2.77.3-.08-.67-.84-.56-.8.16-1.24-.98.44-2.53 1.12-.97-.08-.9 0-1.41.7-1.85.47.58.4 1.13-.1 2 1.52-1.4 2.1.98.67 1.33.7-1.25-1.31-.86-.57.45.67 1.02 2.3.87 2.88-.24a.62.62 0 0 1-.08-.21c-.58-.1-1.43.37-1.43.37l.8-2.13s.33.91.8 1.2c.1-.08.2-.14.32-.17.09-.56-.48-1.44-.48-1.44l2.64 1.01s-1.05.26-1.38.73c.06.1.1.21.11.33.55.1 1.44-.34 1.44-.34l-.94 2.07s-.28-.9-.77-1.2a.68.68 0 0 1-.21.1 1.64 1.64 0 0 0 1.92 2.07c1.46-.44.3-2.08-.1-.7-.78-1.21 1.34-2.54 1.44-.52.26-.97.6-1.41 1.36-1.53.2.79-.1 1.21-.82 1.8 1.64-.67 1.71 1.57.13 1.45.55-.5.07-1.08-.47-.63-.94.97.82 2.37 2.2 1.67 0-.08.03-.17.07-.25-.35-.23-1.16-.26-1.16-.26l1.7-1.24s-.21.75-.05 1.15c.13-.02.25 0 .37.04.37-.37.39-1.34.39-1.34l1.26 1.56s-3.17 1.45-3.73 1.87l-.88-.1.43 1.24h-.03Zm6.83 6.38c-.4-.03-.73.31-.6.74a.25.25 0 0 1-.11-.04l-1.86-1.26a.3.3 0 0 1-.09-.38c.35-.01.73-.2.68-.61.14.18 2.14 1.23 1.98 1.55Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M84.8 44.17c-.14-.17-.17-.4-.05-.59-.22-.04-.6 2.03-.67 2.15.15.14.28.28.4.43.2.05.53.16.6-.12l.48-1.83c-.22.2-.58.22-.75-.04ZM56.86 95.9c-5.24-2.05-9.06 2.98-4.78 3.83-4.7.2-3.79-6.35-5.73-5.96 1.7 1.81 1.7 5.2 3.27 6.13 3.16 1.33 6.44 1.54 9.83 1.39-1.7-1.5-2.12-3.39-2.59-5.39ZM72.9 99.66c4.27-.84.48-5.89-4.78-3.83-.47 2-.88 3.9-2.59 5.39 3.39.16 6.67-.06 9.83-1.4 1.57-.93 1.57-4.3 3.27-6.12-1.94-.4-1.03 6.16-5.73 5.96ZM107.3 59.02c0 .1.04.2.1.26.24-.2.62-.12.79.12.27-.08.18-.92.24-1.12-.31-.33-.64-.65-.98-.94l-.14 1.68ZM106 65.25c.02-.24 1.34-2.4 1-2.59a.58.58 0 0 1-.62-.3c-.32-.14-1.16 2.22-1.3 2.37.41-.26.95.17.8.65a.3.3 0 0 0 .11-.13Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M121 55.27c-1.1.33-1.55 1.24-1.96 2.26-2.76-4.26-8.01-7.2-8.81-12.41.61-4.17 6.2-3.22 5.06 1.13 2.9-1.54 1.5-4.4-1.23-4.91 2.97.23 4.58 2.7 6.6-1.41-1.74.63-4.41.18-5.33.05 3.69-.5 5.7-.47 5.58-5-1.25 2.72-4.73 2.77-7.26 3.65.16-1.2-.22-1.95-1.2-2.34 1 6.63-11.7 4.47 2.25 18.77-1.7-.94-3.7-.62-5.36-1.66 1.3 3.44 3.48 2.84 6.33 4.04-3.06-.01-4.01 2.94-1.75 4.36-.59-2.28 2.58-3.85 4.17-2.07 3.62 4.6-3 11-8.89-.54.05.64-.4 1.21-1.03 1.02l-.66 1.82c1.34.5-.72 3.07-.87 3.81-.23.5-.75.64-1.14.37l-.65 1.34c.81.74-1.38 2.83-1.63 3.49-.25.37-.7.5-1.03.3l-.23.48.08.1c1.49 1.74 2.17 3.08 1.77 4.93 1.2-1.02 1.75-3.86.78-5.4 1.1 1.12 2.67 1.93 3.3 3.37a7.94 7.94 0 0 1-1.65 7.28c-.76.75-.56 1.15-.66 2.08-.5 1.48-2.28 1.6-2.96 2.85-.47 1.1-1.25 2-1.59 3.14 2.03-.31 1.68-3.1 3.6-3.68-.78 1.18-1.53 2.24-2.06 3.6 1.6-.41 4.61-.84 4.1-3.07-.37-1.03.64-1.71.59-2.7 1.26-.44.97-.95 1.58-1.93.28.6.29 1.1.26 1.74l-.37-.76c-.9 1.2-.15 2.38-.27 3.67 4.41-3.92-1.45-3.89 3.13-12.56 1.05-1.73-3-1.54-3.3-5.44-.28-1.69 1.22-3.07 1.53-4.68 1.77 3.1 7.93 3 7.1 6.97 1.23-.93 1.18-2.62.69-3.9 6.36-2.26 1.34-8.05 3.39-12.16Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M102.07 70.19c.14.06.26.16.31.3a.3.3 0 0 0 .29-.13c.05-.15 1.62-2.19 1.44-2.33-.17-.05-.33-.17-.39-.35-.15-.14-.36-.21-.51 0-.06.26-1.8 2.22-1.36 2.46.08 0 .15.02.22.05ZM101.15 70.6l.08.13.02-.06-.1-.08ZM39.6 79.41c.64.12 1.34.24 1.96-.04l-2.89-4.86c-1.7 2.08-4.67.81-6.54-.47-1.51-1.1 1.76-2.83.71-6.52 1.46 2.33-1.2 4.34 2.9 5.65-1.18-1.74-1.02-4-1.46-5.99-.06-.34-.23-.68.05-1.03.14-.48.17-1.12-.48-1.2-4.58-2.6-3.66-1.33-8.11-1.93-1.1 1.9 1.23 3.61.86 5.48-.33.92 1.08.88 1.06 1.77.31 1.4.16 3.34-1.45 3.88-.8.48-.16 1.49.54 1.72-1.42 2.53-.33 2.94 1.84 4.2.01-.97.03-1.83.44-2.66 3 1.97-1.47 2.3 4.46 4.68-.6-.98-.58-2.05-.67-3.03l1.66.38c.65 2.72 2.13 2.96 4.75 2.72-.94-.92-1.2-2.12-1.88-3.08.79.27 1.57-.27 2.25.33ZM93.03 64.27c-.8.13-1 .47-.84 1.26-.91 1.93-.93 4.28-2.48 5.91 3.33-.93 2.6-2.17 3.4-4.67-.17 3.39.01 3.34 1.25 5.67-2.56 1.78-6.75.28-8.15 3.74.39.45.9 0 1.41.12-.33.4-.47.87-1 1.22l.26-.75c-.96-.32-1.75 1.85-2.47 2.55 6.85-1.36-.82-3.35 12.67-4.9 2.38-1.12-2.25-2.86 2.43-5.8.41-1.6.66-3.25 1.55-4.7.2-.47-.13-1.14-.56-1.47-2.06 1.43-3.03-.88-7.47 1.82ZM23.91 36.42l.1-1.36-1.52-.26a2.1 2.1 0 0 1 1.98-.34c-.52 2.18.41 3.72 2.78 3.85.72-1.07 1.36-1.23 2.07-.48-3.12-.32-.8 2.94.79 1.84.42-.6 1.77-1.14 1.38-2-2.48-1.78-2.3.86-2.77-3.56l-.31-.03c-.23.84-1.07 1.5-1.75.7-.24-.27-.44-.51-.83-.58 1.7-1.34 3.71.6 3.59-2.55 1.89 2.34 2.05-.26 3.92-.3-.09 1.86-.47 1.71-2.09 1.6.53.4 2.54 2.4 1.37 2.58-.49-1.24-1.31-2.45-2.7-2.7-1.13 1.11-.58 2.36-.4 3.64 1-.34 1.85-.98 2.9-.9.36 1.03-1.3 1.6-.36 2.6 1.61.27 3.36.28 2.85-1.98-.53-.31-1.05-.52-1.6.05.03-.88.9-1.03 1.58-.86 1.48-1.57.99-3.64-.61-4.9.42-.61.87-1.04 1.63-1.19-.25.53-.8.73-.92 1.21L36 31.73c.86-.37 1.08-1.7.48-3.06-1.06.27-2.92 1.14-2.92 1.14-.9-.34-.52.1-.39.54-2.9.52-5.76 1.28-8.07 3.19-.41.3-.6.12-.74-.46-.27-.42-.4.3-.44.48 0 0-1.75.42-2.5 1.06.53.88 1.29 2.26 2.5 1.8Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M35.32 35.55c.27 1.3-.1 2.39-.96 3.41 1.29 2.3 3.48 4.03 4.45 6.5 2.16-3.99-.15-5.33-3.12-7.52 1.9.68 3.83 1.33 4.89 3.12.22-3.42-1.31-5.13-4.67-5.66l.03-.14c1.4-.07 2.8-.06 4.1.78-.34-1.06-1.21-2.63-2.48-2.5.45-.94.45-1.56-.01-2.13-.22.66-.64 1.07-1.33 1.1a4.09 4.09 0 0 1-.9 3.04ZM24.64 43.35c.4.96.99 2.07 1.97 2.47-.5-1.89.78-3.53 1.38-5.24.01 3.94-2.24 6.07 3.2 7.51-1.45-2.31-.49-5.12-1.4-7.5-.88-.5-1.87-.62-2.46-1.35-.16-.34-.46-.47-.78-.53-1.02-.22-1.97-.56-2.48-1.4-.75.23-1.2.2-1.89-.08-.06.84.66 1.68 1.61 1.36-.76 1.1-.34 2.09-.06 3.22a5.64 5.64 0 0 1 2.32-2.39c-.72 1.21-2 2.43-1.41 3.94ZM46.52 83.51c.74-.68-.26-1.07-.65-1.6-6.58-6.05-9.03-13.92-8.45-22.67l-.69-.34a27.66 27.66 0 0 0 9.8 24.61ZM105.23 33.13c-.62 1.19 1.19 1.68 1.2 2.81l-1.33-1.05c-.57 2.2 2.06 2.92 2.87 4.66 1.06-3.22.49-5.18-2.73-6.42ZM32.99 42.63c-1.75.1-1.5-2.07-2-3.28l-.86.97 1.1 3.69.8-.56c1.2.85 2.32.27 2.72-1.06.36.09.69.24.95-.02l-1.68-3.43c-.35.07-.68-.42-1.1-.03.4 1.07 1.84 3.22.07 3.72ZM104.9 27.73l-.03.14-1.67-.09c.62 1.95 2.9 1.01 4.35 1.9-.83-1.57-1.43-3.1-3.35-3.4.2-.92-.05-1.8-.63-2.15 0 .82-.33 1.41-1.09 1.72-.37 1.62 1.34 1.54 2.42 1.88ZM104.4 38.96l-.13.02c-.4 1.73.81 3.24 1.57 4.7 1.31-2.3 1.26-4.93-.84-6.76-.64 1.22.25 2.4.57 3.56l-.13.05-1.04-1.57ZM103.92 29.24c.75 1.77 1.95 1.35 2.73 2.5-.66-.2-1.23-.4-1.8-.58-.03 1.89 2.36 2.08 3.69 2.8-.22-3.04-1.71-4.2-4.62-4.72ZM97.01 26.05c.82 0 2 .52 2.68.05.01-2.57-3.16-2.23-4.96-2.29.54.97 1.22 1.92 2.28 2.24ZM88 62.7l-2.05-.15.07.91c.41.1.76.2 1.14.28.11 2.12-1.07 2.16-2.66 1.27-.48 2.69 3.9 2.42 3.5-2.3ZM86.49 54.14c-2.42 2.92-2.44 3.35 1.24 4.6l-.08-.8a7.35 7.35 0 0 1-2.07-.9l1.34-1.64-.43-1.26ZM75.24 43.48l1.11-.09c.39-1.43-.43-1.58-1.42-2.35-.4 1.18-1.45 1.76-2.05 2.76a2.5 2.5 0 0 0 2.08-1.12l.28.8ZM80.8 49.96c.34-.94 2.16-3.26 1.18-3.99-.45.27-1.4.16-1.3.86-.02 1.03-.01 2.06-.01 3.09l.12.04ZM98.87 23.63l.11-.16c-1.02-1.44-1.46-1.73-3.26-1.74.03 1.74 1.86 1.75 3.15 1.9ZM94.26 19.3c-.07 1.24.98 1.95 2.7 1.86-.44-1.25-1.34-1.92-2.7-1.85ZM90.2 32.13c-1.4-.65-2.55.17-3.97-.13.4 1.94 2.74.53 3.98.13ZM92.9 17.34c.36 1.24.85 1.5 2.14 1.33-.41-1.02-1.08-1.43-2.15-1.33ZM93.59 16.7c-.5-1.06-.76-1.2-1.82-1.09.44 1.05 1.07 1.44 1.82 1.09ZM87.13 51.13l1 1.69c1.3 0 .2-1.07-.1-1.53-.17-.18-.54-.18-.81-.27l-.09.11ZM83.4 52.62c.66-.38 1.34-.67 1.94-1.14l-.4-.56c-.57.55-1.9.73-1.55 1.7ZM92.01 14.98c.19-.67-.78-1.57-1.47-1.3.09.75.88 1.4 1.47 1.3ZM77.16 52.33ZM26.88 26.49c.36-.34-.19-.88-.53-.54-.36.33.18.88.53.54ZM27.35 27.47c.36-.33-.18-.88-.53-.54-.36.34.18.88.53.54Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"m24.87 23.04-.86.06.45 1.12.6-.7.12.05.08 1.49c.16 1.3 2.16.5 1.36-.55l-.96-1.13a.43.43 0 0 0 .05-.11l.92.1-.45-1.12-.66.54a.5.5 0 0 0-.11-.05l-.08-1.07-1.1.43.69.83a.48.48 0 0 0-.05.11ZM22.42 28.86c.55.01.56-.85.01-.85-.55-.01-.56.85-.01.85ZM22.33 29.96c.55.02.56-.85 0-.84-.54-.02-.55.84 0 .84ZM24.1 26.2c.56 0 .57-.85.02-.85-.55-.01-.56.84-.01.84ZM22.77 27.85c.56.02.57-.84.01-.84-.54-.01-.56.85 0 .84ZM27.95 28.9c-.03-.42.28-1.25.28-1.25l-1.75.69s.8.4 1.08.72c-.37.13-.73.2-1.24-.04l.68 1.34c.15-.6.46-.94.7-.99.73 1.12-1.1 2.35-1.9 1.4-.22-.4.05-.84.52-.5-.07-.83-.8-.83-1.02-.22.02-.85-.2-1.36-1.1-1.61-.23.85.06 1.36.92 1.72-.5-.06-1.02.41-.36 1.01 0-.53.46-.6.7-.23.4.99-.78 1.37-1.75.37.22-.08.44-.05.75.02l-.92-1.15c.05.4.02.7-.07.88-.2-.23-.26-.43-.34-.87l-.7.61a8.22 8.22 0 0 1 2.34 2.38c1.22-1.2 6.16-3.23 8.06-3.17a8.09 8.09 0 0 1 .05-3.33l-.93.04c.25.38.34.56.35.86a1.78 1.78 0 0 1-.66-.6l.13 1.47c.18-.26.32-.44.53-.53 0 1.39-1.12 1.91-1.53.93-.07-.43.3-.7.67-.31.07-.89-.64-.87-.95-.5.37-.84.22-1.41-.54-1.87-.48.8-.28 1.32.33 1.92-.6-.3-1.12.2-.6.85.11-.56.61-.43.72.01.1 1.24-2.1 1.58-2.33.27.2-.12.67-.08 1.18.26l-.43-1.44c-.21.52-.51.71-.87.87ZM51.05 74.28l2.07 1.17c-1.65 1.99 1.31 2.84 1.15.91 1.1.47 5.45 1.79 3.7-.78-5.7.19-8.6-5.73-5.45-10.26 1.92.87 8.66-2.37 8.1.93.35.36.45.4 1.25.4 1.95-4.44-4.76-3.12-7.17-2.6-2.15.63-4.12-2.48-6.02-.77-.75.66-.26 2.13.76 2.18.9.02 1.17-1.22.36-1.6 1.77-.6.92 2.22.28 2.94-2.03-1.04-2.37 2.2-.36 1.35.09.58.12 1.15-.02 1.7-2.2-.47-1.61 2.65.03 1.4.47.44.7 1.13.75 1.8-2.2.3-.44 3.1.58 1.23Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"m57.42 77.66-.3-.1c-.16.4-.4 1.16-.03 1.41l1.85.79L61.3 78l.64-9.41-.7.05c-.19.02-1.48 10.88-2.15 10.24.13-.72 1.7-10.24 1.7-10.24l-.7-.1-.08.5-2.62-3.4-.34.16 2.8 3.65-.18.65c-.26-.17-2.96-3.88-3.23-4.23l-.55-.04 3.64 4.7-.2.63-4.08-5.31h-.52l4.42 5.76-.23.83-4.86-6.53-.64.01 5.37 7.02-.2.65-5.92-7.67-.1.6s5.51 7.18 5.85 7.65c-.28.88-.06.96.33 1.69.2.82-.36 2.09-1.34 1.79Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"m57.98 74.67-5.68-7.45s-.1.36-.16.51l5.44 7.13.4-.19ZM52.29 69.74c1.3 1.64 2.6 3.32 3.87 4.98.2.02.55.1.55.1l-4.63-6.08s-.08.62.2 1ZM62.18 66.97c-.63-.05-1.3-.18-1.9-.24-1.2 1.03.14 1.62 1.03 1.54.77.2 1.79-.8.87-1.3ZM61.99 93.54c-.19.84 1.15 1.11 1.31.26.19-.84-1.15-1.1-1.31-.26ZM63.2 88.49c.22-1.04-1.44-1.38-1.64-.33-.23 1.04 1.43 1.38 1.63.33ZM57.53 85.7c.23-1.03-1.43-1.37-1.63-.32-.23 1.04 1.43 1.38 1.63.33ZM66.64 95.91c-.67 3.76-2.48 5.46-4.1 5.46-1.6 0-3.42-1.7-4.1-5.46.21.19.41.44.64.74l.35.45.5-.3c.2-.13.41-.24.6-.31-.21.43-.29.95-.18 1.48a2.28 2.28 0 0 0 2.2 1.93c1.08 0 1.98-.8 2.2-1.93.1-.53.02-1.05-.2-1.48.2.07.4.18.61.3l.5.31.35-.45c.23-.3.42-.55.63-.74m.79-1.02c-.95.1-1.43.72-1.93 1.37a3.22 3.22 0 0 0-1.57-.54c-.3 0-.57.08-.82.27 1.73.68 1.11 3.27-.57 3.27-1.68 0-2.3-2.59-.57-3.27-.24-.2-.52-.27-.82-.27a3.2 3.2 0 0 0-1.57.54c-.5-.65-.98-1.28-1.93-1.37.52 4.74 2.7 7.11 4.89 7.11 2.18 0 4.37-2.37 4.89-7.11ZM51.8 82.46c.73-.86-1.81-1.98-2.18-2.46-.3-.18-.68-.14-.88.12-.72.82 1.77 1.96 2.11 2.42.31.24.74.2.96-.08Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M51.48 84.3c2.8 0 2.44-4.4-.32-3.93 1.28.69 2.4 2.5.4 3.03-.75.15-1.52-.65-2.07-1.04.02 1.07.9 1.94 2 1.94Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M47.5 85.03c.61 1.16 4.22 4.31 5.2 2.82-1.76-.88-4.74-3.05-3.6-5.82-2.59-1.57-.3-4.08 1.72-1.95 2.14-1.31 4.53-.37 6.65 1.08.76-1.62-2.94-2.75-3.8-3.23-1.08-.36-4.51.4-5.66.46-.78.1-1.34.79-1.27 1.56.17.83.14 4.42.76 5.08ZM79.27 22.87l1.6.5a19.58 19.58 0 0 0-12.7-10.61c-.14.36-.26.76-.37 1.17 4.88 1.22 9 4.5 11.47 8.94ZM46.36 23.38l1.6-.5a18.3 18.3 0 0 1 11.47-8.95c-.12-.41-.24-.8-.38-1.17a19.58 19.58 0 0 0-12.7 10.62ZM75.62 14.87c1.14.02 1.14-1.75 0-1.74-1.14-.01-1.14 1.76 0 1.74ZM71.6 12.6c1.13.02 1.13-1.75 0-1.74-1.15-.01-1.15 1.76 0 1.74ZM69.4 11.82c1.15.01 1.15-1.76 0-1.74-1.13-.02-1.13 1.75 0 1.74ZM73.67 13.62c1.14.02 1.14-1.75 0-1.73-1.14-.02-1.14 1.75 0 1.73ZM77.42 16.32c1.14.02 1.14-1.76 0-1.74-1.13-.02-1.13 1.76 0 1.74ZM81.98 22.85c-.02 1.13 1.78 1.13 1.76 0 .02-1.12-1.78-1.12-1.76 0ZM80.92 20.81c-.02 1.13 1.77 1.13 1.76 0 .01-1.13-1.78-1.13-1.76 0ZM79.06 17.95c1.14.01 1.14-1.76 0-1.74-1.14-.02-1.14 1.75 0 1.74ZM79.65 18.87c-.02 1.13 1.77 1.13 1.76 0 .01-1.12-1.78-1.12-1.76 0ZM51.6 14.87c1.14.02 1.14-1.75 0-1.74-1.14-.01-1.14 1.76 0 1.74ZM49.8 16.32c1.14.02 1.14-1.76 0-1.74-1.14-.02-1.14 1.76 0 1.74ZM44.36 23.72c1.14.02 1.14-1.75 0-1.73-1.14-.02-1.14 1.75 0 1.73ZM53.55 13.62c1.14.02 1.14-1.75 0-1.73-1.13-.02-1.13 1.75 0 1.73ZM46.7 19.74c1.14.02 1.14-1.75 0-1.73-1.14-.02-1.14 1.75 0 1.73ZM45.43 21.68c1.14.02 1.14-1.76 0-1.74-1.14-.02-1.14 1.76 0 1.74ZM57.82 11.82c1.14.01 1.14-1.76 0-1.74-1.14-.02-1.14 1.75 0 1.74ZM48.16 17.95c1.14.01 1.14-1.76 0-1.74-1.14-.02-1.14 1.75 0 1.74ZM55.63 12.6c1.14.02 1.14-1.75 0-1.74-1.14-.01-1.14 1.76 0 1.74ZM65.12 20.68h1.17c0-3.67.54-6.85 1.5-8.95.33-.67-.75-1.17-1.06-.48-1.4 3.03-1.6 7.2-1.6 9.43ZM60.93 20.68h1.17c0-2.23-.21-6.4-1.61-9.43-.31-.69-1.4-.2-1.07.48.97 2.1 1.5 5.28 1.5 8.95ZM63.61 20.66c1.24.02 1.24-1.9 0-1.88-1.23-.02-1.23 1.9 0 1.88ZM63.61 18.3c1.24.02 1.24-1.9 0-1.88-1.23-.02-1.23 1.9 0 1.88ZM63.61 15.94c1.24.02 1.24-1.9 0-1.88-1.23-.02-1.23 1.9 0 1.88ZM62.94 13.64c.4-.21.94-.21 1.35 0 1.36-2.08-2.72-2.08-1.35 0Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M64.37 11.66c1.06-1.96-2.58-1.95-1.51 0a1.52 1.52 0 0 1 1.5 0Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M63.04 3.73c-.16 1.2-.8 2.13-1.59 2.28v.3H63a1.1 1.1 0 0 0-.2.2c-2.75.6-3.03 4.76-.4 5.74-1.03-.99-.24-2.87 1.21-2.82 1.45-.05 2.24 1.83 1.21 2.82 2.64-.98 2.35-5.14-.4-5.75a.97.97 0 0 0-.2-.19h1.55v-.3c-.8-.15-1.43-1.08-1.58-2.28 1.21.15 2.16.78 2.3 1.56h.31V1.02h-.3c-.15.78-1.1 1.41-2.31 1.57.15-1.2.79-2.14 1.58-2.28V0h-4.32v.3c.8.15 1.43 1.08 1.59 2.29-1.22-.16-2.16-.79-2.3-1.57h-.32v4.27h.31c.15-.78 1.09-1.41 2.3-1.56ZM101.14 70.59h.01l-.28-.49c.03.2.12.38.27.49ZM100.42 72.4c-1.22-.76-1.9 2.59-2.35 3.16-.22.49-.03 1.02.42 1.17l-.9 1.85c-.48-.08-.9.29-.9.84.18.72-.55 3.85.74 3.89v.86c-3.1.56-2.64 5.39.55 5.31 3.17.08 3.66-4.71.6-5.3v-.83c.48.08.9-.28.9-.84-.17-.7.49-3.71-.65-3.87l.69-1.41c1.16.62 1.84-2.64 2.28-3.2.2-.45.05-.97-.36-1.14l.52-1.06c-.14-.2-.44-.64-.73-1.1l-.81 1.67Zm-.58 14.4c-.75 4.3-6.34.04-2.34-1.78.19.42.82.44 1 .02.78.22 1.34.93 1.34 1.76Zm-1.27-4.4c.08-.62-.73-.96-1.05-.44.09-.23-.22-2.57.22-2.57.18.13.42.16.62.01.14.03.24.16.24.32v2.53l-.03.15Zm2.36-8.53c-.14.15-1 2.6-1.3 2.5-.11-.2-.38-.33-.61-.26-.13-.06-.18-.24-.11-.4.16-.17.97-2.67 1.34-2.5.1.24.4.4.64.33.07.08.09.21.03.33ZM38.28 66.98l.27 1.05 4.85-.6-.24-.94c-.24-.05-3.26.5-3.26.5s2.87-3.32 2.8-3.71l-4.9.55.1.83 2.88-.4s-2.39 2.67-2.5 2.72ZM40 73.13c2.35 2.22 6.03-1.33 3.6-3.61-2.34-2.25-6.08 1.33-3.6 3.61Zm.28-2.47c1.03-1.85 4.45-.75 3.03 1.35-1.06 1.79-4.42.78-3.03-1.35ZM43.26 78.37l.82 1.12a11.23 11.23 0 0 1 3.94-2.83l-.82-1.12a5.73 5.73 0 0 1-1.55 1.4l-1.26-1.72c.53-.4 1.23-.9 1.82-1.03l-.82-1.12a11.23 11.23 0 0 1-3.94 2.82l.82 1.12a5.7 5.7 0 0 1 1.55-1.38l1.25 1.72c-.53.39-1.22.88-1.81 1.02ZM42.8 61.64l.06-1.02c-1.38.26-3.61.25-4.99-.01l-.07 1.02c1.39-.25 3.62-.25 5 .01ZM77.96 82.36c2.97-1.29 2.3-4.2-1.04-2.87-1.4-.4.37-1.8 1.3-1.5l.02-.01-.7-.82c-1.05.45-2.73 1.85-1.84 3.04.62.78 1.87-.05 2.69-.04 1.36.24-.1 1.64-.94 1.56l-.02.02M86.09 72.17l.84-2.82c-.43.03-4.28-1.08-4.62-1.33l-.8 2.68.8.68.02-.01c-.06-.62.03-1.32.25-2.09l1.47.42c-.15.42-.4 1.38-.6 1.63l.72.1.47-1.56 1.4.4c-.17.52-.4.93-.7 1.22l.75.68ZM84.14 75.93l.46-.87-3.8-2.52-.42.79c.15.18 2.62 1.63 2.62 1.63s-4.08.53-4.27.84l3.8 2.58.44-.64-2.28-1.46s3.34-.38 3.45-.35ZM73.66 85.15l2.64-1.52c-.34-.25-2.4-3.58-2.47-3.99l-2.5 1.44.1 1.02h.02c.4-.5.96-.94 1.68-1.36l.78 1.27c-.41.2-1.28.74-1.61.79l.46.56 1.46-.84.75 1.2c-.5.28-.95.42-1.38.44l.07.99ZM44.19 52.1c-.8-.62-1.8.48-2.6.66-1.38.08-.3-1.61.54-1.73V51l-.66-.49c-1.24.63-2.19 3.3-.18 3.36.43.02 1.52-.73 1.88-.81.94-.18.64 1.08.08 1.38.28-.02.57-.05.84.02.53-.73.86-1.8.1-2.37ZM45.16 50.66c-2.2-.14-2.66-3.9 0-3.34v-.91c-3.45-.2-3.4 5.22 0 5.1v-.85ZM50.64 43.99h1.52l-1.04-1.64c.53-.3 1.65-.75 2.15-.72l-1.2-.9-3.67 2.17.42 1.4h.02c.3-.57.74-1.04 1.23-1.3l.56.99ZM61.37 43.36l.01.02c-.73.58-1.67.34-2.45-.07-2.3 1.27-4.76-1.71-2.93-3.62 1.94-2.28 5.77.3 3.92 2.82.6.46 1.09.74 1.45.85Zm-2.8-.73c1.84-.71.24-3.53-1.39-2.86-1.82.69-.25 3.53 1.39 2.86ZM62.06 41.34c-.01-.78.1-2.16-.24-2.83h1.64c-.27.72-.74 4.06.66 3.9.55 0 1.1-.38 1.08-.95-.02-.8.1-2.27-.24-2.96h1.64a9.8 9.8 0 0 0 0 4.72H65.2c.03-.1.05-.25.05-.47-1.42 1-3.33.5-3.2-1.41ZM68.99 43.66c.29-1.16.7-3.13 1.35-4.11l-1.27-.42c.01 1.24-.66 3.18-1.09 4.37l1.01.16ZM76.74 59.37h.8V46.62h-11.9v12.75h11.1ZM72.19 59ZM71 59Zm6.15-6.56Zm-11.1 1.12v.12c.02-.24.41-.06.22.1l.06.06c.4.05.45-.54.05-.56v-.01l.48-.2v-.15l-.48-.2v-.02c.4-.02.34-.6-.05-.56l-.06.06c.2.17-.2.34-.22.1v.15-5.07h.4V47h4.42c.25.04.04.37-.12.2l-.06.06c-.05.38.6.4.6.02l.24.47h.15l.22-.47c0 .39.65.36.6-.02l-.05-.06c-.16.17-.37-.16-.12-.2h4.42v.38h.4c-.04-.09.16 6.22-.21 4.82l-.06-.06c-.4-.04-.45.54-.05.57l-.48.22v.14l.48.2v.01c-.4.02-.34.6.05.56l.06-.06c.37-1.43.17 5.02.21 4.84h-.4V59h-4.42c-.25-.04-.05-.38.12-.2l.06-.06c.05-.38-.59-.42-.6-.04h-.01l-.23-.45h-.15l-.22.45h-.01c-.02-.38-.64-.34-.6.04l.06.05c.17-.17.37.17.11.2h-4.4v-.37h-.41v-5.06Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M79.3 59.86c.01-.26-.29-.46-.54-.37v.06c-.48 2.1-.25-6.56-.29-6.24l.44.18v-1.01l-.44.18v-6.39c.07-.32.57-.04.3.16v.06c.59.19.76-.75.12-.76l.4-.68-.1-.1s-.7.4-.71.39c-.01-.58-1-.44-.82.13h.06c.21-.26.52.2.18.26h-5.95l.18-.4h-1.08l.19.4H65.3c-.36-.05-.06-.52.16-.27h.06c.2-.56-.81-.7-.82-.12l-.72-.38-.1.09.4.68c-.63 0-.46.95.14.76v-.06c.46-2.1.24 6.52.28 6.22l-.42-.17v1l.42-.16c-.04-.16.18 8.28-.28 6.23v-.06c-.6-.18-.77.75-.14.76l-.4.68.1.1c.01 0 .71-.4.72-.39 0 .59 1.01.44.82-.12h-.06c-.1.13-.34.06-.34-.1 0-.09.07-.16.16-.17h5.96l-.19.4h1.08l-.19-.4h5.95c.09.01.16.08.16.17 0 .16-.24.23-.34.1h-.06c-.19.56.81.7.82.12l.71.38.1-.09-.4-.68c.23 0 .42-.17.42-.39Zm-7.2-13.74h5.96v13.75H65.12V46.13h6.98ZM77.13 53.68v.01ZM77.13 52.3ZM66.06 53.7v-.02.01ZM66.06 52.3ZM23.05 29.52l.28-.23a3.93 3.93 0 0 1 1.58-2.87 3.77 3.77 0 0 0-.18-.23 4.24 4.24 0 0 0-1.68 3.33ZM25.84 27.87l.27-.1a5.81 5.81 0 0 0-1.15-2c-.13-.13-.34.07-.21.2.4.4.79 1.07 1.09 1.9ZM23.35 26.94c.55.01.56-.85 0-.85-.54 0-.56.85 0 .85ZM31.47 25.12c-.38.4-1.01-.19-.62-.58.37-.4 1 .2.62.58ZM32.32 25.83c-.38.4-1-.2-.61-.59.37-.4 1 .2.61.59ZM28.36 24.45c-.38.4-1-.2-.62-.59.38-.4 1 .2.62.59ZM30.5 24.67c-.38.4-1.01-.2-.62-.59.37-.4 1 .2.62.59ZM31.5 26.03l-.36.04a4 4 0 0 0-3.18-.9l-.04-.29c1.26-.2 2.57.23 3.59 1.15ZM28.28 26.84l-.25.14a5.8 5.8 0 0 1-.64-2.22c0-.19.29-.2.29-.02 0 .56.22 1.31.6 2.1ZM29.43 24.43c-.38.4-1-.19-.62-.58.38-.4 1.01.2.62.58ZM75.3 69.76c1.23-.02 4.1-1.36 2.02-2.48-1.17-.2-2.33.37-3.45.63-4.52 1.78-1.87-.4-4.67-.16.94 2.37 3.33 1.15 5.12.6.06.26-.27.32-.23.58l1.74-.36c.25-1.16 2.4-1.17 1.41 0-2.47 1.06-5.39.86-7.97 1.59-1.73 4.48-4.74 1.43-4.71 2.72-.68.06-.67.7.02.65.02 1.3 3.35-.2 3.97-.6l.43-.9c1.01.48 1.73-.96 2.6-1.22.88-.17 2.02-1.02 2.77-.24.83.91 2.07-.47 2.8.44-.27.71.09.4.21.84 0 .4.66.4.67 0 0-.18.02-.29.2-.36.37-.56-.42-1.17-.7-1.64-.6-.58-1.62.53-2.23-.09Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M64.13 67.79c.2.07.13.3.22.42 1.07.07 2.13-.2 3.2-.34.8 0 .78-.7 1.37-.8 1.41.08 2.3-1.16 3.63-1.36 1.07-.3 2.51-.7 3.46.05.23.25.56.3.9.24.45-.08 1-.18 1.23.34l-.26.27.16.32c.22-.01.25.16.34.3.12.2.4.2.45 0 .05-.25.31-.12.4-.34.03-.64-.1-1.45-.76-1.77-.32-.3-1.6.31-1.63-.31.95.21 2.76-1.01 1.51-1.8-2.11-.5-4.43.52-6.58.76-.84.19-.42-1.18-2.29-.8 1.2 2.47 3.8.72 5.8.7.02.22-.38.2-.28.48.58-.18 1.58.13 1.91-.45.18-.7 1.68-.53 1.24.28-1.12.7-2.8.38-4.12.53-1.61.13-3.37.17-4.89.73-.3.93-.71 1.88-1.8 2.1-.75-.72-1.85.14-2.66-.6-.26.05-.31.2-.42.4-.4.16-.53.38-.12.65ZM76.04 74.3c-2.12-.26-1.8 1.18-2.84.84.19-.23.7-.36.54-.7-1.55.66-3.18 1.14-4.72 1.83-.79.83-.53 2.47-2.3 2.62-.06.86-1.28 1.44-2.03 1.05-.3.28-.17.36-.12.62-.26.23-.6.75-.05.75.17-.04.3-.3.48-.21l-.04.35c.15 0 .35.04.4-.02.24-.3.59-.05.86-.29.91-.6 2.21-1.16 2.14-2.42 1.6-.7 2.54-3.27 4.63-2.37 1.04.56 1.32-1.1 2.25-1.14.26.61.38.56.72.36.58.44.48-.26.71-.58.03-.32-.3-.69-.63-.68Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M66.48 64.23c-.34.95 0 2.21.9 2.74a2.48 2.48 0 0 0 1.32-2.88c.24-.2.54-.3.45-.65-.16-.38-.77-.1-.92-.54-.39-.52-.9-.1-1.2.25-.24.03-.47-.09-.69.02-.22.4.4.65.14 1.06ZM66.21 77.55c1 2.36 2.5-.64 2.12-1.91.69-.56.5-.9-.33-.95-.3-.62-.93-.68-1.36-.16-.16.19-.38.12-.58.14-.43.2-.2.66.18.76-.2.72-.31 1.43-.03 2.13ZM68.95 68.81c-.2-.11-.44-.12-.65-.1-.36-.91-1-.57-1.51-.02-.77-.3-.66.38-.25.75-.38.93-.12 2.32.88 2.72 1.06-.44 1.35-1.7 1.28-2.73.33-.05.6-.42.25-.62ZM76.52 71.9c-1.9-.63-4.87 3.44-6.13 2.24-.3-.66-1.24-.58-1.83-.4.7.5 1.1 1.62 2.18 1.25 1.21-.23 2.17-1.2 3.22-1.65.03.35-.33.5-.48.83.72-.23 1.37-.43 1.9-.88-.09-1.97 2.76-.6.03.62.49.01.82.23 1.15-.17.63-.55.66-1.35-.04-1.85ZM72.22 76.46c-.56.13-1.11.18-1.46.74l.42.55c-.27.68-.95.57-1.6.6l.14.47c-.27.15-.38.39-.32.72l.24.08c.18-.22.5-.44.58-.03a4.57 4.57 0 0 0 2.76-2.15 2.03 2.03 0 0 1-.76-.98Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M70.69 72.4c-.25 0-.3.31-.13.46.16.18.33-.02.52.03l.01.28c1.02.06 2.55-.84 3.1-1.65l-.64-.97c-.55.18-1.18.16-1.5.66l.56.59c-.38.2-.8.55-1.21.22-.17-.15-.63-.08-.51.2.01.05-.01.1-.02.16l-.18.02ZM66.37 78.52c-.38-.73-.97-1.39-1.24-2.15.33-.47.18-1.06-.45-.68-.15-.32-.39-.38-.68-.3-.08.2-.13.4.1.55l-.01.1-.2.06c-.16.4.24.63.38.94.44.7 1.09 2.35 2.1 1.48ZM66.37 66.55c-.06-1-1.23-1.65-.88-2.66.1-.19.07-.41-.13-.56a.73.73 0 0 1-.6-.08c-.44-.21-.5.27-.46.58l-.29.13c.3.86 1.22 3.03 2.36 2.59ZM64.1 69.96c.43.65.55 1.69 1.29 2.06.33 0 .85.3 1.05-.09-.22-.77-1.19-1.22-1.05-2.1.05-.21-.03-.42-.2-.6-.38.1-1.16-.73-.88.27-.23.08-.37.24-.2.46ZM47.32 49.85c.16.01.32-.17.49 0l-.05.25c1.03.45 2.17-.05 3.2-.33.4-.12.63-.53 1.07-.52 1.06.08 1.66-.8 2.57-1.05 1.12-.22 2.26-.4 3.4-.37 1.32 1.78 1.56.27 2.74.87l-.1.53.3.1c-.11.44.55.7.64.14.02-.07-.02-.15.08-.17.7-.37-.38-2.21-1.12-1.73-.38.18-.88.35-1.18-.1.66-.26 1.47-.2 1.91-.8.34-.4.3-1.2-.33-1.42-1.65-.45-3.4.37-5.06.52-3.13.84-.9-.67-3.38-.65.89 2.51 3.56.9 5.41.71-.13.3-.44.4-.56.67.66-.12 1.52.12 2-.38.26-.69 1.92-.77 1.52.17-1.56 1.51-6.45.1-8.63 1.06-.33.99-.9 1.64-1.86 1.91-.77-.48-1.13.07-1.9-.15-.22-.23-.44-.5-.78-.24v.36c-.36-.1-.78.4-.38.63Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M50.03 46.02c-.58 1.04-.4 1.99.28 2.87 1.28.04 1.8-1.7 1.6-2.74l.39-.27-.1-.38-.65-.03c-.47-.6-.75-.6-1.3-.07-.25-.1-.46-.03-.63.19.09.19.21.33.41.43ZM56.3 48.27c-.06.29.2.42.26.64-.35.22-.72.24-1.09.28-.19-.19-.27-.53-.6-.43-.2.04-.09.24-.23.32-.25-.02-.39.1-.43.35l.35.2c-.28 1.31 3.34-.05 3.87-.44-.17-.3-.4-.5-.47-.84-.15-.58-1.22-.1-1.66-.09ZM49.53 48.43c-.04-.46-.16-1-.52-1.32-.41-.42-.55-1-.13-1.44-.2-.2-.49-.04-.7-.32-.25-.3-.41.05-.47.36-.74.1-.32.35-.15.73.24.68 1.11 2.3 1.97 1.99ZM60.45 53.33c-.38.18-.89.35-1.18-.1.65-.26 1.47-.2 1.92-.8.34-.41.3-1.22-.34-1.44-1.66-.46-3.42.38-5.1.52-3.15.85-.9-.67-3.4-.66.9 2.54 3.58.91 5.45.73-.13.3-.44.4-.57.68.66-.13 1.53.12 2.03-.39.25-.7 1.92-.78 1.53.17-1.58 1.52-6.51.1-8.7 1.07-.34 1-.92 1.65-1.88 1.92-.67-.4-1.02-.07-1.6-.1.03.2.09.37.13.55.05.19.07.37.08.56.67-.07 1.34-.32 1.96-.49.41-.12.64-.53 1.1-.52 1.06.07 1.67-.81 2.58-1.07a16.9 16.9 0 0 1 3.44-.37c1.32 1.8 1.56.27 2.75.88l-.1.53.3.1c-.1.45.56.71.65.15.01-.07-.02-.16.08-.17.71-.38-.38-2.23-1.13-1.75Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M49.86 51.76c-.59 1.06-.42 2.01.28 2.9 1.29.04 1.82-1.7 1.6-2.77.14-.09.27-.17.4-.27l-.1-.38-.66-.03c-.46-.6-.75-.6-1.3-.07-.26-.1-.47-.03-.64.2.1.18.21.33.41.42ZM56.17 54.03c-.05.3.22.42.27.66-.35.22-.73.23-1.1.28-.19-.2-.27-.54-.6-.44-.2.05-.1.25-.24.33-.25-.02-.4.1-.43.34l.35.21c-.28 1.32 3.37-.05 3.9-.45-.17-.3-.4-.5-.47-.84-.15-.58-1.23-.1-1.68-.09ZM49.35 54.2c-.04-.47-.16-1.01-.53-1.33-.41-.43-.54-1-.12-1.46-.21-.2-.5-.04-.7-.32-.27-.3-.42.05-.49.36-.74.11-.31.35-.14.74.24.68 1.12 2.3 1.98 2ZM60.58 58.73c-.38.18-.88.35-1.18-.1.65-.27 1.47-.2 1.92-.81.33-.4.3-1.21-.34-1.43-1.66-.45-3.41.38-5.1.52-3.14.85-.9-.67-3.4-.65.9 2.53 3.59.9 5.45.72-.13.3-.44.4-.56.67.66-.12 1.53.12 2.02-.38.25-.7 1.92-.78 1.53.17-1.57 1.52-6.5.1-8.7 1.07-.32.99-.9 1.65-1.86 1.92-.79-.48-1.14.06-1.93-.15l-.23-.24a.15.15 0 0 1-.06-.04.48.48 0 0 0-.1-.05l.02.04c.01.45-.1.9-.28 1.31 1.02.4 2.14-.09 3.15-.36.4-.12.64-.53 1.09-.52 1.06.08 1.67-.8 2.58-1.06 1.13-.21 2.28-.39 3.43-.37 1.32 1.79 1.56.27 2.75.88l-.1.52.3.11c-.1.45.56.7.65.14.01-.07-.02-.16.08-.17.7-.38-.38-2.23-1.13-1.74Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M50 57.16c-.58 1.06-.41 2 .28 2.9 1.3.04 1.82-1.7 1.6-2.77.14-.09.27-.17.4-.27l-.1-.38-.65-.03c-.47-.6-.75-.6-1.31-.07-.26-.1-.47-.03-.64.2.1.18.22.33.42.42ZM56.3 59.43c-.05.3.22.42.27.65-.35.22-.72.24-1.09.28-.2-.19-.27-.53-.61-.43-.2.04-.09.24-.23.32-.25-.02-.4.1-.43.35l.35.2c-.28 1.32 3.36-.05 3.9-.44-.18-.3-.4-.5-.47-.85-.15-.58-1.23-.1-1.68-.08ZM48.97 58.26a1.56 1.56 0 0 1-.2-.25c-.03.24.1.51.06.74-.04.19-.09.46-.14.63.3.3.47.33.8.21-.04-.46-.15-1-.52-1.33ZM67.88 48.96c.28.18.5 1 .67 1.12.32.42 1 1.55 1.66 1.32v-.02c.2-.08.38-.65.4-.73-.01-.02-.12-.12-.25-.22-.62-.53-1-1.06-1-1.55-.04-.16.35-.38.32-.53-.02-.56-.49.07-.67-.02-.1-.16-.45-.62-.67-.4-.13.06.03.4-.07.47-.05.07-.08.08-.23.07-.5 0-.57.3-.16.5Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M70.54 52.75c.17-.17.67-.65.73-.76.05-.11.07-.11.42-.14.97-.14 1.46-.53 1.74-1.56.13-.31-.04-.98-.24-1.13-.08-.05-.11-.15-.06-.19.18-.02.55-.17.62-.38-.1-.2-.36-.05-.7-.16-.25-.11-.92-.32-1.2-.17-.18.23-1.32.25-1.11.59l.12.4.52.07v.37l-.48.1c-.31.45.73.48 1 .14.19-.22.48-.25.47-.01-.14.3-.64.44-.93.59-.44.07-.55.92-.89 1.2-.95.17-1.29.15-2.23-.6-.34-.4-.61-.1-.35.2-.17.06-1.04-.43-.65.4l.06.08c-.43.61.21.4.57.6.77.3 1.6.52 2.6.36Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"m73.59 52.15.4.83s.86.38.98.5c.49.35.4 1.32-.03 1.21-.72-.29-1.15-1.3-1.65-1.92-.13-.1-.47-1.11-.7-.85-2.96.65.54 1.4 0 2.5-.1.15-.43.9-.3 1.02.25.3.8.53 1.1.91.48.47.05 1-.55.57-.34-.25-.74.11-.4.45.03.06-.2.16-.24.19-.35.48.23.45.54.21.17-.08 0 .42.29.34.54-.12 1.37-.39 1.52-1.23.34-.76-.44-.64-.63-1.31-.2-.28-.21-1.29.21-.92.4.5.92.77 1.4.34.44-.42.04-1.42-.19-1.86-.43-.89-.92-1.74-.89-2.8.6-.7 1.3.56 1.72-1.4-1.4.09-2.78 1.02-2.09 2.58.43.88.34.81-.5.65Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M71.33 53.82c-.74-.04-1.3-.1-1.1.77.04.21.12.85.25 1 .05.08.04.17-.03.22-.3.17-1.43-.29-1.3-.67 0-.31-.31-.39-.4-.16-.06.1-.14.1-.25-.03-.21-.3-.5.1-.38.33.04.09-.01.18-.12.2-.31.13-.3.55.14.56.94.44 1.76.88 2.86.73h-.02c1.2-.09.59-.31.53-1.14-.2-.88 1.33-1.47-.18-1.81ZM72.46 66.5c-.08-.07-.28 0-.3.06 0 .4-.42.28-.55.56.08.16.2.3.39.28.23-.02.2.26.42.27.98-.44 2.16-.33 3-1.1-.32-.26-.4-.62-.46-1-.57.04-1.13-.04-1.62.22-.05.26.13.4.26.62-.4.17-.76.26-1.14.09Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M88.26 55.51c-.4-.82-1.3-5.44-2.6-4.44 5.96 11.02 1.98 25.52-8.37 32.5-3.03 1.81-6.8 4.83-10.4 2.82 2.32-8.95 13.44-5.17 15.85-22.22-.3-.14-.4-.23-.68-.28a29.17 29.17 0 0 1-1.85 6.87c.96-2.54.35-10.48.53-10.92-.1-.13-.2-.18-.53-.58.06.96 0 1.3 0 2.58H63.35V44.43H79.9v9.82a6 6 0 0 0 .1.7c.24-.37.26-.35.42-.47V43.92H45.7l-.03 8.9h.51v-8.4h16.66v17.42H46.77c-.05.05.01-.28-.04-.23 0-.05-.11.27-.11.23h-.45V60.5l-.5-.02c-.38 1.3.72 12.23 2.53 14.15-3.62-3.48-4.76-9.65-4.08-14.3 0 0-.34-.26-.71-.6-1.14 6.56 1.36 13.02 6 17.7.4.44.85-.02 1.34-.15-.1-.1-.31-.27-.46-.47l.46.47-.25-.7c-3.65-2.76-4.25-10.63-4.32-14.23h16.65s0 21.83-.02 21.88c-3.54-.17-5.94-3.98-9.36-4.02 4.92 2.88 13.9 9.83 19.58 6.78l.08.1c-.6.74-2.7 2.14-3.64 1.78-1.54-.92-3.93.76-2.83 2.47.14.2.22.37.06.64-6.14-.57-11.66-4.2-16.83-7.31l-.09.1c1.98 2.65 9.06 5.94 9.06 5.94v3.94l.75.5v-4.27c1.86.63 5.62 1.8 5.62 1.8l.01 2.66.72-.45-.04-2 1-.27a1.3 1.3 0 0 0 .97-1.41.75.75 0 0 1-.42-.87c.15-.78 1.1-.8 1.49-.33.77.34 1.52-.57 2.28-.79 1.07-.64 2.38-1.2 2.88-2.42.1-.3.26-.5.52-.64a27.42 27.42 0 0 0 6-4.3c7.52-6.29 10.14-17.1 7.64-26.35Zm-24.91 6.83H80.2c1.38 12.76-6.18 17.03-16.86 21.48V62.34Zm.3 22.8a6.99 6.99 0 0 1 3.56-1.79l-1.26 2.8-2.3-1.02ZM26.02 92.14c-.38-.23-.86-.3-1.42-.21.12.84.43 2.41.67 3.23 1.6-.23 2.07-2.2.75-3.02Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M47.7 86.35c-9.55.01-19.06 4.05-28.6 4.05-1.15 0-2.3-.06-3.45-.2 2.96 2.32 2.76 6.96 7.06 6.96l.58-.03c5.85-.62 11.66-2.25 17.42-3.15.99-.15 5.75-1.3 8.54-1.3 1 0 1.76.14 1.98.55.3.54-1.6 2.12-1.6 2.18-.01.02 0 .03.02.03.18 0 1.23-.6 2.02-1.11 3.11-2.22-3.41-7.98-3.97-7.98Zm-20.1 7.84c-.52 1.22-2.07 1.5-3.29 1.71.06-.38-.68-3.91-.9-4.24 2.1-.89 5.1-.02 4.19 2.53Zm1.23.74a9.99 9.99 0 0 0-.91-4.24l1.22-.26a10 10 0 0 0 .9 4.24l-1.21.26Zm4.69-1-2.5.54c.05-.37-.76-3.84-.97-4.16l2.63-.57-.21.87c-.37-.1-.8-.1-1.28 0l.3 1.25 1.45-.32.23.62c-.29-.05-1.16.17-1.56.23l.3 1.32c.72-.16 1.31-.4 1.78-.71h.01l-.18.92Zm2.56-.4c-1.82.05-2.09-2.53-2.51-3.8l.88-.16c.42 1.1.3 3.7 2.18 3.35 1.36-.6.26-2.73.12-3.76l.87-.12c.33 1.7 1.11 4.67-1.54 4.5Zm7.24-1.28-2.5.57c.05-.37-.79-3.83-1-4.15l2.63-.6-.2.88c-.37-.1-.8-.1-1.29 0l.3 1.26 1.46-.33.24.6c-.29-.04-1.16.18-1.56.26l.31 1.3c.72-.15 1.31-.4 1.78-.72l.01.01-.18.92Zm2.63-4.2.72 3.58-.84.15-.73-3.57c-.52.09-.8.09-1.5.39l-.02-.8 3.6-.46.25.68a5.68 5.68 0 0 0-1.48.02ZM91.93 90.33c-.2.8-.52 2.28-.62 3.08 1.87.4 2.45-2.7.62-3.08ZM99.27 91.6c-1.43-.36-1.9 2.6-.7 3.07 1.45.34 1.9-2.6.7-3.08ZM95.52 91.04l-.44 1.57c1.22.22 1.75-1.37.44-1.57ZM84.04 88.8c-1.5-.4-2.07 2.65-.82 3.17 1.53.4 2.08-2.64.82-3.17Z\"\n />\n <path\n fill=\"currentColor\"\n d=\"M105.4 90.38c-1.19 0-2.33-.02-2.88-.07-6.3-.6-12.52-2.38-18.8-3.37-1.81-.28-3.3-.55-4.58-.55-2.67 0-4.48 1.15-6.63 5.67-.91 1.73 2.15 3.37 2.83 3.44-2.52-2.13-1.64-2.76.34-2.76 2.75 0 7.62 1.2 8.57 1.33 5.75.9 11.57 2.53 17.42 3.15l.59.03c4.3 0 4.09-4.64 7.05-6.95-.53.04-2.27.08-3.9.08Zm-23.67-2.5c-.14.13-.65 3.67-.62 4.01l-.96-.18c.17-.3.4-2.77.4-2.77l-1.65 2.53-.97-2.86s-.39 2.06-.4 2.72l-.95-.13c.3-.48.9-4.12.9-4.12l.97.18c.03.2.76 2.66.76 2.66s1.3-2.15 1.38-2.26l1.14.2v.02Zm3.53 3.13c-.86 2.9-4.24 1.31-3.24-1.27.86-2.81 4.24-1.33 3.24 1.27Zm3.33 2.54c-.3-.07-1.89-3.28-1.89-3.28s-.39 2.5-.49 2.67l-.72-.1.83-3.93.8.1c0 .11 1.27 2.76 1.27 2.76l.46-2.34.62.17-.88 3.95Zm3.77.34c-.57.2-1.39-.02-1.98-.14l.8-4.04c2.65-.17 3.74 3.22 1.18 4.18Zm4.7-1.86c-.12.46-.46.77-1.02.94.24.8.39 1.06.8 1.93v.02l-.65-.1a7.54 7.54 0 0 1-1.18-1.8c-.14.5-.28 1.13-.22 1.58l-1.1-.16c.2-.31 1.06-3.62 1.03-3.97.94.12 2.64.29 2.34 1.56Zm2.1 3.2c-2.44.45-2.43-3.6-.48-4.17 2.43-.51 2.44 3.61.47 4.17Zm2.52-2.37c-.1.71-.43 2.18-.3 2.86l-.95-.14c.42-1.06.7-2.85.64-3.98l.95.13c-.16.32-.27.7-.34 1.13Zm2.25-.18s-.56 3.11-.53 3.38l-.94-.17c-.02.02.58-2.73.73-3.33a2 2 0 0 0-1.1.1h-.01l.38-.78 2.56.45.18.87a3.4 3.4 0 0 0-1.27-.52Z\"\n />\n </Icon>\n )\n})\n","import { Icon, type IconProps } from '@chakra-ui/react'\nimport { forwardRef, useId } from 'react'\n\nexport interface GOVUKCrownProps extends Omit<IconProps, 'children'> {\n title?: string\n titleId?: string\n}\n\nexport const GOVUKCrown = forwardRef<SVGSVGElement, GOVUKCrownProps>(function GOVUKCrown(\n { title = 'GOV.UK Crown', titleId, ...props },\n ref\n) {\n const autoTitleId = useId()\n const resolvedTitleId = title ? (titleId ?? autoTitleId) : undefined\n\n return (\n <Icon\n as=\"svg\"\n ref={ref}\n aria-hidden={title ? undefined : true}\n aria-labelledby={resolvedTitleId}\n role={title ? 'img' : undefined}\n viewBox=\"0 0 64 60\"\n height=\"30\"\n width=\"32\"\n fill=\"currentcolor\"\n className=\"crown\"\n {...props}\n >\n {title ? <title id={resolvedTitleId}>{title}</title> : null}\n <circle cx=\"20\" cy=\"17.6\" r=\"3.7\"></circle>\n <circle cx=\"10.2\" cy=\"23.5\" r=\"3.7\"></circle>\n <circle cx=\"3.7\" cy=\"33.2\" r=\"3.7\"></circle>\n <circle cx=\"31.7\" cy=\"30.6\" r=\"3.7\"></circle>\n <circle cx=\"43.3\" cy=\"17.6\" r=\"3.7\"></circle>\n <circle cx=\"53.2\" cy=\"23.5\" r=\"3.7\"></circle>\n <circle cx=\"59.7\" cy=\"33.2\" r=\"3.7\"></circle>\n <circle cx=\"31.7\" cy=\"30.6\" r=\"3.7\"></circle>\n <path d=\"M33.1,9.8c.2-.1.3-.3.5-.5l4.6,2.4v-6.8l-4.6,1.5c-.1-.2-.3-.3-.5-.5l1.9-5.9h-6.7l1.9,5.9c-.2.1-.3.3-.5.5l-4.6-1.5v6.8l4.6-2.4c.1.2.3.3.5.5l-2.6,8c-.9,2.8,1.2,5.7,4.1,5.7h0c3,0,5.1-2.9,4.1-5.7l-2.6-8ZM37,37.9s-3.4,3.8-4.1,6.1c2.2,0,4.2-.5,6.4-2.8l-.7,8.5c-2-2.8-4.4-4.1-5.7-3.8.1,3.1.5,6.7,5.8,7.2,3.7.3,6.7-1.5,7-3.8.4-2.6-2-4.3-3.7-1.6-1.4-4.5,2.4-6.1,4.9-3.2-1.9-4.5-1.8-7.7,2.4-10.9,3,4,2.6,7.3-1.2,11.1,2.4-1.3,6.2,0,4,4.6-1.2-2.8-3.7-2.2-4.2.2-.3,1.7.7,3.7,3,4.2,1.9.3,4.7-.9,7-5.9-1.3,0-2.4.7-3.9,1.7l2.4-8c.6,2.3,1.4,3.7,2.2,4.5.6-1.6.5-2.8,0-5.3l5,1.8c-2.6,3.6-5.2,8.7-7.3,17.5-7.4-1.1-15.7-1.7-24.5-1.7h0c-8.8,0-17.1.6-24.5,1.7-2.1-8.9-4.7-13.9-7.3-17.5l5-1.8c-.5,2.5-.6,3.7,0,5.3.8-.8,1.6-2.3,2.2-4.5l2.4,8c-1.5-1-2.6-1.7-3.9-1.7,2.3,5,5.2,6.2,7,5.9,2.3-.4,3.3-2.4,3-4.2-.5-2.4-3-3.1-4.2-.2-2.2-4.6,1.6-6,4-4.6-3.7-3.7-4.2-7.1-1.2-11.1,4.2,3.2,4.3,6.4,2.4,10.9,2.5-2.8,6.3-1.3,4.9,3.2-1.8-2.7-4.1-1-3.7,1.6.3,2.3,3.3,4.1,7,3.8,5.4-.5,5.7-4.2,5.8-7.2-1.3-.2-3.7,1-5.7,3.8l-.7-8.5c2.2,2.3,4.2,2.7,6.4,2.8-.7-2.3-4.1-6.1-4.1-6.1h10.6,0Z\"></path>\n </Icon>\n )\n})\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport { forwardRef } from 'react'\n\nimport { Heading } from '@/components/Heading'\nimport { Link } from '@/components/Link'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nexport type GOVUKFooterProps = BoxProps\n\nexport type GOVUKFooterContainerProps = BoxProps\n\nexport type GOVUKFooterNavigationProps = BoxProps\n\nexport type GOVUKFooterSectionProps = BoxProps\n\nexport type GOVUKFooterSectionTitleProps = React.ComponentProps<typeof Heading>\n\nexport type GOVUKFooterListProps = BoxProps\n\nexport type GOVUKFooterListItemProps = BoxProps\n\nexport type GOVUKFooterLinkProps = React.ComponentProps<typeof Link>\n\nexport type GOVUKFooterMetaProps = BoxProps\n\nexport type GOVUKFooterMetaItemProps = BoxProps\n\nexport type GOVUKFooterMetaTextProps = React.ComponentProps<typeof Text>\n\nconst GOVUKFooterRoot = forwardRef<HTMLElement, GOVUKFooterProps>(function GOVUKFooter(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"footer\"\n borderTop=\"10px solid\"\n borderColor=\"primary.500\"\n bgColor=\"primary.50\"\n color=\"fg\"\n w={'full'}\n mt={pxToRem(60)}\n pt={{ base: pxToRem(40), md: pxToRem(48) }}\n pb={{ base: pxToRem(24), md: pxToRem(32) }}\n _dark={{\n bgColor: 'primary.950',\n }}\n {...props}\n />\n )\n})\n\nconst GOVUKFooterContainer = forwardRef<HTMLDivElement, GOVUKFooterContainerProps>(\n function GOVUKFooterContainer(props, ref) {\n return (\n <Box\n ref={ref}\n className=\"footer-container\"\n maxW=\"1200px\"\n mx=\"auto\"\n px={{ base: pxToRem(15), md: pxToRem(30) }}\n {...props}\n >\n {props.children}\n </Box>\n )\n }\n)\n\nconst GOVUKFooterNavigation = forwardRef<HTMLDivElement, GOVUKFooterNavigationProps>(\n function GOVUKFooterNavigation(props, ref) {\n return (\n <Box\n ref={ref}\n className=\"footer-navigation\"\n display=\"grid\"\n gridTemplateColumns={{\n base: '1fr',\n md: 'repeat(2, minmax(0, 1fr))',\n xl: 'repeat(auto-fit, minmax(240px, 1fr))',\n }}\n columnGap={{ base: pxToRem(24), md: pxToRem(30) }}\n rowGap={{ base: pxToRem(24), md: pxToRem(32) }}\n pb={{ base: pxToRem(24), md: pxToRem(32) }}\n mb={{ base: pxToRem(20), md: pxToRem(24) }}\n borderBottom=\"1px solid\"\n borderColor=\"primary.200\"\n {...props}\n />\n )\n }\n)\n\nconst GOVUKFooterSection = forwardRef<HTMLDivElement, GOVUKFooterSectionProps>(\n function GOVUKFooterSection(props, ref) {\n return <Box ref={ref} className=\"footer-column\" {...props} />\n }\n)\n\nconst GOVUKFooterSectionTitle = forwardRef<HTMLHeadingElement, GOVUKFooterSectionTitleProps>(\n function GOVUKFooterSectionTitle(props, ref) {\n return (\n <Heading\n ref={ref}\n as=\"h2\"\n size={24}\n color=\"fg\"\n mb={{ base: pxToRem(16), md: pxToRem(20) }}\n {...props}\n />\n )\n }\n)\n\nconst GOVUKFooterList = forwardRef<HTMLUListElement, GOVUKFooterListProps>(\n function GOVUKFooterList(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"ul\"\n listStyleType=\"none\"\n display=\"grid\"\n gap={{ base: pxToRem(12), md: pxToRem(20) }}\n m={0}\n p={0}\n {...props}\n />\n )\n }\n)\n\nconst GOVUKFooterListItem = forwardRef<HTMLLIElement, GOVUKFooterListItemProps>(\n function GOVUKFooterListItem(props, ref) {\n return <Box ref={ref} as=\"li\" m={0} p={0} {...props} />\n }\n)\n\nconst GOVUKFooterLink = forwardRef<HTMLAnchorElement, GOVUKFooterLinkProps>(\n function GOVUKFooterLink(props, ref) {\n return (\n <Link ref={ref} {...props}>\n <Text as={'span'} fontSize={19}>\n {props.children}\n </Text>\n </Link>\n )\n }\n)\n\nconst GOVUKFooterMeta = forwardRef<HTMLDivElement, GOVUKFooterMetaProps>(\n function GOVUKFooterMeta(props, ref) {\n return (\n <Box\n ref={ref}\n className=\"meta\"\n display=\"grid\"\n gridTemplateColumns={{ base: '1fr', md: 'minmax(0, 1fr) auto' }}\n alignItems=\"start\"\n justifyContent=\"space-between\"\n columnGap={{ base: pxToRem(20), md: pxToRem(30) }}\n rowGap={{ base: pxToRem(16), md: pxToRem(20) }}\n {...props}\n />\n )\n }\n)\n\nconst GOVUKFooterMetaItem = forwardRef<HTMLDivElement, GOVUKFooterMetaItemProps>(\n function GOVUKFooterMetaItem(props, ref) {\n return (\n <Box\n ref={ref}\n display=\"flex\"\n flexWrap=\"wrap\"\n columnGap={pxToRem(16)}\n rowGap={pxToRem(8)}\n alignItems=\"center\"\n fontSize={16}\n lineHeight={pxToRem(20)}\n {...props}\n />\n )\n }\n)\n\nconst GOVUKFooterMetaText = forwardRef<HTMLParagraphElement, GOVUKFooterMetaTextProps>(\n function GOVUKFooterMetaText(props, ref) {\n return (\n <Text\n ref={ref}\n className=\"text\"\n fontSize={16}\n color=\"fg\"\n mb={0}\n justifySelf={{ md: 'end' }}\n textAlign={{ md: 'right' }}\n {...props}\n />\n )\n }\n)\n\nexport const GOVUKFooter = Object.assign(GOVUKFooterRoot, {\n Root: GOVUKFooterRoot,\n Container: GOVUKFooterContainer,\n Navigation: GOVUKFooterNavigation,\n Section: GOVUKFooterSection,\n SectionTitle: GOVUKFooterSectionTitle,\n List: GOVUKFooterList,\n ListItem: GOVUKFooterListItem,\n Link: GOVUKFooterLink,\n Meta: GOVUKFooterMeta,\n MetaItem: GOVUKFooterMetaItem,\n MetaText: GOVUKFooterMetaText,\n})\n\nexport {\n GOVUKFooterRoot,\n GOVUKFooterContainer,\n GOVUKFooterNavigation,\n GOVUKFooterSection,\n GOVUKFooterSectionTitle,\n GOVUKFooterList,\n GOVUKFooterListItem,\n GOVUKFooterLink,\n GOVUKFooterMeta,\n GOVUKFooterMetaItem,\n GOVUKFooterMetaText,\n}\n","import { pxToRem } from '@/utils'\nimport { Icon, type IconProps } from '@chakra-ui/react'\nimport { forwardRef, useId } from 'react'\n\nexport interface GOVUKLogoProps extends Omit<IconProps, 'children'> {\n title?: string\n titleId?: string\n dotColor?: string\n width?: string | number\n height?: string | number\n color?: string\n}\n\nexport const GOVUKLogo = forwardRef<SVGSVGElement, GOVUKLogoProps>(function GOVUKLogo(\n {\n title = 'GOV.UK Logo',\n titleId,\n dotColor = '#00ffe0',\n width = pxToRem(162),\n height = pxToRem(30),\n color = 'common.white',\n ...props\n },\n ref\n) {\n const autoTitleId = useId()\n const resolvedTitleId = title ? (titleId ?? autoTitleId) : undefined\n\n return (\n <Icon\n as=\"svg\"\n ref={ref}\n fill=\"none\"\n color={color}\n aria-hidden={title ? undefined : true}\n aria-labelledby={resolvedTitleId}\n role={title ? 'img' : undefined}\n viewBox=\"0 0 324 60\"\n height={height}\n width={width}\n className=\"logotype\"\n {...props}\n >\n {title ? <title id={resolvedTitleId}>{title}</title> : null}\n\n <g>\n <circle fill=\"currentColor\" cx=\"20\" cy=\"17.6\" r=\"3.7\" />\n <circle fill=\"currentColor\" cx=\"10.2\" cy=\"23.5\" r=\"3.7\" />\n <circle fill=\"currentColor\" cx=\"3.7\" cy=\"33.2\" r=\"3.7\" />\n <circle fill=\"currentColor\" cx=\"31.7\" cy=\"30.6\" r=\"3.7\" />\n <circle fill=\"currentColor\" cx=\"43.3\" cy=\"17.6\" r=\"3.7\" />\n <circle fill=\"currentColor\" cx=\"53.2\" cy=\"23.5\" r=\"3.7\" />\n <circle fill=\"currentColor\" cx=\"59.7\" cy=\"33.2\" r=\"3.7\" />\n <circle fill=\"currentColor\" cx=\"31.7\" cy=\"30.6\" r=\"3.7\" />\n <path\n fill=\"currentColor\"\n d=\"M33.1,9.8c.2-.1.3-.3.5-.5l4.6,2.4v-6.8l-4.6,1.5c-.1-.2-.3-.3-.5-.5l1.9-5.9h-6.7l1.9,5.9c-.2.1-.3.3-.5.5l-4.6-1.5v6.8l4.6-2.4c.1.2.3.3.5.5l-2.6,8c-.9,2.8,1.2,5.7,4.1,5.7h0c3,0,5.1-2.9,4.1-5.7l-2.6-8ZM37,37.9s-3.4,3.8-4.1,6.1c2.2,0,4.2-.5,6.4-2.8l-.7,8.5c-2-2.8-4.4-4.1-5.7-3.8.1,3.1.5,6.7,5.8,7.2,3.7.3,6.7-1.5,7-3.8.4-2.6-2-4.3-3.7-1.6-1.4-4.5,2.4-6.1,4.9-3.2-1.9-4.5-1.8-7.7,2.4-10.9,3,4,2.6,7.3-1.2,11.1,2.4-1.3,6.2,0,4,4.6-1.2-2.8-3.7-2.2-4.2.2-.3,1.7.7,3.7,3,4.2,1.9.3,4.7-.9,7-5.9-1.3,0-2.4.7-3.9,1.7l2.4-8c.6,2.3,1.4,3.7,2.2,4.5.6-1.6.5-2.8,0-5.3l5,1.8c-2.6,3.6-5.2,8.7-7.3,17.5-7.4-1.1-15.7-1.7-24.5-1.7h0c-8.8,0-17.1.6-24.5,1.7-2.1-8.9-4.7-13.9-7.3-17.5l5-1.8c-.5,2.5-.6,3.7,0,5.3.8-.8,1.6-2.3,2.2-4.5l2.4,8c-1.5-1-2.6-1.7-3.9-1.7,2.3,5,5.2,6.2,7,5.9,2.3-.4,3.3-2.4,3-4.2-.5-2.4-3-3.1-4.2-.2-2.2-4.6,1.6-6,4-4.6-3.7-3.7-4.2-7.1-1.2-11.1,4.2,3.2,4.3,6.4,2.4,10.9,2.5-2.8,6.3-1.3,4.9,3.2-1.8-2.7-4.1-1-3.7,1.6.3,2.3,3.3,4.1,7,3.8,5.4-.5,5.7-4.2,5.8-7.2-1.3-.2-3.7,1-5.7,3.8l-.7-8.5c2.2,2.3,4.2,2.7,6.4,2.8-.7-2.3-4.1-6.1-4.1-6.1h10.6,0Z\"\n />\n </g>\n <circle fill={dotColor} className=\"govuk-logo-dot\" cx=\"226\" cy=\"36\" r=\"7.3\" />\n <path\n fill=\"currentColor\"\n d=\"M93.94 41.25c.4 1.81 1.2 3.21 2.21 4.62 1 1.4 2.21 2.41 3.61 3.21s3.21 1.2 5.22 1.2 3.61-.4 4.82-1c1.4-.6 2.41-1.4 3.21-2.41.8-1 1.4-2.01 1.61-3.01s.4-2.01.4-3.01v.14h-10.86v-7.02h20.07v24.08h-8.03v-5.56c-.6.8-1.38 1.61-2.19 2.41-.8.8-1.81 1.2-2.81 1.81-1 .4-2.21.8-3.41 1.2s-2.41.4-3.81.4a18.56 18.56 0 0 1-14.65-6.63c-1.6-2.01-3.01-4.41-3.81-7.02s-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83a20.45 20.45 0 0 1 19.46-13.65c3.21 0 4.01.2 5.82.8 1.81.4 3.61 1.2 5.02 2.01 1.61.8 2.81 2.01 4.01 3.21s2.21 2.61 2.81 4.21l-7.63 4.41c-.4-1-1-1.81-1.61-2.61-.6-.8-1.4-1.4-2.21-2.01-.8-.6-1.81-1-2.81-1.4-1-.4-2.21-.4-3.61-.4-2.01 0-3.81.4-5.22 1.2-1.4.8-2.61 1.81-3.61 3.21s-1.61 2.81-2.21 4.62c-.4 1.81-.6 3.71-.6 5.42s.8 5.22.8 5.22Zm57.8-27.9c3.21 0 6.22.6 8.63 1.81 2.41 1.2 4.82 2.81 6.62 4.82S170.2 24.39 171 27s1.4 5.62 1.4 8.83-.4 6.02-1.4 8.83-2.41 5.02-4.01 7.02-4.01 3.61-6.62 4.82-5.42 1.81-8.63 1.81-6.22-.6-8.63-1.81-4.82-2.81-6.42-4.82-3.21-4.41-4.01-7.02-1.4-5.62-1.4-8.83.4-6.02 1.4-8.83 2.41-5.02 4.01-7.02 4.01-3.61 6.42-4.82 5.42-1.81 8.63-1.81Zm0 36.73c1.81 0 3.61-.4 5.02-1s2.61-1.81 3.61-3.01 1.81-2.81 2.21-4.41c.4-1.81.8-3.61.8-5.62 0-2.21-.2-4.21-.8-6.02s-1.2-3.21-2.21-4.62c-1-1.2-2.21-2.21-3.61-3.01s-3.21-1-5.02-1-3.61.4-5.02 1c-1.4.8-2.61 1.81-3.61 3.01s-1.81 2.81-2.21 4.62c-.4 1.81-.8 3.61-.8 5.62 0 2.41.2 4.21.8 6.02.4 1.81 1.2 3.21 2.21 4.41s2.21 2.21 3.61 3.01c1.4.8 3.21 1 5.02 1Zm36.32 7.96-12.24-44.15h9.83l8.43 32.77h.4l8.23-32.77h9.83L200.3 58.04h-12.24Zm74.14-7.96c2.18 0 3.51-.6 3.51-.6 1.2-.6 2.01-1 2.81-1.81s1.4-1.81 1.81-2.81a13 13 0 0 0 .8-4.01V13.9h8.63v28.15c0 2.41-.4 4.62-1.4 6.62-.8 2.01-2.21 3.61-3.61 5.02s-3.41 2.41-5.62 3.21-4.62 1.2-7.02 1.2-5.02-.4-7.02-1.2c-2.21-.8-4.01-1.81-5.62-3.21s-2.81-3.01-3.61-5.02-1.4-4.21-1.4-6.62V13.9h8.63v26.95c0 1.61.2 3.01.8 4.01.4 1.2 1.2 2.21 2.01 2.81.8.8 1.81 1.4 2.81 1.81 0 0 1.34.6 3.51.6Zm34.22-36.18v18.92l15.65-18.92h10.82l-15.03 17.32 16.03 26.83h-10.21l-11.44-20.21-5.62 6.22v13.99h-8.83V13.9\"\n />\n </Icon>\n )\n})\n","import { Box, HStack, VStack, type BoxProps, type StackProps } from '@chakra-ui/react'\nimport { forwardRef, type ComponentProps } from 'react'\n\nimport { Link } from '@/components/Link'\nimport { pxToRem } from '@/utils'\nimport { GOVUKLogo } from '../GOVUKLogo'\n\nexport type GOVUKHeaderProps = StackProps\n\nexport type GOVUKHeaderContainerProps = StackProps\n\nexport interface GOVUKHeaderLogoProps extends ComponentProps<typeof Link> {\n label?: string\n}\n\nexport type GOVUKHeaderLogotypeProps = BoxProps\n\nconst GOVUKHeaderRoot = forwardRef<HTMLDivElement, GOVUKHeaderProps>(\n function GOVUKHeader(props, ref) {\n return <VStack ref={ref} as=\"header\" alignItems={'flex-start'} gap={0} w={'full'} {...props} />\n }\n)\n\nconst GOVUKHeaderContainer = forwardRef<HTMLDivElement, GOVUKHeaderContainerProps>(\n function GOVUKHeaderContainer(props, ref) {\n return (\n <HStack\n ref={ref}\n bg=\"primary.500\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={pxToRem(16)}\n mx=\"auto\"\n py={pxToRem(10)}\n w={'full'}\n h={pxToRem(60)}\n _dark={{\n bg: 'primary.600',\n }}\n {...props}\n >\n <HStack\n maxW=\"1200px\"\n w={'full'}\n wrap={'wrap'}\n px={{ base: pxToRem(15), md: pxToRem(30) }}\n gap={pxToRem(16)}\n >\n {props.children}\n </HStack>\n </HStack>\n )\n }\n)\n\nconst GOVUKHeaderLogotype = forwardRef<HTMLSpanElement, GOVUKHeaderLogotypeProps>(\n function GOVUKHeaderLogotype(props, ref) {\n return (\n <Box ref={ref} as=\"span\" whiteSpace=\"nowrap\" color=\"currentColor\" {...props}>\n <GOVUKLogo />\n </Box>\n )\n }\n)\n\nconst GOVUKHeaderLogo = forwardRef<HTMLAnchorElement, GOVUKHeaderLogoProps>(\n function GOVUKHeaderLogo({ children, label = 'GOV.UK homepage', ...props }, ref) {\n return (\n <Link\n ref={ref}\n aria-label={label}\n display=\"inline-flex\"\n alignItems=\"center\"\n gap={pxToRem(8)}\n color=\"common.white\"\n textDecoration=\"none\"\n fontWeight=\"700\"\n flexShrink={0}\n _hover={{ color: 'common.white', textDecoration: 'none', opacity: 0.92 }}\n _focus={{\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n bgColor: 'yellow.500',\n color: 'common.black',\n textDecoration: 'none',\n _hover: {\n bgColor: 'yellow.500',\n color: 'common.black',\n textDecoration: 'none',\n },\n }}\n {...props}\n >\n {children ?? (\n <>\n <GOVUKHeaderLogotype />\n </>\n )}\n </Link>\n )\n }\n)\n\nexport const GOVUKHeader = Object.assign(GOVUKHeaderRoot, {\n Root: GOVUKHeaderRoot,\n Container: GOVUKHeaderContainer,\n Logo: GOVUKHeaderLogo,\n Logotype: GOVUKHeaderLogotype,\n})\n\nexport { GOVUKHeaderRoot, GOVUKHeaderLogo, GOVUKHeaderContainer, GOVUKHeaderLogotype }\n","import { Icon, type IconProps } from '@chakra-ui/react'\nimport { forwardRef, useId } from 'react'\n\nexport interface GOVUKOGLProps extends Omit<IconProps, 'children'> {\n title?: string\n titleId?: string\n}\n\nexport const GOVUKOGL = forwardRef<SVGSVGElement, GOVUKOGLProps>(function GOVUKOGL(\n { title = 'GOV.UK License OGL', titleId, ...props },\n ref\n) {\n const autoTitleId = useId()\n const resolvedTitleId = title ? (titleId ?? autoTitleId) : undefined\n\n return (\n <Icon\n as=\"svg\"\n ref={ref}\n aria-hidden={title ? undefined : true}\n aria-labelledby={resolvedTitleId}\n role={title ? 'img' : undefined}\n className=\"licence-ogl\"\n viewBox=\"0 0 483.2 195.7\"\n height=\"17\"\n width=\"41\"\n {...props}\n >\n {title ? <title id={resolvedTitleId}>{title}</title> : null}\n <path\n fill=\"currentColor\"\n d=\"M421.5 142.8V.1l-50.7 32.3v161.1h112.4v-50.7zm-122.3-9.6A47.12 47.12 0 0 1 221 97.8c0-26 21.1-47.1 47.1-47.1 16.7 0 31.4 8.7 39.7 21.8l42.7-27.2A97.63 97.63 0 0 0 268.1 0c-36.5 0-68.3 20.1-85.1 49.7A98 98 0 0 0 97.8 0C43.9 0 0 43.9 0 97.8s43.9 97.8 97.8 97.8c36.5 0 68.3-20.1 85.1-49.7a97.76 97.76 0 0 0 149.6 25.4l19.4 22.2h3v-87.8h-80l24.3 27.5zM97.8 145c-26 0-47.1-21.1-47.1-47.1s21.1-47.1 47.1-47.1 47.2 21 47.2 47S123.8 145 97.8 145\"\n ></path>\n </Icon>\n )\n})\n","import { Highlight as ChakraHighlight, useChakraContext, useRecipe } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\ntype HighlightVariantOptions = readonly ['subtle', 'solid', 'outline', 'plain']\ntype HighlightColorPaletteOptions = readonly [\n 'gray',\n 'red',\n 'orange',\n 'yellow',\n 'green',\n 'teal',\n 'blue',\n 'cyan',\n 'purple',\n 'pink',\n]\n\ntype HighlightVariant = HighlightVariantOptions[number]\ntype HighlightColorPalette = HighlightColorPaletteOptions[number]\n\nexport interface HighlightProps extends ComponentPropsWithoutRef<typeof ChakraHighlight> {\n variant?: HighlightVariant\n colorPalette?: HighlightColorPalette\n}\n\nexport function HighlightRoot({ colorPalette, styles, variant, ...props }: HighlightProps) {\n const recipe = useRecipe({ key: 'highlight' })\n const sys = useChakraContext()\n const recipeStyles = recipe({ variant, colorPalette })\n const resolvedStyles = styles ? sys.css(recipeStyles, styles) : recipeStyles\n\n return <ChakraHighlight {...props} styles={resolvedStyles} />\n}\n\nexport const Highlight = Object.assign(HighlightRoot, {\n Root: HighlightRoot,\n})\n","import { HoverCard as ChakraHoverCard } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type HoverCardProps = ComponentPropsWithoutRef<typeof ChakraHoverCard.Root>\ntype HoverCardComponent = typeof ChakraHoverCard.Root & typeof ChakraHoverCard\n\nexport const HoverCardRoot = ChakraHoverCard.Root\n\nexport const HoverCard: HoverCardComponent = Object.assign(ChakraHoverCard.Root, {\n ...ChakraHoverCard,\n})\n","import {\n IconButton as ChakraIconButton,\n type IconButtonProps as ChakraIconButtonProps,\n} from '@chakra-ui/react'\nimport { forwardRef } from 'react'\n\nimport { getGovukTypeScale, pxToRem } from '@/utils'\nimport { buttonVariantStyles, type ButtonVariant } from '@/components/Button/buttonVariants'\n\nexport interface IconButtonProps extends Omit<ChakraIconButtonProps, 'variant'> {\n variant?: ButtonVariant\n}\n\nconst IconButtonRoot = forwardRef<HTMLButtonElement, IconButtonProps>(\n ({ variant = 'primary', fontSize = 16, ...props }, ref) => {\n const scale = getGovukTypeScale(fontSize)\n\n if (scale) {\n return (\n <ChakraIconButton\n ref={ref}\n borderRadius=\"0\"\n fontSize={{ base: scale.small.fontSize, md: scale.large.fontSize }}\n lineHeight={{ base: scale.small.lineHeight, md: scale.large.lineHeight }}\n fontFamily=\"body\"\n padding={pxToRem(8)}\n minW=\"unset\"\n {...buttonVariantStyles[variant]}\n {...props}\n />\n )\n }\n }\n)\n\nIconButtonRoot.displayName = 'IconButton'\n\nexport { IconButtonRoot }\n\nexport const IconButton = Object.assign(IconButtonRoot, {\n Root: IconButtonRoot,\n})\n","import { Image as ChakraImage } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type ImageProps = ComponentPropsWithoutRef<typeof ChakraImage>\n\nexport const ImageRoot = ChakraImage\n\nexport const Image = Object.assign(ChakraImage, {\n Root: ChakraImage,\n})\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport { forwardRef, type ReactNode } from 'react'\n\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nexport interface InsetTextProps extends BoxProps {\n children: ReactNode\n}\n\nexport const InsetText = forwardRef<HTMLDivElement, InsetTextProps>(function InsetText(\n { children, ...props },\n ref\n) {\n return (\n <Box\n ref={ref}\n borderLeft=\"10px solid\"\n borderLeftColor=\"grey.100\"\n pl={pxToRem(15)}\n py={pxToRem(10)}\n my={{ base: pxToRem(20), md: pxToRem(30) }}\n color=\"fg\"\n _dark={{\n borderLeftColor: 'grey.500',\n }}\n {...props}\n >\n <Text fontSize={19} mb={0}>\n {children}\n </Text>\n </Box>\n )\n})\n","import { Kbd as ChakraKbd } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type KbdProps = ComponentPropsWithoutRef<typeof ChakraKbd>\n\nexport function KbdRoot({ ...props }: KbdProps) {\n return <ChakraKbd {...props} />\n}\n\nexport const Kbd = Object.assign(KbdRoot, {\n Root: KbdRoot,\n})\n","import { Listbox as ChakraListbox } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type ListboxProps = ComponentPropsWithoutRef<typeof ChakraListbox.Root>\ntype ListboxComponent = typeof ChakraListbox.Root & typeof ChakraListbox\n\nexport const ListboxRoot = ChakraListbox.Root\n\nexport const Listbox: ListboxComponent = Object.assign(ChakraListbox.Root, {\n ...ChakraListbox,\n})\n","import { Marquee as ChakraMarquee } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type MarqueeProps = ComponentPropsWithoutRef<typeof ChakraMarquee.Root>\ntype MarqueeComponent = typeof ChakraMarquee.Root & typeof ChakraMarquee\n\nexport const MarqueeRoot = ChakraMarquee.Root\n\nexport const Marquee: MarqueeComponent = Object.assign(ChakraMarquee.Root, {\n ...ChakraMarquee,\n})\n","import { Menu as ChakraMenu } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type MenuProps = ComponentPropsWithoutRef<typeof ChakraMenu.Root>\ntype MenuComponent = typeof ChakraMenu.Root & typeof ChakraMenu\n\nexport const MenuRoot = ChakraMenu.Root\n\nexport const Menu: MenuComponent = Object.assign(ChakraMenu.Root, {\n ...ChakraMenu,\n})\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport { forwardRef, useId, type ReactNode } from 'react'\n\nimport { Heading } from '@/components/Heading'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nexport type NotificationBannerVariant = 'info' | 'success' | 'error'\n\nexport interface NotificationBannerProps extends BoxProps {\n heading?: ReactNode\n variant?: NotificationBannerVariant\n children?: ReactNode\n}\n\nexport interface NotificationBannerHeaderProps extends BoxProps {\n variant?: NotificationBannerVariant\n}\n\nexport type NotificationBannerTitleProps = React.ComponentProps<typeof Heading>\n\nexport type NotificationBannerContentProps = BoxProps\n\nexport type NotificationBannerHeadingProps = React.ComponentProps<typeof Heading>\n\nexport type NotificationBannerBodyProps = React.ComponentProps<typeof Text>\n\nconst variantStyles: Record<NotificationBannerVariant, { borderColor: string; headerBg: string }> =\n {\n info: {\n borderColor: 'primary.500',\n headerBg: 'primary.500',\n },\n success: {\n borderColor: 'green.500',\n headerBg: 'green.500',\n },\n error: {\n borderColor: 'red.500',\n headerBg: 'red.500',\n },\n }\n\nconst NotificationBannerRoot = forwardRef<HTMLDivElement, NotificationBannerProps>(\n function NotificationBanner(\n { heading = 'Important', variant = 'info', children, ...props },\n ref\n ) {\n const titleId = useId()\n const styles = variantStyles[variant]\n\n return (\n <Box\n ref={ref}\n role={variant === 'success' ? 'alert' : 'region'}\n aria-labelledby={titleId}\n border=\"5px solid\"\n borderColor={styles.borderColor}\n bg=\"transparent\"\n color=\"fg\"\n {...props}\n >\n <NotificationBannerHeader variant={variant}>\n <NotificationBannerTitle id={titleId}>{heading}</NotificationBannerTitle>\n </NotificationBannerHeader>\n <NotificationBannerContent>{children}</NotificationBannerContent>\n </Box>\n )\n }\n)\n\nconst NotificationBannerHeader = forwardRef<HTMLDivElement, NotificationBannerHeaderProps>(\n function NotificationBannerHeader({ variant = 'info', ...props }, ref) {\n return (\n <Box\n ref={ref}\n bg={variantStyles[variant].headerBg}\n px={pxToRem(15)}\n py={pxToRem(10)}\n {...props}\n />\n )\n }\n)\n\nconst NotificationBannerTitle = forwardRef<HTMLHeadingElement, NotificationBannerTitleProps>(\n function NotificationBannerTitle(props, ref) {\n return <Heading ref={ref} as=\"h2\" size={24} color=\"common.white\" mb={0} {...props} />\n }\n)\n\nconst NotificationBannerContent = forwardRef<HTMLDivElement, NotificationBannerContentProps>(\n function NotificationBannerContent(props, ref) {\n return (\n <Box\n ref={ref}\n px={{ base: pxToRem(15), md: pxToRem(20) }}\n py={{ base: pxToRem(15), md: pxToRem(20) }}\n {...props}\n />\n )\n }\n)\n\nconst NotificationBannerHeading = forwardRef<HTMLHeadingElement, NotificationBannerHeadingProps>(\n function NotificationBannerHeading(props, ref) {\n return <Heading ref={ref} as=\"h3\" size={24} color=\"fg\" mb={pxToRem(15)} {...props} />\n }\n)\n\nconst NotificationBannerBody = forwardRef<HTMLParagraphElement, NotificationBannerBodyProps>(\n function NotificationBannerBody(props, ref) {\n return <Text ref={ref} fontSize={19} color=\"fg\" mb={0} {...props} />\n }\n)\n\nexport const NotificationBanner = Object.assign(NotificationBannerRoot, {\n Root: NotificationBannerRoot,\n Header: NotificationBannerHeader,\n Title: NotificationBannerTitle,\n Content: NotificationBannerContent,\n Heading: NotificationBannerHeading,\n Body: NotificationBannerBody,\n})\n\nexport {\n NotificationBannerRoot,\n NotificationBannerHeader,\n NotificationBannerTitle,\n NotificationBannerContent,\n NotificationBannerHeading,\n NotificationBannerBody,\n}\n","import { Box, Icon, VStack, type BoxProps } from '@chakra-ui/react'\nimport { createContext, forwardRef, useContext, type ReactNode } from 'react'\n\nimport { Link } from '@/components/Link'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nexport interface PaginationProps extends BoxProps {\n landmarkLabel?: string\n block?: boolean\n}\n\nexport type PaginationListProps = BoxProps\n\nexport interface PaginationItemProps extends BoxProps {\n current?: boolean\n ellipsis?: boolean\n}\n\nexport interface PaginationLinkProps extends React.ComponentProps<typeof Link> {\n current?: boolean\n number?: ReactNode\n visuallyHiddenText?: string\n}\n\nexport interface PaginationNavLinkProps extends React.ComponentProps<typeof Link> {\n label?: ReactNode\n}\n\ninterface PaginationContextValue {\n block: boolean\n}\n\nconst PaginationContext = createContext<PaginationContextValue | null>(null)\n\nfunction usePaginationContext() {\n return useContext(PaginationContext)\n}\n\nconst ChevronIcon = ({ direction }: { direction: 'previous' | 'next' }) => (\n <Icon\n as=\"svg\"\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox=\"0 0 15 13\"\n width={pxToRem(15)}\n height={pxToRem(13)}\n flexShrink={0}\n >\n <path\n fill=\"currentColor\"\n d={\n direction === 'previous'\n ? 'm6.5938-0.0078125-6.7266 6.7266 6.7441 6.4062 1.377-1.449-4.1856-3.9768h12.896v-2h-12.984l4.2931-4.293-1.414-1.414z'\n : 'm8.107-0.0078125-1.4136 1.414 4.2926 4.293h-12.986v2h12.896l-4.1855 3.9766 1.377 1.4492 6.7441-6.4062-6.7246-6.7266z'\n }\n />\n </Icon>\n)\n\nconst PaginationRoot = forwardRef<HTMLElement, PaginationProps>(function Pagination(\n { landmarkLabel = 'Pagination', block = false, children, ...props },\n ref\n) {\n return (\n <Box ref={ref} as=\"nav\" aria-label={landmarkLabel} width=\"100%\" {...props}>\n <PaginationContext.Provider value={{ block }}>\n <Box\n display=\"flex\"\n flexDirection={block ? 'column' : { base: 'column', md: 'row' }}\n alignItems={block ? 'stretch' : { md: 'center' }}\n justifyContent=\"space-between\"\n gap={block ? 0 : pxToRem(10)}\n >\n {children}\n </Box>\n </PaginationContext.Provider>\n </Box>\n )\n})\n\nconst PaginationList = forwardRef<HTMLUListElement, PaginationListProps>(\n function PaginationList(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"ul\"\n listStyleType=\"none\"\n display=\"flex\"\n flexWrap=\"wrap\"\n gap={pxToRem(10)}\n m={0}\n p={0}\n {...props}\n />\n )\n }\n)\n\nconst PaginationItem = forwardRef<HTMLLIElement, PaginationItemProps>(function PaginationItem(\n { current = false, ellipsis = false, children, ...props },\n ref\n) {\n return (\n <Box\n ref={ref}\n as=\"li\"\n minW={ellipsis ? 'auto' : pxToRem(40)}\n h={ellipsis ? 'auto' : pxToRem(40)}\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n bgColor={current ? 'primary.600' : 'transparent'}\n _hover={{ bgColor: current ? 'primary.600' : !ellipsis ? 'grey.50' : 'transparent' }}\n _dark={{\n _hover: {\n bgColor: !ellipsis ? 'common.black' : current ? 'primary.600' : 'transparent',\n },\n }}\n {...props}\n >\n {ellipsis ? (\n <Text as=\"span\" fontSize={19} color=\"fg\" mb={0}>\n ...\n </Text>\n ) : (\n children\n )}\n </Box>\n )\n})\n\nconst PaginationLink = forwardRef<HTMLAnchorElement, PaginationLinkProps>(function PaginationLink(\n { current = false, number, visuallyHiddenText, children, ...props },\n ref\n) {\n const content = children ?? number\n\n return (\n <Link\n ref={ref}\n aria-current={current ? 'page' : undefined}\n aria-label={visuallyHiddenText}\n className=\"page-link\"\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n minW={pxToRem(38)}\n h={pxToRem(38)}\n px={pxToRem(10)}\n color={current ? 'common.white' : 'fg.link'}\n fontSize={19}\n fontWeight={current ? '700' : '400'}\n textDecoration={'underline'}\n _hover={{\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n }}\n _focus={{\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n bgColor: 'yellow.500',\n color: 'fg',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n _hover: {\n color: 'fg',\n bgColor: 'yellow.500',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n }}\n _visited={{\n color: 'fg',\n }}\n _dark={{\n color: current ? 'common.white' : 'fg.link',\n _hover: {\n color: current ? 'common.white' : 'primary.300',\n bgColor: 'common.black',\n },\n _focus: {\n color: 'common.black',\n _hover: {\n color: 'common.black',\n bgColor: 'yellow.500',\n },\n _visited: {\n color: 'common.black',\n },\n },\n _visited: {\n color: 'fg',\n },\n }}\n {...props}\n >\n {content}\n </Link>\n )\n})\n\nconst PaginationPrevious = forwardRef<HTMLAnchorElement, PaginationNavLinkProps>(\n function PaginationPrevious({ label, children, ...props }, ref) {\n const context = usePaginationContext()\n const block = context?.block ?? false\n\n return (\n <Link\n ref={ref}\n rel=\"prev\"\n display=\"inline-flex\"\n alignItems=\"center\"\n width={block ? 'full' : undefined}\n gap={pxToRem(15)}\n h={children ? 'auto' : pxToRem(40)}\n pr={children ? '0' : pxToRem(15)}\n py={block ? pxToRem(15) : 0}\n borderBottom={block ? '1px solid {colors.grey.100}' : 'none'}\n _hover={{ bgColor: 'grey.50' }}\n _focus={{\n outline: 'none',\n bgColor: 'yellow.500',\n color: 'fg',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n _hover: {\n color: 'fg',\n bgColor: 'yellow.500',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n }}\n _visited={{\n color: 'fg',\n }}\n _dark={{\n color: 'fg.link',\n borderBottom: block ? '1px solid {colors.grey.700}' : 'none',\n _hover: {\n color: 'primary.300',\n bgColor: 'common.black',\n },\n _focus: {\n color: 'common.black',\n _hover: {\n color: 'common.black',\n bgColor: 'yellow.500',\n },\n _visited: {\n color: 'common.black',\n },\n },\n _visited: {\n color: 'fg',\n },\n }}\n {...props}\n >\n <ChevronIcon direction=\"previous\" />\n {children ? (\n <VStack align=\"start\" gap={0}>\n <Text as=\"span\" fontSize={27} color=\"inherit\" fontWeight=\"700\" mb={0}>\n {children ?? 'Previous'}\n </Text>\n <>\n {label ? (\n <Text as=\"span\" display=\"block\" fontSize={16} color=\"inherit\" mb={0}>\n {label}\n </Text>\n ) : null}\n </>\n </VStack>\n ) : (\n <>\n {label ? (\n <Text as=\"span\" display=\"block\" fontSize={16} color=\"inherit\" mb={0}>\n {label}\n </Text>\n ) : null}\n </>\n )}\n </Link>\n )\n }\n)\n\nconst PaginationNext = forwardRef<HTMLAnchorElement, PaginationNavLinkProps>(\n function PaginationNext({ label, children, ...props }, ref) {\n const context = usePaginationContext()\n const block = context?.block ?? false\n\n return (\n <Link\n ref={ref}\n rel=\"next\"\n display=\"inline-flex\"\n alignItems=\"center\"\n width={block ? 'full' : undefined}\n gap={pxToRem(15)}\n h={children ? 'auto' : pxToRem(40)}\n pl={children ? '0' : pxToRem(15)}\n py={block ? pxToRem(15) : 0}\n _hover={{ bgColor: 'grey.50' }}\n _focus={{\n outline: 'none',\n bgColor: 'yellow.500',\n color: 'fg',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n _hover: {\n color: 'fg',\n bgColor: 'yellow.500',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n }}\n _visited={{\n color: 'fg',\n }}\n _dark={{\n color: 'fg.link',\n _hover: {\n color: 'primary.300',\n bgColor: 'common.black',\n },\n _focus: {\n color: 'common.black',\n _hover: {\n color: 'common.black',\n bgColor: 'yellow.500',\n },\n _visited: {\n color: 'common.black',\n },\n },\n _visited: {\n color: 'fg',\n },\n }}\n {...props}\n >\n <ChevronIcon direction=\"next\" />\n {children ? (\n <VStack align=\"start\" gap={0}>\n <Text as=\"span\" fontSize={27} color=\"inherit\" fontWeight=\"700\" mb={0}>\n {children ?? 'Previous'}\n </Text>\n <>\n {label ? (\n <Text as=\"span\" display=\"block\" fontSize={16} color=\"inherit\" mb={0}>\n {label}\n </Text>\n ) : null}\n </>\n </VStack>\n ) : (\n <>\n {label ? (\n <Text as=\"span\" display=\"block\" fontSize={16} color=\"inherit\" mb={0}>\n {label}\n </Text>\n ) : null}\n </>\n )}\n </Link>\n )\n }\n)\n\nexport const Pagination = Object.assign(PaginationRoot, {\n Root: PaginationRoot,\n List: PaginationList,\n Item: PaginationItem,\n Link: PaginationLink,\n Previous: PaginationPrevious,\n Next: PaginationNext,\n})\n\nexport {\n PaginationRoot,\n PaginationList,\n PaginationItem,\n PaginationLink,\n PaginationPrevious,\n PaginationNext,\n}\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport { forwardRef, type ReactNode } from 'react'\n\nimport { Heading } from '@/components/Heading'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nexport interface PanelProps extends BoxProps {\n heading?: ReactNode\n children?: ReactNode\n}\n\nexport type PanelTitleProps = React.ComponentProps<typeof Heading>\n\nexport type PanelBodyProps = React.ComponentProps<typeof Text>\n\nconst PanelRoot = forwardRef<HTMLDivElement, PanelProps>(function Panel(\n { heading, children, ...props },\n ref\n) {\n return (\n <Box\n ref={ref}\n bg=\"green.500\"\n color=\"common.white\"\n textAlign=\"center\"\n py={{ base: pxToRem(24), md: pxToRem(36) }}\n px={{ base: pxToRem(16), md: pxToRem(24) }}\n mb={pxToRem(30)}\n {...props}\n >\n {heading ? <PanelTitle>{heading}</PanelTitle> : null}\n {children ? <PanelBody>{children}</PanelBody> : null}\n </Box>\n )\n})\n\nconst PanelTitle = forwardRef<HTMLHeadingElement, PanelTitleProps>(function PanelTitle(props, ref) {\n return (\n <Heading\n ref={ref}\n as=\"h1\"\n size={36}\n color=\"common.white\"\n mb={pxToRem(12)}\n textAlign=\"center\"\n {...props}\n />\n )\n})\n\nconst PanelBody = forwardRef<HTMLParagraphElement, PanelBodyProps>(function PanelBody(props, ref) {\n return (\n <Text\n ref={ref}\n as=\"div\"\n fontSize={24}\n lineHeight={pxToRem(32)}\n color=\"common.white\"\n mb={0}\n textAlign=\"center\"\n css={{\n '& strong': {\n display: 'block',\n fontWeight: '700',\n marginTop: pxToRem(5),\n },\n }}\n {...props}\n />\n )\n})\n\nexport const Panel = Object.assign(PanelRoot, {\n Root: PanelRoot,\n Title: PanelTitle,\n Body: PanelBody,\n})\n\nexport { PanelRoot, PanelTitle, PanelBody }\n","import { PinInput as ChakraPinInput } from '@chakra-ui/react'\nimport {\n createContext,\n forwardRef,\n useContext,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n} from 'react'\nimport { Text } from '../Text'\n\nexport type PinInputProps = ComponentPropsWithoutRef<typeof ChakraPinInput.Root>\nexport type PinInputInputProps = ComponentPropsWithoutRef<typeof ChakraPinInput.Input>\ntype PinInputComponent = typeof PinInputRoot & Omit<typeof ChakraPinInput, 'Root' | 'Input'>\ntype PinInputComposite = PinInputComponent & {\n Root: typeof PinInputRoot\n Input: typeof PinInputInput\n}\n\nconst CUSTOM_MASK_SYMBOL = '🞶'\nconst DEFAULT_PLACEHOLDER = '◇'\n\nconst PinInputMaskContext = createContext(false)\n\nexport const PinInputRoot = forwardRef<HTMLDivElement, PinInputProps>(function PinInputRoot(\n { mask, placeholder = DEFAULT_PLACEHOLDER, ...props },\n ref\n) {\n const useCustomMask = Boolean(mask)\n\n return (\n <PinInputMaskContext.Provider value={useCustomMask}>\n <ChakraPinInput.Root ref={ref} mask={false} placeholder={placeholder} {...props} />\n </PinInputMaskContext.Provider>\n )\n})\n\nexport const PinInputInput = forwardRef<HTMLInputElement, PinInputInputProps>(\n function PinInputInput({ onChange, onInput, style, ...props }, ref) {\n const useCustomMask = useContext(PinInputMaskContext)\n const inputRef = useRef<HTMLInputElement | null>(null)\n const [hasValue, setHasValue] = useState(false)\n\n return (\n <Text\n as=\"span\"\n css={{\n position: 'relative',\n display: 'inline-flex',\n }}\n >\n <ChakraPinInput.Input\n {...props}\n ref={(node) => {\n inputRef.current = node\n\n if (typeof ref === 'function') {\n ref(node)\n return\n }\n\n if (ref) {\n ref.current = node\n }\n }}\n type=\"text\"\n style={\n useCustomMask\n ? {\n ...style,\n color: 'transparent',\n caretColor: 'currentColor',\n }\n : style\n }\n onInput={(event) => {\n setHasValue(Boolean(event.currentTarget.value))\n onInput?.(event)\n }}\n onChange={(event) => {\n setHasValue(Boolean(event.currentTarget.value))\n onChange?.(event)\n }}\n />\n {useCustomMask && hasValue ? (\n <Text\n as=\"span\"\n aria-hidden=\"true\"\n css={{\n position: 'absolute',\n inset: 0,\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n pointerEvents: 'none',\n }}\n >\n {CUSTOM_MASK_SYMBOL}\n </Text>\n ) : null}\n </Text>\n )\n }\n)\n\nexport const PinInput: PinInputComposite = Object.assign(PinInputRoot, {\n ...ChakraPinInput,\n Root: PinInputRoot,\n Input: PinInputInput,\n})\n","import { Popover as ChakraPopover } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type PopoverProps = ComponentPropsWithoutRef<typeof ChakraPopover.Root>\ntype PopoverComponent = typeof ChakraPopover.Root & typeof ChakraPopover\n\nexport const PopoverRoot = ChakraPopover.Root\n\nexport const Popover: PopoverComponent = Object.assign(ChakraPopover.Root, {\n ...ChakraPopover,\n})\n","import { Progress as ChakraProgress } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type ProgressProps = ComponentPropsWithoutRef<typeof ChakraProgress.Root>\ntype ProgressComponent = typeof ChakraProgress.Root & typeof ChakraProgress\n\nexport const ProgressRoot = ChakraProgress.Root\n\nexport const Progress: ProgressComponent = Object.assign(ChakraProgress.Root, {\n ...ChakraProgress,\n})\n","import { ProgressCircle as ChakraProgressCircle } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type ProgressCircleProps = ComponentPropsWithoutRef<typeof ChakraProgressCircle.Root>\ntype ProgressCircleComponent = typeof ChakraProgressCircle.Root & typeof ChakraProgressCircle\n\nexport const ProgressCircleRoot = ChakraProgressCircle.Root\n\nexport const ProgressCircle: ProgressCircleComponent = Object.assign(ChakraProgressCircle.Root, {\n ...ChakraProgressCircle,\n})\n","import { QrCode as ChakraQRCode } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type QRCodeProps = ComponentPropsWithoutRef<typeof ChakraQRCode.Root>\ntype QRCodeComponent = typeof ChakraQRCode.Root & typeof ChakraQRCode\n\nexport const QRCodeRoot = ChakraQRCode.Root\n\nexport const QRCode: QRCodeComponent = Object.assign(ChakraQRCode.Root, {\n ...ChakraQRCode,\n})\n","import {\n Box,\n RadioGroup as ChakraRadioGroup,\n type RadioGroupItemControlProps,\n type RadioGroupItemProps,\n type RadioGroupItemTextProps,\n type RadioGroupRootProps,\n} from '@chakra-ui/react'\nimport React, { forwardRef, type ReactNode } from 'react'\n\nimport { Heading } from '@/components/Heading'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nconst RadioItemPrimitive = ChakraRadioGroup.Item as React.ElementType\nconst RadioItemControlPrimitive = ChakraRadioGroup.ItemControl as React.ElementType\nconst RadioItemTextPrimitive = ChakraRadioGroup.ItemText as React.ElementType\n\nexport type RadioRootProps = RadioGroupRootProps\n\nexport interface RadioItemProps extends RadioGroupItemProps {\n children?: ReactNode\n hint?: ReactNode\n}\n\nexport type RadioControlProps = RadioGroupItemControlProps\n\nexport type RadioTextProps = RadioGroupItemTextProps\n\nexport type RadioHintProps = React.ComponentProps<typeof Text>\n\nexport interface RadioGroupProps extends React.ComponentProps<typeof Box> {\n legend: string\n legendAsHeading?: boolean\n hint?: ReactNode\n error?: ReactNode\n children: ReactNode\n}\n\ntype RadioItemIndicatorComponent = React.ForwardRefExoticComponent<\n React.ComponentPropsWithoutRef<typeof ChakraRadioGroup.ItemIndicator> &\n React.RefAttributes<HTMLSpanElement>\n>\n\ninterface RadioComponents {\n Root: typeof RadioRoot\n Item: typeof RadioItem\n ItemHiddenInput: typeof RadioItemHiddenInput\n ItemControl: typeof RadioItemControl\n ItemIndicator: typeof RadioItemIndicator\n ItemText: typeof RadioItemText\n Hint: typeof RadioHint\n Group: typeof RadioGroup\n}\n\nconst RadioRoot = forwardRef<HTMLDivElement, RadioRootProps>(function RadioRoot(props, ref) {\n return (\n <ChakraRadioGroup.Root ref={ref} display=\"flex\" flexDirection=\"column\" gap={0} {...props} />\n )\n})\n\nconst RadioHint = forwardRef<HTMLParagraphElement, RadioHintProps>(function RadioHint(props, ref) {\n return (\n <Text\n ref={ref}\n fontSize={19}\n color=\"fg.muted\"\n mt={pxToRem(-4)}\n mb={0}\n css={{ '[data-disabled] &': { opacity: 0.5 } }}\n {...props}\n />\n )\n})\n\nconst RadioItem = forwardRef<HTMLDivElement, RadioItemProps>(function RadioItem(\n { hint, children, ...props },\n ref\n) {\n return (\n <RadioItemPrimitive\n ref={ref}\n display=\"flex\"\n flexWrap=\"wrap\"\n alignItems=\"flex-start\"\n columnGap={pxToRem(15)}\n rowGap={0}\n py={0}\n mb={pxToRem(10)}\n cursor=\"pointer\"\n color=\"fg\"\n data-govuk-radio-item=\"\"\n _hover={{\n '& [data-govuk-radio-control]': {\n borderColor: 'border.input',\n boxShadow: `0 0 0 10px {colors.grey.100}`,\n },\n }}\n _dark={{\n _hover: {\n '& [data-govuk-radio-control]': {\n boxShadow: `0 0 0 10px {colors.grey.700}`,\n },\n },\n }}\n {...props}\n >\n {children}\n {hint ? (\n <Box flexBasis=\"100%\" pl={pxToRem(55)}>\n <RadioHint>{hint}</RadioHint>\n </Box>\n ) : null}\n </RadioItemPrimitive>\n )\n})\n\nconst RadioItemHiddenInput = forwardRef<\n HTMLInputElement,\n React.ComponentPropsWithRef<typeof ChakraRadioGroup.ItemHiddenInput>\n>(function RadioItemHiddenInput(props, ref) {\n return <ChakraRadioGroup.ItemHiddenInput ref={ref} {...props} />\n})\n\nconst RadioItemControl = forwardRef<HTMLDivElement, RadioControlProps>(\n function RadioControl(props, ref) {\n return (\n <RadioItemControlPrimitive\n ref={ref}\n data-govuk-radio-control=\"\"\n bgColor=\"transparent\"\n borderRadius=\"full\"\n borderColor=\"border.input\"\n borderWidth=\"2px\"\n borderStyle=\"solid\"\n width={pxToRem(40)}\n height={pxToRem(40)}\n minWidth={pxToRem(40)}\n position=\"relative\"\n _focus={{\n outline: '3px solid transparent',\n outlineOffset: '0',\n boxShadow: '0 0 0 4px var(--govuk-color-focus, #fd0)',\n }}\n _disabled={{\n opacity: 0.5,\n cursor: 'not-allowed',\n }}\n _invalid={{\n borderColor: 'red.500',\n }}\n {...props}\n />\n )\n }\n)\n\nconst RadioItemIndicator: RadioItemIndicatorComponent = forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof ChakraRadioGroup.ItemIndicator>\n>(function RadioIndicator(props, ref) {\n return (\n <ChakraRadioGroup.ItemIndicator\n ref={ref}\n className=\"check-indicator\"\n bgColor=\"transparent\"\n borderRadius=\"full\"\n borderColor=\"transparent\"\n borderWidth={0}\n width={pxToRem(18)}\n height={pxToRem(18)}\n position=\"absolute\"\n top=\"50%\"\n left=\"50%\"\n transform=\"translate(-50%, -50%)\"\n transition=\"background-color 0.2s ease, border-color 0.2s ease\"\n css={{\n '&[data-state=checked]': {\n bg: 'border.input',\n color: 'border.input',\n },\n '[data-state=checked] &': {\n bg: 'border.input',\n color: 'border.input',\n },\n }}\n {...props}\n />\n )\n})\n\nconst RadioItemText = forwardRef<HTMLSpanElement, RadioTextProps>(function RadioText(props, ref) {\n return (\n <RadioItemTextPrimitive\n ref={ref}\n color=\"fg\"\n cursor=\"pointer\"\n fontSize={pxToRem(19)}\n lineHeight={pxToRem(40)}\n {...props}\n />\n )\n})\n\nconst RadioGroup = forwardRef<HTMLFieldSetElement, RadioGroupProps>(function RadioGroup(\n { legend, legendAsHeading = false, hint, error, children, ...props },\n ref\n) {\n return (\n <Box\n ref={ref}\n as=\"fieldset\"\n mb={{ base: pxToRem(30), md: pxToRem(20) }}\n border=\"0px solid transparent\"\n padding={0}\n paddingLeft={error ? pxToRem(15) : 0}\n borderLeftWidth={error ? pxToRem(5) : 0}\n borderLeftColor={error ? 'danger' : 'transparent'}\n css={{\n '& [data-govuk-radio-item]:last-of-type': {\n mb: 0,\n },\n }}\n {...props}\n >\n <Box as=\"legend\" mb={hint || error ? 1 : 3} float=\"left\" width=\"100%\">\n {legendAsHeading ? (\n <Heading as=\"h1\" fontWeight={700} size={36}>\n {legend}\n </Heading>\n ) : (\n <Text fontSize={24}>{legend}</Text>\n )}\n </Box>\n\n {hint ? (\n <Text fontSize={19} color=\"fg.muted\" mb={3} clear=\"left\">\n {hint}\n </Text>\n ) : null}\n\n {error ? (\n <Text\n fontSize={19}\n fontWeight=\"700\"\n color=\"danger\"\n mb={3}\n clear={!hint ? 'left' : undefined}\n >\n {error}\n </Text>\n ) : null}\n\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n gap={0}\n clear={!hint && !error ? 'left' : undefined}\n >\n {children}\n </Box>\n </Box>\n )\n})\n\nexport const Radio: RadioComponents = {\n Root: RadioRoot,\n Item: RadioItem,\n ItemHiddenInput: RadioItemHiddenInput,\n ItemControl: RadioItemControl,\n ItemIndicator: RadioItemIndicator,\n ItemText: RadioItemText,\n Hint: RadioHint,\n Group: RadioGroup,\n}\n\nexport {\n RadioRoot,\n RadioItem,\n RadioItemHiddenInput,\n RadioItemControl,\n RadioItemIndicator,\n RadioItemText,\n RadioHint,\n RadioGroup,\n}\n","import { RadioCard as ChakraRadioCard } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type RadioCardProps = ComponentPropsWithoutRef<typeof ChakraRadioCard.Root>\ntype RadioCardComponent = typeof ChakraRadioCard.Root & typeof ChakraRadioCard\n\nexport const RadioCardRoot = ChakraRadioCard.Root\n\nexport const RadioCard: RadioCardComponent = Object.assign(ChakraRadioCard.Root, {\n ...ChakraRadioCard,\n})\n","import { RatingGroup } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react'\nimport { forwardRef } from 'react'\n\nexport interface RatingProps extends Omit<\n ComponentPropsWithoutRef<typeof RatingGroup.Root>,\n 'count'\n> {\n icon?: ReactElement\n count?: number\n label?: ReactNode\n}\n\nexport const RatingRoot = forwardRef<HTMLDivElement, RatingProps>(function RatingRoot(\n { icon, count = 5, label, ...props },\n ref\n) {\n return (\n <RatingGroup.Root ref={ref} count={count} {...props}>\n {label ? <RatingGroup.Label>{label}</RatingGroup.Label> : null}\n <RatingGroup.HiddenInput />\n <RatingGroup.Control>\n {Array.from({ length: count }).map((_, index) => (\n <RatingGroup.Item key={index} index={index + 1}>\n <RatingGroup.ItemIndicator icon={icon} />\n </RatingGroup.Item>\n ))}\n </RatingGroup.Control>\n </RatingGroup.Root>\n )\n})\n\nexport const Rating = Object.assign(RatingRoot, {\n Root: RatingRoot,\n Label: RatingGroup.Label,\n HiddenInput: RatingGroup.HiddenInput,\n Control: RatingGroup.Control,\n Item: RatingGroup.Item,\n ItemIndicator: RatingGroup.ItemIndicator,\n})\n","import {\n Field,\n Select as ChakraSelect,\n type FieldRootProps,\n type ListCollection,\n type SelectClearTriggerProps as ChakraSelectClearTriggerProps,\n type SelectContentProps as ChakraSelectContentProps,\n type SelectControlProps as ChakraSelectControlProps,\n type SelectIndicatorGroupProps as ChakraSelectIndicatorGroupProps,\n type SelectIndicatorProps as ChakraSelectIndicatorProps,\n type SelectItemGroupLabelProps as ChakraSelectItemGroupLabelProps,\n type SelectItemGroupProps as ChakraSelectItemGroupProps,\n type SelectItemIndicatorProps as ChakraSelectItemIndicatorProps,\n type SelectItemProps as ChakraSelectItemProps,\n type SelectItemTextProps as ChakraSelectItemTextProps,\n type SelectLabelProps as ChakraSelectLabelProps,\n type SelectPositionerProps as ChakraSelectPositionerProps,\n type SelectRootProps as ChakraSelectRootProps,\n type SelectTriggerProps as ChakraSelectTriggerProps,\n type SelectValueChangeDetails as ChakraSelectValueChangeDetails,\n type SelectValueTextProps as ChakraSelectValueTextProps,\n} from '@chakra-ui/react'\nimport {\n createContext,\n forwardRef,\n useContext,\n useId,\n type ComponentPropsWithoutRef,\n type ReactNode,\n} from 'react'\n\nimport { Text } from '@/components/Text'\nimport { getFieldFocusStyles } from '@/utils/fieldFocusStyles'\nimport { govukFont, pxToRem } from '@/utils'\n\nexport type SelectWidth = 'full' | '20' | '10' | '5'\n\nexport interface SelectItemData {\n label: ReactNode\n value: string\n disabled?: boolean\n}\n\nconst WIDTH_MAX: Record<Exclude<SelectWidth, 'full'>, string> = {\n '20': '20em',\n '10': '10.5em',\n '5': '5.5em',\n}\n\ninterface SelectFieldContextValue {\n describedBy?: string\n disabled?: boolean\n invalid?: boolean\n labelSize: 19 | 24\n required?: boolean\n selectId: string\n}\n\nconst SelectFieldContext = createContext<SelectFieldContextValue | null>(null)\n\nconst useSelectFieldContext = (componentName: string) => {\n const context = useContext(SelectFieldContext)\n\n if (!context) {\n throw new Error(`${componentName} must be used within Select.Root`)\n }\n\n return context\n}\n\nexport interface SelectRootProps extends Omit<\n ChakraSelectRootProps<SelectItemData>,\n 'disabled' | 'invalid'\n> {\n children: ReactNode\n disabled?: boolean\n formProps?: Omit<FieldRootProps, 'children' | 'disabled' | 'invalid' | 'required'>\n invalid?: boolean\n labelSize?: 19 | 24\n required?: boolean\n width?: SelectWidth\n}\n\nexport interface SelectLabelProps extends Omit<ChakraSelectLabelProps, 'children'> {\n children: ReactNode\n fontSize?: 19 | 24\n}\n\nexport interface SelectHintProps extends ComponentPropsWithoutRef<typeof Text> {\n id?: string\n}\n\nexport interface SelectErrorProps extends ComponentPropsWithoutRef<typeof Text> {\n id?: string\n}\n\nexport type SelectHiddenSelectProps = ComponentPropsWithoutRef<typeof ChakraSelect.HiddenSelect>\nexport type SelectControlProps = ChakraSelectControlProps\nexport type SelectTriggerProps = ChakraSelectTriggerProps\nexport type SelectValueTextProps = ChakraSelectValueTextProps\nexport type SelectIndicatorGroupProps = ChakraSelectIndicatorGroupProps\nexport type SelectIndicatorProps = ChakraSelectIndicatorProps\nexport type SelectPositionerProps = ChakraSelectPositionerProps\nexport type SelectContentProps = ChakraSelectContentProps\nexport type SelectClearTriggerProps = ChakraSelectClearTriggerProps\nexport type SelectItemGroupProps = ChakraSelectItemGroupProps\nexport type SelectItemGroupLabelProps = ChakraSelectItemGroupLabelProps\nexport interface SelectItemProps extends Omit<ChakraSelectItemProps, 'item' | 'children'> {\n children?: ReactNode\n item: SelectItemData\n}\nexport type SelectItemTextProps = ChakraSelectItemTextProps\nexport type SelectItemIndicatorProps = ChakraSelectItemIndicatorProps\nexport type SelectCollection = ListCollection<SelectItemData>\nexport type SelectValueChangeDetails = ChakraSelectValueChangeDetails<SelectItemData>\n\nconst SelectRoot = forwardRef<HTMLDivElement, SelectRootProps>(function SelectRoot(\n {\n id,\n width = 'full',\n labelSize = 19,\n required,\n disabled,\n invalid,\n formProps,\n positioning,\n children,\n ...props\n },\n ref\n) {\n const generatedId = useId()\n const selectId = id ?? `govuk-select-${generatedId}`\n const hintId = `${selectId}-hint`\n const errorId = `${selectId}-error`\n const isInvalid = Boolean(invalid)\n const describedBy =\n [hintId, isInvalid ? errorId : undefined, props['aria-describedby']]\n .filter(Boolean)\n .join(' ') || undefined\n\n return (\n <SelectFieldContext.Provider\n value={{\n describedBy,\n disabled,\n invalid: isInvalid,\n labelSize,\n required,\n selectId,\n }}\n >\n <Field.Root\n required={required}\n disabled={disabled}\n invalid={isInvalid}\n display=\"flex\"\n alignItems=\"flex-start\"\n gap={pxToRem(8)}\n {...formProps}\n >\n <ChakraSelect.Root\n ref={ref}\n disabled={disabled}\n invalid={isInvalid}\n positioning={{ sameWidth: true, ...positioning }}\n width={width === 'full' ? '100%' : 'auto'}\n maxW={width === 'full' ? undefined : WIDTH_MAX[width]}\n {...props}\n >\n {children}\n </ChakraSelect.Root>\n </Field.Root>\n </SelectFieldContext.Provider>\n )\n})\n\nconst SelectLabel = forwardRef<HTMLLabelElement, SelectLabelProps>(function SelectLabel(\n { fontSize, children, ...props },\n ref\n) {\n const field = useSelectFieldContext('Select.Label')\n const resolvedFontSize = fontSize ?? field.labelSize\n\n return (\n <ChakraSelect.Label\n ref={ref}\n htmlFor={field.selectId}\n {...govukFont(resolvedFontSize)}\n fontWeight=\"700\"\n color=\"fg\"\n mb={0}\n {...props}\n >\n {children}\n </ChakraSelect.Label>\n )\n})\n\nconst SelectHint = forwardRef<HTMLDivElement, SelectHintProps>(function SelectHint(props, ref) {\n const field = useSelectFieldContext('Select.Hint')\n\n return (\n <Field.HelperText ref={ref} id={props.id ?? `${field.selectId}-hint`} asChild>\n <Text fontSize={19} color=\"fg.muted\" mb={0} {...props} />\n </Field.HelperText>\n )\n})\n\nconst SelectError = forwardRef<HTMLDivElement, SelectErrorProps>(function SelectError(props, ref) {\n const field = useSelectFieldContext('Select.Error')\n\n return (\n <Field.ErrorText ref={ref} id={props.id ?? `${field.selectId}-error`} asChild>\n <Text fontSize={19} color=\"fg.error\" fontWeight=\"700\" mb={0} {...props}>\n {`Error: ${props.children}`}\n </Text>\n </Field.ErrorText>\n )\n})\n\nconst SelectHiddenSelect = forwardRef<HTMLSelectElement, SelectHiddenSelectProps>(\n function SelectHiddenSelect(props, ref) {\n const field = useSelectFieldContext('Select.HiddenSelect')\n\n return (\n <ChakraSelect.HiddenSelect\n ref={ref}\n id={field.selectId}\n aria-describedby={field.describedBy}\n disabled={field.disabled}\n required={field.required}\n {...props}\n />\n )\n }\n)\n\nconst SelectControl = forwardRef<HTMLDivElement, SelectControlProps>(\n function SelectControl(props, ref) {\n return <ChakraSelect.Control ref={ref} width=\"100%\" {...props} />\n }\n)\n\nconst SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(function SelectTrigger(\n { children, ...props },\n ref\n) {\n const field = useSelectFieldContext('Select.Trigger')\n\n return (\n <ChakraSelect.Trigger\n ref={ref}\n aria-describedby={field.describedBy}\n borderRadius=\"0\"\n borderWidth={pxToRem(2)}\n borderColor={field.invalid ? 'fg.error' : 'border.input'}\n bg=\"transparent\"\n color=\"fg\"\n fontFamily=\"body\"\n fontSize={pxToRem(19)}\n lineHeight={pxToRem(25)}\n ps={pxToRem(8)}\n pe={pxToRem(40)}\n py={pxToRem(5)}\n h={pxToRem(40)}\n minH={pxToRem(40)}\n width=\"100%\"\n justifyContent=\"space-between\"\n textAlign=\"left\"\n _hover={{ borderColor: field.invalid ? 'fg.error' : 'border.input' }}\n _focusVisible={getFieldFocusStyles({\n borderColor: field.invalid ? 'fg.error' : 'border.input',\n })}\n _focus={getFieldFocusStyles({\n borderColor: field.invalid ? 'fg.error' : 'border.input',\n })}\n _invalid={{ borderColor: 'fg.error' }}\n _disabled={{\n opacity: 1,\n cursor: 'not-allowed',\n color: 'fg.disabled',\n bg: 'bg.disabled',\n borderColor: 'border.disabled',\n }}\n {...props}\n >\n {children}\n <ChakraSelect.IndicatorGroup>\n <ChakraSelect.Indicator\n color={field.disabled ? 'fg.disabled' : 'fg'}\n fontSize={pxToRem(18)}\n />\n </ChakraSelect.IndicatorGroup>\n </ChakraSelect.Trigger>\n )\n})\n\nconst SelectValueText = forwardRef<HTMLSpanElement, SelectValueTextProps>(\n function SelectValueText(props, ref) {\n return <ChakraSelect.ValueText ref={ref} color=\"fg\" {...props} />\n }\n)\n\nconst SelectIndicatorGroup = forwardRef<HTMLDivElement, SelectIndicatorGroupProps>(\n function SelectIndicatorGroup(props, ref) {\n return <ChakraSelect.IndicatorGroup ref={ref} {...props} />\n }\n)\n\nconst SelectIndicator = forwardRef<HTMLDivElement, SelectIndicatorProps>(\n function SelectIndicator(props, ref) {\n return <ChakraSelect.Indicator ref={ref} {...props} />\n }\n)\n\nconst SelectPositioner = forwardRef<HTMLDivElement, SelectPositionerProps>(\n function SelectPositioner(props, ref) {\n return <ChakraSelect.Positioner ref={ref} {...props} />\n }\n)\n\nconst SelectContent = forwardRef<HTMLDivElement, SelectContentProps>(\n function SelectContent(props, ref) {\n return (\n <ChakraSelect.Content\n ref={ref}\n borderRadius=\"0\"\n borderWidth={pxToRem(2)}\n borderColor=\"border.input\"\n bg=\"bg\"\n color=\"fg\"\n boxShadow=\"md\"\n py={0}\n px={0}\n {...props}\n />\n )\n }\n)\n\nconst SelectClearTrigger = forwardRef<HTMLButtonElement, SelectClearTriggerProps>(\n function SelectClearTrigger(props, ref) {\n return <ChakraSelect.ClearTrigger ref={ref} {...props} />\n }\n)\n\nconst SelectItemGroup = forwardRef<HTMLDivElement, SelectItemGroupProps>(\n function SelectItemGroup(props, ref) {\n return <ChakraSelect.ItemGroup ref={ref} {...props} />\n }\n)\n\nconst SelectItemGroupLabel = forwardRef<HTMLDivElement, SelectItemGroupLabelProps>(\n function SelectItemGroupLabel(props, ref) {\n return (\n <ChakraSelect.ItemGroupLabel\n ref={ref}\n px={pxToRem(12)}\n py={pxToRem(8)}\n fontWeight=\"700\"\n color=\"fg.muted\"\n {...props}\n />\n )\n }\n)\n\nconst SelectItem = forwardRef<HTMLDivElement, SelectItemProps>(function SelectItem(\n { item, children, ...props },\n ref\n) {\n return (\n <ChakraSelect.Item\n ref={ref}\n item={item}\n px={pxToRem(12)}\n py={pxToRem(8)}\n color=\"fg\"\n cursor={item.disabled ? 'not-allowed' : 'pointer'}\n _highlighted={{ bg: 'bg.subtle' }}\n _disabled={{ color: 'fg.disabled', cursor: 'not-allowed' }}\n {...props}\n >\n {children ?? (\n <>\n <ChakraSelect.ItemText asChild>\n <Text fontSize={16}>{item.label}</Text>\n </ChakraSelect.ItemText>\n <ChakraSelect.ItemIndicator />\n </>\n )}\n </ChakraSelect.Item>\n )\n})\n\nconst SelectItemText = forwardRef<HTMLDivElement, SelectItemTextProps>(\n function SelectItemText(props, ref) {\n return <ChakraSelect.ItemText ref={ref} {...props} />\n }\n)\n\nconst SelectItemIndicator = forwardRef<HTMLDivElement, SelectItemIndicatorProps>(\n function SelectItemIndicator(props, ref) {\n return <ChakraSelect.ItemIndicator ref={ref} {...props} />\n }\n)\n\nexport const Select = Object.assign(SelectRoot, {\n Root: SelectRoot,\n Label: SelectLabel,\n Hint: SelectHint,\n Error: SelectError,\n HiddenSelect: SelectHiddenSelect,\n Control: SelectControl,\n Trigger: SelectTrigger,\n ValueText: SelectValueText,\n IndicatorGroup: SelectIndicatorGroup,\n Indicator: SelectIndicator,\n Positioner: SelectPositioner,\n Content: SelectContent,\n ClearTrigger: SelectClearTrigger,\n ItemGroup: SelectItemGroup,\n ItemGroupLabel: SelectItemGroupLabel,\n Item: SelectItem,\n ItemText: SelectItemText,\n ItemIndicator: SelectItemIndicator,\n})\n\nexport {\n SelectRoot,\n SelectLabel,\n SelectHint,\n SelectError,\n SelectHiddenSelect,\n SelectControl,\n SelectTrigger,\n SelectValueText,\n SelectIndicatorGroup,\n SelectIndicator,\n SelectPositioner,\n SelectContent,\n SelectClearTrigger,\n SelectItemGroup,\n SelectItemGroupLabel,\n SelectItem,\n SelectItemText,\n SelectItemIndicator,\n}\n","import { For, SegmentGroup } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef, ReactNode } from 'react'\nimport { forwardRef, useMemo } from 'react'\n\nexport interface SegmentedControlItem {\n value: string\n label: ReactNode\n disabled?: boolean\n}\n\nexport interface SegmentedControlProps extends ComponentPropsWithoutRef<typeof SegmentGroup.Root> {\n items: Array<string | SegmentedControlItem>\n}\n\nfunction normalize(items: Array<string | SegmentedControlItem>): SegmentedControlItem[] {\n return items.map((item) => {\n if (typeof item === 'string') return { value: item, label: item }\n return item\n })\n}\n\nexport const SegmentedControlRoot = forwardRef<HTMLDivElement, SegmentedControlProps>(\n function SegmentedControlRoot({ items, ...props }, ref) {\n const data = useMemo(() => normalize(items), [items])\n\n return (\n <SegmentGroup.Root ref={ref} {...props}>\n <SegmentGroup.Indicator />\n <For each={data}>\n {(item) => (\n <SegmentGroup.Item key={item.value} value={item.value} disabled={item.disabled}>\n <SegmentGroup.ItemText>{item.label}</SegmentGroup.ItemText>\n <SegmentGroup.ItemHiddenInput />\n </SegmentGroup.Item>\n )}\n </For>\n </SegmentGroup.Root>\n )\n }\n)\n\nexport const SegmentedControl = Object.assign(SegmentedControlRoot, {\n Root: SegmentedControlRoot,\n Indicator: SegmentGroup.Indicator,\n Item: SegmentGroup.Item,\n ItemText: SegmentGroup.ItemText,\n ItemHiddenInput: SegmentGroup.ItemHiddenInput,\n})\n","import {\n Separator as ChakraSeparator,\n type SeparatorProps as ChakraSeparatorProps,\n} from '@chakra-ui/react'\nimport { forwardRef } from 'react'\n\nimport { pxToRem } from '../../utils/px-to-rem'\n\ntype SeparatorSpacing = 'm' | 'l' | 'xl'\n\nconst separatorSpacing: Record<SeparatorSpacing, string> = {\n m: pxToRem(30),\n l: pxToRem(50),\n xl: pxToRem(80),\n}\n\nexport interface SeparatorProps extends Omit<ChakraSeparatorProps, 'size'> {\n spacing?: SeparatorSpacing\n visible?: boolean\n}\n\nconst SeparatorRoot = forwardRef<HTMLHRElement, SeparatorProps>(function Separator(\n { spacing = 'm', visible = true, orientation = 'horizontal', ...props },\n ref\n) {\n const isVertical = orientation === 'vertical'\n\n return (\n <ChakraSeparator\n ref={ref}\n orientation={orientation}\n borderColor={visible ? 'primary.100' : 'transparent'}\n borderWidth=\"0\"\n borderBottomWidth={isVertical ? '0' : '1px'}\n borderInlineStartWidth={isVertical ? '1px' : '0'}\n my={isVertical ? undefined : separatorSpacing[spacing]}\n mx={isVertical ? separatorSpacing[spacing] : undefined}\n minHeight={isVertical ? pxToRem(24) : undefined}\n width={isVertical ? 'auto' : '100%'}\n _dark={{\n borderColor: visible ? 'primary.900' : 'transparent',\n }}\n {...props}\n />\n )\n})\n\nexport const Separator = SeparatorRoot\n\nexport { SeparatorRoot }\n","import { Box, Button, HStack, Icon, Stack, StackProps, type BoxProps } from '@chakra-ui/react'\nimport {\n createContext,\n forwardRef,\n useContext,\n useId,\n useMemo,\n useState,\n type ComponentProps,\n} from 'react'\n\nimport { Link } from '@/components/Link'\nimport { pxToRem } from '@/utils'\nimport { Text } from '../Text'\n\nconst MenuCaretIcon = ({ ...props }: ComponentProps<typeof Icon>) => (\n <Icon\n as=\"svg\"\n viewBox=\"0 0 10 6\"\n flexShrink={0}\n aria-hidden=\"true\"\n focusable=\"false\"\n boxSize={pxToRem(10)}\n w={pxToRem(10)}\n h={pxToRem(6)}\n transition={'transform 0.3s ease'}\n {...props}\n >\n <path d=\"M0 6 5 0l5 6H0Z\" fill=\"currentColor\" />\n </Icon>\n)\n\ntype ServiceNavigationContextValue = {\n isMobileOpen: boolean\n setIsMobileOpen: (open: boolean | ((current: boolean) => boolean)) => void\n navigationId: string\n}\n\nconst ServiceNavigationContext = createContext<ServiceNavigationContextValue | null>(null)\n\nfunction useServiceNavigationContext() {\n return useContext(ServiceNavigationContext)\n}\n\nexport interface ServiceNavigationRootProps extends StackProps {\n defaultMobileOpen?: boolean\n}\n\nexport type ServiceNavigationServiceContainerProps = StackProps\nexport type ServiceNavigationServiceNameProps = ComponentProps<typeof Link>\n\nexport interface ServiceNavigationNavProps extends BoxProps {\n collapsible?: boolean\n}\n\nexport interface ServiceNavigationToggleProps extends ComponentProps<typeof Button> {\n navigationId?: string\n openLabel?: string\n closedLabel?: string\n}\n\nexport type ServiceNavigationListProps = BoxProps\n\nexport interface ServiceNavigationItemProps extends BoxProps {\n current?: boolean\n active?: boolean\n}\n\nexport interface ServiceNavigationLinkProps extends ComponentProps<typeof Link> {\n current?: boolean\n active?: boolean\n}\n\nconst ServiceNavigationRoot = forwardRef<HTMLDivElement, ServiceNavigationRootProps>(\n function ServiceNavigationRoot({ children, defaultMobileOpen = false, ...props }, ref) {\n const navigationId = useId()\n const [isMobileOpen, setIsMobileOpen] = useState(defaultMobileOpen)\n\n const contextValue = useMemo(\n () => ({ isMobileOpen, setIsMobileOpen, navigationId }),\n [isMobileOpen, navigationId]\n )\n\n return (\n <ServiceNavigationContext.Provider value={contextValue}>\n <HStack\n ref={ref}\n as=\"nav\"\n width=\"100%\"\n borderBottom=\"1px solid\"\n borderColor=\"primary.200\"\n bg=\"common.white\"\n color=\"fg\"\n bgColor={'primary.50'}\n w={'full'}\n _dark={{\n bgColor: 'primary.950',\n borderColor: 'primary.900',\n }}\n {...props}\n >\n <HStack\n w={'full'}\n maxW=\"1200px\"\n mx=\"auto\"\n px={{ base: 0, md: pxToRem(30) }}\n gap={0}\n alignItems={{ base: 'stretch', md: 'center' }}\n flexDirection={{ base: 'column', md: 'row' }}\n flexWrap={'wrap'}\n >\n {children}\n </HStack>\n </HStack>\n </ServiceNavigationContext.Provider>\n )\n }\n)\n\nconst ServiceNavigationServiceName = forwardRef<\n HTMLAnchorElement,\n ServiceNavigationServiceNameProps\n>(function ServiceNavigationServiceName(props, ref) {\n return (\n <Link\n ref={ref}\n display=\"inline-block\"\n my={pxToRem(10)}\n mr={{ base: 0, md: pxToRem(30) }}\n ml={{ base: pxToRem(15), md: 0 }}\n noStyle\n className=\"service-name\"\n {...props}\n >\n <Text fontSize={19} fontWeight=\"700\" as={'span'}>\n {props.children}\n </Text>\n </Link>\n )\n})\n\nconst ServiceNavigationServiceContainer = forwardRef<\n HTMLDivElement,\n ServiceNavigationServiceContainerProps\n>(function ServiceNavigationServiceContainer(props, ref) {\n return (\n <Stack\n ref={ref}\n display={{ base: 'block', md: 'flex' }}\n alignItems={{ md: 'center' }}\n justifyContent=\"space-between\"\n flexShrink={0}\n {...props}\n >\n {props.children}\n </Stack>\n )\n})\n\nconst ServiceNavigationNav = forwardRef<HTMLDivElement, ServiceNavigationNavProps>(\n function ServiceNavigationNav({ children, collapsible = true, id, ...props }, ref) {\n const context = useServiceNavigationContext()\n const resolvedId = id ?? context?.navigationId\n const isMobileOpen = context?.isMobileOpen ?? false\n\n return (\n <Box\n ref={ref}\n as=\"nav\"\n id={resolvedId}\n aria-label=\"Menu\"\n display={{\n base: collapsible ? (isMobileOpen ? 'block' : 'none') : 'block',\n md: 'block',\n }}\n {...props}\n >\n {children}\n </Box>\n )\n }\n)\n\nconst ServiceNavigationToggle = forwardRef<HTMLButtonElement, ServiceNavigationToggleProps>(\n function ServiceNavigationToggle(\n { navigationId, openLabel = 'Menu', closedLabel = 'Menu', children, ...props },\n ref\n ) {\n const context = useServiceNavigationContext()\n const resolvedNavigationId = navigationId ?? context?.navigationId\n const isMobileOpen = context?.isMobileOpen ?? false\n\n return (\n <Box display={{ base: 'block', md: 'none' }} w=\"full\" px={{ base: pxToRem(15), md: 0 }}>\n <Button\n ref={ref}\n variant=\"plain\"\n display={{ base: 'inline-flex', md: 'none' }}\n type=\"button\"\n justifyContent=\"flex-start\"\n color={'primary.500'}\n gap={pxToRem(6)}\n px={0}\n minH=\"auto\"\n h=\"auto\"\n aria-controls={resolvedNavigationId}\n aria-expanded={isMobileOpen}\n onClick={() => context?.setIsMobileOpen((current) => !current)}\n mb={pxToRem(10)}\n borderRadius={2}\n _hover={{ bg: 'transparent' }}\n _focus={{\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n bgColor: 'yellow.500',\n color: 'fg',\n textDecoration: 'underline',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n _hover: {\n color: 'fg',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n },\n }}\n {...props}\n >\n <Text\n as=\"span\"\n fontWeight=\"700\"\n textDecoration=\"none\"\n color={'currentColor'}\n fontSize={19}\n >\n {children ?? (isMobileOpen ? closedLabel : openLabel)}\n </Text>\n\n <MenuCaretIcon transform={isMobileOpen ? 'rotate(180deg)' : undefined} />\n </Button>\n </Box>\n )\n }\n)\n\nconst ServiceNavigationList = forwardRef<HTMLUListElement, ServiceNavigationListProps>(\n function ServiceNavigationList(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"ul\"\n listStyleType=\"none\"\n m={0}\n p={0}\n display={{ base: 'block', md: 'flex' }}\n alignItems={{ md: 'center' }}\n flexWrap={'wrap'}\n py={{ base: pxToRem(8), md: 0 }}\n gap={{ base: 0, md: pxToRem(30) }}\n {...props}\n />\n )\n }\n)\n\nconst ServiceNavigationItem = forwardRef<HTMLLIElement, ServiceNavigationItemProps>(\n function ServiceNavigationItem({ current, active, ...props }, ref) {\n const isCurrent = current ?? active ?? false\n\n return (\n <Box\n ref={ref}\n as=\"li\"\n position=\"relative\"\n flexShrink={0}\n py={{ base: pxToRem(5), md: pxToRem(18) }}\n _last={{ mr: { md: 0 } }}\n data-current={isCurrent ? 'true' : 'false'}\n _after={{\n content: '\"\"',\n position: 'absolute',\n left: 0,\n top: { base: 'auto', md: 'auto' },\n height: { base: pxToRem(25), md: pxToRem(4) },\n bottom: { base: '50%', md: 0 },\n right: { base: 0, md: 'auto' },\n width: { base: pxToRem(4), md: '100%' },\n bgColor: 'primary.500',\n display: isCurrent ? 'block' : 'none',\n visibility: isCurrent ? 'visible' : 'hidden',\n transform: { base: 'translateY(50%)', md: 'none' },\n }}\n _dark={{\n _after: {\n bgColor: 'primary.300',\n },\n }}\n {...props}\n />\n )\n }\n)\n\nconst ServiceNavigationLink = forwardRef<HTMLAnchorElement, ServiceNavigationLinkProps>(\n function ServiceNavigationLink({ current, active, ...props }, ref) {\n const isCurrent = current ?? active ?? false\n\n return (\n <Link\n ref={ref}\n aria-current={isCurrent ? 'page' : undefined}\n display=\"inline-block\"\n position=\"relative\"\n w={{ base: 'full', md: 'auto' }}\n ps={{ base: pxToRem(15), md: 0 }}\n textDecoration=\"none\"\n _hover={{\n color: 'primary.800',\n textDecoration: 'underline',\n textDecorationThickness: pxToRem(3),\n textUnderlineOffset: pxToRem(3),\n }}\n {...props}\n >\n <Text as=\"span\" fontSize={19} textDecoration=\"none\" color={'currentColor'}>\n {props.children}\n </Text>\n </Link>\n )\n }\n)\n\nexport const ServiceNavigation = Object.assign(ServiceNavigationRoot, {\n Root: ServiceNavigationRoot,\n ServiceName: ServiceNavigationServiceName,\n ServiceContainer: ServiceNavigationServiceContainer,\n Nav: ServiceNavigationNav,\n Toggle: ServiceNavigationToggle,\n List: ServiceNavigationList,\n Item: ServiceNavigationItem,\n Link: ServiceNavigationLink,\n})\n\nexport {\n ServiceNavigationRoot,\n ServiceNavigationServiceName,\n ServiceNavigationServiceContainer,\n ServiceNavigationNav,\n ServiceNavigationToggle,\n ServiceNavigationList,\n ServiceNavigationItem,\n ServiceNavigationLink,\n}\n","import {\n Skeleton as ChakraSkeleton,\n SkeletonCircle as ChakraSkeletonCircle,\n SkeletonText as ChakraSkeletonText,\n} from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type SkeletonProps = ComponentPropsWithoutRef<typeof ChakraSkeleton>\nexport type SkeletonCircleProps = ComponentPropsWithoutRef<typeof ChakraSkeletonCircle>\nexport type SkeletonTextProps = ComponentPropsWithoutRef<typeof ChakraSkeletonText>\n\nexport const SkeletonRoot = ChakraSkeleton\nexport const SkeletonCircle = ChakraSkeletonCircle\nexport const SkeletonText = ChakraSkeletonText\n\nexport const Skeleton = Object.assign(ChakraSkeleton, {\n Root: ChakraSkeleton,\n Circle: ChakraSkeletonCircle,\n Text: ChakraSkeletonText,\n})\n","import { Link, LinkProps } from '../Link'\n\nimport { Text } from '../Text'\nimport { forwardRef } from 'react'\nimport { pxToRem } from '@/utils'\n\nexport type SkipLinkProps = LinkProps\n\nexport const SkipLink = forwardRef<HTMLAnchorElement, SkipLinkProps>(\n ({ children = 'Skip to main content', href = '#content', ...props }, ref) => {\n return (\n <Link\n ref={ref}\n href={href}\n position=\"absolute\"\n top={0}\n left={0}\n clip=\"rect(0 0 0 0)\"\n clipPath=\"inset(50%)\"\n h=\"1px\"\n w=\"1px\"\n overflow=\"hidden\"\n whiteSpace=\"nowrap\"\n color=\"link\"\n _hover={{\n color: 'link.hover',\n }}\n _focusVisible={{\n clip: 'auto',\n clipPath: 'none',\n h: 'auto',\n overflow: 'visible',\n position: 'absolute' as const,\n top: 0,\n left: 0,\n w: '100%',\n zIndex: 1000,\n p: `${pxToRem(15)} ${pxToRem(15)}`,\n bg: 'yellow.500',\n color: 'common.black',\n outline: '1px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n }}\n {...props}\n >\n <Text as=\"span\" fontSize={16} textDecoration=\"none\" color={'currentColor'}>\n {children}\n </Text>\n </Link>\n )\n }\n)\n\nSkipLink.displayName = 'SkipLink'\n","import { Slider as ChakraSlider } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type SliderProps = ComponentPropsWithoutRef<typeof ChakraSlider.Root>\ntype SliderComponent = typeof ChakraSlider.Root & typeof ChakraSlider\n\nexport const SliderRoot = ChakraSlider.Root\n\nexport const Slider: SliderComponent = Object.assign(ChakraSlider.Root, {\n ...ChakraSlider,\n})\n","import { Spinner as ChakraSpinner } from '@chakra-ui/react'\nimport { forwardRef, type ComponentPropsWithoutRef } from 'react'\n\nexport type SpinnerProps = ComponentPropsWithoutRef<typeof ChakraSpinner>\n\nconst SpinnerRoot = forwardRef<HTMLSpanElement, SpinnerProps>(function SpinnerRoot(\n { ...props },\n ref\n) {\n return <ChakraSpinner ref={ref} {...props} />\n})\n\nexport { SpinnerRoot }\n\nexport const Spinner = Object.assign(SpinnerRoot, {\n Root: SpinnerRoot,\n})\n","import { Box, Stat as ChakraStat, VisuallyHidden, type HTMLChakraProps } from '@chakra-ui/react'\nimport {\n forwardRef,\n useEffect,\n useState,\n type ComponentPropsWithoutRef,\n type ForwardedRef,\n type JSX,\n} from 'react'\nimport { Text } from '../Text'\n\nexport type StatProps = Omit<ComponentPropsWithoutRef<typeof ChakraStat.Root>, 'ref'> &\n HTMLChakraProps<'div'>\ntype StatLabelProps = ComponentPropsWithoutRef<typeof ChakraStat.Label>\ntype StatHelpTextProps = ComponentPropsWithoutRef<typeof ChakraStat.HelpText>\nexport interface StatValueTextProps extends Omit<\n ComponentPropsWithoutRef<typeof ChakraStat.ValueText>,\n 'animationDuration'\n> {\n value?: number\n animate?: boolean\n animationDuration?: number\n locales?: Intl.LocalesArgument\n formatOptions?: Intl.NumberFormatOptions\n}\n\ntype StatComponent = typeof ChakraStat.Root &\n Omit<typeof ChakraStat, 'ValueText'> & {\n ValueText: typeof StatValueText\n }\n\nconst SLOT_MACHINE_LOOPS = 2\nconst DEFAULT_ANIMATION_DURATION = 500\n\nfunction buildReelDigits(targetDigit: number) {\n const digits: Array<{ id: string; digit: string }> = []\n\n for (let loop = 0; loop < SLOT_MACHINE_LOOPS; loop += 1) {\n for (let digit = 0; digit < 10; digit += 1) {\n digits.push({ id: `loop-${loop}-${digit}`, digit: String(digit) })\n }\n }\n\n for (let digit = 0; digit <= targetDigit; digit += 1) {\n digits.push({ id: `final-${digit}`, digit: String(digit) })\n }\n\n return digits\n}\n\nfunction buildCharacterEntries(formattedValue: string, animationDuration: number) {\n const occurrences = new Map<string, number>()\n const digitCount = formattedValue.replace(/\\D/g, '').length\n let digitPosition = 0\n\n return formattedValue.split('').map((character) => {\n const count = (occurrences.get(character) ?? 0) + 1\n occurrences.set(character, count)\n\n if (!/\\d/.test(character)) {\n return {\n id: `char-${character}-${count}`,\n character,\n isDigit: false as const,\n }\n }\n\n const targetDigit = Number(character)\n const entry = {\n id: `digit-${character}-${count}`,\n character,\n isDigit: true as const,\n reelDigits: buildReelDigits(targetDigit),\n travel: SLOT_MACHINE_LOOPS * 10 + targetDigit,\n delay: Math.max(0, (digitCount - digitPosition - 1) * 70),\n duration: animationDuration,\n }\n\n digitPosition += 1\n\n return entry\n })\n}\n\nfunction AnimatedValueReels({\n formattedValue,\n animationDuration,\n}: {\n formattedValue: string\n animationDuration: number\n}) {\n const [isSpinning, setIsSpinning] = useState(false)\n\n useEffect(() => {\n return scheduleAnimationStart(() => {\n setIsSpinning(true)\n })\n }, [])\n\n const characterEntries = buildCharacterEntries(formattedValue, animationDuration)\n\n return (\n <>\n <VisuallyHidden>{formattedValue}</VisuallyHidden>\n <Box aria-hidden=\"true\" display=\"inline-flex\" alignItems=\"flex-end\" lineHeight=\"1\">\n {characterEntries.map((entry) => {\n if (!entry.isDigit) {\n return (\n <Text as=\"span\" key={entry.id} display=\"inline-flex\" alignItems=\"center\">\n {entry.character}\n </Text>\n )\n }\n\n return (\n <Box\n key={entry.id}\n data-slot-reel=\"\"\n display=\"inline-flex\"\n overflow=\"hidden\"\n h=\"1em\"\n minW=\"0.72em\"\n alignItems=\"flex-start\"\n justifyContent=\"center\"\n >\n <Text\n display=\"flex\"\n flexDirection=\"column\"\n alignItems=\"center\"\n justifyContent=\"flex-start\"\n lineHeight=\"1\"\n transform={isSpinning ? `translateY(-${entry.travel}em)` : 'translateY(0em)'}\n transitionProperty=\"transform\"\n transitionDuration={`${entry.duration}ms`}\n transitionTimingFunction=\"linear\"\n transitionDelay={`${entry.delay}ms`}\n willChange=\"transform\"\n >\n {entry.reelDigits.map((digitEntry) => (\n <Text\n as=\"span\"\n key={digitEntry.id}\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n h=\"1em\"\n minW=\"0.72em\"\n >\n {digitEntry.digit}\n </Text>\n ))}\n </Text>\n </Box>\n )\n })}\n </Box>\n </>\n )\n}\n\nfunction scheduleAnimationStart(callback: () => void) {\n if (typeof window !== 'undefined' && typeof window.requestAnimationFrame === 'function') {\n let frame = 0\n let nextFrame = 0\n\n frame = window.requestAnimationFrame(() => {\n nextFrame = window.requestAnimationFrame(callback)\n })\n\n return () => {\n window.cancelAnimationFrame(frame)\n window.cancelAnimationFrame(nextFrame)\n }\n }\n\n const timeout = setTimeout(callback, 32)\n\n return () => clearTimeout(timeout)\n}\n\nexport const StatRoot = forwardRef<HTMLDivElement, StatProps>(function StatRoot(props, ref) {\n const Root = ChakraStat.Root as unknown as (\n props: StatProps & { ref?: ForwardedRef<HTMLDivElement> }\n ) => JSX.Element\n\n return <Root ref={ref} as=\"div\" {...props} />\n})\n\nexport const StatLabel = forwardRef<HTMLElement, StatLabelProps>(function StatLabel(props, ref) {\n return <ChakraStat.Label ref={ref} as=\"span\" {...props} />\n})\n\nexport const StatHelpText = forwardRef<HTMLElement, StatHelpTextProps>(\n function StatHelpText(props, ref) {\n return <ChakraStat.HelpText ref={ref} as=\"span\" {...props} />\n }\n)\n\nexport const StatValueText = forwardRef<HTMLElement, StatValueTextProps>(function StatValueText(\n {\n value,\n animate = true,\n animationDuration = DEFAULT_ANIMATION_DURATION,\n locales,\n formatOptions,\n children,\n ...props\n },\n ref\n) {\n const formattedValue =\n typeof value === 'number' ? new Intl.NumberFormat(locales, formatOptions).format(value) : null\n const shouldAnimate = animate && formattedValue !== null && children == null\n\n if (!shouldAnimate || formattedValue == null) {\n return (\n <ChakraStat.ValueText ref={ref} as=\"span\" {...props}>\n {children ?? formattedValue ?? value}\n </ChakraStat.ValueText>\n )\n }\n\n return (\n <ChakraStat.ValueText ref={ref} as=\"span\" {...props}>\n <AnimatedValueReels\n key={`${formattedValue}-${animationDuration}`}\n formattedValue={formattedValue}\n animationDuration={animationDuration}\n />\n </ChakraStat.ValueText>\n )\n})\n\nexport const Stat: StatComponent = Object.assign(StatRoot as unknown as StatComponent, {\n ...ChakraStat,\n HelpText: StatHelpText,\n Label: StatLabel,\n Root: StatRoot,\n ValueText: StatValueText,\n})\n","import { Status as ChakraStatus } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type StatusProps = ComponentPropsWithoutRef<typeof ChakraStatus.Root>\ntype StatusComponent = typeof ChakraStatus.Root & typeof ChakraStatus\n\nexport const StatusRoot = ChakraStatus.Root\n\nexport const Status: StatusComponent = Object.assign(ChakraStatus.Root, {\n ...ChakraStatus,\n})\n","import { Steps as ChakraSteps } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef, ForwardRefExoticComponent, RefAttributes } from 'react'\n\ntype StepsColorPalette =\n | 'gray'\n | 'red'\n | 'orange'\n | 'yellow'\n | 'green'\n | 'teal'\n | 'blue'\n | 'cyan'\n | 'purple'\n | 'pink'\n\ntype StepsSize = 'xs' | 'sm' | 'md' | 'lg'\ntype StepsVariant = 'subtle' | 'solid' | 'outline'\ntype StepsOrientation = 'horizontal' | 'vertical'\n\ntype ChakraStepsRootProps = Omit<\n ComponentPropsWithoutRef<typeof ChakraSteps.Root>,\n 'colorPalette' | 'orientation' | 'size' | 'variant'\n>\n\nexport interface StepsProps extends ChakraStepsRootProps {\n colorPalette?: StepsColorPalette\n orientation?: StepsOrientation\n size?: StepsSize\n variant?: StepsVariant\n}\n\ntype StepsRootComponent = ForwardRefExoticComponent<StepsProps & RefAttributes<HTMLDivElement>>\ntype StepsComponent = typeof ChakraSteps & { Root: StepsRootComponent }\n\nexport const StepsRoot = ChakraSteps.Root as unknown as StepsRootComponent\n\nexport const Steps = Object.assign(StepsRoot, {\n ...ChakraSteps,\n Root: StepsRoot,\n}) as StepsComponent\n","import { Box, VisuallyHidden, type BoxProps, type HTMLChakraProps } from '@chakra-ui/react'\nimport { forwardRef, type ComponentProps, type ReactNode } from 'react'\n\nimport { Heading } from '@/components/Heading'\nimport { Link } from '@/components/Link'\nimport { pxToRem } from '@/utils'\n\nexport type SummaryListRootProps = BoxProps\n\nexport type SummaryListRowProps = BoxProps\n\nexport type SummaryListKeyProps = HTMLChakraProps<'dt'>\n\nexport type SummaryListValueProps = HTMLChakraProps<'dd'>\n\nexport type SummaryListActionsProps = HTMLChakraProps<'dd'>\n\nexport type SummaryListActionsListProps = BoxProps\n\nexport type SummaryListActionsListItemProps = BoxProps\n\nexport interface SummaryListActionLinkProps extends ComponentProps<typeof Link> {\n visuallyHiddenText?: ReactNode\n}\n\nexport type SummaryCardProps = BoxProps\n\nexport type SummaryCardHeaderProps = BoxProps\n\nexport type SummaryCardTitleProps = ComponentProps<typeof Heading>\n\nexport type SummaryCardActionsProps = BoxProps\n\nexport type SummaryCardContentProps = BoxProps\n\nconst rowBorderColor = 'border'\n\nconst SummaryListRoot = forwardRef<HTMLDListElement, SummaryListRootProps>(\n function SummaryListRoot(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"dl\"\n width=\"100%\"\n m={0}\n color=\"fg\"\n fontSize={19}\n lineHeight={1.3157894737}\n {...props}\n />\n )\n }\n)\n\nconst SummaryListRow = forwardRef<HTMLDivElement, SummaryListRowProps>(\n function SummaryListRow(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"div\"\n py={{ base: pxToRem(15), md: pxToRem(20) }}\n borderBottom=\"1px solid\"\n borderColor={rowBorderColor}\n display={{ base: 'block', md: 'grid' }}\n gridTemplateColumns={{ md: 'minmax(0, 30%) minmax(0, 1fr) auto' }}\n columnGap={{ md: pxToRem(20) }}\n rowGap={{ base: pxToRem(6), md: 0 }}\n alignItems=\"start\"\n _first={{ borderTop: '1px solid', borderColor: rowBorderColor }}\n {...props}\n />\n )\n }\n)\n\nconst SummaryListKey = forwardRef<HTMLElement, SummaryListKeyProps>(\n function SummaryListKey(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"dt\"\n m={0}\n fontWeight=\"700\"\n color=\"fg\"\n pr={{ md: pxToRem(20) }}\n {...props}\n />\n )\n }\n)\n\nconst SummaryListValue = forwardRef<HTMLElement, SummaryListValueProps>(\n function SummaryListValue(props, ref) {\n return <Box ref={ref} as=\"dd\" m={0} color=\"fg\" overflowWrap=\"break-word\" {...props} />\n }\n)\n\nconst SummaryListActions = forwardRef<HTMLElement, SummaryListActionsProps>(\n function SummaryListActions(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"dd\"\n m={0}\n mt={{ base: pxToRem(6), md: 0 }}\n textAlign={{ md: 'right' }}\n whiteSpace={{ md: 'nowrap' }}\n color=\"fg\"\n {...props}\n />\n )\n }\n)\n\nconst SummaryListActionsList = forwardRef<HTMLDivElement, SummaryListActionsListProps>(\n function SummaryListActionsList(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"ul\"\n listStyleType=\"none\"\n display=\"flex\"\n flexWrap=\"wrap\"\n justifyContent={{ md: 'flex-end' }}\n gap={pxToRem(10)}\n m={0}\n p={0}\n {...props}\n />\n )\n }\n)\n\nconst SummaryListActionsListItem = forwardRef<HTMLDivElement, SummaryListActionsListItemProps>(\n function SummaryListActionsListItem(props, ref) {\n return <Box ref={ref} as=\"li\" m={0} p={0} {...props} />\n }\n)\n\nconst SummaryListActionLink = forwardRef<HTMLAnchorElement, SummaryListActionLinkProps>(\n function SummaryListActionLink({ children, visuallyHiddenText, ...props }, ref) {\n return (\n <Link ref={ref} {...props}>\n {children}\n {visuallyHiddenText ? <VisuallyHidden>{` ${visuallyHiddenText}`}</VisuallyHidden> : null}\n </Link>\n )\n }\n)\n\nconst SummaryCard = forwardRef<HTMLDivElement, SummaryCardProps>(function SummaryCard(props, ref) {\n return (\n <Box\n ref={ref}\n border=\"1px solid\"\n borderColor={rowBorderColor}\n width=\"100%\"\n mb={pxToRem(20)}\n {...props}\n />\n )\n})\n\nconst SummaryCardHeader = forwardRef<HTMLDivElement, SummaryCardHeaderProps>(\n function SummaryCardHeader(props, ref) {\n return (\n <Box\n ref={ref}\n px={{ base: pxToRem(15), md: pxToRem(20) }}\n py={pxToRem(15)}\n bg=\"grey.50\"\n borderBottom=\"1px solid\"\n borderColor={rowBorderColor}\n display={{ base: 'block', md: 'flex' }}\n alignItems={{ md: 'center' }}\n justifyContent={{ md: 'space-between' }}\n gap={pxToRem(15)}\n {...props}\n />\n )\n }\n)\n\nconst SummaryCardTitle = forwardRef<HTMLHeadingElement, SummaryCardTitleProps>(\n function SummaryCardTitle(props, ref) {\n return <Heading ref={ref} as=\"h2\" size={24} mb={0} {...props} />\n }\n)\n\nconst SummaryCardActions = forwardRef<HTMLDivElement, SummaryCardActionsProps>(\n function SummaryCardActions(props, ref) {\n return (\n <Box ref={ref} mt={{ base: pxToRem(10), md: 0 }} textAlign={{ md: 'right' }} {...props} />\n )\n }\n)\n\nconst SummaryCardContent = forwardRef<HTMLDivElement, SummaryCardContentProps>(\n function SummaryCardContent(props, ref) {\n return (\n <Box\n ref={ref}\n px={{ base: pxToRem(15), md: pxToRem(20) }}\n py={0}\n css={{\n '& > dl > div:first-of-type': {\n borderTop: 'none',\n },\n }}\n {...props}\n />\n )\n }\n)\n\nexport const SummaryList = Object.assign(SummaryListRoot, {\n Root: SummaryListRoot,\n Row: SummaryListRow,\n Key: SummaryListKey,\n Value: SummaryListValue,\n Actions: SummaryListActions,\n ActionsList: SummaryListActionsList,\n ActionsListItem: SummaryListActionsListItem,\n ActionLink: SummaryListActionLink,\n Card: SummaryCard,\n CardHeader: SummaryCardHeader,\n CardTitle: SummaryCardTitle,\n CardActions: SummaryCardActions,\n CardContent: SummaryCardContent,\n})\n\nexport {\n SummaryListRoot,\n SummaryListRow,\n SummaryListKey,\n SummaryListValue,\n SummaryListActions,\n SummaryListActionsList,\n SummaryListActionsListItem,\n SummaryListActionLink,\n SummaryCard,\n SummaryCardHeader,\n SummaryCardTitle,\n SummaryCardActions,\n SummaryCardContent,\n}\n","import { Switch as ChakraSwitch } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type SwitchProps = ComponentPropsWithoutRef<typeof ChakraSwitch.Root>\ntype SwitchComponent = typeof ChakraSwitch.Root & typeof ChakraSwitch\n\nexport const SwitchRoot = ChakraSwitch.Root\n\nexport const Switch: SwitchComponent = Object.assign(ChakraSwitch.Root, {\n ...ChakraSwitch,\n})\n","import { Table as ChakraTable, type HTMLChakraProps } from '@chakra-ui/react'\nimport { createContext, forwardRef, useContext, type ComponentProps } from 'react'\n\nimport { getGovukTypeScale, pxToRem } from '@/utils'\n\ntype ChakraTableRootProps = ComponentProps<typeof ChakraTable.Root>\ntype ChakraTableSectionProps = ComponentProps<typeof ChakraTable.Header>\ntype ChakraTableCaptionProps = ComponentProps<typeof ChakraTable.Caption>\ntype ChakraTableRowProps = ComponentProps<typeof ChakraTable.Row>\ntype ChakraTableColumnHeaderProps = ComponentProps<typeof ChakraTable.ColumnHeader>\ntype ChakraTableCellProps = ComponentProps<typeof ChakraTable.Cell>\n\ninterface NumericAlignmentProps {\n numeric?: boolean\n}\n\nexport type TableRootProps = ChakraTableRootProps\nexport type TableHeaderProps = ChakraTableSectionProps\nexport type TableBodyProps = ChakraTableSectionProps\nexport type TableFooterProps = ChakraTableSectionProps\nexport type TableCaptionProps = ChakraTableCaptionProps\nexport type TableRowProps = ChakraTableRowProps\nexport type TableColumnHeaderProps = ChakraTableColumnHeaderProps & NumericAlignmentProps\nexport type TableCellProps = ChakraTableCellProps & NumericAlignmentProps\nexport type TableRowHeaderProps = HTMLChakraProps<'th'> & NumericAlignmentProps\n\ntype TableSize = 'sm' | 'md' | 'lg'\n\nconst cellPadding = (size: TableSize = 'md') => {\n const paddingBySize = {\n sm: pxToRem(10),\n md: pxToRem(15),\n lg: pxToRem(20),\n } satisfies Record<TableSize, string>\n\n const padding = paddingBySize[size]\n return `${padding} ${pxToRem(20)} ${padding} ${pxToRem(20)}`\n}\n\nconst cellPaddingPlain = `${pxToRem(10)} ${pxToRem(20)} ${pxToRem(10)} 0`\n\ninterface TableContextValue {\n striped?: boolean\n size?: TableSize\n}\n\nconst TableContext = createContext<TableContextValue>({ striped: false, size: 'lg' })\n\nconst useTableContext = () => useContext(TableContext)\n\nconst TableRoot = forwardRef<HTMLTableElement, TableRootProps>(function TableRoot(\n { fontSize = 16, ...props },\n ref\n) {\n const { striped, ...restProps } = props\n const isStriped = striped === true\n const tableSize = props.size === 'sm' || props.size === 'lg' ? props.size : 'md'\n\n const scale = getGovukTypeScale(fontSize)\n\n return (\n <TableContext.Provider value={{ striped: isStriped, size: tableSize }}>\n <ChakraTable.Root\n ref={ref}\n width=\"100%\"\n borderCollapse=\"collapse\"\n color=\"fg\"\n fontSize={scale ? { base: scale.small.fontSize, md: scale.large.fontSize } : undefined}\n lineHeight={\n scale ? { base: scale.small.lineHeight, md: scale.large.lineHeight } : undefined\n }\n fontFamily=\"body\"\n striped={striped}\n {...restProps}\n />\n </TableContext.Provider>\n )\n})\n\nconst TableCaption = forwardRef<HTMLTableCaptionElement, TableCaptionProps>(\n function TableCaption(props, ref) {\n return (\n <ChakraTable.Caption\n ref={ref}\n captionSide=\"top\"\n textAlign=\"left\"\n color=\"fg\"\n fontSize={24}\n fontWeight=\"700\"\n lineHeight={1.25}\n mb={pxToRem(15)}\n {...props}\n />\n )\n }\n)\n\nconst TableHeader = forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n function TableHeader(props, ref) {\n return <ChakraTable.Header ref={ref} borderBottomWidth=\"1px\" {...props} />\n }\n)\n\nconst TableBody = forwardRef<HTMLTableSectionElement, TableBodyProps>(\n function TableBody(props, ref) {\n return <ChakraTable.Body ref={ref} {...props} />\n }\n)\n\nconst TableFooter = forwardRef<HTMLTableSectionElement, TableFooterProps>(\n function TableFooter(props, ref) {\n return <ChakraTable.Footer ref={ref} {...props} />\n }\n)\n\nconst TableRow = forwardRef<HTMLTableRowElement, TableRowProps>(function TableRow(props, ref) {\n return <ChakraTable.Row ref={ref} {...props} />\n})\n\nconst TableColumnHeader = forwardRef<HTMLTableCellElement, TableColumnHeaderProps>(\n function TableColumnHeader({ numeric = false, ...props }, ref) {\n const { striped, size } = useTableContext()\n\n return (\n <ChakraTable.ColumnHeader\n ref={ref}\n padding={striped ? cellPadding(size) : cellPaddingPlain}\n color=\"fg\"\n fontWeight=\"700\"\n textAlign={numeric ? 'right' : 'left'}\n verticalAlign=\"top\"\n borderColor=\"border\"\n {...props}\n />\n )\n }\n)\n\nconst TableCell = forwardRef<HTMLTableCellElement, TableCellProps>(function TableCell(\n { numeric = false, ...props },\n ref\n) {\n const { striped, size } = useTableContext()\n\n return (\n <ChakraTable.Cell\n ref={ref}\n py={pxToRem(10)}\n padding={striped ? cellPadding(size) : cellPaddingPlain}\n color=\"fg\"\n textAlign={numeric ? 'right' : 'left'}\n verticalAlign=\"top\"\n borderColor=\"border\"\n borderBottomWidth=\"1px\"\n {...props}\n />\n )\n})\n\nconst TableRowHeader = forwardRef<HTMLTableCellElement, TableRowHeaderProps>(\n function TableRowHeader({ numeric = false, ...props }, ref) {\n const { striped, size } = useTableContext()\n\n return (\n <ChakraTable.Cell\n ref={ref}\n as=\"th\"\n scope=\"row\"\n py={pxToRem(10)}\n pe={0}\n ps={0}\n padding={striped ? cellPadding(size) : cellPaddingPlain}\n color=\"fg\"\n fontWeight=\"700\"\n textAlign={numeric ? 'right' : 'left'}\n verticalAlign=\"top\"\n borderColor=\"border\"\n borderBottomWidth=\"1px\"\n {...props}\n />\n )\n }\n)\n\nexport const Table = Object.assign(TableRoot, {\n Root: TableRoot,\n Caption: TableCaption,\n Header: TableHeader,\n Body: TableBody,\n Footer: TableFooter,\n Row: TableRow,\n ColumnHeader: TableColumnHeader,\n Cell: TableCell,\n RowHeader: TableRowHeader,\n})\n\nexport {\n TableRoot,\n TableCaption,\n TableHeader,\n TableBody,\n TableFooter,\n TableRow,\n TableColumnHeader,\n TableCell,\n TableRowHeader,\n}\n","import { Tabs as ChakraTabs } from '@chakra-ui/react'\nimport { forwardRef, type ReactNode } from 'react'\n\nimport { pxToRem } from '@/utils'\nimport { Text } from '@/components'\n\nexport interface TabsItem {\n value: string\n label: ReactNode\n content: ReactNode\n}\n\nexport interface TabsProps extends ChakraTabs.RootProps {\n items?: TabsItem[]\n}\n\nexport type TabsListProps = ChakraTabs.ListProps\n\nexport type TabsTriggerProps = ChakraTabs.TriggerProps\n\nexport type TabsContentProps = ChakraTabs.ContentProps\n\nconst TabsRoot = forwardRef<HTMLDivElement, TabsProps>(function TabsRoot(\n { items, children, defaultValue, ...props },\n ref\n) {\n const firstValue = items?.[0]?.value\n\n return (\n <ChakraTabs.Root ref={ref} defaultValue={defaultValue ?? firstValue} {...props}>\n {items ? (\n <>\n <TabsList>\n {items.map((item) => (\n <TabsTrigger key={item.value} value={item.value}>\n {item.label}\n </TabsTrigger>\n ))}\n </TabsList>\n\n {items.map((item) => (\n <TabsContent key={item.value} value={item.value}>\n {item.content}\n </TabsContent>\n ))}\n </>\n ) : (\n children\n )}\n </ChakraTabs.Root>\n )\n})\n\nconst TabsList = forwardRef<HTMLDivElement, TabsListProps>(function TabsList(props, ref) {\n return (\n <ChakraTabs.List\n ref={ref}\n gap={0}\n bg=\"transparent\"\n borderBottom=\"opx solid\"\n borderColor=\"transparent\"\n overflowX=\"auto\"\n flexWrap=\"nowrap\"\n minW=\"0\"\n marginBottom={'-2px'}\n {...props}\n />\n )\n})\n\nconst TabsTrigger = forwardRef<HTMLButtonElement, TabsTriggerProps>(function TabsTrigger(\n { children, ...props },\n ref\n) {\n return (\n <ChakraTabs.Trigger\n ref={ref}\n borderRadius=\"0\"\n bgColor=\"bg.subtle\"\n color=\"fg\"\n h={'unset'}\n mt={pxToRem(8)}\n mr={pxToRem(4)}\n mb={pxToRem(5)}\n px={pxToRem(20)}\n py={pxToRem(10)}\n whiteSpace=\"nowrap\"\n textDecoration=\"underline\"\n textUnderlineOffset=\"0.1578em\"\n textDecorationThickness=\"max(1px, 0.0625rem)\"\n _before={{\n bgColor: 'transparent',\n }}\n _hover={{\n textDecorationThickness: 'max(3px, 0.1875rem)',\n }}\n _selected={{\n pt: pxToRem(14),\n pb: pxToRem(16),\n mb: 0,\n bg: 'bg',\n color: 'fg',\n textDecoration: 'none',\n fontWeight: '700',\n mt: 0,\n bgColor: 'bg',\n borderWidth: '1px',\n borderStyle: 'solid',\n borderColor: 'border.subtle',\n borderBottom: '1px solid',\n borderBottomColor: 'bg',\n }}\n _focusVisible={{\n outline: 'none',\n // outlineColor: 'yellow.500',\n outlineOffset: 0,\n bg: 'yellow.500',\n color: 'common.black',\n textDecorationThickness: 'max(3px, 0.1875rem)',\n '& .label': {\n bgColor: 'focus',\n },\n }}\n {...props}\n >\n <Text fontSize={19} fontWeight=\"400\" className=\"label\">\n {children}\n </Text>\n </ChakraTabs.Trigger>\n )\n})\n\nconst TabsContent = forwardRef<HTMLDivElement, TabsContentProps>(function TabsContent(props, ref) {\n return (\n <ChakraTabs.Content\n ref={ref}\n border=\"1px solid\"\n borderColor=\"border.subtle\"\n p={{ base: pxToRem(16), md: pxToRem(24) }}\n mt={pxToRem(-1)}\n bg=\"bg\"\n _focusVisible={{ outline: 'none' }}\n {...props}\n />\n )\n})\n\nexport const Tabs = Object.assign(TabsRoot, {\n Root: TabsRoot,\n List: TabsList,\n Trigger: TabsTrigger,\n Content: TabsContent,\n})\n\nexport { TabsRoot, TabsList, TabsTrigger, TabsContent }\n","import { TagsInput as ChakraTagsInput } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type TagsInputProps = ComponentPropsWithoutRef<typeof ChakraTagsInput.Root>\ntype TagsInputComponent = typeof ChakraTagsInput.Root & typeof ChakraTagsInput\n\nexport const TagsInputRoot = ChakraTagsInput.Root\n\nexport const TagsInput: TagsInputComponent = Object.assign(ChakraTagsInput.Root, {\n ...ChakraTagsInput,\n})\n","import {\n Box,\n HStack,\n LinkBox,\n LinkOverlay,\n Stack,\n type BoxProps,\n type StackProps,\n} from '@chakra-ui/react'\nimport {\n Children,\n createContext,\n forwardRef,\n isValidElement,\n useContext,\n type ReactNode,\n} from 'react'\n\nimport { Tag, type TagVariant } from '@/components/Tag/Tag'\nimport { Text } from '@/components/Text/Text'\nimport { pxToRem } from '@/utils'\n\nexport type TaskStatus = string\n\nexport interface TaskListStatusDefinition {\n label: ReactNode\n color: TagVariant\n}\n\nexport type TaskListStatuses = Record<string, TaskListStatusDefinition>\n\nconst DEFAULT_STATUSES: TaskListStatuses = {\n completed: { label: 'Completed', color: 'green' },\n incomplete: { label: 'Incomplete', color: 'blue' },\n cannotStartYet: { label: 'Cannot start yet', color: 'grey' },\n notStarted: { label: 'Not started', color: 'blue' },\n}\n\nconst TaskListStatusesContext = createContext<TaskListStatuses>(DEFAULT_STATUSES)\n\nexport interface TaskListItemData {\n id?: string\n title: ReactNode\n href: string\n status: TaskStatus\n hint?: ReactNode\n}\n\nexport interface TaskListProps extends StackProps {\n items?: TaskListItemData[]\n heading?: ReactNode\n statuses?: TaskListStatuses\n children?: ReactNode\n}\n\nexport interface TaskListHeadingProps extends BoxProps {\n children: ReactNode\n}\n\nexport interface TaskListItemProps extends Omit<BoxProps, 'title'> {\n title: ReactNode\n href: string\n status?: TaskStatus\n hint?: ReactNode\n}\n\nexport interface TaskListStatusProps extends BoxProps {\n status: TaskStatus\n children?: ReactNode\n}\n\nconst TaskListHeading = forwardRef<HTMLHeadingElement, TaskListHeadingProps>(\n function TaskListHeading({ children, ...props }, ref) {\n return (\n <Text ref={ref} as=\"h2\" fontSize={24} fontWeight=\"700\" color=\"fg\" mb={pxToRem(15)} {...props}>\n {children}\n </Text>\n )\n }\n)\n\nTaskListHeading.displayName = 'TaskListHeading'\n\nconst TaskListRoot = forwardRef<HTMLDivElement, TaskListProps>(function TaskListRoot(\n { items, heading, statuses, children, ...props },\n ref\n) {\n const childArray = Children.toArray(children)\n const headingChild = childArray.find(\n (child) => isValidElement(child) && child.type === TaskListHeading\n )\n const listChildren = childArray.filter((child) => child !== headingChild)\n const resolvedStatuses = {\n ...DEFAULT_STATUSES,\n ...statuses,\n }\n\n return (\n <TaskListStatusesContext.Provider value={resolvedStatuses}>\n <Stack ref={ref} gap={0} as=\"section\" width=\"100%\" {...props}>\n {headingChild ?? (heading ? <TaskListHeading>{heading}</TaskListHeading> : null)}\n\n <Box as=\"ul\" listStyleType=\"none\" m={0} p={0}>\n {items\n ? items.map((item) => (\n <TaskListItem\n key={item.id ?? item.href}\n title={item.title}\n href={item.href}\n hint={item.hint}\n status={item.status}\n />\n ))\n : listChildren}\n </Box>\n </Stack>\n </TaskListStatusesContext.Provider>\n )\n})\n\nTaskListRoot.displayName = 'TaskList'\n\nconst TaskListItem = forwardRef<HTMLLIElement, TaskListItemProps>(function TaskListItem(\n { title, href, status = 'incomplete', hint, ...props },\n ref\n) {\n const statusId = `task-status-${String(title)\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')}`\n\n return (\n <Box\n ref={ref}\n as=\"li\"\n borderBottom=\"1px solid\"\n borderColor=\"border.muted\"\n px={{ base: pxToRem(10), md: pxToRem(15) }}\n py={{ base: pxToRem(12), md: pxToRem(15) }}\n _hover={{ bg: 'bg.emphasized' }}\n {...props}\n >\n <LinkBox>\n <HStack align=\"center\" justify=\"space-between\" gap={pxToRem(15)}>\n <Box flex=\"1\" minW={0}>\n <LinkOverlay\n href={href}\n color=\"fg.link\"\n fontSize={19}\n lineHeight={pxToRem(25)}\n textDecoration=\"underline\"\n textUnderlineOffset=\"0.1578em\"\n textDecorationThickness=\"max(1px, 0.0625rem)\"\n aria-describedby={hint ? `${statusId}-hint ${statusId}` : statusId}\n _hover={{ color: 'primary.700', textDecorationThickness: 'max(3px, 0.1875rem)' }}\n _focus={{\n bg: 'yellow.500',\n color: 'common.black',\n outline: '3px solid',\n outlineColor: 'yellow.500',\n outlineOffset: 0,\n textDecorationThickness: 'max(3px, 0.1875rem)',\n }}\n _dark={{\n _hover: {\n color: 'primary.300',\n },\n }}\n >\n {title}\n </LinkOverlay>\n\n {hint ? (\n <Text id={`${statusId}-hint`} fontSize={16} color=\"fg.muted\" mt={pxToRem(4)} mb={0}>\n {hint}\n </Text>\n ) : null}\n </Box>\n\n <TaskListStatus id={statusId} status={status} />\n </HStack>\n </LinkBox>\n </Box>\n )\n})\n\nTaskListItem.displayName = 'TaskListItem'\n\nconst TaskListStatus = forwardRef<HTMLParagraphElement, TaskListStatusProps>(\n function TaskListStatus({ status, children, ...props }, ref) {\n const statuses = useContext(TaskListStatusesContext)\n const statusConfig = statuses[status]\n\n return (\n <Tag\n ref={ref}\n as=\"span\"\n flexShrink={0}\n variant={statusConfig?.color ?? 'grey'}\n fontSize={16}\n lineHeight={pxToRem(20)}\n {...props}\n >\n {children ?? statusConfig?.label ?? status}\n </Tag>\n )\n }\n)\n\nTaskListStatus.displayName = 'TaskListStatus'\n\ntype TaskListCompound = typeof TaskListRoot & {\n Root: typeof TaskListRoot\n Heading: typeof TaskListHeading\n Item: typeof TaskListItem\n Status: typeof TaskListStatus\n}\n\nexport const TaskList = Object.assign(TaskListRoot, {\n Root: TaskListRoot,\n Heading: TaskListHeading,\n Item: TaskListItem,\n Status: TaskListStatus,\n}) as TaskListCompound\n\nexport { TaskListRoot, TaskListHeading, TaskListItem, TaskListStatus }\n","import {\n Field,\n Textarea as ChakraTextarea,\n chakra,\n type FieldRootProps,\n type TextareaProps as ChakraTextareaProps,\n} from '@chakra-ui/react'\nimport { createContext, forwardRef, useContext, useId, type ReactNode } from 'react'\n\nimport { Text } from '@/components/Text/Text'\nimport { getFieldFocusStyles } from '@/utils/fieldFocusStyles'\nimport { govukFont, pxToRem } from '@/utils'\n\n// ─── Types ───────────────────────────────────────────────────────────\n\nexport interface TextareaRootProps extends FieldRootProps {\n /** Whether the textarea is in an invalid state */\n invalid?: boolean\n}\n\nexport interface TextareaLabelProps {\n /** Font size for the label */\n fontSize?: 19 | 24\n children: ReactNode\n}\n\nexport interface TextareaHintProps {\n /** ID applied to the hint element for aria-describedby linking */\n id?: string\n children: ReactNode\n}\n\nexport interface TextareaErrorProps {\n /** ID applied to the error element for aria-describedby linking */\n id?: string\n children: ReactNode\n}\n\nexport type TextareaInputProps = Omit<ChakraTextareaProps, 'size'>\n\nconst TextareaFieldContext = createContext<{ inputId: string } | null>(null)\n\n// ─── Subcomponents ───────────────────────────────────────────────────\n\nexport const Textarea = {\n Root: forwardRef<HTMLDivElement, TextareaRootProps>(function TextareaRoot(\n { invalid, children, ...props },\n ref\n ) {\n const isInvalid = Boolean(invalid)\n const generatedId = useId()\n const inputId = `govuk-textarea-${generatedId}`\n\n return (\n <TextareaFieldContext.Provider value={{ inputId }}>\n <Field.Root\n ref={ref}\n invalid={isInvalid}\n display=\"flex\"\n alignItems=\"flex-start\"\n gap={pxToRem(8)}\n borderLeftWidth={isInvalid ? pxToRem(5) : 0}\n borderLeftColor={isInvalid ? 'fg.error' : 'transparent'}\n pl={isInvalid ? pxToRem(15) : 0}\n {...props}\n >\n {children}\n </Field.Root>\n </TextareaFieldContext.Provider>\n )\n }),\n\n Label: forwardRef<HTMLLabelElement, TextareaLabelProps>(function TextareaLabel(\n { fontSize = 19, children, ...props },\n ref\n ) {\n const field = useContext(TextareaFieldContext)\n\n return (\n <chakra.label\n ref={ref}\n htmlFor={field?.inputId}\n {...govukFont(fontSize)}\n fontWeight=\"700\"\n color=\"fg\"\n marginBottom={0}\n {...props}\n >\n {children}\n </chakra.label>\n )\n }),\n\n Hint: forwardRef<HTMLDivElement, TextareaHintProps>(function TextareaHint(\n { children, ...props },\n ref\n ) {\n return (\n <Field.HelperText ref={ref} asChild {...props}>\n <Text fontSize={19} color=\"fg.muted\" mb={0}>\n {children}\n </Text>\n </Field.HelperText>\n )\n }),\n\n Error: forwardRef<HTMLDivElement, TextareaErrorProps>(function TextareaError(\n { children, ...props },\n ref\n ) {\n return (\n <Field.ErrorText ref={ref} asChild {...props}>\n <Text fontSize={19} color=\"fg.error\" fontWeight=\"700\" mb={0}>\n {`Error: ${children}`}\n </Text>\n </Field.ErrorText>\n )\n }),\n\n Input: forwardRef<HTMLTextAreaElement, TextareaInputProps>(function TextareaInput(\n { rows = 5, id, ...props },\n ref\n ) {\n const field = useContext(TextareaFieldContext)\n\n return (\n <ChakraTextarea\n ref={ref}\n id={id ?? field?.inputId}\n rows={rows}\n resize=\"vertical\"\n borderRadius=\"0\"\n borderWidth={pxToRem(2)}\n fontFamily=\"body\"\n borderColor=\"border.input\"\n bg=\"transparent\"\n color=\"fg\"\n fontSize={pxToRem(19)}\n lineHeight={pxToRem(25)}\n px={pxToRem(12)}\n py={pxToRem(8)}\n w=\"100%\"\n _placeholder={{ color: 'fg.muted', opacity: 1 }}\n _hover={{ borderColor: 'border.input' }}\n _focusVisible={getFieldFocusStyles()}\n _invalid={{ borderColor: 'fg.error' }}\n _disabled={{\n opacity: 1,\n cursor: 'not-allowed',\n color: 'fg.muted',\n bg: 'bg.muted',\n }}\n {...props}\n />\n )\n }),\n}\n\n// ─── Named Exports ───────────────────────────────────────────────────\n\nexport const TextareaRoot = Textarea.Root\nexport const TextareaLabel = Textarea.Label\nexport const TextareaHint = Textarea.Hint\nexport const TextareaError = Textarea.Error\nexport const TextareaInput = Textarea.Input\n","import {\n Field,\n Input as ChakraInput,\n chakra,\n type FieldRootProps,\n type InputProps,\n} from '@chakra-ui/react'\nimport { forwardRef, type ComponentPropsWithoutRef, useId, type ReactNode } from 'react'\n\nimport { Text } from '@/components/Text'\nimport { getFieldFocusStyles } from '@/utils/fieldFocusStyles'\nimport { getGovukTypeScale, govukFont, pxToRem } from '@/utils'\n\nexport type TextinputWidth = 'full' | '30' | '20' | '10' | '5' | '4' | '3' | '2'\n\nconst WIDTH_MAX: Record<Exclude<TextinputWidth, 'full'>, string> = {\n '30': '59ex',\n '20': '41ex',\n '10': '23ex',\n '5': '10.8ex',\n '4': '9ex',\n '3': '7.2ex',\n '2': '5.4ex',\n}\n\nexport interface TextinputRootProps extends FieldRootProps {\n invalid?: boolean\n}\n\nexport interface TextinputLabelProps extends ComponentPropsWithoutRef<'label'> {\n fontSize?: 19 | 24\n children: ReactNode\n}\n\nexport interface TextinputHintProps {\n id?: string\n children: ReactNode\n}\n\nexport interface TextinputErrorProps {\n id?: string\n children: ReactNode\n}\n\nexport interface TextinputInputProps extends Omit<InputProps, 'size'> {\n width?: TextinputWidth\n invalid?: boolean\n}\n\nexport interface TextinputProps extends Omit<TextinputInputProps, 'invalid'> {\n label?: ReactNode\n hint?: ReactNode\n error?: ReactNode\n labelSize?: 19 | 24\n formProps?: Omit<TextinputRootProps, 'children' | 'invalid'>\n invalid?: boolean\n}\n\nconst TextinputRoot = forwardRef<HTMLDivElement, TextinputRootProps>(function TextinputRoot(\n { invalid, children, ...props },\n ref\n) {\n return (\n <Field.Root\n ref={ref}\n invalid={Boolean(invalid)}\n display=\"flex\"\n alignItems=\"flex-start\"\n gap={pxToRem(8)}\n {...props}\n >\n {children}\n </Field.Root>\n )\n})\n\nconst TextinputLabel = forwardRef<HTMLLabelElement, TextinputLabelProps>(function TextinputLabel(\n { fontSize = 19, children, ...props },\n ref\n) {\n return (\n <chakra.label\n ref={ref}\n {...govukFont(fontSize)}\n fontWeight=\"700\"\n color=\"fg\"\n marginBottom={0}\n {...props}\n >\n {children}\n </chakra.label>\n )\n})\n\nconst TextinputHint = forwardRef<HTMLDivElement, TextinputHintProps>(function TextinputHint(\n { children, ...props },\n ref\n) {\n return (\n <Field.HelperText ref={ref} asChild {...props}>\n <Text fontSize={19} color=\"fg.muted\" mb={0}>\n {children}\n </Text>\n </Field.HelperText>\n )\n})\n\nconst TextinputError = forwardRef<HTMLDivElement, TextinputErrorProps>(function TextinputError(\n { children, ...props },\n ref\n) {\n return (\n <Field.ErrorText ref={ref} asChild {...props}>\n <Text fontSize={19} color=\"fg.error\" fontWeight=\"700\" mb={0}>\n {`Error: ${children}`}\n </Text>\n </Field.ErrorText>\n )\n})\n\nconst TextinputInput = forwardRef<HTMLInputElement, TextinputInputProps>(function TextinputInput(\n { width = 'full', fontSize = 16, invalid, ...props },\n ref\n) {\n const scale = getGovukTypeScale(fontSize)\n\n if (scale) {\n return (\n <ChakraInput\n ref={ref}\n borderRadius=\"0\"\n borderWidth={pxToRem(2)}\n borderColor={invalid ? 'fg.error' : 'border.input'}\n fontFamily=\"body\"\n bg=\"transparent\"\n color=\"fg\"\n fontSize={{ base: scale.small.fontSize, md: scale.large.fontSize }}\n lineHeight={{ base: scale.small.lineHeight, md: scale.large.lineHeight }}\n px={pxToRem(12)}\n py={pxToRem(5)}\n h={pxToRem(40)}\n w={width === 'full' ? '100%' : 'auto'}\n maxW={width === 'full' ? undefined : WIDTH_MAX[width]}\n _placeholder={{ color: 'fg.muted', opacity: 1 }}\n _hover={{ borderColor: invalid ? 'fg.error' : 'border.input' }}\n _focusVisible={getFieldFocusStyles()}\n _focus={getFieldFocusStyles()}\n _invalid={{ borderColor: 'fg.error' }}\n _disabled={{\n opacity: 1,\n cursor: 'not-allowed',\n color: 'fg.disabled',\n bg: 'bg.disabled',\n }}\n {...props}\n />\n )\n }\n})\n\nconst TextinputRootComponent = forwardRef<HTMLInputElement, TextinputProps>(function Textinput(\n {\n id,\n label,\n hint,\n error,\n width = 'full',\n labelSize = 19,\n required,\n disabled,\n invalid,\n formProps,\n ...props\n },\n ref\n) {\n const generatedId = useId()\n const inputId = id ?? `govuk-text-input-${generatedId}`\n const hintId = hint ? `${inputId}-hint` : undefined\n const errorId = error ? `${inputId}-error` : undefined\n const isInvalid = Boolean(error) || Boolean(invalid)\n const describedBy =\n [hintId, errorId, props['aria-describedby']].filter(Boolean).join(' ') || undefined\n\n return (\n <TextinputRoot required={required} disabled={disabled} invalid={isInvalid} {...formProps}>\n {label ? (\n <TextinputLabel htmlFor={inputId} fontSize={labelSize}>\n {label}\n </TextinputLabel>\n ) : null}\n {hint ? <TextinputHint id={hintId}>{hint}</TextinputHint> : null}\n {error ? <TextinputError id={errorId}>{error}</TextinputError> : null}\n <TextinputInput\n ref={ref}\n id={inputId}\n aria-describedby={describedBy}\n width={width}\n invalid={isInvalid}\n {...props}\n />\n </TextinputRoot>\n )\n})\n\nexport const Textinput = Object.assign(TextinputRootComponent, {\n Root: TextinputRoot,\n Label: TextinputLabel,\n Hint: TextinputHint,\n Error: TextinputError,\n Input: TextinputInput,\n})\n\nexport { TextinputRoot, TextinputLabel, TextinputHint, TextinputError, TextinputInput }\n","import { Timeline as ChakraTimeline } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type TimelineProps = ComponentPropsWithoutRef<typeof ChakraTimeline.Root>\ntype TimelineComponent = typeof ChakraTimeline.Root & typeof ChakraTimeline\n\nexport const TimelineRoot = ChakraTimeline.Root\n\nexport const Timeline: TimelineComponent = Object.assign(ChakraTimeline.Root, {\n ...ChakraTimeline,\n})\n","import {\n Toast as ChakraToast,\n Toaster as ChakraToaster,\n Icon,\n createToaster as chakraCreateToaster,\n} from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\nimport { forwardRef } from 'react'\nimport { FaXmark } from 'react-icons/fa6'\n\nexport type ToastProps = ComponentPropsWithoutRef<typeof ChakraToast.Root>\n\nexport const ToastRoot = ChakraToast.Root\nexport const ToastCloseTrigger = forwardRef<\n HTMLButtonElement,\n ComponentPropsWithoutRef<typeof ChakraToast.CloseTrigger>\n>(function ToastCloseTrigger(props, ref) {\n return (\n <ChakraToast.CloseTrigger ref={ref} {...props}>\n {props.children ?? (\n <Icon>\n <FaXmark />\n </Icon>\n )}\n </ChakraToast.CloseTrigger>\n )\n})\nexport const Toaster = ChakraToaster\nexport const createToaster = chakraCreateToaster\n\nexport const Toast = Object.assign(ChakraToast.Root, {\n Toaster: ChakraToaster,\n createToaster: chakraCreateToaster,\n ...ChakraToast,\n CloseTrigger: ToastCloseTrigger,\n})\n","import { IconButton, Popover, Portal, useSlotRecipe } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react'\nimport { cloneElement, forwardRef, isValidElement } from 'react'\nimport { LuInfo } from 'react-icons/lu'\n\nexport interface ToggleTipProps extends Omit<\n ComponentPropsWithoutRef<typeof Popover.Root>,\n 'children'\n> {\n content: ReactNode\n children?: ReactElement\n}\n\nexport const ToggleTipRoot = forwardRef<HTMLDivElement, ToggleTipProps>(function ToggleTipRoot(\n { children, content, positioning = { placement: 'top' }, ...props },\n ref\n) {\n const recipe = useSlotRecipe({ key: 'toggleTip' })\n const styles = recipe()\n const trigger = isValidElement(children) ? (\n cloneElement(children as ReactElement<{ css?: unknown }>, {\n css: [styles.trigger, (children.props as { css?: unknown }).css],\n })\n ) : (\n <IconButton aria-label=\"More information\" size=\"xs\" variant=\"ghost\" css={styles.trigger}>\n <LuInfo />\n </IconButton>\n )\n\n return (\n <Popover.Root positioning={positioning} {...props}>\n <Popover.Trigger asChild>{cloneElement(trigger)}</Popover.Trigger>\n <Portal>\n <Popover.Positioner>\n <Popover.Content ref={ref} maxW=\"xs\" css={styles.content}>\n <Popover.Arrow css={styles.arrow} />\n <Popover.Body css={styles.body}>{content}</Popover.Body>\n </Popover.Content>\n </Popover.Positioner>\n </Portal>\n </Popover.Root>\n )\n})\n\nexport const InfoTip = forwardRef<HTMLDivElement, Omit<ToggleTipProps, 'children'>>(\n function InfoTip(props, ref) {\n return <ToggleTipRoot ref={ref} {...props} />\n }\n)\n\nexport const ToggleTip = Object.assign(ToggleTipRoot, {\n Root: ToggleTipRoot,\n InfoTip,\n})\n","import { Tooltip as ChakraTooltip } from '@chakra-ui/react'\nimport type { ComponentPropsWithoutRef } from 'react'\n\nexport type TooltipProps = ComponentPropsWithoutRef<typeof ChakraTooltip.Root>\ntype TooltipComponent = typeof ChakraTooltip.Root & typeof ChakraTooltip\n\nexport const TooltipRoot = ChakraTooltip.Root\n\nexport const Tooltip: TooltipComponent = Object.assign(ChakraTooltip.Root, {\n ...ChakraTooltip,\n})\n","import { TreeView as ChakraTreeView, Icon } from '@chakra-ui/react'\nimport { forwardRef } from 'react'\nimport type { ComponentPropsWithoutRef } from 'react'\nimport { FaFile, FaFolder } from 'react-icons/fa'\n\nexport type TreeViewProps = ComponentPropsWithoutRef<typeof ChakraTreeView.Root>\nexport type TreeViewIconProps = ComponentPropsWithoutRef<typeof Icon>\n\nexport const TreeViewRoot = ChakraTreeView.Root\n\nexport const TreeViewFolderIcon = forwardRef<SVGSVGElement, TreeViewIconProps>(\n function TreeViewFolderIcon(props, ref) {\n return (\n <Icon {...props} ref={ref} boxSize=\"1em\" aria-hidden=\"true\">\n <FaFolder />\n </Icon>\n )\n }\n)\n\nexport const TreeViewFileIcon = forwardRef<SVGSVGElement, TreeViewIconProps>(\n function TreeViewFileIcon(props, ref) {\n return (\n <Icon {...props} ref={ref} boxSize=\"1em\" aria-hidden=\"true\">\n <FaFile />\n </Icon>\n )\n }\n)\n\nexport const TreeView = Object.assign(ChakraTreeView.Root, {\n ...ChakraTreeView,\n FileIcon: TreeViewFileIcon,\n FolderIcon: TreeViewFolderIcon,\n})\n","import { Box, HStack, type BoxProps, type StackProps, VisuallyHidden } from '@chakra-ui/react'\nimport { forwardRef, type ReactNode } from 'react'\n\nimport { Text } from '@/components/Text/Text'\nimport { pxToRem } from '@/utils'\n\nexport interface WarningTextProps extends StackProps {\n children: ReactNode\n assistiveText?: string\n iconText?: string\n iconProps?: BoxProps\n}\n\nexport const WarningText = forwardRef<HTMLDivElement, WarningTextProps>(function WarningText(\n { children, assistiveText = 'Warning', iconText = '!', iconProps, ...props },\n ref\n) {\n return (\n <HStack ref={ref} role=\"note\" align=\"center\" gap={pxToRem(15)} w=\"full\" {...props}>\n <Box\n as=\"span\"\n flexShrink={0}\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"center\"\n w={pxToRem(35)}\n h={pxToRem(35)}\n borderRadius=\"full\"\n bg=\"fg\"\n color=\"fg.inverted\"\n fontSize={pxToRem(30)}\n fontWeight=\"700\"\n lineHeight=\"1\"\n mt={pxToRem(-2)}\n aria-hidden=\"true\"\n {...iconProps}\n >\n {iconText}\n </Box>\n\n <Text as=\"p\" fontSize={19} color=\"fg\" mb={0}>\n <VisuallyHidden>{`${assistiveText}: `}</VisuallyHidden>\n {children}\n </Text>\n </HStack>\n )\n})\n","import { type BoxProps, type SystemStyleObject } from '@chakra-ui/react'\nimport { forwardRef, type ReactNode } from 'react'\n\nimport { pxToRem } from '@/utils'\nimport { Text } from '@/components'\n\nexport type TagVariant =\n | 'grey'\n | 'green'\n | 'teal'\n | 'blue'\n | 'purple'\n | 'magenta'\n | 'red'\n | 'orange'\n | 'yellow'\n\nexport type TagVariantStyles = Record<string, SystemStyleObject>\n\nexport interface TagProps extends Omit<BoxProps, 'color'> {\n children: ReactNode\n variant?: TagVariant | string\n bold?: boolean\n uppercase?: boolean\n variantStyles?: TagVariantStyles\n}\n\nexport const defaultTagVariantStyles: Record<TagVariant, SystemStyleObject> = {\n grey: {\n bgColor: 'grey.50',\n color: 'fg',\n _dark: { bgColor: 'grey.700', color: 'common.white' },\n },\n green: {\n bgColor: 'green.100',\n color: 'green.900',\n _dark: { bgColor: 'green.900', color: 'green.100' },\n },\n teal: {\n bgColor: 'teal.100',\n color: 'teal.900',\n _dark: { bgColor: 'teal.900', color: 'teal.100' },\n },\n blue: {\n bgColor: 'primary.100',\n color: 'primary.900',\n _dark: { bgColor: 'primary.900', color: 'primary.100' },\n },\n purple: {\n bgColor: 'purple.100',\n color: 'purple.900',\n _dark: { bgColor: 'purple.900', color: 'purple.100' },\n },\n magenta: {\n bgColor: 'magenta.100',\n color: 'magenta.900',\n _dark: { bgColor: 'magenta.900', color: 'magenta.100' },\n },\n red: { bgColor: 'red.100', color: 'red.900', _dark: { bgColor: 'red.900', color: 'red.100' } },\n orange: {\n bgColor: 'orange.100',\n color: 'orange.900',\n _dark: { bgColor: 'orange.900', color: 'orange.100' },\n },\n yellow: {\n bgColor: 'yellow.200',\n color: 'yellow.950',\n _dark: { bgColor: 'yellow.950', color: 'yellow.200' },\n },\n}\n\nexport const Tag = forwardRef<HTMLParagraphElement, TagProps>(function Tag(\n { children, bold, uppercase, variant = 'grey', variantStyles, ...props },\n ref\n) {\n const mergedVariantStyles: TagVariantStyles = {\n ...defaultTagVariantStyles,\n ...variantStyles,\n }\n\n return (\n <Text\n ref={ref}\n fontSize={19}\n display=\"inline-flex\"\n alignItems=\"center\"\n justifyContent=\"flex-start\"\n px={pxToRem(8)}\n py={pxToRem(5)}\n borderRadius={pxToRem(2)}\n fontWeight={bold ? '700' : '400'}\n textTransform={uppercase ? 'uppercase' : 'none'}\n {...mergedVariantStyles[variant]}\n {...props}\n >\n {children}\n </Text>\n )\n})\n","import { Box, type BoxProps } from '@chakra-ui/react'\nimport { forwardRef, type ReactNode } from 'react'\n\nimport { Link } from '@/components/Link'\nimport { Tag, type TagVariant } from '@/components/Tag'\nimport { Text } from '@/components/Text'\nimport { pxToRem } from '@/utils'\n\nexport interface PhaseBannerProps extends BoxProps {\n phase?: ReactNode\n phaseVariant?: TagVariant\n children?: ReactNode\n}\n\nexport type PhaseBannerContentProps = BoxProps\n\nexport interface PhaseBannerTagProps extends Omit<React.ComponentProps<typeof Tag>, 'variant'> {\n variant?: TagVariant\n}\n\nexport type PhaseBannerTextProps = React.ComponentProps<typeof Text>\n\nexport type PhaseBannerLinkProps = React.ComponentProps<typeof Link>\n\nconst PhaseBannerRoot = forwardRef<HTMLDivElement, PhaseBannerProps>(function PhaseBanner(\n { phase = 'Beta', phaseVariant = 'blue', children, ...props },\n ref\n) {\n return (\n <Box ref={ref} borderBottom=\"1px solid\" borderColor=\"border\" py={pxToRem(10)} {...props}>\n <PhaseBannerContent>\n <PhaseBannerTag variant={phaseVariant}>{phase}</PhaseBannerTag>\n {children}\n </PhaseBannerContent>\n </Box>\n )\n})\n\nconst PhaseBannerContent = forwardRef<HTMLParagraphElement, PhaseBannerContentProps>(\n function PhaseBannerContent(props, ref) {\n return (\n <Box\n ref={ref}\n as=\"p\"\n display=\"inline-flex\"\n alignItems=\"center\"\n flexWrap=\"wrap\"\n gap={0}\n m={0}\n color=\"fg\"\n fontSize={pxToRem(16)}\n lineHeight={pxToRem(20)}\n {...props}\n />\n )\n }\n)\n\nconst PhaseBannerTag = forwardRef<HTMLParagraphElement, PhaseBannerTagProps>(\n function PhaseBannerTag({ children, variant = 'blue', ...props }, ref) {\n return (\n <Tag ref={ref} as=\"strong\" variant={variant} flexShrink={0} mt={pxToRem(-1)} {...props}>\n {children}\n </Tag>\n )\n }\n)\n\nconst PhaseBannerText = forwardRef<HTMLParagraphElement, PhaseBannerTextProps>(\n function PhaseBannerText(props, ref) {\n return (\n <Text\n ref={ref}\n as=\"span\"\n fontSize={16}\n color=\"fg\"\n mb={0}\n ml={pxToRem(10)}\n alignItems={'center'}\n display=\"inline-flex\"\n {...props}\n />\n )\n }\n)\n\nconst PhaseBannerLink = forwardRef<HTMLAnchorElement, PhaseBannerLinkProps>(\n function PhaseBannerLink(props, ref) {\n return <Link ref={ref} ml={pxToRem(10)} {...props} />\n }\n)\n\nexport const PhaseBanner = Object.assign(PhaseBannerRoot, {\n Root: PhaseBannerRoot,\n Content: PhaseBannerContent,\n Tag: PhaseBannerTag,\n Text: PhaseBannerText,\n Link: PhaseBannerLink,\n})\n\nexport { PhaseBannerRoot, PhaseBannerContent, PhaseBannerTag, PhaseBannerText, PhaseBannerLink }\n"],"mappings":"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"}