@xqmsg/ui-core 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +181 -0
  3. package/dist/components/banner/Banner.stories.d.ts +5 -0
  4. package/dist/components/banner/index.d.ts +12 -0
  5. package/dist/components/breadcrumbs/Breadcrumbs.stories.d.ts +5 -0
  6. package/dist/components/breadcrumbs/components/icon/index.d.ts +9 -0
  7. package/dist/components/breadcrumbs/components/label/index.d.ts +8 -0
  8. package/dist/components/breadcrumbs/index.d.ts +14 -0
  9. package/dist/components/button/Button.stories.d.ts +5 -0
  10. package/dist/components/button/google/GoogleButton.stories.d.ts +5 -0
  11. package/dist/components/button/google/index.d.ts +8 -0
  12. package/dist/components/button/index.d.ts +20 -0
  13. package/dist/components/button/spinner/SpinnerButton.stories.d.ts +5 -0
  14. package/dist/components/button/spinner/index.d.ts +9 -0
  15. package/dist/components/form/Form.stories.d.ts +8 -0
  16. package/dist/components/form/FormTypes.d.ts +16 -0
  17. package/dist/components/form/hooks/useFormHandler.d.ts +10 -0
  18. package/dist/components/form/index.d.ts +12 -0
  19. package/dist/components/form/section/FormSection.stories.d.ts +9 -0
  20. package/dist/components/form/section/index.d.ts +28 -0
  21. package/dist/components/form/utils/formErrors.d.ts +6 -0
  22. package/dist/components/input/Input.stories.d.ts +8 -0
  23. package/dist/components/input/InputTypes.d.ts +27 -0
  24. package/dist/components/input/StackedCheckbox/StackedCheckboxGroup.d.ts +10 -0
  25. package/dist/components/input/StackedInput/StackedInput.d.ts +13 -0
  26. package/dist/components/input/StackedMultiSelect/components/MultiValue/index.d.ts +10 -0
  27. package/dist/components/input/StackedMultiSelect/index.d.ts +13 -0
  28. package/dist/components/input/StackedPilledInput/index.d.ts +12 -0
  29. package/dist/components/input/StackedRadio/StackedRadioGroup.d.ts +11 -0
  30. package/dist/components/input/StackedSelect/StackedSelect.d.ts +10 -0
  31. package/dist/components/input/StackedSwitch/index.d.ts +9 -0
  32. package/dist/components/input/StackedTextarea/StackedTextarea.d.ts +9 -0
  33. package/dist/components/input/components/InputTag/index.d.ts +7 -0
  34. package/dist/components/input/index.d.ts +26 -0
  35. package/dist/components/layout/BorderedBox/index.d.ts +9 -0
  36. package/dist/components/layout/Layout.stories.d.ts +5 -0
  37. package/dist/components/layout/index.d.ts +11 -0
  38. package/dist/components/loading/LoadingIndicator.stories.d.ts +5 -0
  39. package/dist/components/loading/index.d.ts +12 -0
  40. package/dist/components/table/Table.stories.d.ts +6 -0
  41. package/dist/components/table/TableTypes.d.ts +11 -0
  42. package/dist/components/table/index.d.ts +17 -0
  43. package/dist/components/table/loading/index.d.ts +10 -0
  44. package/dist/components/table/utils/generateTableColumns.d.ts +6 -0
  45. package/dist/components/tabs/TabsWrapper.stories.d.ts +6 -0
  46. package/dist/components/tabs/index.d.ts +10 -0
  47. package/dist/components/text/Text.stories.d.ts +5 -0
  48. package/dist/components/text/index.d.ts +19 -0
  49. package/dist/hooks/useDeepEffect.d.ts +5 -0
  50. package/dist/hooks/useDidMountEffect.d.ts +2 -0
  51. package/dist/index.d.ts +15 -0
  52. package/dist/index.js +8 -0
  53. package/dist/theme/components/alert.d.ts +46 -0
  54. package/dist/theme/components/badge.d.ts +32 -0
  55. package/dist/theme/components/button.d.ts +231 -0
  56. package/dist/theme/components/code.d.ts +27 -0
  57. package/dist/theme/components/form-error.d.ts +16 -0
  58. package/dist/theme/components/form-label.d.ts +15 -0
  59. package/dist/theme/components/form.d.ts +16 -0
  60. package/dist/theme/components/input.d.ts +182 -0
  61. package/dist/theme/components/link.d.ts +97 -0
  62. package/dist/theme/components/menu.d.ts +48 -0
  63. package/dist/theme/components/modal.d.ts +242 -0
  64. package/dist/theme/components/select.d.ts +191 -0
  65. package/dist/theme/components/switch.d.ts +76 -0
  66. package/dist/theme/components/tabs.d.ts +219 -0
  67. package/dist/theme/components/text.d.ts +1373 -0
  68. package/dist/theme/components/textarea.d.ts +137 -0
  69. package/dist/theme/customXQChakraTheme.d.ts +3 -0
  70. package/dist/theme/foundations/breakpoints.d.ts +3 -0
  71. package/dist/theme/foundations/colors.d.ts +126 -0
  72. package/dist/theme/foundations/shadows.d.ts +17 -0
  73. package/dist/theme/foundations/typography.d.ts +56 -0
  74. package/dist/theme/provider/index.d.ts +6 -0
  75. package/dist/theme/styles.d.ts +20 -0
  76. package/dist/ui-core.cjs.development.js +3034 -0
  77. package/dist/ui-core.cjs.development.js.map +1 -0
  78. package/dist/ui-core.cjs.production.min.js +2 -0
  79. package/dist/ui-core.cjs.production.min.js.map +1 -0
  80. package/dist/ui-core.esm.js +3013 -0
  81. package/dist/ui-core.esm.js.map +1 -0
  82. package/package.json +113 -0
  83. package/src/components/banner/Banner.stories.tsx +68 -0
  84. package/src/components/banner/assets/svg/error.svg +3 -0
  85. package/src/components/banner/assets/svg/neutral.svg +3 -0
  86. package/src/components/banner/assets/svg/positive.svg +3 -0
  87. package/src/components/banner/assets/svg/warning.svg +3 -0
  88. package/src/components/banner/index.tsx +63 -0
  89. package/src/components/breadcrumbs/Breadcrumbs.stories.tsx +66 -0
  90. package/src/components/breadcrumbs/components/icon/index.tsx +40 -0
  91. package/src/components/breadcrumbs/components/label/index.tsx +20 -0
  92. package/src/components/breadcrumbs/index.tsx +47 -0
  93. package/src/components/button/Button.stories.tsx +46 -0
  94. package/src/components/button/google/GoogleButton.stories.tsx +23 -0
  95. package/src/components/button/google/assets/GoogleLogo.svg +13 -0
  96. package/src/components/button/google/index.tsx +32 -0
  97. package/src/components/button/index.tsx +54 -0
  98. package/src/components/button/spinner/SpinnerButton.stories.tsx +60 -0
  99. package/src/components/button/spinner/index.tsx +42 -0
  100. package/src/components/form/Form.stories.tsx +62 -0
  101. package/src/components/form/FormTypes.ts +18 -0
  102. package/src/components/form/hooks/useFormHandler.tsx +74 -0
  103. package/src/components/form/index.tsx +25 -0
  104. package/src/components/form/section/FormSection.stories.tsx +109 -0
  105. package/src/components/form/section/index.tsx +81 -0
  106. package/src/components/form/utils/formErrors.ts +34 -0
  107. package/src/components/input/Input.stories.tsx +171 -0
  108. package/src/components/input/InputTypes.ts +71 -0
  109. package/src/components/input/StackedCheckbox/StackedCheckboxGroup.tsx +29 -0
  110. package/src/components/input/StackedInput/StackedInput.tsx +30 -0
  111. package/src/components/input/StackedMultiSelect/components/MultiValue/index.tsx +21 -0
  112. package/src/components/input/StackedMultiSelect/index.tsx +145 -0
  113. package/src/components/input/StackedPilledInput/index.tsx +169 -0
  114. package/src/components/input/StackedRadio/StackedRadioGroup.tsx +38 -0
  115. package/src/components/input/StackedSelect/StackedSelect.tsx +33 -0
  116. package/src/components/input/StackedSwitch/index.tsx +28 -0
  117. package/src/components/input/StackedTextarea/StackedTextarea.tsx +17 -0
  118. package/src/components/input/components/InputTag/index.tsx +24 -0
  119. package/src/components/input/index.tsx +271 -0
  120. package/src/components/layout/BorderedBox/index.tsx +30 -0
  121. package/src/components/layout/Layout.stories.tsx +40 -0
  122. package/src/components/layout/index.tsx +100 -0
  123. package/src/components/loading/LoadingIndicator.stories.tsx +45 -0
  124. package/src/components/loading/index.tsx +45 -0
  125. package/src/components/table/Table.stories.tsx +73 -0
  126. package/src/components/table/TableTypes.ts +35 -0
  127. package/src/components/table/index.tsx +88 -0
  128. package/src/components/table/loading/index.tsx +42 -0
  129. package/src/components/table/utils/generateTableColumns.ts +9 -0
  130. package/src/components/tabs/TabsWrapper.stories.tsx +85 -0
  131. package/src/components/tabs/index.tsx +39 -0
  132. package/src/components/text/Text.stories.tsx +59 -0
  133. package/src/components/text/index.tsx +45 -0
  134. package/src/hooks/useDeepEffect.tsx +22 -0
  135. package/src/hooks/useDidMountEffect.tsx +13 -0
  136. package/src/index.tsx +48 -0
  137. package/src/theme/components/alert.ts +60 -0
  138. package/src/theme/components/badge.ts +59 -0
  139. package/src/theme/components/button.ts +211 -0
  140. package/src/theme/components/code.ts +16 -0
  141. package/src/theme/components/form-error.ts +32 -0
  142. package/src/theme/components/form-label.ts +16 -0
  143. package/src/theme/components/form.ts +32 -0
  144. package/src/theme/components/input.ts +213 -0
  145. package/src/theme/components/link.ts +117 -0
  146. package/src/theme/components/menu.ts +70 -0
  147. package/src/theme/components/modal.ts +216 -0
  148. package/src/theme/components/select.ts +41 -0
  149. package/src/theme/components/switch.ts +89 -0
  150. package/src/theme/components/tabs.ts +255 -0
  151. package/src/theme/components/text.ts +46 -0
  152. package/src/theme/components/textarea.ts +54 -0
  153. package/src/theme/customXQChakraTheme.ts +52 -0
  154. package/src/theme/foundations/breakpoints.ts +18 -0
  155. package/src/theme/foundations/colors.ts +136 -0
  156. package/src/theme/foundations/shadows.ts +23 -0
  157. package/src/theme/foundations/typography.ts +62 -0
  158. package/src/theme/provider/index.tsx +16 -0
  159. package/src/theme/styles.ts +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-core.cjs.production.min.js","sources":["../src/theme/foundations/colors.ts","../src/components/breadcrumbs/components/icon/index.tsx","../src/components/breadcrumbs/components/label/index.tsx","../src/components/input/StackedCheckbox/StackedCheckboxGroup.tsx","../src/components/input/StackedInput/StackedInput.tsx","../src/components/input/StackedRadio/StackedRadioGroup.tsx","../src/components/input/StackedSelect/StackedSelect.tsx","../src/components/input/StackedTextarea/StackedTextarea.tsx","../src/components/input/components/InputTag/index.tsx","../src/components/input/StackedMultiSelect/components/MultiValue/index.tsx","../src/components/input/StackedMultiSelect/index.tsx","../src/components/input/StackedPilledInput/index.tsx","../src/components/input/StackedSwitch/index.tsx","../src/components/input/index.tsx","../src/components/layout/BorderedBox/index.tsx","../src/theme/foundations/typography.ts","../src/components/table/loading/index.tsx","../src/theme/components/badge.ts","../src/theme/components/button.ts","../src/theme/components/form.ts","../src/theme/components/form-error.ts","../src/theme/components/input.ts","../src/theme/components/link.ts","../src/theme/components/menu.ts","../src/theme/components/modal.ts","../src/theme/components/select.ts","../src/theme/components/switch.ts","../src/theme/components/tabs.ts","../src/theme/components/textarea.ts","../src/theme/components/text.ts","../src/theme/customXQChakraTheme.ts","../src/theme/foundations/breakpoints.ts","../src/theme/foundations/shadows.ts","../src/theme/components/alert.ts","../src/theme/components/code.ts","../src/theme/components/form-label.ts","../src/theme/styles.ts","../src/components/banner/index.tsx","../src/components/breadcrumbs/index.tsx","../src/components/button/index.tsx","../src/components/form/index.tsx","../src/components/form/section/index.tsx","../src/components/button/google/index.tsx","../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":["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 aliases: Record<string, ColorHues> = {\n primary: blue,\n success: green,\n warning: orange,\n danger: red,\n};\n\nconst label = {\n primary: { light: '#000000', dark: '#FFFFFF' },\n};\n\nconst colors = {\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 ...aliases,\n label,\n\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: '#0082FF', color: colors.label.primary.dark };\n case 'inactive':\n return { bg: '#7474800D', color: colors.label.primary.light };\n }\n }, [status]);\n\n const { bg, color } = getColors;\n\n return (\n <Flex\n boxSize=\"20px\"\n bg={bg}\n borderRadius=\"100%\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n <Text fontSize=\"12px\" color={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 { Flex, InputGroup, Checkbox } from '@chakra-ui/react';\nimport { FieldOptions, SelectFieldProps } from '../InputTypes';\n\nexport interface StackedCheckboxGroupProps extends SelectFieldProps {\n options: FieldOptions;\n}\n\n/**\n * A functional React component utilized to render the `StackedCheckbox` component.\n */\nconst StackedCheckboxGroup = React.forwardRef<\n HTMLInputElement,\n StackedCheckboxGroupProps\n>(({ options }, _ref) => {\n return (\n <InputGroup>\n {options.map(option => (\n <Flex mr=\"30px\" alignItems=\"center\" key={option.value}>\n <Checkbox ref={_ref} value={option.value}>\n {option.label}\n </Checkbox>\n </Flex>\n ))}\n </InputGroup>\n );\n});\n\nexport default StackedCheckboxGroup;\n","import React from 'react';\nimport { Input, InputGroup } from '@chakra-ui/react';\nimport { InputFieldProps } from '../InputTypes';\n\nexport interface StackedInputProps extends InputFieldProps {\n label?: string;\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, leftElement, rightElement, ...props },\n _ref\n ) => {\n return (\n <InputGroup>\n {leftElement && leftElement}\n <Input ref={_ref} type={type} isRequired={isRequired} {...props} />\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","import React from 'react';\nimport { InputGroup, Select } from '@chakra-ui/react';\nimport { FieldOptions, SelectFieldProps } from '../InputTypes';\n\nexport interface StackedSelectProps extends SelectFieldProps {\n options: FieldOptions;\n}\n\n/**\n * A functional React component utilized to render the `StackedSelect` component.\n */\nconst StackedSelect = React.forwardRef<HTMLSelectElement, StackedSelectProps>(\n ({ isRequired, options, onChange, ...props }, _ref) => {\n return (\n <InputGroup>\n <Select\n ref={_ref}\n isRequired={isRequired}\n onChange={onChange}\n {...props}\n >\n {options.map(option => (\n <option value={option.value} key={option.value}>\n {option.label}\n </option>\n ))}\n </Select>\n </InputGroup>\n );\n }\n);\n\nexport default StackedSelect;\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} />;\n});\n\nexport default StackedTextarea;\n","import { Tag, TagCloseButton, TagLabel } from '@chakra-ui/react';\nimport React from 'react';\n\ninterface InputTagProps {\n value: any;\n onDelete?: any;\n}\n\nconst InputTag: React.FC<InputTagProps> = ({ value, onDelete }) => {\n return (\n <Tag\n size={'md'}\n key={value}\n borderRadius=\"full\"\n variant=\"solid\"\n backgroundColor=\"#eeeeee\"\n >\n <TagLabel color={'gray.700'}>{value}</TagLabel>\n {onDelete && <TagCloseButton color={'gray.700'} onClick={onDelete} />}\n </Tag>\n );\n};\n\nexport default InputTag;\n","import { Box } from '@chakra-ui/react';\nimport React, { PropsWithChildren } from 'react';\nimport InputTag from '../../../components/InputTag';\n\ninterface MultiValueProps extends PropsWithChildren {\n clearValue: () => void;\n}\n\n/**\n * A functional React Component utilized to render the custom `MultiValue` component for\n * the `StackedMultiSelect` custom component.\n */\nconst MultiValue: React.FC<MultiValueProps> = ({ children, clearValue }) => {\n return (\n <Box marginRight=\"5px\">\n <InputTag value={children} onDelete={clearValue} />\n </Box>\n );\n};\n\nexport default MultiValue;\n","import React, { useEffect, useState } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { FieldOptions, ReactSelectFieldProps } from '../InputTypes';\nimport ReactSelect from 'react-select';\nimport colors from '../../../theme/foundations/colors';\nimport MultiValue from './components/MultiValue';\nimport {\n Control,\n FieldValues,\n UseFormSetValue,\n useWatch,\n} from 'react-hook-form';\n\nexport interface StackedMultiSelectProps extends ReactSelectFieldProps {\n options: FieldOptions;\n setValue: UseFormSetValue<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 HTMLSelectElement,\n StackedMultiSelectProps\n>(({ options, setValue, control, name }, _ref) => {\n const watchedValue = useWatch({ control, name: name as string });\n\n const [inputValue, setInputValue] = useState('');\n const [localValue, setLocalValue] = useState([]);\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 setLocalValue([]);\n }\n\n if (watchedValue !== undefined && watchedValue?.length) {\n setLocalValue(\n watchedValue\n .split(',')\n .filter(Boolean)\n .map((value: string) =>\n options.find(option => option.value === value)\n )\n );\n }\n }, [options, watchedValue]);\n\n const component = {\n DropdownIndicator: null,\n MultiValue: (props: any) => (\n <MultiValue\n clearValue={() => {\n const arrayValue = watchedValue\n .split(',')\n .filter((_: string, index: number) => index !== props.index);\n\n setLocalValue(\n arrayValue.map((value: string) =>\n options.find(option => option.value === value)\n )\n );\n\n setValue(name as string, arrayValue.join(','), {\n shouldValidate: true,\n shouldDirty: true,\n });\n }}\n >\n {props.children}\n </MultiValue>\n ),\n };\n\n const handleChange = (values: any) => {\n setValue(\n name as string,\n values.map(({ value }: { value: string }) => value).join(','),\n {\n shouldValidate: true,\n shouldDirty: true,\n }\n );\n };\n\n const handleInputChange = (value: string, action: any) => {\n if (action.action === 'input-change' && action !== 'set-value') {\n return setInputValue(value);\n }\n\n // reset on select of an option\n return setInputValue('');\n };\n\n const formatGroupLabel = (data: any) => {\n return (\n <Flex alignItems=\"center\" justifyContent=\"space-between\">\n <span>{data.label}</span>\n </Flex>\n );\n };\n\n const customStyles = {\n control: () => ({\n borderRadius: '6px',\n fontSize: '16px',\n color: '#202020',\n backgroundColor: '#FFFFFF',\n border: '1px solid',\n borderColor: colors.gray[200],\n minHeight: '48px',\n display: 'flex',\n padding: '2px 6px',\n }),\n menu: () => ({\n boxShadow: '0 5px 5px 0 rgba(16, 27, 79, 0.15)',\n borderRadius: '6px',\n backgroundColor: 'white',\n }),\n indicatorsContainer: () => ({ display: 'none' }),\n placeholder: () => ({ color: '#CBCDCF', fontSize: '16px' }),\n };\n\n return (\n <ReactSelect\n components={component}\n inputValue={inputValue}\n value={localValue}\n isClearable\n isSearchable\n isMulti\n menuPortalTarget={document.body}\n menuPosition={'fixed'}\n onChange={handleChange}\n onInputChange={handleInputChange}\n styles={customStyles}\n options={options}\n placeholder={false}\n formatGroupLabel={formatGroupLabel}\n />\n );\n});\n\nexport default StackedMultiSelect;\n","import React, { useEffect, useRef, useState } from 'react';\nimport { Box, Flex, Input } from '@chakra-ui/react';\nimport { InputFieldProps } from '../InputTypes';\nimport {\n Control,\n FieldValues,\n UseFormSetValue,\n useWatch,\n} from 'react-hook-form';\nimport colors from '../../../theme/foundations/colors';\nimport InputTag from '../components/InputTag';\n\nexport interface StackedPilledInputProps extends InputFieldProps {\n setValue: UseFormSetValue<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 }, _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\n const [isInputFocused, setInputFocused] = useState(false);\n\n const [localValue, setLocalValue] = useState('');\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 }, [watchedValue]);\n\n // ensures after value addition that the input field is wiped\n useEffect(() => {\n if (localValue === ' ' || localValue.trim() === ',') {\n setLocalValue('');\n }\n }, [localValue]);\n\n const onHandleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === ' ' || e.key === 'Enter' || e.key === ',') {\n if (!localValue.trim() || localValue.trim() === ',')\n return setLocalValue('');\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\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 if (localValue.trim()) {\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 setInputFocused(false);\n };\n\n return (\n <Flex position=\"relative\" width=\"100%\">\n <Box\n outline={isInputFocused ? '2px solid rgba(0, 122, 255, 255)' : ''}\n borderRadius={isInputFocused ? 'md' : ''}\n width=\"100%\"\n >\n <Flex\n background=\"rgba(255, 255, 255, 0.8)\"\n border=\"1px solid\"\n borderColor={colors.gray[200]}\n borderRadius=\"6px\"\n fontWeight=\"400\"\n fontSize=\"12px\"\n lineHeight=\"12px\"\n minHeight=\"48px\"\n letterSpacing=\"0.02em\"\n padding=\"0 12px\"\n pt={lastestFormValueToArray.length ? '12px' : '0px'}\n alignItems=\"center\"\n flexWrap=\"wrap\"\n gap=\"0.5em\"\n width=\"100%\"\n onClick={() => inputRef.current?.focus()}\n >\n {lastestFormValueToArray.map((tag, index) => (\n <InputTag\n value={tag}\n key={tag}\n onDelete={(e: any) => {\n e.stopPropagation();\n e.preventDefault();\n onRemoveTag(index);\n }}\n />\n ))}\n\n <Input\n onKeyDown={onHandleKeyDown}\n type=\"text\"\n padding={isInputFocused ? '0.5em 0' : '0px'}\n height={isInputFocused ? '46px' : '0px'}\n width=\"100%\"\n border=\"none\"\n _focus={{ boxShadow: 'none !important' }}\n value={localValue}\n onBlur={onBlur}\n onChange={e => setLocalValue(e.target.value)}\n ref={inputRef}\n onFocus={() => setInputFocused(true)}\n />\n </Flex>\n </Box>\n </Flex>\n );\n});\n\nexport default StackedPilledInput;\n","import React from 'react';\nimport { Switch, SwitchProps } from '@chakra-ui/react';\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 === undefined) return null;\n\n return (\n <Switch\n size=\"lg\"\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, { useCallback } from 'react';\nimport StackedCheckBoxGroup from './StackedCheckbox/StackedCheckboxGroup';\nimport StackedInput from './StackedInput/StackedInput';\nimport StackedRadioGroup from './StackedRadio/StackedRadioGroup';\nimport StackedSelect from './StackedSelect/StackedSelect';\nimport StackedTextarea from './StackedTextarea/StackedTextarea';\nimport { FieldOptions, ValidationProps, InputType } from './InputTypes';\nimport {\n Box,\n FormControl,\n FormErrorMessage,\n FormHelperText,\n FormLabel,\n} from '@chakra-ui/react';\nimport {\n Control,\n Controller,\n FieldValues,\n Path,\n PathValue,\n RefCallBack,\n UseFormSetValue,\n} from 'react-hook-form';\nimport StackedMultiSelect from './StackedMultiSelect';\nimport StackedPilledInput from './StackedPilledInput';\nimport StackedSwitch from './StackedSwitch';\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 leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n control?: Control<T, any>;\n onChange?: (args?: any) => void;\n disabled?: boolean;\n setValue?: UseFormSetValue<T>;\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 leftElement,\n rightElement,\n options,\n isInvalid,\n errorText,\n isRequired,\n maxLength,\n defaultValue,\n control,\n disabled,\n onChange,\n setValue,\n}: InputProps<T>) {\n const selectedInputField = useCallback(\n (\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 leftElement={leftElement}\n rightElement={rightElement}\n isInvalid={isInvalid}\n onChange={onChange}\n onBlur={onBlur}\n ref={ref}\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 isRequired={isRequired}\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 onChange={onChange}\n onBlur={onBlur}\n ref={ref}\n disabled={disabled}\n value={value}\n />\n );\n case 'textarea':\n return (\n <StackedTextarea\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n maxLength={maxLength}\n isRequired={isRequired}\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 <StackedCheckBoxGroup\n className={`input-${inputType} ${className ?? ''}`}\n name={name}\n id={name}\n isRequired={isRequired}\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 '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 />\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 setValue={setValue as UseFormSetValue<FieldValues>}\n control={control as Control<FieldValues, any>}\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 />\n );\n default:\n return null;\n }\n },\n [\n ariaLabel,\n className,\n control,\n disabled,\n inputType,\n isInvalid,\n isRequired,\n leftElement,\n maxLength,\n name,\n options,\n placeholder,\n rightElement,\n setValue,\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 render={({ field: { onBlur, onChange: fieldOnChange, ref, value } }) => (\n <FormControl\n id={name}\n isInvalid={isInvalid}\n position=\"relative\"\n py={label ? 6 : 0}\n >\n {label && (\n <FormLabel position=\"absolute\" top={0} display=\"flex\">\n {label}\n {isRequired && (\n <Box ml={1} color=\"red.500\">\n *\n </Box>\n )}\n </FormLabel>\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.gray[100]}\n >\n {isLoading ? (\n <Spinner size=\"lg\" color={colors.blue[500]} />\n ) : (\n <IconButton\n aria-label=\"Fetch more rows\"\n icon={<HiOutlineRefresh />}\n fontSize={typography.fontSizes['3xl']}\n type=\"button\"\n variant=\"link\"\n onClick={onLoadMore}\n />\n )}\n </Flex>\n );\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 { mode, transparentize, getColor } 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 lineHeight: 1,\n borderRadius: 'md',\n fontWeight: 'bold',\n _focus: {\n boxShadow: 'outline',\n },\n _disabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n boxShadow: 'none',\n },\n};\n\nconst focusShadow = (color: string) => `0 0 0 3px ${color}`;\n\nfunction variantGhost(props: Dict) {\n const { colorScheme: c, theme } = props;\n\n if (c === 'gray') {\n const focusColor = getColor(theme, 'gray.100');\n return {\n color: mode(`gray.500`, `whiteAlpha.900`)(props),\n _hover: { bg: mode(`gray.50`, `whiteAlpha.200`)(props) },\n _active: { bg: mode(`gray.200`, `whiteAlpha.300`)(props) },\n _focus: { boxShadow: focusShadow(focusColor) },\n };\n }\n\n const darkHoverBg = transparentize(`${c}.200`, 0.12)(theme);\n const darkActiveBg = transparentize(`${c}.200`, 0.24)(theme);\n const focusColor = getColor(theme, `${c}.200`);\n\n return {\n color: mode(`${c}.500`, `${c}.200`)(props),\n bg: 'transparent',\n _hover: {\n bg: mode(`${c}.50`, darkHoverBg)(props),\n },\n _active: {\n bg: mode(`${c}.100`, darkActiveBg)(props),\n },\n _focus: {\n boxShadow: focusShadow(focusColor),\n },\n };\n}\n\nfunction variantOutline(props: Dict) {\n const { colorScheme: c } = props;\n const borderColor = mode(`gray.200`, `whiteAlpha.300`)(props);\n return {\n border: '1px solid',\n borderColor: c === 'gray' ? borderColor : 'currentColor',\n ...variantGhost(props),\n };\n}\n\ntype AccessibleColor = {\n bg?: string;\n color?: string;\n hoverBg?: string;\n activeBg?: string;\n};\n\n/** Accessible color overrides for less accessible colors. */\nconst accessibleColorMap: { [key: string]: AccessibleColor } = {\n yellow: {\n bg: 'yellow.400',\n color: 'black',\n hoverBg: 'yellow.500',\n activeBg: 'yellow.600',\n },\n cyan: {\n bg: 'cyan.400',\n color: 'black',\n hoverBg: 'cyan.500',\n activeBg: 'cyan.600',\n },\n};\n\nfunction variantSolid(props: Dict) {\n const { colorScheme: c, theme } = props;\n\n if (c === 'gray')\n return {\n color: 'gray.500',\n bg: mode(`gray.50`, `whiteAlpha.200`)(props),\n _hover: { bg: mode(`gray.100`, `whiteAlpha.300`)(props) },\n _active: { bg: mode(`gray.200`, `whiteAlpha.400`)(props) },\n };\n\n if (c === 'darkgray')\n return {\n color: 'white',\n bg: 'gray.400',\n _hover: { bg: 'gray.600' },\n _active: { bg: 'gray.700' },\n };\n\n const {\n bg = `${c}.500`,\n color = 'white',\n hoverBg = `${c}.600`,\n activeBg = `${c}.700`,\n } = accessibleColorMap[c] || {};\n const focusColor = getColor(theme, `${c}.200`);\n return {\n bg: mode(bg, `${c}.200`)(props),\n color: mode(color, `gray.800`)(props),\n _hover: { bg: mode(hoverBg, `${c}.300`)(props) },\n _active: { bg: mode(activeBg, `${c}.400`)(props) },\n _focus: {\n boxShadow: focusShadow(focusColor),\n },\n };\n}\n\n/**\n * A variant that displays a solid variant when an active CSS class is\n * detected, otherwise display a ghost variant. This is useful for pill nav filters.\n */\nfunction variantActiveSolid(props: Dict) {\n return {\n ...variantGhost({ ...props, colorScheme: 'gray' }),\n '&.active': {\n ...variantSolid(props),\n },\n };\n}\n\nfunction variantLink(props: Dict) {\n const { colorScheme: c } = props;\n return {\n padding: 0,\n height: 'auto',\n lineHeight: 'normal',\n color: mode(`${c}.500`, `${c}.200`)(props),\n _hover: { textDecoration: 'underline' },\n _active: {\n color: mode(`${c}.700`, `${c}.500`)(props),\n },\n };\n}\n\nconst variantUnstyled = {\n bg: 'none',\n color: 'inherit',\n display: 'inline',\n lineHeight: 'inherit',\n m: 0,\n p: 0,\n};\n\nconst variants = {\n ghost: variantGhost,\n outline: variantOutline,\n solid: variantSolid,\n activeSolid: variantActiveSolid,\n link: variantLink,\n unstyled: variantUnstyled,\n};\n\nconst sizes = {\n lg: {\n borderRadius: 'full',\n h: 12,\n minW: 20,\n fontSize: 'lg',\n px: 6,\n },\n md: {\n borderRadius: 'full',\n h: 10,\n minW: 20,\n fontSize: 'md',\n px: 4,\n },\n sm: {\n borderRadius: 'full',\n h: 8,\n minW: 8,\n fontSize: 'sm',\n px: 3,\n },\n xs: {\n borderRadius: 'full',\n h: 6,\n minW: 6,\n fontSize: 'xs',\n px: 2,\n },\n};\n\nconst defaultProps = {\n variant: 'solid',\n size: 'md',\n colorScheme: 'primary',\n};\n\nexport default {\n baseStyle,\n variants,\n sizes,\n defaultProps,\n};\n","import { mode } from '@chakra-ui/theme-tools';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst parts = ['requiredIndicator', 'helperText'];\n\nfunction baseStyleRequiredIndicator(props: Dict) {\n return {\n ml: 1,\n color: mode('red.500', 'red.300')(props),\n };\n}\n\nfunction baseStyleHelperText(props: Dict) {\n return {\n mt: 1,\n color: mode('gray.400', 'whiteAlpha.600')(props),\n lineHeight: 'normal',\n fontSize: 'sm',\n };\n}\n\nconst baseStyle = (props: Dict) => ({\n requiredIndicator: baseStyleRequiredIndicator(props),\n helperText: baseStyleHelperText(props),\n});\n\nexport default {\n parts,\n baseStyle,\n};\n","import { mode } from '@chakra-ui/theme-tools';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst parts = ['text', 'icon'];\n\nfunction baseStyleText(props: Dict) {\n return {\n color: mode('red.500', 'red.300')(props),\n mt: 1,\n lineHeight: 'normal',\n fontSize: 'sm',\n };\n}\n\nfunction baseStyleIcon(props: Dict) {\n return {\n mr: '0.5em',\n color: mode('red.500', 'red.300')(props),\n };\n}\n\nconst baseStyle = (props: Dict) => ({\n text: baseStyleText(props),\n icon: baseStyleIcon(props),\n});\n\nexport default {\n parts,\n baseStyle,\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 parts = ['field', 'addon'];\n\nconst baseStyle = {\n field: {\n width: '100%',\n outline: 0,\n position: 'relative',\n appearance: 'none',\n transition: 'all 0.2s',\n '::placeholder': {\n color: 'gray.300',\n },\n },\n};\n\nconst size = {\n lg: {\n fontSize: 'md',\n pl: 3,\n pr: 3,\n h: 12,\n borderRadius: 'md',\n },\n\n md: {\n fontSize: 'md',\n pl: 3,\n pr: 3,\n h: 10,\n borderRadius: 'md',\n },\n\n sm: {\n fontSize: 'sm',\n pl: 3,\n pr: 3,\n h: 8,\n borderRadius: 'sm',\n },\n};\n\nconst sizes = {\n lg: {\n field: size.lg,\n addon: size.lg,\n },\n md: {\n field: size.md,\n addon: size.md,\n },\n sm: {\n field: size.sm,\n addon: size.sm,\n },\n};\n\nfunction getDefaults(props: Dict) {\n const { focusBorderColor: fc, errorBorderColor: ec } = props;\n return {\n focusBorderColor: fc || mode('blue.500', 'blue.300')(props),\n errorBorderColor: ec || mode('red.500', 'red.300')(props),\n };\n}\n\nfunction variantOutline(props: Dict) {\n const { theme } = props;\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props);\n\n return {\n field: {\n border: '1px solid',\n borderColor: 'inherit',\n bg: 'white',\n _hover: {\n borderColor: mode('gray.300', 'whiteAlpha.400')(props),\n },\n _readOnly: {\n boxShadow: 'none !important',\n userSelect: 'all',\n },\n _disabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n _focus: {\n zIndex: 1,\n borderColor: getColor(theme, fc),\n boxShadow: `0 0 0 2px ${transparentize(fc, 0.3)(theme)}`,\n },\n _invalid: {\n borderColor: getColor(theme, ec),\n boxShadow: 'none',\n _focus: {\n boxShadow: `0 0 0 2px ${transparentize(ec, 0.3)(theme)}`,\n },\n },\n },\n addon: {\n border: '1px solid',\n borderColor: mode('inherit', 'whiteAlpha.50')(props),\n bg: mode('gray.100', 'whiteAlpha.300')(props),\n },\n };\n}\n\nfunction variantFilled(props: Dict) {\n const { theme } = props;\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props);\n\n return {\n field: {\n border: '2px solid',\n borderColor: 'transparent',\n bg: mode('gray.50', 'whiteAlpha.50')(props),\n _hover: {\n bg: mode('gray.100', 'whiteAlpha.100')(props),\n },\n _readOnly: {\n boxShadow: 'none !important',\n userSelect: 'all',\n },\n _disabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n _focus: {\n bg: 'transparent',\n borderColor: getColor(theme, fc),\n },\n _invalid: {\n borderColor: getColor(theme, ec),\n },\n },\n addon: {\n border: '2px solid',\n borderColor: 'transparent',\n bg: mode('gray.100', 'whiteAlpha.50')(props),\n },\n };\n}\n\nfunction variantFlushed(props: Dict) {\n const { theme } = props;\n const { focusBorderColor: fc, errorBorderColor: ec } = getDefaults(props);\n\n return {\n field: {\n borderBottom: '1px solid inherit',\n borderRadius: 0,\n pl: 0,\n pr: 0,\n bg: 'transparent',\n _readOnly: {\n boxShadow: 'none !important',\n userSelect: 'all',\n },\n _focus: {\n borderColor: getColor(theme, fc),\n boxShadow: `0px 1px 0px 0px ${getColor(theme, fc)}`,\n },\n _invalid: {\n borderColor: getColor(theme, ec),\n },\n },\n addon: {\n borderBottom: '2px solid',\n borderColor: 'inherit',\n borderRadius: 0,\n paddingX: 0,\n bg: 'transparent',\n },\n };\n}\n\nconst variantUnstyled = {\n field: {\n bg: 'transparent',\n pl: 0,\n pr: 0,\n height: 'auto',\n },\n addon: {\n bg: 'transparent',\n pl: 0,\n pr: 0,\n height: 'auto',\n },\n};\n\nconst variants = {\n outline: variantOutline,\n filled: variantFilled,\n flushed: variantFlushed,\n unstyled: variantUnstyled,\n};\n\nconst defaultProps = {\n size: 'lg',\n variant: 'outline',\n};\n\nexport default {\n parts,\n baseStyle,\n sizes,\n variants,\n defaultProps,\n};\n","import { getColor } 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 color: 'blue.500',\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 { mode } from '@chakra-ui/theme-tools';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst parts = ['item', 'command', 'list', 'button', 'groupTitle'];\n\nfunction baseStyleList(props: Dict) {\n return {\n bg: mode(`#fff`, `gray.700`)(props),\n boxShadow: mode(`2xl`, `dark-lg`)(props),\n color: 'inherit',\n minW: '3xs',\n py: 2,\n zIndex: 'docked',\n borderRadius: 'md',\n borderWidth: 0,\n overflow: 'hidden',\n };\n}\n\nfunction baseStyleItem(props: Dict) {\n return {\n fontSize: 'sm',\n py: 2,\n px: 4,\n transition: 'background 50ms ease-in 0s',\n _focus: {\n bg: mode(`blue.50`, `whiteAlpha.200`)(props),\n },\n _hover: {\n bg: mode(`blue.50`, `whiteAlpha.200`)(props),\n },\n _active: {\n bg: mode(`gray.200`, `whiteAlpha.200`)(props),\n },\n _expanded: {\n bg: mode(`gray.100`, `whiteAlpha.100`)(props),\n },\n _disabled: {\n opacity: 0.4,\n cursor: 'not-allowed',\n },\n };\n}\n\nconst baseStyleGroupTitle = {\n mx: 4,\n my: 2,\n fontWeight: 'semibold',\n fontSize: 'sm',\n};\n\nconst baseStyleCommand = {\n opacity: 0.6,\n};\n\nconst baseStyle = (props: Dict) => {\n return {\n list: baseStyleList(props),\n item: baseStyleItem(props),\n groupTitle: baseStyleGroupTitle,\n command: baseStyleCommand,\n };\n};\n\nexport default {\n parts,\n baseStyle,\n};\n","import { mode } from '@chakra-ui/theme-tools';\n\nconst parts = [\n 'overlay',\n 'dialogContainer',\n 'dialog',\n 'header',\n 'closeButton',\n 'body',\n 'footer',\n];\n\nconst baseStyleOverlay = {\n bg: 'blackAlpha.600',\n zIndex: 'modal',\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nfunction baseStyleDialogContainer(props: Dict) {\n const { scrollBehavior } = props;\n\n return {\n display: 'flex',\n zIndex: 'modal',\n justifyContent: 'center',\n alignItems: 'flex-start',\n overflow: scrollBehavior === 'inside' ? 'hidden' : 'auto',\n WebkitOverflowScrolling: 'touch',\n };\n}\n\nfunction baseStyleDialog(props: Dict) {\n const { isCentered, scrollBehavior } = props;\n\n return {\n borderRadius: 'lg',\n bg: mode('white', 'gray.700')(props),\n color: 'inherit',\n mt: isCentered ? { base: 8, md: 'auto' } : '3.75rem',\n mb: isCentered ? { base: 20, md: 'auto' } : '3.75rem',\n mx: 4,\n zIndex: 'modal',\n maxH: scrollBehavior === 'inside' ? 'calc(100vh - 7.5rem)' : undefined,\n boxShadow: mode('xl', 'dark-lg')(props),\n };\n}\n\nconst baseStyleHeader = {\n px: 6,\n py: 4,\n minHeight: 20,\n fontSize: 'xl',\n display: 'flex',\n alignItems: 'center',\n fontWeight: 'bold',\n bg: 'primary.900',\n color: 'white',\n userSelect: 'none',\n};\n\nconst baseStyleCloseButton = {\n position: 'absolute',\n top: 2,\n right: 3,\n};\n\nfunction baseStyleBody(props: Dict) {\n const { scrollBehavior } = props;\n return {\n px: [6, null, 20],\n py: 10,\n flex: 1,\n overflow: scrollBehavior === 'inside' ? 'auto' : undefined,\n };\n}\n\nconst baseStyleFooter = {\n px: [6, null, 20],\n pt: 5,\n pb: 16,\n};\n\nconst baseStyle = (props: Dict) => ({\n overlay: baseStyleOverlay,\n dialogContainer: baseStyleDialogContainer(props),\n dialog: baseStyleDialog(props),\n header: baseStyleHeader,\n closeButton: baseStyleCloseButton,\n body: baseStyleBody(props),\n footer: baseStyleFooter,\n});\n\n/**\n * Since the `maxWidth` prop references theme.sizes internally,\n * we can leverage that to size our modals.\n */\nfunction getSize(value: string) {\n const commonBodyFooterStyles: Dict = {\n xs: {\n px: 8,\n pb: 8,\n },\n sm: {\n px: 8,\n pb: 8,\n },\n md: {\n px: 8,\n pb: 8,\n },\n lg: {\n px: 10,\n pb: 10,\n },\n xl: {\n px: 12,\n pb: 10,\n },\n };\n\n const bodyStyles: Dict = {\n xs: {\n py: 6,\n },\n sm: {\n py: 6,\n },\n md: {\n py: 6,\n },\n lg: {\n py: 8,\n },\n xl: {\n py: 8,\n },\n };\n\n const footerStyles: Dict = {\n xs: {\n pb: 8,\n },\n sm: {\n pb: 8,\n },\n md: {\n pb: 8,\n },\n lg: {\n pb: 10,\n },\n xl: {\n pb: 10,\n },\n };\n\n if (value === 'full') {\n return { content: { maxW: '100vw', h: '100vh' } };\n }\n\n return {\n content: {\n maxW: value,\n },\n body: {\n ...commonBodyFooterStyles[value],\n ...bodyStyles[value],\n },\n footer: {\n ...commonBodyFooterStyles[value],\n ...footerStyles[value],\n },\n };\n}\n\nconst sizes = {\n xs: getSize('xs'),\n sm: getSize('sm'),\n md: getSize('md'),\n lg: getSize('lg'),\n xl: getSize('xl'),\n '2xl': getSize('2xl'),\n '3xl': getSize('3xl'),\n '4xl': getSize('4xl'),\n '5xl': getSize('5xl'),\n '6xl': getSize('6xl'),\n full: getSize('full'),\n};\n\nconst warningVariant = () => {\n return {\n header: {\n bg: 'warning.300',\n color: 'black',\n },\n };\n};\n\nconst variants = {\n warning: warningVariant,\n};\n\nconst defaultProps = {\n size: 'lg',\n isCentered: true,\n};\n\nexport default {\n parts,\n baseStyle,\n sizes,\n variants,\n defaultProps,\n};\n","import { mode } from '@chakra-ui/theme-tools';\nimport Input from './input';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst { sizes, defaultProps, variants } = Input;\n\nconst parts = ['field', 'icon'];\n\nfunction baseStyleField(props: Dict) {\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 = (props: Dict) => ({\n field: baseStyleField(props),\n icon: baseStyleInput,\n});\n\nexport default {\n parts,\n baseStyle,\n sizes,\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.blue[500],\n bg: 'transparent',\n borderBottom: '1px solid blue.500',\n },\n _selected: {\n color: colors.blue[500],\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 Input from './input';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Dict = Record<string, any>;\n\nconst baseStyle = {\n ...Input.baseStyle.field,\n display: 'block', // Removes gap below textarea because it defaults to inline.\n paddingY: '8px',\n minHeight: '80px',\n lineHeight: 'short',\n};\n\nconst codeVariant = (props: Dict) => {\n const { _focus } = Input.variants.outline(props).field;\n return {\n bg: 'blue.900',\n color: 'white',\n fontFamily: 'mono',\n fontSize: 'sm',\n border: '1px',\n borderColor: 'blue.900',\n borderRadius: 'lg',\n p: 6,\n wordBreak: 'break-all',\n _focus,\n };\n};\n\nconst variants = {\n outline: (props: Dict) => Input.variants.outline(props).field,\n flushed: (props: Dict) => Input.variants.flushed(props).field,\n filled: (props: Dict) => Input.variants.filled(props).field,\n code: (props: Dict) => codeVariant(props),\n unstyled: Input.variants.unstyled.field,\n};\n\nconst sizes = {\n sm: Input.sizes.sm.field,\n md: Input.sizes.md.field,\n lg: Input.sizes.lg.field,\n};\n\nconst defaultProps = {\n size: 'lg',\n variant: 'outline',\n};\n\nexport default {\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.base,\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 Menu from './components/menu';\nimport Modal from './components/modal';\nimport Select from './components/select';\nimport Switch from './components/switch';\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 Menu,\n Modal,\n Select,\n Switch,\n Tabs,\n Textarea,\n Text,\n },\n styles,\n});\n\nexport type CustomTheme = typeof customXQChakraTheme;\n\nexport default customXQChakraTheme;\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.blue[200]}`,\n outline: `0 0 0 2px ${colors.blue[200]}`,\n outlineDanger600: `0 0 0 2px ${colors.red[600]}`,\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: '#d8f1b8' },\n };\n}\n\nfunction variantWarning() {\n return {\n container: { bg: '#ffefb4' },\n };\n}\n\nfunction variantError() {\n return {\n container: { bg: '#ffbdb9' },\n };\n}\n\nfunction variantNeutral() {\n return {\n container: { bg: '#7474800D' },\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 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","const baseStyle = {\n fontSize: 'md',\n mr: 3,\n mb: 1,\n fontWeight: 'bold',\n color: 'gray.700',\n transition: 'all 0.2s',\n opacity: 1,\n _disabled: {\n opacity: 0.4,\n },\n};\n\nexport default {\n baseStyle,\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 },\n '*, *::before, *::after': {\n borderColor: 'gray.200',\n },\n '*::placeholder': {\n color: 'primary',\n },\n },\n};\n","import React, { useMemo } from 'react';\nimport {\n Alert,\n AlertDescription,\n Box,\n Button,\n Flex,\n Image,\n} 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';\n\nexport type BannerVariant = 'positive' | 'warning' | 'error' | 'neutral';\n\nexport interface BannerProps {\n variant: BannerVariant;\n message: string;\n buttonText?: string;\n onClick?: () => void;\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}) => {\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 <Box pb=\"8px\">{Icon}</Box>\n {message}\n {onClick && buttonText && (\n <Flex pt=\"8px\" justifyContent=\"flex-end\">\n <Button size=\"sm\" bg=\"white\" color=\"blue.500\" onClick={onClick}>\n {buttonText}\n </Button>\n </Flex>\n )}\n </AlertDescription>\n </Alert>\n );\n};\n","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 from 'react';\nimport {\n Button as ChakraButton,\n ButtonProps as ChakraButtonProps,\n} from '@chakra-ui/react';\nimport buttonTheme from '../../theme/components/button';\n\nexport interface ButtonProps {\n text: string;\n onClick?: () => void;\n variant?: keyof typeof buttonTheme.variants;\n colorScheme?: string;\n type: 'button' | 'submit' | 'reset' | undefined;\n ariaLabel: string;\n size?: 'sm' | 'md' | 'lg' | 'xs';\n disabled?: boolean;\n className?: string;\n style?: React.CSSProperties;\n width?: string | number;\n}\n\n/**\n * A functional React component utilized to render the `Button` component\n */\nexport const Button: React.FC<ButtonProps & ChakraButtonProps> = ({\n onClick,\n text,\n type,\n ariaLabel,\n variant = 'solid',\n colorScheme = 'primary',\n style,\n size = 'md',\n disabled,\n className,\n ...props\n}) => {\n return (\n <ChakraButton\n onClick={onClick}\n type={type}\n variant={variant}\n colorScheme={colorScheme}\n size={size}\n disabled={disabled}\n aria-label={ariaLabel}\n style={style}\n className={className}\n {...props}\n >\n {text}\n </ChakraButton>\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 { Control, 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\n control={form.control as Control<FieldValues, any>}\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 />\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","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.blue[500]}\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 style,\n variant = 'solid',\n colorScheme = 'primary',\n size = 'md',\n disabled,\n className,\n}) => {\n return (\n <Button\n spinner={<Spinner size={size} />}\n isLoading={isLoading}\n onClick={onClick}\n type={type}\n variant={variant}\n colorScheme={colorScheme}\n size={size}\n disabled={disabled}\n aria-label={ariaLabel}\n style={style}\n className={className}\n >\n {text}\n </Button>\n );\n};\n","import React from 'react';\nimport {\n ReadonlyTableColumns,\n TableBody,\n TableColorScheme,\n TableColumns,\n TableHeaders,\n} from './TableTypes';\nimport { generateTableColumnsAsConst } from './utils/generateTableColumns';\n\nimport {\n Table as ChakraTable,\n TableCaption,\n TableContainer,\n Tbody,\n Td,\n Th,\n Thead,\n Tr,\n} from '@chakra-ui/react';\nimport { TableLoadingRows } from './loading';\nimport colors from '../../theme/foundations/colors';\n\nexport interface TableProps<T extends ReadonlyTableColumns> {\n columns: TableColumns;\n headers: TableHeaders<T>;\n body: TableBody<T>;\n loading?: boolean;\n variant: 'simple' | 'striped' | 'unstyled';\n colorScheme?: TableColorScheme;\n borderTopRadius?: 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 placeholder = 'There is currently no available data',\n loading,\n variant = 'simple',\n colorScheme,\n borderTopRadius = true,\n loadMore,\n}: TableProps<T>) {\n const columnsAsConst = generateTableColumnsAsConst(columns);\n\n return (\n <TableContainer\n border=\"1px\"\n borderColor={colors.gray[100]}\n overflowX=\"auto\"\n bg=\"white\"\n borderRadius=\"md\"\n borderTopLeftRadius={borderTopRadius ? 'md' : 0}\n borderTopRightRadius={borderTopRadius ? 'md' : 0}\n >\n <ChakraTable variant={variant} colorScheme={colorScheme}>\n <Thead>\n <Tr>\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 {!body.length && <TableCaption py={10}>{placeholder}</TableCaption>}{' '}\n </ChakraTable>\n {loadMore && loading !== undefined && (\n <TableLoadingRows isLoading={loading} onLoadMore={loadMore} />\n )}\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.gray[100]}\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.black,\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/react';\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}) => {\n return (\n <ChakraProvider theme={customXQChakraTheme} resetCSS>\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":["blue","50","100","200","300","400","500","600","700","800","900","red","orange","green","colors","transparent","current","black","white","lightBlue","coolGray","darkBlue","backdrop","primary","success","warning","danger","label","light","dark","whiteAlpha","blackAlpha","gray","Icon","step","status","getColors","useMemo","bg","color","React","Flex","boxSize","borderRadius","alignItems","justifyContent","Text","fontSize","Label","Box","pl","StackedCheckboxGroup","forwardRef","_ref","InputGroup","options","map","option","mr","key","value","Checkbox","ref","StackedInput","type","isRequired","leftElement","rightElement","props","Input","StackedRadioGroup","flexDirection","RadioGroup","name","id","Radio","StackedSelect","onChange","Select","StackedTextarea","Textarea","InputTag","onDelete","Tag","size","variant","backgroundColor","TagLabel","TagCloseButton","onClick","MultiValue","marginRight","children","clearValue","StackedMultiSelect","setValue","watchedValue","useWatch","control","useState","inputValue","setInputValue","localValue","setLocalValue","useEffect","undefined","length","split","filter","Boolean","find","ReactSelect","components","DropdownIndicator","arrayValue","_","index","join","shouldValidate","shouldDirty","isClearable","isSearchable","isMulti","menuPortalTarget","document","body","menuPosition","values","onInputChange","action","styles","border","borderColor","minHeight","display","padding","menu","boxShadow","indicatorsContainer","placeholder","formatGroupLabel","data","StackedPilledInput","lastestFormValueToArray","setLatestFormValueToArray","inputRef","useRef","isInputFocused","setInputFocused","trim","position","width","outline","background","fontWeight","lineHeight","letterSpacing","pt","flexWrap","gap","_inputRef$current","focus","tag","e","stopPropagation","preventDefault","filteredUniqueValues","i","toString","replace","onRemoveTag","onKeyDown","Array","from","Set","height","_focus","onBlur","target","onFocus","StackedSwitch","Switch","String","defaultChecked","checked","inputType","ariaLabel","className","helperText","isInvalid","errorText","maxLength","defaultValue","disabled","selectedInputField","useCallback","StackedCheckBoxGroup","Controller","rules","required","render","field","fieldOnChange","FormControl","py","FormLabel","top","ml","FormErrorMessage","FormHelperText","BorderedBox","mx","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","IconButton","icon","HiOutlineRefresh","baseStyle","px","textTransform","variants","solid","c","colorScheme","theme","transparentize","mode","subtle","darkBg","darkColor","lightColor","getColor","defaultProps","focusShadow","variantGhost","focusColor","_hover","_active","darkHoverBg","darkActiveBg","accessibleColorMap","yellow","hoverBg","activeBg","cyan","variantSolid","ghost","activeSolid","&.active","link","textDecoration","unstyled","m","p","baseStyleRequiredIndicator","baseStyleHelperText","mt","baseStyleText","baseStyleIcon","pr","h","getDefaults","ec","errorBorderColor","focusBorderColor","parts","appearance","transition","::placeholder","sizes","addon","fc","_readOnly","userSelect","_disabled","opacity","cursor","zIndex","_invalid","filled","flushed","borderBottom","paddingX","sidebar","sidebarExact","subNavigation","mb","navlink","baseStyleList","minW","borderWidth","overflow","baseStyleItem","_expanded","baseStyleGroupTitle","my","baseStyleCommand","baseStyleOverlay","baseStyleDialogContainer","scrollBehavior","WebkitOverflowScrolling","baseStyleDialog","isCentered","maxH","baseStyleHeader","baseStyleCloseButton","right","baseStyleBody","flex","baseStyleFooter","pb","getSize","commonBodyFooterStyles","content","maxW","footer","baseStyleField","paddingBottom","> option","baseStyleInput","baseStyleTrack","_checked","baseStyleThumb","transform","baseStyleRoot","orientation","baseStyleTab","isFitted","baseStyleTablist","align","end","center","start","baseStyleTabpanel","code","fontFamily","wordBreak","codeVariant","header","subheader","paragraph","customXQChakraTheme","extendTheme","breakpoints","createBreakpoints","shadows","insetOutline","outlineDanger600","inner","dark-lg","Alert","container","description","textAlign","positive","error","neutral","Badge","Button","Code","Form","requiredIndicator","FormError","text","Link","Menu","list","item","groupTitle","command","Modal","overlay","dialogContainer","dialog","closeButton","full","track","thumb","w","Tabs","root","tab","tablist","tabpanel","line","isVertical","borderProp","marginProp","_selected","_after","bottom","left","enclosed","borderTopRadius","borderBottomColor","enclosed-colored","_notLast","soft-rounded","solid-rounded","simple","paddingY","global","html, body, #root","*, *::before, *::after","*::placeholder","message","buttonText","Image","src","alt","AlertDescription","steps","activeStepIndex","getStatus","stepIndex","flexDir","idx","style","ChakraButton","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","GridItem","area","alignSelf","CloseIcon","HamburgerIcon","Collapse","in","marginTop","thickness","speed","spinner","headers","loading","loadMore","columnsAsConst","TableContainer","overflowX","borderTopLeftRadius","borderTopRightRadius","ChakraTable","Thead","Tr","column","Th","Tbody","row","Td","TableCaption","navIndex","setNavIndex","TabList","borderBottomLeftRadius","borderBottomRightRadius","navItems","navItem","Tab","ChakraText","ChakraProvider","resetCSS","response","_error$response","_error$response$data","_error$response2","_error$response2$data","Error","console"],"mappings":"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"}