datocms-react-ui 0.3.14 → 0.3.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Button/styles.module.css.json +1 -1
- package/dist/cjs/ButtonGroup/Button/index.js +19 -0
- package/dist/cjs/ButtonGroup/Button/index.js.map +1 -0
- package/dist/cjs/ButtonGroup/Button/styles.module.css.json +1 -0
- package/dist/cjs/ButtonGroup/Group/index.js +29 -0
- package/dist/cjs/ButtonGroup/Group/index.js.map +1 -0
- package/dist/cjs/ButtonGroup/Group/styles.module.css.json +1 -0
- package/dist/cjs/ButtonGroup/index.js +8 -0
- package/dist/cjs/ButtonGroup/index.js.map +1 -0
- package/dist/cjs/Canvas/index.js +16 -27
- package/dist/cjs/Canvas/index.js.map +1 -1
- package/dist/cjs/Canvas/styles.module.css.json +1 -1
- package/dist/cjs/Dropdown/Dropdown.js +166 -0
- package/dist/cjs/Dropdown/Dropdown.js.map +1 -0
- package/dist/cjs/Dropdown/DropdownContext.js +9 -0
- package/dist/cjs/Dropdown/DropdownContext.js.map +1 -0
- package/dist/cjs/Dropdown/Group.js +16 -0
- package/dist/cjs/Dropdown/Group.js.map +1 -0
- package/dist/cjs/Dropdown/Menu.js +250 -0
- package/dist/cjs/Dropdown/Menu.js.map +1 -0
- package/dist/cjs/Dropdown/MenuContext.js +12 -0
- package/dist/cjs/Dropdown/MenuContext.js.map +1 -0
- package/dist/cjs/Dropdown/Option.js +100 -0
- package/dist/cjs/Dropdown/Option.js.map +1 -0
- package/dist/cjs/Dropdown/OptionAction.js +29 -0
- package/dist/cjs/Dropdown/OptionAction.js.map +1 -0
- package/dist/cjs/Dropdown/Portal.js +53 -0
- package/dist/cjs/Dropdown/Portal.js.map +1 -0
- package/dist/cjs/Dropdown/Separator.js +37 -0
- package/dist/cjs/Dropdown/Separator.js.map +1 -0
- package/dist/cjs/Dropdown/Text.js +14 -0
- package/dist/cjs/Dropdown/Text.js.map +1 -0
- package/dist/cjs/Dropdown/index.js +18 -0
- package/dist/cjs/Dropdown/index.js.map +1 -0
- package/dist/cjs/Dropdown/styles.module.css.json +1 -0
- package/dist/cjs/Form/index.js +19 -0
- package/dist/cjs/Form/index.js.map +1 -1
- package/dist/cjs/SidebarPanel/index.js +88 -0
- package/dist/cjs/SidebarPanel/index.js.map +1 -0
- package/dist/cjs/SidebarPanel/styles.module.css.json +1 -0
- package/dist/cjs/Spinner/index.js +64 -0
- package/dist/cjs/Spinner/index.js.map +1 -0
- package/dist/cjs/Spinner/styles.module.css.json +1 -0
- package/dist/cjs/Toolbar/Button/index.js +15 -0
- package/dist/cjs/Toolbar/Button/index.js.map +1 -0
- package/dist/cjs/Toolbar/Button/styles.module.css.json +1 -0
- package/dist/cjs/Toolbar/Stack/index.js +19 -0
- package/dist/cjs/Toolbar/Stack/index.js.map +1 -0
- package/dist/cjs/Toolbar/Stack/styles.module.css.json +1 -0
- package/dist/cjs/Toolbar/Title/index.js +15 -0
- package/dist/cjs/Toolbar/Title/index.js.map +1 -0
- package/dist/cjs/Toolbar/Title/styles.module.css.json +1 -0
- package/dist/cjs/Toolbar/Toolbar/index.js +99 -0
- package/dist/cjs/Toolbar/Toolbar/index.js.map +1 -0
- package/dist/cjs/Toolbar/Toolbar/styles.module.css.json +1 -0
- package/dist/cjs/Toolbar/index.js +12 -0
- package/dist/cjs/Toolbar/index.js.map +1 -0
- package/dist/cjs/generateStyleFromCtx/index.js +32 -0
- package/dist/cjs/generateStyleFromCtx/index.js.map +1 -0
- package/dist/cjs/icons.js +38 -0
- package/dist/cjs/icons.js.map +1 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mergeRefs/index.js +19 -0
- package/dist/cjs/mergeRefs/index.js.map +1 -0
- package/dist/cjs/useClickOutside/index.js +24 -0
- package/dist/cjs/useClickOutside/index.js.map +1 -0
- package/dist/cjs/useMediaQuery/index.js +149 -0
- package/dist/cjs/useMediaQuery/index.js.map +1 -0
- package/dist/esm/Button/styles.module.css.json +1 -1
- package/dist/esm/ButtonGroup/Button/index.d.ts +10 -0
- package/dist/esm/ButtonGroup/Button/index.js +12 -0
- package/dist/esm/ButtonGroup/Button/index.js.map +1 -0
- package/dist/esm/ButtonGroup/Button/styles.module.css.json +1 -0
- package/dist/esm/ButtonGroup/Group/index.d.ts +21 -0
- package/dist/esm/ButtonGroup/Group/index.js +22 -0
- package/dist/esm/ButtonGroup/Group/index.js.map +1 -0
- package/dist/esm/ButtonGroup/Group/styles.module.css.json +1 -0
- package/dist/esm/ButtonGroup/index.d.ts +4 -0
- package/dist/esm/ButtonGroup/index.js +3 -0
- package/dist/esm/ButtonGroup/index.js.map +1 -0
- package/dist/esm/Canvas/index.d.ts +7 -3
- package/dist/esm/Canvas/index.js +16 -28
- package/dist/esm/Canvas/index.js.map +1 -1
- package/dist/esm/Canvas/styles.module.css.json +1 -1
- package/dist/esm/Dropdown/Dropdown.d.ts +113 -0
- package/dist/esm/Dropdown/Dropdown.js +140 -0
- package/dist/esm/Dropdown/Dropdown.js.map +1 -0
- package/dist/esm/Dropdown/DropdownContext.d.ts +6 -0
- package/dist/esm/Dropdown/DropdownContext.js +6 -0
- package/dist/esm/Dropdown/DropdownContext.js.map +1 -0
- package/dist/esm/Dropdown/Group.d.ts +6 -0
- package/dist/esm/Dropdown/Group.js +9 -0
- package/dist/esm/Dropdown/Group.js.map +1 -0
- package/dist/esm/Dropdown/Menu.d.ts +6 -0
- package/dist/esm/Dropdown/Menu.js +224 -0
- package/dist/esm/Dropdown/Menu.js.map +1 -0
- package/dist/esm/Dropdown/MenuContext.d.ts +8 -0
- package/dist/esm/Dropdown/MenuContext.js +9 -0
- package/dist/esm/Dropdown/MenuContext.js.map +1 -0
- package/dist/esm/Dropdown/Option.d.ts +13 -0
- package/dist/esm/Dropdown/Option.js +74 -0
- package/dist/esm/Dropdown/Option.js.map +1 -0
- package/dist/esm/Dropdown/OptionAction.d.ts +11 -0
- package/dist/esm/Dropdown/OptionAction.js +22 -0
- package/dist/esm/Dropdown/OptionAction.js.map +1 -0
- package/dist/esm/Dropdown/Portal.d.ts +4 -0
- package/dist/esm/Dropdown/Portal.js +27 -0
- package/dist/esm/Dropdown/Portal.js.map +1 -0
- package/dist/esm/Dropdown/Separator.d.ts +2 -0
- package/dist/esm/Dropdown/Separator.js +11 -0
- package/dist/esm/Dropdown/Separator.js.map +1 -0
- package/dist/esm/Dropdown/Text.d.ts +5 -0
- package/dist/esm/Dropdown/Text.js +7 -0
- package/dist/esm/Dropdown/Text.js.map +1 -0
- package/dist/esm/Dropdown/index.d.ts +9 -0
- package/dist/esm/Dropdown/index.js +9 -0
- package/dist/esm/Dropdown/index.js.map +1 -0
- package/dist/esm/Dropdown/styles.module.css.json +1 -0
- package/dist/esm/Form/index.d.ts +19 -0
- package/dist/esm/Form/index.js +19 -0
- package/dist/esm/Form/index.js.map +1 -1
- package/dist/esm/SidebarPanel/index.d.ts +43 -0
- package/dist/esm/SidebarPanel/index.js +62 -0
- package/dist/esm/SidebarPanel/index.js.map +1 -0
- package/dist/esm/SidebarPanel/styles.module.css.json +1 -0
- package/dist/esm/Spinner/index.d.ts +27 -0
- package/dist/esm/Spinner/index.js +57 -0
- package/dist/esm/Spinner/index.js.map +1 -0
- package/dist/esm/Spinner/styles.module.css.json +1 -0
- package/dist/esm/Toolbar/Button/index.d.ts +8 -0
- package/dist/esm/Toolbar/Button/index.js +8 -0
- package/dist/esm/Toolbar/Button/index.js.map +1 -0
- package/dist/esm/Toolbar/Button/styles.module.css.json +1 -0
- package/dist/esm/Toolbar/Stack/index.d.ts +8 -0
- package/dist/esm/Toolbar/Stack/index.js +12 -0
- package/dist/esm/Toolbar/Stack/index.js.map +1 -0
- package/dist/esm/Toolbar/Stack/styles.module.css.json +1 -0
- package/dist/esm/Toolbar/Title/index.d.ts +7 -0
- package/dist/esm/Toolbar/Title/index.js +8 -0
- package/dist/esm/Toolbar/Title/index.js.map +1 -0
- package/dist/esm/Toolbar/Title/styles.module.css.json +1 -0
- package/dist/esm/Toolbar/Toolbar/index.d.ts +91 -0
- package/dist/esm/Toolbar/Toolbar/index.js +92 -0
- package/dist/esm/Toolbar/Toolbar/index.js.map +1 -0
- package/dist/esm/Toolbar/Toolbar/styles.module.css.json +1 -0
- package/dist/esm/Toolbar/index.d.ts +8 -0
- package/dist/esm/Toolbar/index.js +5 -0
- package/dist/esm/Toolbar/index.js.map +1 -0
- package/dist/esm/generateStyleFromCtx/index.d.ts +3 -0
- package/dist/esm/generateStyleFromCtx/index.js +28 -0
- package/dist/esm/generateStyleFromCtx/index.js.map +1 -0
- package/dist/esm/icons.d.ts +12 -0
- package/dist/esm/icons.js +27 -0
- package/dist/esm/icons.js.map +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mergeRefs/index.d.ts +2 -0
- package/dist/esm/mergeRefs/index.js +15 -0
- package/dist/esm/mergeRefs/index.js.map +1 -0
- package/dist/esm/useClickOutside/index.d.ts +2 -0
- package/dist/esm/useClickOutside/index.js +21 -0
- package/dist/esm/useClickOutside/index.js.map +1 -0
- package/dist/esm/useMediaQuery/index.d.ts +8 -0
- package/dist/esm/useMediaQuery/index.js +140 -0
- package/dist/esm/useMediaQuery/index.js.map +1 -0
- package/dist/types/ButtonGroup/Button/index.d.ts +10 -0
- package/dist/types/ButtonGroup/Group/index.d.ts +21 -0
- package/dist/types/ButtonGroup/index.d.ts +4 -0
- package/dist/types/Canvas/index.d.ts +7 -3
- package/dist/types/Dropdown/Dropdown.d.ts +113 -0
- package/dist/types/Dropdown/DropdownContext.d.ts +6 -0
- package/dist/types/Dropdown/Group.d.ts +6 -0
- package/dist/types/Dropdown/Menu.d.ts +6 -0
- package/dist/types/Dropdown/MenuContext.d.ts +8 -0
- package/dist/types/Dropdown/Option.d.ts +13 -0
- package/dist/types/Dropdown/OptionAction.d.ts +11 -0
- package/dist/types/Dropdown/Portal.d.ts +4 -0
- package/dist/types/Dropdown/Separator.d.ts +2 -0
- package/dist/types/Dropdown/Text.d.ts +5 -0
- package/dist/types/Dropdown/index.d.ts +9 -0
- package/dist/types/Form/index.d.ts +19 -0
- package/dist/types/SidebarPanel/index.d.ts +43 -0
- package/dist/types/Spinner/index.d.ts +27 -0
- package/dist/types/Toolbar/Button/index.d.ts +8 -0
- package/dist/types/Toolbar/Stack/index.d.ts +8 -0
- package/dist/types/Toolbar/Title/index.d.ts +7 -0
- package/dist/types/Toolbar/Toolbar/index.d.ts +91 -0
- package/dist/types/Toolbar/index.d.ts +8 -0
- package/dist/types/generateStyleFromCtx/index.d.ts +3 -0
- package/dist/types/icons.d.ts +12 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/mergeRefs/index.d.ts +2 -0
- package/dist/types/useClickOutside/index.d.ts +2 -0
- package/dist/types/useMediaQuery/index.d.ts +8 -0
- package/package.json +8 -5
- package/styles.css +1 -1
- package/types.json +4688 -1844
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Canvas/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Canvas/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAa,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM/E,OAAO,CAAC,MAAM,0BAA0B,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,UAAU,MAAM,YAAY,CAAC;AAIpC,8DAA8D;AAC9D,MAAM,CAAC,IAAM,UAAU,GAAG,aAAa,CACrC,IAAI,CACL,CAAC;AAEF,MAAM,UAAU,MAAM;IACpB,IAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IAEnC,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;KAChD;IAED,OAAO,GAAQ,CAAC;AAClB,CAAC;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0eG;AAEH,MAAM,UAAU,MAAM,CAAC,EAIT;QAHZ,GAAG,SAAA,EACH,QAAQ,cAAA,EACR,aAAa,mBAAA;IAEL,IAAA,IAAI,GAAM,GAAmC,KAAzC,CAA0C;IAEtD,SAAS,CAAC;QACR,IAAI,IAAI,KAAK,YAAY,IAAI,CAAC,aAAa,EAAE;YAC3C,IAAM,oBAAkB,GAAI,GAAkC,CAAC;YAC/D,oBAAkB,CAAC,gBAAgB,EAAE,CAAC;YAEtC,OAAO;gBACL,oBAAkB,CAAC,eAAe,EAAE,CAAC;YACvC,CAAC,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;IAE1B,OAAO,CACL,oBAAC,UAAU,CAAC,QAAQ,IAAC,KAAK,EAAE,GAAG;QAC7B,6BACE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EACvD,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,IAE/B,QAAQ,CACL,CACc,CACvB,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "canvas": "
|
|
1
|
+
{ "themeVariables": "_themeVariables_ovgoa_1", "canvas": "_canvas_ovgoa_68" }
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type RenderTriggerCtx = {
|
|
3
|
+
open: boolean;
|
|
4
|
+
onClick: () => void;
|
|
5
|
+
};
|
|
6
|
+
export declare type DropdownProps = {
|
|
7
|
+
renderTrigger: (ctx: RenderTriggerCtx) => JSX.Element;
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* @example Basic example
|
|
12
|
+
*
|
|
13
|
+
* ```js
|
|
14
|
+
* <Canvas ctx={ctx}>
|
|
15
|
+
* <Dropdown
|
|
16
|
+
* renderTrigger={({ open, onClick }) => (
|
|
17
|
+
* <Button
|
|
18
|
+
* onClick={onClick}
|
|
19
|
+
* rightIcon={open ? <CaretUpIcon /> : <CaretDownIcon />}
|
|
20
|
+
* >
|
|
21
|
+
* Options
|
|
22
|
+
* </Button>
|
|
23
|
+
* )}
|
|
24
|
+
* >
|
|
25
|
+
* <DropdownMenu>
|
|
26
|
+
* <DropdownOption onClick={() => {}}>Edit</DropdownOption>
|
|
27
|
+
* <DropdownOption disabled onClick={() => {}}>
|
|
28
|
+
* Duplicate
|
|
29
|
+
* </DropdownOption>
|
|
30
|
+
* <DropdownSeparator />
|
|
31
|
+
* <DropdownOption red onClick={() => {}}>
|
|
32
|
+
* Delete
|
|
33
|
+
* </DropdownOption>
|
|
34
|
+
* </DropdownMenu>
|
|
35
|
+
* </Dropdown>
|
|
36
|
+
* </Canvas>;
|
|
37
|
+
* ```
|
|
38
|
+
*
|
|
39
|
+
* @example Option actions
|
|
40
|
+
*
|
|
41
|
+
* ```js
|
|
42
|
+
* <Canvas ctx={ctx}>
|
|
43
|
+
* <Dropdown
|
|
44
|
+
* renderTrigger={({ open, onClick }) => (
|
|
45
|
+
* <Button
|
|
46
|
+
* onClick={onClick}
|
|
47
|
+
* rightIcon={open ? <CaretUpIcon /> : <CaretDownIcon />}
|
|
48
|
+
* >
|
|
49
|
+
* Fields
|
|
50
|
+
* </Button>
|
|
51
|
+
* )}
|
|
52
|
+
* >
|
|
53
|
+
* <DropdownMenu>
|
|
54
|
+
* <DropdownOption>
|
|
55
|
+
* First option
|
|
56
|
+
* <DropdownOptionAction icon={<PlusIcon />} onClick={() => {}} />
|
|
57
|
+
* <DropdownOptionAction
|
|
58
|
+
* red
|
|
59
|
+
* icon={<TrashIcon />}
|
|
60
|
+
* onClick={() => {}}
|
|
61
|
+
* />
|
|
62
|
+
* </DropdownOption>
|
|
63
|
+
* <DropdownOption>
|
|
64
|
+
* Second option
|
|
65
|
+
* <DropdownOptionAction icon={<PlusIcon />} onClick={() => {}} />
|
|
66
|
+
* <DropdownOptionAction
|
|
67
|
+
* red
|
|
68
|
+
* icon={<TrashIcon />}
|
|
69
|
+
* onClick={() => {}}
|
|
70
|
+
* />
|
|
71
|
+
* </DropdownOption>
|
|
72
|
+
* </DropdownMenu>
|
|
73
|
+
* </Dropdown>
|
|
74
|
+
* </Canvas>;
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @example Option groups
|
|
78
|
+
*
|
|
79
|
+
* ```js
|
|
80
|
+
* <Canvas ctx={ctx}>
|
|
81
|
+
* <Dropdown
|
|
82
|
+
* renderTrigger={({ open, onClick }) => (
|
|
83
|
+
* <Button
|
|
84
|
+
* onClick={onClick}
|
|
85
|
+
* rightIcon={open ? <CaretUpIcon /> : <CaretDownIcon />}
|
|
86
|
+
* >
|
|
87
|
+
* Fields
|
|
88
|
+
* </Button>
|
|
89
|
+
* )}
|
|
90
|
+
* >
|
|
91
|
+
* <DropdownMenu>
|
|
92
|
+
* <DropdownGroup name="Group 1">
|
|
93
|
+
* <DropdownOption>Foo</DropdownOption>
|
|
94
|
+
* <DropdownOption>Bar</DropdownOption>
|
|
95
|
+
* <DropdownOption>Qux</DropdownOption>
|
|
96
|
+
* </DropdownGroup>
|
|
97
|
+
* <DropdownGroup name="Group 2">
|
|
98
|
+
* <DropdownOption>Foo</DropdownOption>
|
|
99
|
+
* <DropdownOption>Bar</DropdownOption>
|
|
100
|
+
* <DropdownOption>Qux</DropdownOption>
|
|
101
|
+
* </DropdownGroup>
|
|
102
|
+
* <DropdownGroup name="Group 3">
|
|
103
|
+
* <DropdownOption>Foo</DropdownOption>
|
|
104
|
+
* <DropdownOption>Bar</DropdownOption>
|
|
105
|
+
* <DropdownOption>Qux</DropdownOption>
|
|
106
|
+
* </DropdownGroup>
|
|
107
|
+
* </DropdownMenu>
|
|
108
|
+
* </Dropdown>
|
|
109
|
+
* </Canvas>;
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export declare function Dropdown({ renderTrigger, children, }: DropdownProps): JSX.Element;
|
|
113
|
+
export {};
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { MediaQuery } from '../useMediaQuery';
|
|
3
|
+
import useClickOutside from '../useClickOutside';
|
|
4
|
+
import { DropdownContext } from './DropdownContext';
|
|
5
|
+
import s from './styles.module.css.json';
|
|
6
|
+
/**
|
|
7
|
+
* @example Basic example
|
|
8
|
+
*
|
|
9
|
+
* ```js
|
|
10
|
+
* <Canvas ctx={ctx}>
|
|
11
|
+
* <Dropdown
|
|
12
|
+
* renderTrigger={({ open, onClick }) => (
|
|
13
|
+
* <Button
|
|
14
|
+
* onClick={onClick}
|
|
15
|
+
* rightIcon={open ? <CaretUpIcon /> : <CaretDownIcon />}
|
|
16
|
+
* >
|
|
17
|
+
* Options
|
|
18
|
+
* </Button>
|
|
19
|
+
* )}
|
|
20
|
+
* >
|
|
21
|
+
* <DropdownMenu>
|
|
22
|
+
* <DropdownOption onClick={() => {}}>Edit</DropdownOption>
|
|
23
|
+
* <DropdownOption disabled onClick={() => {}}>
|
|
24
|
+
* Duplicate
|
|
25
|
+
* </DropdownOption>
|
|
26
|
+
* <DropdownSeparator />
|
|
27
|
+
* <DropdownOption red onClick={() => {}}>
|
|
28
|
+
* Delete
|
|
29
|
+
* </DropdownOption>
|
|
30
|
+
* </DropdownMenu>
|
|
31
|
+
* </Dropdown>
|
|
32
|
+
* </Canvas>;
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example Option actions
|
|
36
|
+
*
|
|
37
|
+
* ```js
|
|
38
|
+
* <Canvas ctx={ctx}>
|
|
39
|
+
* <Dropdown
|
|
40
|
+
* renderTrigger={({ open, onClick }) => (
|
|
41
|
+
* <Button
|
|
42
|
+
* onClick={onClick}
|
|
43
|
+
* rightIcon={open ? <CaretUpIcon /> : <CaretDownIcon />}
|
|
44
|
+
* >
|
|
45
|
+
* Fields
|
|
46
|
+
* </Button>
|
|
47
|
+
* )}
|
|
48
|
+
* >
|
|
49
|
+
* <DropdownMenu>
|
|
50
|
+
* <DropdownOption>
|
|
51
|
+
* First option
|
|
52
|
+
* <DropdownOptionAction icon={<PlusIcon />} onClick={() => {}} />
|
|
53
|
+
* <DropdownOptionAction
|
|
54
|
+
* red
|
|
55
|
+
* icon={<TrashIcon />}
|
|
56
|
+
* onClick={() => {}}
|
|
57
|
+
* />
|
|
58
|
+
* </DropdownOption>
|
|
59
|
+
* <DropdownOption>
|
|
60
|
+
* Second option
|
|
61
|
+
* <DropdownOptionAction icon={<PlusIcon />} onClick={() => {}} />
|
|
62
|
+
* <DropdownOptionAction
|
|
63
|
+
* red
|
|
64
|
+
* icon={<TrashIcon />}
|
|
65
|
+
* onClick={() => {}}
|
|
66
|
+
* />
|
|
67
|
+
* </DropdownOption>
|
|
68
|
+
* </DropdownMenu>
|
|
69
|
+
* </Dropdown>
|
|
70
|
+
* </Canvas>;
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* @example Option groups
|
|
74
|
+
*
|
|
75
|
+
* ```js
|
|
76
|
+
* <Canvas ctx={ctx}>
|
|
77
|
+
* <Dropdown
|
|
78
|
+
* renderTrigger={({ open, onClick }) => (
|
|
79
|
+
* <Button
|
|
80
|
+
* onClick={onClick}
|
|
81
|
+
* rightIcon={open ? <CaretUpIcon /> : <CaretDownIcon />}
|
|
82
|
+
* >
|
|
83
|
+
* Fields
|
|
84
|
+
* </Button>
|
|
85
|
+
* )}
|
|
86
|
+
* >
|
|
87
|
+
* <DropdownMenu>
|
|
88
|
+
* <DropdownGroup name="Group 1">
|
|
89
|
+
* <DropdownOption>Foo</DropdownOption>
|
|
90
|
+
* <DropdownOption>Bar</DropdownOption>
|
|
91
|
+
* <DropdownOption>Qux</DropdownOption>
|
|
92
|
+
* </DropdownGroup>
|
|
93
|
+
* <DropdownGroup name="Group 2">
|
|
94
|
+
* <DropdownOption>Foo</DropdownOption>
|
|
95
|
+
* <DropdownOption>Bar</DropdownOption>
|
|
96
|
+
* <DropdownOption>Qux</DropdownOption>
|
|
97
|
+
* </DropdownGroup>
|
|
98
|
+
* <DropdownGroup name="Group 3">
|
|
99
|
+
* <DropdownOption>Foo</DropdownOption>
|
|
100
|
+
* <DropdownOption>Bar</DropdownOption>
|
|
101
|
+
* <DropdownOption>Qux</DropdownOption>
|
|
102
|
+
* </DropdownGroup>
|
|
103
|
+
* </DropdownMenu>
|
|
104
|
+
* </Dropdown>
|
|
105
|
+
* </Canvas>;
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
export function Dropdown(_a) {
|
|
109
|
+
var renderTrigger = _a.renderTrigger, children = _a.children;
|
|
110
|
+
var isClickOutsideEnabled = useRef();
|
|
111
|
+
var _b = useState(false), isOpen = _b[0], setOpen = _b[1];
|
|
112
|
+
useEffect(function () {
|
|
113
|
+
isClickOutsideEnabled.current = false;
|
|
114
|
+
}, []);
|
|
115
|
+
var handleClickOutside = useCallback(function (event) {
|
|
116
|
+
if (isClickOutsideEnabled.current &&
|
|
117
|
+
!event.target.closest(s['Dropdown__menu']) &&
|
|
118
|
+
isOpen) {
|
|
119
|
+
setOpen(false);
|
|
120
|
+
}
|
|
121
|
+
}, [setOpen, isOpen, isClickOutsideEnabled]);
|
|
122
|
+
var outsideRef = useClickOutside(handleClickOutside);
|
|
123
|
+
var handleClose = useCallback(function () {
|
|
124
|
+
setOpen(false);
|
|
125
|
+
}, [setOpen]);
|
|
126
|
+
var handleToggle = useCallback(function () {
|
|
127
|
+
setOpen(function (open) { return !open; });
|
|
128
|
+
}, [setOpen]);
|
|
129
|
+
return (React.createElement(MediaQuery, { media: "(max-width: 1024px)" }, function (_a) {
|
|
130
|
+
var matches = _a.matches;
|
|
131
|
+
// In small devices click outside is disabled because
|
|
132
|
+
// the menu goes full screen and has a close button.
|
|
133
|
+
isClickOutsideEnabled.current = !matches;
|
|
134
|
+
return (React.createElement(DropdownContext.Provider, { value: { closeMenu: handleClose } },
|
|
135
|
+
React.createElement("div", { className: s['Dropdown'], ref: outsideRef },
|
|
136
|
+
renderTrigger({ open: isOpen, onClick: handleToggle }),
|
|
137
|
+
isOpen && children)));
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=Dropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.js","sourceRoot":"","sources":["../../../src/Dropdown/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,CAAC,MAAM,0BAA0B,CAAC;AAYzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqGG;AACH,MAAM,UAAU,QAAQ,CAAC,EAGT;QAFd,aAAa,mBAAA,EACb,QAAQ,cAAA;IAER,IAAM,qBAAqB,GAAG,MAAM,EAAW,CAAC;IAC1C,IAAA,KAAoB,QAAQ,CAAC,KAAK,CAAC,EAAlC,MAAM,QAAA,EAAE,OAAO,QAAmB,CAAC;IAE1C,SAAS,CAAC;QACR,qBAAqB,CAAC,OAAO,GAAG,KAAK,CAAC;IACxC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,kBAAkB,GAAG,WAAW,CACpC,UAAC,KAAK;QACJ,IACE,qBAAqB,CAAC,OAAO;YAC7B,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;YAC1C,MAAM,EACN;YACA,OAAO,CAAC,KAAK,CAAC,CAAC;SAChB;IACH,CAAC,EACD,CAAC,OAAO,EAAE,MAAM,EAAE,qBAAqB,CAAC,CACzC,CAAC;IAEF,IAAM,UAAU,GAAG,eAAe,CAAiB,kBAAkB,CAAC,CAAC;IAEvE,IAAM,WAAW,GAAG,WAAW,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAM,YAAY,GAAG,WAAW,CAAC;QAC/B,OAAO,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,EAAL,CAAK,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,oBAAC,UAAU,IAAC,KAAK,EAAC,qBAAqB,IACpC,UAAC,EAAW;YAAT,OAAO,aAAA;QACT,qDAAqD;QACrD,oDAAoD;QACpD,qBAAqB,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC;QAEzC,OAAO,CACL,oBAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE;YACzD,6BAAK,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,UAAU;gBAC3C,aAAa,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;gBACtD,MAAM,IAAI,QAAQ,CACf,CACmB,CAC5B,CAAC;IACJ,CAAC,CACU,CACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DropdownContext.js","sourceRoot":"","sources":["../../../src/Dropdown/DropdownContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,MAAM,CAAC,IAAM,eAAe,GAAG,aAAa,CAAsB;IAChE,gEAAgE;IAChE,SAAS,EAAE,cAAO,CAAC;CACpB,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import s from './styles.module.css.json';
|
|
3
|
+
export var Group = function (_a) {
|
|
4
|
+
var children = _a.children, name = _a.name;
|
|
5
|
+
return (React.createElement("div", null,
|
|
6
|
+
React.createElement("div", { className: s['Dropdown__menu__group__title'] }, name),
|
|
7
|
+
React.createElement("div", { className: s['Dropdown__menu__group__content'] }, children)));
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=Group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../src/Dropdown/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,CAAC,MAAM,0BAA0B,CAAC;AAOzC,MAAM,CAAC,IAAM,KAAK,GAAG,UAAC,EAA8B;QAA5B,QAAQ,cAAA,EAAE,IAAI,UAAA;IACpC,OAAO,CACL;QACE,6BAAK,SAAS,EAAE,CAAC,CAAC,8BAA8B,CAAC,IAAG,IAAI,CAAO;QAC/D,6BAAK,SAAS,EAAE,CAAC,CAAC,gCAAgC,CAAC,IAAG,QAAQ,CAAO,CACjE,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
13
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
14
|
+
if (ar || !(i in from)) {
|
|
15
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
16
|
+
ar[i] = from[i];
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
|
+
};
|
|
21
|
+
import React, { createRef, useCallback, useContext, useEffect, useRef, useState, } from 'react';
|
|
22
|
+
import scrollIntoView from 'scroll-into-view-if-needed';
|
|
23
|
+
import { useInView } from 'react-intersection-observer';
|
|
24
|
+
import { Portal } from './Portal';
|
|
25
|
+
import { useMediaQuery } from '../useMediaQuery';
|
|
26
|
+
import { DropdownContext } from './DropdownContext';
|
|
27
|
+
import { Group } from './Group';
|
|
28
|
+
import { MenuContext } from './MenuContext';
|
|
29
|
+
import { Option } from './Option';
|
|
30
|
+
import s from './styles.module.css.json';
|
|
31
|
+
import { mergeRefs } from '../mergeRefs';
|
|
32
|
+
import classNames from 'classnames';
|
|
33
|
+
var MenuMobileContainer = function (_a) {
|
|
34
|
+
var children = _a.children;
|
|
35
|
+
return (React.createElement(Portal, null,
|
|
36
|
+
React.createElement("div", { className: s['Dropdown__menu__mobile-container'], style: { zIndex: 1000 } },
|
|
37
|
+
React.createElement("div", { className: s['Modal__backdrop'] }),
|
|
38
|
+
children)));
|
|
39
|
+
};
|
|
40
|
+
var MenuDesktopContainer = React.forwardRef(function (_a, ref) {
|
|
41
|
+
var children = _a.children;
|
|
42
|
+
return (React.createElement(Portal, null,
|
|
43
|
+
React.createElement("div", { className: s['Dropdown__menu-container'], style: { zIndex: 1000 }, ref: ref }, children)));
|
|
44
|
+
});
|
|
45
|
+
function getAbsoluteHeight(el) {
|
|
46
|
+
var styles = window.getComputedStyle(el);
|
|
47
|
+
var margin = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
|
|
48
|
+
return Math.ceil(el.offsetHeight + margin);
|
|
49
|
+
}
|
|
50
|
+
function getAbsoluteWidth(el) {
|
|
51
|
+
var styles = window.getComputedStyle(el);
|
|
52
|
+
var margin = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
|
|
53
|
+
return Math.ceil(el.offsetWidth + margin);
|
|
54
|
+
}
|
|
55
|
+
function setPosition(panel, parent, alignment) {
|
|
56
|
+
var rect = parent.getBoundingClientRect();
|
|
57
|
+
var height = getAbsoluteHeight(panel);
|
|
58
|
+
var parentWidth = getAbsoluteWidth(parent);
|
|
59
|
+
var width = getAbsoluteWidth(panel);
|
|
60
|
+
if (alignment === 'left') {
|
|
61
|
+
// eslint-disable-next-line no-param-reassign
|
|
62
|
+
panel.style.left = rect.left + window.pageXOffset + "px";
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// eslint-disable-next-line no-param-reassign
|
|
66
|
+
panel.style.left = rect.left + window.pageXOffset + parentWidth - width + "px";
|
|
67
|
+
}
|
|
68
|
+
var windowHeight = Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0);
|
|
69
|
+
var menu = panel.querySelector('.' + s['Dropdown__menu']);
|
|
70
|
+
if (!menu) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
var styles = window.getComputedStyle(menu);
|
|
74
|
+
var marginTop = parseFloat(styles.marginTop);
|
|
75
|
+
var fitsBelow = rect.bottom + height <= windowHeight;
|
|
76
|
+
var fitsAbove = rect.top - height > 0;
|
|
77
|
+
if (!fitsBelow && fitsAbove) {
|
|
78
|
+
// eslint-disable-next-line no-param-reassign
|
|
79
|
+
panel.style.top = rect.bottom - height + "px";
|
|
80
|
+
}
|
|
81
|
+
else if (fitsBelow) {
|
|
82
|
+
// eslint-disable-next-line no-param-reassign
|
|
83
|
+
panel.style.top = rect.bottom + "px";
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
var spaceAbove = rect.top;
|
|
87
|
+
var spaceBelow = windowHeight - rect.bottom;
|
|
88
|
+
if (spaceBelow > spaceAbove) {
|
|
89
|
+
// eslint-disable-next-line no-param-reassign
|
|
90
|
+
panel.style.top = rect.bottom + "px";
|
|
91
|
+
menu.style.maxHeight = windowHeight - rect.bottom - marginTop - 10 + "px";
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
// eslint-disable-next-line no-param-reassign
|
|
95
|
+
panel.style.top = "0px";
|
|
96
|
+
menu.style.maxHeight = rect.top - marginTop + "px";
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
// eslint-disable-next-line no-param-reassign
|
|
100
|
+
panel.style.visibility = 'visible';
|
|
101
|
+
}
|
|
102
|
+
export var Menu = function (_a) {
|
|
103
|
+
var _b;
|
|
104
|
+
var children = _a.children, _c = _a.alignment, alignment = _c === void 0 ? 'left' : _c;
|
|
105
|
+
var closeMenu = useContext(DropdownContext).closeMenu;
|
|
106
|
+
var childrenArray = React.Children.toArray(children);
|
|
107
|
+
var _d = useState(''), searchTerm = _d[0], setSearchTerm = _d[1];
|
|
108
|
+
var _e = useState([]), options = _e[0], setOptions = _e[1];
|
|
109
|
+
var handleChange = useCallback(function (e) {
|
|
110
|
+
setSearchTerm(e.target.value);
|
|
111
|
+
}, [setSearchTerm]);
|
|
112
|
+
var anyGroup = childrenArray.some(function (child) {
|
|
113
|
+
return typeof child === 'object' && 'type' in child && child.type === Group;
|
|
114
|
+
});
|
|
115
|
+
var matches = useMediaQuery('(max-width: 1024px)').matches;
|
|
116
|
+
var addOption = useCallback(function (id) {
|
|
117
|
+
setOptions(function (old) { return __spreadArray(__spreadArray([], old, true), [{ id: id }], false); });
|
|
118
|
+
return function () {
|
|
119
|
+
setOptions(function (old) { return old.filter(function (x) { return x.id !== id; }); });
|
|
120
|
+
};
|
|
121
|
+
}, [setOptions]);
|
|
122
|
+
var setClickHandlerForOption = useCallback(function (id, handler) {
|
|
123
|
+
setOptions(function (old) {
|
|
124
|
+
return old.map(function (x) { return (x.id !== id ? x : __assign(__assign({}, x), { handler: handler })); });
|
|
125
|
+
});
|
|
126
|
+
}, [setOptions]);
|
|
127
|
+
var contentRef = useRef(null);
|
|
128
|
+
var handleKeyDown = useCallback(function (event) {
|
|
129
|
+
if (event.key === 'Escape') {
|
|
130
|
+
event.preventDefault();
|
|
131
|
+
event.stopPropagation();
|
|
132
|
+
closeMenu();
|
|
133
|
+
}
|
|
134
|
+
if (['ArrowDown', 'ArrowUp'].includes(event.key)) {
|
|
135
|
+
event.preventDefault();
|
|
136
|
+
event.stopPropagation();
|
|
137
|
+
if (!contentRef.current) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
var delta = event.key === 'ArrowUp' ? -1 : 1;
|
|
141
|
+
var selectedOption_1 = contentRef.current.querySelector('.' + s['Dropdown__menu__option--is-selected']);
|
|
142
|
+
var nextOption = void 0;
|
|
143
|
+
if (!selectedOption_1) {
|
|
144
|
+
nextOption = contentRef.current.querySelector('.' + s['Dropdown__menu__option']);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
var elements = Array.from(contentRef.current.querySelectorAll('.' + s['Dropdown__menu__option']));
|
|
148
|
+
var index = elements.findIndex(function (el) { return el === selectedOption_1; });
|
|
149
|
+
var nextIndex = index + delta < 0
|
|
150
|
+
? elements.length - 1
|
|
151
|
+
: (index + delta) % elements.length;
|
|
152
|
+
nextOption = elements[nextIndex];
|
|
153
|
+
selectedOption_1.classList.remove(s['Dropdown__menu__option--is-selected']);
|
|
154
|
+
}
|
|
155
|
+
if (nextOption) {
|
|
156
|
+
nextOption.classList.add(s['Dropdown__menu__option--is-selected']);
|
|
157
|
+
scrollIntoView(nextOption, {
|
|
158
|
+
scrollMode: 'if-needed',
|
|
159
|
+
behavior: 'auto',
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (event.key === 'Enter') {
|
|
164
|
+
event.preventDefault();
|
|
165
|
+
event.stopPropagation();
|
|
166
|
+
if (!contentRef.current) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
var selectedOption = contentRef.current.querySelector('.' + s['Dropdown__menu__option--is-selected']);
|
|
170
|
+
if (selectedOption) {
|
|
171
|
+
var id_1 = selectedOption.dataset.optionId;
|
|
172
|
+
var option = options.find(function (x) { return x.id === id_1; });
|
|
173
|
+
if (option && option.handler) {
|
|
174
|
+
option.handler(event);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}, [options]);
|
|
179
|
+
var _f = useInView({
|
|
180
|
+
threshold: 0,
|
|
181
|
+
rootMargin: '0px 0px 0px 0px',
|
|
182
|
+
triggerOnce: false,
|
|
183
|
+
}), observerRef = _f[0], inView = _f[1], entry = _f[2];
|
|
184
|
+
var parentRef = createRef();
|
|
185
|
+
var menuRef = createRef();
|
|
186
|
+
var reposition = useCallback(function () {
|
|
187
|
+
if (menuRef.current && parentRef.current) {
|
|
188
|
+
setPosition(menuRef.current, parentRef.current, alignment);
|
|
189
|
+
}
|
|
190
|
+
}, [menuRef, parentRef, alignment]);
|
|
191
|
+
useEffect(function () {
|
|
192
|
+
reposition();
|
|
193
|
+
}, [inView, entry === null || entry === void 0 ? void 0 : entry.intersectionRatio]);
|
|
194
|
+
useEffect(function () {
|
|
195
|
+
if (menuRef.current && parentRef.current) {
|
|
196
|
+
var resizeObserver_1 = new ResizeObserver(reposition);
|
|
197
|
+
resizeObserver_1.observe(menuRef.current);
|
|
198
|
+
resizeObserver_1.observe(parentRef.current);
|
|
199
|
+
return function () {
|
|
200
|
+
resizeObserver_1.disconnect();
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
return undefined;
|
|
204
|
+
}, [menuRef, reposition]);
|
|
205
|
+
useEffect(function () {
|
|
206
|
+
window.addEventListener('resize', reposition);
|
|
207
|
+
return function () { return window.removeEventListener('resize', reposition); };
|
|
208
|
+
}, [reposition]);
|
|
209
|
+
var Wrapper = matches ? MenuMobileContainer : MenuDesktopContainer;
|
|
210
|
+
return (React.createElement(React.Fragment, null,
|
|
211
|
+
React.createElement("div", { ref: mergeRefs(observerRef, parentRef), className: s['Dropdown__spacer'] }),
|
|
212
|
+
React.createElement(Wrapper, { ref: menuRef },
|
|
213
|
+
React.createElement("div", { className: classNames(s['Dropdown__menu'], (_b = {},
|
|
214
|
+
_b[s['Dropdown__menu--fullscreen']] = matches,
|
|
215
|
+
_b)) },
|
|
216
|
+
options.length > 5 && (React.createElement("div", { className: s['Dropdown__menu__search'] },
|
|
217
|
+
React.createElement("input", { type: "text", value: searchTerm || '', onChange: handleChange, onKeyDown: handleKeyDown, placeholder: "Search...", autoFocus: true, className: s['Dropdown__menu__search__input'] }))),
|
|
218
|
+
React.createElement(MenuContext.Provider, { value: { searchTerm: searchTerm, addOption: addOption, setClickHandlerForOption: setClickHandlerForOption } },
|
|
219
|
+
React.createElement("div", { className: s['Dropdown__menu__inner'], ref: contentRef }, anyGroup ? (children) : (React.createElement("div", { className: s['Dropdown__menu__group__content'] }, children))))),
|
|
220
|
+
matches ? (React.createElement("div", null,
|
|
221
|
+
React.createElement("div", { className: s['Dropdown__menu__inner'] },
|
|
222
|
+
React.createElement(Option, { closeMenuOnClick: true }, "Close")))) : null)));
|
|
223
|
+
};
|
|
224
|
+
//# sourceMappingURL=Menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/Dropdown/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SyntheticEvent } from 'react';
|
|
2
|
+
declare type Context = {
|
|
3
|
+
searchTerm: string;
|
|
4
|
+
addOption: (id: string) => void;
|
|
5
|
+
setClickHandlerForOption: (id: string, handler: (e: SyntheticEvent) => void) => void;
|
|
6
|
+
};
|
|
7
|
+
export declare const MenuContext: import("react").Context<Context>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext } from 'react';
|
|
2
|
+
export var MenuContext = createContext({
|
|
3
|
+
searchTerm: '',
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
5
|
+
addOption: function () { },
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
7
|
+
setClickHandlerForOption: function () { },
|
|
8
|
+
});
|
|
9
|
+
//# sourceMappingURL=MenuContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuContext.js","sourceRoot":"","sources":["../../../src/Dropdown/MenuContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,OAAO,CAAC;AAWtD,MAAM,CAAC,IAAM,WAAW,GAAG,aAAa,CAAU;IAChD,UAAU,EAAE,EAAE;IACd,gEAAgE;IAChE,SAAS,EAAE,cAAO,CAAC;IACnB,gEAAgE;IAChE,wBAAwB,EAAE,cAAO,CAAC;CACnC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type OptionProps = {
|
|
3
|
+
onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
|
|
4
|
+
to?: string;
|
|
5
|
+
active?: boolean;
|
|
6
|
+
red?: boolean;
|
|
7
|
+
valid?: boolean;
|
|
8
|
+
invalid?: boolean;
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
closeMenuOnClick?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export declare const Option: ({ onClick, to, active, red, valid, invalid, children, disabled, closeMenuOnClick, }: OptionProps) => JSX.Element | null;
|