@sproutsocial/seeds-react-menu 1.2.2 → 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/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 { getToggleButtonProps, getMenuProps, isListbox } = useMenuContentContext();
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, import_jsx_runtime6.jsx)(
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 import_styled_components6 = __toESM(require("styled-components"));
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, import_styled_components6.default)(import_seeds_react_box2.Box)`
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 import_jsx_runtime7 = require("react/jsx-runtime");
2456
+ var import_jsx_runtime8 = require("react/jsx-runtime");
2423
2457
  var MenuFooter = ({ children, ...rest }) => {
2424
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(StyledMenuFooterBox, { ...rest, children });
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 import_styled_components9 = __toESM(require("styled-components"));
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 import_jsx_runtime8 = require("react/jsx-runtime");
2472
+ var import_jsx_runtime9 = require("react/jsx-runtime");
2439
2473
  var import_react8 = require("react");
2440
- var Container = import_styled_components8.default.span`
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 && import_styled_components8.css`
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 && import_styled_components8.css`
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, import_styled_components7.default)(styles_default)`
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, import_styled_components7.default)(styles_default)`
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, import_styled_components7.default)(styles_default)`
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, import_styled_components7.default)(styles_default)`
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, import_styled_components7.default)(styles_default)`
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, import_styled_components7.default)(styles_default)`
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, import_styled_components7.default)(styles_default)`
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, import_jsx_runtime8.jsx)(
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, import_jsx_runtime8.jsx)(Component, { "data-qa-text": qaText, ...props, children });
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 = import_styled_components9.default.li`
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, import_styled_components9.default)(index_default.SmallSubHeadline)`
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 = import_styled_components9.default.ul`
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 import_jsx_runtime9 = require("react/jsx-runtime");
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, import_jsx_runtime9.jsxs)(
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, import_jsx_runtime9.jsx)(StyledTitle, { role: "heading", as: titleAs, id: titleId, children: title }),
2597
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(StyledMenuGroupUl, { children })
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 import_styled_components10 = __toESM(require("styled-components"));
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 import_jsx_runtime10 = require("react/jsx-runtime");
2615
- var CustomPopoutContent = (0, import_styled_components10.default)(import_seeds_react_popout.Popout.Content)`
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, import_jsx_runtime10.jsx)(
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, import_jsx_runtime10.jsx)(CustomPopoutContent, { width: popoutProps.fullWidth ? "initial" : width2, children: typeof content === "function" ? content(props) : content }),
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
- hiddenItemsCount = 0,
2694
- items,
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();
@@ -2707,25 +2740,25 @@ var MenuRoot = ({
2707
2740
  setFinalWidth(min_width);
2708
2741
  }
2709
2742
  }, [width2, toggleElementRef.current?.offsetWidth]);
2743
+ const menuContext = useMenu(contextProps);
2744
+ getMenuProps?.({}, { suppressRefError: true });
2710
2745
  (0, import_react10.useEffect)(() => {
2711
- if (!inputValue) return;
2712
- if (items && hiddenItemsCount >= items.length && isOpen) {
2746
+ if (!inputValue || !autoCloseOnEmpty) return;
2747
+ if (!menuContext.hasVisibleItems && isOpen) {
2713
2748
  closeMenu?.();
2714
2749
  }
2715
- }, [hiddenItemsCount, items?.length, isOpen, inputValue]);
2716
- const menuContext = useMenu(contextProps);
2717
- getMenuProps?.({}, { suppressRefError: true });
2718
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2750
+ }, [menuContext.hasVisibleItems, isOpen, inputValue, autoCloseOnEmpty]);
2751
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2719
2752
  MenuPopout,
2720
2753
  {
2721
2754
  placement,
2722
2755
  isOpen: !!isOpen,
2723
2756
  openMenu,
2724
2757
  closeMenu,
2725
- content: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(MenuContentProvider, { menuContext, children }),
2758
+ content: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(MenuContentProvider, { menuContext, children }),
2726
2759
  width: finalWidth,
2727
2760
  ...popoutProps,
2728
- children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2761
+ children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2729
2762
  MenuToggleProvider,
2730
2763
  {
2731
2764
  menuContext: {
@@ -2746,7 +2779,7 @@ var MenuRoot = ({
2746
2779
  // src/MenuLabel.tsx
2747
2780
  var import_react11 = require("react");
2748
2781
  var import_seeds_react_label = require("@sproutsocial/seeds-react-label");
2749
- var import_jsx_runtime11 = (
2782
+ var import_jsx_runtime12 = (
2750
2783
  // This fallback id should never be used, but it is here to satisfy TypeScript since getLabelProps could be undefined.
2751
2784
  require("react/jsx-runtime")
2752
2785
  );
@@ -2756,7 +2789,7 @@ var MenuLabel = ({
2756
2789
  ...rest
2757
2790
  }) => {
2758
2791
  const { getLabelProps } = useMenuToggleContext();
2759
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2792
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2760
2793
  import_seeds_react_label.Label,
2761
2794
  {
2762
2795
  htmlFor: "fallback_menu_label",
@@ -2770,10 +2803,10 @@ var MenuLabel = ({
2770
2803
 
2771
2804
  // src/MenuToggleButton/MenuToggleButton.tsx
2772
2805
  var import_seeds_react_button = require("@sproutsocial/seeds-react-button");
2773
- var import_jsx_runtime12 = require("react/jsx-runtime");
2806
+ var import_jsx_runtime13 = require("react/jsx-runtime");
2774
2807
  var MenuToggleButton = (props) => {
2775
2808
  const { getToggleButtonProps, isListbox, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
2776
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2809
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2777
2810
  import_seeds_react_button.Button,
2778
2811
  {
2779
2812
  appearance: "secondary",
@@ -2833,7 +2866,7 @@ var useItemFiltering = ({
2833
2866
  };
2834
2867
 
2835
2868
  // src/MenuSearchInput/MenuSearchInput.tsx
2836
- var import_jsx_runtime13 = require("react/jsx-runtime");
2869
+ var import_jsx_runtime14 = require("react/jsx-runtime");
2837
2870
  var MenuSearchInput = ({
2838
2871
  getIsItemVisible,
2839
2872
  inputProps,
@@ -2863,7 +2896,7 @@ var MenuSearchInput = ({
2863
2896
  },
2864
2897
  [toggleButtonProps.onKeyDown]
2865
2898
  );
2866
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2899
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2867
2900
  import_seeds_react_input.Input,
2868
2901
  {
2869
2902
  onChange: (e, value) => {
@@ -2884,10 +2917,10 @@ var MenuSearchInput = ({
2884
2917
 
2885
2918
  // src/MenuTokenInput.tsx
2886
2919
  var import_react14 = __toESM(require("react"));
2887
- var import_styled_components11 = __toESM(require("styled-components"));
2920
+ var import_styled_components12 = __toESM(require("styled-components"));
2888
2921
  var import_seeds_react_token_input = require("@sproutsocial/seeds-react-token-input");
2889
- var import_jsx_runtime14 = require("react/jsx-runtime");
2890
- var StyledTokenInputWrapper = import_styled_components11.default.div`
2922
+ var import_jsx_runtime15 = require("react/jsx-runtime");
2923
+ var StyledTokenInputWrapper = import_styled_components12.default.div`
2891
2924
  > div {
2892
2925
  padding: 4px;
2893
2926
  }
@@ -2921,7 +2954,7 @@ var MenuTokenInput = ({
2921
2954
  const tokenToRemove = selectedItems?.find((item) => item.id === tokenId);
2922
2955
  tokenToRemove && removeSelectedItem?.(tokenToRemove);
2923
2956
  };
2924
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(StyledTokenInputWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2957
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(StyledTokenInputWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2925
2958
  import_seeds_react_token_input.TokenInput,
2926
2959
  {
2927
2960
  onKeyDown: (e, value) => {
@@ -2971,7 +3004,7 @@ var MenuTokenInput = ({
2971
3004
 
2972
3005
  // src/MenuSearchTokenInput/MenuSearchTokenInput.tsx
2973
3006
  var import_react15 = __toESM(require("react"));
2974
- var import_jsx_runtime15 = require("react/jsx-runtime");
3007
+ var import_jsx_runtime16 = require("react/jsx-runtime");
2975
3008
  var MenuSearchTokenInput = ({
2976
3009
  getIsItemVisible,
2977
3010
  getTokenProps,
@@ -3019,7 +3052,7 @@ var MenuSearchTokenInput = ({
3019
3052
  },
3020
3053
  [toggleButtonProps.onKeyDown]
3021
3054
  );
3022
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3055
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3023
3056
  MenuTokenInput,
3024
3057
  {
3025
3058
  onChange: (e, value2) => {
@@ -3044,7 +3077,7 @@ var import_react16 = __toESM(require("react"));
3044
3077
  var import_seeds_react_icon2 = require("@sproutsocial/seeds-react-icon");
3045
3078
  var import_seeds_react_box3 = require("@sproutsocial/seeds-react-box");
3046
3079
  var import_seeds_react_utilities2 = require("@sproutsocial/seeds-react-utilities");
3047
- var import_jsx_runtime16 = require("react/jsx-runtime");
3080
+ var import_jsx_runtime17 = require("react/jsx-runtime");
3048
3081
  var SubmenuItemTrigger = ({
3049
3082
  id,
3050
3083
  children,
@@ -3053,7 +3086,7 @@ var SubmenuItemTrigger = ({
3053
3086
  }) => {
3054
3087
  const { getToggleButtonProps, getDropdownProps, ref, ariaProps } = useMenuToggleContext();
3055
3088
  const toggleRef = ref && innerRef ? (0, import_seeds_react_utilities2.mergeRefs)([ref, innerRef].filter(Boolean)) : ref || innerRef;
3056
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3089
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3057
3090
  MenuItem,
3058
3091
  {
3059
3092
  ...rest,
@@ -3070,9 +3103,9 @@ var SubmenuItemTrigger = ({
3070
3103
  { suppressRefError: true }
3071
3104
  ),
3072
3105
  id,
3073
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_seeds_react_box3.Box, { display: "flex", justifyContent: "space-between", children: [
3106
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(import_seeds_react_box3.Box, { display: "flex", justifyContent: "space-between", children: [
3074
3107
  children,
3075
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(MenuItemActionRight, { children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_seeds_react_icon2.Icon, { name: "chevron-right-outline" }) })
3108
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(MenuItemActionRight, { children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_seeds_react_icon2.Icon, { name: "chevron-right-outline" }) })
3076
3109
  ] })
3077
3110
  }
3078
3111
  );
@@ -3182,7 +3215,7 @@ var SubmenuItem = ({
3182
3215
  };
3183
3216
  }
3184
3217
  }, [document, onSubmenuKeydown]);
3185
- const subMenuContent = /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3218
+ const subMenuContent = /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3186
3219
  "div",
3187
3220
  {
3188
3221
  ref: submenuRef,
@@ -3193,13 +3226,13 @@ var SubmenuItem = ({
3193
3226
  children: menuContent
3194
3227
  }
3195
3228
  );
3196
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3229
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3197
3230
  MenuComponent,
3198
3231
  {
3199
3232
  ...{
3200
3233
  ...menuProps,
3201
3234
  children: subMenuContent,
3202
- menuToggleElement: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3235
+ menuToggleElement: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3203
3236
  SubmenuItemTrigger,
3204
3237
  {
3205
3238
  innerRef: submenuItemRef,
@@ -3231,28 +3264,28 @@ var SubmenuItem = ({
3231
3264
  SubmenuItem.__MENU_PRIMITIVE_TYPE = "MenuItem";
3232
3265
 
3233
3266
  // src/ListboxToggleButton.tsx
3234
- var import_styled_components12 = __toESM(require("styled-components"));
3267
+ var import_styled_components13 = __toESM(require("styled-components"));
3235
3268
  var import_seeds_react_icon3 = require("@sproutsocial/seeds-react-icon");
3236
- var import_jsx_runtime17 = require("react/jsx-runtime");
3237
- var StyledListboxToggleButton = (0, import_styled_components12.default)(
3269
+ var import_jsx_runtime18 = require("react/jsx-runtime");
3270
+ var StyledListboxToggleButton = (0, import_styled_components13.default)(
3238
3271
  MenuToggleButton
3239
3272
  )`
