@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.
@@ -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 = (event) => {
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
- OAuth2Token = "_token",
7
- OAuth2ClientId = "_client_id",
8
- OAuth2ClientSecret = "_client_secret"
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["OAuth2Token"] = "_token";
11
- SecurityVariablesEnvSuffix["OAuth2ClientId"] = "_client_id";
12
- SecurityVariablesEnvSuffix["OAuth2ClientSecret"] = "_client_secret";
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.82.4-rc.1",
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.4",
39
- "@storybook/addon-essentials": "7.6.4",
40
- "@storybook/addon-interactions": "7.6.4",
41
- "@storybook/addon-links": "7.6.4",
42
- "@storybook/addon-viewport": "7.6.4",
43
- "@storybook/addons": "7.6.4",
44
- "@storybook/core-common": "7.6.4",
45
- "@storybook/node-logger": "7.6.4",
46
- "@storybook/react": "7.6.4",
47
- "@storybook/react-webpack5": "7.6.4",
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.4",
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.4",
79
- "storybook-addon-pseudo-states": "2.1.2",
80
- "storybook-design-token": "3.0.0-beta.6",
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.82.4-rc.1"
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 = (event: React.UIEvent) => {
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 to={item.link} languageInsensitive={item.languageInsensitive}>
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
- OAuth2Token = '_token',
7
- OAuth2ClientId = '_client_id',
8
- OAuth2ClientSecret = '_client_secret',
6
+ Token = '_token',
7
+ ClientId = '_client_id',
8
+ ClientSecret = '_client_secret',
9
9
  }