@sproutsocial/seeds-react-menu 1.2.3 → 1.3.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/.turbo/turbo-build.log +10 -10
- package/CHANGELOG.md +10 -0
- package/dist/esm/index.js +153 -113
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +165 -126
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/Autocomplete/MultiAutocomplete.tsx +3 -0
- package/src/Autocomplete/SingleAutocomplete.tsx +3 -7
- package/src/Autocomplete/__tests__/Autocomplete.test.tsx +21 -0
- package/src/MenuContent/DefaultMenuEmptyState.tsx +17 -0
- package/src/MenuContent/MenuContent.tsx +14 -2
- package/src/MenuContent/MenuContentTypes.ts +2 -0
- package/src/MenuContent/__tests__/MenuContent.test.tsx +38 -17
- package/src/MenuContext.tsx +13 -0
- package/src/MenuItem/__tests__/MenuItem.test.tsx +11 -14
- package/src/MenuRoot/MenuRoot.tsx +9 -2
- package/src/SingleSelectMenu/SingleSelectMenu.stories.tsx +44 -0
- package/src/menuTestingUtils.tsx +12 -7
package/dist/index.js
CHANGED
|
@@ -169,7 +169,8 @@ var defaultMenuContext = {
|
|
|
169
169
|
items: [],
|
|
170
170
|
itemsMap: {},
|
|
171
171
|
isItemSelected: () => false,
|
|
172
|
-
getInputComponentProps: () => ({})
|
|
172
|
+
getInputComponentProps: () => ({}),
|
|
173
|
+
hasVisibleItems: false
|
|
173
174
|
};
|
|
174
175
|
var getSelectedItemIds = (selectedItems) => selectedItems?.reduce(
|
|
175
176
|
(selected, item) => ({ ...selected, [item.id]: true }),
|
|
@@ -190,6 +191,8 @@ var useMenu = ({
|
|
|
190
191
|
selectedItems,
|
|
191
192
|
getInputProps,
|
|
192
193
|
contentRef: contentRefFromProps,
|
|
194
|
+
autoCloseOnEmpty,
|
|
195
|
+
hiddenItemsCount,
|
|
193
196
|
...rest
|
|
194
197
|
} = {}) => {
|
|
195
198
|
const contentRef = contentRefFromProps || import_react.default.createRef();
|
|
@@ -244,6 +247,9 @@ var useMenu = ({
|
|
|
244
247
|
},
|
|
245
248
|
[getInputProps]
|
|
246
249
|
);
|
|
250
|
+
const hasVisibleItems = (0, import_react.useMemo)(() => {
|
|
251
|
+
return (hiddenItemsCount ?? 0) < items.length;
|
|
252
|
+
}, [items, hiddenItemsCount]);
|
|
247
253
|
return {
|
|
248
254
|
isOpen,
|
|
249
255
|
isListbox,
|
|
@@ -256,6 +262,8 @@ var useMenu = ({
|
|
|
256
262
|
getInputProps,
|
|
257
263
|
getInputComponentProps,
|
|
258
264
|
contentRef,
|
|
265
|
+
hasVisibleItems,
|
|
266
|
+
autoCloseOnEmpty,
|
|
259
267
|
...menuProps
|
|
260
268
|
};
|
|
261
269
|
};
|
|
@@ -2362,7 +2370,23 @@ var useMenuChildren = ({
|
|
|
2362
2370
|
|
|
2363
2371
|
// src/MenuContent/MenuContent.tsx
|
|
2364
2372
|
var import_react5 = require("react");
|
|
2373
|
+
|
|
2374
|
+
// src/MenuContent/DefaultMenuEmptyState.tsx
|
|
2375
|
+
var import_styled_components6 = __toESM(require("styled-components"));
|
|
2365
2376
|
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
2377
|
+
var StyledEmptyState = import_styled_components6.default.div`
|
|
2378
|
+
padding: ${({ theme: theme2 }) => theme2.space[350]};
|
|
2379
|
+
text-align: center;
|
|
2380
|
+
font-size: ${({ theme: theme2 }) => theme2.typography[200].fontSize};
|
|
2381
|
+
`;
|
|
2382
|
+
var DefaultMenuEmptyState = ({
|
|
2383
|
+
children
|
|
2384
|
+
}) => {
|
|
2385
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(StyledEmptyState, { children: children || "No results found." });
|
|
2386
|
+
};
|
|
2387
|
+
|
|
2388
|
+
// src/MenuContent/MenuContent.tsx
|
|
2389
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
2366
2390
|
var MenuContent = ({
|
|
2367
2391
|
id = "menu_content",
|
|
2368
2392
|
children: childrenProp,
|
|
@@ -2370,11 +2394,21 @@ var MenuContent = ({
|
|
|
2370
2394
|
MenuItemComponent,
|
|
2371
2395
|
onKeyDown,
|
|
2372
2396
|
innerRef = null,
|
|
2397
|
+
emptyStateElement,
|
|
2373
2398
|
...rest
|
|
2374
2399
|
}) => {
|
|
2375
|
-
const {
|
|
2400
|
+
const {
|
|
2401
|
+
getToggleButtonProps,
|
|
2402
|
+
getMenuProps,
|
|
2403
|
+
isListbox,
|
|
2404
|
+
hasVisibleItems,
|
|
2405
|
+
autoCloseOnEmpty
|
|
2406
|
+
} = useMenuContentContext();
|
|
2376
2407
|
const toggleButtonProps = getToggleButtonProps?.();
|
|
2377
2408
|
const children = childrenProp || !menuItems || !menuItems.length ? childrenProp : mapMenuItems({ menuItems, MenuItemComponent });
|
|
2409
|
+
if (!hasVisibleItems && !autoCloseOnEmpty) {
|
|
2410
|
+
return emptyStateElement ?? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(DefaultMenuEmptyState, {});
|
|
2411
|
+
}
|
|
2378
2412
|
if (!children) {
|
|
2379
2413
|
return null;
|
|
2380
2414
|
}
|
|
@@ -2385,7 +2419,7 @@ var MenuContent = ({
|
|
|
2385
2419
|
},
|
|
2386
2420
|
[onKeyDown, toggleButtonProps?.["onKeyDown"]]
|
|
2387
2421
|
);
|
|
2388
|
-
return /* @__PURE__ */ (0,
|
|
2422
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
2389
2423
|
StyledMenuContent,
|
|
2390
2424
|
{
|
|
2391
2425
|
autoFocus: true,
|
|
@@ -2411,47 +2445,47 @@ MenuContent.__MENU_PRIMITIVE_TYPE = "MenuContent";
|
|
|
2411
2445
|
var import_react6 = require("react");
|
|
2412
2446
|
|
|
2413
2447
|
// src/MenuFooter/styles.tsx
|
|
2414
|
-
var
|
|
2448
|
+
var import_styled_components7 = __toESM(require("styled-components"));
|
|
2415
2449
|
var import_seeds_react_box2 = require("@sproutsocial/seeds-react-box");
|
|
2416
|
-
var StyledMenuFooterBox = (0,
|
|
2450
|
+
var StyledMenuFooterBox = (0, import_styled_components7.default)(import_seeds_react_box2.Box)`
|
|
2417
2451
|
padding: ${({ theme: theme2 }) => theme2.space[350]} ${({ theme: theme2 }) => theme2.space[400]};
|
|
2418
2452
|
border-top: 1px solid ${(p) => p.theme.colors.container.border.base};
|
|
2419
2453
|
`;
|
|
2420
2454
|
|
|
2421
2455
|
// src/MenuFooter/MenuFooter.tsx
|
|
2422
|
-
var
|
|
2456
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
2423
2457
|
var MenuFooter = ({ children, ...rest }) => {
|
|
2424
|
-
return /* @__PURE__ */ (0,
|
|
2458
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(StyledMenuFooterBox, { ...rest, children });
|
|
2425
2459
|
};
|
|
2426
2460
|
|
|
2427
2461
|
// src/MenuGroup/MenuGroup.tsx
|
|
2428
2462
|
var import_react9 = require("react");
|
|
2429
2463
|
|
|
2430
2464
|
// src/MenuGroup/styles.tsx
|
|
2431
|
-
var
|
|
2465
|
+
var import_styled_components10 = __toESM(require("styled-components"));
|
|
2432
2466
|
|
|
2433
2467
|
// ../seeds-react-text/dist/esm/index.js
|
|
2434
2468
|
var import_react7 = require("react");
|
|
2435
|
-
var import_styled_components7 = __toESM(require("styled-components"));
|
|
2436
2469
|
var import_styled_components8 = __toESM(require("styled-components"));
|
|
2470
|
+
var import_styled_components9 = __toESM(require("styled-components"));
|
|
2437
2471
|
var import_seeds_react_system_props = require("@sproutsocial/seeds-react-system-props");
|
|
2438
|
-
var
|
|
2472
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
2439
2473
|
var import_react8 = require("react");
|
|
2440
|
-
var Container =
|
|
2474
|
+
var Container = import_styled_components9.default.span`
|
|
2441
2475
|
margin: 0;
|
|
2442
2476
|
padding-left: 0;
|
|
2443
2477
|
padding-right: 0;
|
|
2444
2478
|
font-family: ${(props) => props.theme.fontFamily};
|
|
2445
2479
|
font-style: ${(props) => props.isItalicized && "italic"};
|
|
2446
2480
|
|
|
2447
|
-
${(props) => props.truncated &&
|
|
2481
|
+
${(props) => props.truncated && import_styled_components9.css`
|
|
2448
2482
|
display: block;
|
|
2449
2483
|
overflow: hidden;
|
|
2450
2484
|
white-space: nowrap;
|
|
2451
2485
|
text-overflow: ellipsis;
|
|
2452
2486
|
`}
|
|
2453
2487
|
|
|
2454
|
-
${(props) => props.breakWord &&
|
|
2488
|
+
${(props) => props.breakWord && import_styled_components9.css`
|
|
2455
2489
|
word-break: break-word;
|
|
2456
2490
|
hyphens: auto;
|
|
2457
2491
|
`}
|
|
@@ -2463,40 +2497,40 @@ var Container = import_styled_components8.default.span`
|
|
|
2463
2497
|
${import_seeds_react_system_props.TYPOGRAPHY}
|
|
2464
2498
|
`;
|
|
2465
2499
|
var styles_default = Container;
|
|
2466
|
-
var Headline = (0,
|
|
2500
|
+
var Headline = (0, import_styled_components8.default)(styles_default)`
|
|
2467
2501
|
color: ${(props) => props.theme.colors.text.headline};
|
|
2468
2502
|
font-weight: ${(props) => props.theme.fontWeights.bold};
|
|
2469
2503
|
${(props) => props.theme.typography[400]}
|
|
2470
2504
|
`;
|
|
2471
|
-
var SubHeadline = (0,
|
|
2505
|
+
var SubHeadline = (0, import_styled_components8.default)(styles_default)`
|
|
2472
2506
|
color: ${(props) => props.theme.colors.text.headline};
|
|
2473
2507
|
font-weight: ${(props) => props.theme.fontWeights.bold};
|
|
2474
2508
|
${(props) => props.theme.typography[300]}
|
|
2475
2509
|
`;
|
|
2476
|
-
var SmallSubHeadline = (0,
|
|
2510
|
+
var SmallSubHeadline = (0, import_styled_components8.default)(styles_default)`
|
|
2477
2511
|
color: ${(props) => props.theme.colors.text.headline};
|
|
2478
2512
|
font-weight: ${(props) => props.theme.fontWeights.bold};
|
|
2479
2513
|
${(props) => props.theme.typography[200]}
|
|
2480
2514
|
`;
|
|
2481
|
-
var Byline = (0,
|
|
2515
|
+
var Byline = (0, import_styled_components8.default)(styles_default)`
|
|
2482
2516
|
color: ${(props) => props.theme.colors.text.subtext};
|
|
2483
2517
|
${(props) => props.theme.typography[200]}
|
|
2484
2518
|
`;
|
|
2485
|
-
var SmallByline = (0,
|
|
2519
|
+
var SmallByline = (0, import_styled_components8.default)(styles_default)`
|
|
2486
2520
|
color: ${(props) => props.theme.colors.text.subtext};
|
|
2487
2521
|
${(props) => props.theme.typography[100]}
|
|
2488
2522
|
`;
|
|
2489
|
-
var BodyCopy = (0,
|
|
2523
|
+
var BodyCopy = (0, import_styled_components8.default)(styles_default)`
|
|
2490
2524
|
color: ${(props) => props.theme.colors.text.body};
|
|
2491
2525
|
${(props) => props.theme.typography[300]}
|
|
2492
2526
|
`;
|
|
2493
|
-
var SmallBodyCopy = (0,
|
|
2527
|
+
var SmallBodyCopy = (0, import_styled_components8.default)(styles_default)`
|
|
2494
2528
|
color: ${(props) => props.theme.colors.text.body};
|
|
2495
2529
|
${(props) => props.theme.typography[200]}
|
|
2496
2530
|
`;
|
|
2497
2531
|
var Text = ({ fontSize: fontSize2, children, qa, color: color2, ...rest }) => {
|
|
2498
2532
|
const qaText = typeof children === "string" ? children : void 0;
|
|
2499
|
-
return /* @__PURE__ */ (0,
|
|
2533
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
2500
2534
|
styles_default,
|
|
2501
2535
|
{
|
|
2502
2536
|
typeScale: fontSize2,
|
|
@@ -2511,7 +2545,7 @@ var Text = ({ fontSize: fontSize2, children, qa, color: color2, ...rest }) => {
|
|
|
2511
2545
|
var withTextLogic = (Component) => {
|
|
2512
2546
|
return ({ children, ...props }) => {
|
|
2513
2547
|
const qaText = typeof children === "string" ? children : void 0;
|
|
2514
|
-
return /* @__PURE__ */ (0,
|
|
2548
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Component, { "data-qa-text": qaText, ...props, children });
|
|
2515
2549
|
};
|
|
2516
2550
|
};
|
|
2517
2551
|
var HeadlineWithLogic = withTextLogic(Headline);
|
|
@@ -2539,7 +2573,7 @@ var Text_default = Text;
|
|
|
2539
2573
|
var index_default = Text_default;
|
|
2540
2574
|
|
|
2541
2575
|
// src/MenuGroup/styles.tsx
|
|
2542
|
-
var StyledMenuGroup =
|
|
2576
|
+
var StyledMenuGroup = import_styled_components10.default.li`
|
|
2543
2577
|
&:not(:last-child) {
|
|
2544
2578
|
border-bottom: 1px solid
|
|
2545
2579
|
${({ theme: theme2 }) => theme2.colors.container.border.base};
|
|
@@ -2555,18 +2589,18 @@ var StyledMenuGroup = import_styled_components9.default.li`
|
|
|
2555
2589
|
${layout}
|
|
2556
2590
|
${space}
|
|
2557
2591
|
`;
|
|
2558
|
-
var StyledTitle = (0,
|
|
2592
|
+
var StyledTitle = (0, import_styled_components10.default)(index_default.SmallSubHeadline)`
|
|
2559
2593
|
font-size: ${({ theme: theme2 }) => theme2.typography[100].fontSize};
|
|
2560
2594
|
margin: ${({ theme: theme2 }) => theme2.space[400]} ${({ theme: theme2 }) => theme2.space[400]}
|
|
2561
2595
|
0px ${({ theme: theme2 }) => theme2.space[400]};
|
|
2562
2596
|
`;
|
|
2563
|
-
var StyledMenuGroupUl =
|
|
2597
|
+
var StyledMenuGroupUl = import_styled_components10.default.ul`
|
|
2564
2598
|
margin: 0;
|
|
2565
2599
|
padding: 0;
|
|
2566
2600
|
`;
|
|
2567
2601
|
|
|
2568
2602
|
// src/MenuGroup/MenuGroup.tsx
|
|
2569
|
-
var
|
|
2603
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
2570
2604
|
var MenuGroup = ({
|
|
2571
2605
|
titleAs = "h3",
|
|
2572
2606
|
children: childrenProp,
|
|
@@ -2583,7 +2617,7 @@ var MenuGroup = ({
|
|
|
2583
2617
|
if (!children) {
|
|
2584
2618
|
return null;
|
|
2585
2619
|
}
|
|
2586
|
-
return /* @__PURE__ */ (0,
|
|
2620
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
2587
2621
|
StyledMenuGroup,
|
|
2588
2622
|
{
|
|
2589
2623
|
role: "group",
|
|
@@ -2593,8 +2627,8 @@ var MenuGroup = ({
|
|
|
2593
2627
|
color: color2,
|
|
2594
2628
|
...rest,
|
|
2595
2629
|
children: [
|
|
2596
|
-
title && /* @__PURE__ */ (0,
|
|
2597
|
-
/* @__PURE__ */ (0,
|
|
2630
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(StyledTitle, { role: "heading", as: titleAs, id: titleId, children: title }),
|
|
2631
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(StyledMenuGroupUl, { children })
|
|
2598
2632
|
]
|
|
2599
2633
|
}
|
|
2600
2634
|
);
|
|
@@ -2603,7 +2637,7 @@ MenuGroup.__MENU_PRIMITIVE_TYPE = "MenuGroup";
|
|
|
2603
2637
|
|
|
2604
2638
|
// src/MenuRoot/MenuRoot.tsx
|
|
2605
2639
|
var import_react10 = __toESM(require("react"));
|
|
2606
|
-
var
|
|
2640
|
+
var import_styled_components11 = __toESM(require("styled-components"));
|
|
2607
2641
|
var import_seeds_react_popout = require("@sproutsocial/seeds-react-popout");
|
|
2608
2642
|
var import_seeds_react_utilities = require("@sproutsocial/seeds-react-utilities");
|
|
2609
2643
|
|
|
@@ -2611,8 +2645,8 @@ var import_seeds_react_utilities = require("@sproutsocial/seeds-react-utilities"
|
|
|
2611
2645
|
var MOTION_DURATION_FAST = 0.15;
|
|
2612
2646
|
|
|
2613
2647
|
// src/MenuRoot/MenuRoot.tsx
|
|
2614
|
-
var
|
|
2615
|
-
var CustomPopoutContent = (0,
|
|
2648
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
2649
|
+
var CustomPopoutContent = (0, import_styled_components11.default)(import_seeds_react_popout.Popout.Content)`
|
|
2616
2650
|
padding: 0;
|
|
2617
2651
|
margin-left: 0;
|
|
2618
2652
|
margin-right: 0;
|
|
@@ -2660,12 +2694,12 @@ var MenuPopout = ({
|
|
|
2660
2694
|
},
|
|
2661
2695
|
[openMenu, closeMenu]
|
|
2662
2696
|
);
|
|
2663
|
-
return /* @__PURE__ */ (0,
|
|
2697
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2664
2698
|
import_seeds_react_popout.Popout,
|
|
2665
2699
|
{
|
|
2666
2700
|
isOpen: !!isOpen,
|
|
2667
2701
|
setIsOpen,
|
|
2668
|
-
content: (props) => /* @__PURE__ */ (0,
|
|
2702
|
+
content: (props) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(CustomPopoutContent, { width: popoutProps.fullWidth ? "initial" : width2, children: typeof content === "function" ? content(props) : content }),
|
|
2669
2703
|
focusLockProps: {
|
|
2670
2704
|
// correct jerking motion when scrolling while the Popout is open
|
|
2671
2705
|
// returnFocus: false,
|
|
@@ -2690,9 +2724,8 @@ var MenuRoot = ({
|
|
|
2690
2724
|
openMenu,
|
|
2691
2725
|
closeMenu,
|
|
2692
2726
|
inputValue,
|
|
2693
|
-
|
|
2694
|
-
|
|
2695
|
-
getMenuProps
|
|
2727
|
+
getMenuProps,
|
|
2728
|
+
autoCloseOnEmpty = false
|
|
2696
2729
|
} = contextProps;
|
|
2697
2730
|
const toggleElementRef = import_react10.default.useRef(null);
|
|
2698
2731
|
const [finalWidth, setFinalWidth] = import_react10.default.useState();
|
|
@@ -2709,17 +2742,23 @@ var MenuRoot = ({
|
|
|
2709
2742
|
}, [width2, toggleElementRef.current?.offsetWidth]);
|
|
2710
2743
|
const menuContext = useMenu(contextProps);
|
|
2711
2744
|
getMenuProps?.({}, { suppressRefError: true });
|
|
2712
|
-
|
|
2745
|
+
(0, import_react10.useEffect)(() => {
|
|
2746
|
+
if (!inputValue || !autoCloseOnEmpty) return;
|
|
2747
|
+
if (!menuContext.hasVisibleItems && isOpen) {
|
|
2748
|
+
closeMenu?.();
|
|
2749
|
+
}
|
|
2750
|
+
}, [menuContext.hasVisibleItems, isOpen, inputValue, autoCloseOnEmpty]);
|
|
2751
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2713
2752
|
MenuPopout,
|
|
2714
2753
|
{
|
|
2715
2754
|
placement,
|
|
2716
2755
|
isOpen: !!isOpen,
|
|
2717
2756
|
openMenu,
|
|
2718
2757
|
closeMenu,
|
|
2719
|
-
content: /* @__PURE__ */ (0,
|
|
2758
|
+
content: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MenuContentProvider, { menuContext, children }),
|
|
2720
2759
|
width: finalWidth,
|
|
2721
2760
|
...popoutProps,
|
|
2722
|
-
children: (toggleProps) => /* @__PURE__ */ (0,
|
|
2761
|
+
children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
2723
2762
|
MenuToggleProvider,
|
|
2724
2763
|
{
|
|
2725
2764
|
menuContext: {
|
|
@@ -2740,7 +2779,7 @@ var MenuRoot = ({
|
|
|
2740
2779
|
// src/MenuLabel.tsx
|
|
2741
2780
|
var import_react11 = require("react");
|
|
2742
2781
|
var import_seeds_react_label = require("@sproutsocial/seeds-react-label");
|
|
2743
|
-
var
|
|
2782
|
+
var import_jsx_runtime12 = (
|
|
2744
2783
|
// This fallback id should never be used, but it is here to satisfy TypeScript since getLabelProps could be undefined.
|
|
2745
2784
|
require("react/jsx-runtime")
|
|
2746
2785
|
);
|
|
@@ -2750,7 +2789,7 @@ var MenuLabel = ({
|
|
|
2750
2789
|
...rest
|
|
2751
2790
|
}) => {
|
|
2752
2791
|
const { getLabelProps } = useMenuToggleContext();
|
|
2753
|
-
return /* @__PURE__ */ (0,
|
|
2792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2754
2793
|
import_seeds_react_label.Label,
|
|
2755
2794
|
{
|
|
2756
2795
|
htmlFor: "fallback_menu_label",
|
|
@@ -2764,10 +2803,10 @@ var MenuLabel = ({
|
|
|
2764
2803
|
|
|
2765
2804
|
// src/MenuToggleButton/MenuToggleButton.tsx
|
|
2766
2805
|
var import_seeds_react_button = require("@sproutsocial/seeds-react-button");
|
|
2767
|
-
var
|
|
2806
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
2768
2807
|
var MenuToggleButton = (props) => {
|
|
2769
2808
|
const { getToggleButtonProps, isListbox, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
|
|
2770
|
-
return /* @__PURE__ */ (0,
|
|
2809
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
2771
2810
|
import_seeds_react_button.Button,
|
|
2772
2811
|
{
|
|
2773
2812
|
appearance: "secondary",
|
|
@@ -2827,7 +2866,7 @@ var useItemFiltering = ({
|
|
|
2827
2866
|
};
|
|
2828
2867
|
|
|
2829
2868
|
// src/MenuSearchInput/MenuSearchInput.tsx
|
|
2830
|
-
var
|
|
2869
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
2831
2870
|
var MenuSearchInput = ({
|
|
2832
2871
|
getIsItemVisible,
|
|
2833
2872
|
inputProps,
|
|
@@ -2857,7 +2896,7 @@ var MenuSearchInput = ({
|
|
|
2857
2896
|
},
|
|
2858
2897
|
[toggleButtonProps.onKeyDown]
|
|
2859
2898
|
);
|
|
2860
|
-
return /* @__PURE__ */ (0,
|
|
2899
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2861
2900
|
import_seeds_react_input.Input,
|
|
2862
2901
|
{
|
|
2863
2902
|
onChange: (e, value) => {
|
|
@@ -2878,10 +2917,10 @@ var MenuSearchInput = ({
|
|
|
2878
2917
|
|
|
2879
2918
|
// src/MenuTokenInput.tsx
|
|
2880
2919
|
var import_react14 = __toESM(require("react"));
|
|
2881
|
-
var
|
|
2920
|
+
var import_styled_components12 = __toESM(require("styled-components"));
|
|
2882
2921
|
var import_seeds_react_token_input = require("@sproutsocial/seeds-react-token-input");
|
|
2883
|
-
var
|
|
2884
|
-
var StyledTokenInputWrapper =
|
|
2922
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
2923
|
+
var StyledTokenInputWrapper = import_styled_components12.default.div`
|
|
2885
2924
|
> div {
|
|
2886
2925
|
padding: 4px;
|
|
2887
2926
|
}
|
|
@@ -2915,7 +2954,7 @@ var MenuTokenInput = ({
|
|
|
2915
2954
|
const tokenToRemove = selectedItems?.find((item) => item.id === tokenId);
|
|
2916
2955
|
tokenToRemove && removeSelectedItem?.(tokenToRemove);
|
|
2917
2956
|
};
|
|
2918
|
-
return /* @__PURE__ */ (0,
|
|
2957
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StyledTokenInputWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2919
2958
|
import_seeds_react_token_input.TokenInput,
|
|
2920
2959
|
{
|
|
2921
2960
|
onKeyDown: (e, value) => {
|
|
@@ -2965,7 +3004,7 @@ var MenuTokenInput = ({
|
|
|
2965
3004
|
|
|
2966
3005
|
// src/MenuSearchTokenInput/MenuSearchTokenInput.tsx
|
|
2967
3006
|
var import_react15 = __toESM(require("react"));
|
|
2968
|
-
var
|
|
3007
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
2969
3008
|
var MenuSearchTokenInput = ({
|
|
2970
3009
|
getIsItemVisible,
|
|
2971
3010
|
getTokenProps,
|
|
@@ -3013,7 +3052,7 @@ var MenuSearchTokenInput = ({
|
|
|
3013
3052
|
},
|
|
3014
3053
|
[toggleButtonProps.onKeyDown]
|
|
3015
3054
|
);
|
|
3016
|
-
return /* @__PURE__ */ (0,
|
|
3055
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3017
3056
|
MenuTokenInput,
|
|
3018
3057
|
{
|
|
3019
3058
|
onChange: (e, value2) => {
|
|
@@ -3038,7 +3077,7 @@ var import_react16 = __toESM(require("react"));
|
|
|
3038
3077
|
var import_seeds_react_icon2 = require("@sproutsocial/seeds-react-icon");
|
|
3039
3078
|
var import_seeds_react_box3 = require("@sproutsocial/seeds-react-box");
|
|
3040
3079
|
var import_seeds_react_utilities2 = require("@sproutsocial/seeds-react-utilities");
|
|
3041
|
-
var
|
|
3080
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
3042
3081
|
var SubmenuItemTrigger = ({
|
|
3043
3082
|
id,
|
|
3044
3083
|
children,
|
|
@@ -3047,7 +3086,7 @@ var SubmenuItemTrigger = ({
|
|
|
3047
3086
|
}) => {
|
|
3048
3087
|
const { getToggleButtonProps, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
|
|
3049
3088
|
const toggleRef = ref && innerRef ? (0, import_seeds_react_utilities2.mergeRefs)([ref, innerRef].filter(Boolean)) : ref || innerRef;
|
|
3050
|
-
return /* @__PURE__ */ (0,
|
|
3089
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3051
3090
|
MenuItem,
|
|
3052
3091
|
{
|
|
3053
3092
|
...rest,
|
|
@@ -3064,9 +3103,9 @@ var SubmenuItemTrigger = ({
|
|
|
3064
3103
|
{ suppressRefError: true }
|
|
3065
3104
|
),
|
|
3066
3105
|
id,
|
|
3067
|
-
children: /* @__PURE__ */ (0,
|
|
3106
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_seeds_react_box3.Box, { display: "flex", justifyContent: "space-between", children: [
|
|
3068
3107
|
children,
|
|
3069
|
-
/* @__PURE__ */ (0,
|
|
3108
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(MenuItemActionRight, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_seeds_react_icon2.Icon, { name: "chevron-right-outline" }) })
|
|
3070
3109
|
] })
|
|
3071
3110
|
}
|
|
3072
3111
|
);
|
|
@@ -3176,7 +3215,7 @@ var SubmenuItem = ({
|
|
|
3176
3215
|
};
|
|
3177
3216
|
}
|
|
3178
3217
|
}, [document, onSubmenuKeydown]);
|
|
3179
|
-
const subMenuContent = /* @__PURE__ */ (0,
|
|
3218
|
+
const subMenuContent = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3180
3219
|
"div",
|
|
3181
3220
|
{
|
|
3182
3221
|
ref: submenuRef,
|
|
@@ -3187,13 +3226,13 @@ var SubmenuItem = ({
|
|
|
3187
3226
|
children: menuContent
|
|
3188
3227
|
}
|
|
3189
3228
|
);
|
|
3190
|
-
return /* @__PURE__ */ (0,
|
|
3229
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3191
3230
|
MenuComponent,
|
|
3192
3231
|
{
|
|
3193
3232
|
...{
|
|
3194
3233
|
...menuProps,
|
|
3195
3234
|
children: subMenuContent,
|
|
3196
|
-
menuToggleElement: /* @__PURE__ */ (0,
|
|
3235
|
+
menuToggleElement: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3197
3236
|
SubmenuItemTrigger,
|
|
3198
3237
|
{
|
|
3199
3238
|
innerRef: submenuItemRef,
|
|
@@ -3225,28 +3264,28 @@ var SubmenuItem = ({
|
|
|
3225
3264
|
SubmenuItem.__MENU_PRIMITIVE_TYPE = "MenuItem";
|
|
3226
3265
|
|
|
3227
3266
|
// src/ListboxToggleButton.tsx
|
|
3228
|
-
var
|
|
3267
|
+
var import_styled_components13 = __toESM(require("styled-components"));
|
|
3229
3268
|
var import_seeds_react_icon3 = require("@sproutsocial/seeds-react-icon");
|
|
3230
|
-
var
|
|
3231
|
-
var StyledListboxToggleButton = (0,
|
|
3269
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3270
|
+
var StyledListboxToggleButton = (0, import_styled_components13.default)(
|
|
3232
3271
|
MenuToggleButton
|
|
3233
3272
|
)`
|
|
3234
|
-
${(props) => props.invalid &&
|
|
3273
|
+
${(props) => props.invalid && import_styled_components13.css`
|
|
3235
3274
|
border-color: ${(props2) => props2.theme.colors.form.border.error};
|
|
3236
3275
|
`}
|
|
3237
3276
|
`;
|
|
3238
|
-
var StyledChevron =
|
|
3277
|
+
var StyledChevron = import_styled_components13.default.div`
|
|
3239
3278
|
margin-left: ${({ theme: theme2 }) => theme2.space[300]};
|
|
3240
3279
|
${({ $isOpen }) => $isOpen && `
|
|
3241
3280
|
transform: rotate(-180deg);
|
|
3242
3281
|
`}
|
|
3243
3282
|
transition: transform 0.15s;
|
|
3244
3283
|
|
|
3245
|
-
${({ invalid }) => invalid &&
|
|
3284
|
+
${({ invalid }) => invalid && import_styled_components13.css`
|
|
3246
3285
|
color: ${(props) => props.theme.colors.icon.error};
|
|
3247
3286
|
`}
|
|
3248
3287
|
`;
|
|
3249
|
-
var StyledInnerButton =
|
|
3288
|
+
var StyledInnerButton = import_styled_components13.default.div`
|
|
3250
3289
|
display: flex;
|
|
3251
3290
|
justify-content: space-between;
|
|
3252
3291
|
`;
|
|
@@ -3255,9 +3294,9 @@ var ListboxToggleButton = ({
|
|
|
3255
3294
|
...buttonProps
|
|
3256
3295
|
}) => {
|
|
3257
3296
|
const { isOpen } = useMenuToggleContext();
|
|
3258
|
-
return /* @__PURE__ */ (0,
|
|
3297
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StyledListboxToggleButton, { appearance: "secondary", ...buttonProps, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(StyledInnerButton, { children: [
|
|
3259
3298
|
children,
|
|
3260
|
-
/* @__PURE__ */ (0,
|
|
3299
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StyledChevron, { $isOpen: isOpen, invalid: buttonProps.invalid, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_seeds_react_icon3.Icon, { name: "chevron-down-outline", fixedWidth: true, "aria-hidden": true }) })
|
|
3261
3300
|
] }) });
|
|
3262
3301
|
};
|
|
3263
3302
|
|
|
@@ -3426,7 +3465,7 @@ var useDownshiftDefaults = ({
|
|
|
3426
3465
|
};
|
|
3427
3466
|
|
|
3428
3467
|
// src/ActionMenu/ActionMenu.tsx
|
|
3429
|
-
var
|
|
3468
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
3430
3469
|
var handleStateChange = (changes, currentSelectedItem) => {
|
|
3431
3470
|
if (!(changes.type === import_downshift3.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter || changes.type === import_downshift3.useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton)) {
|
|
3432
3471
|
return;
|
|
@@ -3489,7 +3528,7 @@ var ActionMenu = ({
|
|
|
3489
3528
|
(0, import_react18.useEffect)(() => {
|
|
3490
3529
|
setCurrentSelectedItem(useSelectReturnProps.selectedItem);
|
|
3491
3530
|
}, [useSelectReturnProps.selectedItem]);
|
|
3492
|
-
return /* @__PURE__ */ (0,
|
|
3531
|
+
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3493
3532
|
MenuRootComponent,
|
|
3494
3533
|
{
|
|
3495
3534
|
...{
|
|
@@ -3510,7 +3549,7 @@ var ActionMenu = ({
|
|
|
3510
3549
|
// src/SingleSelectMenu/SingleSelectMenu.tsx
|
|
3511
3550
|
var import_react19 = require("react");
|
|
3512
3551
|
var import_downshift4 = require("downshift");
|
|
3513
|
-
var
|
|
3552
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
3514
3553
|
var SingleSelectMenu = ({
|
|
3515
3554
|
children: childrenProp,
|
|
3516
3555
|
stateReducer: externalStateReducer,
|
|
@@ -3537,7 +3576,7 @@ var SingleSelectMenu = ({
|
|
|
3537
3576
|
),
|
|
3538
3577
|
...useSelectProps
|
|
3539
3578
|
});
|
|
3540
|
-
return /* @__PURE__ */ (0,
|
|
3579
|
+
return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3541
3580
|
MenuRootComponent,
|
|
3542
3581
|
{
|
|
3543
3582
|
...{
|
|
@@ -3558,7 +3597,7 @@ var SingleSelectMenu = ({
|
|
|
3558
3597
|
// src/MultiSelectMenu/MultiSelectMenu.tsx
|
|
3559
3598
|
var import_react20 = require("react");
|
|
3560
3599
|
var import_downshift5 = require("downshift");
|
|
3561
|
-
var
|
|
3600
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
3562
3601
|
var MultiSelectMenu = ({
|
|
3563
3602
|
children: childrenProp,
|
|
3564
3603
|
menuItems,
|
|
@@ -3631,7 +3670,7 @@ var MultiSelectMenu = ({
|
|
|
3631
3670
|
},
|
|
3632
3671
|
...useSelectProps
|
|
3633
3672
|
});
|
|
3634
|
-
return /* @__PURE__ */ (0,
|
|
3673
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3635
3674
|
MenuRootComponent,
|
|
3636
3675
|
{
|
|
3637
3676
|
...{
|
|
@@ -3662,9 +3701,9 @@ var MultiSelectMenu = ({
|
|
|
3662
3701
|
var import_react23 = require("react");
|
|
3663
3702
|
|
|
3664
3703
|
// src/Autocomplete/SingleAutocomplete.tsx
|
|
3665
|
-
var import_react21 =
|
|
3704
|
+
var import_react21 = require("react");
|
|
3666
3705
|
var import_downshift6 = require("downshift");
|
|
3667
|
-
var
|
|
3706
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3668
3707
|
var SingleAutocomplete = ({
|
|
3669
3708
|
children: childrenProp,
|
|
3670
3709
|
stateReducer: externalStateReducer,
|
|
@@ -3700,13 +3739,8 @@ var SingleAutocomplete = ({
|
|
|
3700
3739
|
...useComboboxProps
|
|
3701
3740
|
});
|
|
3702
3741
|
const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
|
|
3703
|
-
|
|
3704
|
-
|
|
3705
|
-
if (allMenuItems && hiddenItemsCount >= allMenuItems.length && isOpen) {
|
|
3706
|
-
closeMenu?.();
|
|
3707
|
-
}
|
|
3708
|
-
}, [hiddenItemsCount, allMenuItems?.length, isOpen, inputValue]);
|
|
3709
|
-
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3742
|
+
const { popoutProps: userPopoutProps } = useComboboxProps;
|
|
3743
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
3710
3744
|
MenuRootComponent,
|
|
3711
3745
|
{
|
|
3712
3746
|
...{
|
|
@@ -3718,8 +3752,10 @@ var SingleAutocomplete = ({
|
|
|
3718
3752
|
...downshiftDefaults
|
|
3719
3753
|
},
|
|
3720
3754
|
popoutProps: {
|
|
3721
|
-
focusOnContent: false
|
|
3755
|
+
focusOnContent: false,
|
|
3756
|
+
...userPopoutProps
|
|
3722
3757
|
},
|
|
3758
|
+
autoCloseOnEmpty: true,
|
|
3723
3759
|
children
|
|
3724
3760
|
}
|
|
3725
3761
|
);
|
|
@@ -3728,7 +3764,7 @@ var SingleAutocomplete = ({
|
|
|
3728
3764
|
// src/Autocomplete/MultiAutocomplete.tsx
|
|
3729
3765
|
var import_react22 = __toESM(require("react"));
|
|
3730
3766
|
var import_downshift7 = require("downshift");
|
|
3731
|
-
var
|
|
3767
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3732
3768
|
var MultiAutocomplete = ({
|
|
3733
3769
|
children: childrenProp,
|
|
3734
3770
|
stateReducer: externalStateReducer,
|
|
@@ -3835,13 +3871,14 @@ var MultiAutocomplete = ({
|
|
|
3835
3871
|
...useComboboxProps
|
|
3836
3872
|
});
|
|
3837
3873
|
const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
|
|
3874
|
+
const { popoutProps: userPopoutProps } = useComboboxProps;
|
|
3838
3875
|
import_react22.default.useEffect(() => {
|
|
3839
3876
|
if (!inputValue) return;
|
|
3840
3877
|
if (allMenuItems && hiddenItemsCount >= allMenuItems.length && isOpen) {
|
|
3841
3878
|
closeMenu?.();
|
|
3842
3879
|
}
|
|
3843
3880
|
}, [hiddenItemsCount, allMenuItems?.length, isOpen, inputValue]);
|
|
3844
|
-
return /* @__PURE__ */ (0,
|
|
3881
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3845
3882
|
MenuRootComponent,
|
|
3846
3883
|
{
|
|
3847
3884
|
...{
|
|
@@ -3860,29 +3897,31 @@ var MultiAutocomplete = ({
|
|
|
3860
3897
|
...downshiftDefaults
|
|
3861
3898
|
},
|
|
3862
3899
|
popoutProps: {
|
|
3863
|
-
focusOnContent: false
|
|
3900
|
+
focusOnContent: false,
|
|
3901
|
+
...userPopoutProps
|
|
3864
3902
|
},
|
|
3903
|
+
autoCloseOnEmpty: true,
|
|
3865
3904
|
children
|
|
3866
3905
|
}
|
|
3867
3906
|
);
|
|
3868
3907
|
};
|
|
3869
3908
|
|
|
3870
3909
|
// src/Autocomplete/Autocomplete.tsx
|
|
3871
|
-
var
|
|
3910
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
3872
3911
|
var Autocomplete = ({
|
|
3873
3912
|
multiSelect = false,
|
|
3874
3913
|
...rest
|
|
3875
3914
|
}) => {
|
|
3876
3915
|
if (multiSelect) {
|
|
3877
|
-
return /* @__PURE__ */ (0,
|
|
3916
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MultiAutocomplete, { ...rest });
|
|
3878
3917
|
}
|
|
3879
|
-
return /* @__PURE__ */ (0,
|
|
3918
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SingleAutocomplete, { ...rest });
|
|
3880
3919
|
};
|
|
3881
3920
|
|
|
3882
3921
|
// src/Autocomplete/AutocompleteInput.tsx
|
|
3883
3922
|
var import_react24 = require("react");
|
|
3884
3923
|
var import_seeds_react_input2 = require("@sproutsocial/seeds-react-input");
|
|
3885
|
-
var
|
|
3924
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
3886
3925
|
var AutocompleteInput = ({
|
|
3887
3926
|
onKeyDown,
|
|
3888
3927
|
onChange,
|
|
@@ -3893,7 +3932,7 @@ var AutocompleteInput = ({
|
|
|
3893
3932
|
...rest
|
|
3894
3933
|
}) => {
|
|
3895
3934
|
const { getInputComponentProps, inputValue, ref, ariaProps } = useMenuToggleContext();
|
|
3896
|
-
return /* @__PURE__ */ (0,
|
|
3935
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
3897
3936
|
import_seeds_react_input2.Input,
|
|
3898
3937
|
{
|
|
3899
3938
|
id: "autocomplete_input",
|
|
@@ -3919,7 +3958,7 @@ var AutocompleteInput = ({
|
|
|
3919
3958
|
|
|
3920
3959
|
// src/Autocomplete/AutocompleteTokenInput.tsx
|
|
3921
3960
|
var import_react25 = require("react");
|
|
3922
|
-
var
|
|
3961
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
3923
3962
|
var AutocompleteTokenInput = ({
|
|
3924
3963
|
onKeyDown,
|
|
3925
3964
|
onChange,
|
|
@@ -3938,7 +3977,7 @@ var AutocompleteTokenInput = ({
|
|
|
3938
3977
|
ref,
|
|
3939
3978
|
ariaProps
|
|
3940
3979
|
} = useMenuToggleContext();
|
|
3941
|
-
return /* @__PURE__ */ (0,
|
|
3980
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3942
3981
|
MenuTokenInput,
|
|
3943
3982
|
{
|
|
3944
3983
|
id: "autocomplete_input",
|
|
@@ -3963,19 +4002,19 @@ var AutocompleteTokenInput = ({
|
|
|
3963
4002
|
// src/Autocomplete/AutocompleteSelect.tsx
|
|
3964
4003
|
var import_seeds_react_icon4 = __toESM(require("@sproutsocial/seeds-react-icon"));
|
|
3965
4004
|
var import_react26 = require("react");
|
|
3966
|
-
var
|
|
4005
|
+
var import_styled_components14 = __toESM(require("styled-components"));
|
|
3967
4006
|
var import_seeds_react_input3 = require("@sproutsocial/seeds-react-input");
|
|
3968
|
-
var
|
|
3969
|
-
var StyledAutocompleteInput = (0,
|
|
4007
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
4008
|
+
var StyledAutocompleteInput = (0, import_styled_components14.default)(AutocompleteInput)`
|
|
3970
4009
|
${import_seeds_react_input3.Accessory} {
|
|
3971
4010
|
pointer-events: none;
|
|
3972
4011
|
}
|
|
3973
4012
|
`;
|
|
3974
4013
|
var AutocompleteSelect = (props) => {
|
|
3975
|
-
return /* @__PURE__ */ (0,
|
|
4014
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
3976
4015
|
StyledAutocompleteInput,
|
|
3977
4016
|
{
|
|
3978
|
-
elemAfter: /* @__PURE__ */ (0,
|
|
4017
|
+
elemAfter: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_seeds_react_icon4.default, { name: "chevron-down" }),
|
|
3979
4018
|
...props
|
|
3980
4019
|
}
|
|
3981
4020
|
);
|
|
@@ -4012,7 +4051,7 @@ var nestedMenuStateReducer = (_state, actionAndChanges) => {
|
|
|
4012
4051
|
|
|
4013
4052
|
// src/NestedMenu/NestedMenuContext.tsx
|
|
4014
4053
|
var import_react27 = require("react");
|
|
4015
|
-
var
|
|
4054
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
4016
4055
|
var defaultNestedMenuContext = {
|
|
4017
4056
|
selectedMenuPath: [],
|
|
4018
4057
|
setSelectedMenuId: () => {
|
|
@@ -4036,7 +4075,7 @@ var NestedMenuProvider = ({
|
|
|
4036
4075
|
children,
|
|
4037
4076
|
...nestedMenuProps
|
|
4038
4077
|
}) => {
|
|
4039
|
-
return /* @__PURE__ */ (0,
|
|
4078
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(NestedMenuContext.Provider, { value: nestedMenuProps, children });
|
|
4040
4079
|
};
|
|
4041
4080
|
var useNestedMenuContext = () => {
|
|
4042
4081
|
const nestedMenuContextValue = (0, import_react27.useContext)(NestedMenuContext);
|
|
@@ -4055,7 +4094,7 @@ var import_seeds_react_utilities3 = require("@sproutsocial/seeds-react-utilities
|
|
|
4055
4094
|
// src/NestedMenu/NestedMenuItem.tsx
|
|
4056
4095
|
var import_seeds_react_icon5 = require("@sproutsocial/seeds-react-icon");
|
|
4057
4096
|
var import_seeds_react_box4 = require("@sproutsocial/seeds-react-box");
|
|
4058
|
-
var
|
|
4097
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
4059
4098
|
var NestedMenuItem = ({
|
|
4060
4099
|
children,
|
|
4061
4100
|
childMenuId,
|
|
@@ -4071,15 +4110,15 @@ var NestedMenuItem = ({
|
|
|
4071
4110
|
}
|
|
4072
4111
|
}
|
|
4073
4112
|
} : {};
|
|
4074
|
-
return /* @__PURE__ */ (0,
|
|
4113
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenuItem, { ...onClickProps, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_seeds_react_box4.Box, { display: "flex", justifyContent: "space-between", children: [
|
|
4075
4114
|
children,
|
|
4076
|
-
childMenuId && /* @__PURE__ */ (0,
|
|
4115
|
+
childMenuId && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(MenuItemActionRight, { children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_seeds_react_icon5.Icon, { name: "arrow-right-outline" }) })
|
|
4077
4116
|
] }) });
|
|
4078
4117
|
};
|
|
4079
4118
|
NestedMenuItem.__MENU_PRIMITIVE_TYPE = "MenuItem";
|
|
4080
4119
|
|
|
4081
4120
|
// src/NestedMenu/NestedMenuContent.tsx
|
|
4082
|
-
var
|
|
4121
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
4083
4122
|
var NestedMenuContent = ({
|
|
4084
4123
|
innerRef: innerRefProp = null,
|
|
4085
4124
|
onKeyDown: onKeyDownProp,
|
|
@@ -4116,7 +4155,7 @@ var NestedMenuContent = ({
|
|
|
4116
4155
|
break;
|
|
4117
4156
|
}
|
|
4118
4157
|
};
|
|
4119
|
-
return /* @__PURE__ */ (0,
|
|
4158
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
4120
4159
|
MenuContent,
|
|
4121
4160
|
{
|
|
4122
4161
|
onKeyDown,
|
|
@@ -4132,17 +4171,17 @@ NestedMenuContent.__MENU_PRIMITIVE_TYPE = "MenuContent";
|
|
|
4132
4171
|
var import_seeds_react_button2 = require("@sproutsocial/seeds-react-button");
|
|
4133
4172
|
var import_seeds_react_icon6 = require("@sproutsocial/seeds-react-icon");
|
|
4134
4173
|
var import_react29 = require("motion/react");
|
|
4135
|
-
var
|
|
4174
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
4136
4175
|
var NestedMenuHeader = ({
|
|
4137
4176
|
backArrowLabel,
|
|
4138
4177
|
...props
|
|
4139
4178
|
}) => {
|
|
4140
4179
|
const { goBack, selectedMenuPath, animationSpeed } = useNestedMenuContext();
|
|
4141
4180
|
const showBackArrow = selectedMenuPath.length > 1;
|
|
4142
|
-
return /* @__PURE__ */ (0,
|
|
4181
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4143
4182
|
MenuHeader,
|
|
4144
4183
|
{
|
|
4145
|
-
leftAction: /* @__PURE__ */ (0,
|
|
4184
|
+
leftAction: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react29.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
4146
4185
|
import_react29.motion.div,
|
|
4147
4186
|
{
|
|
4148
4187
|
initial: { opacity: 0 },
|
|
@@ -4151,7 +4190,7 @@ var NestedMenuHeader = ({
|
|
|
4151
4190
|
opacity: 0,
|
|
4152
4191
|
transition: { duration: animationSpeed }
|
|
4153
4192
|
},
|
|
4154
|
-
children: showBackArrow ? /* @__PURE__ */ (0,
|
|
4193
|
+
children: showBackArrow ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_seeds_react_button2.Button, { onClick: goBack, ariaLabel: backArrowLabel, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_seeds_react_icon6.Icon, { name: "arrow-left" }) }) : void 0
|
|
4155
4194
|
},
|
|
4156
4195
|
`${selectedMenuPath}-header--button`
|
|
4157
4196
|
) }),
|
|
@@ -4162,7 +4201,7 @@ var NestedMenuHeader = ({
|
|
|
4162
4201
|
|
|
4163
4202
|
// src/NestedMenu/NestedMenuRoot.tsx
|
|
4164
4203
|
var import_react30 = __toESM(require("react"));
|
|
4165
|
-
var
|
|
4204
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
4166
4205
|
var NestedMenuRoot = ({
|
|
4167
4206
|
children,
|
|
4168
4207
|
menuToggleElement,
|
|
@@ -4177,14 +4216,14 @@ var NestedMenuRoot = ({
|
|
|
4177
4216
|
menuContext.selectedItem,
|
|
4178
4217
|
menuContext.selectedItems?.length
|
|
4179
4218
|
]);
|
|
4180
|
-
return /* @__PURE__ */ (0,
|
|
4219
|
+
return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(MenuContentProvider, { menuContext, children });
|
|
4181
4220
|
};
|
|
4182
4221
|
|
|
4183
4222
|
// src/NestedMenu/NestedMenuPopout.tsx
|
|
4184
4223
|
var import_react31 = require("motion/react");
|
|
4185
|
-
var
|
|
4186
|
-
var
|
|
4187
|
-
var StyledDiv = (0,
|
|
4224
|
+
var import_styled_components15 = __toESM(require("styled-components"));
|
|
4225
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
4226
|
+
var StyledDiv = (0, import_styled_components15.default)(import_react31.motion.div)`
|
|
4188
4227
|
overflow: hidden;
|
|
4189
4228
|
`;
|
|
4190
4229
|
var NestedMenuPopout = ({
|
|
@@ -4194,7 +4233,7 @@ var NestedMenuPopout = ({
|
|
|
4194
4233
|
...popoutProps
|
|
4195
4234
|
}) => {
|
|
4196
4235
|
const { activeMenuContext, rootMenuContextProps, resetSelectedMenuPath } = useNestedMenuContext();
|
|
4197
|
-
return /* @__PURE__ */ (0,
|
|
4236
|
+
return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4198
4237
|
MenuPopout,
|
|
4199
4238
|
{
|
|
4200
4239
|
...popoutProps,
|
|
@@ -4203,8 +4242,8 @@ var NestedMenuPopout = ({
|
|
|
4203
4242
|
openMenu: rootMenuContextProps.openMenu,
|
|
4204
4243
|
closeMenu: rootMenuContextProps.closeMenu,
|
|
4205
4244
|
width: width2,
|
|
4206
|
-
content: (props) => /* @__PURE__ */ (0,
|
|
4207
|
-
children: (toggleProps) => /* @__PURE__ */ (0,
|
|
4245
|
+
content: (props) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(StyledDiv, { layout: "position", children: typeof content === "function" ? content(props) : content }),
|
|
4246
|
+
children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
4208
4247
|
MenuToggleProvider,
|
|
4209
4248
|
{
|
|
4210
4249
|
menuContext: {
|
|
@@ -4220,7 +4259,7 @@ var NestedMenuPopout = ({
|
|
|
4220
4259
|
};
|
|
4221
4260
|
|
|
4222
4261
|
// src/NestedMenu/NestedMenu.tsx
|
|
4223
|
-
var
|
|
4262
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
4224
4263
|
var NestedMenu = ({
|
|
4225
4264
|
initialMenuId,
|
|
4226
4265
|
menus,
|
|
@@ -4374,7 +4413,7 @@ var NestedMenu = ({
|
|
|
4374
4413
|
initialIsOpen: true,
|
|
4375
4414
|
children: (
|
|
4376
4415
|
// Handles the smooth animating of the content
|
|
4377
|
-
/* @__PURE__ */ (0,
|
|
4416
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react33.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
4378
4417
|
import_react33.motion.div,
|
|
4379
4418
|
{
|
|
4380
4419
|
variants: contentVariants,
|
|
@@ -4383,7 +4422,7 @@ var NestedMenu = ({
|
|
|
4383
4422
|
exit: "leave",
|
|
4384
4423
|
custom: { isAdding, hasLoadedOnce },
|
|
4385
4424
|
children: [
|
|
4386
|
-
MenuHeaderComponent && /* @__PURE__ */ (0,
|
|
4425
|
+
MenuHeaderComponent && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4387
4426
|
MenuHeaderComponent,
|
|
4388
4427
|
{
|
|
4389
4428
|
backArrowLabel,
|
|
@@ -4391,7 +4430,7 @@ var NestedMenu = ({
|
|
|
4391
4430
|
}
|
|
4392
4431
|
),
|
|
4393
4432
|
children && children,
|
|
4394
|
-
menuItems && !children && /* @__PURE__ */ (0,
|
|
4433
|
+
menuItems && !children && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4395
4434
|
NestedMenuContent,
|
|
4396
4435
|
{
|
|
4397
4436
|
menuItems,
|
|
@@ -4405,7 +4444,7 @@ var NestedMenu = ({
|
|
|
4405
4444
|
),
|
|
4406
4445
|
...restMenuProps
|
|
4407
4446
|
};
|
|
4408
|
-
return /* @__PURE__ */ (0,
|
|
4447
|
+
return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4409
4448
|
NestedMenuProvider,
|
|
4410
4449
|
{
|
|
4411
4450
|
...{
|
|
@@ -4419,11 +4458,11 @@ var NestedMenu = ({
|
|
|
4419
4458
|
setActiveMenuContext,
|
|
4420
4459
|
animationSpeed
|
|
4421
4460
|
},
|
|
4422
|
-
children: /* @__PURE__ */ (0,
|
|
4461
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4423
4462
|
NestedMenuPopout,
|
|
4424
4463
|
{
|
|
4425
4464
|
content: MenuComponent && // Handles the rerender of the component
|
|
4426
|
-
/* @__PURE__ */ (0,
|
|
4465
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react33.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
|
|
4427
4466
|
import_react33.motion.div,
|
|
4428
4467
|
{
|
|
4429
4468
|
variants: menuVariants,
|
|
@@ -4431,7 +4470,7 @@ var NestedMenu = ({
|
|
|
4431
4470
|
animate: "enter",
|
|
4432
4471
|
exit: "leave",
|
|
4433
4472
|
custom: { isAdding, hasLoadedOnce },
|
|
4434
|
-
children: /* @__PURE__ */ (0,
|
|
4473
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(MenuComponent, { ...nestedMenuProps })
|
|
4435
4474
|
},
|
|
4436
4475
|
`${currentMenuId}-content`
|
|
4437
4476
|
) }),
|