@xqmsg/ui-core 0.23.1-rc.4 → 0.23.1

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 (189) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +40 -40
  3. package/dist/{78c9d6fd7766410f.svg → 89793640b494d7ea.svg} +9 -9
  4. package/dist/ui-core.cjs.development.js.map +1 -1
  5. package/dist/ui-core.cjs.production.min.js.map +1 -1
  6. package/dist/ui-core.esm.js.map +1 -1
  7. package/package.json +118 -118
  8. package/src/components/banner/Banner.stories.tsx +100 -100
  9. package/src/components/banner/index.tsx +73 -73
  10. package/src/components/breadcrumbs/Breadcrumbs.stories.tsx +66 -66
  11. package/src/components/breadcrumbs/components/icon/index.tsx +38 -38
  12. package/src/components/breadcrumbs/components/label/index.tsx +20 -20
  13. package/src/components/breadcrumbs/index.tsx +48 -48
  14. package/src/components/button/Button.stories.tsx +140 -140
  15. package/src/components/button/google/GoogleButton.stories.tsx +23 -23
  16. package/src/components/button/google/index.tsx +29 -29
  17. package/src/components/button/index.tsx +51 -51
  18. package/src/components/button/microsoft/MicrosoftButton.stories.tsx +25 -25
  19. package/src/components/button/microsoft/index.tsx +29 -29
  20. package/src/components/button/spinner/SpinnerButton.stories.tsx +60 -60
  21. package/src/components/button/spinner/index.tsx +36 -36
  22. package/src/components/card/Card.stories.tsx +56 -56
  23. package/src/components/card/index.tsx +78 -78
  24. package/src/components/form/Form.stories.tsx +62 -62
  25. package/src/components/form/FormTypes.ts +20 -20
  26. package/src/components/form/hooks/useFormHandler.tsx +74 -74
  27. package/src/components/form/index.tsx +25 -25
  28. package/src/components/form/section/FormSection.stories.tsx +109 -109
  29. package/src/components/form/section/index.tsx +87 -87
  30. package/src/components/form/utils/formErrors.ts +34 -34
  31. package/src/components/icons/checkmark/checkmark.svg +3 -3
  32. package/src/components/icons/checkmark/index.tsx +13 -13
  33. package/src/components/icons/chevron/down/chevron-down.svg +3 -3
  34. package/src/components/icons/chevron/down/index.tsx +14 -14
  35. package/src/components/icons/chevron/right/chevron-right.svg +3 -3
  36. package/src/components/icons/chevron/right/index.tsx +13 -13
  37. package/src/components/icons/clock/clock.svg +3 -3
  38. package/src/components/icons/clock/index.tsx +13 -13
  39. package/src/components/icons/close/close.svg +3 -3
  40. package/src/components/icons/close/index.tsx +21 -21
  41. package/src/components/icons/dropdown/dropdown.svg +3 -3
  42. package/src/components/icons/dropdown/index.tsx +16 -16
  43. package/src/components/icons/error/error.svg +3 -3
  44. package/src/components/icons/error/index.tsx +13 -13
  45. package/src/components/icons/file/fill/file-fill.svg +4 -4
  46. package/src/components/icons/file/fill/index.tsx +13 -13
  47. package/src/components/icons/file/outline/file-outline.svg +3 -3
  48. package/src/components/icons/file/outline/index.tsx +13 -13
  49. package/src/components/icons/folder/add/fill/folder-add-fill.svg +3 -3
  50. package/src/components/icons/folder/add/fill/index.tsx +13 -13
  51. package/src/components/icons/folder/add/outline/folder-add-outline.svg +3 -3
  52. package/src/components/icons/folder/add/outline/index.tsx +15 -15
  53. package/src/components/icons/folder/fill/folder-fill-gradient.svg +33 -33
  54. package/src/components/icons/folder/fill/folder-fill.svg +4 -4
  55. package/src/components/icons/folder/fill/index.tsx +21 -21
  56. package/src/components/icons/folder/outline/folder-outline.svg +3 -3
  57. package/src/components/icons/folder/outline/index.tsx +13 -13
  58. package/src/components/icons/gear/GearIcon.tsx +36 -36
  59. package/src/components/icons/google/drive/index.tsx +13 -13
  60. package/src/components/icons/google/google.svg +13 -13
  61. package/src/components/icons/google/index.tsx +13 -13
  62. package/src/components/icons/group/group.svg +3 -3
  63. package/src/components/icons/group/index.tsx +13 -13
  64. package/src/components/icons/home/home.svg +3 -3
  65. package/src/components/icons/home/index.tsx +13 -13
  66. package/src/components/icons/image/image.svg +3 -3
  67. package/src/components/icons/image/index.tsx +13 -13
  68. package/src/components/icons/index.tsx +101 -101
  69. package/src/components/icons/link/index.tsx +13 -13
  70. package/src/components/icons/link/link.svg +4 -4
  71. package/src/components/icons/menu/index.tsx +13 -13
  72. package/src/components/icons/menu/menu.svg +3 -3
  73. package/src/components/icons/microsoft/index.tsx +13 -13
  74. package/src/components/icons/microsoft/microsoft.svg +9 -9
  75. package/src/components/icons/microsoft/onedrive/index.tsx +16 -16
  76. package/src/components/icons/neutral/index.tsx +14 -14
  77. package/src/components/icons/neutral/neutral.svg +3 -3
  78. package/src/components/icons/page/index.tsx +13 -13
  79. package/src/components/icons/page/page.svg +3 -3
  80. package/src/components/icons/positive/index.tsx +13 -13
  81. package/src/components/icons/positive/positive.svg +3 -3
  82. package/src/components/icons/question/index.tsx +13 -13
  83. package/src/components/icons/question/question.svg +3 -3
  84. package/src/components/icons/search/index.tsx +13 -13
  85. package/src/components/icons/search/search.svg +3 -3
  86. package/src/components/icons/services/index.tsx +13 -13
  87. package/src/components/icons/services/services.svg +3 -3
  88. package/src/components/icons/settings/index.tsx +14 -14
  89. package/src/components/icons/settings/settings.svg +6 -6
  90. package/src/components/icons/table/fill/index.tsx +13 -13
  91. package/src/components/icons/table/fill/table-fill.svg +3 -3
  92. package/src/components/icons/table/outline/index.tsx +13 -13
  93. package/src/components/icons/table/outline/table-outline.svg +3 -3
  94. package/src/components/icons/task/index.tsx +10 -10
  95. package/src/components/icons/task/task.svg +11 -11
  96. package/src/components/icons/trash/index.tsx +13 -13
  97. package/src/components/icons/trash/trash.svg +3 -3
  98. package/src/components/icons/vault/index.tsx +14 -14
  99. package/src/components/icons/video/index.tsx +13 -13
  100. package/src/components/icons/video/video.svg +3 -3
  101. package/src/components/icons/warning/index.tsx +13 -13
  102. package/src/components/icons/warning/warning.svg +3 -3
  103. package/src/components/icons/workspace/index.tsx +14 -14
  104. package/src/components/input/Input.stories.tsx +287 -287
  105. package/src/components/input/InputTypes.ts +77 -77
  106. package/src/components/input/StackedCheckbox/StackedCheckbox.tsx +44 -44
  107. package/src/components/input/StackedInput/StackedInput.tsx +60 -60
  108. package/src/components/input/StackedMultiSelect/index.tsx +349 -349
  109. package/src/components/input/StackedPilledInput/index.tsx +386 -386
  110. package/src/components/input/StackedRadio/StackedRadioGroup.tsx +38 -38
  111. package/src/components/input/StackedSelect/index.tsx +232 -232
  112. package/src/components/input/StackedSwitch/index.tsx +33 -33
  113. package/src/components/input/StackedTextarea/StackedTextarea.tsx +55 -55
  114. package/src/components/input/components/dropdown/index.tsx +111 -111
  115. package/src/components/input/components/label/index.tsx +35 -35
  116. package/src/components/input/components/token/Token.stories.tsx +25 -25
  117. package/src/components/input/components/token/index.tsx +45 -45
  118. package/src/components/input/index.tsx +298 -298
  119. package/src/components/layout/BorderedBox/index.tsx +30 -30
  120. package/src/components/layout/Layout.stories.tsx +40 -40
  121. package/src/components/layout/index.tsx +100 -100
  122. package/src/components/link/Link.stories.tsx +23 -23
  123. package/src/components/link/index.tsx +34 -34
  124. package/src/components/loading/LoadingIndicator.stories.tsx +45 -45
  125. package/src/components/loading/index.tsx +45 -45
  126. package/src/components/modal/Modal.stories.tsx +36 -36
  127. package/src/components/modal/components/action/index.tsx +37 -37
  128. package/src/components/modal/index.tsx +41 -41
  129. package/src/components/navigation/NavigationMenu.stories.tsx +85 -85
  130. package/src/components/navigation/components/header/index.tsx +27 -27
  131. package/src/components/navigation/components/items/index.tsx +76 -76
  132. package/src/components/navigation/index.tsx +87 -87
  133. package/src/components/select/index.tsx +140 -140
  134. package/src/components/table/Table.stories.tsx +63 -63
  135. package/src/components/table/TableTypes.ts +15 -15
  136. package/src/components/table/components/loading/index.tsx +45 -45
  137. package/src/components/table/components/text/index.tsx +23 -23
  138. package/src/components/table/empty/index.tsx +47 -47
  139. package/src/components/table/index.tsx +84 -84
  140. package/src/components/table/utils/generateTableColumns.ts +9 -9
  141. package/src/components/tabs/TabsWrapper.stories.tsx +85 -85
  142. package/src/components/tabs/index.tsx +39 -39
  143. package/src/components/text/Text.stories.tsx +59 -59
  144. package/src/components/text/index.tsx +16 -16
  145. package/src/components/toast/Toast.stories.tsx +52 -52
  146. package/src/components/toast/index.tsx +78 -78
  147. package/src/components/toolbar/Toolbar.stories.tsx +59 -59
  148. package/src/components/toolbar/components/actions/add/index.tsx +18 -18
  149. package/src/components/toolbar/components/actions/search/index.tsx +38 -38
  150. package/src/components/toolbar/components/actions/sort/index.tsx +49 -49
  151. package/src/components/toolbar/components/breadcrumbs/index.tsx +63 -63
  152. package/src/components/toolbar/components/breadcrumbs/item/index.tsx +72 -72
  153. package/src/components/toolbar/components/dropdown/index.tsx +107 -107
  154. package/src/components/toolbar/components/navigation/components/button/left/index.tsx +28 -28
  155. package/src/components/toolbar/components/navigation/components/button/left/left-arrow.svg +3 -3
  156. package/src/components/toolbar/components/navigation/components/button/right/index.tsx +27 -27
  157. package/src/components/toolbar/components/navigation/components/button/right/right-arrow.svg +3 -3
  158. package/src/components/toolbar/components/navigation/index.tsx +36 -36
  159. package/src/components/toolbar/index.tsx +55 -55
  160. package/src/hooks/useDeepEffect.tsx +22 -22
  161. package/src/hooks/useDidMountEffect.tsx +13 -13
  162. package/src/hooks/useOnOutsideClick.tsx +31 -31
  163. package/src/hooks/useToast.tsx +16 -16
  164. package/src/index.tsx +78 -78
  165. package/src/theme/components/alert.ts +60 -60
  166. package/src/theme/components/badge.ts +59 -59
  167. package/src/theme/components/button.ts +163 -163
  168. package/src/theme/components/checkbox.ts +28 -28
  169. package/src/theme/components/code.ts +16 -16
  170. package/src/theme/components/form-error.ts +31 -31
  171. package/src/theme/components/form-label.ts +17 -17
  172. package/src/theme/components/form.ts +29 -29
  173. package/src/theme/components/input.ts +65 -65
  174. package/src/theme/components/link.ts +118 -118
  175. package/src/theme/components/modal.ts +45 -45
  176. package/src/theme/components/select.ts +36 -36
  177. package/src/theme/components/switch.ts +89 -89
  178. package/src/theme/components/table.ts +42 -42
  179. package/src/theme/components/tabs.ts +255 -255
  180. package/src/theme/components/text.ts +93 -93
  181. package/src/theme/components/textarea.ts +42 -42
  182. package/src/theme/customXQChakraTheme.ts +54 -54
  183. package/src/theme/foundations/breakpoints.ts +18 -18
  184. package/src/theme/foundations/colors.ts +165 -165
  185. package/src/theme/foundations/shadows.ts +23 -23
  186. package/src/theme/foundations/typography.ts +62 -62
  187. package/src/theme/provider/index.tsx +21 -21
  188. package/src/theme/styles.ts +19 -19
  189. package/CHANGELOG.md +0 -456
