@rescui/dropdown 0.9.6 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/dropdown.js +16 -3
- package/lib/dropdown.p.module.css.js +12 -12
- package/lib/index.css +78 -46
- package/lib/index.d.ts +1 -1
- package/package.json +4 -4
package/lib/dropdown.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import React, { useState, useEffect, useImperativeHandle, useContext, useCallback } from 'react';
|
|
2
|
+
import React, { useState, useRef, useEffect, useImperativeHandle, useContext, useCallback } from 'react';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
4
|
import cn from 'classnames';
|
|
5
5
|
import { usePopper } from 'react-popper';
|
|
@@ -143,7 +143,8 @@ const DropdownRender = (_ref5, externalRef) => {
|
|
|
143
143
|
const {
|
|
144
144
|
setContentEl,
|
|
145
145
|
scrollableStyles
|
|
146
|
-
} = useScrollableContainer();
|
|
146
|
+
} = useScrollableContainer();
|
|
147
|
+
const scrollableRef = useRef(null); // We set isOpen this way to avoid hydration issue due to
|
|
147
148
|
// the Portal to document.body which does not exist on the server.
|
|
148
149
|
// So even if isOpen prop is used, the tooltip will not render on the server, and
|
|
149
150
|
// it's the same on the first client render, so there is no hydration issue.
|
|
@@ -217,7 +218,18 @@ const DropdownRender = (_ref5, externalRef) => {
|
|
|
217
218
|
noProvider
|
|
218
219
|
} = useContext(ThemeContext);
|
|
219
220
|
const theme = themeFromProps || (noProvider ? themeFromCss : themeFromContext);
|
|
220
|
-
const childrenTheme = mode === 'rock' ? getInverseTheme(theme) : theme;
|
|
221
|
+
const childrenTheme = mode === 'rock' ? getInverseTheme(theme) : theme; // immediately fire handleAnimationEnd event on visibility change in case transition is disabled
|
|
222
|
+
// it may happen if the user hard-disabled all transitions in his browser
|
|
223
|
+
|
|
224
|
+
useEffect(() => {
|
|
225
|
+
if (dropdownShouldBeRendered && scrollableRef.current) {
|
|
226
|
+
const isTransitionDisabled = window.getComputedStyle(scrollableRef.current).transitionDuration === '0s';
|
|
227
|
+
|
|
228
|
+
if (isTransitionDisabled) {
|
|
229
|
+
handleAnimationEnd();
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}, [handleAnimationEnd, dropdownShouldBeRendered]);
|
|
221
233
|
return /*#__PURE__*/React.createElement(React.Fragment, null, triggerRenderer, dropdownShouldBeRendered && /*#__PURE__*/React.createElement(Portal, {
|
|
222
234
|
target: renderInTrigger ? triggerRef : undefined
|
|
223
235
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -234,6 +246,7 @@ const DropdownRender = (_ref5, externalRef) => {
|
|
|
234
246
|
}, /*#__PURE__*/React.createElement(LayeringProvider, {
|
|
235
247
|
baseLayer: 'dropdown'
|
|
236
248
|
}, /*#__PURE__*/React.createElement("div", {
|
|
249
|
+
ref: scrollableRef,
|
|
237
250
|
style: scrollableStyles,
|
|
238
251
|
className: cn(styles.contentWrapper, wrapperShouldBeHidden && styles.wrapperHidden),
|
|
239
252
|
onTransitionEnd: handleAnimationEnd,
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
var styles = {
|
|
2
|
-
"themeLight": "
|
|
3
|
-
"themeDark": "
|
|
4
|
-
"dropdown": "
|
|
5
|
-
"triggerWrapper": "
|
|
6
|
-
"contentWrapper": "
|
|
7
|
-
"fadeInBottomToTop": "
|
|
8
|
-
"fadeInTopToBottom": "
|
|
9
|
-
"fadeInLeftToRight": "
|
|
10
|
-
"fadeInRightToLeft": "
|
|
11
|
-
"wrapperHidden": "
|
|
12
|
-
"modeClassic": "
|
|
13
|
-
"modeRock": "
|
|
2
|
+
"themeLight": "_themeLight_1rn0hhb_59",
|
|
3
|
+
"themeDark": "_themeDark_1rn0hhb_62",
|
|
4
|
+
"dropdown": "_dropdown_1rn0hhb_66",
|
|
5
|
+
"triggerWrapper": "_triggerWrapper_1rn0hhb_73",
|
|
6
|
+
"contentWrapper": "_contentWrapper_1rn0hhb_77",
|
|
7
|
+
"fadeInBottomToTop": "_fadeInBottomToTop_1rn0hhb_1",
|
|
8
|
+
"fadeInTopToBottom": "_fadeInTopToBottom_1rn0hhb_1",
|
|
9
|
+
"fadeInLeftToRight": "_fadeInLeftToRight_1rn0hhb_1",
|
|
10
|
+
"fadeInRightToLeft": "_fadeInRightToLeft_1rn0hhb_1",
|
|
11
|
+
"wrapperHidden": "_wrapperHidden_1rn0hhb_110",
|
|
12
|
+
"modeClassic": "_modeClassic_1rn0hhb_130",
|
|
13
|
+
"modeRock": "_modeRock_1rn0hhb_134"
|
|
14
14
|
};
|
|
15
15
|
export { styles as default };
|
package/lib/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@keyframes
|
|
1
|
+
@keyframes _fadeInTopToBottom_1rn0hhb_1{
|
|
2
2
|
0%{
|
|
3
3
|
opacity:0;
|
|
4
4
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
transform:none;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
@keyframes
|
|
13
|
+
@keyframes _fadeInBottomToTop_1rn0hhb_1{
|
|
14
14
|
0%{
|
|
15
15
|
opacity:0;
|
|
16
16
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
transform:none;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
@keyframes
|
|
25
|
+
@keyframes _fadeInLeftToRight_1rn0hhb_1{
|
|
26
26
|
0%{
|
|
27
27
|
opacity:0;
|
|
28
28
|
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
transform:none;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
@keyframes
|
|
37
|
+
@keyframes _fadeInRightToLeft_1rn0hhb_1{
|
|
38
38
|
0%{
|
|
39
39
|
opacity:0;
|
|
40
40
|
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
transform:none;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
.
|
|
49
|
+
._themeLight_1rn0hhb_59{
|
|
50
50
|
--rs-theme-dark:0;
|
|
51
51
|
}
|
|
52
|
-
.
|
|
52
|
+
._themeDark_1rn0hhb_62{
|
|
53
53
|
--rs-theme-dark:1;
|
|
54
54
|
}
|
|
55
|
-
.
|
|
55
|
+
._dropdown_1rn0hhb_66{
|
|
56
56
|
--_rs-theme-dark:var(
|
|
57
57
|
--_rs-internal-force-theme-dark-consult-rescui-before-using,
|
|
58
58
|
var(--rs-theme-dark, 0)
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
--_rs-theme-light-coefficient:calc(1 - var(--_rs-theme-dark-coefficient));
|
|
63
63
|
}
|
|
64
64
|
@supports (color: color-mix(in srgb, #fff 50%, #000 50%)){
|
|
65
|
-
.
|
|
65
|
+
._dropdown_1rn0hhb_66{
|
|
66
66
|
--_rs-color-primary:color-mix(in srgb, var(--rs-color-primary-light-theme, #6B57FF) calc(100%*var(--_rs-theme-light-coefficient, 1)), var(--rs-color-primary-dark-theme, #8473FF) calc(100%*var(--_rs-theme-dark-coefficient, 0)));
|
|
67
67
|
--_rs-color-primary-dim:color-mix(in srgb, var(--rs-color-primary-dim-light-theme, #8979ff) calc(100%*var(--_rs-theme-light-coefficient, 1)), var(--rs-color-primary-dim-dark-theme, #6f61d2) calc(100%*var(--_rs-theme-dark-coefficient, 0)));
|
|
68
68
|
--_rs-color-primary-fog:color-mix(in srgb, var(--rs-color-primary-fog-light-theme, #e1ddff) calc(100%*var(--_rs-theme-light-coefficient, 1)), var(--rs-color-primary-fog-dark-theme, #2e2b49) calc(100%*var(--_rs-theme-dark-coefficient, 0)));
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
@supports not (color: color-mix(in srgb, #fff 50%, #000 50%)){
|
|
74
|
-
.
|
|
74
|
+
._dropdown_1rn0hhb_66{
|
|
75
75
|
--_rs-color-primary:rgb(calc(var(--_rs-theme-light-coefficient, 1)*107 + var(--_rs-theme-dark-coefficient, 0)*132), calc(var(--_rs-theme-light-coefficient, 1)*87 + var(--_rs-theme-dark-coefficient, 0)*115), 255);
|
|
76
76
|
--_rs-color-primary-dim:rgb(calc(var(--_rs-theme-light-coefficient, 1)*137 + var(--_rs-theme-dark-coefficient, 0)*111), calc(var(--_rs-theme-light-coefficient, 1)*121 + var(--_rs-theme-dark-coefficient, 0)*97), calc(var(--_rs-theme-light-coefficient, 1)*255 + var(--_rs-theme-dark-coefficient, 0)*210));
|
|
77
77
|
--_rs-color-primary-fog:rgb(calc(var(--_rs-theme-light-coefficient, 1)*225 + var(--_rs-theme-dark-coefficient, 0)*46), calc(var(--_rs-theme-light-coefficient, 1)*221 + var(--_rs-theme-dark-coefficient, 0)*43), calc(var(--_rs-theme-light-coefficient, 1)*255 + var(--_rs-theme-dark-coefficient, 0)*73));
|
|
@@ -79,14 +79,14 @@
|
|
|
79
79
|
--_rs-color-primary-t-fog:rgba(calc(var(--_rs-theme-light-coefficient, 1)*107 + var(--_rs-theme-dark-coefficient, 0)*132), calc(var(--_rs-theme-light-coefficient, 1)*87 + var(--_rs-theme-dark-coefficient, 0)*115), 255, calc(var(--_rs-theme-light-coefficient, 1)*0.2 + var(--_rs-theme-dark-coefficient, 0)*0.3));
|
|
80
80
|
}
|
|
81
81
|
}
|
|
82
|
-
.
|
|
82
|
+
._dropdown_1rn0hhb_66 {
|
|
83
83
|
display:flex;
|
|
84
84
|
flex-direction:column;
|
|
85
85
|
}
|
|
86
|
-
.
|
|
86
|
+
._triggerWrapper_1rn0hhb_73{
|
|
87
87
|
display:inline-block;
|
|
88
88
|
}
|
|
89
|
-
.
|
|
89
|
+
._contentWrapper_1rn0hhb_77{
|
|
90
90
|
position:relative;
|
|
91
91
|
|
|
92
92
|
display:block;
|
|
@@ -98,64 +98,96 @@
|
|
|
98
98
|
background-clip:padding-box;
|
|
99
99
|
box-shadow:0 0 0 1px rgb(calc(209 - var(--_rs-theme-dark-coefficient, 0)*138), calc(209 - var(--_rs-theme-dark-coefficient, 0)*138), calc(210 - var(--_rs-theme-dark-coefficient, 0)*137));
|
|
100
100
|
|
|
101
|
-
transition:opacity linear 200ms, transform linear 200ms;
|
|
101
|
+
transition:opacity var(--rs-transition-function, linear) 200ms, transform var(--rs-transition-function, linear) 200ms;
|
|
102
102
|
}
|
|
103
|
-
[data-popper-placement^=
|
|
104
|
-
animation:
|
|
103
|
+
[data-popper-placement^='top'] ._contentWrapper_1rn0hhb_77{
|
|
104
|
+
animation:_fadeInBottomToTop_1rn0hhb_1 var(--rs-transition-function, ease) 200ms;
|
|
105
105
|
}
|
|
106
|
-
[data-popper-placement^=
|
|
107
|
-
animation:
|
|
106
|
+
[data-popper-placement^='bottom'] ._contentWrapper_1rn0hhb_77{
|
|
107
|
+
animation:_fadeInTopToBottom_1rn0hhb_1 var(--rs-transition-function, ease) 200ms;
|
|
108
108
|
}
|
|
109
|
-
[data-popper-placement^=
|
|
110
|
-
animation:
|
|
109
|
+
[data-popper-placement^='right'] ._contentWrapper_1rn0hhb_77{
|
|
110
|
+
animation:_fadeInLeftToRight_1rn0hhb_1 var(--rs-transition-function, ease) 200ms;
|
|
111
111
|
}
|
|
112
|
-
[data-popper-placement^=
|
|
113
|
-
animation:
|
|
112
|
+
[data-popper-placement^='left'] ._contentWrapper_1rn0hhb_77{
|
|
113
|
+
animation:_fadeInRightToLeft_1rn0hhb_1 var(--rs-transition-function, ease) 200ms;
|
|
114
114
|
}
|
|
115
|
-
.
|
|
115
|
+
._wrapperHidden_1rn0hhb_110{
|
|
116
116
|
opacity:0;
|
|
117
117
|
}
|
|
118
|
-
[data-popper-placement^=
|
|
118
|
+
[data-popper-placement^='top'] ._wrapperHidden_1rn0hhb_110{
|
|
119
119
|
transform:translateY(10px);
|
|
120
120
|
}
|
|
121
|
-
[data-popper-placement^=
|
|
121
|
+
[data-popper-placement^='bottom'] ._wrapperHidden_1rn0hhb_110{
|
|
122
122
|
transform:translateY(-10px);
|
|
123
123
|
}
|
|
124
|
-
[data-popper-placement^=
|
|
124
|
+
[data-popper-placement^='right'] ._wrapperHidden_1rn0hhb_110{
|
|
125
125
|
transform:translateX(-10px);
|
|
126
126
|
}
|
|
127
|
-
[data-popper-placement^=
|
|
127
|
+
[data-popper-placement^='left'] ._wrapperHidden_1rn0hhb_110{
|
|
128
128
|
transform:translateX(10px);
|
|
129
129
|
}
|
|
130
|
-
.
|
|
130
|
+
._modeClassic_1rn0hhb_130 ._contentWrapper_1rn0hhb_77{
|
|
131
131
|
background-color:rgb(calc(255 - var(--_rs-theme-dark-coefficient, 0)*230), calc(255 - var(--_rs-theme-dark-coefficient, 0)*230), calc(255 - var(--_rs-theme-dark-coefficient, 0)*227));
|
|
132
132
|
}
|
|
133
|
-
.
|
|
133
|
+
._modeRock_1rn0hhb_134 ._contentWrapper_1rn0hhb_77{
|
|
134
134
|
background-color:rgb(calc(25 + var(--_rs-theme-dark-coefficient, 0)*230), calc(25 + var(--_rs-theme-dark-coefficient, 0)*230), calc(28 + var(--_rs-theme-dark-coefficient, 0)*227));
|
|
135
135
|
}
|
|
136
|
-
.
|
|
136
|
+
._modeRock_1rn0hhb_134{
|
|
137
137
|
--rs-parent-color-primary-light-theme:var(--rs-color-primary-light-theme);
|
|
138
|
-
--rs-parent-color-primary-dim-light-theme:var(
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
--rs-parent-color-primary-
|
|
138
|
+
--rs-parent-color-primary-dim-light-theme:var(
|
|
139
|
+
--rs-color-primary-dim-light-theme
|
|
140
|
+
);
|
|
141
|
+
--rs-parent-color-primary-fog-light-theme:var(
|
|
142
|
+
--rs-color-primary-fog-light-theme
|
|
143
|
+
);
|
|
144
|
+
--rs-parent-color-primary-t-dim-light-theme:var(
|
|
145
|
+
--rs-color-primary-t-dim-light-theme
|
|
146
|
+
);
|
|
147
|
+
--rs-parent-color-primary-t-fog-light-theme:var(
|
|
148
|
+
--rs-color-primary-t-fog-light-theme
|
|
149
|
+
);
|
|
142
150
|
|
|
143
151
|
--rs-parent-color-primary-dark-theme:var(--rs-color-primary-dark-theme);
|
|
144
|
-
--rs-parent-color-primary-dim-dark-theme:var(
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
--rs-parent-color-primary-
|
|
152
|
+
--rs-parent-color-primary-dim-dark-theme:var(
|
|
153
|
+
--rs-color-primary-dim-dark-theme
|
|
154
|
+
);
|
|
155
|
+
--rs-parent-color-primary-fog-dark-theme:var(
|
|
156
|
+
--rs-color-primary-fog-dark-theme
|
|
157
|
+
);
|
|
158
|
+
--rs-parent-color-primary-t-dim-dark-theme:var(
|
|
159
|
+
--rs-color-primary-t-dim-dark-theme
|
|
160
|
+
);
|
|
161
|
+
--rs-parent-color-primary-t-fog-dark-theme:var(
|
|
162
|
+
--rs-color-primary-t-fog-dark-theme
|
|
163
|
+
);
|
|
148
164
|
}
|
|
149
|
-
.
|
|
165
|
+
._modeRock_1rn0hhb_134 > *{
|
|
150
166
|
--rs-color-primary-dark-theme:var(--rs-parent-color-primary-light-theme);
|
|
151
|
-
--rs-color-primary-dim-dark-theme:var(
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
--rs-color-primary-
|
|
167
|
+
--rs-color-primary-dim-dark-theme:var(
|
|
168
|
+
--rs-parent-color-primary-dim-light-theme
|
|
169
|
+
);
|
|
170
|
+
--rs-color-primary-fog-dark-theme:var(
|
|
171
|
+
--rs-parent-color-primary-fog-light-theme
|
|
172
|
+
);
|
|
173
|
+
--rs-color-primary-t-dim-dark-theme:var(
|
|
174
|
+
--rs-parent-color-primary-t-dim-light-theme
|
|
175
|
+
);
|
|
176
|
+
--rs-color-primary-t-fog-dark-theme:var(
|
|
177
|
+
--rs-parent-color-primary-t-fog-light-theme
|
|
178
|
+
);
|
|
155
179
|
|
|
156
180
|
--rs-color-primary-light-theme:var(--rs-parent-color-primary-dark-theme);
|
|
157
|
-
--rs-color-primary-dim-light-theme:var(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
--rs-color-primary-
|
|
181
|
+
--rs-color-primary-dim-light-theme:var(
|
|
182
|
+
--rs-parent-color-primary-dim-dark-theme
|
|
183
|
+
);
|
|
184
|
+
--rs-color-primary-fog-light-theme:var(
|
|
185
|
+
--rs-parent-color-primary-fog-dark-theme
|
|
186
|
+
);
|
|
187
|
+
--rs-color-primary-t-dim-light-theme:var(
|
|
188
|
+
--rs-parent-color-primary-t-dim-dark-theme
|
|
189
|
+
);
|
|
190
|
+
--rs-color-primary-t-fog-light-theme:var(
|
|
191
|
+
--rs-parent-color-primary-t-fog-dark-theme
|
|
192
|
+
);
|
|
161
193
|
}
|
package/lib/index.d.ts
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
declare const DefaultDropdown: import("react").ForwardRefExoticComponent<import("./dropdown").DropdownProps & import("react").RefAttributes<import("./dropdown").DropdownImperativeHandle>>;
|
|
6
6
|
export default DefaultDropdown;
|
|
7
7
|
export { Dropdown } from './dropdown';
|
|
8
|
-
export type { DropdownProps } from './dropdown';
|
|
8
|
+
export type { DropdownProps, DropdownImperativeHandle } from './dropdown';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rescui/dropdown",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "JetBrains",
|
|
@@ -30,14 +30,14 @@
|
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@rescui/colors": "^0.3.0",
|
|
33
|
-
"@rescui/icons": "^1.7.
|
|
33
|
+
"@rescui/icons": "^1.7.6",
|
|
34
34
|
"@rescui/scripts": "^0.5.1",
|
|
35
|
-
"@rescui/typography": "^0.
|
|
35
|
+
"@rescui/typography": "^0.27.0",
|
|
36
36
|
"@rescui/visual-regression": "^0.1.4"
|
|
37
37
|
},
|
|
38
38
|
"scripts": {
|
|
39
39
|
"build": "rescui-scripts build"
|
|
40
40
|
},
|
|
41
41
|
"nx": {},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "e9aedd97a4cc372540ec8d75dda4f122baacca10"
|
|
43
43
|
}
|