@redocly/theme 0.82.4-rc.1 → 0.83.0-rc.2
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/lib/components/Dropdown/Dropdown.d.ts +2 -1
- package/lib/components/Dropdown/Dropdown.js +3 -5
- package/lib/components/Dropdown/DropdownMenuItem.js +9 -8
- package/lib/components/Menu/MenuItem.js +1 -1
- package/lib/core/constants/environments.d.ts +3 -3
- package/lib/core/constants/environments.js +3 -3
- package/package.json +16 -16
- package/src/components/Dropdown/Dropdown.tsx +5 -3
- package/src/components/Dropdown/DropdownMenuItem.tsx +9 -8
- package/src/components/Menu/MenuItem.tsx +6 -1
- package/src/core/constants/environments.ts +3 -3
|
@@ -10,5 +10,6 @@ export type DropdownProps = PropsWithChildren<{
|
|
|
10
10
|
dataAttributes?: Record<string, string>;
|
|
11
11
|
className?: string;
|
|
12
12
|
withArrow?: boolean;
|
|
13
|
+
onClick?: (event: React.UIEvent) => void;
|
|
13
14
|
}>;
|
|
14
|
-
export declare function Dropdown({ children, className, active, trigger, triggerEvent, closeOnClick, withArrow, dataAttributes, placement, alignment, }: DropdownProps): JSX.Element;
|
|
15
|
+
export declare function Dropdown({ children, className, active, trigger, triggerEvent, closeOnClick, withArrow, dataAttributes, placement, alignment, onClick, }: DropdownProps): JSX.Element;
|
|
@@ -32,7 +32,7 @@ const styled_components_1 = __importDefault(require("styled-components"));
|
|
|
32
32
|
const hooks_1 = require("../../core/hooks");
|
|
33
33
|
const ChevronDownIcon_1 = require("../../icons/ChevronDownIcon/ChevronDownIcon");
|
|
34
34
|
const ChevronUpIcon_1 = require("../../icons/ChevronUpIcon/ChevronUpIcon");
|
|
35
|
-
function Dropdown({ children, className, active, trigger, triggerEvent = 'click', closeOnClick = true, withArrow, dataAttributes, placement, alignment, }) {
|
|
35
|
+
function Dropdown({ children, className, active, trigger, triggerEvent = 'click', closeOnClick = true, withArrow, dataAttributes, placement, alignment, onClick, }) {
|
|
36
36
|
const dropdownRef = (0, react_1.useRef)(null);
|
|
37
37
|
const [isOpen, setIsOpen] = (0, hooks_1.useControlledState)(false, active);
|
|
38
38
|
const handleOpen = () => {
|
|
@@ -41,9 +41,7 @@ function Dropdown({ children, className, active, trigger, triggerEvent = 'click'
|
|
|
41
41
|
const handleClose = () => {
|
|
42
42
|
setIsOpen(false);
|
|
43
43
|
};
|
|
44
|
-
const handleChildClick = (
|
|
45
|
-
event.stopPropagation();
|
|
46
|
-
event.preventDefault();
|
|
44
|
+
const handleChildClick = () => {
|
|
47
45
|
handleClose();
|
|
48
46
|
};
|
|
49
47
|
const handleToggle = (event) => {
|
|
@@ -59,7 +57,7 @@ function Dropdown({ children, className, active, trigger, triggerEvent = 'click'
|
|
|
59
57
|
(0, hooks_1.useOutsideClick)(dropdownRef, handleClose);
|
|
60
58
|
const triggerChild = react_1.default.Children.only(trigger);
|
|
61
59
|
const dropdownTrigger = (0, react_1.cloneElement)(triggerChild, Object.assign(Object.assign(Object.assign(Object.assign({ onClick: triggerEvent === 'click' ? handleToggle : undefined, icon: withArrow ? isOpen ? react_1.default.createElement(ChevronUpIcon_1.ChevronUpIcon, null) : react_1.default.createElement(ChevronDownIcon_1.ChevronDownIcon, null) : undefined }, (withArrow ? { iconPosition: 'right' } : {})), { tabIndex: 0 }), triggerChild.props), { onKeyDown: triggerEvent === 'click' ? handleKeyDown : undefined }));
|
|
62
|
-
return (react_1.default.createElement(DropdownWrapper, Object.assign({ "data-component-name": "Dropdown/Dropdown", "data-testid": "dropdown" }, dataAttributes, { className: className, ref: dropdownRef, onPointerEnter: triggerEvent === 'hover' ? handleOpen : undefined, onPointerLeave: triggerEvent === 'hover' ? handleClose : undefined }),
|
|
60
|
+
return (react_1.default.createElement(DropdownWrapper, Object.assign({ "data-component-name": "Dropdown/Dropdown", "data-testid": "dropdown" }, dataAttributes, { className: className, ref: dropdownRef, onPointerEnter: triggerEvent === 'hover' ? handleOpen : undefined, onPointerLeave: triggerEvent === 'hover' ? handleClose : undefined, onClick: onClick }),
|
|
63
61
|
dropdownTrigger,
|
|
64
62
|
isOpen && (react_1.default.createElement(ChildrenWrapper, { placement: placement, alignment: alignment, onClick: closeOnClick ? handleChildClick : undefined }, children))));
|
|
65
63
|
}
|
|
@@ -90,18 +90,24 @@ const DropdownMenuItemWrapper = styled_components_1.default.li `
|
|
|
90
90
|
outline: 1px solid var(--dropdown-menu-item-border-color-focused);
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
background-color: var(--dropdown-menu-item-bg-color);
|
|
94
|
+
color: var(--dropdown-menu-item-color);
|
|
95
|
+
|
|
96
|
+
&:hover {
|
|
97
|
+
background-color: var(--dropdown-menu-item-bg-color-hover);
|
|
98
|
+
color: var(--dropdown-menu-item-color-hover);
|
|
99
|
+
}
|
|
100
|
+
|
|
93
101
|
${({ separator }) => separator &&
|
|
94
102
|
(0, styled_components_1.css) `
|
|
95
103
|
cursor: default;
|
|
104
|
+
pointer-events: none;
|
|
96
105
|
font-size: var(--dropdown-menu-item-separator-font-size);
|
|
97
106
|
line-height: var(--dropdown-menu-item-separator-line-height);
|
|
98
107
|
color: var(--dropdown-menu-item-separator-text-color);
|
|
99
108
|
--dropdown-menu-item-bg-color-hover: var(--dropdown-menu-item-bg-color);
|
|
100
109
|
`}
|
|
101
110
|
|
|
102
|
-
background-color: var(--dropdown-menu-item-bg-color);
|
|
103
|
-
color: var(--dropdown-menu-item-color);
|
|
104
|
-
|
|
105
111
|
${({ active }) => active &&
|
|
106
112
|
(0, styled_components_1.css) `
|
|
107
113
|
background-color: var(--dropdown-menu-item-bg-color-active);
|
|
@@ -111,11 +117,6 @@ const DropdownMenuItemWrapper = styled_components_1.default.li `
|
|
|
111
117
|
}
|
|
112
118
|
`}
|
|
113
119
|
|
|
114
|
-
&:hover {
|
|
115
|
-
background-color: var(--dropdown-menu-item-bg-color-hover);
|
|
116
|
-
color: var(--dropdown-menu-item-color-hover);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
120
|
${({ disabled }) => disabled &&
|
|
120
121
|
(0, styled_components_1.css) `
|
|
121
122
|
cursor: default;
|
|
@@ -73,7 +73,7 @@ function MenuItem(props) {
|
|
|
73
73
|
isDrilldown ? react_1.default.createElement(ArrowRightIcon_1.ArrowRightIcon, { size: "12px" }) : null,
|
|
74
74
|
isOperation ? (react_1.default.createElement(HttpTag_1.HttpTag, { color: item.httpVerb || '' }, item.httpVerb === 'hook' ? 'event' : item.httpVerb)) : null));
|
|
75
75
|
return (react_1.default.createElement(MenuItemWrapper, { "data-component-name": "Menu/MenuItem", className: generateClassName({ type, item, className }) },
|
|
76
|
-
item.link ? (react_1.default.createElement(MenuItemLink, { to: item.link, languageInsensitive: item.languageInsensitive }, label)) : (label),
|
|
76
|
+
item.link ? (react_1.default.createElement(MenuItemLink, { to: item.link, external: item.external, target: item.target, languageInsensitive: item.languageInsensitive }, label)) : (label),
|
|
77
77
|
isNested ? (react_1.default.createElement(MenuItemNestedWrapper, { depth: depth, ref: nestedMenuRef, style: style }, isExpanded || !canUnmount ? props.children : null)) : null,
|
|
78
78
|
item.separatorLine ? (react_1.default.createElement(MenuItemSeparatorLine, { depth: depth, linePosition: item.linePosition })) : null));
|
|
79
79
|
}
|
|
@@ -3,7 +3,7 @@ export declare enum SecurityVariablesEnvSuffix {
|
|
|
3
3
|
BasicAuthPassword = "_password",
|
|
4
4
|
JWTToken = "_token",
|
|
5
5
|
APIKey = "",
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
Token = "_token",
|
|
7
|
+
ClientId = "_client_id",
|
|
8
|
+
ClientSecret = "_client_secret"
|
|
9
9
|
}
|
|
@@ -7,8 +7,8 @@ var SecurityVariablesEnvSuffix;
|
|
|
7
7
|
SecurityVariablesEnvSuffix["BasicAuthPassword"] = "_password";
|
|
8
8
|
SecurityVariablesEnvSuffix["JWTToken"] = "_token";
|
|
9
9
|
SecurityVariablesEnvSuffix["APIKey"] = "";
|
|
10
|
-
SecurityVariablesEnvSuffix["
|
|
11
|
-
SecurityVariablesEnvSuffix["
|
|
12
|
-
SecurityVariablesEnvSuffix["
|
|
10
|
+
SecurityVariablesEnvSuffix["Token"] = "_token";
|
|
11
|
+
SecurityVariablesEnvSuffix["ClientId"] = "_client_id";
|
|
12
|
+
SecurityVariablesEnvSuffix["ClientSecret"] = "_client_secret";
|
|
13
13
|
})(SecurityVariablesEnvSuffix || (exports.SecurityVariablesEnvSuffix = SecurityVariablesEnvSuffix = {}));
|
|
14
14
|
//# sourceMappingURL=environments.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/theme",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.83.0-rc.2",
|
|
4
4
|
"description": "Shared UI components lib",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"theme",
|
|
@@ -35,18 +35,18 @@
|
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@markdoc/markdoc": "0.4.0",
|
|
38
|
-
"@storybook/addon-actions": "7.6.
|
|
39
|
-
"@storybook/addon-essentials": "7.6.
|
|
40
|
-
"@storybook/addon-interactions": "7.6.
|
|
41
|
-
"@storybook/addon-links": "7.6.
|
|
42
|
-
"@storybook/addon-viewport": "7.6.
|
|
43
|
-
"@storybook/addons": "7.6.
|
|
44
|
-
"@storybook/core-common": "7.6.
|
|
45
|
-
"@storybook/node-logger": "7.6.
|
|
46
|
-
"@storybook/react": "7.6.
|
|
47
|
-
"@storybook/react-webpack5": "7.6.
|
|
38
|
+
"@storybook/addon-actions": "7.6.19",
|
|
39
|
+
"@storybook/addon-essentials": "7.6.19",
|
|
40
|
+
"@storybook/addon-interactions": "7.6.19",
|
|
41
|
+
"@storybook/addon-links": "7.6.19",
|
|
42
|
+
"@storybook/addon-viewport": "7.6.19",
|
|
43
|
+
"@storybook/addons": "7.6.17",
|
|
44
|
+
"@storybook/core-common": "7.6.19",
|
|
45
|
+
"@storybook/node-logger": "7.6.19",
|
|
46
|
+
"@storybook/react": "7.6.19",
|
|
47
|
+
"@storybook/react-webpack5": "7.6.19",
|
|
48
48
|
"@storybook/testing-library": "0.2.2",
|
|
49
|
-
"@storybook/theming": "7.6.
|
|
49
|
+
"@storybook/theming": "7.6.19",
|
|
50
50
|
"@testing-library/jest-dom": "6.1.5",
|
|
51
51
|
"@testing-library/react": "14.1.2",
|
|
52
52
|
"@testing-library/user-event": "14.5.1",
|
|
@@ -75,9 +75,9 @@
|
|
|
75
75
|
"react-refresh": "0.14.2",
|
|
76
76
|
"react-router-dom": "6.21.1",
|
|
77
77
|
"rimraf": "5.0.5",
|
|
78
|
-
"storybook": "7.6.
|
|
79
|
-
"storybook-addon-pseudo-states": "2.1
|
|
80
|
-
"storybook-design-token": "3.
|
|
78
|
+
"storybook": "7.6.19",
|
|
79
|
+
"storybook-addon-pseudo-states": "2.2.1",
|
|
80
|
+
"storybook-design-token": "3.1.0",
|
|
81
81
|
"styled-components": "5.3.11",
|
|
82
82
|
"styled-system": "5.1.5",
|
|
83
83
|
"ts-jest": "29.1.2",
|
|
@@ -98,7 +98,7 @@
|
|
|
98
98
|
"timeago.js": "^4.0.2",
|
|
99
99
|
"i18next": "^22.4.12",
|
|
100
100
|
"nprogress": "^0.2.0",
|
|
101
|
-
"@redocly/config": "0.
|
|
101
|
+
"@redocly/config": "0.83.0-rc.2"
|
|
102
102
|
},
|
|
103
103
|
"scripts": {
|
|
104
104
|
"start": "npm-run-all --parallel storybook storybook:tokens:watch",
|
|
@@ -19,6 +19,8 @@ export type DropdownProps = PropsWithChildren<{
|
|
|
19
19
|
dataAttributes?: Record<string, string>;
|
|
20
20
|
className?: string;
|
|
21
21
|
withArrow?: boolean;
|
|
22
|
+
|
|
23
|
+
onClick?: (event: React.UIEvent) => void;
|
|
22
24
|
}>;
|
|
23
25
|
|
|
24
26
|
export function Dropdown({
|
|
@@ -32,6 +34,7 @@ export function Dropdown({
|
|
|
32
34
|
dataAttributes,
|
|
33
35
|
placement,
|
|
34
36
|
alignment,
|
|
37
|
+
onClick,
|
|
35
38
|
}: DropdownProps): JSX.Element {
|
|
36
39
|
const dropdownRef = useRef<HTMLDivElement | null>(null);
|
|
37
40
|
const [isOpen, setIsOpen] = useControlledState<boolean>(false, active);
|
|
@@ -44,9 +47,7 @@ export function Dropdown({
|
|
|
44
47
|
setIsOpen(false);
|
|
45
48
|
};
|
|
46
49
|
|
|
47
|
-
const handleChildClick = (
|
|
48
|
-
event.stopPropagation();
|
|
49
|
-
event.preventDefault();
|
|
50
|
+
const handleChildClick = () => {
|
|
50
51
|
handleClose();
|
|
51
52
|
};
|
|
52
53
|
|
|
@@ -84,6 +85,7 @@ export function Dropdown({
|
|
|
84
85
|
ref={dropdownRef}
|
|
85
86
|
onPointerEnter={triggerEvent === 'hover' ? handleOpen : undefined}
|
|
86
87
|
onPointerLeave={triggerEvent === 'hover' ? handleClose : undefined}
|
|
88
|
+
onClick={onClick}
|
|
87
89
|
>
|
|
88
90
|
{dropdownTrigger}
|
|
89
91
|
|
|
@@ -130,19 +130,25 @@ const DropdownMenuItemWrapper = styled.li<{
|
|
|
130
130
|
outline: 1px solid var(--dropdown-menu-item-border-color-focused);
|
|
131
131
|
}
|
|
132
132
|
|
|
133
|
+
background-color: var(--dropdown-menu-item-bg-color);
|
|
134
|
+
color: var(--dropdown-menu-item-color);
|
|
135
|
+
|
|
136
|
+
&:hover {
|
|
137
|
+
background-color: var(--dropdown-menu-item-bg-color-hover);
|
|
138
|
+
color: var(--dropdown-menu-item-color-hover);
|
|
139
|
+
}
|
|
140
|
+
|
|
133
141
|
${({ separator }) =>
|
|
134
142
|
separator &&
|
|
135
143
|
css`
|
|
136
144
|
cursor: default;
|
|
145
|
+
pointer-events: none;
|
|
137
146
|
font-size: var(--dropdown-menu-item-separator-font-size);
|
|
138
147
|
line-height: var(--dropdown-menu-item-separator-line-height);
|
|
139
148
|
color: var(--dropdown-menu-item-separator-text-color);
|
|
140
149
|
--dropdown-menu-item-bg-color-hover: var(--dropdown-menu-item-bg-color);
|
|
141
150
|
`}
|
|
142
151
|
|
|
143
|
-
background-color: var(--dropdown-menu-item-bg-color);
|
|
144
|
-
color: var(--dropdown-menu-item-color);
|
|
145
|
-
|
|
146
152
|
${({ active }) =>
|
|
147
153
|
active &&
|
|
148
154
|
css`
|
|
@@ -153,11 +159,6 @@ const DropdownMenuItemWrapper = styled.li<{
|
|
|
153
159
|
}
|
|
154
160
|
`}
|
|
155
161
|
|
|
156
|
-
&:hover {
|
|
157
|
-
background-color: var(--dropdown-menu-item-bg-color-hover);
|
|
158
|
-
color: var(--dropdown-menu-item-color-hover);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
162
|
${({ disabled }) =>
|
|
162
163
|
disabled &&
|
|
163
164
|
css`
|
|
@@ -98,7 +98,12 @@ export function MenuItem(props: React.PropsWithChildren<MenuItemProps>): JSX.Ele
|
|
|
98
98
|
className={generateClassName({ type, item, className })}
|
|
99
99
|
>
|
|
100
100
|
{item.link ? (
|
|
101
|
-
<MenuItemLink
|
|
101
|
+
<MenuItemLink
|
|
102
|
+
to={item.link}
|
|
103
|
+
external={item.external}
|
|
104
|
+
target={item.target}
|
|
105
|
+
languageInsensitive={item.languageInsensitive}
|
|
106
|
+
>
|
|
102
107
|
{label}
|
|
103
108
|
</MenuItemLink>
|
|
104
109
|
) : (
|
|
@@ -3,7 +3,7 @@ export enum SecurityVariablesEnvSuffix {
|
|
|
3
3
|
BasicAuthPassword = '_password',
|
|
4
4
|
JWTToken = '_token',
|
|
5
5
|
APIKey = '',
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
Token = '_token',
|
|
7
|
+
ClientId = '_client_id',
|
|
8
|
+
ClientSecret = '_client_secret',
|
|
9
9
|
}
|