@@ -1,49 +1,49 @@
1
- import React, { useRef, useState } from 'react';
2
- import { Box, Flex, useOutsideClick } from '@chakra-ui/react';
3
- import { ChevronDown, TableOutline } from '../../../../icons';
4
- import { Dropdown } from '../../dropdown';
5
- import { FieldOption, FieldOptions } from '../../../../input/InputTypes';
6
-
7
- export interface SortProps {
8
- onSelectItem: (option: FieldOption) => void;
9
- sortOptions: FieldOptions;
10
- }
11
-
12
- /**
13
- * A functional React component utilized to render the `Sort` component
14
- */
15
- export const Sort: React.FC<SortProps> = ({ onSelectItem, sortOptions }) => {
16
- const dropdownMenuRef = useRef<HTMLDivElement>(null);
17
- const [showDropdown, setShowDropdown] = useState(false);
18
- const [optionIndex, setOptionIndex] = useState<number | null>(null);
19
-
20
- useOutsideClick({
21
- ref: dropdownMenuRef,
22
- handler: () => setShowDropdown(false),
23
- });
24
-
25
- return (
26
- <Box onClick={() => setShowDropdown(!showDropdown)} position="relative">
27
- <Flex
28
- alignItems="center"
29
- cursor="pointer"
30
- onClick={() => setShowDropdown(!showDropdown)}
31
- >
32
- <TableOutline boxSize="16px" />
33
- <Box ml="2px">
34
- <ChevronDown boxSize="12px" />
35
- </Box>
36
- {showDropdown && (
37
- <Dropdown
38
- onSelectItem={onSelectItem}
39
- options={sortOptions}
40
- position="top"
41
- dropdownRef={dropdownMenuRef}
42
- optionIndex={optionIndex}
43
- setOptionIndex={setOptionIndex}
44
- />
45
- )}
46
- </Flex>
47
- </Box>
48
- );
49
- };
1
+ import React, { useRef, useState } from 'react';
2
+ import { Box, Flex, useOutsideClick } from '@chakra-ui/react';
3
+ import { ChevronDown, TableOutline } from '../../../../icons';
4
+ import { Dropdown } from '../../dropdown';
5
+ import { FieldOption, FieldOptions } from '../../../../input/InputTypes';
6
+
7
+ export interface SortProps {
8
+ onSelectItem: (option: FieldOption) => void;
9
+ sortOptions: FieldOptions;
10
+ }
11
+
12
+ /**
13
+ * A functional React component utilized to render the `Sort` component
14
+ */
15
+ export const Sort: React.FC<SortProps> = ({ onSelectItem, sortOptions }) => {
16
+ const dropdownMenuRef = useRef<HTMLDivElement>(null);
17
+ const [showDropdown, setShowDropdown] = useState(false);
18
+ const [optionIndex, setOptionIndex] = useState<number | null>(null);
19
+
20
+ useOutsideClick({
21
+ ref: dropdownMenuRef,
22
+ handler: () => setShowDropdown(false),
23
+ });
24
+
25
+ return (
26
+ <Box onClick={() => setShowDropdown(!showDropdown)} position="relative">
27
+ <Flex
28
+ alignItems="center"
29
+ cursor="pointer"
30
+ onClick={() => setShowDropdown(!showDropdown)}
31
+ >
32
+ <TableOutline boxSize="16px" />
33
+ <Box ml="2px">
34
+ <ChevronDown boxSize="12px" />
35
+ </Box>
36
+ {showDropdown && (
37
+ <Dropdown
38
+ onSelectItem={onSelectItem}
39
+ options={sortOptions}
40
+ position="top"
41
+ dropdownRef={dropdownMenuRef}
42
+ optionIndex={optionIndex}
43
+ setOptionIndex={setOptionIndex}
44
+ />
45
+ )}
46
+ </Flex>
47
+ </Box>
48
+ );
49
+ };
@@ -1,63 +1,63 @@
1
- import React, { useMemo, useCallback } from 'react';
2
- import { Box, Flex, useMediaQuery } from '@chakra-ui/react';
3
- import { ToolbarBreadcrumbItem } from './item';
4
- import { ToolbarLabelAndHandler } from '../..';
5
- import { ChevronRight } from '../../../../components/icons';
6
-
7
- export interface ToolbarBreadcrumbsProps {
8
- pageList: ToolbarLabelAndHandler[];
9
- currentPage: string;
10
- }
11
-
12
- /**
13
- * A functional React component utilized to render the `ToolbarBreadcrumbs` component
14
- */
15
- export const ToolbarBreadcrumbs: React.FC<ToolbarBreadcrumbsProps> = ({
16
- pageList,
17
- currentPage,
18
- }) => {
19
- const [breakpoint400] = useMediaQuery('(max-width: 400px)');
20
-
21
- const filteredPageList = useMemo(() => {
22
- if (breakpoint400)
23
- return pageList.filter(page => page.label === currentPage);
24
-
25
- const sliceIndex = pageList.findIndex(page => page.label === currentPage);
26
- return pageList.slice(0, sliceIndex + 1);
27
- }, [breakpoint400, currentPage, pageList]);
28
-
29
- const getPageType = useCallback(
30
- (index: number) => {
31
- switch (index) {
32
- case filteredPageList.length - 1:
33
- return 'current';
34
- case filteredPageList.length - 2:
35
- return 'previous';
36
- case 0:
37
- return 'initial';
38
- default:
39
- return 'other';
40
- }
41
- },
42
- [filteredPageList]
43
- );
44
-
45
- return (
46
- <Flex height="26px">
47
- {filteredPageList.map((page, i) => (
48
- <Flex alignItems="center" key={i}>
49
- <ToolbarBreadcrumbItem
50
- page={getPageType(i)}
51
- pageLabel={page.label}
52
- onClick={page.handler}
53
- />
54
- {i !== filteredPageList.length - 1 && (
55
- <Box mx="8px">
56
- <ChevronRight boxSize="16px" />
57
- </Box>
58
- )}
59
- </Flex>
60
- ))}
61
- </Flex>
62
- );
63
- };
1
+ import React, { useMemo, useCallback } from 'react';
2
+ import { Box, Flex, useMediaQuery } from '@chakra-ui/react';
3
+ import { ToolbarBreadcrumbItem } from './item';
4
+ import { ToolbarLabelAndHandler } from '../..';
5
+ import { ChevronRight } from '../../../../components/icons';
6
+
7
+ export interface ToolbarBreadcrumbsProps {
8
+ pageList: ToolbarLabelAndHandler[];
9
+ currentPage: string;
10
+ }
11
+
12
+ /**
13
+ * A functional React component utilized to render the `ToolbarBreadcrumbs` component
14
+ */
15
+ export const ToolbarBreadcrumbs: React.FC<ToolbarBreadcrumbsProps> = ({
16
+ pageList,
17
+ currentPage,
18
+ }) => {
19
+ const [breakpoint400] = useMediaQuery('(max-width: 400px)');
20
+
21
+ const filteredPageList = useMemo(() => {
22
+ if (breakpoint400)
23
+ return pageList.filter(page => page.label === currentPage);
24
+
25
+ const sliceIndex = pageList.findIndex(page => page.label === currentPage);
26
+ return pageList.slice(0, sliceIndex + 1);
27
+ }, [breakpoint400, currentPage, pageList]);
28
+
29
+ const getPageType = useCallback(
30
+ (index: number) => {
31
+ switch (index) {
32
+ case filteredPageList.length - 1:
33
+ return 'current';
34
+ case filteredPageList.length - 2:
35
+ return 'previous';
36
+ case 0:
37
+ return 'initial';
38
+ default:
39
+ return 'other';
40
+ }
41
+ },
42
+ [filteredPageList]
43
+ );
44
+
45
+ return (
46
+ <Flex height="26px">
47
+ {filteredPageList.map((page, i) => (
48
+ <Flex alignItems="center" key={i}>
49
+ <ToolbarBreadcrumbItem
50
+ page={getPageType(i)}
51
+ pageLabel={page.label}
52
+ onClick={page.handler}
53
+ />
54
+ {i !== filteredPageList.length - 1 && (
55
+ <Box mx="8px">
56
+ <ChevronRight boxSize="16px" />
57
+ </Box>
58
+ )}
59
+ </Flex>
60
+ ))}
61
+ </Flex>
62
+ );
63
+ };
@@ -1,72 +1,72 @@
1
- import React, { useMemo } from 'react';
2
- import { Box, useMediaQuery } from '@chakra-ui/react';
3
- import colors from '../../../../../theme/foundations/colors';
4
-
5
- export interface ToolbarBreadcrumbItemProps {
6
- pageLabel: string;
7
- page: 'current' | 'previous' | 'initial' | 'other';
8
- onClick: () => void;
9
- }
10
-
11
- /**
12
- * A functional React component utilized to render the `ToolbarBreadcrumbItem` component
13
- */
14
- export const ToolbarBreadcrumbItem: React.FC<ToolbarBreadcrumbItemProps> = ({
15
- page,
16
- pageLabel,
17
- onClick,
18
- }) => {
19
- const [breakpoint400] = useMediaQuery('(max-width: 400px)');
20
- const [breakpoint600] = useMediaQuery('(max-width: 600px)');
21
- const [breakpoint800] = useMediaQuery('(max-width: 800px)');
22
- const [breakpoint1512] = useMediaQuery('(max-width: 1512px)');
23
-
24
- const getPageLabel = useMemo(() => {
25
- if (breakpoint400) {
26
- if (page === 'current') {
27
- return pageLabel;
28
- }
29
- }
30
-
31
- if (breakpoint600) {
32
- if (page === 'current' || page === 'previous') {
33
- return pageLabel;
34
- }
35
-
36
- return '...';
37
- }
38
-
39
- if (breakpoint800 || breakpoint1512) {
40
- if (page !== 'other') {
41
- return pageLabel;
42
- }
43
-
44
- return '...';
45
- }
46
-
47
- return pageLabel;
48
- }, [
49
- breakpoint1512,
50
- breakpoint400,
51
- breakpoint600,
52
- breakpoint800,
53
- page,
54
- pageLabel,
55
- ]);
56
-
57
- return (
58
- <Box
59
- color={
60
- page === 'current'
61
- ? colors.label.primary.light
62
- : colors.label.secondary.light
63
- }
64
- fontSize="13px"
65
- letterSpacing="0.02em"
66
- onClick={onClick}
67
- cursor="pointer"
68
- >
69
- {getPageLabel}
70
- </Box>
71
- );
72
- };
1
+ import React, { useMemo } from 'react';
2
+ import { Box, useMediaQuery } from '@chakra-ui/react';
3
+ import colors from '../../../../../theme/foundations/colors';
4
+
5
+ export interface ToolbarBreadcrumbItemProps {
6
+ pageLabel: string;
7
+ page: 'current' | 'previous' | 'initial' | 'other';
8
+ onClick: () => void;
9
+ }
10
+
11
+ /**
12
+ * A functional React component utilized to render the `ToolbarBreadcrumbItem` component
13
+ */
14
+ export const ToolbarBreadcrumbItem: React.FC<ToolbarBreadcrumbItemProps> = ({
15
+ page,
16
+ pageLabel,
17
+ onClick,
18
+ }) => {
19
+ const [breakpoint400] = useMediaQuery('(max-width: 400px)');
20
+ const [breakpoint600] = useMediaQuery('(max-width: 600px)');
21
+ const [breakpoint800] = useMediaQuery('(max-width: 800px)');
22
+ const [breakpoint1512] = useMediaQuery('(max-width: 1512px)');
23
+
24
+ const getPageLabel = useMemo(() => {
25
+ if (breakpoint400) {
26
+ if (page === 'current') {
27
+ return pageLabel;
28
+ }
29
+ }
30
+
31
+ if (breakpoint600) {
32
+ if (page === 'current' || page === 'previous') {
33
+ return pageLabel;
34
+ }
35
+
36
+ return '...';
37
+ }
38
+
39
+ if (breakpoint800 || breakpoint1512) {
40
+ if (page !== 'other') {
41
+ return pageLabel;
42
+ }
43
+
44
+ return '...';
45
+ }
46
+
47
+ return pageLabel;
48
+ }, [
49
+ breakpoint1512,
50
+ breakpoint400,
51
+ breakpoint600,
52
+ breakpoint800,
53
+ page,
54
+ pageLabel,
55
+ ]);
56
+
57
+ return (
58
+ <Box
59
+ color={
60
+ page === 'current'
61
+ ? colors.label.primary.light
62
+ : colors.label.secondary.light
63
+ }
64
+ fontSize="13px"
65
+ letterSpacing="0.02em"
66
+ onClick={onClick}
67
+ cursor="pointer"
68
+ >
69
+ {getPageLabel}
70
+ </Box>
71
+ );
72
+ };
@@ -1,107 +1,107 @@
1
- import React, { RefObject, useMemo } from 'react';
2
- import { Box, Flex } from '@chakra-ui/react';
3
- import colors from '../../../../theme/foundations/colors';
4
- import { FieldOption, FieldOptions } from '../../../input/InputTypes';
5
- import { Checkmark } from '../../../icons';
6
-
7
- export interface DropdownProps {
8
- onSelectItem: (option: FieldOption) => void;
9
- options: FieldOptions;
10
- dropdownRef: RefObject<HTMLDivElement>;
11
- position: 'top' | 'bottom';
12
- optionIndex: number | null;
13
- setOptionIndex: React.Dispatch<React.SetStateAction<number | null>>;
14
- }
15
-
16
- /**
17
- * A functional React component utilized to render the `Dropdown` component
18
- */
19
- export const Dropdown: React.FC<DropdownProps> = ({
20
- onSelectItem,
21
- options,
22
- dropdownRef,
23
- position,
24
- optionIndex,
25
- setOptionIndex,
26
- }) => {
27
- const DropdownContent = useMemo(() => {
28
- return options.map((option, idx) => (
29
- <Box key={idx}>
30
- {option.value === 'section_header' &&
31
- options[idx + 1] &&
32
- options[idx + 1].value !== 'section_header' && (
33
- <Box
34
- color={colors.label.secondary.light}
35
- fontSize="13px"
36
- width="fit-content"
37
- fontWeight="bold"
38
- px="8px"
39
- pl="26px"
40
- whiteSpace="nowrap"
41
- >
42
- {idx > 0 && (
43
- <Box
44
- width="100%"
45
- my="3px"
46
- borderTop="2px solid"
47
- borderColor={colors.border.default}
48
- />
49
- )}
50
- {option.label}
51
- </Box>
52
- )}
53
- {option.value !== 'section_header' && (
54
- <Flex
55
- alignItems="center"
56
- cursor="pointer"
57
- onClick={() => {
58
- setOptionIndex(idx);
59
- onSelectItem(option);
60
- }}
61
- key={option.value}
62
- fontSize="13px"
63
- px="8px"
64
- py="4px"
65
- width="100%"
66
- color={colors.label.primary.light}
67
- whiteSpace="nowrap"
68
- id={option.value}
69
- >
70
- <Box mr="8px" width="12px">
71
- {optionIndex === idx && <Checkmark boxSize="12px" />}
72
- </Box>
73
-
74
- {option.label}
75
- </Flex>
76
- )}
77
- </Box>
78
- ));
79
- }, [onSelectItem, optionIndex, options, setOptionIndex]);
80
-
81
- return (
82
- <Flex
83
- flexDirection="column"
84
- ref={dropdownRef}
85
- scrollMargin="15px"
86
- backdropFilter="auto"
87
- backdropBlur="64px"
88
- borderRadius="4px"
89
- bg={colors.fill.light.tertiary}
90
- mt="3px"
91
- maxH="240px"
92
- overflowY="auto"
93
- px="8px"
94
- py="4px"
95
- position="absolute"
96
- top={position === 'top' ? 26 : undefined}
97
- bottom={position === 'bottom' ? 30 : undefined}
98
- right={0}
99
- width="fit-content"
100
- minWidth="100%"
101
- zIndex={100}
102
- tabIndex={-2000}
103
- >
104
- {DropdownContent}
105
- </Flex>
106
- );
107
- };
1
+ import React, { RefObject, useMemo } from 'react';
2
+ import { Box, Flex } from '@chakra-ui/react';
3
+ import colors from '../../../../theme/foundations/colors';
4
+ import { FieldOption, FieldOptions } from '../../../input/InputTypes';
5
+ import { Checkmark } from '../../../icons';
6
+
7
+ export interface DropdownProps {
8
+ onSelectItem: (option: FieldOption) => void;
9
+ options: FieldOptions;
10
+ dropdownRef: RefObject<HTMLDivElement>;
11
+ position: 'top' | 'bottom';
12
+ optionIndex: number | null;
13
+ setOptionIndex: React.Dispatch<React.SetStateAction<number | null>>;
14
+ }
15
+
16
+ /**
17
+ * A functional React component utilized to render the `Dropdown` component
18
+ */
19
+ export const Dropdown: React.FC<DropdownProps> = ({
20
+ onSelectItem,
21
+ options,
22
+ dropdownRef,
23
+ position,
24
+ optionIndex,
25
+ setOptionIndex,
26
+ }) => {
27
+ const DropdownContent = useMemo(() => {
28
+ return options.map((option, idx) => (
29
+ <Box key={idx}>
30
+ {option.value === 'section_header' &&
31
+ options[idx + 1] &&
32
+ options[idx + 1].value !== 'section_header' && (
33
+ <Box
34
+ color={colors.label.secondary.light}
35
+ fontSize="13px"
36
+ width="fit-content"
37
+ fontWeight="bold"
38
+ px="8px"
39
+ pl="26px"
40
+ whiteSpace="nowrap"
41
+ >
42
+ {idx > 0 && (
43
+ <Box
44
+ width="100%"
45
+ my="3px"
46
+ borderTop="2px solid"
47
+ borderColor={colors.border.default}
48
+ />
49
+ )}
50
+ {option.label}
51
+ </Box>
52
+ )}
53
+ {option.value !== 'section_header' && (
54
+ <Flex
55
+ alignItems="center"
56
+ cursor="pointer"
57
+ onClick={() => {
58
+ setOptionIndex(idx);
59
+ onSelectItem(option);
60
+ }}
61
+ key={option.value}
62
+ fontSize="13px"
63
+ px="8px"
64
+ py="4px"
65
+ width="100%"
66
+ color={colors.label.primary.light}
67
+ whiteSpace="nowrap"
68
+ id={option.value}
69
+ >
70
+ <Box mr="8px" width="12px">
71
+ {optionIndex === idx && <Checkmark boxSize="12px" />}
72
+ </Box>
73
+
74
+ {option.label}
75
+ </Flex>
76
+ )}
77
+ </Box>
78
+ ));
79
+ }, [onSelectItem, optionIndex, options, setOptionIndex]);
80
+
81
+ return (
82
+ <Flex
83
+ flexDirection="column"
84
+ ref={dropdownRef}
85
+ scrollMargin="15px"
86
+ backdropFilter="auto"
87
+ backdropBlur="64px"
88
+ borderRadius="4px"
89
+ bg={colors.fill.light.tertiary}
90
+ mt="3px"
91
+ maxH="240px"
92
+ overflowY="auto"
93
+ px="8px"
94
+ py="4px"
95
+ position="absolute"
96
+ top={position === 'top' ? 26 : undefined}
97
+ bottom={position === 'bottom' ? 30 : undefined}
98
+ right={0}
99
+ width="fit-content"
100
+ minWidth="100%"
101
+ zIndex={100}
102
+ tabIndex={-2000}
103
+ >
104
+ {DropdownContent}
105
+ </Flex>
106
+ );
107
+ };
@@ -1,28 +1,28 @@
1
- import React from 'react';
2
- import { Box } from '@chakra-ui/react';
3
- import { ReactComponent as LeftArrow } from './left-arrow.svg';
4
-
5
- export interface LeftArrowButtonProps {
6
- onClick: () => void;
7
- disabled: boolean;
8
- }
9
-
10
- /**
11
- * A functional React component utilized to render the `LeftArrowButton` component
12
- */
13
- export const LeftArrowButton: React.FC<LeftArrowButtonProps> = ({
14
- onClick,
15
- disabled,
16
- }) => {
17
- return (
18
- <Box
19
- onClick={() => {
20
- if (!disabled) return onClick();
21
- }}
22
- cursor={disabled ? 'not-allowed' : 'pointer'}
23
- transform="scaleX(-1)"
24
- >
25
- <LeftArrow stroke={disabled ? '#3C3C43' : 'black'} />
26
- </Box>
27
- );
28
- };
1
+ import React from 'react';
2
+ import { Box } from '@chakra-ui/react';
3
+ import { ReactComponent as LeftArrow } from './left-arrow.svg';
4
+
5
+ export interface LeftArrowButtonProps {
6
+ onClick: () => void;
7
+ disabled: boolean;
8
+ }
9
+
10
+ /**
11
+ * A functional React component utilized to render the `LeftArrowButton` component
12
+ */
13
+ export const LeftArrowButton: React.FC<LeftArrowButtonProps> = ({
14
+ onClick,
15
+ disabled,
16
+ }) => {
17
+ return (
18
+ <Box
19
+ onClick={() => {
20
+ if (!disabled) return onClick();
21
+ }}
22
+ cursor={disabled ? 'not-allowed' : 'pointer'}
23
+ transform="scaleX(-1)"
24
+ >
25
+ <LeftArrow stroke={disabled ? '#3C3C43' : 'black'} />
26
+ </Box>
27
+ );
28
+ };
@@ -1,3 +1,3 @@
1
- <svg width="8" height="14" viewBox="0 0 8 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path d="M7.125 13.25L0.875 7L7.125 0.75" stroke="current" stroke-linecap="round" stroke-linejoin="round"/>
3
- </svg>
1
+ <svg width="8" height="14" viewBox="0 0 8 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.125 13.25L0.875 7L7.125 0.75" stroke="current" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>