3240
- ${(props) => props.invalid && import_styled_components12.css`
3273
+ ${(props) => props.invalid && import_styled_components13.css`
3241
3274
  border-color: ${(props2) => props2.theme.colors.form.border.error};
3242
3275
  `}
3243
3276
  `;
3244
- var StyledChevron = import_styled_components12.default.div`
3277
+ var StyledChevron = import_styled_components13.default.div`
3245
3278
  margin-left: ${({ theme: theme2 }) => theme2.space[300]};
3246
3279
  ${({ $isOpen }) => $isOpen && `
3247
3280
  transform: rotate(-180deg);
3248
3281
  `}
3249
3282
  transition: transform 0.15s;
3250
3283
 
3251
- ${({ invalid }) => invalid && import_styled_components12.css`
3284
+ ${({ invalid }) => invalid && import_styled_components13.css`
3252
3285
  color: ${(props) => props.theme.colors.icon.error};
3253
3286
  `}
3254
3287
  `;
3255
- var StyledInnerButton = import_styled_components12.default.div`
3288
+ var StyledInnerButton = import_styled_components13.default.div`
3256
3289
  display: flex;
3257
3290
  justify-content: space-between;
3258
3291
  `;
@@ -3261,9 +3294,9 @@ var ListboxToggleButton = ({
3261
3294
  ...buttonProps
3262
3295
  }) => {
3263
3296
  const { isOpen } = useMenuToggleContext();
3264
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(StyledListboxToggleButton, { appearance: "secondary", ...buttonProps, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(StyledInnerButton, { children: [
3297
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(StyledListboxToggleButton, { appearance: "secondary", ...buttonProps, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(StyledInnerButton, { children: [
3265
3298
  children,
3266
- /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(StyledChevron, { $isOpen: isOpen, invalid: buttonProps.invalid, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_seeds_react_icon3.Icon, { name: "chevron-down-outline", fixedWidth: true, "aria-hidden": true }) })
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 }) })
3267
3300
  ] }) });
3268
3301
  };
3269
3302
 
@@ -3432,7 +3465,7 @@ var useDownshiftDefaults = ({
3432
3465
  };
3433
3466
 
3434
3467
  // src/ActionMenu/ActionMenu.tsx
3435
- var import_jsx_runtime18 = require("react/jsx-runtime");
3468
+ var import_jsx_runtime19 = require("react/jsx-runtime");
3436
3469
  var handleStateChange = (changes, currentSelectedItem) => {
3437
3470
  if (!(changes.type === import_downshift3.useSelect.stateChangeTypes.ToggleButtonKeyDownEnter || changes.type === import_downshift3.useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton)) {
3438
3471
  return;
@@ -3495,7 +3528,7 @@ var ActionMenu = ({
3495
3528
  (0, import_react18.useEffect)(() => {
3496
3529
  setCurrentSelectedItem(useSelectReturnProps.selectedItem);
3497
3530
  }, [useSelectReturnProps.selectedItem]);
3498
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3531
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3499
3532
  MenuRootComponent,
3500
3533
  {
3501
3534
  ...{
@@ -3516,7 +3549,7 @@ var ActionMenu = ({
3516
3549
  // src/SingleSelectMenu/SingleSelectMenu.tsx
3517
3550
  var import_react19 = require("react");
3518
3551
  var import_downshift4 = require("downshift");
3519
- var import_jsx_runtime19 = require("react/jsx-runtime");
3552
+ var import_jsx_runtime20 = require("react/jsx-runtime");
3520
3553
  var SingleSelectMenu = ({
3521
3554
  children: childrenProp,
3522
3555
  stateReducer: externalStateReducer,
@@ -3543,7 +3576,7 @@ var SingleSelectMenu = ({
3543
3576
  ),
3544
3577
  ...useSelectProps
3545
3578
  });
3546
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3579
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3547
3580
  MenuRootComponent,
3548
3581
  {
3549
3582
  ...{
@@ -3564,7 +3597,7 @@ var SingleSelectMenu = ({
3564
3597
  // src/MultiSelectMenu/MultiSelectMenu.tsx
3565
3598
  var import_react20 = require("react");
3566
3599
  var import_downshift5 = require("downshift");
3567
- var import_jsx_runtime20 = require("react/jsx-runtime");
3600
+ var import_jsx_runtime21 = require("react/jsx-runtime");
3568
3601
  var MultiSelectMenu = ({
3569
3602
  children: childrenProp,
3570
3603
  menuItems,
@@ -3637,7 +3670,7 @@ var MultiSelectMenu = ({
3637
3670
  },
3638
3671
  ...useSelectProps
3639
3672
  });
3640
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3673
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3641
3674
  MenuRootComponent,
3642
3675
  {
3643
3676
  ...{
@@ -3665,11 +3698,12 @@ var MultiSelectMenu = ({
3665
3698
  };
3666
3699
 
3667
3700
  // src/Autocomplete/Autocomplete.tsx
3668
- var import_react22 = require("react");
3701
+ var import_react23 = require("react");
3669
3702
 
3670
3703
  // src/Autocomplete/SingleAutocomplete.tsx
3704
+ var import_react21 = require("react");
3671
3705
  var import_downshift6 = require("downshift");
3672
- var import_jsx_runtime21 = require("react/jsx-runtime");
3706
+ var import_jsx_runtime22 = require("react/jsx-runtime");
3673
3707
  var SingleAutocomplete = ({
3674
3708
  children: childrenProp,
3675
3709
  stateReducer: externalStateReducer,
@@ -3685,14 +3719,15 @@ var SingleAutocomplete = ({
3685
3719
  menuItems,
3686
3720
  MenuItemComponent
3687
3721
  });
3688
- const { setHiddenItemsMap, defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({ isCombobox: true });
3722
+ const downshiftDefaults = useDownshiftDefaults({ isCombobox: true });
3723
+ const { setHiddenItemsMap, defaultDownshiftProps, hiddenItemsCount } = downshiftDefaults;
3689
3724
  const { updateFilteredItems } = useItemFiltering({
3690
3725
  allMenuItems,
3691
3726
  itemToString: itemToString2,
3692
3727
  getIsItemVisible,
3693
3728
  setHiddenItemsMap
3694
3729
  });
3695
- const { isOpen, ...useComboboxReturnProps } = (0, import_downshift6.useCombobox)({
3730
+ const useComboboxReturnProps = (0, import_downshift6.useCombobox)({
3696
3731
  ...defaultDownshiftProps.combobox,
3697
3732
  items: allMenuItems,
3698
3733
  itemToString: itemToString2,
@@ -3703,31 +3738,33 @@ var SingleAutocomplete = ({
3703
3738
  ),
3704
3739
  ...useComboboxProps
3705
3740
  });
3706
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3741
+ const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
3742
+ const { popoutProps: userPopoutProps } = useComboboxProps;
3743
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3707
3744
  MenuRootComponent,
3708
3745
  {
3709
3746
  ...{
3710
3747
  isListbox: true,
3711
3748
  items: allMenuItems,
3712
3749
  itemToString: itemToString2,
3713
- isOpen,
3714
- setHiddenItemsMap,
3715
3750
  ...useComboboxProps,
3716
3751
  ...useComboboxReturnProps,
3717
- ...restDefaults
3752
+ ...downshiftDefaults
3718
3753
  },
3719
3754
  popoutProps: {
3720
- focusOnContent: false
3755
+ focusOnContent: false,
3756
+ ...userPopoutProps
3721
3757
  },
3758
+ autoCloseOnEmpty: true,
3722
3759
  children
3723
3760
  }
3724
3761
  );
3725
3762
  };
3726
3763
 
3727
3764
  // src/Autocomplete/MultiAutocomplete.tsx
3728
- var import_react21 = __toESM(require("react"));
3765
+ var import_react22 = __toESM(require("react"));
3729
3766
  var import_downshift7 = require("downshift");
3730
- var import_jsx_runtime22 = require("react/jsx-runtime");
3767
+ var import_jsx_runtime23 = require("react/jsx-runtime");
3731
3768
  var MultiAutocomplete = ({
3732
3769
  children: childrenProp,
3733
3770
  stateReducer: externalStateReducer,
@@ -3751,21 +3788,21 @@ var MultiAutocomplete = ({
3751
3788
  menuItems,
3752
3789
  MenuItemComponent
3753
3790
  });
3754
- const [selectedItems, setSelectedItems] = import_react21.default.useState(initialSelectedItems);
3755
- const [selectedItemIds, setSelectedItemIds] = import_react21.default.useState(getSelectedItemIds(initialSelectedItems));
3756
- const getIsItemVisibleMulti = import_react21.default.useCallback(
3757
- (item, inputValue) => {
3758
- return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue);
3791
+ const [selectedItems, setSelectedItems] = import_react22.default.useState(initialSelectedItems);
3792
+ const [selectedItemIds, setSelectedItemIds] = import_react22.default.useState(getSelectedItemIds(initialSelectedItems));
3793
+ const getIsItemVisibleMulti = import_react22.default.useCallback(
3794
+ (item, inputValue2) => {
3795
+ return (showSelectedItemsInDropdown || !selectedItemIds[item.id]) && getIsItemVisible(item, inputValue2);
3759
3796
  },
3760
3797
  [selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
3761
3798
  );
3762
- const getShouldFilterMulti = import_react21.default.useCallback(
3799
+ const getShouldFilterMulti = import_react22.default.useCallback(
3763
3800
  (args) => {
3764
3801
  return !showSelectedItemsInDropdown && Object.keys(selectedItemIds).length > 0 || defaultGetShouldFilter(args);
3765
3802
  },
3766
3803
  [selectedItemIds, showSelectedItemsInDropdown, getIsItemVisible]
3767
3804
  );
3768
- const { setHiddenItemsMap, defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
3805
+ const downshiftDefaults = useDownshiftDefaults({
3769
3806
  isCombobox: true,
3770
3807
  isMulti: true,
3771
3808
  // handles the prop name mapping for multi select
@@ -3776,6 +3813,7 @@ var MultiAutocomplete = ({
3776
3813
  ...useComboboxProps
3777
3814
  }
3778
3815
  });
3816
+ const { setHiddenItemsMap, defaultDownshiftProps, hiddenItemsCount } = downshiftDefaults;
3779
3817
  const { updateFilteredItems } = useItemFiltering({
3780
3818
  allMenuItems,
3781
3819
  itemToString: itemToString2,
@@ -3783,7 +3821,7 @@ var MultiAutocomplete = ({
3783
3821
  getShouldFilter: getShouldFilterMulti,
3784
3822
  setHiddenItemsMap
3785
3823
  });
3786
- import_react21.default.useEffect(() => {
3824
+ import_react22.default.useEffect(() => {
3787
3825
  updateFilteredItems({ inputValue: "" });
3788
3826
  }, [selectedItemIds]);
3789
3827
  const useMultipleSelectionReturnProps = (0, import_downshift7.useMultipleSelection)({
@@ -3796,7 +3834,7 @@ var MultiAutocomplete = ({
3796
3834
  onSelectedItemsChange && onSelectedItemsChange({ selectedItems: selectedItems2, ...changes });
3797
3835
  }
3798
3836
  });
3799
- const { isOpen, ...useComboboxReturnProps } = (0, import_downshift7.useCombobox)({
3837
+ const useComboboxReturnProps = (0, import_downshift7.useCombobox)({
3800
3838
  ...defaultDownshiftProps.combobox,
3801
3839
  items: allMenuItems,
3802
3840
  itemToString: itemToString2,
@@ -3806,7 +3844,7 @@ var MultiAutocomplete = ({
3806
3844
  externalStateReducer
3807
3845
  ),
3808
3846
  onStateChange(changes) {
3809
- const { type, selectedItem: newSelectedItem, inputValue } = changes;
3847
+ const { type, selectedItem: newSelectedItem, inputValue: inputValue2 } = changes;
3810
3848
  switch (type) {
3811
3849
  // Add the selected item to the selected items list
3812
3850
  case import_downshift7.useCombobox.stateChangeTypes.InputKeyDownEnter:
@@ -3827,55 +3865,63 @@ var MultiAutocomplete = ({
3827
3865
  default:
3828
3866
  break;
3829
3867
  }
3830
- if (inputValue !== void 0) updateFilteredItems({ inputValue });
3868
+ if (inputValue2 !== void 0) updateFilteredItems({ inputValue: inputValue2 });
3831
3869
  onStateChange && onStateChange(changes);
3832
3870
  },
3833
3871
  ...useComboboxProps
3834
3872
  });
3835
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3873
+ const { isOpen, closeMenu, inputValue } = useComboboxReturnProps;
3874
+ const { popoutProps: userPopoutProps } = useComboboxProps;
3875
+ import_react22.default.useEffect(() => {
3876
+ if (!inputValue) return;
3877
+ if (allMenuItems && hiddenItemsCount >= allMenuItems.length && isOpen) {
3878
+ closeMenu?.();
3879
+ }
3880
+ }, [hiddenItemsCount, allMenuItems?.length, isOpen, inputValue]);
3881
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3836
3882
  MenuRootComponent,
3837
3883
  {
3838
3884
  ...{
3839
3885
  isListbox: true,
3840
3886
  items: allMenuItems,
3841
3887
  itemToString: itemToString2,
3842
- isOpen,
3843
3888
  initialSelectedItems,
3844
3889
  onStateChange,
3845
3890
  onSelectedItemsChange,
3846
3891
  getA11yMultiStatusMessage,
3847
3892
  onMultiSelectStateChange,
3848
3893
  multiSelectStateReducer,
3849
- setHiddenItemsMap,
3850
3894
  ...useComboboxProps,
3851
3895
  ...useComboboxReturnProps,
3852
3896
  ...useMultipleSelectionReturnProps,
3853
- ...restDefaults
3897
+ ...downshiftDefaults
3854
3898
  },
3855
3899
  popoutProps: {
3856
- focusOnContent: false
3900
+ focusOnContent: false,
3901
+ ...userPopoutProps
3857
3902
  },
3903
+ autoCloseOnEmpty: true,
3858
3904
  children
3859
3905
  }
3860
3906
  );
3861
3907
  };
3862
3908
 
3863
3909
  // src/Autocomplete/Autocomplete.tsx
3864
- var import_jsx_runtime23 = require("react/jsx-runtime");
3910
+ var import_jsx_runtime24 = require("react/jsx-runtime");
3865
3911
  var Autocomplete = ({
3866
3912
  multiSelect = false,
3867
3913
  ...rest
3868
3914
  }) => {
3869
3915
  if (multiSelect) {
3870
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(MultiAutocomplete, { ...rest });
3916
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(MultiAutocomplete, { ...rest });
3871
3917
  }
3872
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(SingleAutocomplete, { ...rest });
3918
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SingleAutocomplete, { ...rest });
3873
3919
  };
3874
3920
 
3875
3921
  // src/Autocomplete/AutocompleteInput.tsx
3876
- var import_react23 = require("react");
3922
+ var import_react24 = require("react");
3877
3923
  var import_seeds_react_input2 = require("@sproutsocial/seeds-react-input");
3878
- var import_jsx_runtime24 = require("react/jsx-runtime");
3924
+ var import_jsx_runtime25 = require("react/jsx-runtime");
3879
3925
  var AutocompleteInput = ({
3880
3926
  onKeyDown,
3881
3927
  onChange,
@@ -3886,7 +3932,7 @@ var AutocompleteInput = ({
3886
3932
  ...rest
3887
3933
  }) => {
3888
3934
  const { getInputComponentProps, inputValue, ref, ariaProps } = useMenuToggleContext();
3889
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3935
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3890
3936
  import_seeds_react_input2.Input,
3891
3937
  {
3892
3938
  id: "autocomplete_input",
@@ -3911,8 +3957,8 @@ var AutocompleteInput = ({
3911
3957
  };
3912
3958
 
3913
3959
  // src/Autocomplete/AutocompleteTokenInput.tsx
3914
- var import_react24 = require("react");
3915
- var import_jsx_runtime25 = require("react/jsx-runtime");
3960
+ var import_react25 = require("react");
3961
+ var import_jsx_runtime26 = require("react/jsx-runtime");
3916
3962
  var AutocompleteTokenInput = ({
3917
3963
  onKeyDown,
3918
3964
  onChange,
@@ -3931,7 +3977,7 @@ var AutocompleteTokenInput = ({
3931
3977
  ref,
3932
3978
  ariaProps
3933
3979
  } = useMenuToggleContext();
3934
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3980
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3935
3981
  MenuTokenInput,
3936
3982
  {
3937
3983
  id: "autocomplete_input",
@@ -3955,28 +4001,28 @@ var AutocompleteTokenInput = ({
3955
4001
 
3956
4002
  // src/Autocomplete/AutocompleteSelect.tsx
3957
4003
  var import_seeds_react_icon4 = __toESM(require("@sproutsocial/seeds-react-icon"));
3958
- var import_react25 = require("react");
3959
- var import_styled_components13 = __toESM(require("styled-components"));
4004
+ var import_react26 = require("react");
4005
+ var import_styled_components14 = __toESM(require("styled-components"));
3960
4006
  var import_seeds_react_input3 = require("@sproutsocial/seeds-react-input");
3961
- var import_jsx_runtime26 = require("react/jsx-runtime");
3962
- var StyledAutocompleteInput = (0, import_styled_components13.default)(AutocompleteInput)`
4007
+ var import_jsx_runtime27 = require("react/jsx-runtime");
4008
+ var StyledAutocompleteInput = (0, import_styled_components14.default)(AutocompleteInput)`
3963
4009
  ${import_seeds_react_input3.Accessory} {
3964
4010
  pointer-events: none;
3965
4011
  }
3966
4012
  `;
3967
4013
  var AutocompleteSelect = (props) => {
3968
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4014
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3969
4015
  StyledAutocompleteInput,
3970
4016
  {
3971
- elemAfter: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_seeds_react_icon4.default, { name: "chevron-down" }),
4017
+ elemAfter: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(import_seeds_react_icon4.default, { name: "chevron-down" }),
3972
4018
  ...props
3973
4019
  }
3974
4020
  );
3975
4021
  };
