@xqmsg/ui-core 0.16.2 → 0.16.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui-core.cjs.development.js +8 -2
- package/dist/ui-core.cjs.development.js.map +1 -1
- package/dist/ui-core.cjs.production.min.js +1 -1
- package/dist/ui-core.cjs.production.min.js.map +1 -1
- package/dist/ui-core.esm.js +8 -2
- package/dist/ui-core.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/input/StackedMultiSelect/index.tsx +8 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui-core.cjs.production.min.js","sources":["../src/components/button/index.tsx","../src/theme/foundations/colors.ts","../src/components/breadcrumbs/components/icon/index.tsx","../src/components/breadcrumbs/components/label/index.tsx","../src/components/input/StackedCheckbox/StackedCheckbox.tsx","../src/components/input/StackedInput/StackedInput.tsx","../src/components/input/StackedRadio/StackedRadioGroup.tsx","../src/components/input/StackedSelect/assets/svg/subtract.svg","../src/components/input/components/dropdown/index.tsx","../src/hooks/useOnOutsideClick.tsx","../src/components/input/components/token/assets/svg/close.svg","../src/components/input/StackedSelect/index.tsx","../src/hooks/useDidMountEffect.tsx","../src/components/input/StackedTextarea/StackedTextarea.tsx","../src/components/input/components/token/index.tsx","../src/components/input/StackedMultiSelect/index.tsx","../src/components/input/StackedPilledInput/index.tsx","../src/components/input/StackedSwitch/index.tsx","../src/components/input/components/label/index.tsx","../src/components/input/index.tsx","../src/components/layout/BorderedBox/index.tsx","../src/theme/foundations/typography.ts","../src/components/table/components/loading/index.tsx","../src/components/table/empty/index.tsx","../src/theme/foundations/breakpoints.ts","../src/theme/foundations/shadows.ts","../src/theme/components/alert.ts","../src/theme/components/badge.ts","../src/theme/components/button.ts","../src/theme/components/input.ts","../src/theme/components/link.ts","../src/theme/components/select.ts","../src/theme/components/switch.ts","../src/theme/components/tabs.ts","../src/theme/components/text.ts","../src/theme/customXQChakraTheme.ts","../src/theme/components/code.ts","../src/theme/components/form.ts","../src/theme/components/form-error.ts","../src/theme/components/form-label.ts","../src/theme/components/table.ts","../src/theme/components/textarea.ts","../src/theme/styles.ts","../src/components/banner/index.tsx","../src/components/banner/assets/svg/error.svg","../src/components/banner/assets/svg/neutral.svg","../src/components/banner/assets/svg/positive.svg","../src/components/banner/assets/svg/warning.svg","../src/components/breadcrumbs/index.tsx","../src/components/form/index.tsx","../src/components/form/section/index.tsx","../src/components/button/google/index.tsx","../src/components/button/google/assets/GoogleLogo.svg","../src/components/layout/index.tsx","../src/components/loading/index.tsx","../src/components/button/spinner/index.tsx","../src/components/table/index.tsx","../src/components/tabs/index.tsx","../src/components/text/index.tsx","../src/theme/provider/index.tsx","../src/components/form/utils/formErrors.ts"],"sourcesContent":["import React from 'react';\nimport { Button as ChakraButton } from '@chakra-ui/react';\nimport buttonTheme from '../../theme/components/button';\n\nexport interface ButtonProps {\n text: string;\n onClick?: () => void;\n width: 'variable' | 'fixed';\n variant?: keyof typeof buttonTheme.variants;\n type?: 'button' | 'submit' | 'reset';\n ariaLabel: string;\n disabled?: boolean;\n className?: string;\n}\n\n/**\n * A functional React component utilized to render the `Button` component\n */\nexport const Button: React.FC<ButtonProps> = ({\n onClick,\n text,\n type = 'button',\n ariaLabel,\n variant = 'primary',\n disabled,\n className,\n width,\n}) => {\n return (\n <ChakraButton\n onClick={onClick}\n type={type}\n variant={variant}\n disabled={disabled}\n aria-label={ariaLabel}\n className={className}\n width={width === 'fixed' ? '100%' : 'fit-content'}\n >\n {text}\n </ChakraButton>\n );\n};\n","export interface ColorHues {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n}\n\nconst blue: ColorHues = {\n 50: 'hsl(209, 100%, 95%)',\n 100: 'hsl(209, 100%, 90%)',\n 200: 'hsl(209, 100%, 80%)',\n 300: 'hsl(209, 100%, 70%)',\n 400: 'hsl(209, 100%, 60%)',\n 500: 'hsl(209, 100%, 50%)',\n 600: 'hsl(209, 100%, 40%)',\n 700: 'hsl(209, 100%, 30%)',\n 800: 'hsl(209, 100%, 20%)',\n 900: 'hsl(209, 100%, 10%)',\n};\n\nconst red: ColorHues = {\n 50: 'hsl(0, 100%, 98%)',\n 100: 'hsl(0, 95%, 92%)',\n 200: 'hsl(0, 97%, 85%)',\n 300: 'hsl(0, 95%, 75%)',\n 400: 'hsl(0, 88%, 68%)',\n 500: 'hsl(0, 76%, 57%)',\n 600: 'hsl(0, 61%, 48%)',\n 700: 'hsl(0, 56%, 39%)',\n 800: 'hsl(0, 54%, 33%)',\n 900: 'hsl(357, 62%, 24%)',\n};\n\nconst orange: ColorHues = {\n 50: 'hsl(40, 100%, 97%)',\n 100: 'hsl(39, 96%, 89%)',\n 200: 'hsl(38, 93%, 77%)',\n 300: 'hsl(33, 90%, 65%)',\n 400: 'hsl(27, 84%, 57%)',\n 500: 'hsl(24, 75%, 50%)',\n 600: 'hsl(20, 71%, 44%)',\n 700: 'hsl(16, 65%, 37%)',\n 800: 'hsl(14, 61%, 30%)',\n 900: 'hsl(14, 60%, 25%)',\n};\n\nconst green: ColorHues = {\n 50: 'hsl(140, 60%, 96%)',\n 100: 'hsl(141, 65%, 92%)',\n 200: 'hsl(141, 63%, 88%)',\n 300: 'hsl(141, 64%, 80%)',\n 400: 'hsl(140, 64%, 73%)',\n 500: 'hsl(140, 64%, 61%)',\n 600: 'hsl(140, 42%, 48%)',\n 700: 'hsl(140, 42%, 36%)',\n 800: 'hsl(141, 42%, 24%)',\n 900: 'hsl(138, 42%, 6%)',\n};\n\nconst label = {\n primary: { light: '#000000', dark: '#FFFFFF' },\n secondary: { light: '#3C3C4399' },\n error: '#FF0000',\n};\n\nconst border = {\n focus: '#3A6CD980',\n default: '#9999991A',\n};\n\nconst fill = {\n light: {\n primary: '#74748033',\n secondary: '#74748029',\n tertiary: '#7474801F',\n quaternary: ':#7474800D',\n },\n success: '#d8f1b8',\n error: '#ffbdb9',\n warning: '#ffefb4',\n action: '#0082ff',\n};\n\nconst semantic = {\n action: '#488ef7',\n success: '#5fcf65',\n warning: '#f8c352',\n error: '#f96057',\n};\n\nexport const colors = {\n label,\n border,\n fill,\n semantic,\n transparent: 'transparent',\n current: 'currentColor',\n black: '#000000',\n white: '#FFFFFF',\n lightBlue: '#29abe2',\n coolGray: '#F6F7FB',\n darkBlue: '#292f4c',\n backdrop: '#fbfcff',\n whiteAlpha: {\n 50: 'rgba(255, 255, 255, 0.04)',\n 100: 'rgba(255, 255, 255, 0.06)',\n 200: 'rgba(255, 255, 255, 0.08)',\n 300: 'rgba(255, 255, 255, 0.16)',\n 400: 'rgba(255, 255, 255, 0.24)',\n 500: 'rgba(255, 255, 255, 0.36)',\n 600: 'rgba(255, 255, 255, 0.48)',\n 700: 'rgba(255, 255, 255, 0.64)',\n 800: 'rgba(255, 255, 255, 0.80)',\n 900: 'rgba(255, 255, 255, 0.92)',\n },\n\n blackAlpha: {\n 50: 'rgba(0, 0, 0, 0.04)',\n 100: 'rgba(0, 0, 0, 0.06)',\n 200: 'rgba(0, 0, 0, 0.08)',\n 300: 'rgba(0, 0, 0, 0.16)',\n 400: 'rgba(0, 0, 0, 0.24)',\n 500: 'rgba(0, 0, 0, 0.36)',\n 600: 'rgba(0, 0, 0, 0.48)',\n 700: 'rgba(0, 0, 0, 0.64)',\n 800: 'rgba(0, 0, 0, 0.80)',\n 900: 'rgba(0, 0, 0, 0.92)',\n },\n\n gray: {\n 50: 'hsl(240, 3%, 94%)',\n 100: 'hsl(210, 3%, 87%)',\n 200: 'hsl(220, 4%, 69%)', // #ADAFB3\n 300: 'hsl(225, 4%, 56%)',\n 400: 'hsl(222, 4%, 44%)',\n 500: 'hsl(224, 6%, 38%)',\n 600: 'hsl(227, 6%, 30%)',\n 700: 'hsl(230, 5%, 23%)', // #38393E\n 800: 'hsl(216, 6%, 15%)',\n 900: 'hsl(240, 5%, 4%)',\n },\n\n red,\n orange,\n green,\n blue,\n};\n\nexport type Colors = typeof colors;\n\nexport default colors as Colors;\n","import React, { useMemo } from 'react';\nimport { Flex, Text } from '@chakra-ui/react';\nimport colors from '../../../../theme/foundations/colors';\n\nexport interface IconProps {\n step: number;\n status: 'complete' | 'active' | 'inactive';\n}\n\n/**\n * A functional React component utilized to render the `Icon` for the `Breadcrumbs` component.\n */\nexport const Icon: React.FC<IconProps> = ({ step, status }) => {\n const getColors = useMemo(() => {\n switch (status) {\n case 'active':\n return { bg: '#0082FF', color: colors.label.primary.dark };\n case 'complete':\n return { bg: '#7474800D', color: colors.label.primary.light };\n case 'inactive':\n return { bg: '#7474800D', color: colors.label.primary.light };\n }\n }, [status]);\n\n return (\n <Flex\n boxSize=\"20px\"\n bg={getColors.bg}\n borderRadius=\"100%\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Text fontSize=\"12px\" color={getColors.color}>\n {step}\n </Text>\n </Flex>\n );\n};\n","import React from 'react';\nimport { Box, Text } from '@chakra-ui/react';\nimport colors from '../../../../theme/foundations/colors';\n\nexport interface LabelProps {\n label: string;\n}\n\n/**\n * A functional React component utilized to render the `Label` for the `Breadcrumbs` component.\n */\nexport const Label: React.FC<LabelProps> = ({ label }) => {\n return (\n <Box pl=\"8px\">\n <Text color={colors.label.primary.light} fontSize=\"13px\">\n {label}\n </Text>\n </Box>\n );\n};\n","import React from 'react';\nimport { Checkbox } from '@chakra-ui/react';\nimport { SelectFieldProps } from '../InputTypes';\n\nexport interface StackedCheckboxProps extends SelectFieldProps {\n label: string;\n}\n\n/**\n * A functional React component utilized to render the `StackedCheckbox` component.\n */\nconst StackedCheckbox = React.forwardRef<\n HTMLInputElement,\n StackedCheckboxProps\n>(({ value, label, defaultValue }, _ref) => {\n return (\n <Checkbox\n ref={_ref}\n value={String(value)}\n defaultChecked={Boolean(defaultValue)}\n >\n {label}\n </Checkbox>\n );\n});\n\nexport default StackedCheckbox;\n","import React from 'react';\nimport { Input, InputGroup } from '@chakra-ui/react';\nimport { InputFieldProps } from '../InputTypes';\n\nexport interface StackedInputProps extends InputFieldProps {\n isRequired?: boolean;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n}\n\n/**\n * A functional React component utilized to render the `StackedInput` component.\n */\nconst StackedInput = React.forwardRef<HTMLInputElement, StackedInputProps>(\n (\n { type = 'text', isRequired, rightElement, leftElement, ...props },\n _ref\n ) => {\n return (\n <InputGroup>\n {leftElement && leftElement}\n <Input type={type} isRequired={isRequired} {...props} ref={_ref} />\n {rightElement && rightElement}\n </InputGroup>\n );\n }\n);\n\nexport default StackedInput;\n","import React from 'react';\nimport { Flex, InputGroup, Radio, RadioGroup } from '@chakra-ui/react';\nimport { FieldOptions, SelectFieldProps } from '../InputTypes';\n\nexport interface StackedRadioGroupProps extends SelectFieldProps {\n flexDirection?: 'row' | 'column';\n\n options: FieldOptions;\n}\n\n/**\n * A functional React component utilized to render the `StackedRadio` component.\n */\nconst StackedRadioGroup = React.forwardRef<\n HTMLInputElement,\n StackedRadioGroupProps\n>(({ id, flexDirection = 'row', options }, _ref) => {\n return (\n <InputGroup>\n <RadioGroup name={id}>\n {options.map(option => (\n <Flex\n mr=\"30px\"\n alignItems=\"center\"\n key={option.value}\n flexDirection={flexDirection}\n >\n <Radio ref={_ref} value={option.value}>\n {option.label}\n </Radio>\n </Flex>\n ))}\n </RadioGroup>\n </InputGroup>\n );\n});\n\nexport default StackedRadioGroup;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2%2012C0.89543%2012%20-3.91405e-08%2011.1046%20-8.74228e-08%2010L-4.37114e-07%202C-4.85396e-07%200.895431%200.89543%20-3.91405e-08%202%20-8.74228e-08L10%20-4.37114e-07C11.1046%20-4.85396e-07%2012%200.89543%2012%202L12%2010C12%2011.1046%2011.1046%2012%2010%2012L2%2012ZM6%202.5C6.13261%202.5%206.25979%202.55268%206.35355%202.64645L7.85355%204.14645C8.04881%204.34171%208.04881%204.65829%207.85355%204.85355C7.65829%205.04882%207.34171%205.04882%207.14645%204.85355L6%203.70711L4.85355%204.85355C4.65829%205.04882%204.34171%205.04882%204.14645%204.85355C3.95118%204.65829%203.95118%204.34171%204.14645%204.14645L5.64645%202.64645C5.74021%202.55268%205.86739%202.5%206%202.5ZM5.64645%209.35355C5.74021%209.44732%205.86739%209.5%206%209.5C6.13261%209.5%206.25978%209.44732%206.35355%209.35355L7.85355%207.85355C8.04882%207.65829%208.04882%207.34171%207.85355%207.14645C7.65829%206.95118%207.34171%206.95118%207.14645%207.14645L6%208.29289L4.85355%207.14645C4.65829%206.95118%204.34171%206.95118%204.14645%207.14645C3.95118%207.34171%203.95118%207.65829%204.14645%207.85355L5.64645%209.35355Z%22%20fill%3D%22%230082FF%22%2F%3E%3C%2Fsvg%3E\"","import React, { RefObject, useMemo } from 'react';\nimport { Box, Flex } from '@chakra-ui/react';\nimport colors from '../../../../../src/theme/foundations/colors';\nimport { FieldOption, FieldOptions } from '../../InputTypes';\n\nexport interface DropdownProps {\n onSelectItem: (option: FieldOption) => void;\n options: FieldOptions;\n dropdownRef: RefObject<HTMLDivElement>;\n position: 'top' | 'bottom';\n optionIndex?: number | null;\n}\n\n/**\n * A functional React component utilized to render the `Dropdown` component\n */\nexport const Dropdown: React.FC<DropdownProps> = ({\n onSelectItem,\n options,\n dropdownRef,\n position,\n optionIndex,\n}) => {\n const DropdownContent = useMemo(() => {\n return options.map((option, idx) => (\n <>\n {option.value === 'section_header' &&\n options[idx + 1] &&\n options[idx + 1].value !== 'section_header' && (\n <Box\n color={colors.label.secondary.light}\n fontSize=\"13px\"\n width=\"fit-content\"\n fontWeight=\"bold\"\n px=\"8px\"\n bg=\"inherit\"\n whiteSpace=\"nowrap\"\n >\n {idx > 0 && (\n <Box\n width=\"100%\"\n my=\"3px\"\n borderTop=\"2px solid\"\n borderColor={colors.border.default}\n />\n )}\n {option.label}\n </Box>\n )}\n {option.value !== 'section_header' && (\n <Box\n cursor=\"pointer\"\n borderRadius=\"inherit\"\n onClick={() => onSelectItem(option)}\n key={option.value}\n fontSize=\"13px\"\n px=\"8px\"\n py=\"4px\"\n width=\"100%\"\n color={\n optionIndex === idx\n ? colors.label.primary.dark\n : colors.label.primary.light\n }\n _hover={{\n color: colors.label.primary.dark,\n bg: colors.fill.action,\n borderRadius: '4px',\n width: '100%',\n }}\n bg={optionIndex === idx ? colors.fill.action : 'inherit'}\n whiteSpace=\"nowrap\"\n id={option.value}\n >\n {option.label}\n </Box>\n )}\n </>\n ));\n }, [onSelectItem, optionIndex, options]);\n\n return (\n <Flex\n flexDirection=\"column\"\n ref={dropdownRef}\n scrollMargin=\"15px\"\n bg={colors.fill.light.quaternary}\n backdropFilter=\"auto\"\n backdropBlur=\"64px\"\n borderRadius=\"4px\"\n border=\"0.25px solid\"\n borderColor={colors.fill.light.tertiary}\n mt=\"3px\"\n maxH=\"240px\"\n overflowY=\"auto\"\n px=\"8px\"\n py=\"4px\"\n position=\"absolute\"\n top={position === 'top' ? 26 : undefined}\n bottom={position === 'bottom' ? 30 : undefined}\n width=\"fit-content\"\n minWidth=\"100%\"\n zIndex={100}\n tabIndex={-2000}\n >\n {DropdownContent}\n </Flex>\n );\n};\n","import { RefObject, useEffect } from 'react';\n\nexport function useOnClickOutside(ref: RefObject<any>, handler: () => void) {\n useEffect(\n () => {\n const listener: EventListener = event => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n },\n // Add ref and handler to effect dependencies\n // It's worth noting that because passed in handler is a new ...\n // ... function on every render that will cause this effect ...\n // ... callback/cleanup to run every render. It's not a big deal ...\n // ... but to optimize you can wrap handler in useCallback before ...\n // ... passing it into this hook.\n [ref, handler]\n );\n}\n","export default \"data:image/svg+xml,%3Csvg%20%20viewBox%3D%220%200%2056%2056%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M27.9995%2056C43.4635%2056%2055.9995%2043.464%2055.9995%2028C55.9995%2012.536%2043.4635%200%2027.9995%200C12.5355%200%20-0.000488281%2012.536%20-0.000488281%2028C-0.000488281%2043.464%2012.5355%2056%2027.9995%2056ZM21.9807%2018.2688C20.9555%2017.2437%2019.2935%2017.2437%2018.2684%2018.2688C17.2432%2019.294%2017.2432%2020.956%2018.2684%2021.9812L24.2872%2028L18.2684%2034.0188C17.2432%2035.044%2017.2432%2036.706%2018.2684%2037.7312C19.2935%2038.7563%2020.9555%2038.7563%2021.9807%2037.7312L27.9995%2031.7123L34.0184%2037.7312C35.0435%2038.7563%2036.7055%2038.7563%2037.7307%2037.7312C38.7558%2036.706%2038.7558%2035.044%2037.7307%2034.0188L31.7118%2028L37.7307%2021.9812C38.7558%2020.956%2038.7558%2019.294%2037.7307%2018.2688C36.7055%2017.2437%2035.0435%2017.2437%2034.0184%2018.2688L27.9995%2024.2877L21.9807%2018.2688Z%22%20fill%3D%22%233C3C43%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E\"","import React, {\n KeyboardEventHandler,\n useEffect,\n useRef,\n useMemo,\n useState,\n} from 'react';\nimport {\n Box,\n Image,\n Input,\n InputGroup,\n InputRightElement,\n} from '@chakra-ui/react';\nimport { FieldOptions } from '../InputTypes';\nimport { StackedInputProps } from '../StackedInput/StackedInput';\nimport colors from '../../../theme/foundations/colors';\nimport { UseFormSetValue, FieldValues, Control } from 'react-hook-form';\nimport SubtractIcon from './assets/svg/subtract.svg';\nimport { Dropdown } from '../components/dropdown';\nimport useDidMountEffect from '../../../hooks/useDidMountEffect';\nimport { useOnClickOutside } from '../../../hooks/useOnOutsideClick';\nimport { debounce } from 'lodash';\n\nexport interface StackedSelectProps extends StackedInputProps {\n options: FieldOptions;\n setValue: UseFormSetValue<FieldValues>;\n control: Control<FieldValues, any>;\n handleOnChange: (value?: string) => void;\n}\n\n/**\n * A functional React component utilized to render the `StackedSelect` component.\n */\nconst StackedSelect = React.forwardRef<HTMLInputElement, StackedSelectProps>(\n (\n {\n isRequired,\n options,\n name,\n setValue,\n handleOnChange,\n disabled,\n value,\n ...props\n },\n _ref\n ) => {\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownMenuRef = useRef<HTMLDivElement>(null);\n\n const [isFocussed, setIsFocussed] = useState(false);\n const [selectedOption, setSelectedOption] = useState(\n options.find(option => option.value === value)?.label ?? ''\n );\n const [optionIndex, setOptionIndex] = useState<number | null>(null);\n const [position, setPosition] = useState<'top' | 'bottom'>('top');\n const [searchValue, setSearchValue] = useState('');\n const [debouncedSearchValue, setDebouncedSearchValue] = useState('');\n\n const boundingClientRect = dropdownRef.current?.getBoundingClientRect() as DOMRect;\n\n useEffect(() => {\n const boundingClientRect = dropdownRef.current?.getBoundingClientRect() as DOMRect;\n\n if (window.innerHeight - (boundingClientRect?.y + 240) >= 0) {\n setPosition('top');\n } else {\n setPosition('bottom');\n }\n }, [boundingClientRect]);\n\n useDidMountEffect(() => {\n setSelectedOption(\n options.find(option => option.value === value)?.label ?? ''\n );\n }, [value]);\n\n useOnClickOutside(dropdownRef, () => setIsFocussed(false));\n\n const handleOnSelectItem = (option: {\n label: string;\n value: string;\n sortValue: number;\n }) => {\n if (handleOnChange) {\n handleOnChange(option.value);\n }\n setValue(name as string, option.value);\n setSelectedOption(option.label);\n setIsFocussed(false);\n };\n\n const handleOnKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const initialOptionIndex = options[0].value === 'section_header' ? 1 : 0;\n\n if (\n !isFocussed &&\n (e.key === 'Enter' || e.key === 'ArrowUp' || e.key === 'ArrowDown')\n ) {\n setIsFocussed(true);\n return setOptionIndex(initialOptionIndex);\n }\n\n if (isFocussed) {\n if (\n optionIndex === null &&\n (e.key === 'Enter' || e.key === 'ArrowUp' || e.key === 'ArrowDown')\n ) {\n return setOptionIndex(initialOptionIndex);\n }\n\n if (e.key === 'ArrowUp' && optionIndex !== null && optionIndex > 0) {\n const incrementValue =\n options[optionIndex - 1] &&\n options[optionIndex - 1].value === 'section_header'\n ? 2\n : 1;\n setOptionIndex(optionIndex - incrementValue);\n\n return dropdownMenuRef.current?.scrollTo({\n top: optionIndex * 24,\n behavior: 'smooth',\n });\n }\n\n if (\n e.key === 'ArrowDown' &&\n optionIndex !== null &&\n optionIndex < options.length\n ) {\n const incrementValue =\n options[optionIndex + 1] &&\n options[optionIndex + 1].value === 'section_header'\n ? 2\n : 1;\n setOptionIndex(optionIndex + incrementValue);\n\n return dropdownMenuRef.current?.scrollTo({\n top: optionIndex * 24,\n behavior: 'smooth',\n });\n }\n\n if (e.key === 'Enter' && optionIndex !== null) {\n const option = options.find((_, idx) => optionIndex === idx);\n if (!option) return;\n\n if (handleOnChange) {\n handleOnChange(option.value);\n }\n\n setSelectedOption(option?.label);\n setValue(name as string, option.value, {\n shouldDirty: true,\n shouldValidate: true,\n });\n\n return setIsFocussed(false);\n }\n\n if (e.key === 'Tab') {\n return setIsFocussed(false);\n }\n }\n };\n\n useEffect(() => {\n if (searchValue.length) {\n const idx = options.findIndex(\n option =>\n option.label.substring(0, searchValue.length).toLowerCase() ===\n searchValue.toLowerCase()\n );\n\n dropdownMenuRef.current?.scrollTo({\n top: idx * 24,\n behavior: 'smooth',\n });\n\n setSearchValue('');\n setDebouncedSearchValue('');\n }\n }, [options, searchValue]);\n\n const updateSearchValue = useMemo(() => {\n return debounce(val => {\n setSearchValue(val);\n }, 1000);\n }, []);\n\n const update = (value: string) => {\n updateSearchValue(value);\n setDebouncedSearchValue(value);\n };\n\n return (\n <Box ref={dropdownRef} position=\"relative\">\n <InputGroup>\n <Input\n isRequired={isRequired}\n {...props}\n ref={_ref}\n onClick={() => setIsFocussed(!isFocussed)}\n cursor=\"pointer\"\n color=\"transparent\"\n fontSize=\"13px\"\n textShadow={`0 0 0 ${colors.label.primary.light}`}\n value={selectedOption}\n disabled={disabled}\n autoComplete=\"off\"\n onChange={e => update(debouncedSearchValue.concat(e.target.value))}\n onKeyDown={handleOnKeyDown}\n />\n <InputRightElement\n cursor={disabled ? 'not-allowed' : 'pointer'}\n onClick={() => !disabled && setIsFocussed(!isFocussed)}\n >\n <Image src={SubtractIcon} alt=\"subtract\" boxSize=\"16px\" />\n </InputRightElement>\n </InputGroup>\n {isFocussed && (\n <Dropdown\n position={position}\n dropdownRef={dropdownMenuRef}\n onSelectItem={option => handleOnSelectItem(option)}\n options={options}\n optionIndex={optionIndex}\n />\n )}\n </Box>\n );\n }\n);\n\nexport default StackedSelect;\n","import { useEffect, useRef } from 'react';\n\nconst useDidMountEffect = (func: () => void, deps: unknown[]) => {\n const didMount = useRef(false);\n\n useEffect(() => {\n if (didMount.current) func();\n else didMount.current = true;\n // eslint-disable-next-line\n }, deps);\n};\n\nexport default useDidMountEffect;\n","import React from 'react';\nimport { Textarea } from '@chakra-ui/react';\nimport { TextareaFieldProps } from '../InputTypes';\n\nexport interface StackedTextareaProps extends TextareaFieldProps {}\n\n/**\n * A functional React component utilized to render the `StackedTextarea` component.\n */\nconst StackedTextarea = React.forwardRef<\n HTMLTextAreaElement,\n StackedTextareaProps\n>(({ ...props }, _ref) => {\n return <Textarea ref={_ref} {...props} fontSize=\"13px\" />;\n});\n\nexport default StackedTextarea;\n","import { Flex, Text } from '@chakra-ui/react';\nimport { truncate } from 'lodash';\nimport React from 'react';\nimport colors from '../../../../../src/theme/foundations/colors';\nimport { ReactComponent as CloseIcon } from './assets/svg/close.svg';\n\nexport interface TokenProps {\n label: any;\n onDelete: any;\n}\n\n// For v1 we are truncating the label at 15 characters to avoid overflow\nconst Token: React.FC<TokenProps> = ({ label, onDelete }) => {\n return (\n <Flex\n key={label}\n borderRadius=\"full\"\n backgroundColor=\"#7676801F\"\n alignItems=\"center\"\n width=\"fit-content\"\n w=\"auto\"\n h=\"16px\"\n pl=\"6px\"\n pr=\"2px\"\n py=\"2px\"\n position=\"relative\"\n >\n <Text\n whiteSpace=\"nowrap\"\n color={colors.label.primary.light}\n fontSize=\"13px\"\n pr=\"4px\"\n >\n {truncate(label.trim(), {\n length: 15,\n omission: '...',\n })}\n </Text>\n <CloseIcon\n width=\"11px\"\n height=\"11px\"\n onClick={onDelete}\n cursor=\"pointer\"\n />\n </Flex>\n );\n};\n\nexport default Token;\n","import React, {\n KeyboardEventHandler,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Box, Flex, Text, Image, Input } from '@chakra-ui/react';\nimport { debounce } from 'lodash';\nimport {\n FieldOption,\n FieldOptions,\n ReactSelectFieldProps,\n} from '../InputTypes';\nimport colors from '../../../theme/foundations/colors';\nimport {\n Control,\n FieldValues,\n UseFormClearErrors,\n UseFormSetError,\n UseFormSetValue,\n useWatch,\n} from 'react-hook-form';\nimport SubtractIcon from '../StackedSelect/assets/svg/subtract.svg';\nimport { Dropdown } from '../components/dropdown';\nimport Token from '../components/token';\nimport { useOnClickOutside } from '../../../hooks/useOnOutsideClick';\n\nexport interface StackedMultiSelectProps extends ReactSelectFieldProps {\n options: FieldOptions;\n setValue: UseFormSetValue<FieldValues>;\n setError: UseFormSetError<FieldValues>;\n clearErrors: UseFormClearErrors<FieldValues>;\n control: Control<FieldValues, any>;\n}\n\n/**\n * A functional React component utilized to render the `StackedMultiSelect` component.\n */\nconst StackedMultiSelect = React.forwardRef<\n HTMLInputElement,\n StackedMultiSelectProps\n>(({ options, setValue, control, name, placeholder, disabled }, _ref) => {\n const watchedValue = useWatch({ control, name: name as string });\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownMenuRef = useRef<HTMLDivElement>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [localValues, setLocalValues] = useState<FieldOptions>([]);\n const [localOptions, setLocalOptions] = useState<FieldOptions>(options);\n const [isFocussed, setIsFocussed] = useState(false);\n const [shouldSideScroll, setShouldSideScroll] = useState(false);\n const [optionIndex, setOptionIndex] = useState<number | null>(null);\n\n const [position, setPosition] = useState<'top' | 'bottom'>('top');\n const [searchValue, setSearchValue] = useState('');\n const [debouncedSearchValue, setDebouncedSearchValue] = useState('');\n\n console.log({ searchValue, debouncedSearchValue });\n\n const boundingClientRect = dropdownRef.current?.getBoundingClientRect() as DOMRect;\n\n useEffect(() => {\n if (window.innerHeight - (boundingClientRect?.y + 240) >= 0) {\n setPosition('top');\n } else {\n setPosition('bottom');\n }\n }, [boundingClientRect]);\n\n useOnClickOutside(dropdownRef, () => setIsFocussed(false));\n\n // gets latest watched form value (common delimited) from RHF state and creates a list\n useEffect(() => {\n if (watchedValue !== undefined && !watchedValue.length) {\n setLocalValues([]);\n }\n\n if (watchedValue !== undefined && watchedValue?.length) {\n if (shouldSideScroll) {\n (scrollRef.current as HTMLDivElement).scrollTo({\n left: scrollRef.current?.scrollWidth,\n behavior: 'smooth',\n });\n setShouldSideScroll(false);\n }\n\n setLocalValues(\n watchedValue\n .split(',')\n .filter(Boolean)\n .map((value: string) =>\n options.find(option => option.value === value)\n )\n );\n }\n }, [options, shouldSideScroll, watchedValue]);\n\n const handleChange = (option: FieldOption) => {\n setShouldSideScroll(true);\n const newValue = [...localValues, option]\n .map(({ value }) => value)\n .join(',');\n\n setValue(name as string, newValue, {\n shouldValidate: true,\n shouldDirty: true,\n });\n\n setLocalOptions(prevLocalOptions =>\n prevLocalOptions.filter(prevLocalOption => prevLocalOption !== option)\n );\n\n setLocalValues(prevLocalValues => [...prevLocalValues, option]);\n };\n\n const handleDelete = (option: FieldOption) => {\n const newValue = localValues\n .filter(localValue => localValue !== option)\n .map(({ value }) => value)\n .join(',');\n\n setValue(name as string, newValue, {\n shouldValidate: true,\n shouldDirty: true,\n });\n\n setLocalOptions(prevLocalOptions =>\n [...prevLocalOptions, option].sort((a, b) => a.sortValue - b.sortValue)\n );\n\n setLocalValues(prevLocalValues =>\n prevLocalValues.filter(prevLocalValue => prevLocalValue !== option)\n );\n };\n\n const handleOnKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const initialOptionIndex = options[0].value === 'section_header' ? 1 : 0;\n\n if (\n !isFocussed &&\n (e.key === 'Enter' || e.key === 'ArrowUp' || e.key === 'ArrowDown')\n ) {\n setIsFocussed(true);\n return setOptionIndex(initialOptionIndex);\n }\n\n if (isFocussed) {\n if (\n optionIndex === null &&\n (e.key === 'Enter' || e.key === 'ArrowUp' || e.key === 'ArrowDown')\n ) {\n return setOptionIndex(initialOptionIndex);\n }\n\n if (e.key === 'ArrowUp' && optionIndex !== null && optionIndex > 0) {\n const incrementValue =\n localOptions[optionIndex - 1] &&\n localOptions[optionIndex - 1].value === 'section_header'\n ? 2\n : 1;\n setOptionIndex(optionIndex - incrementValue);\n\n return dropdownMenuRef.current?.scrollTo({\n top: optionIndex * 24,\n behavior: 'smooth',\n });\n }\n\n if (\n e.key === 'ArrowDown' &&\n optionIndex !== null &&\n optionIndex < localOptions.length\n ) {\n const incrementValue =\n localOptions[optionIndex + 1] &&\n localOptions[optionIndex + 1].value === 'section_header'\n ? 2\n : 1;\n setOptionIndex(optionIndex + incrementValue);\n\n return dropdownMenuRef.current?.scrollTo({\n top: optionIndex * 24,\n behavior: 'smooth',\n });\n }\n\n if (e.key === 'Enter' && optionIndex !== null) {\n const option = localOptions.find((_, idx) => optionIndex === idx);\n if (!option) return;\n\n handleChange(option);\n\n return setIsFocussed(false);\n }\n\n if (e.key === 'Tab') {\n return setIsFocussed(false);\n }\n\n return update(debouncedSearchValue.concat(e.key));\n }\n };\n\n useEffect(() => {\n if (searchValue.length) {\n const idx = options.findIndex(\n option =>\n option.label.substring(0, searchValue.length).toLowerCase() ===\n searchValue.toLowerCase()\n );\n\n dropdownMenuRef.current?.scrollTo({\n top: idx * 24,\n behavior: 'smooth',\n });\n\n setSearchValue('');\n setDebouncedSearchValue('');\n }\n }, [options, searchValue]);\n\n const updateSearchValue = useMemo(() => {\n return debounce(val => {\n setSearchValue(val);\n }, 1000);\n }, []);\n\n const update = (value: string) => {\n updateSearchValue(value);\n setDebouncedSearchValue(value);\n };\n\n return (\n <Box ref={dropdownRef} position=\"relative\" onKeyDown={handleOnKeyDown}>\n <Flex\n fontSize=\"13px\"\n h=\"26px\"\n border={isFocussed ? '2px solid' : '1px solid'}\n borderColor={isFocussed ? colors.border.focus : colors.border.default}\n py=\"5px\"\n pl=\"8px\"\n borderRadius=\"4px\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n onClick={() => {\n if (!disabled) {\n if (isFocussed) {\n return setIsFocussed(false);\n }\n\n inputRef.current?.focus();\n setIsFocussed(true);\n }\n }}\n bg={disabled ? colors.fill.light.quaternary : '#ffffff'}\n cursor={disabled ? 'not-allowed' : 'pointer'}\n >\n <Flex\n alignItems=\"center\"\n h=\"inherit\"\n width=\"90%\"\n overflowX=\"scroll\"\n style={{\n scrollbarWidth: 'none' /* Firefox */,\n msOverflowStyle: 'none',\n }}\n sx={{\n '::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n ref={scrollRef}\n >\n {localValues.length ? (\n localValues.map(option => (\n <Box mr=\"4px\" width=\"fit-content\" h=\"16px\" borderRadius=\"full\">\n <Token\n label={option.label}\n onDelete={() => handleDelete(option)}\n />\n </Box>\n ))\n ) : (\n <Text color={colors.label.secondary.light} fontSize=\"13px\">\n {placeholder}\n </Text>\n )}\n </Flex>\n <Input\n padding={0}\n border=\"none\"\n height=\"0\"\n width=\"0\"\n autoComplete=\"off\"\n type=\"text\"\n ref={inputRef}\n tabIndex={-1}\n _focus={{ boxShadow: 'none !important' }}\n />\n <Flex mr=\"4px\" justifyContent=\"center\" alignItems=\"center\">\n <Image src={SubtractIcon} alt=\"subtract\" boxSize=\"16px\" />\n </Flex>\n </Flex>\n {isFocussed && (\n <Dropdown\n dropdownRef={dropdownMenuRef}\n onSelectItem={option => handleChange(option)}\n options={localOptions}\n position={position}\n optionIndex={optionIndex}\n />\n )}\n </Box>\n );\n});\n\nexport default StackedMultiSelect;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Box, Flex, Input, Text, useOutsideClick } from '@chakra-ui/react';\nimport { InputFieldProps } from '../InputTypes';\nimport {\n Control,\n FieldValues,\n UseFormClearErrors,\n UseFormSetError,\n UseFormSetValue,\n useWatch,\n} from 'react-hook-form';\nimport colors from '../../../theme/foundations/colors';\nimport Token from '../components/token';\n\nexport interface StackedPilledInputProps extends InputFieldProps {\n setValue: UseFormSetValue<FieldValues>;\n setError: UseFormSetError<FieldValues>;\n clearErrors: UseFormClearErrors<FieldValues>;\n control: Control<FieldValues, any>;\n}\n\n/**\n * A functional React component utilized to render the `StackedPilledInput` component.\n */\nconst StackedPilledInput = React.forwardRef<\n HTMLInputElement,\n StackedPilledInputProps\n>(({ name, setValue, control, placeholder, disabled, clearErrors }, _ref) => {\n const watchedValue = useWatch({ control, name: name as string });\n const [lastestFormValueToArray, setLatestFormValueToArray] = useState<\n string[]\n >([]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const [tokenIndex, setTokenIndex] = useState<number | null>(null);\n const [isFocussed, setIsFocussed] = useState(false);\n const [localValue, setLocalValue] = useState('');\n\n const latestTokenElement = document.getElementById(\n `${name}_token_${lastestFormValueToArray.length - 1}`\n );\n\n // gets latest watched form value (common delimited) from RHF state and creates a list\n useEffect(() => {\n if (watchedValue !== undefined && !watchedValue.length) {\n setLatestFormValueToArray([]);\n }\n\n if (watchedValue !== undefined && watchedValue?.length) {\n setLatestFormValueToArray(watchedValue.split(',').filter(Boolean));\n\n if (latestTokenElement) {\n latestTokenElement.scrollIntoView({\n block: 'end',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }\n }, [latestTokenElement, watchedValue]);\n\n const onHandleKeyDown = (e: React.KeyboardEvent) => {\n if (\n e.key === ' ' ||\n e.key === 'Enter' ||\n e.key === ',' ||\n e.key === 'Tab'\n ) {\n if (\n e.key === 'Enter' &&\n !localValue.trim().length &&\n tokenIndex !== null\n ) {\n setLocalValue(lastestFormValueToArray[tokenIndex]);\n\n const filteredUniqueValues = Array.from(\n new Set(\n lastestFormValueToArray.filter(\n value => value !== lastestFormValueToArray[tokenIndex]\n )\n )\n );\n\n setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n\n return setTokenIndex(null);\n }\n\n const filteredUniqueValues = Array.from(\n new Set([...lastestFormValueToArray, ...localValue.trim().split(',')])\n );\n\n setLocalValue('');\n\n return setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n }\n\n if (!localValue.trim().length && lastestFormValueToArray.length) {\n if (e.key === 'Backspace' && tokenIndex !== null) {\n setLocalValue(\n lastestFormValueToArray[tokenIndex].substring(\n 0,\n lastestFormValueToArray[tokenIndex].length\n )\n );\n\n const filteredUniqueValues = Array.from(\n new Set(\n [...lastestFormValueToArray].filter(\n value => value !== lastestFormValueToArray[tokenIndex]\n )\n )\n );\n\n setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n\n return setTokenIndex(null);\n }\n\n if (e.key === 'ArrowLeft') {\n if (tokenIndex === 0) return;\n\n if (!tokenIndex) {\n return setTokenIndex(lastestFormValueToArray.length - 1);\n }\n\n setTokenIndex(prevTokenIndex => (prevTokenIndex as number) - 1);\n\n const tokenElement = document.getElementById(\n `${name}_token_${tokenIndex}`\n );\n\n if (!tokenElement || !scrollRef.current) return;\n\n return scrollRef.current.scrollBy({\n left: -1 * tokenElement.getBoundingClientRect().width,\n behavior: 'smooth',\n });\n }\n\n if (e.key === 'ArrowRight') {\n if (tokenIndex === null) return;\n\n if (tokenIndex === lastestFormValueToArray.length - 1) {\n return setTokenIndex(null);\n }\n setTokenIndex(prevTokenIndex => (prevTokenIndex as number) + 1);\n\n const tokenElement = document.getElementById(\n `${name}_token_${tokenIndex}`\n );\n\n if (!tokenElement || !scrollRef.current) return;\n\n return scrollRef.current.scrollBy({\n left: tokenElement.getBoundingClientRect().width,\n behavior: 'smooth',\n });\n }\n }\n };\n\n const onRemoveTag = (index: number) => {\n const filteredUniqueValues = lastestFormValueToArray.filter(\n (_, i) => i !== index\n );\n\n setLatestFormValueToArray(filteredUniqueValues);\n\n setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n };\n\n const onBlur = () => {\n clearErrors(name);\n\n if (localValue.trim().length) {\n const filteredUniqueValues = Array.from(\n new Set([...lastestFormValueToArray, ...localValue.trim().split(',')])\n );\n\n setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n setLocalValue('');\n }\n setIsFocussed(false);\n };\n\n useOutsideClick({ ref: inputWrapperRef, handler: onBlur });\n\n return (\n <Box position=\"relative\">\n <Flex\n fontSize=\"13px\"\n border={isFocussed ? '2px solid' : '1px solid'}\n borderColor={isFocussed ? colors.border.focus : colors.border.default}\n pl=\"8px\"\n borderRadius=\"4px\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n onClick={() => {\n if (!disabled) {\n inputRef.current?.focus();\n }\n }}\n bg={disabled ? colors.fill.light.quaternary : '#ffffff'}\n cursor={disabled ? 'not-allowed' : 'pointer'}\n ref={inputWrapperRef}\n h=\"26px\"\n >\n <Flex\n h=\"100%\"\n alignItems=\"center\"\n overflowX=\"scroll\"\n overflowY=\"hidden\"\n maxWidth={isFocussed ? '80%' : '100%'}\n style={{\n scrollbarWidth: 'none' /* Firefox */,\n msOverflowStyle: 'none',\n }}\n sx={{\n '::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n ref={scrollRef}\n >\n {lastestFormValueToArray.length\n ? lastestFormValueToArray.map((label, index) => (\n <Box\n mr=\"4px\"\n border={\n tokenIndex === index\n ? `1px solid ${colors.border.focus}`\n : 'none'\n }\n borderRadius=\"full\"\n onClick={() => isFocussed && setTokenIndex(index)}\n width=\"100%\"\n id={`${name}_token_${index}`}\n >\n <Token\n label={label}\n onDelete={(e: any) => {\n e.stopPropagation();\n e.preventDefault();\n onRemoveTag(index);\n }}\n />\n </Box>\n ))\n : null}\n {!lastestFormValueToArray.length && !isFocussed ? (\n <Text color={colors.label.secondary.light} fontSize=\"13px\">\n {placeholder}\n </Text>\n ) : null}\n </Flex>\n <Flex flex={1} minWidth={isFocussed ? '20%' : 0}>\n <Input\n onKeyDown={onHandleKeyDown}\n type=\"text\"\n padding={0}\n alignContent=\"flex-start\"\n float=\"right\"\n border=\"none\"\n height=\"auto\"\n color={tokenIndex !== null ? 'transparent' : colors.label.primary}\n _focus={{ boxShadow: 'none !important' }}\n value={localValue}\n onChange={e =>\n tokenIndex === null &&\n setLocalValue(\n e.target.value.trim().replace(',', '').length\n ? e.target.value\n : ''\n )\n }\n ref={inputRef}\n onFocus={() => setIsFocussed(true)}\n onBlur={() => setIsFocussed(false)}\n />\n </Flex>\n </Flex>\n </Box>\n );\n});\n\nexport default StackedPilledInput;\n","import React from 'react';\nimport { Switch, SwitchProps } from '@chakra-ui/react';\nimport colors from '../../../theme/foundations/colors';\n\nexport interface StackedSwitchProps extends SwitchProps {}\n\n/**\n * A functional React component utilized to render the `StackedSwitch` component.\n */\nconst StackedSwitch = React.forwardRef<HTMLInputElement, StackedSwitchProps>(\n ({ isRequired, onChange, value }, _ref) => {\n if (value === null) return null;\n\n return (\n <Switch\n h=\"26px\"\n mx=\"4px\"\n _focus={{\n border: '2px solid',\n borderColor: colors.border.focus,\n }}\n ref={_ref}\n isRequired={isRequired}\n value={String(value)}\n defaultChecked={Boolean(value)}\n onChange={e => {\n if (onChange) return onChange(e.target.checked as any);\n }}\n />\n );\n }\n);\n\nexport default StackedSwitch;\n","import React from 'react';\nimport { Box, FormLabel, Tooltip } from '@chakra-ui/react';\nimport colors from '../../../../../src/theme/foundations/colors';\nimport { QuestionOutlineIcon } from '@chakra-ui/icons';\n\nexport interface LabelProps {\n label: string;\n tooltipText?: string;\n isRequired?: boolean;\n}\n\n/**\n * A functional React component utilized to render the `Label` component\n */\nexport const Label: React.FC<LabelProps> = ({\n tooltipText,\n isRequired,\n label,\n}) => {\n return (\n <FormLabel display=\"flex\" alignItems=\"center\">\n {label}\n {isRequired && (\n <Box ml={1} color={colors.label.error}>\n *\n </Box>\n )}\n {!!tooltipText && (\n <Tooltip label={tooltipText} placement=\"top\">\n <QuestionOutlineIcon boxSize=\"13px\" ml=\"8px\" />\n </Tooltip>\n )}\n </FormLabel>\n );\n};\n","import React from 'react';\nimport StackedCheckBox from './StackedCheckbox/StackedCheckbox';\nimport StackedInput from './StackedInput/StackedInput';\nimport StackedRadioGroup from './StackedRadio/StackedRadioGroup';\nimport StackedSelect from './StackedSelect';\nimport StackedTextarea from './StackedTextarea/StackedTextarea';\nimport { FieldOptions, ValidationProps, InputType } from './InputTypes';\nimport {\n FormControl,\n FormErrorMessage,\n FormHelperText,\n} from '@chakra-ui/react';\nimport {\n Control,\n Controller,\n FieldValues,\n Path,\n PathValue,\n RefCallBack,\n UseFormClearErrors,\n UseFormSetError,\n UseFormSetValue,\n} from 'react-hook-form';\nimport StackedMultiSelect from './StackedMultiSelect';\nimport StackedPilledInput from './StackedPilledInput';\nimport StackedSwitch from './StackedSwitch';\nimport { Label } from './components/label';\n\nexport interface InputProps<T extends FieldValues> extends ValidationProps {\n inputType: InputType;\n name: string;\n ariaLabel: string;\n placeholder?: string;\n defaultValue?: string;\n label?: string;\n className?: string;\n options?: FieldOptions;\n maxLength?: number;\n helperText?: React.ReactNode;\n control: Control<T, any>;\n onChange?: (value?: string) => void;\n disabled?: boolean;\n tooltipText?: string;\n setValue: UseFormSetValue<T>;\n setError: UseFormSetError<T>;\n clearErrors: UseFormClearErrors<T>;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n}\n\n/**\n * A functional React component utilized to render the `Input` component. Utilizes a switch statement\n * to render the correct input based on the `inputType`.\n */\nexport function Input<T extends FieldValues>({\n inputType,\n label,\n ariaLabel,\n className,\n placeholder,\n name,\n helperText,\n options,\n tooltipText,\n isInvalid,\n errorText,\n isRequired,\n maxLength,\n defaultValue,\n control,\n disabled,\n rightElement,\n leftElement,\n onChange,\n setValue,\n setError,\n clearErrors,\n}: InputProps<T>) {\n const selectedInputField = (\n onChange: () => void,\n onBlur: () => void,\n ref: RefCallBack,\n value: string\n ) => {\n switch (inputType) {\n case 'text':\n return (\n <StackedInput\n className={`input-${inputType} ${className ?? ''}`}\n aria-label={ariaLabel}\n name={name}\n id={name}\n placeholder={placeholder}\n maxLength={maxLength}\n isRequired={isRequired}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n rightElement={rightElement}\n leftElement={leftElement}\n disabled={disabled}\n value={value}\n />\n );\n case 'radio':\n return (\n <StackedRadioGroup\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isInvalid={isInvalid}\n options={options as FieldOptions}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n />\n );\n case 'select':\n return (\n <StackedSelect\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isRequired={isRequired}\n isInvalid={isInvalid}\n options={options as FieldOptions}\n handleOnChange={onChange}\n onBlur={onBlur}\n setValue={setValue as UseFormSetValue<FieldValues>}\n control={control as Control<FieldValues, any>}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n placeholder={placeholder}\n />\n );\n case 'textarea':\n return (\n <StackedTextarea\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n placeholder={placeholder}\n maxLength={maxLength}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n />\n );\n case 'checkbox':\n return (\n <StackedCheckBox\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n label={label as string}\n />\n );\n case 'multi-select':\n return (\n <StackedMultiSelect\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isInvalid={isInvalid}\n options={options as FieldOptions}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n setValue={setValue as UseFormSetValue<FieldValues>}\n control={control as Control<FieldValues, any>}\n setError={setError as UseFormSetError<FieldValues>}\n clearErrors={clearErrors as UseFormClearErrors<FieldValues>}\n placeholder={placeholder}\n />\n );\n case 'pilled-text':\n return (\n <StackedPilledInput\n className={`input-${inputType} ${className ?? ''}`}\n aria-label={ariaLabel}\n name={name}\n id={name}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n placeholder={placeholder}\n setValue={setValue as UseFormSetValue<FieldValues>}\n setError={setError as UseFormSetError<FieldValues>}\n clearErrors={clearErrors as UseFormClearErrors<FieldValues>}\n control={control as Control<FieldValues, any>}\n maxLength={maxLength}\n />\n );\n case 'switch':\n return (\n <StackedSwitch\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n value={value}\n defaultValue={defaultValue}\n />\n );\n default:\n return null;\n }\n };\n\n return (\n <Controller\n control={control}\n name={name as Path<T>}\n defaultValue={defaultValue as PathValue<T, Path<T>>}\n rules={{ required: isRequired }}\n /** @ts-ignore: issues with implicit */\n render={({ field: { onBlur, onChange: fieldOnChange, ref, value } }) => (\n <FormControl\n id={name}\n isInvalid={isInvalid}\n position=\"relative\"\n py={label || helperText || isInvalid ? 6 : 0}\n >\n {label && (\n <Label\n tooltipText={tooltipText}\n label={label}\n isRequired={isRequired}\n />\n )}\n {selectedInputField(\n onChange ? onChange : fieldOnChange,\n onBlur,\n ref,\n value\n )}\n {isInvalid ? (\n <FormErrorMessage>{errorText}</FormErrorMessage>\n ) : (\n helperText && <FormHelperText>{helperText}</FormHelperText>\n )}\n </FormControl>\n )}\n />\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { Box } from '@chakra-ui/react';\n\nexport interface BorderBox extends PropsWithChildren {\n boxShadow: string;\n borderRadius?: string;\n}\n\n/**\n * A functional React component utilized to render the `BorderedBox` component\n */\nexport const BorderedBox: React.FC<BorderBox> = ({\n children,\n boxShadow,\n borderRadius = 'none',\n}) => {\n return (\n <Box\n boxShadow={boxShadow}\n borderRadius={borderRadius}\n bg=\"white\"\n mx=\"auto\"\n width=\"100%\"\n height=\"100%\"\n display=\"flex\"\n >\n {children}\n </Box>\n );\n};\n","const typography = {\n letterSpacings: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n\n lineHeights: {\n normal: 'normal',\n none: 1,\n shorter: 1.25,\n short: 1.375,\n base: 1.5,\n tall: 1.625,\n taller: '2',\n '3': '.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '7': '1.75rem',\n '8': '2rem',\n '9': '2.25rem',\n '10': '2.5rem',\n },\n\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n },\n\n fonts: {\n base: `proxima-nova, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n mono: `SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace`,\n },\n\n fontSizes: {\n xs: '0.75rem',\n sm: '0.875rem',\n md: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '4rem',\n },\n};\n\nexport type Typography = typeof typography;\n\nexport default typography;\n","import React from 'react';\nimport { Flex, IconButton, Spinner } from '@chakra-ui/react';\nimport { HiOutlineRefresh } from 'react-icons/hi';\nimport colors from '../../../../theme/foundations/colors';\nimport typography from '../../../../theme/foundations/typography';\n\ninterface TableLoadingRowsProps {\n isLoading: boolean;\n onLoadMore: () => void;\n}\n\n/**\n * A loading spinner rendered after the table to indicate more rows are being loaded.\n */\nexport const TableLoadingRows: React.FC<TableLoadingRowsProps> = ({\n isLoading,\n onLoadMore,\n}) => {\n return (\n <Flex\n width=\"full\"\n direction=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height={20}\n borderTopColor={colors.fill.light.quaternary}\n >\n {isLoading ? (\n <Spinner size=\"lg\" color={colors.fill.action} />\n ) : (\n <IconButton\n aria-label=\"Fetch more rows\"\n icon={<HiOutlineRefresh />}\n fontSize={typography.fontSizes['3xl']}\n bg=\"transparent\"\n shadow=\"none\"\n color={colors.fill.action}\n type=\"button\"\n variant=\"outline\"\n onClick={onLoadMore}\n />\n )}\n </Flex>\n );\n};\n","import React from 'react';\nimport { Table as ChakraTable, Tbody, Td, Tr } from '@chakra-ui/react';\n\n/**\n * A React component utilized to render the `EmptyTable` component\n */\nexport const EmptyTable: React.FC = () => {\n const getOpacity = (index: number) => {\n switch (index) {\n case 1:\n return 0.7;\n case 3:\n return 0.6;\n case 5:\n return 0.5;\n case 7:\n return 0.4;\n case 9:\n return 0.3;\n case 11:\n return 0.2;\n case 13:\n return 0.1;\n default:\n return 1;\n }\n };\n\n return (\n <ChakraTable\n variant=\"unstyled\"\n width=\"100%\"\n style={{\n borderCollapse: 'separate',\n borderSpacing: '0px',\n }}\n >\n <Tbody>\n {Array.from({ length: 14 }, (_, i) => i + 1).map(i => (\n <Tr>\n <Td height=\"26px\" opacity={getOpacity(i)}></Td>\n </Tr>\n ))}\n </Tbody>\n </ChakraTable>\n );\n};\n","import {\n createBreakpoints,\n BaseBreakpointConfig,\n} from '@chakra-ui/theme-tools';\n\n/**\n * Breakpoints for responsive design\n */\nconst breakpointValues: BaseBreakpointConfig = {\n sm: '30em',\n md: '48em',\n lg: '62em',\n xl: '80em',\n};\n\nconst breakpoints = createBreakpoints(breakpointValues);\n\nexport default breakpoints;\n","import colors from './colors';\n\nconst shadows = {\n xs: '0 0 0 1px rgba(0, 0, 0, 0.05)',\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n base: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n xl:\n '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',\n insetOutline: `inset 0 0 0 2px ${colors.fill.action}`,\n outline: `0 0 0 2px ${colors.fill.action}`,\n outlineDanger600: `0 0 0 2px ${colors.fill.error}`,\n inner: 'inset 0 2px 4px 0 rgba(0,0,0,0.06)',\n none: 'none',\n 'dark-lg':\n 'rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px',\n};\n\nexport type Shadows = typeof shadows;\n\nexport default shadows;\n","import colors from '../foundations/colors';\n\nconst parts = ['container', 'description', 'icon'];\n\nconst baseStyle = {\n container: {\n px: '8px',\n py: '8px',\n },\n\n description: {\n width: '100%',\n fontSize: '13px',\n textAlign: 'left',\n color: colors.label.primary.light,\n lineHeight: '16px',\n },\n};\n\nfunction variantPositive() {\n return {\n container: { bg: colors.fill.success },\n };\n}\n\nfunction variantWarning() {\n return {\n container: { bg: colors.fill.warning },\n };\n}\n\nfunction variantError() {\n return {\n container: { bg: colors.fill.error },\n };\n}\n\nfunction variantNeutral() {\n return {\n container: { bg: colors.fill.light.tertiary },\n };\n}\n\nconst variants = {\n positive: variantPositive,\n warning: variantWarning,\n error: variantError,\n neutral: variantNeutral,\n};\n\nconst defaultProps = {\n variant: 'positive',\n};\n\nexport default {\n parts,\n baseStyle,\n variants,\n defaultProps,\n};\n","import { getColor, mode, transparentize } from '@chakra-ui/theme-tools';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst baseStyle = {\n px: 1,\n textTransform: 'uppercase',\n fontSize: 'xs',\n borderRadius: 'sm',\n fontWeight: 'bold',\n};\n\nfunction variantSolid(props: Dict) {\n const { colorScheme: c, theme } = props;\n const dark = transparentize(`${c}.500`, 0.6)(theme);\n return {\n bg: mode(`${c}.500`, dark)(props),\n color: mode(`white`, `whiteAlpha.800`)(props),\n };\n}\n\nfunction variantSubtle(props: Dict) {\n const { colorScheme: c, theme } = props;\n const darkBg = transparentize(`${c}.200`, 0.16)(theme);\n return {\n bg: mode(`${c}.100`, darkBg)(props),\n color: mode(`${c}.800`, `${c}.200`)(props),\n };\n}\n\nfunction variantOutline(props: Dict) {\n const { colorScheme: c, theme } = props;\n const darkColor = transparentize(`${c}.200`, 0.8)(theme);\n const lightColor = getColor(theme, `${c}.500`);\n const color = mode(lightColor, darkColor)(props);\n\n return {\n color,\n boxShadow: `inset 0 0 0px 1px ${color}`,\n };\n}\n\nconst variants = {\n solid: variantSolid,\n subtle: variantSubtle,\n outline: variantOutline,\n};\n\nconst defaultProps = {\n variant: 'subtle',\n colorScheme: 'gray',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import { defineStyle } from '@chakra-ui/system';\nimport colors from '../foundations/colors';\n\nconst baseStyle = defineStyle({\n borderRadius: '4px',\n fontSize: '13px',\n bg: colors.fill.action,\n color: colors.label.primary.dark,\n h: '26px',\n border: 'none',\n px: '8px',\n py: '4px',\n bgGradient: 'linear-gradient(#FFFFFF29, #FFFFFF00)',\n shadow: '0.5px 0.5px 1px 1px #0000001A',\n _disabled: {\n backgroundColor: 'gray.100',\n borderColor: 'gray.100',\n color: 'gray.500',\n pointerEvents: 'none',\n },\n _hover: {\n bg: colors.fill.action,\n },\n _active: {\n color: colors.label.primary.dark,\n bg: colors.fill.action,\n bgGradient: colors.fill.light.quaternary,\n },\n _focus: {\n outline: `2px solid ${colors.border.focus}`,\n outlineOffset: '0px',\n },\n});\n\nconst variantPrimary = () => {\n return { ...baseStyle };\n};\n\nconst variantSecondary = () => {\n return {\n ...baseStyle,\n color: colors.fill.action,\n bg: colors.label.primary.dark,\n _hover: {\n bg: colors.label.primary.dark,\n },\n _active: {\n color: colors.fill.action,\n bg: colors.label.primary.dark,\n bgGradient: colors.fill.light.quaternary,\n },\n _focus: {\n bg: colors.label.primary.dark,\n },\n };\n};\n\nconst variants = {\n primary: variantPrimary(),\n secondary: variantSecondary(),\n};\n\nconst defaultProps = {\n variant: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import colors from '../foundations/colors';\n\nconst parts = ['field'];\n\nconst baseStyle = {\n field: {\n fontSize: '13px',\n h: '26px',\n '::placeholder': {\n color: colors.label.secondary.light,\n },\n py: '5px',\n px: '8px',\n border: '1px solid',\n borderColor: colors.border.default,\n _disabled: {\n cursor: 'not-allowed',\n bg: colors.fill.light.quaternary,\n color: colors.label.secondary.light,\n },\n _focus: {\n bg: '#ffffff',\n border: '2px solid',\n borderColor: colors.border.focus,\n },\n },\n};\n\nconst variants = { default: baseStyle };\n\nconst defaultProps = {\n variant: 'default',\n};\n\nexport default {\n parts,\n baseStyle,\n variants,\n defaultProps,\n};\n","import { getColor } from '@chakra-ui/theme-tools';\nimport colors from '../foundations/colors';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst baseStyle = {\n color: colors.fill.action,\n textDecoration: 'underline',\n transition: 'none',\n _hover: {\n color: 'orange.500',\n },\n};\n\nfunction variantSidebar() {\n return {\n display: 'flex',\n alignItems: 'center',\n // height: '56px',\n pl: 4,\n pr: 4,\n py: 2,\n color: 'gray.500',\n lineHeight: 1.5,\n outline: 'none',\n transition: 'none',\n textDecoration: 'none',\n _focus: {\n boxShadow: 'none',\n },\n _hover: {\n color: 'primary.500',\n textDecoration: 'none',\n },\n '&.active': {\n color: 'primary.500',\n fontWeight: 'semibold',\n },\n };\n}\n\n// This variant represent the same as the sidebar one above but when the route matches exactly\n// and not only for a child sub route match. I did it as a separate variant instead of a\n// prop to get around React complaining that the dom element was not recognized.\nfunction variantSidebarExact() {\n // props: Dict\n const base = variantSidebar();\n // const { theme } = props;\n // const primaryColor = getColor(theme, 'primary.500');\n\n return {\n ...base,\n '&.active': {\n // ...base['&.active'],\n // boxShadow: `inset 3px 0 0 0 ${primaryColor}`,\n },\n };\n}\n\nfunction variantSubNavigation(props: Dict) {\n const { theme } = props;\n const primaryColor = getColor(theme, 'primary.500');\n\n return {\n display: 'block',\n pl: 10,\n mb: 3,\n color: 'gray.900',\n lineHeight: 'shorter',\n fontSize: 'sm',\n outline: 'none',\n transition: 'none',\n textDecoration: 'none',\n _focus: {\n boxShadow: 'none',\n },\n _hover: {\n color: 'primary.500',\n textDecoration: 'none',\n },\n '&.active': {\n color: 'primary.500',\n boxShadow: `inset 3px 0 0 0 ${primaryColor}`,\n fontWeight: 'semibold',\n },\n };\n}\n\nfunction variantNavlink(props: Dict) {\n const { colorScheme: c, size } = props;\n\n return {\n color: 'gray.500',\n fontWeight: 'normal',\n textDecoration: 'none',\n fontSize: size || 'md',\n _hover: {\n color: `${c}.500`,\n textDecoration: 'none',\n },\n '&.active': {\n color: `${c}.500`,\n },\n };\n}\n\nconst variants = {\n sidebar: variantSidebar,\n sidebarExact: variantSidebarExact,\n subNavigation: variantSubNavigation,\n navlink: variantNavlink,\n};\n\nexport default {\n baseStyle,\n variants,\n};\n","import Input from './input';\n\nconst { defaultProps, variants } = Input;\n\nconst parts = ['field', 'icon'];\n\nfunction baseStyleField() {\n return {\n ...Input.baseStyle.field,\n appearance: 'none',\n paddingBottom: '1px',\n lineHeight: 'normal',\n bg: 'white',\n '> option': {\n // bg: mode('white', 'gray.700')(props),\n },\n };\n}\n\nconst baseStyleInput = {\n color: 'currentColor',\n fontSize: '1.25rem',\n _disabled: { opacity: 0.5 },\n};\n\nconst baseStyle = () => ({\n field: baseStyleField(),\n icon: baseStyleInput,\n});\n\nexport default {\n parts,\n baseStyle,\n variants,\n defaultProps,\n};\n","import { mode, getColor } from '@chakra-ui/theme-tools';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst parts = ['track', 'thumb'];\n\nfunction baseStyleTrack(props: Dict) {\n const { colorScheme: c, theme } = props;\n\n return {\n borderRadius: 'full',\n p: '2px',\n transition: 'all 120ms',\n bg: mode('gray.300', 'whiteAlpha.400')(props),\n _focus: {\n boxShadow: `0 0 0 3px ${getColor(theme, 'gray.100')}`,\n },\n _disabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n _checked: {\n bg: mode(`${c}.500`, `${c}.200`)(props),\n _focus: {\n boxShadow: `0 0 0 3px ${getColor(theme, `${c}.200`)}`,\n },\n },\n };\n}\n\nconst baseStyleThumb = {\n bg: 'white',\n transition: 'transform 250ms',\n borderRadius: 'full',\n transform: 'translateX(0)',\n};\n\nconst baseStyle = (props: Dict) => ({\n track: baseStyleTrack(props),\n thumb: baseStyleThumb,\n});\n\nconst sizes = {\n sm: {\n track: { w: '1.375rem', h: '0.75rem' },\n thumb: {\n w: '0.75rem',\n h: '0.75rem',\n _checked: {\n transform: 'translateX(0.625rem)',\n },\n },\n },\n\n md: {\n track: { w: '1.875rem', h: '1rem' },\n thumb: {\n w: '1rem',\n h: '1rem',\n _checked: {\n transform: 'translateX(0.875rem)',\n },\n },\n },\n\n lg: {\n track: { w: '2.875rem', h: '1.5rem' },\n thumb: {\n w: '1.5rem',\n h: '1.5rem',\n _checked: {\n transform: 'translateX(1.375rem)',\n },\n },\n },\n};\n\nconst defaultProps = {\n size: 'md',\n colorScheme: 'blue',\n};\n\nexport default {\n parts,\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { getColor, mode } from '@chakra-ui/theme-tools';\nimport colors from '../foundations/colors';\n\nconst parts = ['root', 'tablist', 'tab', 'tabpanel', 'indicator'];\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nfunction baseStyleRoot(props: Dict) {\n const { orientation } = props;\n return {\n display: orientation === 'vertical' ? 'flex' : 'block',\n };\n}\n\nfunction baseStyleTab(props: Dict) {\n const { isFitted } = props;\n\n return {\n flex: isFitted ? 1 : undefined,\n transition: 'all 0.2s',\n _focus: {\n zIndex: 1,\n boxShadow: 'outline',\n },\n };\n}\n\nfunction baseStyleTablist(props: Dict) {\n const { align = 'start', orientation } = props;\n\n const alignments: Record<string, string> = {\n end: 'flex-end',\n center: 'center',\n start: 'flex-start',\n };\n\n return {\n justifyContent: alignments[align],\n flexDirection: orientation === 'vertical' ? 'column' : 'row',\n };\n}\n\nconst baseStyleTabpanel = { p: 4 };\n\nconst baseStyle = (props: Dict) => {\n return {\n root: baseStyleRoot(props),\n tab: baseStyleTab(props),\n tablist: baseStyleTablist(props),\n tabpanel: baseStyleTabpanel,\n };\n};\n\nconst sizes = {\n sm: {\n tab: {\n py: '0.25rem',\n px: 6,\n fontSize: '0.85rem',\n },\n },\n md: {\n tab: {\n fontSize: '1rem',\n py: '0.75rem',\n px: 6,\n },\n },\n lg: {\n tab: {\n fontSize: { base: '1rem', sm: '1.15rem' },\n py: '0.75rem',\n px: 6,\n },\n },\n};\n\nfunction variantLine(props: Dict) {\n const { colorScheme: c, orientation } = props;\n const isVertical = orientation === 'vertical';\n const borderProp = isVertical ? 'borderLeft' : 'borderBottom';\n const marginProp = isVertical ? 'ml' : 'mb';\n\n const _selected = {\n color: mode(`${c}.600`, `${c}.300`)(props),\n _after: {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n bottom: '-1px',\n left: 0,\n right: 0,\n height: '3px',\n bg: 'currentColor',\n },\n };\n\n return {\n tablist: {\n [borderProp]: '1px solid',\n borderColor: 'gray.100',\n },\n tab: {\n position: 'relative',\n [borderProp]: 0,\n borderColor: 'transparent',\n [marginProp]: 0,\n // set by React Router NavLink component\n '&.active': _selected,\n _selected,\n _active: {\n bg: mode(`${c}.50`, 'whiteAlpha.300')(props),\n },\n _disabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n },\n };\n}\n\nfunction variantEnclosed(props: Dict) {\n const { colorScheme: c } = props;\n return {\n tab: {\n borderTopRadius: 'md',\n border: '1px solid',\n borderColor: 'transparent',\n mb: '-1px',\n _selected: {\n color: mode(`${c}.600`, `${c}.300`)(props),\n borderColor: 'inherit',\n borderBottomColor: mode(`white`, `gray.800`)(props),\n },\n },\n tablist: {\n mb: '-1px',\n borderBottom: '1px solid',\n borderColor: 'gray.100',\n },\n };\n}\n\nfunction variantEnclosedColored(props: Dict) {\n const { colorScheme: c } = props;\n return {\n tab: {\n border: '1px solid',\n borderColor: 'inherit',\n bg: mode(`gray.50`, `whiteAlpha.50`)(props),\n mb: '-1px',\n _notLast: {\n mr: '-1px',\n },\n _selected: {\n bg: mode(`#fff`, 'gray.800')(props),\n color: mode(`${c}.600`, `${c}.300`)(props),\n borderColor: 'inherit',\n borderTopColor: 'currentColor',\n borderBottomColor: 'transparent',\n },\n },\n tablist: {\n mb: '-1px',\n borderBottom: '1px solid',\n borderColor: 'gray.100',\n },\n };\n}\n\nfunction variantSoftRounded(props: Dict) {\n const { colorScheme: c, theme } = props;\n return {\n tab: {\n borderRadius: 'full',\n fontWeight: 'semibold',\n color: 'gray.600',\n _selected: {\n color: getColor(theme, `${c}.700`),\n bg: getColor(theme, `${c}.100`),\n },\n },\n };\n}\n\nfunction variantSolidRounded(props: Dict) {\n const { colorScheme: c } = props;\n return {\n tab: {\n borderRadius: 'full',\n fontWeight: 'semibold',\n color: mode('gray.600', 'inherit')(props),\n _selected: {\n color: mode(`#fff`, 'gray.800')(props),\n bg: mode(`${c}.600`, `${c}.300`)(props),\n },\n },\n };\n}\n\nconst variantUnstyled = {};\n\nconst variantSimple = {\n tab: {\n position: 'relative',\n borderColor: 'transparent',\n '&.active': {\n color: colors.fill.action,\n bg: 'transparent',\n borderBottom: `1px solid ${colors.fill.action}`,\n },\n _selected: {\n color: colors.fill.action,\n bg: 'transparent',\n _after: {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n bottom: '-1px',\n left: 0,\n right: 0,\n height: '3px',\n bg: 'currentColor',\n },\n },\n _active: {\n bg: 'transparent',\n },\n },\n};\n\nconst variants = {\n line: variantLine,\n enclosed: variantEnclosed,\n 'enclosed-colored': variantEnclosedColored,\n 'soft-rounded': variantSoftRounded,\n 'solid-rounded': variantSolidRounded,\n unstyled: variantUnstyled,\n simple: variantSimple,\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'line',\n colorScheme: 'blue',\n};\n\nexport default {\n parts,\n baseStyle,\n sizes,\n variants,\n defaultProps,\n};\n","import { TextProps, Text } from '@chakra-ui/react';\nimport typography from '../foundations/typography';\n\nconst { defaultProps } = Text;\n\nconst baseStyle: Partial<TextProps> = {\n fontWeight: typography.fontWeights.normal,\n fontFamily: typography.fonts.base,\n fontSize: typography.fontSizes.sm,\n lineHeight: typography.lineHeights.normal,\n letterSpacing: typography.letterSpacings.wide,\n};\n\nfunction variantHeader() {\n return {\n ...baseStyle,\n fontWeight: typography.fontWeights.bold,\n fontSize: typography.fontSizes['3xl'],\n lineHeight: typography.lineHeights[8],\n letterSpacing: typography.letterSpacings.wider,\n };\n}\nfunction variantSubheader() {\n return {\n ...baseStyle,\n fontWeight: typography.fontWeights.semibold,\n fontSize: typography.fontSizes['lg'],\n lineHeight: typography.lineHeights[5],\n letterSpacing: typography.letterSpacings.wide,\n };\n}\nfunction variantParagraph() {\n return baseStyle;\n}\n\nconst variants = {\n header: variantHeader,\n subheader: variantSubheader,\n paragraph: variantParagraph,\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps: { ...defaultProps, variant: variants.paragraph },\n};\n","import { extendTheme } from '@chakra-ui/react';\nimport breakpoints from './foundations/breakpoints';\nimport colors from './foundations/colors';\nimport shadows from './foundations/shadows';\nimport typography from './foundations/typography';\nimport Alert from './components/alert';\nimport Badge from './components/badge';\nimport Button from './components/button';\nimport Code from './components/code';\nimport Form from './components/form';\nimport FormError from './components/form-error';\nimport FormLabel from './components/form-label';\nimport Input from './components/input';\nimport Link from './components/link';\nimport Select from './components/select';\nimport Switch from './components/switch';\nimport Table from './components/table';\nimport Tabs from './components/tabs';\nimport Textarea from './components/textarea';\nimport Text from './components/text';\nimport styles from './styles';\n\nconst customXQChakraTheme = extendTheme({\n breakpoints,\n colors,\n shadows,\n ...typography,\n components: {\n Alert,\n Badge,\n Button,\n Code,\n Form,\n FormError,\n FormLabel,\n Input,\n Link,\n Select,\n Switch,\n Table,\n Tabs,\n Textarea,\n Text,\n },\n styles,\n});\n\nexport type CustomTheme = typeof customXQChakraTheme;\n\nexport default customXQChakraTheme;\n","import Badge from './badge';\n\nconst { variants, defaultProps } = Badge;\n\nconst baseStyle = {\n fontFamily: 'mono',\n fontSize: 'sm',\n px: '0.2em',\n borderRadius: 'sm',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import colors from '../foundations/colors';\n\nconst parts = ['requiredIndicator', 'helperText'];\n\nfunction baseStyleRequiredIndicator() {\n return {\n ml: 1,\n color: colors.label.error,\n };\n}\n\nfunction baseStyleHelperText() {\n return {\n position: 'absolute',\n color: colors.label.secondary.light,\n mt: 1,\n ml: 1,\n bottom: 0,\n fontSize: '13px',\n };\n}\n\nconst baseStyle = () => ({\n requiredIndicator: baseStyleRequiredIndicator(),\n helperText: baseStyleHelperText(),\n});\n\nexport default {\n parts,\n baseStyle,\n};\n","import colors from '../foundations/colors';\n\nconst parts = ['text', 'icon'];\n\nfunction baseStyleText() {\n return {\n color: colors.label.error,\n position: 'absolute',\n bottom: 0,\n mt: 1,\n ml: 1,\n fontSize: '13px',\n };\n}\n\nfunction baseStyleIcon() {\n return {\n ml: 1,\n color: colors.label.error,\n };\n}\n\nconst baseStyle = () => ({\n text: baseStyleText(),\n icon: baseStyleIcon(),\n});\n\nexport default {\n parts,\n baseStyle,\n};\n","import colors from '../foundations/colors';\n\nconst baseStyle = {\n fontSize: '13px',\n position: 'absolute',\n top: 0,\n display: 'flex',\n ml: 1,\n mb: 1,\n color: colors.label.primary.light,\n opacity: 1,\n};\n\nexport default {\n baseStyle,\n};\n","import colors from '../foundations/colors';\n\nconst parts = ['th', 'td', 'tr', 'body', 'thead'];\n\nconst baseStyle = {\n thead: { bg: colors.label.primary.dark },\n th: {\n bg: colors.label.primary.dark,\n padding: '5px 8px !important',\n fontSize: '13px',\n },\n tr: {\n fontSize: '13px',\n h: '26px',\n lineHeight: 'normal',\n _odd: {\n td: {\n h: '26px ',\n lineHeight: 'normal',\n bg: colors.fill.light.tertiary,\n _first: {\n borderTopLeftRadius: 'md',\n borderBottomLeftRadius: 'md',\n },\n _last: {\n borderTopRightRadius: 'md',\n borderBottomRightRadius: 'md',\n },\n },\n },\n },\n td: {\n padding: '5px 8px !important',\n lineHeight: 'normal',\n h: '26px',\n },\n};\n\nexport default {\n parts,\n baseStyle,\n};\n","import Input from './input';\n\nconst baseStyle = {\n ...Input.baseStyle.field,\n fontSize: '13px',\n\n display: 'block', // Removes gap below textarea because it defaults to inline.\n paddingY: '8px',\n paddingX: '5px',\n height: '78px',\n lineHeight: 'short',\n};\n\nconst defaultProps = {\n variant: 'default',\n};\n\nexport default {\n baseStyle,\n defaultProps,\n};\n","export default {\n global: {\n 'html, body, #root': {},\n body: {\n fontFamily: 'body',\n color: 'black',\n overflow: {\n base: 'visible',\n lg: 'hidden',\n },\n lineHeight: 'normal',\n },\n '*, *::before, *::after': {\n borderColor: 'gray.200',\n },\n '*::placeholder': {\n color: 'primary',\n },\n },\n};\n","import React, { ReactNode, useMemo } from 'react';\nimport { Alert, AlertDescription, Box, Flex, Image } from '@chakra-ui/react';\nimport ErrorIcon from './assets/svg/error.svg';\nimport PositiveIcon from './assets/svg/positive.svg';\nimport NeutralIcon from './assets/svg/neutral.svg';\nimport WarningIcon from './assets/svg/warning.svg';\nimport { Button } from '../button';\n\nexport type BannerVariant = 'positive' | 'warning' | 'error' | 'neutral';\n\nexport interface BannerProps {\n variant: BannerVariant;\n message: ReactNode;\n buttonText?: string;\n onClick?: () => void;\n type?: 'condensed' | 'expanded';\n}\n\n/**\n * A functional React component utilized to render the `Banner` component\n */\nexport const Banner: React.FC<BannerProps> = ({\n variant,\n message,\n buttonText,\n onClick,\n type = 'expanded',\n}) => {\n const Icon = useMemo(() => {\n switch (variant) {\n case 'error':\n return <Image src={ErrorIcon} alt=\"error\" boxSize=\"16px\" />;\n case 'neutral':\n return <Image src={NeutralIcon} alt=\"neutral\" boxSize=\"16px\" />;\n case 'positive':\n return <Image src={PositiveIcon} alt=\"positive\" boxSize=\"16px\" />;\n case 'warning':\n return <Image src={WarningIcon} alt=\"warning\" boxSize=\"16px\" />;\n default:\n return null;\n }\n }, [variant]);\n\n return (\n <Alert variant={variant}>\n <AlertDescription>\n <Flex\n flexDirection={type === 'condensed' ? 'row' : 'column'}\n alignItems={type === 'condensed' ? 'center' : ''}\n >\n <Box pr=\"8px\">{Icon}</Box>\n <Box pt={type === 'condensed' ? 0 : '8px'}> {message}</Box>\n {onClick && buttonText && (\n <Flex\n ml={type === 'condensed' ? 'auto' : ''}\n pt={type === 'condensed' ? 0 : '8px'}\n justifyContent={type === 'condensed' ? 'flex-end' : 'flex-end'}\n >\n <Button\n variant=\"secondary\"\n onClick={onClick}\n text={buttonText}\n width=\"variable\"\n ariaLabel=\"banner button\"\n />\n </Flex>\n )}\n </Flex>\n </AlertDescription>\n </Alert>\n );\n};\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5.5%205.5L8.5%208.5M8.5%205.5L5.5%208.5M13%207C13%2010.3137%2010.3137%2013%207%2013C3.68629%2013%201%2010.3137%201%207C1%203.68629%203.68629%201%207%201C10.3137%201%2013%203.68629%2013%207Z%22%20stroke%3D%22%23F96057%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M7%204.5V4C6.72386%204%206.5%204.22386%206.5%204.5H7ZM7.005%204.5H7.505C7.505%204.22386%207.28114%204%207.005%204V4.5ZM7.005%204.505V5.005C7.28114%205.005%207.505%204.78114%207.505%204.505H7.005ZM7%204.505H6.5C6.5%204.78114%206.72386%205.005%207%205.005V4.505ZM6.27639%206.05279C6.0294%206.17628%205.92929%206.47662%206.05279%206.72361C6.17628%206.9706%206.47662%207.07071%206.72361%206.94721L6.27639%206.05279ZM6.52766%206.48617L6.30405%206.03896L6.52766%206.48617ZM7.23634%207.05465L7.72141%207.17592L7.23634%207.05465ZM6.76366%208.94535L6.27859%208.82408L6.76366%208.94535ZM7.47234%209.51383L7.69595%209.96104L7.69595%209.96104L7.47234%209.51383ZM7.72361%209.94721C7.9706%209.82371%208.07071%209.52337%207.94721%209.27639C7.82371%209.0294%207.52337%208.92929%207.27639%209.05279L7.72361%209.94721ZM12.5%207C12.5%2010.0376%2010.0376%2012.5%207%2012.5V13.5C10.5899%2013.5%2013.5%2010.5899%2013.5%207H12.5ZM7%2012.5C3.96243%2012.5%201.5%2010.0376%201.5%207H0.5C0.5%2010.5899%203.41015%2013.5%207%2013.5V12.5ZM1.5%207C1.5%203.96243%203.96243%201.5%207%201.5V0.5C3.41015%200.5%200.5%203.41015%200.5%207H1.5ZM7%201.5C10.0376%201.5%2012.5%203.96243%2012.5%207H13.5C13.5%203.41015%2010.5899%200.5%207%200.5V1.5ZM7%205H7.005V4H7V5ZM6.505%204.5V4.505H7.505V4.5H6.505ZM7.005%204.005H7V5.005H7.005V4.005ZM7.5%204.505V4.5H6.5V4.505H7.5ZM6.72361%206.94721L6.75127%206.93338L6.30405%206.03896L6.27639%206.05279L6.72361%206.94721ZM6.75127%206.93338L6.27859%208.82408L7.24873%209.06662L7.72141%207.17592L6.75127%206.93338ZM7.69595%209.96104L7.72361%209.94721L7.27639%209.05279L7.24873%209.06662L7.69595%209.96104ZM6.27859%208.82408C6.07138%209.65293%206.93179%2010.3431%207.69595%209.96104L7.24873%209.06662L6.27859%208.82408ZM6.75127%206.93338L7.72141%207.17592C7.92862%206.34708%207.06821%205.65688%206.30405%206.03896L6.75127%206.93338Z%22%20fill%3D%22%233C3C43%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%207.5L6.5%209L9%205.5M13%207C13%2010.3137%2010.3137%2013%207%2013C3.68629%2013%201%2010.3137%201%207C1%203.68629%203.68629%201%207%201C10.3137%201%2013%203.68629%2013%207Z%22%20stroke%3D%22%2334C759%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M7%205V7.5M13%207C13%2010.3137%2010.3137%2013%207%2013C3.68629%2013%201%2010.3137%201%207C1%203.68629%203.68629%201%207%201C10.3137%201%2013%203.68629%2013%207ZM7%209.5H7.005V9.505H7V9.5Z%22%20stroke%3D%22%23F8CE52%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E\"","import React, { useCallback } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { Icon } from './components/icon';\nimport { Label } from './components/label';\n\nexport interface BreadcrumbsProps {\n steps: string[];\n activeStepIndex: number;\n orientation?: 'horizontal' | 'vertical';\n}\n\n/**\n * A functional React component utilized to render the `Breadcrumbs` component.\n *\n * The component will render a list of steps, based on the `steps` array, displaying the completed,\n * active, and incomplete steps. The orientation of the component may be either `horizontal` or\n * `vertical`.\n */\nexport const Breadcrumbs: React.FC<BreadcrumbsProps> = ({\n steps,\n activeStepIndex,\n orientation,\n}) => {\n const getStatus = useCallback(\n (stepIndex: number) => {\n if (activeStepIndex > stepIndex) return 'complete';\n if (activeStepIndex < stepIndex) return 'inactive';\n return 'active';\n },\n [activeStepIndex]\n );\n\n return (\n <Flex flexDir={orientation === 'horizontal' ? 'row' : 'column'}>\n {steps.map((step, idx) => (\n <Flex\n alignItems=\"center\"\n pr={orientation === 'horizontal' ? '16px' : 0}\n py=\"4px\"\n >\n <Icon step={idx + 1} status={getStatus(idx)} />\n <Label label={step} />\n </Flex>\n ))}\n </Flex>\n );\n};\n","import React, { PropsWithChildren } from 'react';\nimport { FieldValues, FormProvider } from 'react-hook-form';\nimport { FormHandler } from '../../components/form/hooks/useFormHandler';\n\nexport interface FormProps<T extends FieldValues> {\n formHandler: FormHandler<T>;\n}\n\n/**\n * A functional React component utilized to render the `Form` component, a form wrapper for\n * `react-hook-form`. The `Form` component is provided a `formHandler` and is used to wrap a container\n * that contains a `FormSection` component.\n */\nexport function Form<T extends FieldValues>({\n formHandler,\n children,\n}: PropsWithChildren<FormProps<T>>) {\n const { form, onSubmit } = formHandler;\n\n return (\n <FormProvider {...form}>\n <form onSubmit={onSubmit}>{children}</form>\n </FormProvider>\n );\n}\n","import { SimpleGrid } from '@chakra-ui/react';\nimport React from 'react';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { Input } from '../../input';\nimport { FormInput, FormStructure } from '../FormTypes';\n\n/**\n * @param T - represents the key/section in the `FormStructure`.\n * @param U - is the form value types for the `useFormHandler` hook.\n *\n * @param formStructure - the form of type form structure with their respective `FormSteps`.\n * @param section - the section (`FormStep`) we want to generate a section for.\n * @param form - the overall form containing methods (generated by `useFormHandler` hook).\n */\nexport interface FormSectionProps<\n T extends string | number | symbol,\n U extends FieldValues\n> {\n formStructure: FormStructure<T>;\n section: T;\n form: UseFormReturn<U>;\n className?: string;\n columns?: number;\n spacing?: number;\n}\n\n/**\n *\n * @param props - of type `FormSectionProps<T, U>` where `T` represents the key in `FormSteps`,\n * can be generic key but is represented by value in `FormSteps` and `U` is the form value types for the\n * `useFormHandler` hook.\n *\n * @returns a list of input's for a specific form section.\n */\nexport function FormSection<\n T extends string | number | symbol,\n U extends FieldValues\n>({\n formStructure,\n section,\n form,\n className,\n columns = 1,\n spacing = 0,\n}: FormSectionProps<T, U>) {\n return (\n <SimpleGrid\n columns={columns}\n spacing={spacing}\n className={`form-section ${className ?? ''}`}\n >\n {formStructure[section].map(\n ({\n label,\n inputType,\n name,\n options,\n isRequired,\n maxLength,\n ariaLabel,\n disabled,\n defaultValue,\n }: FormInput) => (\n <Input<U>\n control={form.control}\n label={label}\n inputType={inputType}\n name={name}\n ariaLabel={ariaLabel}\n disabled={disabled}\n options={options}\n isRequired={isRequired}\n maxLength={maxLength}\n isInvalid={!!form.formState.errors[name]}\n defaultValue={defaultValue}\n setValue={form.setValue}\n setError={form.setError}\n clearErrors={form.clearErrors}\n />\n )\n )}\n </SimpleGrid>\n );\n}\n","import React from 'react';\nimport { Button, Text, Icon } from '@chakra-ui/react';\nimport GoogleLogo from './assets/GoogleLogo.svg';\n\nexport interface GoogleButtonProps {\n onClick: () => void;\n}\n\n/**\n * A functional React component utilized to render the `GoogleButton` component\n */\nexport const GoogleButton: React.FC<GoogleButtonProps> = ({ onClick }) => {\n return (\n <Button\n onClick={onClick}\n variant=\"plain\"\n size=\"lg\"\n borderRadius=\"2px\"\n aria-label=\"google-login-button\"\n className=\"google-button\"\n px={4}\n leftIcon={<Icon as={GoogleLogo} width={18} height={18} mr={3} />}\n fontFamily=\"Roboto, sans-serif\"\n fontWeight=\"500\"\n fontSize={14}\n backgroundColor=\"white\"\n boxShadow=\"rgba(0, 0, 0, 0.24) 0px 0px 1px 0px, rgba(0, 0, 0, 0.24) 0px 2px 2px 0px\"\n >\n <Text color=\"rgba(0, 0, 0, 0.54)\">{'Sign in with Google'}</Text>\n </Button>\n );\n};\n","export default \"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20533.5%20544.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20%20%20%20d%3D%22M533.5%20278.4c0-18.5-1.5-37.1-4.7-55.3H272.1v104.8h147c-6.1%2033.8-25.7%2063.7-54.4%2082.7v68h87.7c51.5-47.4%2081.1-117.4%2081.1-200.2z%22%20%20%20%20fill%3D%22%234285f4%22%20%20%2F%3E%3Cpath%20%20%20%20d%3D%22M272.1%20544.3c73.4%200%20135.3-24.1%20180.4-65.7l-87.7-68c-24.4%2016.6-55.9%2026-92.6%2026-71%200-131.2-47.9-152.8-112.3H28.9v70.1c46.2%2091.9%20140.3%20149.9%20243.2%20149.9z%22%20%20%20%20fill%3D%22%2334a853%22%20%20%2F%3E%3Cpath%20%20%20%20d%3D%22M119.3%20324.3c-11.4-33.8-11.4-70.4%200-104.2V150H28.9c-38.6%2076.9-38.6%20167.5%200%20244.4l90.4-70.1z%22%20%20%20%20fill%3D%22%23fbbc04%22%20%20%2F%3E%3Cpath%20%20%20%20d%3D%22M272.1%20107.7c38.8-.6%2076.3%2014%20104.4%2040.8l77.7-77.7C405%2024.6%20339.7-.8%20272.1%200%20169.2%200%2075.1%2058%2028.9%20150l90.4%2070.1c21.5-64.5%2081.8-112.4%20152.8-112.4z%22%20%20%20%20fill%3D%22%23ea4335%22%20%20%2F%3E%3C%2Fsvg%3E\"","import React, { ReactNode, useState } from 'react';\nimport {\n Box,\n Collapse,\n Flex,\n Grid,\n GridItem,\n IconButton,\n useMediaQuery,\n} from '@chakra-ui/react';\nimport { HamburgerIcon, CloseIcon } from '@chakra-ui/icons';\nimport { BorderedBox } from './BorderedBox';\n\nexport interface LayoutProps {\n Navigation?: ReactNode;\n Header?: ReactNode;\n MainContent?: ReactNode;\n navbarWidth?: string;\n}\n\n/**\n * A functional React component utilized to render the `Layout` component\n */\nexport const Layout: React.FC<LayoutProps> = ({\n Navigation,\n Header,\n MainContent,\n navbarWidth = '250px',\n}) => {\n const [isLargerThan1200] = useMediaQuery('(min-width: 1200px)');\n\n const [show, setShow] = useState(false);\n\n return (\n <Grid\n templateAreas={\n isLargerThan1200 ? `\"nav header\" \"nav main\"` : `\"header\" \"main\"`\n }\n gridTemplateRows=\"auto 1fr\"\n gridTemplateColumns={isLargerThan1200 ? `${navbarWidth} 1fr` : '100% 1fr'}\n h=\"100%\"\n width=\"100%\"\n gap=\"4\"\n bg=\"#f5f5f5\"\n >\n <GridItem area=\"header\" p=\"20px 20px 10px 10px\" minHeight=\"100px\">\n <BorderedBox\n borderRadius=\"md\"\n boxShadow=\"rgba(235,237,238,.75) 8px 0 30px 10px\"\n >\n <Flex\n flexDirection=\"column\"\n justifyContent=\"center\"\n width=\"100%\"\n pl={'32px'}\n py={5}\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n {Header}\n {!isLargerThan1200 && (\n <IconButton\n size=\"md\"\n variant=\"unstyled\"\n alignSelf=\"flex-start\"\n aria-label=\"menu\"\n type=\"button\"\n onClick={() => setShow(!show)}\n icon={show ? <CloseIcon /> : <HamburgerIcon />}\n _focus={{\n boxShadow: 'none',\n }}\n />\n )}\n </Flex>\n {!isLargerThan1200 && (\n <Collapse in={show}>\n <Box marginTop={5}>{Navigation}</Box>\n </Collapse>\n )}\n </Flex>\n </BorderedBox>\n </GridItem>\n {isLargerThan1200 && (\n <GridItem area=\"nav\" width={navbarWidth}>\n <BorderedBox boxShadow=\"rgba(0, 0, 0, 0.035) 0px 2px 10px\">\n {Navigation}\n </BorderedBox>\n </GridItem>\n )}\n <GridItem area=\"main\" p=\"0 20px 20px 10px\">\n <BorderedBox\n borderRadius=\"md\"\n boxShadow=\"rgba(0, 0, 0, 0.035) 0px 2px 10px\"\n >\n {MainContent}\n </BorderedBox>\n </GridItem>\n </Grid>\n );\n};\n","import React from 'react';\nimport { Flex, Spinner, Text } from '@chakra-ui/react';\nimport colors from '../../theme/foundations/colors';\n\nexport interface LoadingIndicatorProps {\n size?: 'sm' | 'md' | 'lg' | 'xs' | 'xl';\n text?: string;\n thickness?: string;\n speed?: string;\n className?: string;\n}\n\n/**\n * A functional React component utilized to render the `LoadingIndicator` component\n */\nexport const LoadingIndicator: React.FC<LoadingIndicatorProps> = ({\n size = 'xl',\n text = 'Loading',\n thickness = '3px',\n speed = '0.5s',\n className,\n}) => {\n return (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n aria-label=\"loading-indicator\"\n className={`loading-indicator ${className ?? ''}`}\n >\n <Spinner\n size={size}\n color={colors.fill.action}\n flex=\"none\"\n thickness={thickness}\n speed={speed}\n mb={2}\n />\n {text && (\n <Text fontSize={size} lineHeight=\"shorter\" fontWeight=\"semibold\">\n {text}\n </Text>\n )}\n </Flex>\n );\n};\n","import React from 'react';\nimport { Button, Spinner } from '@chakra-ui/react';\nimport { ButtonProps } from '..';\n\nexport interface SpinnerButtonProps extends ButtonProps {\n isLoading: boolean;\n}\n\n/**\n * A functional React component utilized to render the `SpinnerButton` component\n */\nexport const SpinnerButton: React.FC<SpinnerButtonProps> = ({\n isLoading,\n text,\n onClick,\n type,\n ariaLabel,\n variant = 'primary',\n disabled,\n className,\n}) => {\n return (\n <Button\n spinner={<Spinner size={'sm'} />}\n isLoading={isLoading}\n onClick={onClick}\n type={type}\n variant={variant}\n disabled={disabled}\n aria-label={ariaLabel}\n className={className}\n >\n {text}\n </Button>\n );\n};\n","import React from 'react';\nimport {\n ReadonlyTableColumns,\n TableBody,\n TableColumns,\n TableHeaders,\n} from './TableTypes';\nimport { generateTableColumnsAsConst } from './utils/generateTableColumns';\n\nimport {\n Table as ChakraTable,\n TableContainer,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n} from '@chakra-ui/react';\nimport { TableLoadingRows } from './components/loading';\nimport colors from '../../theme/foundations/colors';\nimport { EmptyTable } from './empty';\n\nexport interface TableProps<T extends ReadonlyTableColumns> {\n columns: TableColumns;\n headers: TableHeaders<T>;\n body: TableBody<T>;\n loading?: boolean;\n loadMore?: () => void;\n placeholder?: string;\n}\n\n/**\n * A React component utilized to render the `Table` component\n */\nexport function Table<T extends ReadonlyTableColumns>({\n columns,\n headers,\n body,\n loading,\n loadMore,\n}: TableProps<T>) {\n const columnsAsConst = generateTableColumnsAsConst(columns);\n\n return (\n <TableContainer border=\"none\" overflowX=\"auto\" bg=\"white\" width=\"100%\">\n {body.length ? (\n <ChakraTable\n variant=\"unstyled\"\n width=\"100%\"\n style={{\n borderCollapse: 'separate',\n borderSpacing: '0px',\n }}\n >\n <Thead>\n <Tr _odd={{ bg: colors.label.primary.dark }}>\n {columnsAsConst.map(column => (\n // @ts-ignore\n <Th>{headers[column]}</Th>\n ))}\n </Tr>\n </Thead>\n <Tbody>\n {body.map(row => (\n <Tr>\n {columnsAsConst.map(column => (\n // @ts-ignore\n <Td>{row[column]}</Td>\n ))}\n </Tr>\n ))}\n </Tbody>\n </ChakraTable>\n ) : (\n <EmptyTable />\n )}\n {loadMore && loading !== undefined && body.length ? (\n <TableLoadingRows isLoading={loading} onLoadMore={loadMore} />\n ) : null}\n </TableContainer>\n );\n}\n","import React, { PropsWithChildren, ReactNode } from 'react';\nimport { Tab, TabList, Tabs } from '@chakra-ui/react';\nimport colors from '../../theme/foundations/colors';\n\nexport interface TabsWrapperProps extends PropsWithChildren {\n navIndex: number;\n setNavIndex: (index: number) => void;\n navItems: ReactNode[];\n}\n\n/**\n * A functional React component utilized to render the `TableNavWrapper` component\n */\nexport const TabsWrapper: React.FC<TabsWrapperProps> = ({\n children,\n navItems,\n navIndex,\n setNavIndex,\n}) => {\n return (\n <Tabs size=\"lg\" variant=\"simple\" index={navIndex} onChange={setNavIndex}>\n <TabList\n flexDirection={{ base: 'column', sm: 'row' }}\n border=\"1px\"\n borderColor={colors.fill.light.quaternary}\n bg=\"white\"\n borderRadius=\"md\"\n borderBottom={0}\n borderBottomLeftRadius={0}\n borderBottomRightRadius={0}\n >\n {navItems.map(navItem => (\n <Tab>{navItem}</Tab>\n ))}\n </TabList>\n {children}\n </Tabs>\n );\n};\n","import React, { PropsWithChildren } from 'react';\nimport { Text as ChakraText, TypographyProps } from '@chakra-ui/react';\nimport textTheme from '../../theme/components/text';\nimport typography from '../../theme/foundations/typography';\nimport colors from '../../theme/foundations/colors';\n\nexport interface TextProps extends PropsWithChildren, TypographyProps {\n variant: keyof typeof textTheme.variants;\n color?: string;\n fontSize?: keyof typeof typography.fontSizes;\n lineHeight?: keyof typeof typography.lineHeights;\n letterSpacing?: keyof typeof typography.letterSpacings;\n fontWeight?: keyof typeof typography.fontWeights;\n className?: string;\n}\n\n/**\n * A functional React component utilized to render the `Text` component. The component is mainly\n * controlled by by the `variant` prop which determines `fontSize`, `fontWeight`, etc.\n * Also extends `TypographyProps`.\n */\nexport const Text: React.FC<TextProps> = ({\n children,\n fontSize,\n lineHeight,\n letterSpacing,\n fontWeight,\n variant,\n color = colors.label.primary.light,\n className,\n}) => {\n return (\n <ChakraText\n fontSize={fontSize}\n lineHeight={lineHeight}\n letterSpacing={letterSpacing}\n fontWeight={fontWeight}\n color={color}\n variant={variant}\n className={`${variant} ${className || ''}`}\n >\n {children}\n </ChakraText>\n );\n};\n","import React from 'react';\nimport { ChakraProvider, ChakraProviderProps } from '@chakra-ui/provider';\nimport customXQChakraTheme from '../customXQChakraTheme';\n\n/**\n * A functional React wrapper component utilized to consume the custom XQ theme via `ChakraProvider`\n */\nexport const XQThemeProvider: React.FC<ChakraProviderProps> = ({\n children,\n cssVarsRoot,\n}) => {\n return (\n <ChakraProvider\n theme={customXQChakraTheme}\n resetCSS\n cssVarsRoot={cssVarsRoot}\n >\n {children}\n </ChakraProvider>\n );\n};\n","/* eslint-disable no-redeclare */\nimport { AxiosError } from 'axios';\n\nexport type ErrorResponse = {\n message: string;\n};\n\nexport function formatErrorResponse(error: AxiosError): ErrorResponse;\nexport function formatErrorResponse(error: Error): ErrorResponse;\nexport function formatErrorResponse(error: any): ErrorResponse {\n // This is an error returned from the backend\n if (error.response?.data?.status) {\n return {\n message: error.response?.data?.status,\n };\n }\n\n // This is any generic error\n if (error instanceof Error) {\n return {\n message: error.message,\n };\n }\n\n // This would happen if a developer threw an error that isn't actually an error class. Don't do that...\n console.error(\n 'Caught an error that is not an instance of an error! Replacing with a proper error but please fix this.',\n error\n );\n\n return {\n message: 'An unknown error has occurred',\n };\n}\n"],"names":["Button","type","variant","React","ChakraButton","onClick","disabled","ariaLabel","className","width","text","colors","label","primary","light","dark","secondary","error","border","focus","default","fill","tertiary","quaternary","success","warning","action","semantic","transparent","current","black","white","lightBlue","coolGray","darkBlue","backdrop","whiteAlpha","50","100","200","300","400","500","600","700","800","900","blackAlpha","gray","red","orange","green","blue","Icon","step","status","getColors","useMemo","bg","color","Flex","boxSize","borderRadius","alignItems","justifyContent","Text","fontSize","Label","Box","pl","StackedCheckbox","forwardRef","_ref","defaultValue","Checkbox","ref","value","String","defaultChecked","Boolean","StackedInput","isRequired","rightElement","leftElement","props","InputGroup","Input","StackedRadioGroup","flexDirection","RadioGroup","name","id","options","map","option","mr","key","Radio","Dropdown","onSelectItem","dropdownRef","position","optionIndex","DropdownContent","idx","fontWeight","px","whiteSpace","my","borderTop","borderColor","cursor","py","_hover","scrollMargin","backdropFilter","backdropBlur","mt","maxH","overflowY","top","undefined","bottom","minWidth","zIndex","tabIndex","useOnClickOutside","handler","useEffect","listener","event","contains","target","document","addEventListener","removeEventListener","_path","StackedSelect","func","deps","didMount","setValue","handleOnChange","useRef","dropdownMenuRef","useState","isFocussed","setIsFocussed","find","_options$find","selectedOption","setSelectedOption","setOptionIndex","setPosition","searchValue","setSearchValue","debouncedSearchValue","setDebouncedSearchValue","boundingClientRect","_dropdownRef$current","getBoundingClientRect","_dropdownRef$current2","window","innerHeight","y","_options$find2","length","findIndex","substring","toLowerCase","scrollTo","behavior","updateSearchValue","debounce","val","textShadow","autoComplete","onChange","e","update","concat","onKeyDown","initialOptionIndex","_dropdownMenuRef$curr","_dropdownMenuRef$curr2","_","shouldDirty","shouldValidate","InputRightElement","Image","src","SubtractIcon","alt","handleOnSelectItem","StackedTextarea","Textarea","_extends","Object","assign","bind","i","arguments","source","prototype","hasOwnProperty","call","apply","this","Memo","memo","React.createElement","viewBox","xmlns","fillRule","clipRule","d","fillOpacity","Token","onDelete","backgroundColor","w","h","pr","truncate","trim","omission","CloseIcon","height","StackedMultiSelect","placeholder","watchedValue","useWatch","control","scrollRef","inputRef","localValues","setLocalValues","localOptions","setLocalOptions","shouldSideScroll","setShouldSideScroll","console","log","left","_scrollRef$current","scrollWidth","split","filter","handleChange","newValue","join","prevLocalOptions","prevLocalOption","prevLocalValues","overflowX","style","scrollbarWidth","msOverflowStyle","sx","::-webkit-scrollbar","display","localValue","sort","a","b","sortValue","prevLocalValue","handleDelete","padding","_focus","boxShadow","StackedPilledInput","clearErrors","lastestFormValueToArray","setLatestFormValueToArray","inputWrapperRef","tokenIndex","setTokenIndex","setLocalValue","latestTokenElement","getElementById","scrollIntoView","block","inline","useOutsideClick","filteredUniqueValues","Array","from","Set","toString","replace","maxWidth","index","stopPropagation","preventDefault","onRemoveTag","flex","prevTokenIndex","tokenElement","scrollBy","alignContent","float","onFocus","onBlur","StackedSwitch","Switch","mx","checked","tooltipText","FormLabel","ml","Tooltip","placement","QuestionOutlineIcon","inputType","helperText","isInvalid","errorText","maxLength","setError","Controller","rules","required","render","field","fieldOnChange","FormControl","StackedCheckBox","selectedInputField","FormErrorMessage","FormHelperText","BorderedBox","children","typography","letterSpacings","tighter","tight","normal","wide","wider","widest","lineHeights","none","shorter","short","base","tall","taller","3","4","5","6","7","8","9","10","fontWeights","hairline","thin","medium","semibold","bold","extrabold","fonts","mono","fontSizes","xs","sm","md","lg","xl","2xl","3xl","4xl","5xl","6xl","TableLoadingRows","onLoadMore","direction","borderTopColor","isLoading","Spinner","size","IconButton","icon","HiOutlineRefresh","shadow","EmptyTable","getOpacity","ChakraTable","borderCollapse","borderSpacing","Tbody","Tr","Td","opacity","breakpoints","createBreakpoints","shadows","insetOutline","outline","outlineDanger600","inner","dark-lg","parts","baseStyle","container","description","textAlign","lineHeight","variants","positive","neutral","defaultProps","textTransform","solid","c","colorScheme","theme","transparentize","mode","subtle","darkBg","darkColor","lightColor","getColor","defineStyle","bgGradient","_disabled","pointerEvents","_active","outlineOffset","variantPrimary","variantSecondary","::placeholder","sidebar","transition","textDecoration","&.active","sidebarExact","subNavigation","mb","navlink","baseStyleInput","appearance","paddingBottom","> option","baseStyleTrack","p","_checked","baseStyleThumb","transform","baseStyleRoot","orientation","baseStyleTab","isFitted","baseStyleTablist","align","end","center","start","baseStyleTabpanel","fontFamily","letterSpacing","header","subheader","paragraph","customXQChakraTheme","extendTheme","components","Alert","Badge","Code","Form","requiredIndicator","FormError","Link","Select","track","thumb","sizes","Table","thead","th","tr","_odd","td","_first","borderTopLeftRadius","borderBottomLeftRadius","_last","borderTopRightRadius","borderBottomRightRadius","Tabs","root","tab","tablist","tabpanel","line","isVertical","borderProp","marginProp","_selected","_after","content","right","enclosed","borderTopRadius","borderBottomColor","borderBottom","enclosed-colored","_notLast","soft-rounded","solid-rounded","unstyled","simple","paddingY","paddingX","styles","global","html, body, #root","body","overflow","*, *::before, *::after","*::placeholder","message","buttonText","AlertDescription","pt","steps","activeStepIndex","getStatus","useCallback","stepIndex","flexDir","formHandler","onSubmit","FormProvider","form","columns","spacing","SimpleGrid","formStructure","section","formState","errors","leftIcon","as","Navigation","Header","MainContent","navbarWidth","isLargerThan1200","useMediaQuery","show","setShow","Grid","templateAreas","gridTemplateRows","gridTemplateColumns","gap","GridItem","area","minHeight","alignSelf","HamburgerIcon","Collapse","in","marginTop","thickness","speed","spinner","headers","loading","loadMore","columnsAsConst","TableContainer","Thead","column","Th","row","navIndex","setNavIndex","TabList","navItems","navItem","Tab","ChakraText","ChakraProvider","resetCSS","cssVarsRoot","response","_error$response","data","_error$response$data","_error$response2","_error$response2$data","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui-core.cjs.production.min.js","sources":["../src/components/button/index.tsx","../src/theme/foundations/colors.ts","../src/components/breadcrumbs/components/icon/index.tsx","../src/components/breadcrumbs/components/label/index.tsx","../src/components/input/StackedCheckbox/StackedCheckbox.tsx","../src/components/input/StackedInput/StackedInput.tsx","../src/components/input/StackedRadio/StackedRadioGroup.tsx","../src/components/input/StackedSelect/assets/svg/subtract.svg","../src/components/input/components/dropdown/index.tsx","../src/hooks/useOnOutsideClick.tsx","../src/components/input/components/token/assets/svg/close.svg","../src/components/input/StackedSelect/index.tsx","../src/hooks/useDidMountEffect.tsx","../src/components/input/StackedTextarea/StackedTextarea.tsx","../src/components/input/components/token/index.tsx","../src/components/input/StackedMultiSelect/index.tsx","../src/components/input/StackedPilledInput/index.tsx","../src/components/input/StackedSwitch/index.tsx","../src/components/input/components/label/index.tsx","../src/components/input/index.tsx","../src/components/layout/BorderedBox/index.tsx","../src/theme/foundations/typography.ts","../src/components/table/components/loading/index.tsx","../src/components/table/empty/index.tsx","../src/theme/foundations/breakpoints.ts","../src/theme/foundations/shadows.ts","../src/theme/components/alert.ts","../src/theme/components/badge.ts","../src/theme/components/button.ts","../src/theme/components/input.ts","../src/theme/components/link.ts","../src/theme/components/select.ts","../src/theme/components/switch.ts","../src/theme/components/tabs.ts","../src/theme/components/text.ts","../src/theme/customXQChakraTheme.ts","../src/theme/components/code.ts","../src/theme/components/form.ts","../src/theme/components/form-error.ts","../src/theme/components/form-label.ts","../src/theme/components/table.ts","../src/theme/components/textarea.ts","../src/theme/styles.ts","../src/components/banner/index.tsx","../src/components/banner/assets/svg/error.svg","../src/components/banner/assets/svg/neutral.svg","../src/components/banner/assets/svg/positive.svg","../src/components/banner/assets/svg/warning.svg","../src/components/breadcrumbs/index.tsx","../src/components/form/index.tsx","../src/components/form/section/index.tsx","../src/components/button/google/index.tsx","../src/components/button/google/assets/GoogleLogo.svg","../src/components/layout/index.tsx","../src/components/loading/index.tsx","../src/components/button/spinner/index.tsx","../src/components/table/index.tsx","../src/components/tabs/index.tsx","../src/components/text/index.tsx","../src/theme/provider/index.tsx","../src/components/form/utils/formErrors.ts"],"sourcesContent":["import React from 'react';\nimport { Button as ChakraButton } from '@chakra-ui/react';\nimport buttonTheme from '../../theme/components/button';\n\nexport interface ButtonProps {\n text: string;\n onClick?: () => void;\n width: 'variable' | 'fixed';\n variant?: keyof typeof buttonTheme.variants;\n type?: 'button' | 'submit' | 'reset';\n ariaLabel: string;\n disabled?: boolean;\n className?: string;\n}\n\n/**\n * A functional React component utilized to render the `Button` component\n */\nexport const Button: React.FC<ButtonProps> = ({\n onClick,\n text,\n type = 'button',\n ariaLabel,\n variant = 'primary',\n disabled,\n className,\n width,\n}) => {\n return (\n <ChakraButton\n onClick={onClick}\n type={type}\n variant={variant}\n disabled={disabled}\n aria-label={ariaLabel}\n className={className}\n width={width === 'fixed' ? '100%' : 'fit-content'}\n >\n {text}\n </ChakraButton>\n );\n};\n","export interface ColorHues {\n 50: string;\n 100: string;\n 200: string;\n 300: string;\n 400: string;\n 500: string;\n 600: string;\n 700: string;\n 800: string;\n 900: string;\n}\n\nconst blue: ColorHues = {\n 50: 'hsl(209, 100%, 95%)',\n 100: 'hsl(209, 100%, 90%)',\n 200: 'hsl(209, 100%, 80%)',\n 300: 'hsl(209, 100%, 70%)',\n 400: 'hsl(209, 100%, 60%)',\n 500: 'hsl(209, 100%, 50%)',\n 600: 'hsl(209, 100%, 40%)',\n 700: 'hsl(209, 100%, 30%)',\n 800: 'hsl(209, 100%, 20%)',\n 900: 'hsl(209, 100%, 10%)',\n};\n\nconst red: ColorHues = {\n 50: 'hsl(0, 100%, 98%)',\n 100: 'hsl(0, 95%, 92%)',\n 200: 'hsl(0, 97%, 85%)',\n 300: 'hsl(0, 95%, 75%)',\n 400: 'hsl(0, 88%, 68%)',\n 500: 'hsl(0, 76%, 57%)',\n 600: 'hsl(0, 61%, 48%)',\n 700: 'hsl(0, 56%, 39%)',\n 800: 'hsl(0, 54%, 33%)',\n 900: 'hsl(357, 62%, 24%)',\n};\n\nconst orange: ColorHues = {\n 50: 'hsl(40, 100%, 97%)',\n 100: 'hsl(39, 96%, 89%)',\n 200: 'hsl(38, 93%, 77%)',\n 300: 'hsl(33, 90%, 65%)',\n 400: 'hsl(27, 84%, 57%)',\n 500: 'hsl(24, 75%, 50%)',\n 600: 'hsl(20, 71%, 44%)',\n 700: 'hsl(16, 65%, 37%)',\n 800: 'hsl(14, 61%, 30%)',\n 900: 'hsl(14, 60%, 25%)',\n};\n\nconst green: ColorHues = {\n 50: 'hsl(140, 60%, 96%)',\n 100: 'hsl(141, 65%, 92%)',\n 200: 'hsl(141, 63%, 88%)',\n 300: 'hsl(141, 64%, 80%)',\n 400: 'hsl(140, 64%, 73%)',\n 500: 'hsl(140, 64%, 61%)',\n 600: 'hsl(140, 42%, 48%)',\n 700: 'hsl(140, 42%, 36%)',\n 800: 'hsl(141, 42%, 24%)',\n 900: 'hsl(138, 42%, 6%)',\n};\n\nconst label = {\n primary: { light: '#000000', dark: '#FFFFFF' },\n secondary: { light: '#3C3C4399' },\n error: '#FF0000',\n};\n\nconst border = {\n focus: '#3A6CD980',\n default: '#9999991A',\n};\n\nconst fill = {\n light: {\n primary: '#74748033',\n secondary: '#74748029',\n tertiary: '#7474801F',\n quaternary: ':#7474800D',\n },\n success: '#d8f1b8',\n error: '#ffbdb9',\n warning: '#ffefb4',\n action: '#0082ff',\n};\n\nconst semantic = {\n action: '#488ef7',\n success: '#5fcf65',\n warning: '#f8c352',\n error: '#f96057',\n};\n\nexport const colors = {\n label,\n border,\n fill,\n semantic,\n transparent: 'transparent',\n current: 'currentColor',\n black: '#000000',\n white: '#FFFFFF',\n lightBlue: '#29abe2',\n coolGray: '#F6F7FB',\n darkBlue: '#292f4c',\n backdrop: '#fbfcff',\n whiteAlpha: {\n 50: 'rgba(255, 255, 255, 0.04)',\n 100: 'rgba(255, 255, 255, 0.06)',\n 200: 'rgba(255, 255, 255, 0.08)',\n 300: 'rgba(255, 255, 255, 0.16)',\n 400: 'rgba(255, 255, 255, 0.24)',\n 500: 'rgba(255, 255, 255, 0.36)',\n 600: 'rgba(255, 255, 255, 0.48)',\n 700: 'rgba(255, 255, 255, 0.64)',\n 800: 'rgba(255, 255, 255, 0.80)',\n 900: 'rgba(255, 255, 255, 0.92)',\n },\n\n blackAlpha: {\n 50: 'rgba(0, 0, 0, 0.04)',\n 100: 'rgba(0, 0, 0, 0.06)',\n 200: 'rgba(0, 0, 0, 0.08)',\n 300: 'rgba(0, 0, 0, 0.16)',\n 400: 'rgba(0, 0, 0, 0.24)',\n 500: 'rgba(0, 0, 0, 0.36)',\n 600: 'rgba(0, 0, 0, 0.48)',\n 700: 'rgba(0, 0, 0, 0.64)',\n 800: 'rgba(0, 0, 0, 0.80)',\n 900: 'rgba(0, 0, 0, 0.92)',\n },\n\n gray: {\n 50: 'hsl(240, 3%, 94%)',\n 100: 'hsl(210, 3%, 87%)',\n 200: 'hsl(220, 4%, 69%)', // #ADAFB3\n 300: 'hsl(225, 4%, 56%)',\n 400: 'hsl(222, 4%, 44%)',\n 500: 'hsl(224, 6%, 38%)',\n 600: 'hsl(227, 6%, 30%)',\n 700: 'hsl(230, 5%, 23%)', // #38393E\n 800: 'hsl(216, 6%, 15%)',\n 900: 'hsl(240, 5%, 4%)',\n },\n\n red,\n orange,\n green,\n blue,\n};\n\nexport type Colors = typeof colors;\n\nexport default colors as Colors;\n","import React, { useMemo } from 'react';\nimport { Flex, Text } from '@chakra-ui/react';\nimport colors from '../../../../theme/foundations/colors';\n\nexport interface IconProps {\n step: number;\n status: 'complete' | 'active' | 'inactive';\n}\n\n/**\n * A functional React component utilized to render the `Icon` for the `Breadcrumbs` component.\n */\nexport const Icon: React.FC<IconProps> = ({ step, status }) => {\n const getColors = useMemo(() => {\n switch (status) {\n case 'active':\n return { bg: '#0082FF', color: colors.label.primary.dark };\n case 'complete':\n return { bg: '#7474800D', color: colors.label.primary.light };\n case 'inactive':\n return { bg: '#7474800D', color: colors.label.primary.light };\n }\n }, [status]);\n\n return (\n <Flex\n boxSize=\"20px\"\n bg={getColors.bg}\n borderRadius=\"100%\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Text fontSize=\"12px\" color={getColors.color}>\n {step}\n </Text>\n </Flex>\n );\n};\n","import React from 'react';\nimport { Box, Text } from '@chakra-ui/react';\nimport colors from '../../../../theme/foundations/colors';\n\nexport interface LabelProps {\n label: string;\n}\n\n/**\n * A functional React component utilized to render the `Label` for the `Breadcrumbs` component.\n */\nexport const Label: React.FC<LabelProps> = ({ label }) => {\n return (\n <Box pl=\"8px\">\n <Text color={colors.label.primary.light} fontSize=\"13px\">\n {label}\n </Text>\n </Box>\n );\n};\n","import React from 'react';\nimport { Checkbox } from '@chakra-ui/react';\nimport { SelectFieldProps } from '../InputTypes';\n\nexport interface StackedCheckboxProps extends SelectFieldProps {\n label: string;\n}\n\n/**\n * A functional React component utilized to render the `StackedCheckbox` component.\n */\nconst StackedCheckbox = React.forwardRef<\n HTMLInputElement,\n StackedCheckboxProps\n>(({ value, label, defaultValue }, _ref) => {\n return (\n <Checkbox\n ref={_ref}\n value={String(value)}\n defaultChecked={Boolean(defaultValue)}\n >\n {label}\n </Checkbox>\n );\n});\n\nexport default StackedCheckbox;\n","import React from 'react';\nimport { Input, InputGroup } from '@chakra-ui/react';\nimport { InputFieldProps } from '../InputTypes';\n\nexport interface StackedInputProps extends InputFieldProps {\n isRequired?: boolean;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n}\n\n/**\n * A functional React component utilized to render the `StackedInput` component.\n */\nconst StackedInput = React.forwardRef<HTMLInputElement, StackedInputProps>(\n (\n { type = 'text', isRequired, rightElement, leftElement, ...props },\n _ref\n ) => {\n return (\n <InputGroup>\n {leftElement && leftElement}\n <Input type={type} isRequired={isRequired} {...props} ref={_ref} />\n {rightElement && rightElement}\n </InputGroup>\n );\n }\n);\n\nexport default StackedInput;\n","import React from 'react';\nimport { Flex, InputGroup, Radio, RadioGroup } from '@chakra-ui/react';\nimport { FieldOptions, SelectFieldProps } from '../InputTypes';\n\nexport interface StackedRadioGroupProps extends SelectFieldProps {\n flexDirection?: 'row' | 'column';\n\n options: FieldOptions;\n}\n\n/**\n * A functional React component utilized to render the `StackedRadio` component.\n */\nconst StackedRadioGroup = React.forwardRef<\n HTMLInputElement,\n StackedRadioGroupProps\n>(({ id, flexDirection = 'row', options }, _ref) => {\n return (\n <InputGroup>\n <RadioGroup name={id}>\n {options.map(option => (\n <Flex\n mr=\"30px\"\n alignItems=\"center\"\n key={option.value}\n flexDirection={flexDirection}\n >\n <Radio ref={_ref} value={option.value}>\n {option.label}\n </Radio>\n </Flex>\n ))}\n </RadioGroup>\n </InputGroup>\n );\n});\n\nexport default StackedRadioGroup;\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M2%2012C0.89543%2012%20-3.91405e-08%2011.1046%20-8.74228e-08%2010L-4.37114e-07%202C-4.85396e-07%200.895431%200.89543%20-3.91405e-08%202%20-8.74228e-08L10%20-4.37114e-07C11.1046%20-4.85396e-07%2012%200.89543%2012%202L12%2010C12%2011.1046%2011.1046%2012%2010%2012L2%2012ZM6%202.5C6.13261%202.5%206.25979%202.55268%206.35355%202.64645L7.85355%204.14645C8.04881%204.34171%208.04881%204.65829%207.85355%204.85355C7.65829%205.04882%207.34171%205.04882%207.14645%204.85355L6%203.70711L4.85355%204.85355C4.65829%205.04882%204.34171%205.04882%204.14645%204.85355C3.95118%204.65829%203.95118%204.34171%204.14645%204.14645L5.64645%202.64645C5.74021%202.55268%205.86739%202.5%206%202.5ZM5.64645%209.35355C5.74021%209.44732%205.86739%209.5%206%209.5C6.13261%209.5%206.25978%209.44732%206.35355%209.35355L7.85355%207.85355C8.04882%207.65829%208.04882%207.34171%207.85355%207.14645C7.65829%206.95118%207.34171%206.95118%207.14645%207.14645L6%208.29289L4.85355%207.14645C4.65829%206.95118%204.34171%206.95118%204.14645%207.14645C3.95118%207.34171%203.95118%207.65829%204.14645%207.85355L5.64645%209.35355Z%22%20fill%3D%22%230082FF%22%2F%3E%3C%2Fsvg%3E\"","import React, { RefObject, useMemo } from 'react';\nimport { Box, Flex } from '@chakra-ui/react';\nimport colors from '../../../../../src/theme/foundations/colors';\nimport { FieldOption, FieldOptions } from '../../InputTypes';\n\nexport interface DropdownProps {\n onSelectItem: (option: FieldOption) => void;\n options: FieldOptions;\n dropdownRef: RefObject<HTMLDivElement>;\n position: 'top' | 'bottom';\n optionIndex?: number | null;\n}\n\n/**\n * A functional React component utilized to render the `Dropdown` component\n */\nexport const Dropdown: React.FC<DropdownProps> = ({\n onSelectItem,\n options,\n dropdownRef,\n position,\n optionIndex,\n}) => {\n const DropdownContent = useMemo(() => {\n return options.map((option, idx) => (\n <>\n {option.value === 'section_header' &&\n options[idx + 1] &&\n options[idx + 1].value !== 'section_header' && (\n <Box\n color={colors.label.secondary.light}\n fontSize=\"13px\"\n width=\"fit-content\"\n fontWeight=\"bold\"\n px=\"8px\"\n bg=\"inherit\"\n whiteSpace=\"nowrap\"\n >\n {idx > 0 && (\n <Box\n width=\"100%\"\n my=\"3px\"\n borderTop=\"2px solid\"\n borderColor={colors.border.default}\n />\n )}\n {option.label}\n </Box>\n )}\n {option.value !== 'section_header' && (\n <Box\n cursor=\"pointer\"\n borderRadius=\"inherit\"\n onClick={() => onSelectItem(option)}\n key={option.value}\n fontSize=\"13px\"\n px=\"8px\"\n py=\"4px\"\n width=\"100%\"\n color={\n optionIndex === idx\n ? colors.label.primary.dark\n : colors.label.primary.light\n }\n _hover={{\n color: colors.label.primary.dark,\n bg: colors.fill.action,\n borderRadius: '4px',\n width: '100%',\n }}\n bg={optionIndex === idx ? colors.fill.action : 'inherit'}\n whiteSpace=\"nowrap\"\n id={option.value}\n >\n {option.label}\n </Box>\n )}\n </>\n ));\n }, [onSelectItem, optionIndex, options]);\n\n return (\n <Flex\n flexDirection=\"column\"\n ref={dropdownRef}\n scrollMargin=\"15px\"\n bg={colors.fill.light.quaternary}\n backdropFilter=\"auto\"\n backdropBlur=\"64px\"\n borderRadius=\"4px\"\n border=\"0.25px solid\"\n borderColor={colors.fill.light.tertiary}\n mt=\"3px\"\n maxH=\"240px\"\n overflowY=\"auto\"\n px=\"8px\"\n py=\"4px\"\n position=\"absolute\"\n top={position === 'top' ? 26 : undefined}\n bottom={position === 'bottom' ? 30 : undefined}\n width=\"fit-content\"\n minWidth=\"100%\"\n zIndex={100}\n tabIndex={-2000}\n >\n {DropdownContent}\n </Flex>\n );\n};\n","import { RefObject, useEffect } from 'react';\n\nexport function useOnClickOutside(ref: RefObject<any>, handler: () => void) {\n useEffect(\n () => {\n const listener: EventListener = event => {\n // Do nothing if clicking ref's element or descendent elements\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n },\n // Add ref and handler to effect dependencies\n // It's worth noting that because passed in handler is a new ...\n // ... function on every render that will cause this effect ...\n // ... callback/cleanup to run every render. It's not a big deal ...\n // ... but to optimize you can wrap handler in useCallback before ...\n // ... passing it into this hook.\n [ref, handler]\n );\n}\n","export default \"data:image/svg+xml,%3Csvg%20%20viewBox%3D%220%200%2056%2056%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M27.9995%2056C43.4635%2056%2055.9995%2043.464%2055.9995%2028C55.9995%2012.536%2043.4635%200%2027.9995%200C12.5355%200%20-0.000488281%2012.536%20-0.000488281%2028C-0.000488281%2043.464%2012.5355%2056%2027.9995%2056ZM21.9807%2018.2688C20.9555%2017.2437%2019.2935%2017.2437%2018.2684%2018.2688C17.2432%2019.294%2017.2432%2020.956%2018.2684%2021.9812L24.2872%2028L18.2684%2034.0188C17.2432%2035.044%2017.2432%2036.706%2018.2684%2037.7312C19.2935%2038.7563%2020.9555%2038.7563%2021.9807%2037.7312L27.9995%2031.7123L34.0184%2037.7312C35.0435%2038.7563%2036.7055%2038.7563%2037.7307%2037.7312C38.7558%2036.706%2038.7558%2035.044%2037.7307%2034.0188L31.7118%2028L37.7307%2021.9812C38.7558%2020.956%2038.7558%2019.294%2037.7307%2018.2688C36.7055%2017.2437%2035.0435%2017.2437%2034.0184%2018.2688L27.9995%2024.2877L21.9807%2018.2688Z%22%20fill%3D%22%233C3C43%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E\"","import React, {\n KeyboardEventHandler,\n useEffect,\n useRef,\n useMemo,\n useState,\n} from 'react';\nimport {\n Box,\n Image,\n Input,\n InputGroup,\n InputRightElement,\n} from '@chakra-ui/react';\nimport { FieldOptions } from '../InputTypes';\nimport { StackedInputProps } from '../StackedInput/StackedInput';\nimport colors from '../../../theme/foundations/colors';\nimport { UseFormSetValue, FieldValues, Control } from 'react-hook-form';\nimport SubtractIcon from './assets/svg/subtract.svg';\nimport { Dropdown } from '../components/dropdown';\nimport useDidMountEffect from '../../../hooks/useDidMountEffect';\nimport { useOnClickOutside } from '../../../hooks/useOnOutsideClick';\nimport { debounce } from 'lodash';\n\nexport interface StackedSelectProps extends StackedInputProps {\n options: FieldOptions;\n setValue: UseFormSetValue<FieldValues>;\n control: Control<FieldValues, any>;\n handleOnChange: (value?: string) => void;\n}\n\n/**\n * A functional React component utilized to render the `StackedSelect` component.\n */\nconst StackedSelect = React.forwardRef<HTMLInputElement, StackedSelectProps>(\n (\n {\n isRequired,\n options,\n name,\n setValue,\n handleOnChange,\n disabled,\n value,\n ...props\n },\n _ref\n ) => {\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownMenuRef = useRef<HTMLDivElement>(null);\n\n const [isFocussed, setIsFocussed] = useState(false);\n const [selectedOption, setSelectedOption] = useState(\n options.find(option => option.value === value)?.label ?? ''\n );\n const [optionIndex, setOptionIndex] = useState<number | null>(null);\n const [position, setPosition] = useState<'top' | 'bottom'>('top');\n const [searchValue, setSearchValue] = useState('');\n const [debouncedSearchValue, setDebouncedSearchValue] = useState('');\n\n const boundingClientRect = dropdownRef.current?.getBoundingClientRect() as DOMRect;\n\n useEffect(() => {\n const boundingClientRect = dropdownRef.current?.getBoundingClientRect() as DOMRect;\n\n if (window.innerHeight - (boundingClientRect?.y + 240) >= 0) {\n setPosition('top');\n } else {\n setPosition('bottom');\n }\n }, [boundingClientRect]);\n\n useDidMountEffect(() => {\n setSelectedOption(\n options.find(option => option.value === value)?.label ?? ''\n );\n }, [value]);\n\n useOnClickOutside(dropdownRef, () => setIsFocussed(false));\n\n const handleOnSelectItem = (option: {\n label: string;\n value: string;\n sortValue: number;\n }) => {\n if (handleOnChange) {\n handleOnChange(option.value);\n }\n setValue(name as string, option.value);\n setSelectedOption(option.label);\n setIsFocussed(false);\n };\n\n const handleOnKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const initialOptionIndex = options[0].value === 'section_header' ? 1 : 0;\n\n if (\n !isFocussed &&\n (e.key === 'Enter' || e.key === 'ArrowUp' || e.key === 'ArrowDown')\n ) {\n setIsFocussed(true);\n return setOptionIndex(initialOptionIndex);\n }\n\n if (isFocussed) {\n if (\n optionIndex === null &&\n (e.key === 'Enter' || e.key === 'ArrowUp' || e.key === 'ArrowDown')\n ) {\n return setOptionIndex(initialOptionIndex);\n }\n\n if (e.key === 'ArrowUp' && optionIndex !== null && optionIndex > 0) {\n const incrementValue =\n options[optionIndex - 1] &&\n options[optionIndex - 1].value === 'section_header'\n ? 2\n : 1;\n setOptionIndex(optionIndex - incrementValue);\n\n return dropdownMenuRef.current?.scrollTo({\n top: optionIndex * 24,\n behavior: 'smooth',\n });\n }\n\n if (\n e.key === 'ArrowDown' &&\n optionIndex !== null &&\n optionIndex < options.length\n ) {\n const incrementValue =\n options[optionIndex + 1] &&\n options[optionIndex + 1].value === 'section_header'\n ? 2\n : 1;\n setOptionIndex(optionIndex + incrementValue);\n\n return dropdownMenuRef.current?.scrollTo({\n top: optionIndex * 24,\n behavior: 'smooth',\n });\n }\n\n if (e.key === 'Enter' && optionIndex !== null) {\n const option = options.find((_, idx) => optionIndex === idx);\n if (!option) return;\n\n if (handleOnChange) {\n handleOnChange(option.value);\n }\n\n setSelectedOption(option?.label);\n setValue(name as string, option.value, {\n shouldDirty: true,\n shouldValidate: true,\n });\n\n return setIsFocussed(false);\n }\n\n if (e.key === 'Tab') {\n return setIsFocussed(false);\n }\n }\n };\n\n useEffect(() => {\n if (searchValue.length) {\n const idx = options.findIndex(\n option =>\n option.label.substring(0, searchValue.length).toLowerCase() ===\n searchValue.toLowerCase()\n );\n\n dropdownMenuRef.current?.scrollTo({\n top: idx * 24,\n behavior: 'smooth',\n });\n\n setSearchValue('');\n setDebouncedSearchValue('');\n }\n }, [options, searchValue]);\n\n const updateSearchValue = useMemo(() => {\n return debounce(val => {\n setSearchValue(val);\n }, 1000);\n }, []);\n\n const update = (value: string) => {\n updateSearchValue(value);\n setDebouncedSearchValue(value);\n };\n\n return (\n <Box ref={dropdownRef} position=\"relative\">\n <InputGroup>\n <Input\n isRequired={isRequired}\n {...props}\n ref={_ref}\n onClick={() => setIsFocussed(!isFocussed)}\n cursor=\"pointer\"\n color=\"transparent\"\n fontSize=\"13px\"\n textShadow={`0 0 0 ${colors.label.primary.light}`}\n value={selectedOption}\n disabled={disabled}\n autoComplete=\"off\"\n onChange={e => update(debouncedSearchValue.concat(e.target.value))}\n onKeyDown={handleOnKeyDown}\n />\n <InputRightElement\n cursor={disabled ? 'not-allowed' : 'pointer'}\n onClick={() => !disabled && setIsFocussed(!isFocussed)}\n >\n <Image src={SubtractIcon} alt=\"subtract\" boxSize=\"16px\" />\n </InputRightElement>\n </InputGroup>\n {isFocussed && (\n <Dropdown\n position={position}\n dropdownRef={dropdownMenuRef}\n onSelectItem={option => handleOnSelectItem(option)}\n options={options}\n optionIndex={optionIndex}\n />\n )}\n </Box>\n );\n }\n);\n\nexport default StackedSelect;\n","import { useEffect, useRef } from 'react';\n\nconst useDidMountEffect = (func: () => void, deps: unknown[]) => {\n const didMount = useRef(false);\n\n useEffect(() => {\n if (didMount.current) func();\n else didMount.current = true;\n // eslint-disable-next-line\n }, deps);\n};\n\nexport default useDidMountEffect;\n","import React from 'react';\nimport { Textarea } from '@chakra-ui/react';\nimport { TextareaFieldProps } from '../InputTypes';\n\nexport interface StackedTextareaProps extends TextareaFieldProps {}\n\n/**\n * A functional React component utilized to render the `StackedTextarea` component.\n */\nconst StackedTextarea = React.forwardRef<\n HTMLTextAreaElement,\n StackedTextareaProps\n>(({ ...props }, _ref) => {\n return <Textarea ref={_ref} {...props} fontSize=\"13px\" />;\n});\n\nexport default StackedTextarea;\n","import { Flex, Text } from '@chakra-ui/react';\nimport { truncate } from 'lodash';\nimport React from 'react';\nimport colors from '../../../../../src/theme/foundations/colors';\nimport { ReactComponent as CloseIcon } from './assets/svg/close.svg';\n\nexport interface TokenProps {\n label: any;\n onDelete: any;\n}\n\n// For v1 we are truncating the label at 15 characters to avoid overflow\nconst Token: React.FC<TokenProps> = ({ label, onDelete }) => {\n return (\n <Flex\n key={label}\n borderRadius=\"full\"\n backgroundColor=\"#7676801F\"\n alignItems=\"center\"\n width=\"fit-content\"\n w=\"auto\"\n h=\"16px\"\n pl=\"6px\"\n pr=\"2px\"\n py=\"2px\"\n position=\"relative\"\n >\n <Text\n whiteSpace=\"nowrap\"\n color={colors.label.primary.light}\n fontSize=\"13px\"\n pr=\"4px\"\n >\n {truncate(label.trim(), {\n length: 15,\n omission: '...',\n })}\n </Text>\n <CloseIcon\n width=\"11px\"\n height=\"11px\"\n onClick={onDelete}\n cursor=\"pointer\"\n />\n </Flex>\n );\n};\n\nexport default Token;\n","import React, {\n KeyboardEventHandler,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Box, Flex, Text, Image, Input } from '@chakra-ui/react';\nimport { debounce } from 'lodash';\nimport {\n FieldOption,\n FieldOptions,\n ReactSelectFieldProps,\n} from '../InputTypes';\nimport colors from '../../../theme/foundations/colors';\nimport {\n Control,\n FieldValues,\n UseFormClearErrors,\n UseFormSetError,\n UseFormSetValue,\n useWatch,\n} from 'react-hook-form';\nimport SubtractIcon from '../StackedSelect/assets/svg/subtract.svg';\nimport { Dropdown } from '../components/dropdown';\nimport Token from '../components/token';\nimport { useOnClickOutside } from '../../../hooks/useOnOutsideClick';\n\nexport interface StackedMultiSelectProps extends ReactSelectFieldProps {\n options: FieldOptions;\n setValue: UseFormSetValue<FieldValues>;\n setError: UseFormSetError<FieldValues>;\n clearErrors: UseFormClearErrors<FieldValues>;\n control: Control<FieldValues, any>;\n}\n\n/**\n * A functional React component utilized to render the `StackedMultiSelect` component.\n */\nconst StackedMultiSelect = React.forwardRef<\n HTMLInputElement,\n StackedMultiSelectProps\n>(({ options, setValue, control, name, placeholder, disabled }, _ref) => {\n const watchedValue = useWatch({ control, name: name as string });\n const dropdownRef = useRef<HTMLDivElement>(null);\n const dropdownMenuRef = useRef<HTMLDivElement>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [localValues, setLocalValues] = useState<FieldOptions>([]);\n const [localOptions, setLocalOptions] = useState<FieldOptions>(options);\n const [isFocussed, setIsFocussed] = useState(false);\n const [shouldSideScroll, setShouldSideScroll] = useState(false);\n const [optionIndex, setOptionIndex] = useState<number | null>(null);\n\n const [position, setPosition] = useState<'top' | 'bottom'>('top');\n const [searchValue, setSearchValue] = useState('');\n const [debouncedSearchValue, setDebouncedSearchValue] = useState('');\n\n console.log({ searchValue, debouncedSearchValue });\n\n const boundingClientRect = dropdownRef.current?.getBoundingClientRect() as DOMRect;\n\n useEffect(() => {\n if (window.innerHeight - (boundingClientRect?.y + 240) >= 0) {\n setPosition('top');\n } else {\n setPosition('bottom');\n }\n }, [boundingClientRect]);\n\n useOnClickOutside(dropdownRef, () => setIsFocussed(false));\n\n // gets latest watched form value (common delimited) from RHF state and creates a list\n useEffect(() => {\n if (watchedValue !== undefined && !watchedValue.length) {\n setLocalValues([]);\n }\n\n if (watchedValue !== undefined && watchedValue?.length) {\n if (shouldSideScroll) {\n (scrollRef.current as HTMLDivElement).scrollTo({\n left: scrollRef.current?.scrollWidth,\n behavior: 'smooth',\n });\n setShouldSideScroll(false);\n }\n\n setLocalValues(\n watchedValue\n .split(',')\n .filter(Boolean)\n .map((value: string) =>\n options.find(option => option.value === value)\n )\n );\n\n // Filter out options that are already selected\n setLocalOptions(prevLocalOptions =>\n prevLocalOptions.filter(\n localOption => !localValues.includes(localOption)\n )\n );\n }\n }, [localValues, options, shouldSideScroll, watchedValue]);\n\n const handleChange = (option: FieldOption) => {\n setShouldSideScroll(true);\n const newValue = [...localValues, option]\n .map(({ value }) => value)\n .join(',');\n\n setValue(name as string, newValue, {\n shouldValidate: true,\n shouldDirty: true,\n });\n\n setLocalOptions(prevLocalOptions =>\n prevLocalOptions.filter(prevLocalOption => prevLocalOption !== option)\n );\n\n setLocalValues(prevLocalValues => [...prevLocalValues, option]);\n };\n\n const handleDelete = (option: FieldOption) => {\n const newValue = localValues\n .filter(localValue => localValue !== option)\n .map(({ value }) => value)\n .join(',');\n\n setValue(name as string, newValue, {\n shouldValidate: true,\n shouldDirty: true,\n });\n\n setLocalOptions(prevLocalOptions =>\n [...prevLocalOptions, option].sort((a, b) => a.sortValue - b.sortValue)\n );\n\n setLocalValues(prevLocalValues =>\n prevLocalValues.filter(prevLocalValue => prevLocalValue !== option)\n );\n };\n\n const handleOnKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const initialOptionIndex = options[0].value === 'section_header' ? 1 : 0;\n\n if (\n !isFocussed &&\n (e.key === 'Enter' || e.key === 'ArrowUp' || e.key === 'ArrowDown')\n ) {\n setIsFocussed(true);\n return setOptionIndex(initialOptionIndex);\n }\n\n if (isFocussed) {\n if (\n optionIndex === null &&\n (e.key === 'Enter' || e.key === 'ArrowUp' || e.key === 'ArrowDown')\n ) {\n return setOptionIndex(initialOptionIndex);\n }\n\n if (e.key === 'ArrowUp' && optionIndex !== null && optionIndex > 0) {\n const incrementValue =\n localOptions[optionIndex - 1] &&\n localOptions[optionIndex - 1].value === 'section_header'\n ? 2\n : 1;\n setOptionIndex(optionIndex - incrementValue);\n\n return dropdownMenuRef.current?.scrollTo({\n top: optionIndex * 24,\n behavior: 'smooth',\n });\n }\n\n if (\n e.key === 'ArrowDown' &&\n optionIndex !== null &&\n optionIndex < localOptions.length\n ) {\n const incrementValue =\n localOptions[optionIndex + 1] &&\n localOptions[optionIndex + 1].value === 'section_header'\n ? 2\n : 1;\n setOptionIndex(optionIndex + incrementValue);\n\n return dropdownMenuRef.current?.scrollTo({\n top: optionIndex * 24,\n behavior: 'smooth',\n });\n }\n\n if (e.key === 'Enter' && optionIndex !== null) {\n const option = localOptions.find((_, idx) => optionIndex === idx);\n if (!option) return;\n\n handleChange(option);\n\n return setIsFocussed(false);\n }\n\n if (e.key === 'Tab') {\n return setIsFocussed(false);\n }\n\n return update(debouncedSearchValue.concat(e.key));\n }\n };\n\n useEffect(() => {\n if (searchValue.length) {\n const idx = options.findIndex(\n option =>\n option.label.substring(0, searchValue.length).toLowerCase() ===\n searchValue.toLowerCase()\n );\n\n dropdownMenuRef.current?.scrollTo({\n top: idx * 24,\n behavior: 'smooth',\n });\n\n setSearchValue('');\n setDebouncedSearchValue('');\n }\n }, [options, searchValue]);\n\n const updateSearchValue = useMemo(() => {\n return debounce(val => {\n setSearchValue(val);\n }, 1000);\n }, []);\n\n const update = (value: string) => {\n updateSearchValue(value);\n setDebouncedSearchValue(value);\n };\n\n return (\n <Box ref={dropdownRef} position=\"relative\" onKeyDown={handleOnKeyDown}>\n <Flex\n fontSize=\"13px\"\n h=\"26px\"\n border={isFocussed ? '2px solid' : '1px solid'}\n borderColor={isFocussed ? colors.border.focus : colors.border.default}\n py=\"5px\"\n pl=\"8px\"\n borderRadius=\"4px\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n onClick={() => {\n if (!disabled) {\n if (isFocussed) {\n return setIsFocussed(false);\n }\n\n inputRef.current?.focus();\n setIsFocussed(true);\n }\n }}\n bg={disabled ? colors.fill.light.quaternary : '#ffffff'}\n cursor={disabled ? 'not-allowed' : 'pointer'}\n >\n <Flex\n alignItems=\"center\"\n h=\"inherit\"\n width=\"90%\"\n overflowX=\"scroll\"\n style={{\n scrollbarWidth: 'none' /* Firefox */,\n msOverflowStyle: 'none',\n }}\n sx={{\n '::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n ref={scrollRef}\n >\n {localValues.length ? (\n localValues.map(option => (\n <Box mr=\"4px\" width=\"fit-content\" h=\"16px\" borderRadius=\"full\">\n <Token\n label={option.label}\n onDelete={() => handleDelete(option)}\n />\n </Box>\n ))\n ) : (\n <Text color={colors.label.secondary.light} fontSize=\"13px\">\n {placeholder}\n </Text>\n )}\n </Flex>\n <Input\n padding={0}\n border=\"none\"\n height=\"0\"\n width=\"0\"\n autoComplete=\"off\"\n type=\"text\"\n ref={inputRef}\n tabIndex={-1}\n _focus={{ boxShadow: 'none !important' }}\n />\n <Flex mr=\"4px\" justifyContent=\"center\" alignItems=\"center\">\n <Image src={SubtractIcon} alt=\"subtract\" boxSize=\"16px\" />\n </Flex>\n </Flex>\n {isFocussed && (\n <Dropdown\n dropdownRef={dropdownMenuRef}\n onSelectItem={option => handleChange(option)}\n options={localOptions}\n position={position}\n optionIndex={optionIndex}\n />\n )}\n </Box>\n );\n});\n\nexport default StackedMultiSelect;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Box, Flex, Input, Text, useOutsideClick } from '@chakra-ui/react';\nimport { InputFieldProps } from '../InputTypes';\nimport {\n Control,\n FieldValues,\n UseFormClearErrors,\n UseFormSetError,\n UseFormSetValue,\n useWatch,\n} from 'react-hook-form';\nimport colors from '../../../theme/foundations/colors';\nimport Token from '../components/token';\n\nexport interface StackedPilledInputProps extends InputFieldProps {\n setValue: UseFormSetValue<FieldValues>;\n setError: UseFormSetError<FieldValues>;\n clearErrors: UseFormClearErrors<FieldValues>;\n control: Control<FieldValues, any>;\n}\n\n/**\n * A functional React component utilized to render the `StackedPilledInput` component.\n */\nconst StackedPilledInput = React.forwardRef<\n HTMLInputElement,\n StackedPilledInputProps\n>(({ name, setValue, control, placeholder, disabled, clearErrors }, _ref) => {\n const watchedValue = useWatch({ control, name: name as string });\n const [lastestFormValueToArray, setLatestFormValueToArray] = useState<\n string[]\n >([]);\n\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const [tokenIndex, setTokenIndex] = useState<number | null>(null);\n const [isFocussed, setIsFocussed] = useState(false);\n const [localValue, setLocalValue] = useState('');\n\n const latestTokenElement = document.getElementById(\n `${name}_token_${lastestFormValueToArray.length - 1}`\n );\n\n // gets latest watched form value (common delimited) from RHF state and creates a list\n useEffect(() => {\n if (watchedValue !== undefined && !watchedValue.length) {\n setLatestFormValueToArray([]);\n }\n\n if (watchedValue !== undefined && watchedValue?.length) {\n setLatestFormValueToArray(watchedValue.split(',').filter(Boolean));\n\n if (latestTokenElement) {\n latestTokenElement.scrollIntoView({\n block: 'end',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }\n }, [latestTokenElement, watchedValue]);\n\n const onHandleKeyDown = (e: React.KeyboardEvent) => {\n if (\n e.key === ' ' ||\n e.key === 'Enter' ||\n e.key === ',' ||\n e.key === 'Tab'\n ) {\n if (\n e.key === 'Enter' &&\n !localValue.trim().length &&\n tokenIndex !== null\n ) {\n setLocalValue(lastestFormValueToArray[tokenIndex]);\n\n const filteredUniqueValues = Array.from(\n new Set(\n lastestFormValueToArray.filter(\n value => value !== lastestFormValueToArray[tokenIndex]\n )\n )\n );\n\n setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n\n return setTokenIndex(null);\n }\n\n const filteredUniqueValues = Array.from(\n new Set([...lastestFormValueToArray, ...localValue.trim().split(',')])\n );\n\n setLocalValue('');\n\n return setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n }\n\n if (!localValue.trim().length && lastestFormValueToArray.length) {\n if (e.key === 'Backspace' && tokenIndex !== null) {\n setLocalValue(\n lastestFormValueToArray[tokenIndex].substring(\n 0,\n lastestFormValueToArray[tokenIndex].length\n )\n );\n\n const filteredUniqueValues = Array.from(\n new Set(\n [...lastestFormValueToArray].filter(\n value => value !== lastestFormValueToArray[tokenIndex]\n )\n )\n );\n\n setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n\n return setTokenIndex(null);\n }\n\n if (e.key === 'ArrowLeft') {\n if (tokenIndex === 0) return;\n\n if (!tokenIndex) {\n return setTokenIndex(lastestFormValueToArray.length - 1);\n }\n\n setTokenIndex(prevTokenIndex => (prevTokenIndex as number) - 1);\n\n const tokenElement = document.getElementById(\n `${name}_token_${tokenIndex}`\n );\n\n if (!tokenElement || !scrollRef.current) return;\n\n return scrollRef.current.scrollBy({\n left: -1 * tokenElement.getBoundingClientRect().width,\n behavior: 'smooth',\n });\n }\n\n if (e.key === 'ArrowRight') {\n if (tokenIndex === null) return;\n\n if (tokenIndex === lastestFormValueToArray.length - 1) {\n return setTokenIndex(null);\n }\n setTokenIndex(prevTokenIndex => (prevTokenIndex as number) + 1);\n\n const tokenElement = document.getElementById(\n `${name}_token_${tokenIndex}`\n );\n\n if (!tokenElement || !scrollRef.current) return;\n\n return scrollRef.current.scrollBy({\n left: tokenElement.getBoundingClientRect().width,\n behavior: 'smooth',\n });\n }\n }\n };\n\n const onRemoveTag = (index: number) => {\n const filteredUniqueValues = lastestFormValueToArray.filter(\n (_, i) => i !== index\n );\n\n setLatestFormValueToArray(filteredUniqueValues);\n\n setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n };\n\n const onBlur = () => {\n clearErrors(name);\n\n if (localValue.trim().length) {\n const filteredUniqueValues = Array.from(\n new Set([...lastestFormValueToArray, ...localValue.trim().split(',')])\n );\n\n setValue(\n name as string,\n filteredUniqueValues.toString().replace(/\\s/g, ''),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n setLocalValue('');\n }\n setIsFocussed(false);\n };\n\n useOutsideClick({ ref: inputWrapperRef, handler: onBlur });\n\n return (\n <Box position=\"relative\">\n <Flex\n fontSize=\"13px\"\n border={isFocussed ? '2px solid' : '1px solid'}\n borderColor={isFocussed ? colors.border.focus : colors.border.default}\n pl=\"8px\"\n borderRadius=\"4px\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n onClick={() => {\n if (!disabled) {\n inputRef.current?.focus();\n }\n }}\n bg={disabled ? colors.fill.light.quaternary : '#ffffff'}\n cursor={disabled ? 'not-allowed' : 'pointer'}\n ref={inputWrapperRef}\n h=\"26px\"\n >\n <Flex\n h=\"100%\"\n alignItems=\"center\"\n overflowX=\"scroll\"\n overflowY=\"hidden\"\n maxWidth={isFocussed ? '80%' : '100%'}\n style={{\n scrollbarWidth: 'none' /* Firefox */,\n msOverflowStyle: 'none',\n }}\n sx={{\n '::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n ref={scrollRef}\n >\n {lastestFormValueToArray.length\n ? lastestFormValueToArray.map((label, index) => (\n <Box\n mr=\"4px\"\n border={\n tokenIndex === index\n ? `1px solid ${colors.border.focus}`\n : 'none'\n }\n borderRadius=\"full\"\n onClick={() => isFocussed && setTokenIndex(index)}\n width=\"100%\"\n id={`${name}_token_${index}`}\n >\n <Token\n label={label}\n onDelete={(e: any) => {\n e.stopPropagation();\n e.preventDefault();\n onRemoveTag(index);\n }}\n />\n </Box>\n ))\n : null}\n {!lastestFormValueToArray.length && !isFocussed ? (\n <Text color={colors.label.secondary.light} fontSize=\"13px\">\n {placeholder}\n </Text>\n ) : null}\n </Flex>\n <Flex flex={1} minWidth={isFocussed ? '20%' : 0}>\n <Input\n onKeyDown={onHandleKeyDown}\n type=\"text\"\n padding={0}\n alignContent=\"flex-start\"\n float=\"right\"\n border=\"none\"\n height=\"auto\"\n color={tokenIndex !== null ? 'transparent' : colors.label.primary}\n _focus={{ boxShadow: 'none !important' }}\n value={localValue}\n onChange={e =>\n tokenIndex === null &&\n setLocalValue(\n e.target.value.trim().replace(',', '').length\n ? e.target.value\n : ''\n )\n }\n ref={inputRef}\n onFocus={() => setIsFocussed(true)}\n onBlur={() => setIsFocussed(false)}\n />\n </Flex>\n </Flex>\n </Box>\n );\n});\n\nexport default StackedPilledInput;\n","import React from 'react';\nimport { Switch, SwitchProps } from '@chakra-ui/react';\nimport colors from '../../../theme/foundations/colors';\n\nexport interface StackedSwitchProps extends SwitchProps {}\n\n/**\n * A functional React component utilized to render the `StackedSwitch` component.\n */\nconst StackedSwitch = React.forwardRef<HTMLInputElement, StackedSwitchProps>(\n ({ isRequired, onChange, value }, _ref) => {\n if (value === null) return null;\n\n return (\n <Switch\n h=\"26px\"\n mx=\"4px\"\n _focus={{\n border: '2px solid',\n borderColor: colors.border.focus,\n }}\n ref={_ref}\n isRequired={isRequired}\n value={String(value)}\n defaultChecked={Boolean(value)}\n onChange={e => {\n if (onChange) return onChange(e.target.checked as any);\n }}\n />\n );\n }\n);\n\nexport default StackedSwitch;\n","import React from 'react';\nimport { Box, FormLabel, Tooltip } from '@chakra-ui/react';\nimport colors from '../../../../../src/theme/foundations/colors';\nimport { QuestionOutlineIcon } from '@chakra-ui/icons';\n\nexport interface LabelProps {\n label: string;\n tooltipText?: string;\n isRequired?: boolean;\n}\n\n/**\n * A functional React component utilized to render the `Label` component\n */\nexport const Label: React.FC<LabelProps> = ({\n tooltipText,\n isRequired,\n label,\n}) => {\n return (\n <FormLabel display=\"flex\" alignItems=\"center\">\n {label}\n {isRequired && (\n <Box ml={1} color={colors.label.error}>\n *\n </Box>\n )}\n {!!tooltipText && (\n <Tooltip label={tooltipText} placement=\"top\">\n <QuestionOutlineIcon boxSize=\"13px\" ml=\"8px\" />\n </Tooltip>\n )}\n </FormLabel>\n );\n};\n","import React from 'react';\nimport StackedCheckBox from './StackedCheckbox/StackedCheckbox';\nimport StackedInput from './StackedInput/StackedInput';\nimport StackedRadioGroup from './StackedRadio/StackedRadioGroup';\nimport StackedSelect from './StackedSelect';\nimport StackedTextarea from './StackedTextarea/StackedTextarea';\nimport { FieldOptions, ValidationProps, InputType } from './InputTypes';\nimport {\n FormControl,\n FormErrorMessage,\n FormHelperText,\n} from '@chakra-ui/react';\nimport {\n Control,\n Controller,\n FieldValues,\n Path,\n PathValue,\n RefCallBack,\n UseFormClearErrors,\n UseFormSetError,\n UseFormSetValue,\n} from 'react-hook-form';\nimport StackedMultiSelect from './StackedMultiSelect';\nimport StackedPilledInput from './StackedPilledInput';\nimport StackedSwitch from './StackedSwitch';\nimport { Label } from './components/label';\n\nexport interface InputProps<T extends FieldValues> extends ValidationProps {\n inputType: InputType;\n name: string;\n ariaLabel: string;\n placeholder?: string;\n defaultValue?: string;\n label?: string;\n className?: string;\n options?: FieldOptions;\n maxLength?: number;\n helperText?: React.ReactNode;\n control: Control<T, any>;\n onChange?: (value?: string) => void;\n disabled?: boolean;\n tooltipText?: string;\n setValue: UseFormSetValue<T>;\n setError: UseFormSetError<T>;\n clearErrors: UseFormClearErrors<T>;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n}\n\n/**\n * A functional React component utilized to render the `Input` component. Utilizes a switch statement\n * to render the correct input based on the `inputType`.\n */\nexport function Input<T extends FieldValues>({\n inputType,\n label,\n ariaLabel,\n className,\n placeholder,\n name,\n helperText,\n options,\n tooltipText,\n isInvalid,\n errorText,\n isRequired,\n maxLength,\n defaultValue,\n control,\n disabled,\n rightElement,\n leftElement,\n onChange,\n setValue,\n setError,\n clearErrors,\n}: InputProps<T>) {\n const selectedInputField = (\n onChange: () => void,\n onBlur: () => void,\n ref: RefCallBack,\n value: string\n ) => {\n switch (inputType) {\n case 'text':\n return (\n <StackedInput\n className={`input-${inputType} ${className ?? ''}`}\n aria-label={ariaLabel}\n name={name}\n id={name}\n placeholder={placeholder}\n maxLength={maxLength}\n isRequired={isRequired}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n rightElement={rightElement}\n leftElement={leftElement}\n disabled={disabled}\n value={value}\n />\n );\n case 'radio':\n return (\n <StackedRadioGroup\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isInvalid={isInvalid}\n options={options as FieldOptions}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n />\n );\n case 'select':\n return (\n <StackedSelect\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isRequired={isRequired}\n isInvalid={isInvalid}\n options={options as FieldOptions}\n handleOnChange={onChange}\n onBlur={onBlur}\n setValue={setValue as UseFormSetValue<FieldValues>}\n control={control as Control<FieldValues, any>}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n placeholder={placeholder}\n />\n );\n case 'textarea':\n return (\n <StackedTextarea\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n placeholder={placeholder}\n maxLength={maxLength}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n />\n );\n case 'checkbox':\n return (\n <StackedCheckBox\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n label={label as string}\n />\n );\n case 'multi-select':\n return (\n <StackedMultiSelect\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isInvalid={isInvalid}\n options={options as FieldOptions}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n setValue={setValue as UseFormSetValue<FieldValues>}\n control={control as Control<FieldValues, any>}\n setError={setError as UseFormSetError<FieldValues>}\n clearErrors={clearErrors as UseFormClearErrors<FieldValues>}\n placeholder={placeholder}\n />\n );\n case 'pilled-text':\n return (\n <StackedPilledInput\n className={`input-${inputType} ${className ?? ''}`}\n aria-label={ariaLabel}\n name={name}\n id={name}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n placeholder={placeholder}\n setValue={setValue as UseFormSetValue<FieldValues>}\n setError={setError as UseFormSetError<FieldValues>}\n clearErrors={clearErrors as UseFormClearErrors<FieldValues>}\n control={control as Control<FieldValues, any>}\n maxLength={maxLength}\n />\n );\n case 'switch':\n return (\n <StackedSwitch\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n value={value}\n defaultValue={defaultValue}\n />\n );\n default:\n return null;\n }\n };\n\n return (\n <Controller\n control={control}\n name={name as Path<T>}\n defaultValue={defaultValue as PathValue<T, Path<T>>}\n rules={{ required: isRequired }}\n /** @ts-ignore: issues with implicit */\n render={({ field: { onBlur, onChange: fieldOnChange, ref, value } }) => (\n <FormControl\n id={name}\n isInvalid={isInvalid}\n position=\"relative\"\n py={label || helperText || isInvalid ? 6 : 0}\n >\n {label && (\n <Label\n tooltipText={tooltipText}\n label={label}\n isRequired={isRequired}\n />\n )}\n {selectedInputField(\n onChange ? onChange : fieldOnChange,\n onBlur,\n ref,\n value\n )}\n {isInvalid ? (\n <FormErrorMessage>{errorText}</FormErrorMessage>\n ) : (\n helperText && <FormHelperText>{helperText}</FormHelperText>\n )}\n </FormControl>\n )}\n />\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport { Box } from '@chakra-ui/react';\n\nexport interface BorderBox extends PropsWithChildren {\n boxShadow: string;\n borderRadius?: string;\n}\n\n/**\n * A functional React component utilized to render the `BorderedBox` component\n */\nexport const BorderedBox: React.FC<BorderBox> = ({\n children,\n boxShadow,\n borderRadius = 'none',\n}) => {\n return (\n <Box\n boxShadow={boxShadow}\n borderRadius={borderRadius}\n bg=\"white\"\n mx=\"auto\"\n width=\"100%\"\n height=\"100%\"\n display=\"flex\"\n >\n {children}\n </Box>\n );\n};\n","const typography = {\n letterSpacings: {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em',\n },\n\n lineHeights: {\n normal: 'normal',\n none: 1,\n shorter: 1.25,\n short: 1.375,\n base: 1.5,\n tall: 1.625,\n taller: '2',\n '3': '.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '7': '1.75rem',\n '8': '2rem',\n '9': '2.25rem',\n '10': '2.5rem',\n },\n\n fontWeights: {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900,\n },\n\n fonts: {\n base: `proxima-nova, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`,\n mono: `SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace`,\n },\n\n fontSizes: {\n xs: '0.75rem',\n sm: '0.875rem',\n md: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl': '1.5rem',\n '3xl': '1.875rem',\n '4xl': '2.25rem',\n '5xl': '3rem',\n '6xl': '4rem',\n },\n};\n\nexport type Typography = typeof typography;\n\nexport default typography;\n","import React from 'react';\nimport { Flex, IconButton, Spinner } from '@chakra-ui/react';\nimport { HiOutlineRefresh } from 'react-icons/hi';\nimport colors from '../../../../theme/foundations/colors';\nimport typography from '../../../../theme/foundations/typography';\n\ninterface TableLoadingRowsProps {\n isLoading: boolean;\n onLoadMore: () => void;\n}\n\n/**\n * A loading spinner rendered after the table to indicate more rows are being loaded.\n */\nexport const TableLoadingRows: React.FC<TableLoadingRowsProps> = ({\n isLoading,\n onLoadMore,\n}) => {\n return (\n <Flex\n width=\"full\"\n direction=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n height={20}\n borderTopColor={colors.fill.light.quaternary}\n >\n {isLoading ? (\n <Spinner size=\"lg\" color={colors.fill.action} />\n ) : (\n <IconButton\n aria-label=\"Fetch more rows\"\n icon={<HiOutlineRefresh />}\n fontSize={typography.fontSizes['3xl']}\n bg=\"transparent\"\n shadow=\"none\"\n color={colors.fill.action}\n type=\"button\"\n variant=\"outline\"\n onClick={onLoadMore}\n />\n )}\n </Flex>\n );\n};\n","import React from 'react';\nimport { Table as ChakraTable, Tbody, Td, Tr } from '@chakra-ui/react';\n\n/**\n * A React component utilized to render the `EmptyTable` component\n */\nexport const EmptyTable: React.FC = () => {\n const getOpacity = (index: number) => {\n switch (index) {\n case 1:\n return 0.7;\n case 3:\n return 0.6;\n case 5:\n return 0.5;\n case 7:\n return 0.4;\n case 9:\n return 0.3;\n case 11:\n return 0.2;\n case 13:\n return 0.1;\n default:\n return 1;\n }\n };\n\n return (\n <ChakraTable\n variant=\"unstyled\"\n width=\"100%\"\n style={{\n borderCollapse: 'separate',\n borderSpacing: '0px',\n }}\n >\n <Tbody>\n {Array.from({ length: 14 }, (_, i) => i + 1).map(i => (\n <Tr>\n <Td height=\"26px\" opacity={getOpacity(i)}></Td>\n </Tr>\n ))}\n </Tbody>\n </ChakraTable>\n );\n};\n","import {\n createBreakpoints,\n BaseBreakpointConfig,\n} from '@chakra-ui/theme-tools';\n\n/**\n * Breakpoints for responsive design\n */\nconst breakpointValues: BaseBreakpointConfig = {\n sm: '30em',\n md: '48em',\n lg: '62em',\n xl: '80em',\n};\n\nconst breakpoints = createBreakpoints(breakpointValues);\n\nexport default breakpoints;\n","import colors from './colors';\n\nconst shadows = {\n xs: '0 0 0 1px rgba(0, 0, 0, 0.05)',\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n base: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n xl:\n '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',\n insetOutline: `inset 0 0 0 2px ${colors.fill.action}`,\n outline: `0 0 0 2px ${colors.fill.action}`,\n outlineDanger600: `0 0 0 2px ${colors.fill.error}`,\n inner: 'inset 0 2px 4px 0 rgba(0,0,0,0.06)',\n none: 'none',\n 'dark-lg':\n 'rgba(0, 0, 0, 0.1) 0px 0px 0px 1px, rgba(0, 0, 0, 0.2) 0px 5px 10px, rgba(0, 0, 0, 0.4) 0px 15px 40px',\n};\n\nexport type Shadows = typeof shadows;\n\nexport default shadows;\n","import colors from '../foundations/colors';\n\nconst parts = ['container', 'description', 'icon'];\n\nconst baseStyle = {\n container: {\n px: '8px',\n py: '8px',\n },\n\n description: {\n width: '100%',\n fontSize: '13px',\n textAlign: 'left',\n color: colors.label.primary.light,\n lineHeight: '16px',\n },\n};\n\nfunction variantPositive() {\n return {\n container: { bg: colors.fill.success },\n };\n}\n\nfunction variantWarning() {\n return {\n container: { bg: colors.fill.warning },\n };\n}\n\nfunction variantError() {\n return {\n container: { bg: colors.fill.error },\n };\n}\n\nfunction variantNeutral() {\n return {\n container: { bg: colors.fill.light.tertiary },\n };\n}\n\nconst variants = {\n positive: variantPositive,\n warning: variantWarning,\n error: variantError,\n neutral: variantNeutral,\n};\n\nconst defaultProps = {\n variant: 'positive',\n};\n\nexport default {\n parts,\n baseStyle,\n variants,\n defaultProps,\n};\n","import { getColor, mode, transparentize } from '@chakra-ui/theme-tools';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst baseStyle = {\n px: 1,\n textTransform: 'uppercase',\n fontSize: 'xs',\n borderRadius: 'sm',\n fontWeight: 'bold',\n};\n\nfunction variantSolid(props: Dict) {\n const { colorScheme: c, theme } = props;\n const dark = transparentize(`${c}.500`, 0.6)(theme);\n return {\n bg: mode(`${c}.500`, dark)(props),\n color: mode(`white`, `whiteAlpha.800`)(props),\n };\n}\n\nfunction variantSubtle(props: Dict) {\n const { colorScheme: c, theme } = props;\n const darkBg = transparentize(`${c}.200`, 0.16)(theme);\n return {\n bg: mode(`${c}.100`, darkBg)(props),\n color: mode(`${c}.800`, `${c}.200`)(props),\n };\n}\n\nfunction variantOutline(props: Dict) {\n const { colorScheme: c, theme } = props;\n const darkColor = transparentize(`${c}.200`, 0.8)(theme);\n const lightColor = getColor(theme, `${c}.500`);\n const color = mode(lightColor, darkColor)(props);\n\n return {\n color,\n boxShadow: `inset 0 0 0px 1px ${color}`,\n };\n}\n\nconst variants = {\n solid: variantSolid,\n subtle: variantSubtle,\n outline: variantOutline,\n};\n\nconst defaultProps = {\n variant: 'subtle',\n colorScheme: 'gray',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import { defineStyle } from '@chakra-ui/system';\nimport colors from '../foundations/colors';\n\nconst baseStyle = defineStyle({\n borderRadius: '4px',\n fontSize: '13px',\n bg: colors.fill.action,\n color: colors.label.primary.dark,\n h: '26px',\n border: 'none',\n px: '8px',\n py: '4px',\n bgGradient: 'linear-gradient(#FFFFFF29, #FFFFFF00)',\n shadow: '0.5px 0.5px 1px 1px #0000001A',\n _disabled: {\n backgroundColor: 'gray.100',\n borderColor: 'gray.100',\n color: 'gray.500',\n pointerEvents: 'none',\n },\n _hover: {\n bg: colors.fill.action,\n },\n _active: {\n color: colors.label.primary.dark,\n bg: colors.fill.action,\n bgGradient: colors.fill.light.quaternary,\n },\n _focus: {\n outline: `2px solid ${colors.border.focus}`,\n outlineOffset: '0px',\n },\n});\n\nconst variantPrimary = () => {\n return { ...baseStyle };\n};\n\nconst variantSecondary = () => {\n return {\n ...baseStyle,\n color: colors.fill.action,\n bg: colors.label.primary.dark,\n _hover: {\n bg: colors.label.primary.dark,\n },\n _active: {\n color: colors.fill.action,\n bg: colors.label.primary.dark,\n bgGradient: colors.fill.light.quaternary,\n },\n _focus: {\n bg: colors.label.primary.dark,\n },\n };\n};\n\nconst variants = {\n primary: variantPrimary(),\n secondary: variantSecondary(),\n};\n\nconst defaultProps = {\n variant: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import colors from '../foundations/colors';\n\nconst parts = ['field'];\n\nconst baseStyle = {\n field: {\n fontSize: '13px',\n h: '26px',\n '::placeholder': {\n color: colors.label.secondary.light,\n },\n py: '5px',\n px: '8px',\n border: '1px solid',\n borderColor: colors.border.default,\n _disabled: {\n cursor: 'not-allowed',\n bg: colors.fill.light.quaternary,\n color: colors.label.secondary.light,\n },\n _focus: {\n bg: '#ffffff',\n border: '2px solid',\n borderColor: colors.border.focus,\n },\n },\n};\n\nconst variants = { default: baseStyle };\n\nconst defaultProps = {\n variant: 'default',\n};\n\nexport default {\n parts,\n baseStyle,\n variants,\n defaultProps,\n};\n","import { getColor } from '@chakra-ui/theme-tools';\nimport colors from '../foundations/colors';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst baseStyle = {\n color: colors.fill.action,\n textDecoration: 'underline',\n transition: 'none',\n _hover: {\n color: 'orange.500',\n },\n};\n\nfunction variantSidebar() {\n return {\n display: 'flex',\n alignItems: 'center',\n // height: '56px',\n pl: 4,\n pr: 4,\n py: 2,\n color: 'gray.500',\n lineHeight: 1.5,\n outline: 'none',\n transition: 'none',\n textDecoration: 'none',\n _focus: {\n boxShadow: 'none',\n },\n _hover: {\n color: 'primary.500',\n textDecoration: 'none',\n },\n '&.active': {\n color: 'primary.500',\n fontWeight: 'semibold',\n },\n };\n}\n\n// This variant represent the same as the sidebar one above but when the route matches exactly\n// and not only for a child sub route match. I did it as a separate variant instead of a\n// prop to get around React complaining that the dom element was not recognized.\nfunction variantSidebarExact() {\n // props: Dict\n const base = variantSidebar();\n // const { theme } = props;\n // const primaryColor = getColor(theme, 'primary.500');\n\n return {\n ...base,\n '&.active': {\n // ...base['&.active'],\n // boxShadow: `inset 3px 0 0 0 ${primaryColor}`,\n },\n };\n}\n\nfunction variantSubNavigation(props: Dict) {\n const { theme } = props;\n const primaryColor = getColor(theme, 'primary.500');\n\n return {\n display: 'block',\n pl: 10,\n mb: 3,\n color: 'gray.900',\n lineHeight: 'shorter',\n fontSize: 'sm',\n outline: 'none',\n transition: 'none',\n textDecoration: 'none',\n _focus: {\n boxShadow: 'none',\n },\n _hover: {\n color: 'primary.500',\n textDecoration: 'none',\n },\n '&.active': {\n color: 'primary.500',\n boxShadow: `inset 3px 0 0 0 ${primaryColor}`,\n fontWeight: 'semibold',\n },\n };\n}\n\nfunction variantNavlink(props: Dict) {\n const { colorScheme: c, size } = props;\n\n return {\n color: 'gray.500',\n fontWeight: 'normal',\n textDecoration: 'none',\n fontSize: size || 'md',\n _hover: {\n color: `${c}.500`,\n textDecoration: 'none',\n },\n '&.active': {\n color: `${c}.500`,\n },\n };\n}\n\nconst variants = {\n sidebar: variantSidebar,\n sidebarExact: variantSidebarExact,\n subNavigation: variantSubNavigation,\n navlink: variantNavlink,\n};\n\nexport default {\n baseStyle,\n variants,\n};\n","import Input from './input';\n\nconst { defaultProps, variants } = Input;\n\nconst parts = ['field', 'icon'];\n\nfunction baseStyleField() {\n return {\n ...Input.baseStyle.field,\n appearance: 'none',\n paddingBottom: '1px',\n lineHeight: 'normal',\n bg: 'white',\n '> option': {\n // bg: mode('white', 'gray.700')(props),\n },\n };\n}\n\nconst baseStyleInput = {\n color: 'currentColor',\n fontSize: '1.25rem',\n _disabled: { opacity: 0.5 },\n};\n\nconst baseStyle = () => ({\n field: baseStyleField(),\n icon: baseStyleInput,\n});\n\nexport default {\n parts,\n baseStyle,\n variants,\n defaultProps,\n};\n","import { mode, getColor } from '@chakra-ui/theme-tools';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst parts = ['track', 'thumb'];\n\nfunction baseStyleTrack(props: Dict) {\n const { colorScheme: c, theme } = props;\n\n return {\n borderRadius: 'full',\n p: '2px',\n transition: 'all 120ms',\n bg: mode('gray.300', 'whiteAlpha.400')(props),\n _focus: {\n boxShadow: `0 0 0 3px ${getColor(theme, 'gray.100')}`,\n },\n _disabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n _checked: {\n bg: mode(`${c}.500`, `${c}.200`)(props),\n _focus: {\n boxShadow: `0 0 0 3px ${getColor(theme, `${c}.200`)}`,\n },\n },\n };\n}\n\nconst baseStyleThumb = {\n bg: 'white',\n transition: 'transform 250ms',\n borderRadius: 'full',\n transform: 'translateX(0)',\n};\n\nconst baseStyle = (props: Dict) => ({\n track: baseStyleTrack(props),\n thumb: baseStyleThumb,\n});\n\nconst sizes = {\n sm: {\n track: { w: '1.375rem', h: '0.75rem' },\n thumb: {\n w: '0.75rem',\n h: '0.75rem',\n _checked: {\n transform: 'translateX(0.625rem)',\n },\n },\n },\n\n md: {\n track: { w: '1.875rem', h: '1rem' },\n thumb: {\n w: '1rem',\n h: '1rem',\n _checked: {\n transform: 'translateX(0.875rem)',\n },\n },\n },\n\n lg: {\n track: { w: '2.875rem', h: '1.5rem' },\n thumb: {\n w: '1.5rem',\n h: '1.5rem',\n _checked: {\n transform: 'translateX(1.375rem)',\n },\n },\n },\n};\n\nconst defaultProps = {\n size: 'md',\n colorScheme: 'blue',\n};\n\nexport default {\n parts,\n baseStyle,\n sizes,\n defaultProps,\n};\n","import { getColor, mode } from '@chakra-ui/theme-tools';\nimport colors from '../foundations/colors';\n\nconst parts = ['root', 'tablist', 'tab', 'tabpanel', 'indicator'];\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nfunction baseStyleRoot(props: Dict) {\n const { orientation } = props;\n return {\n display: orientation === 'vertical' ? 'flex' : 'block',\n };\n}\n\nfunction baseStyleTab(props: Dict) {\n const { isFitted } = props;\n\n return {\n flex: isFitted ? 1 : undefined,\n transition: 'all 0.2s',\n _focus: {\n zIndex: 1,\n boxShadow: 'outline',\n },\n };\n}\n\nfunction baseStyleTablist(props: Dict) {\n const { align = 'start', orientation } = props;\n\n const alignments: Record<string, string> = {\n end: 'flex-end',\n center: 'center',\n start: 'flex-start',\n };\n\n return {\n justifyContent: alignments[align],\n flexDirection: orientation === 'vertical' ? 'column' : 'row',\n };\n}\n\nconst baseStyleTabpanel = { p: 4 };\n\nconst baseStyle = (props: Dict) => {\n return {\n root: baseStyleRoot(props),\n tab: baseStyleTab(props),\n tablist: baseStyleTablist(props),\n tabpanel: baseStyleTabpanel,\n };\n};\n\nconst sizes = {\n sm: {\n tab: {\n py: '0.25rem',\n px: 6,\n fontSize: '0.85rem',\n },\n },\n md: {\n tab: {\n fontSize: '1rem',\n py: '0.75rem',\n px: 6,\n },\n },\n lg: {\n tab: {\n fontSize: { base: '1rem', sm: '1.15rem' },\n py: '0.75rem',\n px: 6,\n },\n },\n};\n\nfunction variantLine(props: Dict) {\n const { colorScheme: c, orientation } = props;\n const isVertical = orientation === 'vertical';\n const borderProp = isVertical ? 'borderLeft' : 'borderBottom';\n const marginProp = isVertical ? 'ml' : 'mb';\n\n const _selected = {\n color: mode(`${c}.600`, `${c}.300`)(props),\n _after: {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n bottom: '-1px',\n left: 0,\n right: 0,\n height: '3px',\n bg: 'currentColor',\n },\n };\n\n return {\n tablist: {\n [borderProp]: '1px solid',\n borderColor: 'gray.100',\n },\n tab: {\n position: 'relative',\n [borderProp]: 0,\n borderColor: 'transparent',\n [marginProp]: 0,\n // set by React Router NavLink component\n '&.active': _selected,\n _selected,\n _active: {\n bg: mode(`${c}.50`, 'whiteAlpha.300')(props),\n },\n _disabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n },\n };\n}\n\nfunction variantEnclosed(props: Dict) {\n const { colorScheme: c } = props;\n return {\n tab: {\n borderTopRadius: 'md',\n border: '1px solid',\n borderColor: 'transparent',\n mb: '-1px',\n _selected: {\n color: mode(`${c}.600`, `${c}.300`)(props),\n borderColor: 'inherit',\n borderBottomColor: mode(`white`, `gray.800`)(props),\n },\n },\n tablist: {\n mb: '-1px',\n borderBottom: '1px solid',\n borderColor: 'gray.100',\n },\n };\n}\n\nfunction variantEnclosedColored(props: Dict) {\n const { colorScheme: c } = props;\n return {\n tab: {\n border: '1px solid',\n borderColor: 'inherit',\n bg: mode(`gray.50`, `whiteAlpha.50`)(props),\n mb: '-1px',\n _notLast: {\n mr: '-1px',\n },\n _selected: {\n bg: mode(`#fff`, 'gray.800')(props),\n color: mode(`${c}.600`, `${c}.300`)(props),\n borderColor: 'inherit',\n borderTopColor: 'currentColor',\n borderBottomColor: 'transparent',\n },\n },\n tablist: {\n mb: '-1px',\n borderBottom: '1px solid',\n borderColor: 'gray.100',\n },\n };\n}\n\nfunction variantSoftRounded(props: Dict) {\n const { colorScheme: c, theme } = props;\n return {\n tab: {\n borderRadius: 'full',\n fontWeight: 'semibold',\n color: 'gray.600',\n _selected: {\n color: getColor(theme, `${c}.700`),\n bg: getColor(theme, `${c}.100`),\n },\n },\n };\n}\n\nfunction variantSolidRounded(props: Dict) {\n const { colorScheme: c } = props;\n return {\n tab: {\n borderRadius: 'full',\n fontWeight: 'semibold',\n color: mode('gray.600', 'inherit')(props),\n _selected: {\n color: mode(`#fff`, 'gray.800')(props),\n bg: mode(`${c}.600`, `${c}.300`)(props),\n },\n },\n };\n}\n\nconst variantUnstyled = {};\n\nconst variantSimple = {\n tab: {\n position: 'relative',\n borderColor: 'transparent',\n '&.active': {\n color: colors.fill.action,\n bg: 'transparent',\n borderBottom: `1px solid ${colors.fill.action}`,\n },\n _selected: {\n color: colors.fill.action,\n bg: 'transparent',\n _after: {\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n bottom: '-1px',\n left: 0,\n right: 0,\n height: '3px',\n bg: 'currentColor',\n },\n },\n _active: {\n bg: 'transparent',\n },\n },\n};\n\nconst variants = {\n line: variantLine,\n enclosed: variantEnclosed,\n 'enclosed-colored': variantEnclosedColored,\n 'soft-rounded': variantSoftRounded,\n 'solid-rounded': variantSolidRounded,\n unstyled: variantUnstyled,\n simple: variantSimple,\n};\n\nconst defaultProps = {\n size: 'md',\n variant: 'line',\n colorScheme: 'blue',\n};\n\nexport default {\n parts,\n baseStyle,\n sizes,\n variants,\n defaultProps,\n};\n","import { TextProps, Text } from '@chakra-ui/react';\nimport typography from '../foundations/typography';\n\nconst { defaultProps } = Text;\n\nconst baseStyle: Partial<TextProps> = {\n fontWeight: typography.fontWeights.normal,\n fontFamily: typography.fonts.base,\n fontSize: typography.fontSizes.sm,\n lineHeight: typography.lineHeights.normal,\n letterSpacing: typography.letterSpacings.wide,\n};\n\nfunction variantHeader() {\n return {\n ...baseStyle,\n fontWeight: typography.fontWeights.bold,\n fontSize: typography.fontSizes['3xl'],\n lineHeight: typography.lineHeights[8],\n letterSpacing: typography.letterSpacings.wider,\n };\n}\nfunction variantSubheader() {\n return {\n ...baseStyle,\n fontWeight: typography.fontWeights.semibold,\n fontSize: typography.fontSizes['lg'],\n lineHeight: typography.lineHeights[5],\n letterSpacing: typography.letterSpacings.wide,\n };\n}\nfunction variantParagraph() {\n return baseStyle;\n}\n\nconst variants = {\n header: variantHeader,\n subheader: variantSubheader,\n paragraph: variantParagraph,\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps: { ...defaultProps, variant: variants.paragraph },\n};\n","import { extendTheme } from '@chakra-ui/react';\nimport breakpoints from './foundations/breakpoints';\nimport colors from './foundations/colors';\nimport shadows from './foundations/shadows';\nimport typography from './foundations/typography';\nimport Alert from './components/alert';\nimport Badge from './components/badge';\nimport Button from './components/button';\nimport Code from './components/code';\nimport Form from './components/form';\nimport FormError from './components/form-error';\nimport FormLabel from './components/form-label';\nimport Input from './components/input';\nimport Link from './components/link';\nimport Select from './components/select';\nimport Switch from './components/switch';\nimport Table from './components/table';\nimport Tabs from './components/tabs';\nimport Textarea from './components/textarea';\nimport Text from './components/text';\nimport styles from './styles';\n\nconst customXQChakraTheme = extendTheme({\n breakpoints,\n colors,\n shadows,\n ...typography,\n components: {\n Alert,\n Badge,\n Button,\n Code,\n Form,\n FormError,\n FormLabel,\n Input,\n Link,\n Select,\n Switch,\n Table,\n Tabs,\n Textarea,\n Text,\n },\n styles,\n});\n\nexport type CustomTheme = typeof customXQChakraTheme;\n\nexport default customXQChakraTheme;\n","import Badge from './badge';\n\nconst { variants, defaultProps } = Badge;\n\nconst baseStyle = {\n fontFamily: 'mono',\n fontSize: 'sm',\n px: '0.2em',\n borderRadius: 'sm',\n};\n\nexport default {\n baseStyle,\n variants,\n defaultProps,\n};\n","import colors from '../foundations/colors';\n\nconst parts = ['requiredIndicator', 'helperText'];\n\nfunction baseStyleRequiredIndicator() {\n return {\n ml: 1,\n color: colors.label.error,\n };\n}\n\nfunction baseStyleHelperText() {\n return {\n position: 'absolute',\n color: colors.label.secondary.light,\n mt: 1,\n ml: 1,\n bottom: 0,\n fontSize: '13px',\n };\n}\n\nconst baseStyle = () => ({\n requiredIndicator: baseStyleRequiredIndicator(),\n helperText: baseStyleHelperText(),\n});\n\nexport default {\n parts,\n baseStyle,\n};\n","import colors from '../foundations/colors';\n\nconst parts = ['text', 'icon'];\n\nfunction baseStyleText() {\n return {\n color: colors.label.error,\n position: 'absolute',\n bottom: 0,\n mt: 1,\n ml: 1,\n fontSize: '13px',\n };\n}\n\nfunction baseStyleIcon() {\n return {\n ml: 1,\n color: colors.label.error,\n };\n}\n\nconst baseStyle = () => ({\n text: baseStyleText(),\n icon: baseStyleIcon(),\n});\n\nexport default {\n parts,\n baseStyle,\n};\n","import colors from '../foundations/colors';\n\nconst baseStyle = {\n fontSize: '13px',\n position: 'absolute',\n top: 0,\n display: 'flex',\n ml: 1,\n mb: 1,\n color: colors.label.primary.light,\n opacity: 1,\n};\n\nexport default {\n baseStyle,\n};\n","import colors from '../foundations/colors';\n\nconst parts = ['th', 'td', 'tr', 'body', 'thead'];\n\nconst baseStyle = {\n thead: { bg: colors.label.primary.dark },\n th: {\n bg: colors.label.primary.dark,\n padding: '5px 8px !important',\n fontSize: '13px',\n },\n tr: {\n fontSize: '13px',\n h: '26px',\n lineHeight: 'normal',\n _odd: {\n td: {\n h: '26px ',\n lineHeight: 'normal',\n bg: colors.fill.light.tertiary,\n _first: {\n borderTopLeftRadius: 'md',\n borderBottomLeftRadius: 'md',\n },\n _last: {\n borderTopRightRadius: 'md',\n borderBottomRightRadius: 'md',\n },\n },\n },\n },\n td: {\n padding: '5px 8px !important',\n lineHeight: 'normal',\n h: '26px',\n },\n};\n\nexport default {\n parts,\n baseStyle,\n};\n","import Input from './input';\n\nconst baseStyle = {\n ...Input.baseStyle.field,\n fontSize: '13px',\n\n display: 'block', // Removes gap below textarea because it defaults to inline.\n paddingY: '8px',\n paddingX: '5px',\n height: '78px',\n lineHeight: 'short',\n};\n\nconst defaultProps = {\n variant: 'default',\n};\n\nexport default {\n baseStyle,\n defaultProps,\n};\n","export default {\n global: {\n 'html, body, #root': {},\n body: {\n fontFamily: 'body',\n color: 'black',\n overflow: {\n base: 'visible',\n lg: 'hidden',\n },\n lineHeight: 'normal',\n },\n '*, *::before, *::after': {\n borderColor: 'gray.200',\n },\n '*::placeholder': {\n color: 'primary',\n },\n },\n};\n","import React, { ReactNode, useMemo } from 'react';\nimport { Alert, AlertDescription, Box, Flex, Image } from '@chakra-ui/react';\nimport ErrorIcon from './assets/svg/error.svg';\nimport PositiveIcon from './assets/svg/positive.svg';\nimport NeutralIcon from './assets/svg/neutral.svg';\nimport WarningIcon from './assets/svg/warning.svg';\nimport { Button } from '../button';\n\nexport type BannerVariant = 'positive' | 'warning' | 'error' | 'neutral';\n\nexport interface BannerProps {\n variant: BannerVariant;\n message: ReactNode;\n buttonText?: string;\n onClick?: () => void;\n type?: 'condensed' | 'expanded';\n}\n\n/**\n * A functional React component utilized to render the `Banner` component\n */\nexport const Banner: React.FC<BannerProps> = ({\n variant,\n message,\n buttonText,\n onClick,\n type = 'expanded',\n}) => {\n const Icon = useMemo(() => {\n switch (variant) {\n case 'error':\n return <Image src={ErrorIcon} alt=\"error\" boxSize=\"16px\" />;\n case 'neutral':\n return <Image src={NeutralIcon} alt=\"neutral\" boxSize=\"16px\" />;\n case 'positive':\n return <Image src={PositiveIcon} alt=\"positive\" boxSize=\"16px\" />;\n case 'warning':\n return <Image src={WarningIcon} alt=\"warning\" boxSize=\"16px\" />;\n default:\n return null;\n }\n }, [variant]);\n\n return (\n <Alert variant={variant}>\n <AlertDescription>\n <Flex\n flexDirection={type === 'condensed' ? 'row' : 'column'}\n alignItems={type === 'condensed' ? 'center' : ''}\n >\n <Box pr=\"8px\">{Icon}</Box>\n <Box pt={type === 'condensed' ? 0 : '8px'}> {message}</Box>\n {onClick && buttonText && (\n <Flex\n ml={type === 'condensed' ? 'auto' : ''}\n pt={type === 'condensed' ? 0 : '8px'}\n justifyContent={type === 'condensed' ? 'flex-end' : 'flex-end'}\n >\n <Button\n variant=\"secondary\"\n onClick={onClick}\n text={buttonText}\n width=\"variable\"\n ariaLabel=\"banner button\"\n />\n </Flex>\n )}\n </Flex>\n </AlertDescription>\n </Alert>\n );\n};\n","export default \"data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5.5%205.5L8.5%208.5M8.5%205.5L5.5%208.5M13%207C13%2010.3137%2010.3137%2013%207%2013C3.68629%2013%201%2010.3137%201%207C1%203.68629%203.68629%201%207%201C10.3137%201%2013%203.68629%2013%207Z%22%20stroke%3D%22%23F96057%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M7%204.5V4C6.72386%204%206.5%204.22386%206.5%204.5H7ZM7.005%204.5H7.505C7.505%204.22386%207.28114%204%207.005%204V4.5ZM7.005%204.505V5.005C7.28114%205.005%207.505%204.78114%207.505%204.505H7.005ZM7%204.505H6.5C6.5%204.78114%206.72386%205.005%207%205.005V4.505ZM6.27639%206.05279C6.0294%206.17628%205.92929%206.47662%206.05279%206.72361C6.17628%206.9706%206.47662%207.07071%206.72361%206.94721L6.27639%206.05279ZM6.52766%206.48617L6.30405%206.03896L6.52766%206.48617ZM7.23634%207.05465L7.72141%207.17592L7.23634%207.05465ZM6.76366%208.94535L6.27859%208.82408L6.76366%208.94535ZM7.47234%209.51383L7.69595%209.96104L7.69595%209.96104L7.47234%209.51383ZM7.72361%209.94721C7.9706%209.82371%208.07071%209.52337%207.94721%209.27639C7.82371%209.0294%207.52337%208.92929%207.27639%209.05279L7.72361%209.94721ZM12.5%207C12.5%2010.0376%2010.0376%2012.5%207%2012.5V13.5C10.5899%2013.5%2013.5%2010.5899%2013.5%207H12.5ZM7%2012.5C3.96243%2012.5%201.5%2010.0376%201.5%207H0.5C0.5%2010.5899%203.41015%2013.5%207%2013.5V12.5ZM1.5%207C1.5%203.96243%203.96243%201.5%207%201.5V0.5C3.41015%200.5%200.5%203.41015%200.5%207H1.5ZM7%201.5C10.0376%201.5%2012.5%203.96243%2012.5%207H13.5C13.5%203.41015%2010.5899%200.5%207%200.5V1.5ZM7%205H7.005V4H7V5ZM6.505%204.5V4.505H7.505V4.5H6.505ZM7.005%204.005H7V5.005H7.005V4.005ZM7.5%204.505V4.5H6.5V4.505H7.5ZM6.72361%206.94721L6.75127%206.93338L6.30405%206.03896L6.27639%206.05279L6.72361%206.94721ZM6.75127%206.93338L6.27859%208.82408L7.24873%209.06662L7.72141%207.17592L6.75127%206.93338ZM7.69595%209.96104L7.72361%209.94721L7.27639%209.05279L7.24873%209.06662L7.69595%209.96104ZM6.27859%208.82408C6.07138%209.65293%206.93179%2010.3431%207.69595%209.96104L7.24873%209.06662L6.27859%208.82408ZM6.75127%206.93338L7.72141%207.17592C7.92862%206.34708%207.06821%205.65688%206.30405%206.03896L6.75127%206.93338Z%22%20fill%3D%22%233C3C43%22%20fill-opacity%3D%220.6%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%207.5L6.5%209L9%205.5M13%207C13%2010.3137%2010.3137%2013%207%2013C3.68629%2013%201%2010.3137%201%207C1%203.68629%203.68629%201%207%201C10.3137%201%2013%203.68629%2013%207Z%22%20stroke%3D%22%2334C759%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E\"","export default \"data:image/svg+xml,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M7%205V7.5M13%207C13%2010.3137%2010.3137%2013%207%2013C3.68629%2013%201%2010.3137%201%207C1%203.68629%203.68629%201%207%201C10.3137%201%2013%203.68629%2013%207ZM7%209.5H7.005V9.505H7V9.5Z%22%20stroke%3D%22%23F8CE52%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E\"","import React, { useCallback } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { Icon } from './components/icon';\nimport { Label } from './components/label';\n\nexport interface BreadcrumbsProps {\n steps: string[];\n activeStepIndex: number;\n orientation?: 'horizontal' | 'vertical';\n}\n\n/**\n * A functional React component utilized to render the `Breadcrumbs` component.\n *\n * The component will render a list of steps, based on the `steps` array, displaying the completed,\n * active, and incomplete steps. The orientation of the component may be either `horizontal` or\n * `vertical`.\n */\nexport const Breadcrumbs: React.FC<BreadcrumbsProps> = ({\n steps,\n activeStepIndex,\n orientation,\n}) => {\n const getStatus = useCallback(\n (stepIndex: number) => {\n if (activeStepIndex > stepIndex) return 'complete';\n if (activeStepIndex < stepIndex) return 'inactive';\n return 'active';\n },\n [activeStepIndex]\n );\n\n return (\n <Flex flexDir={orientation === 'horizontal' ? 'row' : 'column'}>\n {steps.map((step, idx) => (\n <Flex\n alignItems=\"center\"\n pr={orientation === 'horizontal' ? '16px' : 0}\n py=\"4px\"\n >\n <Icon step={idx + 1} status={getStatus(idx)} />\n <Label label={step} />\n </Flex>\n ))}\n </Flex>\n );\n};\n","import React, { PropsWithChildren } from 'react';\nimport { FieldValues, FormProvider } from 'react-hook-form';\nimport { FormHandler } from '../../components/form/hooks/useFormHandler';\n\nexport interface FormProps<T extends FieldValues> {\n formHandler: FormHandler<T>;\n}\n\n/**\n * A functional React component utilized to render the `Form` component, a form wrapper for\n * `react-hook-form`. The `Form` component is provided a `formHandler` and is used to wrap a container\n * that contains a `FormSection` component.\n */\nexport function Form<T extends FieldValues>({\n formHandler,\n children,\n}: PropsWithChildren<FormProps<T>>) {\n const { form, onSubmit } = formHandler;\n\n return (\n <FormProvider {...form}>\n <form onSubmit={onSubmit}>{children}</form>\n </FormProvider>\n );\n}\n","import { SimpleGrid } from '@chakra-ui/react';\nimport React from 'react';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { Input } from '../../input';\nimport { FormInput, FormStructure } from '../FormTypes';\n\n/**\n * @param T - represents the key/section in the `FormStructure`.\n * @param U - is the form value types for the `useFormHandler` hook.\n *\n * @param formStructure - the form of type form structure with their respective `FormSteps`.\n * @param section - the section (`FormStep`) we want to generate a section for.\n * @param form - the overall form containing methods (generated by `useFormHandler` hook).\n */\nexport interface FormSectionProps<\n T extends string | number | symbol,\n U extends FieldValues\n> {\n formStructure: FormStructure<T>;\n section: T;\n form: UseFormReturn<U>;\n className?: string;\n columns?: number;\n spacing?: number;\n}\n\n/**\n *\n * @param props - of type `FormSectionProps<T, U>` where `T` represents the key in `FormSteps`,\n * can be generic key but is represented by value in `FormSteps` and `U` is the form value types for the\n * `useFormHandler` hook.\n *\n * @returns a list of input's for a specific form section.\n */\nexport function FormSection<\n T extends string | number | symbol,\n U extends FieldValues\n>({\n formStructure,\n section,\n form,\n className,\n columns = 1,\n spacing = 0,\n}: FormSectionProps<T, U>) {\n return (\n <SimpleGrid\n columns={columns}\n spacing={spacing}\n className={`form-section ${className ?? ''}`}\n >\n {formStructure[section].map(\n ({\n label,\n inputType,\n name,\n options,\n isRequired,\n maxLength,\n ariaLabel,\n disabled,\n defaultValue,\n }: FormInput) => (\n <Input<U>\n control={form.control}\n label={label}\n inputType={inputType}\n name={name}\n ariaLabel={ariaLabel}\n disabled={disabled}\n options={options}\n isRequired={isRequired}\n maxLength={maxLength}\n isInvalid={!!form.formState.errors[name]}\n defaultValue={defaultValue}\n setValue={form.setValue}\n setError={form.setError}\n clearErrors={form.clearErrors}\n />\n )\n )}\n </SimpleGrid>\n );\n}\n","import React from 'react';\nimport { Button, Text, Icon } from '@chakra-ui/react';\nimport GoogleLogo from './assets/GoogleLogo.svg';\n\nexport interface GoogleButtonProps {\n onClick: () => void;\n}\n\n/**\n * A functional React component utilized to render the `GoogleButton` component\n */\nexport const GoogleButton: React.FC<GoogleButtonProps> = ({ onClick }) => {\n return (\n <Button\n onClick={onClick}\n variant=\"plain\"\n size=\"lg\"\n borderRadius=\"2px\"\n aria-label=\"google-login-button\"\n className=\"google-button\"\n px={4}\n leftIcon={<Icon as={GoogleLogo} width={18} height={18} mr={3} />}\n fontFamily=\"Roboto, sans-serif\"\n fontWeight=\"500\"\n fontSize={14}\n backgroundColor=\"white\"\n boxShadow=\"rgba(0, 0, 0, 0.24) 0px 0px 1px 0px, rgba(0, 0, 0, 0.24) 0px 2px 2px 0px\"\n >\n <Text color=\"rgba(0, 0, 0, 0.54)\">{'Sign in with Google'}</Text>\n </Button>\n );\n};\n","export default \"data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%20533.5%20544.3%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20%20%20%20d%3D%22M533.5%20278.4c0-18.5-1.5-37.1-4.7-55.3H272.1v104.8h147c-6.1%2033.8-25.7%2063.7-54.4%2082.7v68h87.7c51.5-47.4%2081.1-117.4%2081.1-200.2z%22%20%20%20%20fill%3D%22%234285f4%22%20%20%2F%3E%3Cpath%20%20%20%20d%3D%22M272.1%20544.3c73.4%200%20135.3-24.1%20180.4-65.7l-87.7-68c-24.4%2016.6-55.9%2026-92.6%2026-71%200-131.2-47.9-152.8-112.3H28.9v70.1c46.2%2091.9%20140.3%20149.9%20243.2%20149.9z%22%20%20%20%20fill%3D%22%2334a853%22%20%20%2F%3E%3Cpath%20%20%20%20d%3D%22M119.3%20324.3c-11.4-33.8-11.4-70.4%200-104.2V150H28.9c-38.6%2076.9-38.6%20167.5%200%20244.4l90.4-70.1z%22%20%20%20%20fill%3D%22%23fbbc04%22%20%20%2F%3E%3Cpath%20%20%20%20d%3D%22M272.1%20107.7c38.8-.6%2076.3%2014%20104.4%2040.8l77.7-77.7C405%2024.6%20339.7-.8%20272.1%200%20169.2%200%2075.1%2058%2028.9%20150l90.4%2070.1c21.5-64.5%2081.8-112.4%20152.8-112.4z%22%20%20%20%20fill%3D%22%23ea4335%22%20%20%2F%3E%3C%2Fsvg%3E\"","import React, { ReactNode, useState } from 'react';\nimport {\n Box,\n Collapse,\n Flex,\n Grid,\n GridItem,\n IconButton,\n useMediaQuery,\n} from '@chakra-ui/react';\nimport { HamburgerIcon, CloseIcon } from '@chakra-ui/icons';\nimport { BorderedBox } from './BorderedBox';\n\nexport interface LayoutProps {\n Navigation?: ReactNode;\n Header?: ReactNode;\n MainContent?: ReactNode;\n navbarWidth?: string;\n}\n\n/**\n * A functional React component utilized to render the `Layout` component\n */\nexport const Layout: React.FC<LayoutProps> = ({\n Navigation,\n Header,\n MainContent,\n navbarWidth = '250px',\n}) => {\n const [isLargerThan1200] = useMediaQuery('(min-width: 1200px)');\n\n const [show, setShow] = useState(false);\n\n return (\n <Grid\n templateAreas={\n isLargerThan1200 ? `\"nav header\" \"nav main\"` : `\"header\" \"main\"`\n }\n gridTemplateRows=\"auto 1fr\"\n gridTemplateColumns={isLargerThan1200 ? `${navbarWidth} 1fr` : '100% 1fr'}\n h=\"100%\"\n width=\"100%\"\n gap=\"4\"\n bg=\"#f5f5f5\"\n >\n <GridItem area=\"header\" p=\"20px 20px 10px 10px\" minHeight=\"100px\">\n <BorderedBox\n borderRadius=\"md\"\n boxShadow=\"rgba(235,237,238,.75) 8px 0 30px 10px\"\n >\n <Flex\n flexDirection=\"column\"\n justifyContent=\"center\"\n width=\"100%\"\n pl={'32px'}\n py={5}\n >\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n {Header}\n {!isLargerThan1200 && (\n <IconButton\n size=\"md\"\n variant=\"unstyled\"\n alignSelf=\"flex-start\"\n aria-label=\"menu\"\n type=\"button\"\n onClick={() => setShow(!show)}\n icon={show ? <CloseIcon /> : <HamburgerIcon />}\n _focus={{\n boxShadow: 'none',\n }}\n />\n )}\n </Flex>\n {!isLargerThan1200 && (\n <Collapse in={show}>\n <Box marginTop={5}>{Navigation}</Box>\n </Collapse>\n )}\n </Flex>\n </BorderedBox>\n </GridItem>\n {isLargerThan1200 && (\n <GridItem area=\"nav\" width={navbarWidth}>\n <BorderedBox boxShadow=\"rgba(0, 0, 0, 0.035) 0px 2px 10px\">\n {Navigation}\n </BorderedBox>\n </GridItem>\n )}\n <GridItem area=\"main\" p=\"0 20px 20px 10px\">\n <BorderedBox\n borderRadius=\"md\"\n boxShadow=\"rgba(0, 0, 0, 0.035) 0px 2px 10px\"\n >\n {MainContent}\n </BorderedBox>\n </GridItem>\n </Grid>\n );\n};\n","import React from 'react';\nimport { Flex, Spinner, Text } from '@chakra-ui/react';\nimport colors from '../../theme/foundations/colors';\n\nexport interface LoadingIndicatorProps {\n size?: 'sm' | 'md' | 'lg' | 'xs' | 'xl';\n text?: string;\n thickness?: string;\n speed?: string;\n className?: string;\n}\n\n/**\n * A functional React component utilized to render the `LoadingIndicator` component\n */\nexport const LoadingIndicator: React.FC<LoadingIndicatorProps> = ({\n size = 'xl',\n text = 'Loading',\n thickness = '3px',\n speed = '0.5s',\n className,\n}) => {\n return (\n <Flex\n flexDirection=\"column\"\n alignItems=\"center\"\n aria-label=\"loading-indicator\"\n className={`loading-indicator ${className ?? ''}`}\n >\n <Spinner\n size={size}\n color={colors.fill.action}\n flex=\"none\"\n thickness={thickness}\n speed={speed}\n mb={2}\n />\n {text && (\n <Text fontSize={size} lineHeight=\"shorter\" fontWeight=\"semibold\">\n {text}\n </Text>\n )}\n </Flex>\n );\n};\n","import React from 'react';\nimport { Button, Spinner } from '@chakra-ui/react';\nimport { ButtonProps } from '..';\n\nexport interface SpinnerButtonProps extends ButtonProps {\n isLoading: boolean;\n}\n\n/**\n * A functional React component utilized to render the `SpinnerButton` component\n */\nexport const SpinnerButton: React.FC<SpinnerButtonProps> = ({\n isLoading,\n text,\n onClick,\n type,\n ariaLabel,\n variant = 'primary',\n disabled,\n className,\n}) => {\n return (\n <Button\n spinner={<Spinner size={'sm'} />}\n isLoading={isLoading}\n onClick={onClick}\n type={type}\n variant={variant}\n disabled={disabled}\n aria-label={ariaLabel}\n className={className}\n >\n {text}\n </Button>\n );\n};\n","import React from 'react';\nimport {\n ReadonlyTableColumns,\n TableBody,\n TableColumns,\n TableHeaders,\n} from './TableTypes';\nimport { generateTableColumnsAsConst } from './utils/generateTableColumns';\n\nimport {\n Table as ChakraTable,\n TableContainer,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n} from '@chakra-ui/react';\nimport { TableLoadingRows } from './components/loading';\nimport colors from '../../theme/foundations/colors';\nimport { EmptyTable } from './empty';\n\nexport interface TableProps<T extends ReadonlyTableColumns> {\n columns: TableColumns;\n headers: TableHeaders<T>;\n body: TableBody<T>;\n loading?: boolean;\n loadMore?: () => void;\n placeholder?: string;\n}\n\n/**\n * A React component utilized to render the `Table` component\n */\nexport function Table<T extends ReadonlyTableColumns>({\n columns,\n headers,\n body,\n loading,\n loadMore,\n}: TableProps<T>) {\n const columnsAsConst = generateTableColumnsAsConst(columns);\n\n return (\n <TableContainer border=\"none\" overflowX=\"auto\" bg=\"white\" width=\"100%\">\n {body.length ? (\n <ChakraTable\n variant=\"unstyled\"\n width=\"100%\"\n style={{\n borderCollapse: 'separate',\n borderSpacing: '0px',\n }}\n >\n <Thead>\n <Tr _odd={{ bg: colors.label.primary.dark }}>\n {columnsAsConst.map(column => (\n // @ts-ignore\n <Th>{headers[column]}</Th>\n ))}\n </Tr>\n </Thead>\n <Tbody>\n {body.map(row => (\n <Tr>\n {columnsAsConst.map(column => (\n // @ts-ignore\n <Td>{row[column]}</Td>\n ))}\n </Tr>\n ))}\n </Tbody>\n </ChakraTable>\n ) : (\n <EmptyTable />\n )}\n {loadMore && loading !== undefined && body.length ? (\n <TableLoadingRows isLoading={loading} onLoadMore={loadMore} />\n ) : null}\n </TableContainer>\n );\n}\n","import React, { PropsWithChildren, ReactNode } from 'react';\nimport { Tab, TabList, Tabs } from '@chakra-ui/react';\nimport colors from '../../theme/foundations/colors';\n\nexport interface TabsWrapperProps extends PropsWithChildren {\n navIndex: number;\n setNavIndex: (index: number) => void;\n navItems: ReactNode[];\n}\n\n/**\n * A functional React component utilized to render the `TableNavWrapper` component\n */\nexport const TabsWrapper: React.FC<TabsWrapperProps> = ({\n children,\n navItems,\n navIndex,\n setNavIndex,\n}) => {\n return (\n <Tabs size=\"lg\" variant=\"simple\" index={navIndex} onChange={setNavIndex}>\n <TabList\n flexDirection={{ base: 'column', sm: 'row' }}\n border=\"1px\"\n borderColor={colors.fill.light.quaternary}\n bg=\"white\"\n borderRadius=\"md\"\n borderBottom={0}\n borderBottomLeftRadius={0}\n borderBottomRightRadius={0}\n >\n {navItems.map(navItem => (\n <Tab>{navItem}</Tab>\n ))}\n </TabList>\n {children}\n </Tabs>\n );\n};\n","import React, { PropsWithChildren } from 'react';\nimport { Text as ChakraText, TypographyProps } from '@chakra-ui/react';\nimport textTheme from '../../theme/components/text';\nimport typography from '../../theme/foundations/typography';\nimport colors from '../../theme/foundations/colors';\n\nexport interface TextProps extends PropsWithChildren, TypographyProps {\n variant: keyof typeof textTheme.variants;\n color?: string;\n fontSize?: keyof typeof typography.fontSizes;\n lineHeight?: keyof typeof typography.lineHeights;\n letterSpacing?: keyof typeof typography.letterSpacings;\n fontWeight?: keyof typeof typography.fontWeights;\n className?: string;\n}\n\n/**\n * A functional React component utilized to render the `Text` component. The component is mainly\n * controlled by by the `variant` prop which determines `fontSize`, `fontWeight`, etc.\n * Also extends `TypographyProps`.\n */\nexport const Text: React.FC<TextProps> = ({\n children,\n fontSize,\n lineHeight,\n letterSpacing,\n fontWeight,\n variant,\n color = colors.label.primary.light,\n className,\n}) => {\n return (\n <ChakraText\n fontSize={fontSize}\n lineHeight={lineHeight}\n letterSpacing={letterSpacing}\n fontWeight={fontWeight}\n color={color}\n variant={variant}\n className={`${variant} ${className || ''}`}\n >\n {children}\n </ChakraText>\n );\n};\n","import React from 'react';\nimport { ChakraProvider, ChakraProviderProps } from '@chakra-ui/provider';\nimport customXQChakraTheme from '../customXQChakraTheme';\n\n/**\n * A functional React wrapper component utilized to consume the custom XQ theme via `ChakraProvider`\n */\nexport const XQThemeProvider: React.FC<ChakraProviderProps> = ({\n children,\n cssVarsRoot,\n}) => {\n return (\n <ChakraProvider\n theme={customXQChakraTheme}\n resetCSS\n cssVarsRoot={cssVarsRoot}\n >\n {children}\n </ChakraProvider>\n );\n};\n","/* eslint-disable no-redeclare */\nimport { AxiosError } from 'axios';\n\nexport type ErrorResponse = {\n message: string;\n};\n\nexport function formatErrorResponse(error: AxiosError): ErrorResponse;\nexport function formatErrorResponse(error: Error): ErrorResponse;\nexport function formatErrorResponse(error: any): ErrorResponse {\n // This is an error returned from the backend\n if (error.response?.data?.status) {\n return {\n message: error.response?.data?.status,\n };\n }\n\n // This is any generic error\n if (error instanceof Error) {\n return {\n message: error.message,\n };\n }\n\n // This would happen if a developer threw an error that isn't actually an error class. Don't do that...\n console.error(\n 'Caught an error that is not an instance of an error! Replacing with a proper error but please fix this.',\n error\n );\n\n return {\n message: 'An unknown error has occurred',\n };\n}\n"],"names":["Button","type","variant","React","ChakraButton","onClick","disabled","ariaLabel","className","width","text","colors","label","primary","light","dark","secondary","error","border","focus","default","fill","tertiary","quaternary","success","warning","action","semantic","transparent","current","black","white","lightBlue","coolGray","darkBlue","backdrop","whiteAlpha","50","100","200","300","400","500","600","700","800","900","blackAlpha","gray","red","orange","green","blue","Icon","step","status","getColors","useMemo","bg","color","Flex","boxSize","borderRadius","alignItems","justifyContent","Text","fontSize","Label","Box","pl","StackedCheckbox","forwardRef","_ref","defaultValue","Checkbox","ref","value","String","defaultChecked","Boolean","StackedInput","isRequired","rightElement","leftElement","props","InputGroup","Input","StackedRadioGroup","flexDirection","RadioGroup","name","id","options","map","option","mr","key","Radio","Dropdown","onSelectItem","dropdownRef","position","optionIndex","DropdownContent","idx","fontWeight","px","whiteSpace","my","borderTop","borderColor","cursor","py","_hover","scrollMargin","backdropFilter","backdropBlur","mt","maxH","overflowY","top","undefined","bottom","minWidth","zIndex","tabIndex","useOnClickOutside","handler","useEffect","listener","event","contains","target","document","addEventListener","removeEventListener","_path","StackedSelect","func","deps","didMount","setValue","handleOnChange","useRef","dropdownMenuRef","useState","isFocussed","setIsFocussed","find","_options$find","selectedOption","setSelectedOption","setOptionIndex","setPosition","searchValue","setSearchValue","debouncedSearchValue","setDebouncedSearchValue","boundingClientRect","_dropdownRef$current","getBoundingClientRect","_dropdownRef$current2","window","innerHeight","y","_options$find2","length","findIndex","substring","toLowerCase","scrollTo","behavior","updateSearchValue","debounce","val","textShadow","autoComplete","onChange","e","update","concat","onKeyDown","initialOptionIndex","_dropdownMenuRef$curr","_dropdownMenuRef$curr2","_","shouldDirty","shouldValidate","InputRightElement","Image","src","SubtractIcon","alt","handleOnSelectItem","StackedTextarea","Textarea","_extends","Object","assign","bind","i","arguments","source","prototype","hasOwnProperty","call","apply","this","Memo","memo","React.createElement","viewBox","xmlns","fillRule","clipRule","d","fillOpacity","Token","onDelete","backgroundColor","w","h","pr","truncate","trim","omission","CloseIcon","height","StackedMultiSelect","placeholder","watchedValue","useWatch","control","scrollRef","inputRef","localValues","setLocalValues","localOptions","setLocalOptions","shouldSideScroll","setShouldSideScroll","console","log","left","_scrollRef$current","scrollWidth","split","filter","prevLocalOptions","localOption","includes","handleChange","newValue","join","prevLocalOption","prevLocalValues","overflowX","style","scrollbarWidth","msOverflowStyle","sx","::-webkit-scrollbar","display","localValue","sort","a","b","sortValue","prevLocalValue","handleDelete","padding","_focus","boxShadow","StackedPilledInput","clearErrors","lastestFormValueToArray","setLatestFormValueToArray","inputWrapperRef","tokenIndex","setTokenIndex","setLocalValue","latestTokenElement","getElementById","scrollIntoView","block","inline","useOutsideClick","filteredUniqueValues","Array","from","Set","toString","replace","maxWidth","index","stopPropagation","preventDefault","onRemoveTag","flex","prevTokenIndex","tokenElement","scrollBy","alignContent","float","onFocus","onBlur","StackedSwitch","Switch","mx","checked","tooltipText","FormLabel","ml","Tooltip","placement","QuestionOutlineIcon","inputType","helperText","isInvalid","errorText","maxLength","setError","Controller","rules","required","render","field","fieldOnChange","FormControl","StackedCheckBox","selectedInputField","FormErrorMessage","FormHelperText","BorderedBox","children","typography","letterSpacings","tighter","tight","normal","wide","wider","widest","lineHeights","none","shorter","short","base","tall","taller","3","4","5","6","7","8","9","10","fontWeights","hairline","thin","medium","semibold","bold","extrabold","fonts","mono","fontSizes","xs","sm","md","lg","xl","2xl","3xl","4xl","5xl","6xl","TableLoadingRows","onLoadMore","direction","borderTopColor","isLoading","Spinner","size","IconButton","icon","HiOutlineRefresh","shadow","EmptyTable","getOpacity","ChakraTable","borderCollapse","borderSpacing","Tbody","Tr","Td","opacity","breakpoints","createBreakpoints","shadows","insetOutline","outline","outlineDanger600","inner","dark-lg","parts","baseStyle","container","description","textAlign","lineHeight","variants","positive","neutral","defaultProps","textTransform","solid","c","colorScheme","theme","transparentize","mode","subtle","darkBg","darkColor","lightColor","getColor","defineStyle","bgGradient","_disabled","pointerEvents","_active","outlineOffset","variantPrimary","variantSecondary","::placeholder","sidebar","transition","textDecoration","&.active","sidebarExact","subNavigation","mb","navlink","baseStyleInput","appearance","paddingBottom","> option","baseStyleTrack","p","_checked","baseStyleThumb","transform","baseStyleRoot","orientation","baseStyleTab","isFitted","baseStyleTablist","align","end","center","start","baseStyleTabpanel","fontFamily","letterSpacing","header","subheader","paragraph","customXQChakraTheme","extendTheme","components","Alert","Badge","Code","Form","requiredIndicator","FormError","Link","Select","track","thumb","sizes","Table","thead","th","tr","_odd","td","_first","borderTopLeftRadius","borderBottomLeftRadius","_last","borderTopRightRadius","borderBottomRightRadius","Tabs","root","tab","tablist","tabpanel","line","isVertical","borderProp","marginProp","_selected","_after","content","right","enclosed","borderTopRadius","borderBottomColor","borderBottom","enclosed-colored","_notLast","soft-rounded","solid-rounded","unstyled","simple","paddingY","paddingX","styles","global","html, body, #root","body","overflow","*, *::before, *::after","*::placeholder","message","buttonText","AlertDescription","pt","steps","activeStepIndex","getStatus","useCallback","stepIndex","flexDir","formHandler","onSubmit","FormProvider","form","columns","spacing","SimpleGrid","formStructure","section","formState","errors","leftIcon","as","Navigation","Header","MainContent","navbarWidth","isLargerThan1200","useMediaQuery","show","setShow","Grid","templateAreas","gridTemplateRows","gridTemplateColumns","gap","GridItem","area","minHeight","alignSelf","HamburgerIcon","Collapse","in","marginTop","thickness","speed","spinner","headers","loading","loadMore","columnsAsConst","TableContainer","Thead","column","Th","row","navIndex","setNavIndex","TabList","navItems","navItem","Tab","ChakraText","ChakraProvider","resetCSS","cssVarsRoot","response","_error$response","data","_error$response$data","_error$response2","_error$response2$data","Error"],"mappings":"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"}
|