@rescui/menu 0.10.18-RUI-247-Make-packets-react-19-ready-c06b3c96.4 → 0.11.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/index.css +46 -39
- package/lib/menu.js +5 -3
- package/lib/menu.p.module.css.js +30 -0
- package/lib/parts/divider.js +1 -2
- package/lib/parts/group-header.js +1 -2
- package/lib/parts/menu-context.d.ts +1 -0
- package/lib/parts/menu-context.js +2 -14
- package/lib/parts/menu-item.js +3 -3
- package/lib/parts/use-menu-keyboard-navigation.js +0 -1
- package/lib/public-api.p.css +6 -0
- package/lib/public-api.pcss +6 -0
- package/package.json +9 -9
- package/lib/index.p.module.css.js +0 -29
package/lib/index.css
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
.
|
|
1
|
+
._themeLight_358e5i_8{
|
|
2
2
|
--rs-theme-dark:0;
|
|
3
3
|
}
|
|
4
|
-
.
|
|
4
|
+
._themeDark_358e5i_11{
|
|
5
5
|
--rs-theme-dark:1;
|
|
6
6
|
}
|
|
7
|
-
.
|
|
7
|
+
._sizeS_358e5i_15{
|
|
8
8
|
--_rs-menu-mi-icon-offset:8px;
|
|
9
|
+
--_rs-menu-mi-icon-size:20px;
|
|
9
10
|
--_rs-menu-mi-vertical-padding:6px;
|
|
10
11
|
--_rs-menu-mi-horizontal-padding:8px;
|
|
11
12
|
--_rs-typography-letter-spacing:var(--rs-text-3-letter-spacing, 0.0045em);
|
|
@@ -41,8 +42,9 @@
|
|
|
41
42
|
--_rs-typography-link-external-standalone-border-offset-from-text-base:1.02em;
|
|
42
43
|
--_rs-typography-link-border-bottom-width-from-text:1px;
|
|
43
44
|
}
|
|
44
|
-
.
|
|
45
|
+
._sizeM_358e5i_18{
|
|
45
46
|
--_rs-menu-mi-icon-offset:8px;
|
|
47
|
+
--_rs-menu-mi-icon-size:24px;
|
|
46
48
|
--_rs-menu-mi-vertical-padding:8px;
|
|
47
49
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
48
50
|
--_rs-typography-letter-spacing:var(--rs-text-2-letter-spacing, 0.0015em);
|
|
@@ -82,12 +84,13 @@
|
|
|
82
84
|
--_rs-typography-link-border-bottom-width-from-text:1px;
|
|
83
85
|
}
|
|
84
86
|
@media screen and (max-width: 640px){
|
|
85
|
-
.
|
|
87
|
+
._sizeM_358e5i_18{
|
|
86
88
|
--_rs-typography-text-2-sm-list-li-margin-top-from-text:12px;
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
|
-
.
|
|
91
|
+
._sizeL_358e5i_21{
|
|
90
92
|
--_rs-menu-mi-icon-offset:16px;
|
|
93
|
+
--_rs-menu-mi-icon-size:28px;
|
|
91
94
|
--_rs-menu-mi-vertical-padding:12px;
|
|
92
95
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
93
96
|
--_rs-typography-letter-spacing:var(--rs-text-1-letter-spacing, normal);
|
|
@@ -127,11 +130,11 @@
|
|
|
127
130
|
--_rs-typography-link-border-bottom-width-from-text:1px;
|
|
128
131
|
}
|
|
129
132
|
@media screen and (max-width: 640px){
|
|
130
|
-
.
|
|
133
|
+
._sizeL_358e5i_21{
|
|
131
134
|
--_rs-typography-text-1-sm-list-li-margin-top-from-text:16px;
|
|
132
135
|
}
|
|
133
136
|
}
|
|
134
|
-
.
|
|
137
|
+
._modeClassic_358e5i_25{
|
|
135
138
|
--_rs-menu-mi-horizontal-padding-with-mode:var(
|
|
136
139
|
--_rs-menu-mi-horizontal-padding
|
|
137
140
|
);
|
|
@@ -145,7 +148,7 @@
|
|
|
145
148
|
calc(48 + var(--_rs-theme-dark-coefficient, 0)*184), calc(48 + var(--_rs-theme-dark-coefficient, 0)*184), calc(51 + var(--_rs-theme-dark-coefficient, 0)*181)
|
|
146
149
|
);
|
|
147
150
|
}
|
|
148
|
-
.
|
|
151
|
+
._modeRock_358e5i_28{
|
|
149
152
|
--_rs-menu-mi-horizontal-padding-with-mode:var(
|
|
150
153
|
--_rs-menu-mi-horizontal-padding
|
|
151
154
|
);
|
|
@@ -159,7 +162,7 @@
|
|
|
159
162
|
calc(48 + var(--_rs-theme-dark-coefficient, 0)*184), calc(48 + var(--_rs-theme-dark-coefficient, 0)*184), calc(51 + var(--_rs-theme-dark-coefficient, 0)*181)
|
|
160
163
|
);
|
|
161
164
|
}
|
|
162
|
-
.
|
|
165
|
+
._modeClear_358e5i_31{
|
|
163
166
|
--_rs-menu-mi-horizontal-padding-with-mode:0;
|
|
164
167
|
--_rs-menu-mi-active-background:none;
|
|
165
168
|
--_rs-menu-mi-selected-color:var(--_rs-color-primary);
|
|
@@ -172,15 +175,15 @@
|
|
|
172
175
|
0.1
|
|
173
176
|
);
|
|
174
177
|
}
|
|
175
|
-
.
|
|
178
|
+
._iconPlacementLeft_358e5i_35{
|
|
176
179
|
--_rs-menu-mi-flex-direction:row;
|
|
177
180
|
--_rs-menu-mi-justify-content:initial;
|
|
178
181
|
}
|
|
179
|
-
.
|
|
182
|
+
._iconPlacementRight_358e5i_39{
|
|
180
183
|
--_rs-menu-mi-flex-direction:row-reverse;
|
|
181
184
|
--_rs-menu-mi-justify-content:space-between;
|
|
182
185
|
}
|
|
183
|
-
.
|
|
186
|
+
._wrapper_358e5i_43{
|
|
184
187
|
--_rs-theme-dark:var(
|
|
185
188
|
--_rs-internal-force-theme-dark-consult-rescui-before-using,
|
|
186
189
|
var(--rs-theme-dark, 0)
|
|
@@ -190,7 +193,7 @@
|
|
|
190
193
|
--_rs-theme-light-coefficient:calc(1 - var(--_rs-theme-dark-coefficient));
|
|
191
194
|
}
|
|
192
195
|
@supports (color: color-mix(in srgb, #fff 50%, #000 50%)){
|
|
193
|
-
.
|
|
196
|
+
._wrapper_358e5i_43{
|
|
194
197
|
--_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)));
|
|
195
198
|
--_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)));
|
|
196
199
|
--_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)));
|
|
@@ -199,7 +202,7 @@
|
|
|
199
202
|
}
|
|
200
203
|
}
|
|
201
204
|
@supports not (color: color-mix(in srgb, #fff 50%, #000 50%)){
|
|
202
|
-
.
|
|
205
|
+
._wrapper_358e5i_43{
|
|
203
206
|
--_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);
|
|
204
207
|
--_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));
|
|
205
208
|
--_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));
|
|
@@ -207,11 +210,11 @@
|
|
|
207
210
|
--_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));
|
|
208
211
|
}
|
|
209
212
|
}
|
|
210
|
-
.
|
|
213
|
+
._wrapper_358e5i_43 {
|
|
211
214
|
|
|
212
215
|
display:flex;
|
|
213
216
|
}
|
|
214
|
-
.
|
|
217
|
+
._menuItem_358e5i_50{
|
|
215
218
|
letter-spacing:var(
|
|
216
219
|
--rs-text-base-letter-spacing,
|
|
217
220
|
var(--_rs-typography-letter-spacing)
|
|
@@ -252,48 +255,52 @@
|
|
|
252
255
|
-webkit-font-smoothing:inherit;
|
|
253
256
|
-moz-osx-font-smoothing:inherit;
|
|
254
257
|
}
|
|
255
|
-
.
|
|
258
|
+
._menuItem_358e5i_50:focus{
|
|
256
259
|
outline:none;
|
|
257
260
|
}
|
|
258
|
-
.
|
|
261
|
+
._keyboardNavigationDisabled_358e5i_85 ._menuItem_358e5i_50:focus[data-focus-method='key']{
|
|
259
262
|
box-shadow:0 0 0 2px var(--_rs-color-primary-dim), inset 0 0 0 2px var(--_rs-color-primary-dim);
|
|
260
263
|
}
|
|
261
|
-
.
|
|
264
|
+
._menuItem_358e5i_50:active{
|
|
262
265
|
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));
|
|
263
266
|
background:var(--_rs-menu-mi-active-background);
|
|
264
267
|
}
|
|
265
|
-
.
|
|
268
|
+
._menuItem_358e5i_50._selected_358e5i_99{
|
|
266
269
|
color:var(--_rs-menu-mi-selected-color);
|
|
267
270
|
background:var(--_rs-menu-mi-selected-background);
|
|
268
271
|
}
|
|
269
|
-
.
|
|
270
|
-
.
|
|
272
|
+
._menuItem_358e5i_50._highlighted_358e5i_106,
|
|
273
|
+
._menuItem_358e5i_50:not(._disableCursor_358e5i_107):hover{
|
|
271
274
|
color:var(--_rs-menu-mi-hover-color);
|
|
272
275
|
background:var(--_rs-menu-mi-hover-background);
|
|
273
276
|
}
|
|
274
|
-
.
|
|
275
|
-
.
|
|
277
|
+
._menuItem_358e5i_50._highlighted_358e5i_106._selected_358e5i_99,
|
|
278
|
+
._menuItem_358e5i_50._selected_358e5i_99:not(._disableCursor_358e5i_107):hover{
|
|
276
279
|
color:var(--_rs-menu-mi-selected-hover-color);
|
|
277
280
|
background-color:var(--_rs-menu-mi-selected-hover-background);
|
|
278
281
|
}
|
|
279
|
-
.
|
|
282
|
+
._menuItem_358e5i_50._disabled_358e5i_120{
|
|
280
283
|
pointer-events:none;
|
|
281
284
|
|
|
282
285
|
color:rgba(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), 0.5);
|
|
283
286
|
}
|
|
284
|
-
.
|
|
287
|
+
._disableCursor_358e5i_107{
|
|
285
288
|
pointer-events:none;
|
|
286
289
|
}
|
|
287
|
-
.
|
|
290
|
+
._content_358e5i_131{
|
|
288
291
|
flex-grow:1;
|
|
289
292
|
|
|
290
293
|
font-size:inherit;
|
|
291
294
|
}
|
|
292
|
-
.
|
|
295
|
+
._icon_358e5i_35{
|
|
293
296
|
flex:0 0;
|
|
294
297
|
flex-basis:auto;
|
|
295
298
|
}
|
|
296
|
-
.
|
|
299
|
+
._icon_358e5i_35._resizedIcon_358e5i_141{
|
|
300
|
+
width:auto;
|
|
301
|
+
height:var(--_rs-menu-mi-icon-size);
|
|
302
|
+
}
|
|
303
|
+
._divider_358e5i_149{
|
|
297
304
|
flex-shrink:0;
|
|
298
305
|
|
|
299
306
|
width:100%;
|
|
@@ -304,13 +311,13 @@
|
|
|
304
311
|
|
|
305
312
|
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), 0.2);
|
|
306
313
|
}
|
|
307
|
-
.
|
|
314
|
+
._groupHeaderThemeLight_358e5i_163{
|
|
308
315
|
--rs-theme-dark:0;
|
|
309
316
|
}
|
|
310
|
-
.
|
|
317
|
+
._groupHeaderThemeDark_358e5i_166{
|
|
311
318
|
--rs-theme-dark:1;
|
|
312
319
|
}
|
|
313
|
-
.
|
|
320
|
+
._groupHeaderSizeL_358e5i_170{
|
|
314
321
|
--_rs-menu-gh-vertical-padding:12px;
|
|
315
322
|
--_rs-menu-gh-horizontal-padding:16px;
|
|
316
323
|
--_rs-typography-letter-spacing:var(--rs-h3-letter-spacing, normal);
|
|
@@ -343,7 +350,7 @@
|
|
|
343
350
|
--_rs-typography-link-external-standalone-border-offset-from-text-base:1.02em;
|
|
344
351
|
--_rs-typography-link-border-bottom-width-from-text:2px;
|
|
345
352
|
}
|
|
346
|
-
.
|
|
353
|
+
._groupHeaderSizeM_358e5i_173{
|
|
347
354
|
--_rs-menu-gh-vertical-padding:8px;
|
|
348
355
|
--_rs-menu-gh-horizontal-padding:16px;
|
|
349
356
|
--_rs-typography-letter-spacing:var(--rs-h4-letter-spacing, normal);
|
|
@@ -376,7 +383,7 @@
|
|
|
376
383
|
--_rs-typography-link-external-standalone-border-offset-from-text-base:1.02em;
|
|
377
384
|
--_rs-typography-link-border-bottom-width-from-text:2px;
|
|
378
385
|
}
|
|
379
|
-
.
|
|
386
|
+
._groupHeaderSizeS_358e5i_176{
|
|
380
387
|
--_rs-menu-gh-vertical-padding:6px;
|
|
381
388
|
--_rs-menu-gh-horizontal-padding:8px;
|
|
382
389
|
--_rs-typography-letter-spacing:var(--rs-h5-letter-spacing, normal);
|
|
@@ -409,7 +416,7 @@
|
|
|
409
416
|
--_rs-typography-link-external-standalone-border-offset-from-text-base:1.02em;
|
|
410
417
|
--_rs-typography-link-border-bottom-width-from-text:2px;
|
|
411
418
|
}
|
|
412
|
-
.
|
|
419
|
+
._groupHeader_358e5i_163{
|
|
413
420
|
--_rs-theme-dark:var(
|
|
414
421
|
--_rs-internal-force-theme-dark-consult-rescui-before-using,
|
|
415
422
|
var(--rs-theme-dark, 0)
|
|
@@ -419,7 +426,7 @@
|
|
|
419
426
|
--_rs-theme-light-coefficient:calc(1 - var(--_rs-theme-dark-coefficient));
|
|
420
427
|
}
|
|
421
428
|
@supports (color: color-mix(in srgb, #fff 50%, #000 50%)){
|
|
422
|
-
.
|
|
429
|
+
._groupHeader_358e5i_163{
|
|
423
430
|
--_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)));
|
|
424
431
|
--_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)));
|
|
425
432
|
--_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)));
|
|
@@ -428,7 +435,7 @@
|
|
|
428
435
|
}
|
|
429
436
|
}
|
|
430
437
|
@supports not (color: color-mix(in srgb, #fff 50%, #000 50%)){
|
|
431
|
-
.
|
|
438
|
+
._groupHeader_358e5i_163{
|
|
432
439
|
--_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);
|
|
433
440
|
--_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));
|
|
434
441
|
--_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));
|
|
@@ -436,7 +443,7 @@
|
|
|
436
443
|
--_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));
|
|
437
444
|
}
|
|
438
445
|
}
|
|
439
|
-
.
|
|
446
|
+
._groupHeader_358e5i_163 {
|
|
440
447
|
letter-spacing:var(
|
|
441
448
|
--rs-text-base-letter-spacing,
|
|
442
449
|
var(--_rs-typography-letter-spacing)
|
package/lib/menu.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import PropTypes from 'prop-types';
|
|
4
3
|
import cn from 'classnames';
|
|
5
4
|
import { MenuProvider } from './parts/menu-context.js';
|
|
6
|
-
import styles from './
|
|
5
|
+
import styles from './menu.p.module.css.js';
|
|
7
6
|
import { useMenuKeyboardNavigation } from './parts/use-menu-keyboard-navigation.js';
|
|
8
7
|
|
|
9
8
|
const Menu = _ref => {
|
|
@@ -21,6 +20,7 @@ const Menu = _ref => {
|
|
|
21
20
|
className,
|
|
22
21
|
wrapItemsWithLi,
|
|
23
22
|
returnFocusOnUnmount = false,
|
|
23
|
+
resizeIcons = false,
|
|
24
24
|
...restProps
|
|
25
25
|
} = _ref;
|
|
26
26
|
const Tag = tag;
|
|
@@ -46,7 +46,8 @@ const Menu = _ref => {
|
|
|
46
46
|
unregisterItem: unregisterItem,
|
|
47
47
|
activeItemRef: activeItemRef.current,
|
|
48
48
|
isKeyboardNavigating: isKeyboardNavigating,
|
|
49
|
-
wrapWithLi: wrapItemsWithLi ?? tag === 'ul'
|
|
49
|
+
wrapWithLi: wrapItemsWithLi ?? tag === 'ul',
|
|
50
|
+
resizeIcons: resizeIcons
|
|
50
51
|
}, /*#__PURE__*/React.createElement(Tag, {
|
|
51
52
|
className: cn(!enableKeyboardNavigation && styles.keyboardNavigationDisabled, className),
|
|
52
53
|
...restProps
|
|
@@ -59,6 +60,7 @@ Menu.propTypes = {
|
|
|
59
60
|
theme: PropTypes.oneOf(['light', 'dark']),
|
|
60
61
|
disableCursor: PropTypes.bool,
|
|
61
62
|
disabled: PropTypes.bool,
|
|
63
|
+
resizeIcons: PropTypes.bool,
|
|
62
64
|
iconPlacement: PropTypes.oneOf(['left', 'right']),
|
|
63
65
|
itemTag: PropTypes.elementType,
|
|
64
66
|
tag: PropTypes.elementType
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
var styles = {
|
|
2
|
+
"themeLight": "_themeLight_358e5i_8",
|
|
3
|
+
"themeDark": "_themeDark_358e5i_11",
|
|
4
|
+
"sizeS": "_sizeS_358e5i_15",
|
|
5
|
+
"sizeM": "_sizeM_358e5i_18",
|
|
6
|
+
"sizeL": "_sizeL_358e5i_21",
|
|
7
|
+
"modeClassic": "_modeClassic_358e5i_25",
|
|
8
|
+
"modeRock": "_modeRock_358e5i_28",
|
|
9
|
+
"modeClear": "_modeClear_358e5i_31",
|
|
10
|
+
"iconPlacementLeft": "_iconPlacementLeft_358e5i_35",
|
|
11
|
+
"iconPlacementRight": "_iconPlacementRight_358e5i_39",
|
|
12
|
+
"wrapper": "_wrapper_358e5i_43",
|
|
13
|
+
"menuItem": "_menuItem_358e5i_50",
|
|
14
|
+
"keyboardNavigationDisabled": "_keyboardNavigationDisabled_358e5i_85",
|
|
15
|
+
"selected": "_selected_358e5i_99",
|
|
16
|
+
"highlighted": "_highlighted_358e5i_106",
|
|
17
|
+
"disableCursor": "_disableCursor_358e5i_107",
|
|
18
|
+
"disabled": "_disabled_358e5i_120",
|
|
19
|
+
"content": "_content_358e5i_131",
|
|
20
|
+
"icon": "_icon_358e5i_35",
|
|
21
|
+
"resizedIcon": "_resizedIcon_358e5i_141",
|
|
22
|
+
"divider": "_divider_358e5i_149",
|
|
23
|
+
"groupHeaderThemeLight": "_groupHeaderThemeLight_358e5i_163",
|
|
24
|
+
"groupHeaderThemeDark": "_groupHeaderThemeDark_358e5i_166",
|
|
25
|
+
"groupHeaderSizeL": "_groupHeaderSizeL_358e5i_170",
|
|
26
|
+
"groupHeaderSizeM": "_groupHeaderSizeM_358e5i_173",
|
|
27
|
+
"groupHeaderSizeS": "_groupHeaderSizeS_358e5i_176",
|
|
28
|
+
"groupHeader": "_groupHeader_358e5i_163"
|
|
29
|
+
};
|
|
30
|
+
export { styles as default };
|
package/lib/parts/divider.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import cn from 'classnames';
|
|
4
3
|
import PropTypes from 'prop-types';
|
|
5
4
|
import { useThemeWithUndefined } from '@rescui/ui-contexts';
|
|
6
|
-
import styles from '../
|
|
5
|
+
import styles from '../menu.p.module.css.js';
|
|
7
6
|
import { useMenuContext } from './menu-context.js';
|
|
8
7
|
const THEME_CLASS = {
|
|
9
8
|
light: styles.themeLight,
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import cn from 'classnames';
|
|
4
3
|
import PropTypes from 'prop-types';
|
|
5
4
|
import { useThemeWithUndefined } from '@rescui/ui-contexts';
|
|
6
|
-
import styles from '../
|
|
5
|
+
import styles from '../menu.p.module.css.js';
|
|
7
6
|
import { useMenuContext } from './menu-context.js';
|
|
8
7
|
const SIZE_CLASS = {
|
|
9
8
|
s: styles.groupHeaderSizeS,
|
|
@@ -16,6 +16,7 @@ export interface MenuContextValue {
|
|
|
16
16
|
unregisterItem?: (ref: HTMLElement) => void;
|
|
17
17
|
activeItemRef?: HTMLElement;
|
|
18
18
|
isKeyboardNavigating: boolean;
|
|
19
|
+
resizeIcons?: boolean;
|
|
19
20
|
}
|
|
20
21
|
export declare const DEFAULT_MENU_CONTEXT: MenuContextValue;
|
|
21
22
|
export declare const MenuContext: React.Context<MenuContextValue>;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import React, { useContext } from 'react';
|
|
3
2
|
import PropTypes from 'prop-types';
|
|
4
3
|
const DEFAULT_MENU_CONTEXT = {
|
|
@@ -17,25 +16,14 @@ const useMenuContext = () => useContext(MenuContext);
|
|
|
17
16
|
const MenuProvider = _ref => {
|
|
18
17
|
let {
|
|
19
18
|
children,
|
|
20
|
-
disabled = DEFAULT_MENU_CONTEXT.disabled,
|
|
21
|
-
isKeyboardNavigating = DEFAULT_MENU_CONTEXT.isKeyboardNavigating,
|
|
22
|
-
wrapWithLi = DEFAULT_MENU_CONTEXT.wrapWithLi,
|
|
23
|
-
registerItem = DEFAULT_MENU_CONTEXT.registerItem,
|
|
24
|
-
unregisterItem = DEFAULT_MENU_CONTEXT.unregisterItem,
|
|
25
19
|
...restProps
|
|
26
20
|
} = _ref;
|
|
27
21
|
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
|
|
28
|
-
value:
|
|
29
|
-
disabled,
|
|
30
|
-
isKeyboardNavigating,
|
|
31
|
-
wrapWithLi,
|
|
32
|
-
registerItem,
|
|
33
|
-
unregisterItem,
|
|
34
|
-
...restProps
|
|
35
|
-
}
|
|
22
|
+
value: restProps
|
|
36
23
|
}, children);
|
|
37
24
|
};
|
|
38
25
|
|
|
26
|
+
MenuProvider.defaultProps = DEFAULT_MENU_CONTEXT;
|
|
39
27
|
MenuProvider.propTypes = {
|
|
40
28
|
size: PropTypes.oneOf(['l', 'm', 's']),
|
|
41
29
|
mode: PropTypes.oneOf(['clear', 'classic', 'rock']),
|
package/lib/parts/menu-item.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import React, { useState, useEffect, cloneElement } from 'react';
|
|
3
2
|
import cn from 'classnames';
|
|
4
3
|
import PropTypes from 'prop-types';
|
|
5
4
|
import { useThemeWithUndefined } from '@rescui/ui-contexts';
|
|
6
|
-
import styles from '../
|
|
5
|
+
import styles from '../menu.p.module.css.js';
|
|
7
6
|
import { useMenuContext } from './menu-context.js';
|
|
8
7
|
const ICON_PLACEMENT_STYLES = {
|
|
9
8
|
left: styles.iconPlacementLeft,
|
|
@@ -68,8 +67,9 @@ const MenuItemInner = (_ref, ref) => {
|
|
|
68
67
|
const actualMode = menuContext.mode ?? mode;
|
|
69
68
|
const actualSize = menuContext.size ?? size;
|
|
70
69
|
const actualDisableCursor = menuContext.disableCursor ?? disableCursor;
|
|
70
|
+
const resizeIcons = menuContext.resizeIcons ?? false;
|
|
71
71
|
const iconElement = icon ? /*#__PURE__*/cloneElement(icon, {
|
|
72
|
-
className: cn(icon.props.className, styles.icon),
|
|
72
|
+
className: cn(icon.props.className, styles.icon, resizeIcons && styles.resizedIcon),
|
|
73
73
|
'data-render-all-sizes': true
|
|
74
74
|
}) : null;
|
|
75
75
|
const actualHighlighted = highlighted || activeItemRef === thisRef && isKeyboardNavigating;
|
package/lib/public-api.p.css
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
@define-mixin rs-menu-size-s{
|
|
2
2
|
& [data-rs-internal="menu__menu-item"]{
|
|
3
3
|
--_rs-menu-mi-icon-offset:8px;
|
|
4
|
+
--_rs-menu-mi-icon-size:20px;
|
|
4
5
|
--_rs-menu-mi-vertical-padding:6px;
|
|
5
6
|
--_rs-menu-mi-horizontal-padding:8px;
|
|
6
7
|
--_rs-typography-letter-spacing:var(--rs-text-3-letter-spacing, 0.0045em);
|
|
@@ -73,6 +74,7 @@
|
|
|
73
74
|
@define-mixin rs-menu-size-m{
|
|
74
75
|
& [data-rs-internal="menu__menu-item"]{
|
|
75
76
|
--_rs-menu-mi-icon-offset:8px;
|
|
77
|
+
--_rs-menu-mi-icon-size:24px;
|
|
76
78
|
--_rs-menu-mi-vertical-padding:8px;
|
|
77
79
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
78
80
|
--_rs-typography-letter-spacing:var(--rs-text-2-letter-spacing, 0.0015em);
|
|
@@ -153,6 +155,7 @@
|
|
|
153
155
|
@define-mixin rs-menu-size-l{
|
|
154
156
|
& [data-rs-internal="menu__menu-item"]{
|
|
155
157
|
--_rs-menu-mi-icon-offset:16px;
|
|
158
|
+
--_rs-menu-mi-icon-size:28px;
|
|
156
159
|
--_rs-menu-mi-vertical-padding:12px;
|
|
157
160
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
158
161
|
--_rs-typography-letter-spacing:var(--rs-text-1-letter-spacing, normal);
|
|
@@ -292,6 +295,7 @@
|
|
|
292
295
|
@define-mixin rs-menu-item-size-s{
|
|
293
296
|
&[class]{
|
|
294
297
|
--_rs-menu-mi-icon-offset:8px;
|
|
298
|
+
--_rs-menu-mi-icon-size:20px;
|
|
295
299
|
--_rs-menu-mi-vertical-padding:6px;
|
|
296
300
|
--_rs-menu-mi-horizontal-padding:8px;
|
|
297
301
|
--_rs-typography-letter-spacing:var(--rs-text-3-letter-spacing, 0.0045em);
|
|
@@ -331,6 +335,7 @@
|
|
|
331
335
|
@define-mixin rs-menu-item-size-m{
|
|
332
336
|
&[class]{
|
|
333
337
|
--_rs-menu-mi-icon-offset:8px;
|
|
338
|
+
--_rs-menu-mi-icon-size:24px;
|
|
334
339
|
--_rs-menu-mi-vertical-padding:8px;
|
|
335
340
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
336
341
|
--_rs-typography-letter-spacing:var(--rs-text-2-letter-spacing, 0.0015em);
|
|
@@ -378,6 +383,7 @@
|
|
|
378
383
|
@define-mixin rs-menu-item-size-l{
|
|
379
384
|
&[class]{
|
|
380
385
|
--_rs-menu-mi-icon-offset:16px;
|
|
386
|
+
--_rs-menu-mi-icon-size:28px;
|
|
381
387
|
--_rs-menu-mi-vertical-padding:12px;
|
|
382
388
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
383
389
|
--_rs-typography-letter-spacing:var(--rs-text-1-letter-spacing, normal);
|
package/lib/public-api.pcss
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
@define-mixin rs-menu-size-s{
|
|
2
2
|
& [data-rs-internal="menu__menu-item"]{
|
|
3
3
|
--_rs-menu-mi-icon-offset:8px;
|
|
4
|
+
--_rs-menu-mi-icon-size:20px;
|
|
4
5
|
--_rs-menu-mi-vertical-padding:6px;
|
|
5
6
|
--_rs-menu-mi-horizontal-padding:8px;
|
|
6
7
|
--_rs-typography-letter-spacing:var(--rs-text-3-letter-spacing, 0.0045em);
|
|
@@ -73,6 +74,7 @@
|
|
|
73
74
|
@define-mixin rs-menu-size-m{
|
|
74
75
|
& [data-rs-internal="menu__menu-item"]{
|
|
75
76
|
--_rs-menu-mi-icon-offset:8px;
|
|
77
|
+
--_rs-menu-mi-icon-size:24px;
|
|
76
78
|
--_rs-menu-mi-vertical-padding:8px;
|
|
77
79
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
78
80
|
--_rs-typography-letter-spacing:var(--rs-text-2-letter-spacing, 0.0015em);
|
|
@@ -153,6 +155,7 @@
|
|
|
153
155
|
@define-mixin rs-menu-size-l{
|
|
154
156
|
& [data-rs-internal="menu__menu-item"]{
|
|
155
157
|
--_rs-menu-mi-icon-offset:16px;
|
|
158
|
+
--_rs-menu-mi-icon-size:28px;
|
|
156
159
|
--_rs-menu-mi-vertical-padding:12px;
|
|
157
160
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
158
161
|
--_rs-typography-letter-spacing:var(--rs-text-1-letter-spacing, normal);
|
|
@@ -292,6 +295,7 @@
|
|
|
292
295
|
@define-mixin rs-menu-item-size-s{
|
|
293
296
|
&[class]{
|
|
294
297
|
--_rs-menu-mi-icon-offset:8px;
|
|
298
|
+
--_rs-menu-mi-icon-size:20px;
|
|
295
299
|
--_rs-menu-mi-vertical-padding:6px;
|
|
296
300
|
--_rs-menu-mi-horizontal-padding:8px;
|
|
297
301
|
--_rs-typography-letter-spacing:var(--rs-text-3-letter-spacing, 0.0045em);
|
|
@@ -331,6 +335,7 @@
|
|
|
331
335
|
@define-mixin rs-menu-item-size-m{
|
|
332
336
|
&[class]{
|
|
333
337
|
--_rs-menu-mi-icon-offset:8px;
|
|
338
|
+
--_rs-menu-mi-icon-size:24px;
|
|
334
339
|
--_rs-menu-mi-vertical-padding:8px;
|
|
335
340
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
336
341
|
--_rs-typography-letter-spacing:var(--rs-text-2-letter-spacing, 0.0015em);
|
|
@@ -378,6 +383,7 @@
|
|
|
378
383
|
@define-mixin rs-menu-item-size-l{
|
|
379
384
|
&[class]{
|
|
380
385
|
--_rs-menu-mi-icon-offset:16px;
|
|
386
|
+
--_rs-menu-mi-icon-size:28px;
|
|
381
387
|
--_rs-menu-mi-vertical-padding:12px;
|
|
382
388
|
--_rs-menu-mi-horizontal-padding:16px;
|
|
383
389
|
--_rs-typography-letter-spacing:var(--rs-text-1-letter-spacing, normal);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rescui/menu",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "JetBrains",
|
|
@@ -21,15 +21,15 @@
|
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"@rescui/ui-contexts": "^0.5.0",
|
|
24
|
-
"prop-types": "^15",
|
|
25
|
-
"react": ">=16.8.0 <
|
|
24
|
+
"prop-types": "^15.7.2",
|
|
25
|
+
"react": ">=16.8.0 <19"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@rescui/colors": "0.2.
|
|
29
|
-
"@rescui/postcss-preset-library": "0.2.2",
|
|
30
|
-
"@rescui/scripts": "0.5.0",
|
|
31
|
-
"@rescui/typography": "0.23.
|
|
32
|
-
"@rescui/visual-regression": "0.1.2",
|
|
28
|
+
"@rescui/colors": "^0.2.9",
|
|
29
|
+
"@rescui/postcss-preset-library": "^0.2.2",
|
|
30
|
+
"@rescui/scripts": "^0.5.0",
|
|
31
|
+
"@rescui/typography": "^0.23.2",
|
|
32
|
+
"@rescui/visual-regression": "^0.1.2",
|
|
33
33
|
"postcss": "^8.3.0"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"build-pcss-api": "rescui-scripts build-pcss-api --file public-api.p.css"
|
|
38
38
|
},
|
|
39
39
|
"nx": {},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "f31d27b895bfc5f3ffa3f2dda08072b7dd2c928c"
|
|
41
41
|
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
var styles = {
|
|
2
|
-
"themeLight": "_themeLight_wzgtqt_8",
|
|
3
|
-
"themeDark": "_themeDark_wzgtqt_11",
|
|
4
|
-
"sizeS": "_sizeS_wzgtqt_15",
|
|
5
|
-
"sizeM": "_sizeM_wzgtqt_18",
|
|
6
|
-
"sizeL": "_sizeL_wzgtqt_21",
|
|
7
|
-
"modeClassic": "_modeClassic_wzgtqt_25",
|
|
8
|
-
"modeRock": "_modeRock_wzgtqt_28",
|
|
9
|
-
"modeClear": "_modeClear_wzgtqt_31",
|
|
10
|
-
"iconPlacementLeft": "_iconPlacementLeft_wzgtqt_35",
|
|
11
|
-
"iconPlacementRight": "_iconPlacementRight_wzgtqt_39",
|
|
12
|
-
"wrapper": "_wrapper_wzgtqt_43",
|
|
13
|
-
"menuItem": "_menuItem_wzgtqt_50",
|
|
14
|
-
"keyboardNavigationDisabled": "_keyboardNavigationDisabled_wzgtqt_85",
|
|
15
|
-
"selected": "_selected_wzgtqt_99",
|
|
16
|
-
"highlighted": "_highlighted_wzgtqt_106",
|
|
17
|
-
"disableCursor": "_disableCursor_wzgtqt_107",
|
|
18
|
-
"disabled": "_disabled_wzgtqt_120",
|
|
19
|
-
"content": "_content_wzgtqt_131",
|
|
20
|
-
"icon": "_icon_wzgtqt_35",
|
|
21
|
-
"divider": "_divider_wzgtqt_144",
|
|
22
|
-
"groupHeaderThemeLight": "_groupHeaderThemeLight_wzgtqt_158",
|
|
23
|
-
"groupHeaderThemeDark": "_groupHeaderThemeDark_wzgtqt_161",
|
|
24
|
-
"groupHeaderSizeL": "_groupHeaderSizeL_wzgtqt_165",
|
|
25
|
-
"groupHeaderSizeM": "_groupHeaderSizeM_wzgtqt_168",
|
|
26
|
-
"groupHeaderSizeS": "_groupHeaderSizeS_wzgtqt_171",
|
|
27
|
-
"groupHeader": "_groupHeader_wzgtqt_158"
|
|
28
|
-
};
|
|
29
|
-
export { styles as default };
|