3976
4022
 
3977
4023
  // src/NestedMenu/NestedMenu.tsx
3978
- var import_react31 = require("react");
3979
- var import_react32 = require("motion/react");
4024
+ var import_react32 = require("react");
4025
+ var import_react33 = require("motion/react");
3980
4026
  var import_downshift9 = require("downshift");
3981
4027
 
3982
4028
  // src/reducers/nestedMenuStateReducer.tsx
@@ -4004,8 +4050,8 @@ var nestedMenuStateReducer = (_state, actionAndChanges) => {
4004
4050
  };
4005
4051
 
4006
4052
  // src/NestedMenu/NestedMenuContext.tsx
4007
- var import_react26 = require("react");
4008
- var import_jsx_runtime27 = require("react/jsx-runtime");
4053
+ var import_react27 = require("react");
4054
+ var import_jsx_runtime28 = require("react/jsx-runtime");
4009
4055
  var defaultNestedMenuContext = {
4010
4056
  selectedMenuPath: [],
4011
4057
  setSelectedMenuId: () => {
@@ -4022,17 +4068,17 @@ var defaultNestedMenuContext = {
4022
4068
  },
4023
4069
  animationSpeed: MOTION_DURATION_FAST
4024
4070
  };
4025
- var NestedMenuContext = (0, import_react26.createContext)(
4071
+ var NestedMenuContext = (0, import_react27.createContext)(
4026
4072
  defaultNestedMenuContext
4027
4073
  );
4028
4074
  var NestedMenuProvider = ({
4029
4075
  children,
4030
4076
  ...nestedMenuProps
4031
4077
  }) => {
4032
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(NestedMenuContext.Provider, { value: nestedMenuProps, children });
4078
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(NestedMenuContext.Provider, { value: nestedMenuProps, children });
4033
4079
  };
4034
4080
  var useNestedMenuContext = () => {
4035
- const nestedMenuContextValue = (0, import_react26.useContext)(NestedMenuContext);
4081
+ const nestedMenuContextValue = (0, import_react27.useContext)(NestedMenuContext);
4036
4082
  if (nestedMenuContextValue === null) {
4037
4083
  throw new Error(
4038
4084
  "useNestedMenuContext must be used within a <NestedMenuContext.Provider />"
@@ -4042,13 +4088,13 @@ var useNestedMenuContext = () => {
4042
4088
  };
4043
4089
 
4044
4090
  // src/NestedMenu/NestedMenuContent.tsx
4045
- var import_react27 = require("react");
4091
+ var import_react28 = require("react");
4046
4092
  var import_seeds_react_utilities3 = require("@sproutsocial/seeds-react-utilities");
4047
4093
 
4048
4094
  // src/NestedMenu/NestedMenuItem.tsx
4049
4095
  var import_seeds_react_icon5 = require("@sproutsocial/seeds-react-icon");
4050
4096
  var import_seeds_react_box4 = require("@sproutsocial/seeds-react-box");
4051
- var import_jsx_runtime28 = require("react/jsx-runtime");
4097
+ var import_jsx_runtime29 = require("react/jsx-runtime");
4052
4098
  var NestedMenuItem = ({
4053
4099
  children,
4054
4100
  childMenuId,
@@ -4064,15 +4110,15 @@ var NestedMenuItem = ({
4064
4110
  }
4065
4111
  }
4066
4112
  } : {};
4067
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(MenuItem, { ...onClickProps, ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(import_seeds_react_box4.Box, { display: "flex", justifyContent: "space-between", children: [
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: [
4068
4114
  children,
4069
- childMenuId && /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(MenuItemActionRight, { children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(import_seeds_react_icon5.Icon, { name: "arrow-right-outline" }) })
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" }) })
4070
4116
  ] }) });
4071
4117
  };
4072
4118
  NestedMenuItem.__MENU_PRIMITIVE_TYPE = "MenuItem";
4073
4119
 
4074
4120
  // src/NestedMenu/NestedMenuContent.tsx
4075
- var import_jsx_runtime29 = require("react/jsx-runtime");
4121
+ var import_jsx_runtime30 = require("react/jsx-runtime");
4076
4122
  var NestedMenuContent = ({
4077
4123
  innerRef: innerRefProp = null,
4078
4124
  onKeyDown: onKeyDownProp,
@@ -4083,10 +4129,10 @@ var NestedMenuContent = ({
4083
4129
  }) => {
4084
4130
  const { highlightedIndex, items } = useMenuContentContext();
4085
4131
  const { setSelectedMenuId, selectedMenuPath, goBack } = useNestedMenuContext();
4086
- const internalRef = (0, import_react27.useRef)(null);
4132
+ const internalRef = (0, import_react28.useRef)(null);
4087
4133
  const innerRef = (0, import_seeds_react_utilities3.mergeRefs)(internalRef, innerRefProp);
4088
4134
  const contentProps = children ? { children } : { menuItems, MenuItemComponent };
4089
- (0, import_react27.useEffect)(() => {
4135
+ (0, import_react28.useEffect)(() => {
4090
4136
  internalRef?.current?.focus();
4091
4137
  }, []);
4092
4138
  const onKeyDown = (e) => {
@@ -4109,7 +4155,7 @@ var NestedMenuContent = ({
4109
4155
  break;
4110
4156
  }
4111
4157
  };
4112
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4158
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4113
4159
  MenuContent,
4114
4160
  {
4115
4161
  onKeyDown,
@@ -4124,19 +4170,19 @@ NestedMenuContent.__MENU_PRIMITIVE_TYPE = "MenuContent";
4124
4170
  // src/NestedMenu/NestedMenuHeader.tsx
4125
4171
  var import_seeds_react_button2 = require("@sproutsocial/seeds-react-button");
4126
4172
  var import_seeds_react_icon6 = require("@sproutsocial/seeds-react-icon");
4127
- var import_react28 = require("motion/react");
4128
- var import_jsx_runtime30 = require("react/jsx-runtime");
4173
+ var import_react29 = require("motion/react");
4174
+ var import_jsx_runtime31 = require("react/jsx-runtime");
4129
4175
  var NestedMenuHeader = ({
4130
4176
  backArrowLabel,
4131
4177
  ...props
4132
4178
  }) => {
4133
4179
  const { goBack, selectedMenuPath, animationSpeed } = useNestedMenuContext();
4134
4180
  const showBackArrow = selectedMenuPath.length > 1;
4135
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4181
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4136
4182
  MenuHeader,
4137
4183
  {
4138
- leftAction: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_react28.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4139
- import_react28.motion.div,
4184
+ leftAction: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(import_react29.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4185
+ import_react29.motion.div,
4140
4186
  {
4141
4187
  initial: { opacity: 0 },
4142
4188
  animate: { opacity: 1 },
@@ -4144,7 +4190,7 @@ var NestedMenuHeader = ({
4144
4190
  opacity: 0,
4145
4191
  transition: { duration: animationSpeed }
4146
4192
  },
4147
- children: showBackArrow ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_seeds_react_button2.Button, { onClick: goBack, ariaLabel: backArrowLabel, children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(import_seeds_react_icon6.Icon, { name: "arrow-left" }) }) : void 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
4148
4194
  },
4149
4195
  `${selectedMenuPath}-header--button`
4150
4196
  ) }),
@@ -4154,8 +4200,8 @@ var NestedMenuHeader = ({
4154
4200
  };
4155
4201
 
4156
4202
  // src/NestedMenu/NestedMenuRoot.tsx
4157
- var import_react29 = __toESM(require("react"));
4158
- var import_jsx_runtime31 = require("react/jsx-runtime");
4203
+ var import_react30 = __toESM(require("react"));
4204
+ var import_jsx_runtime32 = require("react/jsx-runtime");
4159
4205
  var NestedMenuRoot = ({
4160
4206
  children,
4161
4207
  menuToggleElement,
@@ -4163,21 +4209,21 @@ var NestedMenuRoot = ({
4163
4209
  }) => {
4164
4210
  const menuContext = useMenu(contextProps);
4165
4211
  const { setActiveMenuContext, selectedMenuPath } = useNestedMenuContext();
4166
- import_react29.default.useEffect(() => {
4212
+ import_react30.default.useEffect(() => {
4167
4213
  setActiveMenuContext(menuContext);
4168
4214
  }, [
4169
4215
  selectedMenuPath[selectedMenuPath.length - 1],
4170
4216
  menuContext.selectedItem,
4171
4217
  menuContext.selectedItems?.length
4172
4218
  ]);
4173
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(MenuContentProvider, { menuContext, children });
4219
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(MenuContentProvider, { menuContext, children });
4174
4220
  };
4175
4221
 
4176
4222
  // src/NestedMenu/NestedMenuPopout.tsx
4177
- var import_react30 = require("motion/react");
4178
- var import_styled_components14 = __toESM(require("styled-components"));
4179
- var import_jsx_runtime32 = require("react/jsx-runtime");
4180
- var StyledDiv = (0, import_styled_components14.default)(import_react30.motion.div)`
4223
+ var import_react31 = require("motion/react");
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)`
4181
4227
  overflow: hidden;
4182
4228
  `;
4183
4229
  var NestedMenuPopout = ({
@@ -4187,7 +4233,7 @@ var NestedMenuPopout = ({
4187
4233
  ...popoutProps
4188
4234
  }) => {
4189
4235
  const { activeMenuContext, rootMenuContextProps, resetSelectedMenuPath } = useNestedMenuContext();
4190
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4236
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4191
4237
  MenuPopout,
4192
4238
  {
4193
4239
  ...popoutProps,
@@ -4196,8 +4242,8 @@ var NestedMenuPopout = ({
4196
4242
  openMenu: rootMenuContextProps.openMenu,
4197
4243
  closeMenu: rootMenuContextProps.closeMenu,
4198
4244
  width: width2,
4199
- content: (props) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(StyledDiv, { layout: "position", children: typeof content === "function" ? content(props) : content }),
4200
- children: (toggleProps) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
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)(
4201
4247
  MenuToggleProvider,
4202
4248
  {
4203
4249
  menuContext: {
@@ -4213,7 +4259,7 @@ var NestedMenuPopout = ({
4213
4259
  };
4214
4260
 
4215
4261
  // src/NestedMenu/NestedMenu.tsx
4216
- var import_jsx_runtime33 = require("react/jsx-runtime");
4262
+ var import_jsx_runtime34 = require("react/jsx-runtime");
4217
4263
  var NestedMenu = ({
4218
4264
  initialMenuId,
4219
4265
  menus,
@@ -4229,9 +4275,9 @@ var NestedMenu = ({
4229
4275
  const { defaultDownshiftProps, ...restDefaults } = useDownshiftDefaults({
4230
4276
  isCombobox: false
4231
4277
  });
4232
- const uniqueId = (0, import_react31.useId)();
4278
+ const uniqueId = (0, import_react32.useId)();
4233
4279
  const nestedMenuId = externalNestedMenuId ?? `nested-menu-${uniqueId}`;
4234
- const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react31.useState)(false);
4280
+ const [hasLoadedOnce, setHasLoadedOnce] = (0, import_react32.useState)(false);
4235
4281
  const useSelectReturnProps = (0, import_downshift9.useSelect)({
4236
4282
  ...defaultDownshiftProps.select,
4237
4283
  id: nestedMenuId,
@@ -4247,7 +4293,7 @@ var NestedMenu = ({
4247
4293
  ...useSelectReturnProps,
4248
4294
  ...restDefaults
4249
4295
  };
4250
- (0, import_react31.useEffect)(() => {
4296
+ (0, import_react32.useEffect)(() => {
4251
4297
  if (!useSelectReturnProps.isOpen) {
4252
4298
  setHasLoadedOnce(false);
4253
4299
  } else {
@@ -4265,15 +4311,15 @@ var NestedMenu = ({
4265
4311
  onIsOpenChange: onNestedIsOpenChange
4266
4312
  };
4267
4313
  rootMenuContextProps.getMenuProps?.({}, { suppressRefError: true });
4268
- const [selectedMenuPath, setSelectedMenuPath] = (0, import_react31.useState)([initialMenuId]);
4269
- const [activeMenuContext, setActiveMenuContext] = (0, import_react31.useState)(defaultMenuContext);
4270
- const [currentMenuId, setCurrentMenuId] = (0, import_react31.useState)(initialMenuId);
4271
- const [isAdding, setIsAdding] = (0, import_react31.useState)(false);
4314
+ const [selectedMenuPath, setSelectedMenuPath] = (0, import_react32.useState)([initialMenuId]);
4315
+ const [activeMenuContext, setActiveMenuContext] = (0, import_react32.useState)(defaultMenuContext);
4316
+ const [currentMenuId, setCurrentMenuId] = (0, import_react32.useState)(initialMenuId);
4317
+ const [isAdding, setIsAdding] = (0, import_react32.useState)(false);
4272
4318
  const setSelectedMenuId = (id) => {
4273
4319
  setIsAdding(true);
4274
4320
  setSelectedMenuPath((currentPath) => [...currentPath, id]);
4275
4321
  };
4276
- (0, import_react31.useEffect)(() => {
4322
+ (0, import_react32.useEffect)(() => {
4277
4323
  if (selectedMenuPath.length > 0) {
4278
4324
  const newMenuId = selectedMenuPath[selectedMenuPath.length - 1];
4279
4325
  setCurrentMenuId(newMenuId);
@@ -4367,8 +4413,8 @@ var NestedMenu = ({
4367
4413
  initialIsOpen: true,
4368
4414
  children: (
4369
4415
  // Handles the smooth animating of the content
4370
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react32.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
4371
- import_react32.motion.div,
4416
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react33.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
4417
+ import_react33.motion.div,
4372
4418
  {
4373
4419
  variants: contentVariants,
4374
4420
  initial: "arrive",
@@ -4376,7 +4422,7 @@ var NestedMenu = ({
4376
4422
  exit: "leave",
4377
4423
  custom: { isAdding, hasLoadedOnce },
4378
4424
  children: [
4379
- MenuHeaderComponent && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4425
+ MenuHeaderComponent && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4380
4426
  MenuHeaderComponent,
4381
4427
  {
4382
4428
  backArrowLabel,
@@ -4384,7 +4430,7 @@ var NestedMenu = ({
4384
4430
  }
4385
4431
  ),
4386
4432
  children && children,
4387
- menuItems && !children && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4433
+ menuItems && !children && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4388
4434
  NestedMenuContent,
4389
4435
  {
4390
4436
  menuItems,
@@ -4398,7 +4444,7 @@ var NestedMenu = ({
4398
4444
  ),
4399
4445
  ...restMenuProps
4400
4446
  };
4401
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4447
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4402
4448
  NestedMenuProvider,
4403
4449
  {
4404
4450
  ...{
@@ -4412,19 +4458,19 @@ var NestedMenu = ({
4412
4458
  setActiveMenuContext,
4413
4459
  animationSpeed
4414
4460
  },
4415
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4461
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4416
4462
  NestedMenuPopout,
4417
4463
  {
4418
4464
  content: MenuComponent && // Handles the rerender of the component
4419
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(import_react32.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4420
- import_react32.motion.div,
4465
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(import_react33.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4466
+ import_react33.motion.div,
4421
4467
  {
4422
4468
  variants: menuVariants,
4423
4469
  initial: "arrive",
4424
4470
  animate: "enter",
4425
4471
  exit: "leave",
4426
4472
  custom: { isAdding, hasLoadedOnce },
4427
- children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(MenuComponent, { ...nestedMenuProps })
4473
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(MenuComponent, { ...nestedMenuProps })
4428
4474
  },
4429
4475
  `${currentMenuId}-content`
4430
4476
  ) }),