@sproutsocial/racine 26.7.0 → 26.9.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/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Change Log
2
2
 
3
+ ## 26.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - f9504f2: Upgraded dependencies:
8
+ - @sproutsocial/seeds-react-input ^1.4.2 → ^1.4.3
9
+ - @sproutsocial/seeds-react-menu ^1.6.0 → ^1.6.1
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [f55c7f4]
14
+ - @sproutsocial/seeds-react-token-input@1.4.1
15
+
16
+ ## 26.8.0
17
+
18
+ ### Minor Changes
19
+
20
+ - f6e0b98: Added v1 of seeds-react-rating
21
+
3
22
  ## 26.7.0
4
23
 
5
24
  ### Minor Changes
package/dist/esm/index.js CHANGED
@@ -1324,6 +1324,7 @@ export * from "@sproutsocial/seeds-react-partner-logo";
1324
1324
  export * from "@sproutsocial/seeds-react-popout";
1325
1325
  export * from "@sproutsocial/seeds-react-portal";
1326
1326
  export * from "@sproutsocial/seeds-react-radio";
1327
+ export * from "@sproutsocial/seeds-react-rating";
1327
1328
  export * from "@sproutsocial/seeds-react-segmented-control";
1328
1329
  export * from "@sproutsocial/seeds-react-select";
1329
1330
  export * from "@sproutsocial/seeds-react-skeleton";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts","../../src/Breadcrumb/Breadcrumb.tsx","../../src/Menu/Menu.tsx","../../src/Menu/utils/innertext.ts","../../src/Menu/utils/constants.ts","../../src/Menu/utils/descendants.tsx","../../src/Menu/utils/hooks.ts","../../src/Menu/styles.ts","../../src/Menu/index.ts","../../src/Breadcrumb/styles.ts","../../src/Listbox/Listbox.tsx","../../src/ToggleHint/ToggleHint.tsx","../../src/ToggleHint/styles.ts"],"sourcesContent":["/* Asset types */\nexport type { EnumIconNames } from \"@sproutsocial/seeds-icons\";\nexport type { EnumIllustrationNames } from \"@sproutsocial/seeds-illustrations\";\nexport type { EnumLogoNamesWithoutVariants as EnumLogoNames } from \"@sproutsocial/seeds-partner-logos\";\n\nexport { IllustrationNames as SpotIllustrationNames } from \"@sproutsocial/seeds-illustrations\";\nexport { LogoNamesWithoutVariants as PartnerLogoNames } from \"@sproutsocial/seeds-partner-logos\";\n\n/* Theme and related types */\nexport * from \"@sproutsocial/seeds-react-system-props\";\nexport * from \"@sproutsocial/seeds-react-theme\";\nexport { default as ThemeProvider } from \"@sproutsocial/seeds-react-theme-provider\";\n\n/* Utilities and related types */\nexport {\n useSelect,\n useMultiselect,\n useTextContent,\n useMeasure,\n useInteractiveColor,\n} from \"@sproutsocial/seeds-react-hooks\";\nexport * from \"@sproutsocial/seeds-react-mixins\";\n\n/* Components */\nexport * from \"@sproutsocial/seeds-react-avatar\";\nexport * from \"@sproutsocial/seeds-react-badge\";\nexport * from \"@sproutsocial/seeds-react-banner\";\nexport * from \"@sproutsocial/seeds-react-box\";\nexport * from \"./Breadcrumb\";\nexport * from \"@sproutsocial/seeds-react-button\";\nexport * from \"@sproutsocial/seeds-react-card\";\nexport * from \"@sproutsocial/seeds-react-character-counter\";\nexport * from \"@sproutsocial/seeds-react-chart-legend\";\nexport * from \"@sproutsocial/seeds-react-checkbox\";\nexport * from \"@sproutsocial/seeds-react-collapsible\";\nexport * from \"@sproutsocial/seeds-react-datepicker\";\nexport * from \"@sproutsocial/seeds-react-drawer\";\nexport * from \"@sproutsocial/seeds-react-duration\";\nexport * from \"@sproutsocial/seeds-react-empty-state\";\nexport * from \"@sproutsocial/seeds-react-fieldset\";\nexport * from \"@sproutsocial/seeds-react-form-field\";\nexport * from \"@sproutsocial/seeds-react-icon\";\nexport * from \"@sproutsocial/seeds-react-image\";\nexport * from \"@sproutsocial/seeds-react-indicator\";\nexport * from \"@sproutsocial/seeds-react-input\";\nexport * from \"@sproutsocial/seeds-react-keyboard-key\";\nexport * from \"@sproutsocial/seeds-react-label\";\nexport * from \"@sproutsocial/seeds-react-link\";\nexport * from \"./Listbox\";\nexport * from \"@sproutsocial/seeds-react-loader\";\nexport * from \"@sproutsocial/seeds-react-loader-button\";\nexport * from \"./Menu\";\nexport * from \"@sproutsocial/seeds-react-modal\";\nexport * from \"@sproutsocial/seeds-react-message\";\nexport * from \"@sproutsocial/seeds-react-numeral\";\nexport * from \"@sproutsocial/seeds-react-partner-logo\";\nexport * from \"@sproutsocial/seeds-react-popout\";\nexport * from \"@sproutsocial/seeds-react-portal\";\nexport * from \"@sproutsocial/seeds-react-radio\";\nexport * from \"@sproutsocial/seeds-react-segmented-control\";\nexport * from \"@sproutsocial/seeds-react-select\";\nexport * from \"@sproutsocial/seeds-react-skeleton\";\nexport * from \"@sproutsocial/seeds-react-spot-illustration\";\nexport * from \"@sproutsocial/seeds-react-stack\";\nexport * from \"@sproutsocial/seeds-react-switch\";\nexport * from \"@sproutsocial/seeds-react-table\";\nexport * from \"@sproutsocial/seeds-react-table/TableCell\";\nexport * from \"@sproutsocial/seeds-react-table/TableHeaderCell\";\nexport * from \"@sproutsocial/seeds-react-table/TableRowAccordion\";\nexport * from \"@sproutsocial/seeds-react-tabs\";\nexport * from \"@sproutsocial/seeds-react-text\";\nexport * from \"@sproutsocial/seeds-react-textarea\";\nexport * from \"@sproutsocial/seeds-react-toast\";\nexport * from \"./ToggleHint\";\nexport * from \"@sproutsocial/seeds-react-token\";\nexport * from \"@sproutsocial/seeds-react-token-input\";\nexport * from \"@sproutsocial/seeds-react-tooltip\";\nexport * from \"@sproutsocial/seeds-react-visually-hidden\";\n/* End */\n\n/**\n * @deprecated Alert has been renamed to Banner\n */\nexport { Banner as Alert } from \"@sproutsocial/seeds-react-banner\";\n","import * as React from \"react\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Link from \"@sproutsocial/seeds-react-link\";\n// eslint-disable-next-line no-restricted-imports\nimport { MenuButton } from \"../Menu\";\nimport Nav from \"./styles\";\nimport type {\n TypeBreadcrumbProps,\n TypeBreadcrumbItemProps,\n} from \"./BreadcrumbTypes\";\n\n/**\n * @deprecated BreadcrumbItem is deprecated. BreadcrumbItem will be removed in 2025 in favor of seeds-react-breadcrumb which utilizes the new Menu ecosystem. Please create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-breadcrumb | seeds-react-breadcrumb}.\n */\nconst BreadcrumbItem = ({\n children,\n href,\n ...rest\n}: TypeBreadcrumbItemProps) => {\n return (\n <li>\n <Link href={href} {...rest}>\n {children}\n </Link>\n </li>\n );\n};\n\n/**\n * @deprecated Breadcrumb is deprecated. This iteration of Breadcrumb will be removed in 2025 in favor of seeds-react-breadcrumb which utilizes the new Menu ecosystem. Please create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-breadcrumb | seeds-react-breadcrumb}.\n */\nconst Breadcrumb = ({\n ariaLabel,\n overflow,\n children,\n ...rest\n}: TypeBreadcrumbProps) => {\n const listItems = React.Children.toArray(children);\n const lastItem = listItems[listItems.length - 1];\n return (\n <Nav aria-label={ariaLabel} data-qa-breadcrumb={ariaLabel} {...rest}>\n <ol>\n {overflow && (\n <li>\n <MenuButton\n appearance=\"secondary\"\n content={overflow.menu}\n aria-label={overflow.label}\n className=\"overflow--menu\"\n px={200}\n py={0}\n >\n <Icon name=\"ellipsis-horizontal-solid\" aria-hidden />\n </MenuButton>\n </li>\n )}\n {listItems.map((item, i) => {\n // @ts-notes - item is a childNode which can be a string or number but `cloneElement` requires props\n const itemElem =\n typeof item === \"object\" && \"props\" in item ? (\n item\n ) : (\n <span>item</span>\n );\n return React.cloneElement(itemElem, {\n ...itemElem.props,\n \"aria-current\": listItems[i] === lastItem ? \"page\" : undefined,\n });\n })}\n </ol>\n </Nav>\n );\n};\n\nBreadcrumbItem.displayName = \"Breadcrumb.Item\";\nBreadcrumb.Item = BreadcrumbItem;\n\nexport default Breadcrumb;\n","import * as React from \"react\";\nimport {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"styled-components\";\nimport uniqueId from \"lodash.uniqueid\";\nimport { useTextContent } from \"@sproutsocial/seeds-react-hooks\";\nimport { innerText } from \"./utils/innertext\";\nimport { disabled } from \"@sproutsocial/seeds-react-mixins\";\nimport Box, { TypeBoxProps } from \"@sproutsocial/seeds-react-box\";\nimport Button from \"@sproutsocial/seeds-react-button\";\nimport Checkbox from \"@sproutsocial/seeds-react-checkbox\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Input, { TypeInputProps } from \"@sproutsocial/seeds-react-input\";\nimport Popout from \"@sproutsocial/seeds-react-popout\";\nimport Radio from \"@sproutsocial/seeds-react-radio\";\nimport Switch from \"@sproutsocial/seeds-react-switch\";\nimport Text from \"@sproutsocial/seeds-react-text\";\nimport type {\n TypeMenuButtonProps,\n TypeMenuGroupProps,\n TypeMenuItemProps,\n TypeMenuItemRoles,\n TypeMenuProps,\n TypeMenuRoles,\n TypeMenuSwitchProps,\n} from \"./MenuTypes\";\nimport {\n MENU_ITEM_ROLES,\n MENU_ROLES,\n DescendantProvider,\n useDescendant,\n useDescendants,\n MenuButtonContext,\n MenuContext,\n MenuDescendantContext,\n useMenuKeyDown,\n} from \"./utils\";\nimport type { TypeMenuDescendantProps } from \"./utils\";\nimport { MenuItemContainer, MenuItemsContainer } from \"./styles\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nconst getMenuItemRole = (\n menuRole?: TypeMenuRoles | null\n): TypeMenuItemRoles => {\n switch (menuRole) {\n case MENU_ROLES.LIST:\n return MENU_ITEM_ROLES.LISTITEM;\n\n case MENU_ROLES.LISTBOX:\n return MENU_ITEM_ROLES.OPTION;\n\n case MENU_ROLES.MENU:\n default:\n return MENU_ITEM_ROLES.MENUITEM;\n }\n};\n\nfunction isValueSelected(menuValue, value) {\n if (!menuValue) return false;\n\n if (typeof menuValue === \"string\") {\n return Boolean(menuValue && value && menuValue === value);\n } else if (Array.isArray(menuValue)) {\n return menuValue.includes(value);\n }\n\n return false;\n}\n\n/**\n * @deprecated MenuItem is deprecated. MenuItem will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuItem = ({\n id: idProp,\n index: indexProp,\n as,\n children,\n role: roleProp,\n elemBefore,\n elemAfter,\n value: valueProp,\n onKeyPress,\n onClick,\n selected,\n disabled,\n indeterminate,\n label: labelProp,\n active: activeProp,\n ...props\n}: TypeMenuItemProps) => {\n const {\n role: menuRole,\n onChange,\n value,\n multiselect,\n state: menuState,\n selectCallbacks,\n menuRef,\n } = useContext(MenuContext);\n const { selectionIndex, filteredItems } = menuState;\n const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);\n const isSelected = selected || isValueSelected(value, valueProp);\n const shouldClosePopout = closeOnItemClick && !multiselect;\n const itemRole = roleProp || getMenuItemRole(menuRole);\n const id = useMemo(() => idProp || uniqueId(\"MenuItem-\"), [idProp]);\n const textContent = useTextContent(\"\");\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const label = labelProp || textContent.current;\n const ref = useRef<HTMLDivElement | null>(null);\n const index = useDescendant<HTMLElement, TypeMenuDescendantProps>(\n {\n context: MenuDescendantContext,\n element: ref.current,\n value: valueProp || label,\n label,\n disabled,\n id,\n },\n indexProp\n );\n const isHidden = filteredItems && !filteredItems.includes(index);\n const isFocused = index === selectionIndex;\n selectCallbacks.current[index] = onClick;\n const [keyPressed, setKeyPressed] = useState(false);\n const isActive = useMemo(\n () => activeProp || (isFocused && keyPressed),\n [activeProp, isFocused, keyPressed]\n );\n const isCheckboxOrRadio = [\n MENU_ITEM_ROLES.CHECKBOX,\n MENU_ITEM_ROLES.RADIO,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ].includes(itemRole as any); // @ts-notes @refactor - since we're only really checking against the string I think we can safely leave this for refactor, nothing else worked for me\n const interactive =\n onClick ||\n onKeyPress ||\n [\n MENU_ITEM_ROLES.OPTION,\n MENU_ITEM_ROLES.MENUITEM,\n MENU_ITEM_ROLES.CHECKBOX,\n MENU_ITEM_ROLES.RADIO,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ].includes(itemRole as any);\n\n /**\n * The Checkbox/Radio component doesn't expose a tabIndex prop, so we can't set the tabIndex on the underlying input\n * to remove it from the tab order. Resulting to DOM manipulation as a last resort. We can remove this if Checkbox\n * exposes this prop in the future.\n */\n useEffect(() => {\n if (isCheckboxOrRadio && ref.current) {\n const input = ref.current.querySelector(\"input\");\n\n if (input) {\n input.tabIndex = -1;\n }\n }\n }, [ref, isCheckboxOrRadio]);\n useEffect(() => {\n if (filteredItems) {\n setKeyPressed(true);\n } else if (selectionIndex !== 0) {\n setKeyPressed(true);\n }\n }, [selectionIndex, filteredItems]);\n const handleClick = useCallback(\n (e: React.SyntheticEvent<HTMLButtonElement>) => {\n menuRef.current?.focus();\n\n if (onChange && itemRole !== MENU_ITEM_ROLES.LISTITEM) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onChange((valueProp as any) || label);\n }\n\n shouldClosePopout && closePopout && closePopout();\n onClick && onClick(e);\n },\n [\n menuRef,\n onChange,\n itemRole,\n shouldClosePopout,\n closePopout,\n onClick,\n valueProp,\n label,\n ]\n );\n const before = useMemo(() => {\n if (elemBefore) return elemBefore;\n\n if (itemRole === MENU_ITEM_ROLES.CHECKBOX) {\n return (\n <Checkbox\n id={`Checkbox-${id}`}\n checked={isSelected}\n aria-hidden=\"true\"\n onChange={noop}\n indeterminate={indeterminate}\n mr={300}\n />\n );\n } else if (itemRole === MENU_ITEM_ROLES.RADIO) {\n return (\n <Radio\n id={`Radio-${id}`}\n name={`Radio-${id}`}\n checked={isSelected}\n aria-hidden=\"true\"\n onChange={noop}\n mr={300}\n />\n );\n }\n }, [elemBefore, id, indeterminate, isSelected, itemRole]);\n const after = useMemo(() => {\n if (elemAfter) return elemAfter;\n\n if (isSelected && !isCheckboxOrRadio) {\n return <Icon name=\"check-solid\" aria-hidden size=\"small\" ml={300} />;\n }\n }, [elemAfter, isCheckboxOrRadio, isSelected]);\n return (\n <MenuItemContainer\n data-qa-menu-item={label}\n {...props}\n active={isActive}\n data-qa-is-active={isActive}\n id={id}\n aria-label={labelProp}\n value={valueProp}\n data-value={valueProp}\n forwardedAs={as || \"li\"}\n aria-checked={isCheckboxOrRadio ? isSelected : undefined}\n aria-selected={\n itemRole === MENU_ITEM_ROLES.OPTION ? isSelected : undefined\n }\n disabled={disabled}\n aria-disabled={disabled}\n isCheckboxOrRadio={isCheckboxOrRadio}\n hidden={Boolean(isHidden)} // @ts migration note: coercing to a boolean here otherwise it thinks its actually receiving callbacks\n interactive={Boolean(interactive)} // @ts migration note: coercing to a boolean here otherwise it thinks its actually receiving callbacks\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore handleclick takes in different event type than what it receives half the times\n onClick={!disabled ? handleClick : undefined}\n role={itemRole}\n selected={isSelected}\n tabIndex={\n itemRole !== MENU_ITEM_ROLES.LISTITEM && !disabled ? -1 : undefined\n }\n >\n <div\n ref={ref}\n style={{\n display: \"flex\",\n alignItems: props.alignItems || \"center\",\n justifyContent: \"space-between\",\n }}\n >\n {before}\n <div\n style={{\n flexGrow: 1,\n wordBreak: \"break-word\",\n minWidth: 0,\n }}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore some legacy ref type mismatch between divs\n ref={textContent}\n >\n {children}\n </div>\n {after}\n </div>\n </MenuItemContainer>\n );\n};\n\n/**\n * @deprecated MenuCheckbox is deprecated. MenuCheckbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuCheckbox = (props: TypeMenuItemProps) => (\n <MenuItem role={MENU_ITEM_ROLES.CHECKBOX} {...props} />\n);\n\n/**\n * @deprecated MenuRadio is deprecated. MenuRadio will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuRadio = (props: TypeMenuItemProps) => (\n <MenuItem role={MENU_ITEM_ROLES.RADIO} {...props} />\n);\n\n/**\n * @deprecated MenuSwitch is deprecated. MenuSwitch will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuSwitch = (props: TypeMenuSwitchProps) => {\n const { value: menuValue } = useContext(MenuContext);\n const {\n placement,\n labelProps = {},\n switchProps = {},\n children,\n id,\n label,\n ...rest\n } = props;\n const menuItemId = useMemo(() => id || uniqueId(\"MenuItem-\"), [id]);\n const labelId = `${menuItemId}-label`;\n const switchElement = (\n <Switch\n id={`${menuItemId}-switch`}\n checked={props.selected || isValueSelected(menuValue, props.value)}\n aria-hidden=\"true\"\n tabIndex={-1}\n aria-labelledby={labelId}\n {...(placement === \"before\" ? { mr: 300 } : { ml: 300 })}\n {...switchProps}\n // This prop is passed after switchProps to disallow overrides.\n onClick={noop}\n />\n );\n const menuItemProps = {\n id: menuItemId,\n label,\n elemBefore: placement === \"before\" ? switchElement : undefined,\n // Empty fragment prevents a check icon in elemAfter when the switch is checked. Can be overridden.\n elemAfter: placement === \"before\" ? <></> : switchElement,\n ...rest,\n };\n return (\n <MenuItem {...menuItemProps}>\n {/*Using Text and aria-labelledby instead of Label to avoid default Label styling and onClick behavior.*/}\n <Text\n id={labelId}\n {...labelProps}\n // This prop is passed after labelProps to disallow overrides.\n // Fall back to the label prop if children is falsy.\n // eslint-disable-next-line react/no-children-prop\n children={children || label}\n />\n </MenuItem>\n );\n};\n\nconst MenuTitle = styled(Text)`\n font-weight: 600;\n padding-left: ${({ theme }) => theme.space[300]};\n padding-top: ${({ theme }) => theme.space[200]};\n padding-bottom: ${({ theme }) => theme.space[300]};\n color: ${({ theme }) => theme.colors.text.headline};\n`;\n\n/**\n * @deprecated MenuGroup is deprecated. MenuGroup will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuGroup = ({\n children,\n title,\n titleAs,\n disabled: isDisabled = false,\n ...props\n}: TypeMenuGroupProps) => {\n const menuTitleId = useMemo(() => uniqueId(\"menu-title-\"), []);\n return (\n <>\n <Box\n p={300}\n role=\"group\"\n aria-labelledby={title ? menuTitleId : undefined}\n borderTop=\"1px solid\"\n borderColor=\"container.border.base\"\n {...props}\n >\n {title && (\n <MenuTitle\n id={menuTitleId}\n role=\"presentation\"\n fontSize={200}\n forwardedAs={titleAs || \"li\"}\n css={isDisabled ? disabled : undefined}\n >\n {title}\n </MenuTitle>\n )}\n {children}\n </Box>\n </>\n );\n};\n\n/**\n * @deprecated MenuDivider is deprecated. MenuDivider will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuDivider = (props: TypeBoxProps) => (\n <Box\n as=\"li\"\n role=\"separator\"\n borderTop=\"1px solid\"\n borderColor=\"container.border.base\"\n {...props}\n />\n);\n\n/**\n * @deprecated MenuFilterInput is deprecated. MenuFilterInput will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuFilterInput = ({ type = \"search\", ...props }: TypeInputProps) => {\n const { onChange, onFocus, onBlur } = props;\n const { state, setState } = useContext(MenuContext);\n const handleOnChange: TypeInputProps[\"onChange\"] = useCallback(\n (event, value) => {\n onChange && onChange(event, value);\n setState({\n filterQuery: value,\n });\n },\n [setState, onChange]\n );\n const handleOnFocus: TypeInputProps[\"onFocus\"] = useCallback(\n (event) => {\n onFocus && onFocus(event);\n setState({\n isFilterInputFocused: true,\n });\n },\n [setState, onFocus]\n );\n const handleOnBlur: TypeInputProps[\"onBlur\"] = useCallback(\n (event) => {\n onBlur && onBlur(event);\n setState({\n isFilterInputFocused: false,\n });\n },\n [setState, onBlur]\n );\n return (\n <Input\n {...props}\n type={type}\n value={state.filterQuery}\n onChange={handleOnChange}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n />\n );\n};\n\n/**\n * @deprecated MenuItems are deprecated. MenuItems will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuItems = ({\n children,\n role,\n multiselect,\n innerRef,\n ...props\n}: TypeMenuProps) => {\n const { handleKeyDown, activeDescendent } = useMenuKeyDown();\n return (\n <MenuItemsContainer\n {...props}\n forwardedAs=\"ul\"\n ref={innerRef}\n role={role}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n aria-activedescendant={activeDescendent?.id}\n aria-multiselectable={multiselect ? true : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n margin={0}\n padding={0}\n overflow=\"hidden\"\n >\n {children}\n </MenuItemsContainer>\n );\n};\n\n/**\n * @deprecated MenuFooter is deprecated. MenuFooter will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuFooter = ({ children }) => {\n const { setState } = useContext(MenuContext);\n const handleOnBlur = useCallback(() => {\n setState({\n isFooterFocused: false,\n });\n }, [setState]);\n const handleOnFocus = useCallback(() => {\n setState({\n isFooterFocused: true,\n });\n }, [setState]);\n return (\n <Box onBlur={handleOnBlur} onFocus={handleOnFocus}>\n {children}\n </Box>\n );\n};\n\n/**\n * @deprecated Menu is deprecated. Menu will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const Menu = ({\n role = MENU_ROLES.MENU,\n children,\n onChange,\n value,\n multiselect,\n innerRef,\n footerContent,\n ...props\n}: TypeMenuProps) => {\n const [descendants, setDescendants] = useDescendants<\n HTMLElement,\n TypeMenuDescendantProps\n >();\n const [state, setState] = useState({\n selectionIndex: 0,\n filterQuery: \"\",\n filteredItems: null,\n isFilterInputFocused: false,\n isFooterFocused: false,\n });\n const selectCallbacks = useRef<((() => void) | null | undefined)[]>([]);\n const menuRef = useRef(null);\n const setContextState = useCallback(\n (newState) => {\n setState({ ...state, ...newState });\n },\n [state]\n );\n return (\n <DescendantProvider\n context={MenuDescendantContext}\n items={descendants}\n set={setDescendants}\n >\n <MenuContext.Provider\n value={{\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n menuRef: innerRef || menuRef,\n role,\n onChange,\n value,\n multiselect,\n state,\n setState: setContextState,\n selectCallbacks,\n }}\n >\n <MenuItems\n {...props}\n role={role}\n multiselect={multiselect}\n innerRef={menuRef}\n >\n {children}\n </MenuItems>\n {footerContent ? <MenuFooter>{footerContent}</MenuFooter> : null}\n </MenuContext.Provider>\n </DescendantProvider>\n );\n};\n\nMenuGroup.displayName = \"Menu.Group\";\nMenuItem.displayName = \"Menu.Item\";\nMenuCheckbox.displayName = \"Menu.Checkbox\";\nMenuRadio.displayName = \"Menu.Radio\";\nMenuSwitch.displayName = \"Menu.Switch\";\nMenuDivider.displayName = \"Menu.Divider\";\nMenuFilterInput.displayName = \"Menu.FilterInput\";\nMenu.displayName = \"Menu\";\n\nMenu.Group = MenuGroup;\nMenu.Item = MenuItem;\nMenu.Checkbox = MenuCheckbox;\nMenu.Radio = MenuRadio;\nMenu.Switch = MenuSwitch;\nMenu.Divider = MenuDivider;\nMenu.FilterInput = MenuFilterInput;\n\nconst CustomPopoutContent = styled(Popout.Content)`\n padding: 0;\n margin-left: 0;\n margin-right: 0;\n`;\n\n/**\n * @deprecated MenuButton is deprecated. MenuButton will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuButton = ({\n content,\n popoutProps,\n children,\n onClick,\n closeOnItemClick = true,\n id = uniqueId(\"MenuButton-\"),\n placement = \"bottom\",\n isOpen,\n setIsOpen,\n ...props\n}: TypeMenuButtonProps) => {\n const [isInternalShown, setIsInternalShown] = useState(false);\n const isControlled = typeof isOpen === \"boolean\";\n const isShown = isControlled ? isOpen : isInternalShown;\n const setIsShown = useMemo(\n () =>\n isControlled && setIsOpen\n ? setIsOpen\n : (nextIsShown) => setIsInternalShown(nextIsShown),\n [isControlled, setIsOpen]\n );\n const closePopout = useCallback(() => setIsShown(false), [setIsShown]);\n const ariaLabelledBy = props[\"aria-labelledby\"]\n ? `${props[\"aria-labelledby\"]} ${id}`\n : undefined;\n const ariaLabel = props[\"aria-label\"]\n ? `${props[\"aria-label\"]} ${innerText(children)}`\n : undefined;\n return (\n <MenuButtonContext.Provider\n value={{\n closePopout,\n closeOnItemClick,\n }}\n >\n <Popout\n isOpen={isShown}\n setIsOpen={setIsShown}\n content={<CustomPopoutContent>{content}</CustomPopoutContent>}\n placement={placement}\n {...popoutProps}\n width={props.width}\n >\n <Button\n {...props}\n id={id}\n aria-labelledby={ariaLabelledBy?.trim()}\n aria-label={ariaLabel?.trim()}\n active={isShown}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick && onClick(e as any); // @ts-notes unfortunately we're passing in a keyboard event here and not the mouse event it expects, so no way to coerce it\n setIsShown(true);\n }\n }}\n onClick={(e) => {\n onClick && onClick(e);\n setIsShown(!isShown);\n }}\n >\n {children}\n </Button>\n </Popout>\n </MenuButtonContext.Provider>\n );\n};\n\n/**\n * @deprecated Menu is deprecated. Menu will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport default Menu;\n","import type { ReactNode } from \"react\";\n\nconst hasOwnProperty = (obj: ReactNode | object, property: string): boolean => {\n return Object.prototype.hasOwnProperty.call(obj, property);\n};\n\nconst hasChildren = (node: object): boolean => {\n return hasOwnProperty(node, \"children\");\n};\n\nconst hasProps = (node: ReactNode): boolean => {\n return hasOwnProperty(node, \"props\");\n};\n\nconst reduceNodeToString = (previous: string, current: ReactNode): string => {\n return previous.length\n ? `${previous} ${innerText(current)}`\n : innerText(current);\n};\n\nexport const innerText = (node: ReactNode): string => {\n if (\n node === null ||\n typeof node === \"undefined\" ||\n typeof node === \"boolean\"\n ) {\n return \"\";\n } else if (typeof node === \"string\") {\n return node;\n } else if (typeof node === \"number\") {\n return node.toString();\n } else if (Array.isArray(node)) {\n return (node as React.ReactNodeArray).reduce<string>(\n reduceNodeToString,\n \"\"\n );\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - hasProps checks for props, but may be able to fix this\n } else if (hasProps(node) && hasChildren(node.props)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - how can we make sure ts knows this is ok?\n return innerText(node.props.children);\n }\n\n return \"\";\n};\n","export const MENU_ROLES = Object.freeze({\n MENU: \"menu\",\n LIST: \"list\",\n LISTBOX: \"listbox\",\n} as const);\nexport const MENU_ITEM_ROLES = Object.freeze({\n MENUITEM: \"menuitem\",\n LISTITEM: \"listitem\",\n OPTION: \"option\",\n RADIO: \"menuitemradio\",\n CHECKBOX: \"menuitemcheckbox\",\n} as const);\n","/* eslint-disable */\nimport * as React from \"react\";\nimport {\n createContext,\n useState,\n useLayoutEffect,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\n\n/**\n * These hooks and utilities are largely copied from the @reach-ui/descendents package. They consider the package\n * pre-release and unstable, so instead of importing it, we copied it here and changed the types from TypeScript to\n * Flow. If the package ever stabilizes, we can import these functions from there and remove this file.\n */\nexport type TypeDescendant<ElementType, DescendantProps> = DescendantProps & {\n element: ElementType | null;\n index: number;\n};\ntype TypeDescendantContext<ElementType, DescendantProps> = {\n descendants: TypeDescendant<ElementType, DescendantProps>[];\n registerDescendant(\n descendant: Omit<TypeDescendant<ElementType, DescendantProps>, \"index\">\n ): void;\n unregisterDescendant(element: ElementType | null): void;\n};\n\nconst noop = () => {};\n\n/**\n * Returns the previous value of a reference after a component update.\n *\n * @param value\n */\nexport function usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nexport function wrapEvent<EventType extends React.SyntheticEvent | Event>(\n theirHandler: ((event: EventType) => any) | null | undefined,\n ourHandler: (event: EventType) => any\n): (event: EventType) => any {\n return (event) => {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\nexport function canUseDOM() {\n return (\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n );\n}\nconst useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect;\n\nexport function createNamedContext<ContextValueType>(\n name: string,\n defaultValue: ContextValueType\n): React.Context<ContextValueType> {\n const Ctx = createContext<ContextValueType>(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\n\nexport function createDescendantContext(\n name: string,\n initialValue = {\n descendants: [],\n registerDescendant: noop,\n unregisterDescendant: noop,\n }\n) {\n return createNamedContext(name, {\n ...initialValue,\n });\n}\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node and (optionally) a key. The key is useful\n * if multiple descendants have identical text values and we need to\n * differentiate siblings for some reason.\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation. However, in the few cases where\n * this is not the case, we can require an explicit index from the app.\n */\nexport function useDescendant<ElementType, DescendantProps>(\n { context, element, ...rest },\n indexProp?: number\n) {\n let [, forceUpdate] = useState<any>();\n let { registerDescendant, unregisterDescendant, descendants } =\n useContext<TypeDescendantContext<ElementType, DescendantProps>>(context);\n // Prevent any flashing\n useIsomorphicLayoutEffect(() => {\n if (!element) forceUpdate({});\n registerDescendant({\n element,\n ...rest,\n } as any);\n return () => unregisterDescendant(element);\n }, [element, ...Object.values(rest)]);\n return indexProp\n ? indexProp\n : descendants.findIndex((item) => item.element === element);\n}\nexport function useDescendants<ElementType, DescendantProps>() {\n return useState<TypeDescendant<ElementType, DescendantProps>[]>([]);\n}\nexport function DescendantProvider<\n ElementType extends HTMLElement,\n DescendantProps\n>({\n context: Ctx,\n children,\n items,\n set,\n}: {\n context: any;\n children: React.ReactNode;\n items: TypeDescendant<ElementType, DescendantProps>[];\n set: (\n arg0: (arg0: TypeDescendant<ElementType, DescendantProps>[]) => any\n ) => any;\n}) {\n let registerDescendant = useCallback(\n ({ element, ...rest }) => {\n if (!element) {\n return;\n }\n\n set((items) => {\n let newItem;\n let newItems;\n\n // If there are no items, register at index 0 and bail.\n if (items.length === 0) {\n newItem = {\n element,\n index: 0,\n ...rest,\n };\n newItems = [...items, newItem];\n } else if (items.find((item) => item.element === element)) {\n // If the element is already registered, just use the same array\n newItems = items;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n let index = items.findIndex((item) => {\n if (!item.element || !element) {\n return false;\n }\n\n // Does this element's DOM node appear before another item in the\n // array in our DOM tree? If so, return true to grab the index at\n // this point in the array so we know where to insert the new\n // element.\n return Boolean(\n item.element.compareDocumentPosition(element) &\n Node.DOCUMENT_POSITION_PRECEDING\n );\n });\n newItem = {\n element,\n index,\n ...rest,\n };\n\n // If an index is not found we will push the element to the end.\n if (index === -1) {\n newItems = [...items, newItem];\n } else {\n newItems = [\n ...items.slice(0, index),\n newItem,\n ...items.slice(index),\n ];\n }\n }\n\n return newItems.map((item, index) => ({ ...item, index }));\n });\n }, // set is a state setter initialized by the useDescendants hook.\n // We can safely ignore the lint warning here because it will not change\n // between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n let unregisterDescendant = useCallback(\n (element: TypeDescendant<ElementType, DescendantProps>[\"element\"]) => {\n if (!element) {\n return;\n }\n\n set((items) =>\n items\n .filter((item) => element !== item.element)\n .map((item, index) => ({ ...item, index }))\n );\n }, // set is a state setter initialized by the useDescendants hook.\n // We can safely ignore the lint warning here because it will not change\n // between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n const value = useMemo(() => {\n return {\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n };\n }, [items, registerDescendant, unregisterDescendant]);\n return <Ctx.Provider value={value}>{children}</Ctx.Provider>;\n}\nexport function useDescendantKeyDown<\n ElementType,\n DescendantProps,\n K extends keyof TypeDescendant<ElementType, DescendantProps>\n>(\n context: React.Context<TypeDescendantContext<ElementType, DescendantProps>>,\n options: {\n currentIndex?: number;\n key?: K | \"option\";\n filter?: (\n descendant: TypeDescendant<ElementType, DescendantProps>\n ) => boolean;\n orientation?: \"vertical\" | \"horizontal\" | \"both\";\n rotate?: boolean;\n rtl?: boolean;\n callback(\n nextOption:\n | TypeDescendant<ElementType, DescendantProps>\n | TypeDescendant<ElementType, DescendantProps>[keyof TypeDescendant<\n ElementType,\n DescendantProps\n >]\n ): void;\n }\n) {\n let { descendants } = useContext(context);\n let {\n callback,\n currentIndex,\n filter,\n key = \"index\",\n orientation = \"vertical\",\n rotate = true,\n rtl = false,\n } = options;\n let index = currentIndex ? currentIndex : -1;\n return function handleKeyDown(event: React.KeyboardEvent) {\n if (\n ![\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"PageUp\",\n \"PageDown\",\n \"Home\",\n \"End\",\n ].includes(event.key)\n ) {\n return;\n }\n\n // If we use a filter function, we need to re-index our descendants array\n // so that filtered descendent elements aren't selected.\n let selectableDescendants = filter\n ? descendants.filter(filter)\n : descendants;\n\n // Current index should map to the updated array vs. the original\n // descendants array.\n if (filter) {\n index = selectableDescendants.findIndex(\n (descendant) => descendant.index === currentIndex\n );\n }\n\n // We need some options for any of this to work!\n if (!selectableDescendants.length) {\n return;\n }\n\n function getNextOption() {\n let atBottom = index === selectableDescendants.length - 1;\n return atBottom\n ? rotate\n ? getFirstOption()\n : selectableDescendants[index]\n : selectableDescendants[(index + 1) % selectableDescendants.length];\n }\n\n function getPreviousOption() {\n let atTop = index === 0;\n return atTop\n ? rotate\n ? getLastOption()\n : selectableDescendants[index]\n : selectableDescendants[\n (index - 1 + selectableDescendants.length) %\n selectableDescendants.length\n ];\n }\n\n function getFirstOption() {\n return selectableDescendants[0];\n }\n\n function getLastOption() {\n return selectableDescendants[selectableDescendants.length - 1];\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let next = getNextOption() as any; // @ts-notes: sincerely dont understand the intent of the original library here, since the supposed reference has been completely refactored\n callback(key === \"option\" ? next : next[key]);\n }\n\n break;\n\n case \"ArrowUp\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let prev = getPreviousOption() as any;\n callback(key === \"option\" ? prev : prev[key]);\n }\n\n break;\n\n case \"ArrowLeft\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let nextOrPrev = (rtl ? getNextOption : getPreviousOption)() as any;\n callback(key === \"option\" ? nextOrPrev : nextOrPrev[key]);\n }\n\n break;\n\n case \"ArrowRight\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let prevOrNext = (rtl ? getPreviousOption : getNextOption)() as any;\n callback(key === \"option\" ? prevOrNext : prevOrNext[key]);\n }\n\n break;\n\n case \"PageUp\":\n event.preventDefault();\n let prevOrFirst = (\n event.ctrlKey ? getPreviousOption : getFirstOption\n )() as any;\n callback(key === \"option\" ? prevOrFirst : prevOrFirst[key]);\n break;\n\n case \"Home\":\n event.preventDefault();\n let first = getFirstOption() as any;\n callback(key === \"option\" ? first : first[key]);\n break;\n\n case \"PageDown\":\n event.preventDefault();\n let nextOrLast = (\n event.ctrlKey ? getNextOption : getLastOption\n )() as any;\n callback(key === \"option\" ? nextOrLast : nextOrLast[key]);\n break;\n\n case \"End\":\n event.preventDefault();\n let last = getLastOption() as any;\n callback(key === \"option\" ? last : last[key]);\n break;\n }\n };\n}\n","// eslint-disable @typescript-eslint/no-explicit-any\nimport { createContext, useContext, useEffect } from \"react\";\nimport scrollIntoViewIfNeeded from \"scroll-into-view-if-needed\";\nimport type { TypeMenuButtonContext, TypeMenuContext } from \"../MenuTypes\";\nimport { MENU_ROLES } from \"./constants\";\nimport type { TypeDescendant } from \"./descendants\";\nimport {\n createDescendantContext,\n useDescendantKeyDown,\n usePrevious,\n wrapEvent,\n} from \"./descendants\";\nexport const MenuContext = createContext<TypeMenuContext>({\n role: MENU_ROLES.MENU,\n menuRef: {\n current: null,\n },\n value: undefined,\n multiselect: false,\n onChange: undefined,\n state: {\n selectionIndex: 0,\n filterQuery: \"\",\n filteredItems: null,\n isFilterInputFocused: false,\n isFooterFocused: false,\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setState: () => {},\n selectCallbacks: {\n current: [],\n },\n});\nexport const MenuButtonContext = createContext<TypeMenuButtonContext>({\n closeOnItemClick: undefined,\n closePopout: undefined,\n});\nexport type TypeMenuDescendantProps = {\n id: string;\n label: string | null | undefined;\n value?: string;\n disabled?: boolean;\n};\nexport const MenuDescendantContext = createDescendantContext(\n \"MenuDescendantContext\"\n);\n\n/**\n * When a user's typed input matches the string displayed in a menu item, it is\n * expected that the matching menu item is selected. This is our matching\n * function.\n */\nfunction filterItemsFromTypeahead(\n items: TypeDescendant<HTMLElement, TypeMenuDescendantProps>[],\n string = \"\"\n) {\n if (!string) {\n return null;\n }\n\n return items\n .filter(\n ({ value, label }) =>\n value?.toLowerCase().includes(string.toLocaleLowerCase()) ||\n label?.toLowerCase().includes(string.toLocaleLowerCase())\n )\n .map(({ index }) => index);\n}\n\nexport function useMenuKeyDown() {\n const {\n onChange,\n selectCallbacks,\n setState,\n multiselect,\n state: {\n filterQuery,\n selectionIndex,\n filteredItems,\n isFilterInputFocused,\n isFooterFocused,\n },\n } = useContext(MenuContext);\n const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);\n const { descendants: items } = useContext(MenuDescendantContext);\n const shouldClosePopout = closeOnItemClick && !multiselect;\n const prevMenuItemsLength = usePrevious(items.length);\n const prevSelected = usePrevious(items[selectionIndex]);\n const prevSelectionIndex = usePrevious(selectionIndex);\n useEffect(() => {\n if (items.length && selectionIndex > items.length - 1) {\n // If for some reason our selection index is larger than our possible\n // index range (let's say the last item is selected and the list\n // dynamically updates), we need to select the last item in the list.\n setState({\n selectionIndex: items.length - 1,\n });\n } else if (\n // Checks if\n // - menu length has changed\n // - selection index has not changed BUT selected item has changed\n //\n // This prevents any dynamic adding/removing of menu items from actually\n // changing a user's expected selection.\n prevMenuItemsLength !== items.length &&\n selectionIndex > -1 &&\n prevSelected &&\n prevSelectionIndex === selectionIndex &&\n items[selectionIndex] !== prevSelected\n ) {\n setState({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore I'm just going to ignore this one because its really hard to estimate where this stuff is coming from at any given time\n selectionIndex: items.findIndex((i) => i.index === prevSelected.index),\n });\n }\n }, [\n setState,\n items,\n prevMenuItemsLength,\n prevSelected,\n prevSelectionIndex,\n selectionIndex,\n ]);\n useEffect(() => {\n const newFilteredItems = filterItemsFromTypeahead(items, filterQuery);\n\n if (\n filterQuery &&\n newFilteredItems &&\n filteredItems?.length !== newFilteredItems?.length\n ) {\n setState({\n filteredItems: newFilteredItems,\n selectionIndex: newFilteredItems[0],\n });\n } else if (!filterQuery && filteredItems !== null) {\n setState({\n filteredItems: null,\n });\n }\n }, [filterQuery, items, setState, filteredItems]);\n const index = items.findIndex(({ index }) => index === selectionIndex);\n return {\n activeDescendent: items[selectionIndex],\n handleKeyDown: wrapEvent<React.KeyboardEvent>(\n function (event) {\n const { key } = event;\n // Do not trigger key events for the selected item if the footer is focused\n if (isFooterFocused) {\n return;\n }\n\n switch (key) {\n case \" \":\n if (isFilterInputFocused) {\n return;\n }\n\n // falls through\n // eslint-disable-next-line no-fallthrough\n case \"Enter\":\n // eslint-disable-next-line no-case-declarations\n const selected = items[selectionIndex] as HTMLElement[] & {\n index: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n disabled?: boolean;\n };\n\n if (selected && !selected.disabled) {\n event.preventDefault();\n const func = selectCallbacks.current[selected.index];\n func?.call && func();\n onChange && selected.value && onChange(selected.value);\n shouldClosePopout && closePopout && closePopout();\n }\n\n return;\n\n default:\n return;\n }\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useDescendantKeyDown(MenuDescendantContext as React.Context<any>, {\n currentIndex: index,\n orientation: \"vertical\",\n key: \"option\",\n rotate: true,\n filter: (\n option: TypeDescendant<HTMLElement, TypeMenuDescendantProps>\n ) =>\n !option.disabled &&\n (!filteredItems || filteredItems.includes(option.index)),\n\n callback(item: TypeDescendant<HTMLElement, TypeMenuDescendantProps>) {\n if (item.element) {\n scrollIntoViewIfNeeded(item.element, {\n block: \"nearest\",\n scrollMode: \"if-needed\",\n });\n }\n\n setState({\n selectionIndex: item.index,\n });\n },\n })\n ),\n };\n}\n","import styled, { css } from \"styled-components\";\nimport { disabled, focusRing } from \"@sproutsocial/seeds-react-mixins\";\nimport Box from \"@sproutsocial/seeds-react-box\";\nimport { StyledSwitchButton as Switch } from \"@sproutsocial/seeds-react-switch\";\nimport type { TypeMenuItemContainerProps } from \"./MenuTypes\";\n\nexport const MenuItemContainer = styled(Box)<TypeMenuItemContainerProps>`\n ${(props) =>\n !props.hidden &&\n css`\n display: block;\n `};\n width: 100%;\n border-radius: ${(props) => props.theme.radii[500]};\n background-color: ${(props) => props.theme.colors.listItem.background.base};\n border: none;\n text-align: left;\n color: ${(props) => props.theme.colors.text.body};\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.normal};\n padding: ${(props) => `6px ${props.theme.space[300]}`};\n list-style-type: none;\n outline: 0;\n ${(props) => css`\n ${props.theme.typography[200]};\n `};\n\n ${(props) =>\n props.selected &&\n !props.isCheckboxOrRadio &&\n css`\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n `}\n\n ${(props) =>\n props.active &&\n !props.disabled &&\n css`\n color: ${(props) => props.theme.colors.text.inverse};\n background-color: ${props.theme.colors.listItem.background.selected};\n\n .Icon-svg {\n color: ${(props) => props.theme.colors.text.inverse};\n }\n `}\n\n // Add border to Switches inside of active Menu Items so they do not disappear into the background.\n ${Switch} {\n ${(props) =>\n props.active &&\n !props.disabled &&\n css`\n border-color: ${(props) => props.theme.colors.container.border.base};\n `}\n }\n\n ${(props) =>\n !props.disabled &&\n css`\n &:focus,\n &:hover {\n color: ${(props) => props.theme.colors.text.body};\n background-color: ${(props) =>\n props.theme.colors.listItem.background.hover};\n\n .Icon-svg {\n color: unset;\n }\n }\n `}\n\n ${(props) =>\n props.interactive && !props.disabled\n ? css`\n &:hover {\n cursor: pointer;\n }\n `\n : css`\n &:hover {\n cursor: default;\n }\n `}\n ${(props) => props.disabled && disabled}\n`;\n\nexport const MenuItemsContainer = styled(Box)`\n list-style-type: none;\n &:focus {\n ${focusRing}\n }\n & > div[role=\"group\"]:first-of-type {\n border-top: none;\n }\n`;\n","import Menu, { MenuButton } from \"./Menu\";\n\nexport { Menu, MenuButton };\nexport default Menu;\nexport * from \"./MenuTypes\";\nexport * from \"./styles\";\nexport * from \"./utils\";\n","import styled from \"styled-components\";\n\nconst Nav = styled.nav`\n ol {\n ${(props) => props.theme.typography[200]};\n margin: 0;\n font-family: ${(props) => props.theme.fontFamily};\n padding: 0;\n display: flex;\n }\n\n li {\n margin-right: ${(props) => props.theme.space[200]};\n display: flex;\n }\n\n a,\n button {\n ${(props) => props.theme.typography[200]};\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:not(.overflow--menu) {\n margin: 0;\n padding: 0;\n }\n }\n\n ol > div + li::before {\n content: \"/\";\n margin-right: ${(props) => props.theme.space[200]};\n }\n\n li:last-child a,\n li:last-child button {\n color: ${(props) => props.theme.colors.text.body};\n font-weight: bold;\n }\n\n li:not(:last-child)::after {\n content: \"/\";\n color: ${(props) => props.theme.colors.text.body};\n margin-left: ${(props) => props.theme.space[200]};\n }\n`;\n\nexport default Nav;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { MENU_ROLES } from \"../Menu/utils/constants\";\nimport { Arrow } from \"@sproutsocial/seeds-react-select\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\n// eslint-disable-next-line no-restricted-imports\nimport Menu, { MenuButton } from \"../Menu\";\nimport type { TypeListboxProps, TypeListboxButtonProps } from \"./ListboxTypes\";\n\n/**\n * @deprecated Listbox is deprecated. Listbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const Listbox = ({\n role = MENU_ROLES.LISTBOX,\n children,\n ...rest\n}: TypeListboxProps) => {\n return (\n <Menu {...rest} role={role}>\n {children}\n </Menu>\n );\n};\n\n/**\n * These styles are copied from @sproutsocial/racine/commonjs/Select/styles and applied at the root element since\n * the Listbox component doesn't render a select.\n */\nexport const ListboxButtonContainer = styled(MenuButton)`\n position: relative;\n width: 100%;\n border: 1px solid ${(props) => props.theme.colors.form.border.base};\n border-radius: ${(props) => props.theme.radii[500]};\n background-color: ${(props) => props.theme.colors.form.background.base};\n color: ${(props) => props.theme.colors.text.body};\n cursor: ${(props) => (props.disabled ? \"not-allowed\" : \"pointer\")};\n outline: none;\n appearance: none;\n transition: border-color ${(props) => props.theme.duration.fast}\n ${(props) => props.theme.easing.ease_in},\n box-shadow ${(props) => props.theme.duration.fast}\n ${(props) => props.theme.easing.ease_in};\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.normal};\n text-align: left;\n margin: 0;\n &:active {\n transform: none;\n }\n\n padding: ${(props) => {\n switch (props.size) {\n case \"large\":\n return `${props.theme.space[400]} ${props.theme.space[600]} ${props.theme.space[400]} ${props.theme.space[400]}`;\n\n case \"small\":\n return `${props.theme.space[200]} ${props.theme.space[500]} ${props.theme.space[200]} ${props.theme.space[200]}`;\n\n case \"default\":\n default:\n return `${props.theme.space[300]} ${props.theme.space[500]} ${props.theme.space[300]} ${props.theme.space[300]}`;\n }\n }};\n font-size: ${(props) => {\n switch (props.size) {\n case \"large\":\n return props.theme.typography[300].fontSize;\n\n case \"small\":\n case \"default\":\n default:\n return props.theme.typography[200].fontSize;\n }\n }};\n\n ${(props) =>\n props.invalid &&\n css`\n border-color: ${(props) => props.theme.colors.form.border.error};\n ${Arrow} {\n color: ${(props) => props.theme.colors.icon.error};\n }\n `}\n`;\n\n/**\n * @deprecated ListboxButton is deprecated. ListboxButton will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const ListboxButton = ({\n children,\n ...restProps\n}: TypeListboxButtonProps) => (\n <ListboxButtonContainer\n {...restProps}\n popoutProps={{\n placement: \"bottom-start\",\n ...(restProps.popoutProps || {}),\n }}\n >\n {children}\n <Arrow size={restProps.size}>\n <Icon name=\"chevron-down-outline\" fixedWidth aria-hidden />\n </Arrow>\n </ListboxButtonContainer>\n);\n\nListbox.Option = Listbox.Item = Menu.Item;\nListbox.Checkbox = Menu.Checkbox;\nListbox.Radio = Menu.Radio;\nListbox.Switch = Menu.Switch;\nListbox.Group = Menu.Group;\nListbox.Divider = Menu.Divider;\nListbox.FilterInput = Menu.FilterInput;\n\n/**\n * @deprecated Listbox is deprecated. Listbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport default Listbox;\n","import * as React from \"react\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Container, { IconText } from \"./styles\";\nimport type { TypeToggleHintProps } from \"./ToggleHintTypes\";\n/**\n * Icon (either chevron or plus/minus) indicating whether an element is open or closed.\n */\n\n/**\n * @deprecated ToggleHint is deprecated. ToggleHint is no longer supported and will be removed in 2025.\n */\nexport default class ToggleHint extends React.Component<TypeToggleHintProps> {\n static defaultProps = {\n isOpen: false,\n icon: \"chevron\",\n };\n getIcon = () => {\n if (this.props.icon === \"chevron\") {\n return <Icon name=\"chevron-down-outline\" aria-hidden />;\n }\n\n return (\n <Icon\n name={this.props.isOpen ? \"minus-outline\" : \"plus-outline\"}\n aria-hidden\n />\n );\n };\n\n render() {\n const {\n icon,\n isOpen,\n openString,\n closeString,\n qa,\n className,\n color,\n ...rest\n } = this.props;\n return (\n <Container\n icon={icon}\n isOpen={isOpen}\n className={`ToggleHint ${className}`}\n data-qa-togglehint-isopen={isOpen}\n // TODO: fix this type since `color` should be valid here. TS can't resolve the correct type.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n color={color}\n {...qa}\n {...rest}\n >\n {this.getIcon()}\n\n <IconText>{isOpen ? closeString : openString}</IconText>\n </Container>\n );\n }\n}\n","import styled, { css } from \"styled-components\";\nimport { COMMON } from \"@sproutsocial/seeds-react-system-props\";\nimport { visuallyHidden } from \"@sproutsocial/seeds-react-mixins\";\nimport { TypeToggleHintProps } from \"./ToggleHintTypes\";\n\nconst Container = styled.div<Pick<TypeToggleHintProps, \"icon\" | \"isOpen\">>`\n position: relative;\n display: inline-block;\n padding: ${(props) => props.theme.space[100]};\n color: currentColor;\n\n ${(props) =>\n props.icon === \"chevron\" &&\n css`\n transition: transform\n ${(props) =>\n `${props.theme.duration.medium} ${props.theme.easing.ease_inout}`};\n\n ${props.isOpen &&\n css`\n transform: rotateX(180deg);\n `}\n `}\n\n ${COMMON}\n`;\n\nexport const IconText = styled.div`\n ${visuallyHidden}\n`;\n\nexport default Container;\n"],"mappings":"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","names":["default","useTextContent","Icon","useCallback","useContext","useEffect","useMemo","useRef","useState","styled","disabled","Box","Switch","items","createContext","useContext","useEffect","createContext","useContext","useEffect","index","props","jsx","noop","disabled","useContext","useMemo","useRef","useState","useEffect","useCallback","Switch","styled","Box","Menu_default","styled","jsx","jsxs","Icon","styled","css","Icon","jsx","jsxs","Menu_default","styled","css","props","Icon","React","Icon","styled","css","props","styles_default","jsx","jsxs","Icon","styles_default"]}
1
+ {"version":3,"sources":["../../src/index.ts","../../src/Breadcrumb/Breadcrumb.tsx","../../src/Menu/Menu.tsx","../../src/Menu/utils/innertext.ts","../../src/Menu/utils/constants.ts","../../src/Menu/utils/descendants.tsx","../../src/Menu/utils/hooks.ts","../../src/Menu/styles.ts","../../src/Menu/index.ts","../../src/Breadcrumb/styles.ts","../../src/Listbox/Listbox.tsx","../../src/ToggleHint/ToggleHint.tsx","../../src/ToggleHint/styles.ts"],"sourcesContent":["/* Asset types */\nexport type { EnumIconNames } from \"@sproutsocial/seeds-icons\";\nexport type { EnumIllustrationNames } from \"@sproutsocial/seeds-illustrations\";\nexport type { EnumLogoNamesWithoutVariants as EnumLogoNames } from \"@sproutsocial/seeds-partner-logos\";\n\nexport { IllustrationNames as SpotIllustrationNames } from \"@sproutsocial/seeds-illustrations\";\nexport { LogoNamesWithoutVariants as PartnerLogoNames } from \"@sproutsocial/seeds-partner-logos\";\n\n/* Theme and related types */\nexport * from \"@sproutsocial/seeds-react-system-props\";\nexport * from \"@sproutsocial/seeds-react-theme\";\nexport { default as ThemeProvider } from \"@sproutsocial/seeds-react-theme-provider\";\n\n/* Utilities and related types */\nexport {\n useSelect,\n useMultiselect,\n useTextContent,\n useMeasure,\n useInteractiveColor,\n} from \"@sproutsocial/seeds-react-hooks\";\nexport * from \"@sproutsocial/seeds-react-mixins\";\n\n/* Components */\nexport * from \"@sproutsocial/seeds-react-avatar\";\nexport * from \"@sproutsocial/seeds-react-badge\";\nexport * from \"@sproutsocial/seeds-react-banner\";\nexport * from \"@sproutsocial/seeds-react-box\";\nexport * from \"./Breadcrumb\";\nexport * from \"@sproutsocial/seeds-react-button\";\nexport * from \"@sproutsocial/seeds-react-card\";\nexport * from \"@sproutsocial/seeds-react-character-counter\";\nexport * from \"@sproutsocial/seeds-react-chart-legend\";\nexport * from \"@sproutsocial/seeds-react-checkbox\";\nexport * from \"@sproutsocial/seeds-react-collapsible\";\nexport * from \"@sproutsocial/seeds-react-datepicker\";\nexport * from \"@sproutsocial/seeds-react-drawer\";\nexport * from \"@sproutsocial/seeds-react-duration\";\nexport * from \"@sproutsocial/seeds-react-empty-state\";\nexport * from \"@sproutsocial/seeds-react-fieldset\";\nexport * from \"@sproutsocial/seeds-react-form-field\";\nexport * from \"@sproutsocial/seeds-react-icon\";\nexport * from \"@sproutsocial/seeds-react-image\";\nexport * from \"@sproutsocial/seeds-react-indicator\";\nexport * from \"@sproutsocial/seeds-react-input\";\nexport * from \"@sproutsocial/seeds-react-keyboard-key\";\nexport * from \"@sproutsocial/seeds-react-label\";\nexport * from \"@sproutsocial/seeds-react-link\";\nexport * from \"./Listbox\";\nexport * from \"@sproutsocial/seeds-react-loader\";\nexport * from \"@sproutsocial/seeds-react-loader-button\";\nexport * from \"./Menu\";\nexport * from \"@sproutsocial/seeds-react-modal\";\nexport * from \"@sproutsocial/seeds-react-message\";\nexport * from \"@sproutsocial/seeds-react-numeral\";\nexport * from \"@sproutsocial/seeds-react-partner-logo\";\nexport * from \"@sproutsocial/seeds-react-popout\";\nexport * from \"@sproutsocial/seeds-react-portal\";\nexport * from \"@sproutsocial/seeds-react-radio\";\nexport * from \"@sproutsocial/seeds-react-rating\";\nexport * from \"@sproutsocial/seeds-react-segmented-control\";\nexport * from \"@sproutsocial/seeds-react-select\";\nexport * from \"@sproutsocial/seeds-react-skeleton\";\nexport * from \"@sproutsocial/seeds-react-spot-illustration\";\nexport * from \"@sproutsocial/seeds-react-stack\";\nexport * from \"@sproutsocial/seeds-react-switch\";\nexport * from \"@sproutsocial/seeds-react-table\";\nexport * from \"@sproutsocial/seeds-react-table/TableCell\";\nexport * from \"@sproutsocial/seeds-react-table/TableHeaderCell\";\nexport * from \"@sproutsocial/seeds-react-table/TableRowAccordion\";\nexport * from \"@sproutsocial/seeds-react-tabs\";\nexport * from \"@sproutsocial/seeds-react-text\";\nexport * from \"@sproutsocial/seeds-react-textarea\";\nexport * from \"@sproutsocial/seeds-react-toast\";\nexport * from \"./ToggleHint\";\nexport * from \"@sproutsocial/seeds-react-token\";\nexport * from \"@sproutsocial/seeds-react-token-input\";\nexport * from \"@sproutsocial/seeds-react-tooltip\";\nexport * from \"@sproutsocial/seeds-react-visually-hidden\";\n/* End */\n\n/**\n * @deprecated Alert has been renamed to Banner\n */\nexport { Banner as Alert } from \"@sproutsocial/seeds-react-banner\";\n","import * as React from \"react\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Link from \"@sproutsocial/seeds-react-link\";\n// eslint-disable-next-line no-restricted-imports\nimport { MenuButton } from \"../Menu\";\nimport Nav from \"./styles\";\nimport type {\n TypeBreadcrumbProps,\n TypeBreadcrumbItemProps,\n} from \"./BreadcrumbTypes\";\n\n/**\n * @deprecated BreadcrumbItem is deprecated. BreadcrumbItem will be removed in 2025 in favor of seeds-react-breadcrumb which utilizes the new Menu ecosystem. Please create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-breadcrumb | seeds-react-breadcrumb}.\n */\nconst BreadcrumbItem = ({\n children,\n href,\n ...rest\n}: TypeBreadcrumbItemProps) => {\n return (\n <li>\n <Link href={href} {...rest}>\n {children}\n </Link>\n </li>\n );\n};\n\n/**\n * @deprecated Breadcrumb is deprecated. This iteration of Breadcrumb will be removed in 2025 in favor of seeds-react-breadcrumb which utilizes the new Menu ecosystem. Please create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-breadcrumb | seeds-react-breadcrumb}.\n */\nconst Breadcrumb = ({\n ariaLabel,\n overflow,\n children,\n ...rest\n}: TypeBreadcrumbProps) => {\n const listItems = React.Children.toArray(children);\n const lastItem = listItems[listItems.length - 1];\n return (\n <Nav aria-label={ariaLabel} data-qa-breadcrumb={ariaLabel} {...rest}>\n <ol>\n {overflow && (\n <li>\n <MenuButton\n appearance=\"secondary\"\n content={overflow.menu}\n aria-label={overflow.label}\n className=\"overflow--menu\"\n px={200}\n py={0}\n >\n <Icon name=\"ellipsis-horizontal-solid\" aria-hidden />\n </MenuButton>\n </li>\n )}\n {listItems.map((item, i) => {\n // @ts-notes - item is a childNode which can be a string or number but `cloneElement` requires props\n const itemElem =\n typeof item === \"object\" && \"props\" in item ? (\n item\n ) : (\n <span>item</span>\n );\n return React.cloneElement(itemElem, {\n ...itemElem.props,\n \"aria-current\": listItems[i] === lastItem ? \"page\" : undefined,\n });\n })}\n </ol>\n </Nav>\n );\n};\n\nBreadcrumbItem.displayName = \"Breadcrumb.Item\";\nBreadcrumb.Item = BreadcrumbItem;\n\nexport default Breadcrumb;\n","import * as React from \"react\";\nimport {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"styled-components\";\nimport uniqueId from \"lodash.uniqueid\";\nimport { useTextContent } from \"@sproutsocial/seeds-react-hooks\";\nimport { innerText } from \"./utils/innertext\";\nimport { disabled } from \"@sproutsocial/seeds-react-mixins\";\nimport Box, { TypeBoxProps } from \"@sproutsocial/seeds-react-box\";\nimport Button from \"@sproutsocial/seeds-react-button\";\nimport Checkbox from \"@sproutsocial/seeds-react-checkbox\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Input, { TypeInputProps } from \"@sproutsocial/seeds-react-input\";\nimport Popout from \"@sproutsocial/seeds-react-popout\";\nimport Radio from \"@sproutsocial/seeds-react-radio\";\nimport Switch from \"@sproutsocial/seeds-react-switch\";\nimport Text from \"@sproutsocial/seeds-react-text\";\nimport type {\n TypeMenuButtonProps,\n TypeMenuGroupProps,\n TypeMenuItemProps,\n TypeMenuItemRoles,\n TypeMenuProps,\n TypeMenuRoles,\n TypeMenuSwitchProps,\n} from \"./MenuTypes\";\nimport {\n MENU_ITEM_ROLES,\n MENU_ROLES,\n DescendantProvider,\n useDescendant,\n useDescendants,\n MenuButtonContext,\n MenuContext,\n MenuDescendantContext,\n useMenuKeyDown,\n} from \"./utils\";\nimport type { TypeMenuDescendantProps } from \"./utils\";\nimport { MenuItemContainer, MenuItemsContainer } from \"./styles\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nconst getMenuItemRole = (\n menuRole?: TypeMenuRoles | null\n): TypeMenuItemRoles => {\n switch (menuRole) {\n case MENU_ROLES.LIST:\n return MENU_ITEM_ROLES.LISTITEM;\n\n case MENU_ROLES.LISTBOX:\n return MENU_ITEM_ROLES.OPTION;\n\n case MENU_ROLES.MENU:\n default:\n return MENU_ITEM_ROLES.MENUITEM;\n }\n};\n\nfunction isValueSelected(menuValue, value) {\n if (!menuValue) return false;\n\n if (typeof menuValue === \"string\") {\n return Boolean(menuValue && value && menuValue === value);\n } else if (Array.isArray(menuValue)) {\n return menuValue.includes(value);\n }\n\n return false;\n}\n\n/**\n * @deprecated MenuItem is deprecated. MenuItem will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuItem = ({\n id: idProp,\n index: indexProp,\n as,\n children,\n role: roleProp,\n elemBefore,\n elemAfter,\n value: valueProp,\n onKeyPress,\n onClick,\n selected,\n disabled,\n indeterminate,\n label: labelProp,\n active: activeProp,\n ...props\n}: TypeMenuItemProps) => {\n const {\n role: menuRole,\n onChange,\n value,\n multiselect,\n state: menuState,\n selectCallbacks,\n menuRef,\n } = useContext(MenuContext);\n const { selectionIndex, filteredItems } = menuState;\n const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);\n const isSelected = selected || isValueSelected(value, valueProp);\n const shouldClosePopout = closeOnItemClick && !multiselect;\n const itemRole = roleProp || getMenuItemRole(menuRole);\n const id = useMemo(() => idProp || uniqueId(\"MenuItem-\"), [idProp]);\n const textContent = useTextContent(\"\");\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const label = labelProp || textContent.current;\n const ref = useRef<HTMLDivElement | null>(null);\n const index = useDescendant<HTMLElement, TypeMenuDescendantProps>(\n {\n context: MenuDescendantContext,\n element: ref.current,\n value: valueProp || label,\n label,\n disabled,\n id,\n },\n indexProp\n );\n const isHidden = filteredItems && !filteredItems.includes(index);\n const isFocused = index === selectionIndex;\n selectCallbacks.current[index] = onClick;\n const [keyPressed, setKeyPressed] = useState(false);\n const isActive = useMemo(\n () => activeProp || (isFocused && keyPressed),\n [activeProp, isFocused, keyPressed]\n );\n const isCheckboxOrRadio = [\n MENU_ITEM_ROLES.CHECKBOX,\n MENU_ITEM_ROLES.RADIO,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ].includes(itemRole as any); // @ts-notes @refactor - since we're only really checking against the string I think we can safely leave this for refactor, nothing else worked for me\n const interactive =\n onClick ||\n onKeyPress ||\n [\n MENU_ITEM_ROLES.OPTION,\n MENU_ITEM_ROLES.MENUITEM,\n MENU_ITEM_ROLES.CHECKBOX,\n MENU_ITEM_ROLES.RADIO,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ].includes(itemRole as any);\n\n /**\n * The Checkbox/Radio component doesn't expose a tabIndex prop, so we can't set the tabIndex on the underlying input\n * to remove it from the tab order. Resulting to DOM manipulation as a last resort. We can remove this if Checkbox\n * exposes this prop in the future.\n */\n useEffect(() => {\n if (isCheckboxOrRadio && ref.current) {\n const input = ref.current.querySelector(\"input\");\n\n if (input) {\n input.tabIndex = -1;\n }\n }\n }, [ref, isCheckboxOrRadio]);\n useEffect(() => {\n if (filteredItems) {\n setKeyPressed(true);\n } else if (selectionIndex !== 0) {\n setKeyPressed(true);\n }\n }, [selectionIndex, filteredItems]);\n const handleClick = useCallback(\n (e: React.SyntheticEvent<HTMLButtonElement>) => {\n menuRef.current?.focus();\n\n if (onChange && itemRole !== MENU_ITEM_ROLES.LISTITEM) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onChange((valueProp as any) || label);\n }\n\n shouldClosePopout && closePopout && closePopout();\n onClick && onClick(e);\n },\n [\n menuRef,\n onChange,\n itemRole,\n shouldClosePopout,\n closePopout,\n onClick,\n valueProp,\n label,\n ]\n );\n const before = useMemo(() => {\n if (elemBefore) return elemBefore;\n\n if (itemRole === MENU_ITEM_ROLES.CHECKBOX) {\n return (\n <Checkbox\n id={`Checkbox-${id}`}\n checked={isSelected}\n aria-hidden=\"true\"\n onChange={noop}\n indeterminate={indeterminate}\n mr={300}\n />\n );\n } else if (itemRole === MENU_ITEM_ROLES.RADIO) {\n return (\n <Radio\n id={`Radio-${id}`}\n name={`Radio-${id}`}\n checked={isSelected}\n aria-hidden=\"true\"\n onChange={noop}\n mr={300}\n />\n );\n }\n }, [elemBefore, id, indeterminate, isSelected, itemRole]);\n const after = useMemo(() => {\n if (elemAfter) return elemAfter;\n\n if (isSelected && !isCheckboxOrRadio) {\n return <Icon name=\"check-solid\" aria-hidden size=\"small\" ml={300} />;\n }\n }, [elemAfter, isCheckboxOrRadio, isSelected]);\n return (\n <MenuItemContainer\n data-qa-menu-item={label}\n {...props}\n active={isActive}\n data-qa-is-active={isActive}\n id={id}\n aria-label={labelProp}\n value={valueProp}\n data-value={valueProp}\n forwardedAs={as || \"li\"}\n aria-checked={isCheckboxOrRadio ? isSelected : undefined}\n aria-selected={\n itemRole === MENU_ITEM_ROLES.OPTION ? isSelected : undefined\n }\n disabled={disabled}\n aria-disabled={disabled}\n isCheckboxOrRadio={isCheckboxOrRadio}\n hidden={Boolean(isHidden)} // @ts migration note: coercing to a boolean here otherwise it thinks its actually receiving callbacks\n interactive={Boolean(interactive)} // @ts migration note: coercing to a boolean here otherwise it thinks its actually receiving callbacks\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore handleclick takes in different event type than what it receives half the times\n onClick={!disabled ? handleClick : undefined}\n role={itemRole}\n selected={isSelected}\n tabIndex={\n itemRole !== MENU_ITEM_ROLES.LISTITEM && !disabled ? -1 : undefined\n }\n >\n <div\n ref={ref}\n style={{\n display: \"flex\",\n alignItems: props.alignItems || \"center\",\n justifyContent: \"space-between\",\n }}\n >\n {before}\n <div\n style={{\n flexGrow: 1,\n wordBreak: \"break-word\",\n minWidth: 0,\n }}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore some legacy ref type mismatch between divs\n ref={textContent}\n >\n {children}\n </div>\n {after}\n </div>\n </MenuItemContainer>\n );\n};\n\n/**\n * @deprecated MenuCheckbox is deprecated. MenuCheckbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuCheckbox = (props: TypeMenuItemProps) => (\n <MenuItem role={MENU_ITEM_ROLES.CHECKBOX} {...props} />\n);\n\n/**\n * @deprecated MenuRadio is deprecated. MenuRadio will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuRadio = (props: TypeMenuItemProps) => (\n <MenuItem role={MENU_ITEM_ROLES.RADIO} {...props} />\n);\n\n/**\n * @deprecated MenuSwitch is deprecated. MenuSwitch will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuSwitch = (props: TypeMenuSwitchProps) => {\n const { value: menuValue } = useContext(MenuContext);\n const {\n placement,\n labelProps = {},\n switchProps = {},\n children,\n id,\n label,\n ...rest\n } = props;\n const menuItemId = useMemo(() => id || uniqueId(\"MenuItem-\"), [id]);\n const labelId = `${menuItemId}-label`;\n const switchElement = (\n <Switch\n id={`${menuItemId}-switch`}\n checked={props.selected || isValueSelected(menuValue, props.value)}\n aria-hidden=\"true\"\n tabIndex={-1}\n aria-labelledby={labelId}\n {...(placement === \"before\" ? { mr: 300 } : { ml: 300 })}\n {...switchProps}\n // This prop is passed after switchProps to disallow overrides.\n onClick={noop}\n />\n );\n const menuItemProps = {\n id: menuItemId,\n label,\n elemBefore: placement === \"before\" ? switchElement : undefined,\n // Empty fragment prevents a check icon in elemAfter when the switch is checked. Can be overridden.\n elemAfter: placement === \"before\" ? <></> : switchElement,\n ...rest,\n };\n return (\n <MenuItem {...menuItemProps}>\n {/*Using Text and aria-labelledby instead of Label to avoid default Label styling and onClick behavior.*/}\n <Text\n id={labelId}\n {...labelProps}\n // This prop is passed after labelProps to disallow overrides.\n // Fall back to the label prop if children is falsy.\n // eslint-disable-next-line react/no-children-prop\n children={children || label}\n />\n </MenuItem>\n );\n};\n\nconst MenuTitle = styled(Text)`\n font-weight: 600;\n padding-left: ${({ theme }) => theme.space[300]};\n padding-top: ${({ theme }) => theme.space[200]};\n padding-bottom: ${({ theme }) => theme.space[300]};\n color: ${({ theme }) => theme.colors.text.headline};\n`;\n\n/**\n * @deprecated MenuGroup is deprecated. MenuGroup will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuGroup = ({\n children,\n title,\n titleAs,\n disabled: isDisabled = false,\n ...props\n}: TypeMenuGroupProps) => {\n const menuTitleId = useMemo(() => uniqueId(\"menu-title-\"), []);\n return (\n <>\n <Box\n p={300}\n role=\"group\"\n aria-labelledby={title ? menuTitleId : undefined}\n borderTop=\"1px solid\"\n borderColor=\"container.border.base\"\n {...props}\n >\n {title && (\n <MenuTitle\n id={menuTitleId}\n role=\"presentation\"\n fontSize={200}\n forwardedAs={titleAs || \"li\"}\n css={isDisabled ? disabled : undefined}\n >\n {title}\n </MenuTitle>\n )}\n {children}\n </Box>\n </>\n );\n};\n\n/**\n * @deprecated MenuDivider is deprecated. MenuDivider will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuDivider = (props: TypeBoxProps) => (\n <Box\n as=\"li\"\n role=\"separator\"\n borderTop=\"1px solid\"\n borderColor=\"container.border.base\"\n {...props}\n />\n);\n\n/**\n * @deprecated MenuFilterInput is deprecated. MenuFilterInput will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuFilterInput = ({ type = \"search\", ...props }: TypeInputProps) => {\n const { onChange, onFocus, onBlur } = props;\n const { state, setState } = useContext(MenuContext);\n const handleOnChange: TypeInputProps[\"onChange\"] = useCallback(\n (event, value) => {\n onChange && onChange(event, value);\n setState({\n filterQuery: value,\n });\n },\n [setState, onChange]\n );\n const handleOnFocus: TypeInputProps[\"onFocus\"] = useCallback(\n (event) => {\n onFocus && onFocus(event);\n setState({\n isFilterInputFocused: true,\n });\n },\n [setState, onFocus]\n );\n const handleOnBlur: TypeInputProps[\"onBlur\"] = useCallback(\n (event) => {\n onBlur && onBlur(event);\n setState({\n isFilterInputFocused: false,\n });\n },\n [setState, onBlur]\n );\n return (\n <Input\n {...props}\n type={type}\n value={state.filterQuery}\n onChange={handleOnChange}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n />\n );\n};\n\n/**\n * @deprecated MenuItems are deprecated. MenuItems will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuItems = ({\n children,\n role,\n multiselect,\n innerRef,\n ...props\n}: TypeMenuProps) => {\n const { handleKeyDown, activeDescendent } = useMenuKeyDown();\n return (\n <MenuItemsContainer\n {...props}\n forwardedAs=\"ul\"\n ref={innerRef}\n role={role}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n aria-activedescendant={activeDescendent?.id}\n aria-multiselectable={multiselect ? true : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n margin={0}\n padding={0}\n overflow=\"hidden\"\n >\n {children}\n </MenuItemsContainer>\n );\n};\n\n/**\n * @deprecated MenuFooter is deprecated. MenuFooter will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuFooter = ({ children }) => {\n const { setState } = useContext(MenuContext);\n const handleOnBlur = useCallback(() => {\n setState({\n isFooterFocused: false,\n });\n }, [setState]);\n const handleOnFocus = useCallback(() => {\n setState({\n isFooterFocused: true,\n });\n }, [setState]);\n return (\n <Box onBlur={handleOnBlur} onFocus={handleOnFocus}>\n {children}\n </Box>\n );\n};\n\n/**\n * @deprecated Menu is deprecated. Menu will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const Menu = ({\n role = MENU_ROLES.MENU,\n children,\n onChange,\n value,\n multiselect,\n innerRef,\n footerContent,\n ...props\n}: TypeMenuProps) => {\n const [descendants, setDescendants] = useDescendants<\n HTMLElement,\n TypeMenuDescendantProps\n >();\n const [state, setState] = useState({\n selectionIndex: 0,\n filterQuery: \"\",\n filteredItems: null,\n isFilterInputFocused: false,\n isFooterFocused: false,\n });\n const selectCallbacks = useRef<((() => void) | null | undefined)[]>([]);\n const menuRef = useRef(null);\n const setContextState = useCallback(\n (newState) => {\n setState({ ...state, ...newState });\n },\n [state]\n );\n return (\n <DescendantProvider\n context={MenuDescendantContext}\n items={descendants}\n set={setDescendants}\n >\n <MenuContext.Provider\n value={{\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n menuRef: innerRef || menuRef,\n role,\n onChange,\n value,\n multiselect,\n state,\n setState: setContextState,\n selectCallbacks,\n }}\n >\n <MenuItems\n {...props}\n role={role}\n multiselect={multiselect}\n innerRef={menuRef}\n >\n {children}\n </MenuItems>\n {footerContent ? <MenuFooter>{footerContent}</MenuFooter> : null}\n </MenuContext.Provider>\n </DescendantProvider>\n );\n};\n\nMenuGroup.displayName = \"Menu.Group\";\nMenuItem.displayName = \"Menu.Item\";\nMenuCheckbox.displayName = \"Menu.Checkbox\";\nMenuRadio.displayName = \"Menu.Radio\";\nMenuSwitch.displayName = \"Menu.Switch\";\nMenuDivider.displayName = \"Menu.Divider\";\nMenuFilterInput.displayName = \"Menu.FilterInput\";\nMenu.displayName = \"Menu\";\n\nMenu.Group = MenuGroup;\nMenu.Item = MenuItem;\nMenu.Checkbox = MenuCheckbox;\nMenu.Radio = MenuRadio;\nMenu.Switch = MenuSwitch;\nMenu.Divider = MenuDivider;\nMenu.FilterInput = MenuFilterInput;\n\nconst CustomPopoutContent = styled(Popout.Content)`\n padding: 0;\n margin-left: 0;\n margin-right: 0;\n`;\n\n/**\n * @deprecated MenuButton is deprecated. MenuButton will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuButton = ({\n content,\n popoutProps,\n children,\n onClick,\n closeOnItemClick = true,\n id = uniqueId(\"MenuButton-\"),\n placement = \"bottom\",\n isOpen,\n setIsOpen,\n ...props\n}: TypeMenuButtonProps) => {\n const [isInternalShown, setIsInternalShown] = useState(false);\n const isControlled = typeof isOpen === \"boolean\";\n const isShown = isControlled ? isOpen : isInternalShown;\n const setIsShown = useMemo(\n () =>\n isControlled && setIsOpen\n ? setIsOpen\n : (nextIsShown) => setIsInternalShown(nextIsShown),\n [isControlled, setIsOpen]\n );\n const closePopout = useCallback(() => setIsShown(false), [setIsShown]);\n const ariaLabelledBy = props[\"aria-labelledby\"]\n ? `${props[\"aria-labelledby\"]} ${id}`\n : undefined;\n const ariaLabel = props[\"aria-label\"]\n ? `${props[\"aria-label\"]} ${innerText(children)}`\n : undefined;\n return (\n <MenuButtonContext.Provider\n value={{\n closePopout,\n closeOnItemClick,\n }}\n >\n <Popout\n isOpen={isShown}\n setIsOpen={setIsShown}\n content={<CustomPopoutContent>{content}</CustomPopoutContent>}\n placement={placement}\n {...popoutProps}\n width={props.width}\n >\n <Button\n {...props}\n id={id}\n aria-labelledby={ariaLabelledBy?.trim()}\n aria-label={ariaLabel?.trim()}\n active={isShown}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick && onClick(e as any); // @ts-notes unfortunately we're passing in a keyboard event here and not the mouse event it expects, so no way to coerce it\n setIsShown(true);\n }\n }}\n onClick={(e) => {\n onClick && onClick(e);\n setIsShown(!isShown);\n }}\n >\n {children}\n </Button>\n </Popout>\n </MenuButtonContext.Provider>\n );\n};\n\n/**\n * @deprecated Menu is deprecated. Menu will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport default Menu;\n","import type { ReactNode } from \"react\";\n\nconst hasOwnProperty = (obj: ReactNode | object, property: string): boolean => {\n return Object.prototype.hasOwnProperty.call(obj, property);\n};\n\nconst hasChildren = (node: object): boolean => {\n return hasOwnProperty(node, \"children\");\n};\n\nconst hasProps = (node: ReactNode): boolean => {\n return hasOwnProperty(node, \"props\");\n};\n\nconst reduceNodeToString = (previous: string, current: ReactNode): string => {\n return previous.length\n ? `${previous} ${innerText(current)}`\n : innerText(current);\n};\n\nexport const innerText = (node: ReactNode): string => {\n if (\n node === null ||\n typeof node === \"undefined\" ||\n typeof node === \"boolean\"\n ) {\n return \"\";\n } else if (typeof node === \"string\") {\n return node;\n } else if (typeof node === \"number\") {\n return node.toString();\n } else if (Array.isArray(node)) {\n return (node as React.ReactNodeArray).reduce<string>(\n reduceNodeToString,\n \"\"\n );\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - hasProps checks for props, but may be able to fix this\n } else if (hasProps(node) && hasChildren(node.props)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - how can we make sure ts knows this is ok?\n return innerText(node.props.children);\n }\n\n return \"\";\n};\n","export const MENU_ROLES = Object.freeze({\n MENU: \"menu\",\n LIST: \"list\",\n LISTBOX: \"listbox\",\n} as const);\nexport const MENU_ITEM_ROLES = Object.freeze({\n MENUITEM: \"menuitem\",\n LISTITEM: \"listitem\",\n OPTION: \"option\",\n RADIO: \"menuitemradio\",\n CHECKBOX: \"menuitemcheckbox\",\n} as const);\n","/* eslint-disable */\nimport * as React from \"react\";\nimport {\n createContext,\n useState,\n useLayoutEffect,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\n\n/**\n * These hooks and utilities are largely copied from the @reach-ui/descendents package. They consider the package\n * pre-release and unstable, so instead of importing it, we copied it here and changed the types from TypeScript to\n * Flow. If the package ever stabilizes, we can import these functions from there and remove this file.\n */\nexport type TypeDescendant<ElementType, DescendantProps> = DescendantProps & {\n element: ElementType | null;\n index: number;\n};\ntype TypeDescendantContext<ElementType, DescendantProps> = {\n descendants: TypeDescendant<ElementType, DescendantProps>[];\n registerDescendant(\n descendant: Omit<TypeDescendant<ElementType, DescendantProps>, \"index\">\n ): void;\n unregisterDescendant(element: ElementType | null): void;\n};\n\nconst noop = () => {};\n\n/**\n * Returns the previous value of a reference after a component update.\n *\n * @param value\n */\nexport function usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nexport function wrapEvent<EventType extends React.SyntheticEvent | Event>(\n theirHandler: ((event: EventType) => any) | null | undefined,\n ourHandler: (event: EventType) => any\n): (event: EventType) => any {\n return (event) => {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\nexport function canUseDOM() {\n return (\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n );\n}\nconst useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect;\n\nexport function createNamedContext<ContextValueType>(\n name: string,\n defaultValue: ContextValueType\n): React.Context<ContextValueType> {\n const Ctx = createContext<ContextValueType>(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\n\nexport function createDescendantContext(\n name: string,\n initialValue = {\n descendants: [],\n registerDescendant: noop,\n unregisterDescendant: noop,\n }\n) {\n return createNamedContext(name, {\n ...initialValue,\n });\n}\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node and (optionally) a key. The key is useful\n * if multiple descendants have identical text values and we need to\n * differentiate siblings for some reason.\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation. However, in the few cases where\n * this is not the case, we can require an explicit index from the app.\n */\nexport function useDescendant<ElementType, DescendantProps>(\n { context, element, ...rest },\n indexProp?: number\n) {\n let [, forceUpdate] = useState<any>();\n let { registerDescendant, unregisterDescendant, descendants } =\n useContext<TypeDescendantContext<ElementType, DescendantProps>>(context);\n // Prevent any flashing\n useIsomorphicLayoutEffect(() => {\n if (!element) forceUpdate({});\n registerDescendant({\n element,\n ...rest,\n } as any);\n return () => unregisterDescendant(element);\n }, [element, ...Object.values(rest)]);\n return indexProp\n ? indexProp\n : descendants.findIndex((item) => item.element === element);\n}\nexport function useDescendants<ElementType, DescendantProps>() {\n return useState<TypeDescendant<ElementType, DescendantProps>[]>([]);\n}\nexport function DescendantProvider<\n ElementType extends HTMLElement,\n DescendantProps\n>({\n context: Ctx,\n children,\n items,\n set,\n}: {\n context: any;\n children: React.ReactNode;\n items: TypeDescendant<ElementType, DescendantProps>[];\n set: (\n arg0: (arg0: TypeDescendant<ElementType, DescendantProps>[]) => any\n ) => any;\n}) {\n let registerDescendant = useCallback(\n ({ element, ...rest }) => {\n if (!element) {\n return;\n }\n\n set((items) => {\n let newItem;\n let newItems;\n\n // If there are no items, register at index 0 and bail.\n if (items.length === 0) {\n newItem = {\n element,\n index: 0,\n ...rest,\n };\n newItems = [...items, newItem];\n } else if (items.find((item) => item.element === element)) {\n // If the element is already registered, just use the same array\n newItems = items;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n let index = items.findIndex((item) => {\n if (!item.element || !element) {\n return false;\n }\n\n // Does this element's DOM node appear before another item in the\n // array in our DOM tree? If so, return true to grab the index at\n // this point in the array so we know where to insert the new\n // element.\n return Boolean(\n item.element.compareDocumentPosition(element) &\n Node.DOCUMENT_POSITION_PRECEDING\n );\n });\n newItem = {\n element,\n index,\n ...rest,\n };\n\n // If an index is not found we will push the element to the end.\n if (index === -1) {\n newItems = [...items, newItem];\n } else {\n newItems = [\n ...items.slice(0, index),\n newItem,\n ...items.slice(index),\n ];\n }\n }\n\n return newItems.map((item, index) => ({ ...item, index }));\n });\n }, // set is a state setter initialized by the useDescendants hook.\n // We can safely ignore the lint warning here because it will not change\n // between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n let unregisterDescendant = useCallback(\n (element: TypeDescendant<ElementType, DescendantProps>[\"element\"]) => {\n if (!element) {\n return;\n }\n\n set((items) =>\n items\n .filter((item) => element !== item.element)\n .map((item, index) => ({ ...item, index }))\n );\n }, // set is a state setter initialized by the useDescendants hook.\n // We can safely ignore the lint warning here because it will not change\n // between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n const value = useMemo(() => {\n return {\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n };\n }, [items, registerDescendant, unregisterDescendant]);\n return <Ctx.Provider value={value}>{children}</Ctx.Provider>;\n}\nexport function useDescendantKeyDown<\n ElementType,\n DescendantProps,\n K extends keyof TypeDescendant<ElementType, DescendantProps>\n>(\n context: React.Context<TypeDescendantContext<ElementType, DescendantProps>>,\n options: {\n currentIndex?: number;\n key?: K | \"option\";\n filter?: (\n descendant: TypeDescendant<ElementType, DescendantProps>\n ) => boolean;\n orientation?: \"vertical\" | \"horizontal\" | \"both\";\n rotate?: boolean;\n rtl?: boolean;\n callback(\n nextOption:\n | TypeDescendant<ElementType, DescendantProps>\n | TypeDescendant<ElementType, DescendantProps>[keyof TypeDescendant<\n ElementType,\n DescendantProps\n >]\n ): void;\n }\n) {\n let { descendants } = useContext(context);\n let {\n callback,\n currentIndex,\n filter,\n key = \"index\",\n orientation = \"vertical\",\n rotate = true,\n rtl = false,\n } = options;\n let index = currentIndex ? currentIndex : -1;\n return function handleKeyDown(event: React.KeyboardEvent) {\n if (\n ![\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"PageUp\",\n \"PageDown\",\n \"Home\",\n \"End\",\n ].includes(event.key)\n ) {\n return;\n }\n\n // If we use a filter function, we need to re-index our descendants array\n // so that filtered descendent elements aren't selected.\n let selectableDescendants = filter\n ? descendants.filter(filter)\n : descendants;\n\n // Current index should map to the updated array vs. the original\n // descendants array.\n if (filter) {\n index = selectableDescendants.findIndex(\n (descendant) => descendant.index === currentIndex\n );\n }\n\n // We need some options for any of this to work!\n if (!selectableDescendants.length) {\n return;\n }\n\n function getNextOption() {\n let atBottom = index === selectableDescendants.length - 1;\n return atBottom\n ? rotate\n ? getFirstOption()\n : selectableDescendants[index]\n : selectableDescendants[(index + 1) % selectableDescendants.length];\n }\n\n function getPreviousOption() {\n let atTop = index === 0;\n return atTop\n ? rotate\n ? getLastOption()\n : selectableDescendants[index]\n : selectableDescendants[\n (index - 1 + selectableDescendants.length) %\n selectableDescendants.length\n ];\n }\n\n function getFirstOption() {\n return selectableDescendants[0];\n }\n\n function getLastOption() {\n return selectableDescendants[selectableDescendants.length - 1];\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let next = getNextOption() as any; // @ts-notes: sincerely dont understand the intent of the original library here, since the supposed reference has been completely refactored\n callback(key === \"option\" ? next : next[key]);\n }\n\n break;\n\n case \"ArrowUp\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let prev = getPreviousOption() as any;\n callback(key === \"option\" ? prev : prev[key]);\n }\n\n break;\n\n case \"ArrowLeft\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let nextOrPrev = (rtl ? getNextOption : getPreviousOption)() as any;\n callback(key === \"option\" ? nextOrPrev : nextOrPrev[key]);\n }\n\n break;\n\n case \"ArrowRight\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let prevOrNext = (rtl ? getPreviousOption : getNextOption)() as any;\n callback(key === \"option\" ? prevOrNext : prevOrNext[key]);\n }\n\n break;\n\n case \"PageUp\":\n event.preventDefault();\n let prevOrFirst = (\n event.ctrlKey ? getPreviousOption : getFirstOption\n )() as any;\n callback(key === \"option\" ? prevOrFirst : prevOrFirst[key]);\n break;\n\n case \"Home\":\n event.preventDefault();\n let first = getFirstOption() as any;\n callback(key === \"option\" ? first : first[key]);\n break;\n\n case \"PageDown\":\n event.preventDefault();\n let nextOrLast = (\n event.ctrlKey ? getNextOption : getLastOption\n )() as any;\n callback(key === \"option\" ? nextOrLast : nextOrLast[key]);\n break;\n\n case \"End\":\n event.preventDefault();\n let last = getLastOption() as any;\n callback(key === \"option\" ? last : last[key]);\n break;\n }\n };\n}\n","// eslint-disable @typescript-eslint/no-explicit-any\nimport { createContext, useContext, useEffect } from \"react\";\nimport scrollIntoViewIfNeeded from \"scroll-into-view-if-needed\";\nimport type { TypeMenuButtonContext, TypeMenuContext } from \"../MenuTypes\";\nimport { MENU_ROLES } from \"./constants\";\nimport type { TypeDescendant } from \"./descendants\";\nimport {\n createDescendantContext,\n useDescendantKeyDown,\n usePrevious,\n wrapEvent,\n} from \"./descendants\";\nexport const MenuContext = createContext<TypeMenuContext>({\n role: MENU_ROLES.MENU,\n menuRef: {\n current: null,\n },\n value: undefined,\n multiselect: false,\n onChange: undefined,\n state: {\n selectionIndex: 0,\n filterQuery: \"\",\n filteredItems: null,\n isFilterInputFocused: false,\n isFooterFocused: false,\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setState: () => {},\n selectCallbacks: {\n current: [],\n },\n});\nexport const MenuButtonContext = createContext<TypeMenuButtonContext>({\n closeOnItemClick: undefined,\n closePopout: undefined,\n});\nexport type TypeMenuDescendantProps = {\n id: string;\n label: string | null | undefined;\n value?: string;\n disabled?: boolean;\n};\nexport const MenuDescendantContext = createDescendantContext(\n \"MenuDescendantContext\"\n);\n\n/**\n * When a user's typed input matches the string displayed in a menu item, it is\n * expected that the matching menu item is selected. This is our matching\n * function.\n */\nfunction filterItemsFromTypeahead(\n items: TypeDescendant<HTMLElement, TypeMenuDescendantProps>[],\n string = \"\"\n) {\n if (!string) {\n return null;\n }\n\n return items\n .filter(\n ({ value, label }) =>\n value?.toLowerCase().includes(string.toLocaleLowerCase()) ||\n label?.toLowerCase().includes(string.toLocaleLowerCase())\n )\n .map(({ index }) => index);\n}\n\nexport function useMenuKeyDown() {\n const {\n onChange,\n selectCallbacks,\n setState,\n multiselect,\n state: {\n filterQuery,\n selectionIndex,\n filteredItems,\n isFilterInputFocused,\n isFooterFocused,\n },\n } = useContext(MenuContext);\n const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);\n const { descendants: items } = useContext(MenuDescendantContext);\n const shouldClosePopout = closeOnItemClick && !multiselect;\n const prevMenuItemsLength = usePrevious(items.length);\n const prevSelected = usePrevious(items[selectionIndex]);\n const prevSelectionIndex = usePrevious(selectionIndex);\n useEffect(() => {\n if (items.length && selectionIndex > items.length - 1) {\n // If for some reason our selection index is larger than our possible\n // index range (let's say the last item is selected and the list\n // dynamically updates), we need to select the last item in the list.\n setState({\n selectionIndex: items.length - 1,\n });\n } else if (\n // Checks if\n // - menu length has changed\n // - selection index has not changed BUT selected item has changed\n //\n // This prevents any dynamic adding/removing of menu items from actually\n // changing a user's expected selection.\n prevMenuItemsLength !== items.length &&\n selectionIndex > -1 &&\n prevSelected &&\n prevSelectionIndex === selectionIndex &&\n items[selectionIndex] !== prevSelected\n ) {\n setState({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore I'm just going to ignore this one because its really hard to estimate where this stuff is coming from at any given time\n selectionIndex: items.findIndex((i) => i.index === prevSelected.index),\n });\n }\n }, [\n setState,\n items,\n prevMenuItemsLength,\n prevSelected,\n prevSelectionIndex,\n selectionIndex,\n ]);\n useEffect(() => {\n const newFilteredItems = filterItemsFromTypeahead(items, filterQuery);\n\n if (\n filterQuery &&\n newFilteredItems &&\n filteredItems?.length !== newFilteredItems?.length\n ) {\n setState({\n filteredItems: newFilteredItems,\n selectionIndex: newFilteredItems[0],\n });\n } else if (!filterQuery && filteredItems !== null) {\n setState({\n filteredItems: null,\n });\n }\n }, [filterQuery, items, setState, filteredItems]);\n const index = items.findIndex(({ index }) => index === selectionIndex);\n return {\n activeDescendent: items[selectionIndex],\n handleKeyDown: wrapEvent<React.KeyboardEvent>(\n function (event) {\n const { key } = event;\n // Do not trigger key events for the selected item if the footer is focused\n if (isFooterFocused) {\n return;\n }\n\n switch (key) {\n case \" \":\n if (isFilterInputFocused) {\n return;\n }\n\n // falls through\n // eslint-disable-next-line no-fallthrough\n case \"Enter\":\n // eslint-disable-next-line no-case-declarations\n const selected = items[selectionIndex] as HTMLElement[] & {\n index: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n disabled?: boolean;\n };\n\n if (selected && !selected.disabled) {\n event.preventDefault();\n const func = selectCallbacks.current[selected.index];\n func?.call && func();\n onChange && selected.value && onChange(selected.value);\n shouldClosePopout && closePopout && closePopout();\n }\n\n return;\n\n default:\n return;\n }\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useDescendantKeyDown(MenuDescendantContext as React.Context<any>, {\n currentIndex: index,\n orientation: \"vertical\",\n key: \"option\",\n rotate: true,\n filter: (\n option: TypeDescendant<HTMLElement, TypeMenuDescendantProps>\n ) =>\n !option.disabled &&\n (!filteredItems || filteredItems.includes(option.index)),\n\n callback(item: TypeDescendant<HTMLElement, TypeMenuDescendantProps>) {\n if (item.element) {\n scrollIntoViewIfNeeded(item.element, {\n block: \"nearest\",\n scrollMode: \"if-needed\",\n });\n }\n\n setState({\n selectionIndex: item.index,\n });\n },\n })\n ),\n };\n}\n","import styled, { css } from \"styled-components\";\nimport { disabled, focusRing } from \"@sproutsocial/seeds-react-mixins\";\nimport Box from \"@sproutsocial/seeds-react-box\";\nimport { StyledSwitchButton as Switch } from \"@sproutsocial/seeds-react-switch\";\nimport type { TypeMenuItemContainerProps } from \"./MenuTypes\";\n\nexport const MenuItemContainer = styled(Box)<TypeMenuItemContainerProps>`\n ${(props) =>\n !props.hidden &&\n css`\n display: block;\n `};\n width: 100%;\n border-radius: ${(props) => props.theme.radii[500]};\n background-color: ${(props) => props.theme.colors.listItem.background.base};\n border: none;\n text-align: left;\n color: ${(props) => props.theme.colors.text.body};\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.normal};\n padding: ${(props) => `6px ${props.theme.space[300]}`};\n list-style-type: none;\n outline: 0;\n ${(props) => css`\n ${props.theme.typography[200]};\n `};\n\n ${(props) =>\n props.selected &&\n !props.isCheckboxOrRadio &&\n css`\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n `}\n\n ${(props) =>\n props.active &&\n !props.disabled &&\n css`\n color: ${(props) => props.theme.colors.text.inverse};\n background-color: ${props.theme.colors.listItem.background.selected};\n\n .Icon-svg {\n color: ${(props) => props.theme.colors.text.inverse};\n }\n `}\n\n // Add border to Switches inside of active Menu Items so they do not disappear into the background.\n ${Switch} {\n ${(props) =>\n props.active &&\n !props.disabled &&\n css`\n border-color: ${(props) => props.theme.colors.container.border.base};\n `}\n }\n\n ${(props) =>\n !props.disabled &&\n css`\n &:focus,\n &:hover {\n color: ${(props) => props.theme.colors.text.body};\n background-color: ${(props) =>\n props.theme.colors.listItem.background.hover};\n\n .Icon-svg {\n color: unset;\n }\n }\n `}\n\n ${(props) =>\n props.interactive && !props.disabled\n ? css`\n &:hover {\n cursor: pointer;\n }\n `\n : css`\n &:hover {\n cursor: default;\n }\n `}\n ${(props) => props.disabled && disabled}\n`;\n\nexport const MenuItemsContainer = styled(Box)`\n list-style-type: none;\n &:focus {\n ${focusRing}\n }\n & > div[role=\"group\"]:first-of-type {\n border-top: none;\n }\n`;\n","import Menu, { MenuButton } from \"./Menu\";\n\nexport { Menu, MenuButton };\nexport default Menu;\nexport * from \"./MenuTypes\";\nexport * from \"./styles\";\nexport * from \"./utils\";\n","import styled from \"styled-components\";\n\nconst Nav = styled.nav`\n ol {\n ${(props) => props.theme.typography[200]};\n margin: 0;\n font-family: ${(props) => props.theme.fontFamily};\n padding: 0;\n display: flex;\n }\n\n li {\n margin-right: ${(props) => props.theme.space[200]};\n display: flex;\n }\n\n a,\n button {\n ${(props) => props.theme.typography[200]};\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:not(.overflow--menu) {\n margin: 0;\n padding: 0;\n }\n }\n\n ol > div + li::before {\n content: \"/\";\n margin-right: ${(props) => props.theme.space[200]};\n }\n\n li:last-child a,\n li:last-child button {\n color: ${(props) => props.theme.colors.text.body};\n font-weight: bold;\n }\n\n li:not(:last-child)::after {\n content: \"/\";\n color: ${(props) => props.theme.colors.text.body};\n margin-left: ${(props) => props.theme.space[200]};\n }\n`;\n\nexport default Nav;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { MENU_ROLES } from \"../Menu/utils/constants\";\nimport { Arrow } from \"@sproutsocial/seeds-react-select\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\n// eslint-disable-next-line no-restricted-imports\nimport Menu, { MenuButton } from \"../Menu\";\nimport type { TypeListboxProps, TypeListboxButtonProps } from \"./ListboxTypes\";\n\n/**\n * @deprecated Listbox is deprecated. Listbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const Listbox = ({\n role = MENU_ROLES.LISTBOX,\n children,\n ...rest\n}: TypeListboxProps) => {\n return (\n <Menu {...rest} role={role}>\n {children}\n </Menu>\n );\n};\n\n/**\n * These styles are copied from @sproutsocial/racine/commonjs/Select/styles and applied at the root element since\n * the Listbox component doesn't render a select.\n */\nexport const ListboxButtonContainer = styled(MenuButton)`\n position: relative;\n width: 100%;\n border: 1px solid ${(props) => props.theme.colors.form.border.base};\n border-radius: ${(props) => props.theme.radii[500]};\n background-color: ${(props) => props.theme.colors.form.background.base};\n color: ${(props) => props.theme.colors.text.body};\n cursor: ${(props) => (props.disabled ? \"not-allowed\" : \"pointer\")};\n outline: none;\n appearance: none;\n transition: border-color ${(props) => props.theme.duration.fast}\n ${(props) => props.theme.easing.ease_in},\n box-shadow ${(props) => props.theme.duration.fast}\n ${(props) => props.theme.easing.ease_in};\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.normal};\n text-align: left;\n margin: 0;\n &:active {\n transform: none;\n }\n\n padding: ${(props) => {\n switch (props.size) {\n case \"large\":\n return `${props.theme.space[400]} ${props.theme.space[600]} ${props.theme.space[400]} ${props.theme.space[400]}`;\n\n case \"small\":\n return `${props.theme.space[200]} ${props.theme.space[500]} ${props.theme.space[200]} ${props.theme.space[200]}`;\n\n case \"default\":\n default:\n return `${props.theme.space[300]} ${props.theme.space[500]} ${props.theme.space[300]} ${props.theme.space[300]}`;\n }\n }};\n font-size: ${(props) => {\n switch (props.size) {\n case \"large\":\n return props.theme.typography[300].fontSize;\n\n case \"small\":\n case \"default\":\n default:\n return props.theme.typography[200].fontSize;\n }\n }};\n\n ${(props) =>\n props.invalid &&\n css`\n border-color: ${(props) => props.theme.colors.form.border.error};\n ${Arrow} {\n color: ${(props) => props.theme.colors.icon.error};\n }\n `}\n`;\n\n/**\n * @deprecated ListboxButton is deprecated. ListboxButton will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const ListboxButton = ({\n children,\n ...restProps\n}: TypeListboxButtonProps) => (\n <ListboxButtonContainer\n {...restProps}\n popoutProps={{\n placement: \"bottom-start\",\n ...(restProps.popoutProps || {}),\n }}\n >\n {children}\n <Arrow size={restProps.size}>\n <Icon name=\"chevron-down-outline\" fixedWidth aria-hidden />\n </Arrow>\n </ListboxButtonContainer>\n);\n\nListbox.Option = Listbox.Item = Menu.Item;\nListbox.Checkbox = Menu.Checkbox;\nListbox.Radio = Menu.Radio;\nListbox.Switch = Menu.Switch;\nListbox.Group = Menu.Group;\nListbox.Divider = Menu.Divider;\nListbox.FilterInput = Menu.FilterInput;\n\n/**\n * @deprecated Listbox is deprecated. Listbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport default Listbox;\n","import * as React from \"react\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Container, { IconText } from \"./styles\";\nimport type { TypeToggleHintProps } from \"./ToggleHintTypes\";\n/**\n * Icon (either chevron or plus/minus) indicating whether an element is open or closed.\n */\n\n/**\n * @deprecated ToggleHint is deprecated. ToggleHint is no longer supported and will be removed in 2025.\n */\nexport default class ToggleHint extends React.Component<TypeToggleHintProps> {\n static defaultProps = {\n isOpen: false,\n icon: \"chevron\",\n };\n getIcon = () => {\n if (this.props.icon === \"chevron\") {\n return <Icon name=\"chevron-down-outline\" aria-hidden />;\n }\n\n return (\n <Icon\n name={this.props.isOpen ? \"minus-outline\" : \"plus-outline\"}\n aria-hidden\n />\n );\n };\n\n render() {\n const {\n icon,\n isOpen,\n openString,\n closeString,\n qa,\n className,\n color,\n ...rest\n } = this.props;\n return (\n <Container\n icon={icon}\n isOpen={isOpen}\n className={`ToggleHint ${className}`}\n data-qa-togglehint-isopen={isOpen}\n // TODO: fix this type since `color` should be valid here. TS can't resolve the correct type.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n color={color}\n {...qa}\n {...rest}\n >\n {this.getIcon()}\n\n <IconText>{isOpen ? closeString : openString}</IconText>\n </Container>\n );\n }\n}\n","import styled, { css } from \"styled-components\";\nimport { COMMON } from \"@sproutsocial/seeds-react-system-props\";\nimport { visuallyHidden } from \"@sproutsocial/seeds-react-mixins\";\nimport { TypeToggleHintProps } from \"./ToggleHintTypes\";\n\nconst Container = styled.div<Pick<TypeToggleHintProps, \"icon\" | \"isOpen\">>`\n position: relative;\n display: inline-block;\n padding: ${(props) => props.theme.space[100]};\n color: currentColor;\n\n ${(props) =>\n props.icon === \"chevron\" &&\n css`\n transition: transform\n ${(props) =>\n `${props.theme.duration.medium} ${props.theme.easing.ease_inout}`};\n\n ${props.isOpen &&\n css`\n transform: rotateX(180deg);\n `}\n `}\n\n ${COMMON}\n`;\n\nexport const IconText = styled.div`\n ${visuallyHidden}\n`;\n\nexport default Container;\n"],"mappings":"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","names":["default","useTextContent","Icon","useCallback","useContext","useEffect","useMemo","useRef","useState","styled","disabled","Box","Switch","items","createContext","useContext","useEffect","createContext","useContext","useEffect","index","props","jsx","noop","disabled","useContext","useMemo","useRef","useState","useEffect","useCallback","Switch","styled","Box","Menu_default","styled","jsx","jsxs","Icon","styled","css","Icon","jsx","jsxs","Menu_default","styled","css","props","Icon","React","Icon","styled","css","props","styles_default","jsx","jsxs","Icon","styles_default"]}
package/dist/index.d.mts CHANGED
@@ -55,6 +55,7 @@ export * from '@sproutsocial/seeds-react-numeral';
55
55
  export * from '@sproutsocial/seeds-react-partner-logo';
56
56
  export * from '@sproutsocial/seeds-react-portal';
57
57
  export * from '@sproutsocial/seeds-react-radio';
58
+ export * from '@sproutsocial/seeds-react-rating';
58
59
  export * from '@sproutsocial/seeds-react-segmented-control';
59
60
  export * from '@sproutsocial/seeds-react-select';
60
61
  export * from '@sproutsocial/seeds-react-skeleton';
package/dist/index.d.ts CHANGED
@@ -55,6 +55,7 @@ export * from '@sproutsocial/seeds-react-numeral';
55
55
  export * from '@sproutsocial/seeds-react-partner-logo';
56
56
  export * from '@sproutsocial/seeds-react-portal';
57
57
  export * from '@sproutsocial/seeds-react-radio';
58
+ export * from '@sproutsocial/seeds-react-rating';
58
59
  export * from '@sproutsocial/seeds-react-segmented-control';
59
60
  export * from '@sproutsocial/seeds-react-select';
60
61
  export * from '@sproutsocial/seeds-react-skeleton';
package/dist/index.js CHANGED
@@ -1368,6 +1368,7 @@ __reExport(index_exports, require("@sproutsocial/seeds-react-partner-logo"), mod
1368
1368
  __reExport(index_exports, require("@sproutsocial/seeds-react-popout"), module.exports);
1369
1369
  __reExport(index_exports, require("@sproutsocial/seeds-react-portal"), module.exports);
1370
1370
  __reExport(index_exports, require("@sproutsocial/seeds-react-radio"), module.exports);
1371
+ __reExport(index_exports, require("@sproutsocial/seeds-react-rating"), module.exports);
1371
1372
  __reExport(index_exports, require("@sproutsocial/seeds-react-segmented-control"), module.exports);
1372
1373
  __reExport(index_exports, require("@sproutsocial/seeds-react-select"), module.exports);
1373
1374
  __reExport(index_exports, require("@sproutsocial/seeds-react-skeleton"), module.exports);
@@ -1537,6 +1538,7 @@ var import_seeds_react_banner = require("@sproutsocial/seeds-react-banner");
1537
1538
  ...require("@sproutsocial/seeds-react-popout"),
1538
1539
  ...require("@sproutsocial/seeds-react-portal"),
1539
1540
  ...require("@sproutsocial/seeds-react-radio"),
1541
+ ...require("@sproutsocial/seeds-react-rating"),
1540
1542
  ...require("@sproutsocial/seeds-react-segmented-control"),
1541
1543
  ...require("@sproutsocial/seeds-react-select"),
1542
1544
  ...require("@sproutsocial/seeds-react-skeleton"),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/Breadcrumb/Breadcrumb.tsx","../src/Menu/Menu.tsx","../src/Menu/utils/innertext.ts","../src/Menu/utils/constants.ts","../src/Menu/utils/descendants.tsx","../src/Menu/utils/hooks.ts","../src/Menu/styles.ts","../src/Menu/index.ts","../src/Breadcrumb/styles.ts","../src/Listbox/Listbox.tsx","../src/ToggleHint/ToggleHint.tsx","../src/ToggleHint/styles.ts"],"sourcesContent":["/* Asset types */\nexport type { EnumIconNames } from \"@sproutsocial/seeds-icons\";\nexport type { EnumIllustrationNames } from \"@sproutsocial/seeds-illustrations\";\nexport type { EnumLogoNamesWithoutVariants as EnumLogoNames } from \"@sproutsocial/seeds-partner-logos\";\n\nexport { IllustrationNames as SpotIllustrationNames } from \"@sproutsocial/seeds-illustrations\";\nexport { LogoNamesWithoutVariants as PartnerLogoNames } from \"@sproutsocial/seeds-partner-logos\";\n\n/* Theme and related types */\nexport * from \"@sproutsocial/seeds-react-system-props\";\nexport * from \"@sproutsocial/seeds-react-theme\";\nexport { default as ThemeProvider } from \"@sproutsocial/seeds-react-theme-provider\";\n\n/* Utilities and related types */\nexport {\n useSelect,\n useMultiselect,\n useTextContent,\n useMeasure,\n useInteractiveColor,\n} from \"@sproutsocial/seeds-react-hooks\";\nexport * from \"@sproutsocial/seeds-react-mixins\";\n\n/* Components */\nexport * from \"@sproutsocial/seeds-react-avatar\";\nexport * from \"@sproutsocial/seeds-react-badge\";\nexport * from \"@sproutsocial/seeds-react-banner\";\nexport * from \"@sproutsocial/seeds-react-box\";\nexport * from \"./Breadcrumb\";\nexport * from \"@sproutsocial/seeds-react-button\";\nexport * from \"@sproutsocial/seeds-react-card\";\nexport * from \"@sproutsocial/seeds-react-character-counter\";\nexport * from \"@sproutsocial/seeds-react-chart-legend\";\nexport * from \"@sproutsocial/seeds-react-checkbox\";\nexport * from \"@sproutsocial/seeds-react-collapsible\";\nexport * from \"@sproutsocial/seeds-react-datepicker\";\nexport * from \"@sproutsocial/seeds-react-drawer\";\nexport * from \"@sproutsocial/seeds-react-duration\";\nexport * from \"@sproutsocial/seeds-react-empty-state\";\nexport * from \"@sproutsocial/seeds-react-fieldset\";\nexport * from \"@sproutsocial/seeds-react-form-field\";\nexport * from \"@sproutsocial/seeds-react-icon\";\nexport * from \"@sproutsocial/seeds-react-image\";\nexport * from \"@sproutsocial/seeds-react-indicator\";\nexport * from \"@sproutsocial/seeds-react-input\";\nexport * from \"@sproutsocial/seeds-react-keyboard-key\";\nexport * from \"@sproutsocial/seeds-react-label\";\nexport * from \"@sproutsocial/seeds-react-link\";\nexport * from \"./Listbox\";\nexport * from \"@sproutsocial/seeds-react-loader\";\nexport * from \"@sproutsocial/seeds-react-loader-button\";\nexport * from \"./Menu\";\nexport * from \"@sproutsocial/seeds-react-modal\";\nexport * from \"@sproutsocial/seeds-react-message\";\nexport * from \"@sproutsocial/seeds-react-numeral\";\nexport * from \"@sproutsocial/seeds-react-partner-logo\";\nexport * from \"@sproutsocial/seeds-react-popout\";\nexport * from \"@sproutsocial/seeds-react-portal\";\nexport * from \"@sproutsocial/seeds-react-radio\";\nexport * from \"@sproutsocial/seeds-react-segmented-control\";\nexport * from \"@sproutsocial/seeds-react-select\";\nexport * from \"@sproutsocial/seeds-react-skeleton\";\nexport * from \"@sproutsocial/seeds-react-spot-illustration\";\nexport * from \"@sproutsocial/seeds-react-stack\";\nexport * from \"@sproutsocial/seeds-react-switch\";\nexport * from \"@sproutsocial/seeds-react-table\";\nexport * from \"@sproutsocial/seeds-react-table/TableCell\";\nexport * from \"@sproutsocial/seeds-react-table/TableHeaderCell\";\nexport * from \"@sproutsocial/seeds-react-table/TableRowAccordion\";\nexport * from \"@sproutsocial/seeds-react-tabs\";\nexport * from \"@sproutsocial/seeds-react-text\";\nexport * from \"@sproutsocial/seeds-react-textarea\";\nexport * from \"@sproutsocial/seeds-react-toast\";\nexport * from \"./ToggleHint\";\nexport * from \"@sproutsocial/seeds-react-token\";\nexport * from \"@sproutsocial/seeds-react-token-input\";\nexport * from \"@sproutsocial/seeds-react-tooltip\";\nexport * from \"@sproutsocial/seeds-react-visually-hidden\";\n/* End */\n\n/**\n * @deprecated Alert has been renamed to Banner\n */\nexport { Banner as Alert } from \"@sproutsocial/seeds-react-banner\";\n","import * as React from \"react\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Link from \"@sproutsocial/seeds-react-link\";\n// eslint-disable-next-line no-restricted-imports\nimport { MenuButton } from \"../Menu\";\nimport Nav from \"./styles\";\nimport type {\n TypeBreadcrumbProps,\n TypeBreadcrumbItemProps,\n} from \"./BreadcrumbTypes\";\n\n/**\n * @deprecated BreadcrumbItem is deprecated. BreadcrumbItem will be removed in 2025 in favor of seeds-react-breadcrumb which utilizes the new Menu ecosystem. Please create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-breadcrumb | seeds-react-breadcrumb}.\n */\nconst BreadcrumbItem = ({\n children,\n href,\n ...rest\n}: TypeBreadcrumbItemProps) => {\n return (\n <li>\n <Link href={href} {...rest}>\n {children}\n </Link>\n </li>\n );\n};\n\n/**\n * @deprecated Breadcrumb is deprecated. This iteration of Breadcrumb will be removed in 2025 in favor of seeds-react-breadcrumb which utilizes the new Menu ecosystem. Please create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-breadcrumb | seeds-react-breadcrumb}.\n */\nconst Breadcrumb = ({\n ariaLabel,\n overflow,\n children,\n ...rest\n}: TypeBreadcrumbProps) => {\n const listItems = React.Children.toArray(children);\n const lastItem = listItems[listItems.length - 1];\n return (\n <Nav aria-label={ariaLabel} data-qa-breadcrumb={ariaLabel} {...rest}>\n <ol>\n {overflow && (\n <li>\n <MenuButton\n appearance=\"secondary\"\n content={overflow.menu}\n aria-label={overflow.label}\n className=\"overflow--menu\"\n px={200}\n py={0}\n >\n <Icon name=\"ellipsis-horizontal-solid\" aria-hidden />\n </MenuButton>\n </li>\n )}\n {listItems.map((item, i) => {\n // @ts-notes - item is a childNode which can be a string or number but `cloneElement` requires props\n const itemElem =\n typeof item === \"object\" && \"props\" in item ? (\n item\n ) : (\n <span>item</span>\n );\n return React.cloneElement(itemElem, {\n ...itemElem.props,\n \"aria-current\": listItems[i] === lastItem ? \"page\" : undefined,\n });\n })}\n </ol>\n </Nav>\n );\n};\n\nBreadcrumbItem.displayName = \"Breadcrumb.Item\";\nBreadcrumb.Item = BreadcrumbItem;\n\nexport default Breadcrumb;\n","import * as React from \"react\";\nimport {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"styled-components\";\nimport uniqueId from \"lodash.uniqueid\";\nimport { useTextContent } from \"@sproutsocial/seeds-react-hooks\";\nimport { innerText } from \"./utils/innertext\";\nimport { disabled } from \"@sproutsocial/seeds-react-mixins\";\nimport Box, { TypeBoxProps } from \"@sproutsocial/seeds-react-box\";\nimport Button from \"@sproutsocial/seeds-react-button\";\nimport Checkbox from \"@sproutsocial/seeds-react-checkbox\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Input, { TypeInputProps } from \"@sproutsocial/seeds-react-input\";\nimport Popout from \"@sproutsocial/seeds-react-popout\";\nimport Radio from \"@sproutsocial/seeds-react-radio\";\nimport Switch from \"@sproutsocial/seeds-react-switch\";\nimport Text from \"@sproutsocial/seeds-react-text\";\nimport type {\n TypeMenuButtonProps,\n TypeMenuGroupProps,\n TypeMenuItemProps,\n TypeMenuItemRoles,\n TypeMenuProps,\n TypeMenuRoles,\n TypeMenuSwitchProps,\n} from \"./MenuTypes\";\nimport {\n MENU_ITEM_ROLES,\n MENU_ROLES,\n DescendantProvider,\n useDescendant,\n useDescendants,\n MenuButtonContext,\n MenuContext,\n MenuDescendantContext,\n useMenuKeyDown,\n} from \"./utils\";\nimport type { TypeMenuDescendantProps } from \"./utils\";\nimport { MenuItemContainer, MenuItemsContainer } from \"./styles\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nconst getMenuItemRole = (\n menuRole?: TypeMenuRoles | null\n): TypeMenuItemRoles => {\n switch (menuRole) {\n case MENU_ROLES.LIST:\n return MENU_ITEM_ROLES.LISTITEM;\n\n case MENU_ROLES.LISTBOX:\n return MENU_ITEM_ROLES.OPTION;\n\n case MENU_ROLES.MENU:\n default:\n return MENU_ITEM_ROLES.MENUITEM;\n }\n};\n\nfunction isValueSelected(menuValue, value) {\n if (!menuValue) return false;\n\n if (typeof menuValue === \"string\") {\n return Boolean(menuValue && value && menuValue === value);\n } else if (Array.isArray(menuValue)) {\n return menuValue.includes(value);\n }\n\n return false;\n}\n\n/**\n * @deprecated MenuItem is deprecated. MenuItem will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuItem = ({\n id: idProp,\n index: indexProp,\n as,\n children,\n role: roleProp,\n elemBefore,\n elemAfter,\n value: valueProp,\n onKeyPress,\n onClick,\n selected,\n disabled,\n indeterminate,\n label: labelProp,\n active: activeProp,\n ...props\n}: TypeMenuItemProps) => {\n const {\n role: menuRole,\n onChange,\n value,\n multiselect,\n state: menuState,\n selectCallbacks,\n menuRef,\n } = useContext(MenuContext);\n const { selectionIndex, filteredItems } = menuState;\n const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);\n const isSelected = selected || isValueSelected(value, valueProp);\n const shouldClosePopout = closeOnItemClick && !multiselect;\n const itemRole = roleProp || getMenuItemRole(menuRole);\n const id = useMemo(() => idProp || uniqueId(\"MenuItem-\"), [idProp]);\n const textContent = useTextContent(\"\");\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const label = labelProp || textContent.current;\n const ref = useRef<HTMLDivElement | null>(null);\n const index = useDescendant<HTMLElement, TypeMenuDescendantProps>(\n {\n context: MenuDescendantContext,\n element: ref.current,\n value: valueProp || label,\n label,\n disabled,\n id,\n },\n indexProp\n );\n const isHidden = filteredItems && !filteredItems.includes(index);\n const isFocused = index === selectionIndex;\n selectCallbacks.current[index] = onClick;\n const [keyPressed, setKeyPressed] = useState(false);\n const isActive = useMemo(\n () => activeProp || (isFocused && keyPressed),\n [activeProp, isFocused, keyPressed]\n );\n const isCheckboxOrRadio = [\n MENU_ITEM_ROLES.CHECKBOX,\n MENU_ITEM_ROLES.RADIO,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ].includes(itemRole as any); // @ts-notes @refactor - since we're only really checking against the string I think we can safely leave this for refactor, nothing else worked for me\n const interactive =\n onClick ||\n onKeyPress ||\n [\n MENU_ITEM_ROLES.OPTION,\n MENU_ITEM_ROLES.MENUITEM,\n MENU_ITEM_ROLES.CHECKBOX,\n MENU_ITEM_ROLES.RADIO,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ].includes(itemRole as any);\n\n /**\n * The Checkbox/Radio component doesn't expose a tabIndex prop, so we can't set the tabIndex on the underlying input\n * to remove it from the tab order. Resulting to DOM manipulation as a last resort. We can remove this if Checkbox\n * exposes this prop in the future.\n */\n useEffect(() => {\n if (isCheckboxOrRadio && ref.current) {\n const input = ref.current.querySelector(\"input\");\n\n if (input) {\n input.tabIndex = -1;\n }\n }\n }, [ref, isCheckboxOrRadio]);\n useEffect(() => {\n if (filteredItems) {\n setKeyPressed(true);\n } else if (selectionIndex !== 0) {\n setKeyPressed(true);\n }\n }, [selectionIndex, filteredItems]);\n const handleClick = useCallback(\n (e: React.SyntheticEvent<HTMLButtonElement>) => {\n menuRef.current?.focus();\n\n if (onChange && itemRole !== MENU_ITEM_ROLES.LISTITEM) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onChange((valueProp as any) || label);\n }\n\n shouldClosePopout && closePopout && closePopout();\n onClick && onClick(e);\n },\n [\n menuRef,\n onChange,\n itemRole,\n shouldClosePopout,\n closePopout,\n onClick,\n valueProp,\n label,\n ]\n );\n const before = useMemo(() => {\n if (elemBefore) return elemBefore;\n\n if (itemRole === MENU_ITEM_ROLES.CHECKBOX) {\n return (\n <Checkbox\n id={`Checkbox-${id}`}\n checked={isSelected}\n aria-hidden=\"true\"\n onChange={noop}\n indeterminate={indeterminate}\n mr={300}\n />\n );\n } else if (itemRole === MENU_ITEM_ROLES.RADIO) {\n return (\n <Radio\n id={`Radio-${id}`}\n name={`Radio-${id}`}\n checked={isSelected}\n aria-hidden=\"true\"\n onChange={noop}\n mr={300}\n />\n );\n }\n }, [elemBefore, id, indeterminate, isSelected, itemRole]);\n const after = useMemo(() => {\n if (elemAfter) return elemAfter;\n\n if (isSelected && !isCheckboxOrRadio) {\n return <Icon name=\"check-solid\" aria-hidden size=\"small\" ml={300} />;\n }\n }, [elemAfter, isCheckboxOrRadio, isSelected]);\n return (\n <MenuItemContainer\n data-qa-menu-item={label}\n {...props}\n active={isActive}\n data-qa-is-active={isActive}\n id={id}\n aria-label={labelProp}\n value={valueProp}\n data-value={valueProp}\n forwardedAs={as || \"li\"}\n aria-checked={isCheckboxOrRadio ? isSelected : undefined}\n aria-selected={\n itemRole === MENU_ITEM_ROLES.OPTION ? isSelected : undefined\n }\n disabled={disabled}\n aria-disabled={disabled}\n isCheckboxOrRadio={isCheckboxOrRadio}\n hidden={Boolean(isHidden)} // @ts migration note: coercing to a boolean here otherwise it thinks its actually receiving callbacks\n interactive={Boolean(interactive)} // @ts migration note: coercing to a boolean here otherwise it thinks its actually receiving callbacks\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore handleclick takes in different event type than what it receives half the times\n onClick={!disabled ? handleClick : undefined}\n role={itemRole}\n selected={isSelected}\n tabIndex={\n itemRole !== MENU_ITEM_ROLES.LISTITEM && !disabled ? -1 : undefined\n }\n >\n <div\n ref={ref}\n style={{\n display: \"flex\",\n alignItems: props.alignItems || \"center\",\n justifyContent: \"space-between\",\n }}\n >\n {before}\n <div\n style={{\n flexGrow: 1,\n wordBreak: \"break-word\",\n minWidth: 0,\n }}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore some legacy ref type mismatch between divs\n ref={textContent}\n >\n {children}\n </div>\n {after}\n </div>\n </MenuItemContainer>\n );\n};\n\n/**\n * @deprecated MenuCheckbox is deprecated. MenuCheckbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuCheckbox = (props: TypeMenuItemProps) => (\n <MenuItem role={MENU_ITEM_ROLES.CHECKBOX} {...props} />\n);\n\n/**\n * @deprecated MenuRadio is deprecated. MenuRadio will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuRadio = (props: TypeMenuItemProps) => (\n <MenuItem role={MENU_ITEM_ROLES.RADIO} {...props} />\n);\n\n/**\n * @deprecated MenuSwitch is deprecated. MenuSwitch will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuSwitch = (props: TypeMenuSwitchProps) => {\n const { value: menuValue } = useContext(MenuContext);\n const {\n placement,\n labelProps = {},\n switchProps = {},\n children,\n id,\n label,\n ...rest\n } = props;\n const menuItemId = useMemo(() => id || uniqueId(\"MenuItem-\"), [id]);\n const labelId = `${menuItemId}-label`;\n const switchElement = (\n <Switch\n id={`${menuItemId}-switch`}\n checked={props.selected || isValueSelected(menuValue, props.value)}\n aria-hidden=\"true\"\n tabIndex={-1}\n aria-labelledby={labelId}\n {...(placement === \"before\" ? { mr: 300 } : { ml: 300 })}\n {...switchProps}\n // This prop is passed after switchProps to disallow overrides.\n onClick={noop}\n />\n );\n const menuItemProps = {\n id: menuItemId,\n label,\n elemBefore: placement === \"before\" ? switchElement : undefined,\n // Empty fragment prevents a check icon in elemAfter when the switch is checked. Can be overridden.\n elemAfter: placement === \"before\" ? <></> : switchElement,\n ...rest,\n };\n return (\n <MenuItem {...menuItemProps}>\n {/*Using Text and aria-labelledby instead of Label to avoid default Label styling and onClick behavior.*/}\n <Text\n id={labelId}\n {...labelProps}\n // This prop is passed after labelProps to disallow overrides.\n // Fall back to the label prop if children is falsy.\n // eslint-disable-next-line react/no-children-prop\n children={children || label}\n />\n </MenuItem>\n );\n};\n\nconst MenuTitle = styled(Text)`\n font-weight: 600;\n padding-left: ${({ theme }) => theme.space[300]};\n padding-top: ${({ theme }) => theme.space[200]};\n padding-bottom: ${({ theme }) => theme.space[300]};\n color: ${({ theme }) => theme.colors.text.headline};\n`;\n\n/**\n * @deprecated MenuGroup is deprecated. MenuGroup will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuGroup = ({\n children,\n title,\n titleAs,\n disabled: isDisabled = false,\n ...props\n}: TypeMenuGroupProps) => {\n const menuTitleId = useMemo(() => uniqueId(\"menu-title-\"), []);\n return (\n <>\n <Box\n p={300}\n role=\"group\"\n aria-labelledby={title ? menuTitleId : undefined}\n borderTop=\"1px solid\"\n borderColor=\"container.border.base\"\n {...props}\n >\n {title && (\n <MenuTitle\n id={menuTitleId}\n role=\"presentation\"\n fontSize={200}\n forwardedAs={titleAs || \"li\"}\n css={isDisabled ? disabled : undefined}\n >\n {title}\n </MenuTitle>\n )}\n {children}\n </Box>\n </>\n );\n};\n\n/**\n * @deprecated MenuDivider is deprecated. MenuDivider will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuDivider = (props: TypeBoxProps) => (\n <Box\n as=\"li\"\n role=\"separator\"\n borderTop=\"1px solid\"\n borderColor=\"container.border.base\"\n {...props}\n />\n);\n\n/**\n * @deprecated MenuFilterInput is deprecated. MenuFilterInput will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuFilterInput = ({ type = \"search\", ...props }: TypeInputProps) => {\n const { onChange, onFocus, onBlur } = props;\n const { state, setState } = useContext(MenuContext);\n const handleOnChange: TypeInputProps[\"onChange\"] = useCallback(\n (event, value) => {\n onChange && onChange(event, value);\n setState({\n filterQuery: value,\n });\n },\n [setState, onChange]\n );\n const handleOnFocus: TypeInputProps[\"onFocus\"] = useCallback(\n (event) => {\n onFocus && onFocus(event);\n setState({\n isFilterInputFocused: true,\n });\n },\n [setState, onFocus]\n );\n const handleOnBlur: TypeInputProps[\"onBlur\"] = useCallback(\n (event) => {\n onBlur && onBlur(event);\n setState({\n isFilterInputFocused: false,\n });\n },\n [setState, onBlur]\n );\n return (\n <Input\n {...props}\n type={type}\n value={state.filterQuery}\n onChange={handleOnChange}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n />\n );\n};\n\n/**\n * @deprecated MenuItems are deprecated. MenuItems will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuItems = ({\n children,\n role,\n multiselect,\n innerRef,\n ...props\n}: TypeMenuProps) => {\n const { handleKeyDown, activeDescendent } = useMenuKeyDown();\n return (\n <MenuItemsContainer\n {...props}\n forwardedAs=\"ul\"\n ref={innerRef}\n role={role}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n aria-activedescendant={activeDescendent?.id}\n aria-multiselectable={multiselect ? true : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n margin={0}\n padding={0}\n overflow=\"hidden\"\n >\n {children}\n </MenuItemsContainer>\n );\n};\n\n/**\n * @deprecated MenuFooter is deprecated. MenuFooter will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuFooter = ({ children }) => {\n const { setState } = useContext(MenuContext);\n const handleOnBlur = useCallback(() => {\n setState({\n isFooterFocused: false,\n });\n }, [setState]);\n const handleOnFocus = useCallback(() => {\n setState({\n isFooterFocused: true,\n });\n }, [setState]);\n return (\n <Box onBlur={handleOnBlur} onFocus={handleOnFocus}>\n {children}\n </Box>\n );\n};\n\n/**\n * @deprecated Menu is deprecated. Menu will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const Menu = ({\n role = MENU_ROLES.MENU,\n children,\n onChange,\n value,\n multiselect,\n innerRef,\n footerContent,\n ...props\n}: TypeMenuProps) => {\n const [descendants, setDescendants] = useDescendants<\n HTMLElement,\n TypeMenuDescendantProps\n >();\n const [state, setState] = useState({\n selectionIndex: 0,\n filterQuery: \"\",\n filteredItems: null,\n isFilterInputFocused: false,\n isFooterFocused: false,\n });\n const selectCallbacks = useRef<((() => void) | null | undefined)[]>([]);\n const menuRef = useRef(null);\n const setContextState = useCallback(\n (newState) => {\n setState({ ...state, ...newState });\n },\n [state]\n );\n return (\n <DescendantProvider\n context={MenuDescendantContext}\n items={descendants}\n set={setDescendants}\n >\n <MenuContext.Provider\n value={{\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n menuRef: innerRef || menuRef,\n role,\n onChange,\n value,\n multiselect,\n state,\n setState: setContextState,\n selectCallbacks,\n }}\n >\n <MenuItems\n {...props}\n role={role}\n multiselect={multiselect}\n innerRef={menuRef}\n >\n {children}\n </MenuItems>\n {footerContent ? <MenuFooter>{footerContent}</MenuFooter> : null}\n </MenuContext.Provider>\n </DescendantProvider>\n );\n};\n\nMenuGroup.displayName = \"Menu.Group\";\nMenuItem.displayName = \"Menu.Item\";\nMenuCheckbox.displayName = \"Menu.Checkbox\";\nMenuRadio.displayName = \"Menu.Radio\";\nMenuSwitch.displayName = \"Menu.Switch\";\nMenuDivider.displayName = \"Menu.Divider\";\nMenuFilterInput.displayName = \"Menu.FilterInput\";\nMenu.displayName = \"Menu\";\n\nMenu.Group = MenuGroup;\nMenu.Item = MenuItem;\nMenu.Checkbox = MenuCheckbox;\nMenu.Radio = MenuRadio;\nMenu.Switch = MenuSwitch;\nMenu.Divider = MenuDivider;\nMenu.FilterInput = MenuFilterInput;\n\nconst CustomPopoutContent = styled(Popout.Content)`\n padding: 0;\n margin-left: 0;\n margin-right: 0;\n`;\n\n/**\n * @deprecated MenuButton is deprecated. MenuButton will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuButton = ({\n content,\n popoutProps,\n children,\n onClick,\n closeOnItemClick = true,\n id = uniqueId(\"MenuButton-\"),\n placement = \"bottom\",\n isOpen,\n setIsOpen,\n ...props\n}: TypeMenuButtonProps) => {\n const [isInternalShown, setIsInternalShown] = useState(false);\n const isControlled = typeof isOpen === \"boolean\";\n const isShown = isControlled ? isOpen : isInternalShown;\n const setIsShown = useMemo(\n () =>\n isControlled && setIsOpen\n ? setIsOpen\n : (nextIsShown) => setIsInternalShown(nextIsShown),\n [isControlled, setIsOpen]\n );\n const closePopout = useCallback(() => setIsShown(false), [setIsShown]);\n const ariaLabelledBy = props[\"aria-labelledby\"]\n ? `${props[\"aria-labelledby\"]} ${id}`\n : undefined;\n const ariaLabel = props[\"aria-label\"]\n ? `${props[\"aria-label\"]} ${innerText(children)}`\n : undefined;\n return (\n <MenuButtonContext.Provider\n value={{\n closePopout,\n closeOnItemClick,\n }}\n >\n <Popout\n isOpen={isShown}\n setIsOpen={setIsShown}\n content={<CustomPopoutContent>{content}</CustomPopoutContent>}\n placement={placement}\n {...popoutProps}\n width={props.width}\n >\n <Button\n {...props}\n id={id}\n aria-labelledby={ariaLabelledBy?.trim()}\n aria-label={ariaLabel?.trim()}\n active={isShown}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick && onClick(e as any); // @ts-notes unfortunately we're passing in a keyboard event here and not the mouse event it expects, so no way to coerce it\n setIsShown(true);\n }\n }}\n onClick={(e) => {\n onClick && onClick(e);\n setIsShown(!isShown);\n }}\n >\n {children}\n </Button>\n </Popout>\n </MenuButtonContext.Provider>\n );\n};\n\n/**\n * @deprecated Menu is deprecated. Menu will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport default Menu;\n","import type { ReactNode } from \"react\";\n\nconst hasOwnProperty = (obj: ReactNode | object, property: string): boolean => {\n return Object.prototype.hasOwnProperty.call(obj, property);\n};\n\nconst hasChildren = (node: object): boolean => {\n return hasOwnProperty(node, \"children\");\n};\n\nconst hasProps = (node: ReactNode): boolean => {\n return hasOwnProperty(node, \"props\");\n};\n\nconst reduceNodeToString = (previous: string, current: ReactNode): string => {\n return previous.length\n ? `${previous} ${innerText(current)}`\n : innerText(current);\n};\n\nexport const innerText = (node: ReactNode): string => {\n if (\n node === null ||\n typeof node === \"undefined\" ||\n typeof node === \"boolean\"\n ) {\n return \"\";\n } else if (typeof node === \"string\") {\n return node;\n } else if (typeof node === \"number\") {\n return node.toString();\n } else if (Array.isArray(node)) {\n return (node as React.ReactNodeArray).reduce<string>(\n reduceNodeToString,\n \"\"\n );\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - hasProps checks for props, but may be able to fix this\n } else if (hasProps(node) && hasChildren(node.props)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - how can we make sure ts knows this is ok?\n return innerText(node.props.children);\n }\n\n return \"\";\n};\n","export const MENU_ROLES = Object.freeze({\n MENU: \"menu\",\n LIST: \"list\",\n LISTBOX: \"listbox\",\n} as const);\nexport const MENU_ITEM_ROLES = Object.freeze({\n MENUITEM: \"menuitem\",\n LISTITEM: \"listitem\",\n OPTION: \"option\",\n RADIO: \"menuitemradio\",\n CHECKBOX: \"menuitemcheckbox\",\n} as const);\n","/* eslint-disable */\nimport * as React from \"react\";\nimport {\n createContext,\n useState,\n useLayoutEffect,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\n\n/**\n * These hooks and utilities are largely copied from the @reach-ui/descendents package. They consider the package\n * pre-release and unstable, so instead of importing it, we copied it here and changed the types from TypeScript to\n * Flow. If the package ever stabilizes, we can import these functions from there and remove this file.\n */\nexport type TypeDescendant<ElementType, DescendantProps> = DescendantProps & {\n element: ElementType | null;\n index: number;\n};\ntype TypeDescendantContext<ElementType, DescendantProps> = {\n descendants: TypeDescendant<ElementType, DescendantProps>[];\n registerDescendant(\n descendant: Omit<TypeDescendant<ElementType, DescendantProps>, \"index\">\n ): void;\n unregisterDescendant(element: ElementType | null): void;\n};\n\nconst noop = () => {};\n\n/**\n * Returns the previous value of a reference after a component update.\n *\n * @param value\n */\nexport function usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nexport function wrapEvent<EventType extends React.SyntheticEvent | Event>(\n theirHandler: ((event: EventType) => any) | null | undefined,\n ourHandler: (event: EventType) => any\n): (event: EventType) => any {\n return (event) => {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\nexport function canUseDOM() {\n return (\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n );\n}\nconst useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect;\n\nexport function createNamedContext<ContextValueType>(\n name: string,\n defaultValue: ContextValueType\n): React.Context<ContextValueType> {\n const Ctx = createContext<ContextValueType>(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\n\nexport function createDescendantContext(\n name: string,\n initialValue = {\n descendants: [],\n registerDescendant: noop,\n unregisterDescendant: noop,\n }\n) {\n return createNamedContext(name, {\n ...initialValue,\n });\n}\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node and (optionally) a key. The key is useful\n * if multiple descendants have identical text values and we need to\n * differentiate siblings for some reason.\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation. However, in the few cases where\n * this is not the case, we can require an explicit index from the app.\n */\nexport function useDescendant<ElementType, DescendantProps>(\n { context, element, ...rest },\n indexProp?: number\n) {\n let [, forceUpdate] = useState<any>();\n let { registerDescendant, unregisterDescendant, descendants } =\n useContext<TypeDescendantContext<ElementType, DescendantProps>>(context);\n // Prevent any flashing\n useIsomorphicLayoutEffect(() => {\n if (!element) forceUpdate({});\n registerDescendant({\n element,\n ...rest,\n } as any);\n return () => unregisterDescendant(element);\n }, [element, ...Object.values(rest)]);\n return indexProp\n ? indexProp\n : descendants.findIndex((item) => item.element === element);\n}\nexport function useDescendants<ElementType, DescendantProps>() {\n return useState<TypeDescendant<ElementType, DescendantProps>[]>([]);\n}\nexport function DescendantProvider<\n ElementType extends HTMLElement,\n DescendantProps\n>({\n context: Ctx,\n children,\n items,\n set,\n}: {\n context: any;\n children: React.ReactNode;\n items: TypeDescendant<ElementType, DescendantProps>[];\n set: (\n arg0: (arg0: TypeDescendant<ElementType, DescendantProps>[]) => any\n ) => any;\n}) {\n let registerDescendant = useCallback(\n ({ element, ...rest }) => {\n if (!element) {\n return;\n }\n\n set((items) => {\n let newItem;\n let newItems;\n\n // If there are no items, register at index 0 and bail.\n if (items.length === 0) {\n newItem = {\n element,\n index: 0,\n ...rest,\n };\n newItems = [...items, newItem];\n } else if (items.find((item) => item.element === element)) {\n // If the element is already registered, just use the same array\n newItems = items;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n let index = items.findIndex((item) => {\n if (!item.element || !element) {\n return false;\n }\n\n // Does this element's DOM node appear before another item in the\n // array in our DOM tree? If so, return true to grab the index at\n // this point in the array so we know where to insert the new\n // element.\n return Boolean(\n item.element.compareDocumentPosition(element) &\n Node.DOCUMENT_POSITION_PRECEDING\n );\n });\n newItem = {\n element,\n index,\n ...rest,\n };\n\n // If an index is not found we will push the element to the end.\n if (index === -1) {\n newItems = [...items, newItem];\n } else {\n newItems = [\n ...items.slice(0, index),\n newItem,\n ...items.slice(index),\n ];\n }\n }\n\n return newItems.map((item, index) => ({ ...item, index }));\n });\n }, // set is a state setter initialized by the useDescendants hook.\n // We can safely ignore the lint warning here because it will not change\n // between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n let unregisterDescendant = useCallback(\n (element: TypeDescendant<ElementType, DescendantProps>[\"element\"]) => {\n if (!element) {\n return;\n }\n\n set((items) =>\n items\n .filter((item) => element !== item.element)\n .map((item, index) => ({ ...item, index }))\n );\n }, // set is a state setter initialized by the useDescendants hook.\n // We can safely ignore the lint warning here because it will not change\n // between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n const value = useMemo(() => {\n return {\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n };\n }, [items, registerDescendant, unregisterDescendant]);\n return <Ctx.Provider value={value}>{children}</Ctx.Provider>;\n}\nexport function useDescendantKeyDown<\n ElementType,\n DescendantProps,\n K extends keyof TypeDescendant<ElementType, DescendantProps>\n>(\n context: React.Context<TypeDescendantContext<ElementType, DescendantProps>>,\n options: {\n currentIndex?: number;\n key?: K | \"option\";\n filter?: (\n descendant: TypeDescendant<ElementType, DescendantProps>\n ) => boolean;\n orientation?: \"vertical\" | \"horizontal\" | \"both\";\n rotate?: boolean;\n rtl?: boolean;\n callback(\n nextOption:\n | TypeDescendant<ElementType, DescendantProps>\n | TypeDescendant<ElementType, DescendantProps>[keyof TypeDescendant<\n ElementType,\n DescendantProps\n >]\n ): void;\n }\n) {\n let { descendants } = useContext(context);\n let {\n callback,\n currentIndex,\n filter,\n key = \"index\",\n orientation = \"vertical\",\n rotate = true,\n rtl = false,\n } = options;\n let index = currentIndex ? currentIndex : -1;\n return function handleKeyDown(event: React.KeyboardEvent) {\n if (\n ![\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"PageUp\",\n \"PageDown\",\n \"Home\",\n \"End\",\n ].includes(event.key)\n ) {\n return;\n }\n\n // If we use a filter function, we need to re-index our descendants array\n // so that filtered descendent elements aren't selected.\n let selectableDescendants = filter\n ? descendants.filter(filter)\n : descendants;\n\n // Current index should map to the updated array vs. the original\n // descendants array.\n if (filter) {\n index = selectableDescendants.findIndex(\n (descendant) => descendant.index === currentIndex\n );\n }\n\n // We need some options for any of this to work!\n if (!selectableDescendants.length) {\n return;\n }\n\n function getNextOption() {\n let atBottom = index === selectableDescendants.length - 1;\n return atBottom\n ? rotate\n ? getFirstOption()\n : selectableDescendants[index]\n : selectableDescendants[(index + 1) % selectableDescendants.length];\n }\n\n function getPreviousOption() {\n let atTop = index === 0;\n return atTop\n ? rotate\n ? getLastOption()\n : selectableDescendants[index]\n : selectableDescendants[\n (index - 1 + selectableDescendants.length) %\n selectableDescendants.length\n ];\n }\n\n function getFirstOption() {\n return selectableDescendants[0];\n }\n\n function getLastOption() {\n return selectableDescendants[selectableDescendants.length - 1];\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let next = getNextOption() as any; // @ts-notes: sincerely dont understand the intent of the original library here, since the supposed reference has been completely refactored\n callback(key === \"option\" ? next : next[key]);\n }\n\n break;\n\n case \"ArrowUp\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let prev = getPreviousOption() as any;\n callback(key === \"option\" ? prev : prev[key]);\n }\n\n break;\n\n case \"ArrowLeft\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let nextOrPrev = (rtl ? getNextOption : getPreviousOption)() as any;\n callback(key === \"option\" ? nextOrPrev : nextOrPrev[key]);\n }\n\n break;\n\n case \"ArrowRight\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let prevOrNext = (rtl ? getPreviousOption : getNextOption)() as any;\n callback(key === \"option\" ? prevOrNext : prevOrNext[key]);\n }\n\n break;\n\n case \"PageUp\":\n event.preventDefault();\n let prevOrFirst = (\n event.ctrlKey ? getPreviousOption : getFirstOption\n )() as any;\n callback(key === \"option\" ? prevOrFirst : prevOrFirst[key]);\n break;\n\n case \"Home\":\n event.preventDefault();\n let first = getFirstOption() as any;\n callback(key === \"option\" ? first : first[key]);\n break;\n\n case \"PageDown\":\n event.preventDefault();\n let nextOrLast = (\n event.ctrlKey ? getNextOption : getLastOption\n )() as any;\n callback(key === \"option\" ? nextOrLast : nextOrLast[key]);\n break;\n\n case \"End\":\n event.preventDefault();\n let last = getLastOption() as any;\n callback(key === \"option\" ? last : last[key]);\n break;\n }\n };\n}\n","// eslint-disable @typescript-eslint/no-explicit-any\nimport { createContext, useContext, useEffect } from \"react\";\nimport scrollIntoViewIfNeeded from \"scroll-into-view-if-needed\";\nimport type { TypeMenuButtonContext, TypeMenuContext } from \"../MenuTypes\";\nimport { MENU_ROLES } from \"./constants\";\nimport type { TypeDescendant } from \"./descendants\";\nimport {\n createDescendantContext,\n useDescendantKeyDown,\n usePrevious,\n wrapEvent,\n} from \"./descendants\";\nexport const MenuContext = createContext<TypeMenuContext>({\n role: MENU_ROLES.MENU,\n menuRef: {\n current: null,\n },\n value: undefined,\n multiselect: false,\n onChange: undefined,\n state: {\n selectionIndex: 0,\n filterQuery: \"\",\n filteredItems: null,\n isFilterInputFocused: false,\n isFooterFocused: false,\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setState: () => {},\n selectCallbacks: {\n current: [],\n },\n});\nexport const MenuButtonContext = createContext<TypeMenuButtonContext>({\n closeOnItemClick: undefined,\n closePopout: undefined,\n});\nexport type TypeMenuDescendantProps = {\n id: string;\n label: string | null | undefined;\n value?: string;\n disabled?: boolean;\n};\nexport const MenuDescendantContext = createDescendantContext(\n \"MenuDescendantContext\"\n);\n\n/**\n * When a user's typed input matches the string displayed in a menu item, it is\n * expected that the matching menu item is selected. This is our matching\n * function.\n */\nfunction filterItemsFromTypeahead(\n items: TypeDescendant<HTMLElement, TypeMenuDescendantProps>[],\n string = \"\"\n) {\n if (!string) {\n return null;\n }\n\n return items\n .filter(\n ({ value, label }) =>\n value?.toLowerCase().includes(string.toLocaleLowerCase()) ||\n label?.toLowerCase().includes(string.toLocaleLowerCase())\n )\n .map(({ index }) => index);\n}\n\nexport function useMenuKeyDown() {\n const {\n onChange,\n selectCallbacks,\n setState,\n multiselect,\n state: {\n filterQuery,\n selectionIndex,\n filteredItems,\n isFilterInputFocused,\n isFooterFocused,\n },\n } = useContext(MenuContext);\n const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);\n const { descendants: items } = useContext(MenuDescendantContext);\n const shouldClosePopout = closeOnItemClick && !multiselect;\n const prevMenuItemsLength = usePrevious(items.length);\n const prevSelected = usePrevious(items[selectionIndex]);\n const prevSelectionIndex = usePrevious(selectionIndex);\n useEffect(() => {\n if (items.length && selectionIndex > items.length - 1) {\n // If for some reason our selection index is larger than our possible\n // index range (let's say the last item is selected and the list\n // dynamically updates), we need to select the last item in the list.\n setState({\n selectionIndex: items.length - 1,\n });\n } else if (\n // Checks if\n // - menu length has changed\n // - selection index has not changed BUT selected item has changed\n //\n // This prevents any dynamic adding/removing of menu items from actually\n // changing a user's expected selection.\n prevMenuItemsLength !== items.length &&\n selectionIndex > -1 &&\n prevSelected &&\n prevSelectionIndex === selectionIndex &&\n items[selectionIndex] !== prevSelected\n ) {\n setState({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore I'm just going to ignore this one because its really hard to estimate where this stuff is coming from at any given time\n selectionIndex: items.findIndex((i) => i.index === prevSelected.index),\n });\n }\n }, [\n setState,\n items,\n prevMenuItemsLength,\n prevSelected,\n prevSelectionIndex,\n selectionIndex,\n ]);\n useEffect(() => {\n const newFilteredItems = filterItemsFromTypeahead(items, filterQuery);\n\n if (\n filterQuery &&\n newFilteredItems &&\n filteredItems?.length !== newFilteredItems?.length\n ) {\n setState({\n filteredItems: newFilteredItems,\n selectionIndex: newFilteredItems[0],\n });\n } else if (!filterQuery && filteredItems !== null) {\n setState({\n filteredItems: null,\n });\n }\n }, [filterQuery, items, setState, filteredItems]);\n const index = items.findIndex(({ index }) => index === selectionIndex);\n return {\n activeDescendent: items[selectionIndex],\n handleKeyDown: wrapEvent<React.KeyboardEvent>(\n function (event) {\n const { key } = event;\n // Do not trigger key events for the selected item if the footer is focused\n if (isFooterFocused) {\n return;\n }\n\n switch (key) {\n case \" \":\n if (isFilterInputFocused) {\n return;\n }\n\n // falls through\n // eslint-disable-next-line no-fallthrough\n case \"Enter\":\n // eslint-disable-next-line no-case-declarations\n const selected = items[selectionIndex] as HTMLElement[] & {\n index: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n disabled?: boolean;\n };\n\n if (selected && !selected.disabled) {\n event.preventDefault();\n const func = selectCallbacks.current[selected.index];\n func?.call && func();\n onChange && selected.value && onChange(selected.value);\n shouldClosePopout && closePopout && closePopout();\n }\n\n return;\n\n default:\n return;\n }\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useDescendantKeyDown(MenuDescendantContext as React.Context<any>, {\n currentIndex: index,\n orientation: \"vertical\",\n key: \"option\",\n rotate: true,\n filter: (\n option: TypeDescendant<HTMLElement, TypeMenuDescendantProps>\n ) =>\n !option.disabled &&\n (!filteredItems || filteredItems.includes(option.index)),\n\n callback(item: TypeDescendant<HTMLElement, TypeMenuDescendantProps>) {\n if (item.element) {\n scrollIntoViewIfNeeded(item.element, {\n block: \"nearest\",\n scrollMode: \"if-needed\",\n });\n }\n\n setState({\n selectionIndex: item.index,\n });\n },\n })\n ),\n };\n}\n","import styled, { css } from \"styled-components\";\nimport { disabled, focusRing } from \"@sproutsocial/seeds-react-mixins\";\nimport Box from \"@sproutsocial/seeds-react-box\";\nimport { StyledSwitchButton as Switch } from \"@sproutsocial/seeds-react-switch\";\nimport type { TypeMenuItemContainerProps } from \"./MenuTypes\";\n\nexport const MenuItemContainer = styled(Box)<TypeMenuItemContainerProps>`\n ${(props) =>\n !props.hidden &&\n css`\n display: block;\n `};\n width: 100%;\n border-radius: ${(props) => props.theme.radii[500]};\n background-color: ${(props) => props.theme.colors.listItem.background.base};\n border: none;\n text-align: left;\n color: ${(props) => props.theme.colors.text.body};\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.normal};\n padding: ${(props) => `6px ${props.theme.space[300]}`};\n list-style-type: none;\n outline: 0;\n ${(props) => css`\n ${props.theme.typography[200]};\n `};\n\n ${(props) =>\n props.selected &&\n !props.isCheckboxOrRadio &&\n css`\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n `}\n\n ${(props) =>\n props.active &&\n !props.disabled &&\n css`\n color: ${(props) => props.theme.colors.text.inverse};\n background-color: ${props.theme.colors.listItem.background.selected};\n\n .Icon-svg {\n color: ${(props) => props.theme.colors.text.inverse};\n }\n `}\n\n // Add border to Switches inside of active Menu Items so they do not disappear into the background.\n ${Switch} {\n ${(props) =>\n props.active &&\n !props.disabled &&\n css`\n border-color: ${(props) => props.theme.colors.container.border.base};\n `}\n }\n\n ${(props) =>\n !props.disabled &&\n css`\n &:focus,\n &:hover {\n color: ${(props) => props.theme.colors.text.body};\n background-color: ${(props) =>\n props.theme.colors.listItem.background.hover};\n\n .Icon-svg {\n color: unset;\n }\n }\n `}\n\n ${(props) =>\n props.interactive && !props.disabled\n ? css`\n &:hover {\n cursor: pointer;\n }\n `\n : css`\n &:hover {\n cursor: default;\n }\n `}\n ${(props) => props.disabled && disabled}\n`;\n\nexport const MenuItemsContainer = styled(Box)`\n list-style-type: none;\n &:focus {\n ${focusRing}\n }\n & > div[role=\"group\"]:first-of-type {\n border-top: none;\n }\n`;\n","import Menu, { MenuButton } from \"./Menu\";\n\nexport { Menu, MenuButton };\nexport default Menu;\nexport * from \"./MenuTypes\";\nexport * from \"./styles\";\nexport * from \"./utils\";\n","import styled from \"styled-components\";\n\nconst Nav = styled.nav`\n ol {\n ${(props) => props.theme.typography[200]};\n margin: 0;\n font-family: ${(props) => props.theme.fontFamily};\n padding: 0;\n display: flex;\n }\n\n li {\n margin-right: ${(props) => props.theme.space[200]};\n display: flex;\n }\n\n a,\n button {\n ${(props) => props.theme.typography[200]};\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:not(.overflow--menu) {\n margin: 0;\n padding: 0;\n }\n }\n\n ol > div + li::before {\n content: \"/\";\n margin-right: ${(props) => props.theme.space[200]};\n }\n\n li:last-child a,\n li:last-child button {\n color: ${(props) => props.theme.colors.text.body};\n font-weight: bold;\n }\n\n li:not(:last-child)::after {\n content: \"/\";\n color: ${(props) => props.theme.colors.text.body};\n margin-left: ${(props) => props.theme.space[200]};\n }\n`;\n\nexport default Nav;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { MENU_ROLES } from \"../Menu/utils/constants\";\nimport { Arrow } from \"@sproutsocial/seeds-react-select\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\n// eslint-disable-next-line no-restricted-imports\nimport Menu, { MenuButton } from \"../Menu\";\nimport type { TypeListboxProps, TypeListboxButtonProps } from \"./ListboxTypes\";\n\n/**\n * @deprecated Listbox is deprecated. Listbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const Listbox = ({\n role = MENU_ROLES.LISTBOX,\n children,\n ...rest\n}: TypeListboxProps) => {\n return (\n <Menu {...rest} role={role}>\n {children}\n </Menu>\n );\n};\n\n/**\n * These styles are copied from @sproutsocial/racine/commonjs/Select/styles and applied at the root element since\n * the Listbox component doesn't render a select.\n */\nexport const ListboxButtonContainer = styled(MenuButton)`\n position: relative;\n width: 100%;\n border: 1px solid ${(props) => props.theme.colors.form.border.base};\n border-radius: ${(props) => props.theme.radii[500]};\n background-color: ${(props) => props.theme.colors.form.background.base};\n color: ${(props) => props.theme.colors.text.body};\n cursor: ${(props) => (props.disabled ? \"not-allowed\" : \"pointer\")};\n outline: none;\n appearance: none;\n transition: border-color ${(props) => props.theme.duration.fast}\n ${(props) => props.theme.easing.ease_in},\n box-shadow ${(props) => props.theme.duration.fast}\n ${(props) => props.theme.easing.ease_in};\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.normal};\n text-align: left;\n margin: 0;\n &:active {\n transform: none;\n }\n\n padding: ${(props) => {\n switch (props.size) {\n case \"large\":\n return `${props.theme.space[400]} ${props.theme.space[600]} ${props.theme.space[400]} ${props.theme.space[400]}`;\n\n case \"small\":\n return `${props.theme.space[200]} ${props.theme.space[500]} ${props.theme.space[200]} ${props.theme.space[200]}`;\n\n case \"default\":\n default:\n return `${props.theme.space[300]} ${props.theme.space[500]} ${props.theme.space[300]} ${props.theme.space[300]}`;\n }\n }};\n font-size: ${(props) => {\n switch (props.size) {\n case \"large\":\n return props.theme.typography[300].fontSize;\n\n case \"small\":\n case \"default\":\n default:\n return props.theme.typography[200].fontSize;\n }\n }};\n\n ${(props) =>\n props.invalid &&\n css`\n border-color: ${(props) => props.theme.colors.form.border.error};\n ${Arrow} {\n color: ${(props) => props.theme.colors.icon.error};\n }\n `}\n`;\n\n/**\n * @deprecated ListboxButton is deprecated. ListboxButton will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const ListboxButton = ({\n children,\n ...restProps\n}: TypeListboxButtonProps) => (\n <ListboxButtonContainer\n {...restProps}\n popoutProps={{\n placement: \"bottom-start\",\n ...(restProps.popoutProps || {}),\n }}\n >\n {children}\n <Arrow size={restProps.size}>\n <Icon name=\"chevron-down-outline\" fixedWidth aria-hidden />\n </Arrow>\n </ListboxButtonContainer>\n);\n\nListbox.Option = Listbox.Item = Menu.Item;\nListbox.Checkbox = Menu.Checkbox;\nListbox.Radio = Menu.Radio;\nListbox.Switch = Menu.Switch;\nListbox.Group = Menu.Group;\nListbox.Divider = Menu.Divider;\nListbox.FilterInput = Menu.FilterInput;\n\n/**\n * @deprecated Listbox is deprecated. Listbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport default Listbox;\n","import * as React from \"react\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Container, { IconText } from \"./styles\";\nimport type { TypeToggleHintProps } from \"./ToggleHintTypes\";\n/**\n * Icon (either chevron or plus/minus) indicating whether an element is open or closed.\n */\n\n/**\n * @deprecated ToggleHint is deprecated. ToggleHint is no longer supported and will be removed in 2025.\n */\nexport default class ToggleHint extends React.Component<TypeToggleHintProps> {\n static defaultProps = {\n isOpen: false,\n icon: \"chevron\",\n };\n getIcon = () => {\n if (this.props.icon === \"chevron\") {\n return <Icon name=\"chevron-down-outline\" aria-hidden />;\n }\n\n return (\n <Icon\n name={this.props.isOpen ? \"minus-outline\" : \"plus-outline\"}\n aria-hidden\n />\n );\n };\n\n render() {\n const {\n icon,\n isOpen,\n openString,\n closeString,\n qa,\n className,\n color,\n ...rest\n } = this.props;\n return (\n <Container\n icon={icon}\n isOpen={isOpen}\n className={`ToggleHint ${className}`}\n data-qa-togglehint-isopen={isOpen}\n // TODO: fix this type since `color` should be valid here. TS can't resolve the correct type.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n color={color}\n {...qa}\n {...rest}\n >\n {this.getIcon()}\n\n <IconText>{isOpen ? closeString : openString}</IconText>\n </Container>\n );\n }\n}\n","import styled, { css } from \"styled-components\";\nimport { COMMON } from \"@sproutsocial/seeds-react-system-props\";\nimport { visuallyHidden } from \"@sproutsocial/seeds-react-mixins\";\nimport { TypeToggleHintProps } from \"./ToggleHintTypes\";\n\nconst Container = styled.div<Pick<TypeToggleHintProps, \"icon\" | \"isOpen\">>`\n position: relative;\n display: inline-block;\n padding: ${(props) => props.theme.space[100]};\n color: currentColor;\n\n ${(props) =>\n props.icon === \"chevron\" &&\n css`\n transition: transform\n ${(props) =>\n `${props.theme.duration.medium} ${props.theme.easing.ease_inout}`};\n\n ${props.isOpen &&\n css`\n transform: rotateX(180deg);\n `}\n `}\n\n ${COMMON}\n`;\n\nexport const IconText = styled.div`\n ${visuallyHidden}\n`;\n\nexport default Container;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,iCAA2D;AAC3D,iCAA6D;AAG7D,0BAAc,mDATd;AAUA,0BAAc,4CAVd;AAWA,wCAAyC;AAGzC,IAAAA,4BAMO;AACP,0BAAc,6CArBd;AAwBA,0BAAc,6CAxBd;AAyBA,0BAAc,4CAzBd;AA0BA,0BAAc,6CA1Bd;AA2BA,0BAAc,0CA3Bd;;;ACAA,YAAuB;AACvB,IAAAC,2BAAiB;AACjB,8BAAiB;;;ACDjB,IAAAC,gBAOO;AACP,IAAAC,4BAAmB;AACnB,oBAAqB;AACrB,+BAA+B;;;ACT/B,IAAM,iBAAiB,CAAC,KAAyB,aAA8B;AAC7E,SAAO,OAAO,UAAU,eAAe,KAAK,KAAK,QAAQ;AAC3D;AAEA,IAAM,cAAc,CAAC,SAA0B;AAC7C,SAAO,eAAe,MAAM,UAAU;AACxC;AAEA,IAAM,WAAW,CAAC,SAA6B;AAC7C,SAAO,eAAe,MAAM,OAAO;AACrC;AAEA,IAAM,qBAAqB,CAAC,UAAkB,YAA+B;AAC3E,SAAO,SAAS,SACZ,GAAG,QAAQ,IAAI,UAAU,OAAO,CAAC,KACjC,UAAU,OAAO;AACvB;AAEO,IAAM,YAAY,CAAC,SAA4B;AACpD,MACE,SAAS,QACT,OAAO,SAAS,eAChB,OAAO,SAAS,WAChB;AACA,WAAO;AAAA,EACT,WAAW,OAAO,SAAS,UAAU;AACnC,WAAO;AAAA,EACT,WAAW,OAAO,SAAS,UAAU;AACnC,WAAO,KAAK,SAAS;AAAA,EACvB,WAAW,MAAM,QAAQ,IAAI,GAAG;AAC9B,WAAQ,KAA8B;AAAA,MACpC;AAAA,MACA;AAAA,IACF;AAAA,EAGF,WAAW,SAAS,IAAI,KAAK,YAAY,KAAK,KAAK,GAAG;AAGpD,WAAO,UAAU,KAAK,MAAM,QAAQ;AAAA,EACtC;AAEA,SAAO;AACT;;;ADhCA,IAAAC,6BAAyB;AACzB,IAAAC,0BAAkC;AAClC,gCAAmB;AACnB,kCAAqB;AACrB,8BAAiB;AACjB,+BAAsC;AACtC,gCAAmB;AACnB,+BAAkB;AAClB,IAAAC,6BAAmB;AACnB,8BAAiB;;;AEtBV,IAAM,aAAa,OAAO,OAAO;AAAA,EACtC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AACX,CAAU;AACH,IAAM,kBAAkB,OAAO,OAAO;AAAA,EAC3C,UAAU;AAAA,EACV,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,UAAU;AACZ,CAAU;;;ACTV,mBASO;AAsPE;AAnOT,IAAM,OAAO,MAAM;AAAC;AAOb,SAAS,YAAY,OAAO;AACjC,QAAM,UAAM,qBAAO,IAAI;AACvB,8BAAU,MAAM;AACd,QAAI,UAAU;AAAA,EAChB,GAAG,CAAC,KAAK,CAAC;AACV,SAAO,IAAI;AACb;AAUO,SAAS,UACd,cACA,YAC2B;AAC3B,SAAO,CAAC,UAAU;AAChB,oBAAgB,aAAa,KAAK;AAElC,QAAI,CAAC,MAAM,kBAAkB;AAC3B,aAAO,WAAW,KAAK;AAAA,IACzB;AAAA,EACF;AACF;AAEO,SAAS,YAAY;AAC1B,SACE,OAAO,WAAW,eAClB,OAAO,OAAO,aAAa,eAC3B,OAAO,OAAO,SAAS,kBAAkB;AAE7C;AACA,IAAM,4BAA4B,UAAU,IAAI,+BAAkB;AAE3D,SAAS,mBACd,MACA,cACiC;AACjC,QAAM,UAAM,4BAAgC,YAAY;AACxD,MAAI,cAAc;AAClB,SAAO;AACT;AAEO,SAAS,wBACd,MACA,eAAe;AAAA,EACb,aAAa,CAAC;AAAA,EACd,oBAAoB;AAAA,EACpB,sBAAsB;AACxB,GACA;AACA,SAAO,mBAAmB,MAAM;AAAA,IAC9B,GAAG;AAAA,EACL,CAAC;AACH;AAyBO,SAAS,cACd,EAAE,SAAS,SAAS,GAAG,KAAK,GAC5B,WACA;AACA,MAAI,CAAC,EAAE,WAAW,QAAI,uBAAc;AACpC,MAAI,EAAE,oBAAoB,sBAAsB,YAAY,QAC1D,yBAAgE,OAAO;AAEzE,4BAA0B,MAAM;AAC9B,QAAI,CAAC,QAAS,aAAY,CAAC,CAAC;AAC5B,uBAAmB;AAAA,MACjB;AAAA,MACA,GAAG;AAAA,IACL,CAAQ;AACR,WAAO,MAAM,qBAAqB,OAAO;AAAA,EAC3C,GAAG,CAAC,SAAS,GAAG,OAAO,OAAO,IAAI,CAAC,CAAC;AACpC,SAAO,YACH,YACA,YAAY,UAAU,CAAC,SAAS,KAAK,YAAY,OAAO;AAC9D;AACO,SAAS,iBAA+C;AAC7D,aAAO,uBAAyD,CAAC,CAAC;AACpE;AACO,SAAS,mBAGd;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AACF,GAOG;AACD,MAAI,yBAAqB;AAAA,IACvB,CAAC,EAAE,SAAS,GAAG,KAAK,MAAM;AACxB,UAAI,CAAC,SAAS;AACZ;AAAA,MACF;AAEA,UAAI,CAACC,WAAU;AACb,YAAI;AACJ,YAAI;AAGJ,YAAIA,OAAM,WAAW,GAAG;AACtB,oBAAU;AAAA,YACR;AAAA,YACA,OAAO;AAAA,YACP,GAAG;AAAA,UACL;AACA,qBAAW,CAAC,GAAGA,QAAO,OAAO;AAAA,QAC/B,WAAWA,OAAM,KAAK,CAAC,SAAS,KAAK,YAAY,OAAO,GAAG;AAEzD,qBAAWA;AAAA,QACb,OAAO;AAaL,cAAI,QAAQA,OAAM,UAAU,CAAC,SAAS;AACpC,gBAAI,CAAC,KAAK,WAAW,CAAC,SAAS;AAC7B,qBAAO;AAAA,YACT;AAMA,mBAAO;AAAA,cACL,KAAK,QAAQ,wBAAwB,OAAO,IAC1C,KAAK;AAAA,YACT;AAAA,UACF,CAAC;AACD,oBAAU;AAAA,YACR;AAAA,YACA;AAAA,YACA,GAAG;AAAA,UACL;AAGA,cAAI,UAAU,IAAI;AAChB,uBAAW,CAAC,GAAGA,QAAO,OAAO;AAAA,UAC/B,OAAO;AACL,uBAAW;AAAA,cACT,GAAGA,OAAM,MAAM,GAAG,KAAK;AAAA,cACvB;AAAA,cACA,GAAGA,OAAM,MAAM,KAAK;AAAA,YACtB;AAAA,UACF;AAAA,QACF;AAEA,eAAO,SAAS,IAAI,CAAC,MAAM,WAAW,EAAE,GAAG,MAAM,MAAM,EAAE;AAAA,MAC3D,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA,IAIA,CAAC;AAAA,EACH;AACA,MAAI,2BAAuB;AAAA,IACzB,CAAC,YAAqE;AACpE,UAAI,CAAC,SAAS;AACZ;AAAA,MACF;AAEA;AAAA,QAAI,CAACA,WACHA,OACG,OAAO,CAAC,SAAS,YAAY,KAAK,OAAO,EACzC,IAAI,CAAC,MAAM,WAAW,EAAE,GAAG,MAAM,MAAM,EAAE;AAAA,MAC9C;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA,IAIA,CAAC;AAAA,EACH;AACA,QAAM,YAAQ,sBAAQ,MAAM;AAC1B,WAAO;AAAA,MACL,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,OAAO,oBAAoB,oBAAoB,CAAC;AACpD,SAAO,4CAAC,IAAI,UAAJ,EAAa,OAAe,UAAS;AAC/C;AACO,SAAS,qBAKd,SACA,SAkBA;AACA,MAAI,EAAE,YAAY,QAAI,yBAAW,OAAO;AACxC,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,cAAc;AAAA,IACd,SAAS;AAAA,IACT,MAAM;AAAA,EACR,IAAI;AACJ,MAAI,QAAQ,eAAe,eAAe;AAC1C,SAAO,SAAS,cAAc,OAA4B;AACxD,QACE,CAAC;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,EAAE,SAAS,MAAM,GAAG,GACpB;AACA;AAAA,IACF;AAIA,QAAI,wBAAwB,SACxB,YAAY,OAAO,MAAM,IACzB;AAIJ,QAAI,QAAQ;AACV,cAAQ,sBAAsB;AAAA,QAC5B,CAAC,eAAe,WAAW,UAAU;AAAA,MACvC;AAAA,IACF;AAGA,QAAI,CAAC,sBAAsB,QAAQ;AACjC;AAAA,IACF;AAEA,aAAS,gBAAgB;AACvB,UAAI,WAAW,UAAU,sBAAsB,SAAS;AACxD,aAAO,WACH,SACE,eAAe,IACf,sBAAsB,KAAK,IAC7B,uBAAuB,QAAQ,KAAK,sBAAsB,MAAM;AAAA,IACtE;AAEA,aAAS,oBAAoB;AAC3B,UAAI,QAAQ,UAAU;AACtB,aAAO,QACH,SACE,cAAc,IACd,sBAAsB,KAAK,IAC7B,uBACG,QAAQ,IAAI,sBAAsB,UACjC,sBAAsB,MAC1B;AAAA,IACN;AAEA,aAAS,iBAAiB;AACxB,aAAO,sBAAsB,CAAC;AAAA,IAChC;AAEA,aAAS,gBAAgB;AACvB,aAAO,sBAAsB,sBAAsB,SAAS,CAAC;AAAA,IAC/D;AAEA,YAAQ,MAAM,KAAK;AAAA,MACjB,KAAK;AACH,YAAI,gBAAgB,cAAc,gBAAgB,QAAQ;AACxD,gBAAM,eAAe;AACrB,cAAI,OAAO,cAAc;AACzB,mBAAS,QAAQ,WAAW,OAAO,KAAK,GAAG,CAAC;AAAA,QAC9C;AAEA;AAAA,MAEF,KAAK;AACH,YAAI,gBAAgB,cAAc,gBAAgB,QAAQ;AACxD,gBAAM,eAAe;AACrB,cAAI,OAAO,kBAAkB;AAC7B,mBAAS,QAAQ,WAAW,OAAO,KAAK,GAAG,CAAC;AAAA,QAC9C;AAEA;AAAA,MAEF,KAAK;AACH,YAAI,gBAAgB,gBAAgB,gBAAgB,QAAQ;AAC1D,gBAAM,eAAe;AACrB,cAAI,cAAc,MAAM,gBAAgB,mBAAmB;AAC3D,mBAAS,QAAQ,WAAW,aAAa,WAAW,GAAG,CAAC;AAAA,QAC1D;AAEA;AAAA,MAEF,KAAK;AACH,YAAI,gBAAgB,gBAAgB,gBAAgB,QAAQ;AAC1D,gBAAM,eAAe;AACrB,cAAI,cAAc,MAAM,oBAAoB,eAAe;AAC3D,mBAAS,QAAQ,WAAW,aAAa,WAAW,GAAG,CAAC;AAAA,QAC1D;AAEA;AAAA,MAEF,KAAK;AACH,cAAM,eAAe;AACrB,YAAI,eACF,MAAM,UAAU,oBAAoB,gBACpC;AACF,iBAAS,QAAQ,WAAW,cAAc,YAAY,GAAG,CAAC;AAC1D;AAAA,MAEF,KAAK;AACH,cAAM,eAAe;AACrB,YAAI,QAAQ,eAAe;AAC3B,iBAAS,QAAQ,WAAW,QAAQ,MAAM,GAAG,CAAC;AAC9C;AAAA,MAEF,KAAK;AACH,cAAM,eAAe;AACrB,YAAI,cACF,MAAM,UAAU,gBAAgB,eAChC;AACF,iBAAS,QAAQ,WAAW,aAAa,WAAW,GAAG,CAAC;AACxD;AAAA,MAEF,KAAK;AACH,cAAM,eAAe;AACrB,YAAI,OAAO,cAAc;AACzB,iBAAS,QAAQ,WAAW,OAAO,KAAK,GAAG,CAAC;AAC5C;AAAA,IACJ;AAAA,EACF;AACF;;;ACxaA,IAAAC,gBAAqD;AACrD,wCAAmC;AAU5B,IAAM,kBAAc,6BAA+B;AAAA,EACxD,MAAM,WAAW;AAAA,EACjB,SAAS;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA,OAAO;AAAA,EACP,aAAa;AAAA,EACb,UAAU;AAAA,EACV,OAAO;AAAA,IACL,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,EACnB;AAAA;AAAA,EAEA,UAAU,MAAM;AAAA,EAAC;AAAA,EACjB,iBAAiB;AAAA,IACf,SAAS,CAAC;AAAA,EACZ;AACF,CAAC;AACM,IAAM,wBAAoB,6BAAqC;AAAA,EACpE,kBAAkB;AAAA,EAClB,aAAa;AACf,CAAC;AAOM,IAAM,wBAAwB;AAAA,EACnC;AACF;AAOA,SAAS,yBACP,OACA,SAAS,IACT;AACA,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,SAAO,MACJ;AAAA,IACC,CAAC,EAAE,OAAO,MAAM,MACd,OAAO,YAAY,EAAE,SAAS,OAAO,kBAAkB,CAAC,KACxD,OAAO,YAAY,EAAE,SAAS,OAAO,kBAAkB,CAAC;AAAA,EAC5D,EACC,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK;AAC7B;AAEO,SAAS,iBAAiB;AAC/B,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF,QAAI,0BAAW,WAAW;AAC1B,QAAM,EAAE,aAAa,iBAAiB,QAAI,0BAAW,iBAAiB;AACtE,QAAM,EAAE,aAAa,MAAM,QAAI,0BAAW,qBAAqB;AAC/D,QAAM,oBAAoB,oBAAoB,CAAC;AAC/C,QAAM,sBAAsB,YAAY,MAAM,MAAM;AACpD,QAAM,eAAe,YAAY,MAAM,cAAc,CAAC;AACtD,QAAM,qBAAqB,YAAY,cAAc;AACrD,+BAAU,MAAM;AACd,QAAI,MAAM,UAAU,iBAAiB,MAAM,SAAS,GAAG;AAIrD,eAAS;AAAA,QACP,gBAAgB,MAAM,SAAS;AAAA,MACjC,CAAC;AAAA,IACH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOE,wBAAwB,MAAM,UAC9B,iBAAiB,MACjB,gBACA,uBAAuB,kBACvB,MAAM,cAAc,MAAM;AAAA,MAC1B;AACA,eAAS;AAAA;AAAA;AAAA,QAGP,gBAAgB,MAAM,UAAU,CAAC,MAAM,EAAE,UAAU,aAAa,KAAK;AAAA,MACvE,CAAC;AAAA,IACH;AAAA,EACF,GAAG;AAAA,IACD;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,+BAAU,MAAM;AACd,UAAM,mBAAmB,yBAAyB,OAAO,WAAW;AAEpE,QACE,eACA,oBACA,eAAe,WAAW,kBAAkB,QAC5C;AACA,eAAS;AAAA,QACP,eAAe;AAAA,QACf,gBAAgB,iBAAiB,CAAC;AAAA,MACpC,CAAC;AAAA,IACH,WAAW,CAAC,eAAe,kBAAkB,MAAM;AACjD,eAAS;AAAA,QACP,eAAe;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,EACF,GAAG,CAAC,aAAa,OAAO,UAAU,aAAa,CAAC;AAChD,QAAM,QAAQ,MAAM,UAAU,CAAC,EAAE,OAAAC,OAAM,MAAMA,WAAU,cAAc;AACrE,SAAO;AAAA,IACL,kBAAkB,MAAM,cAAc;AAAA,IACtC,eAAe;AAAA,MACb,SAAU,OAAO;AACf,cAAM,EAAE,IAAI,IAAI;AAEhB,YAAI,iBAAiB;AACnB;AAAA,QACF;AAEA,gBAAQ,KAAK;AAAA,UACX,KAAK;AACH,gBAAI,sBAAsB;AACxB;AAAA,YACF;AAAA;AAAA;AAAA,UAIF,KAAK;AAEH,kBAAM,WAAW,MAAM,cAAc;AAOrC,gBAAI,YAAY,CAAC,SAAS,UAAU;AAClC,oBAAM,eAAe;AACrB,oBAAM,OAAO,gBAAgB,QAAQ,SAAS,KAAK;AACnD,oBAAM,QAAQ,KAAK;AACnB,0BAAY,SAAS,SAAS,SAAS,SAAS,KAAK;AACrD,mCAAqB,eAAe,YAAY;AAAA,YAClD;AAEA;AAAA,UAEF;AACE;AAAA,QACJ;AAAA,MACF;AAAA;AAAA,MAEA,qBAAqB,uBAA6C;AAAA,QAChE,cAAc;AAAA,QACd,aAAa;AAAA,QACb,KAAK;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ,CACN,WAEA,CAAC,OAAO,aACP,CAAC,iBAAiB,cAAc,SAAS,OAAO,KAAK;AAAA,QAExD,SAAS,MAA4D;AACnE,cAAI,KAAK,SAAS;AAChB,kDAAAC,SAAuB,KAAK,SAAS;AAAA,cACnC,OAAO;AAAA,cACP,YAAY;AAAA,YACd,CAAC;AAAA,UACH;AAEA,mBAAS;AAAA,YACP,gBAAgB,KAAK;AAAA,UACvB,CAAC;AAAA,QACH;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;;;ACnNA,+BAA4B;AAC5B,gCAAoC;AACpC,6BAAgB;AAChB,gCAA6C;AAGtC,IAAM,wBAAoB,yBAAAC,SAAO,uBAAAC,OAAG;AAAA,IACvC,CAAC,UACD,CAAC,MAAM,UACP;AAAA;AAAA,KAEC;AAAA;AAAA,mBAEc,CAAC,UAAU,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,sBAC9B,CAAC,UAAU,MAAM,MAAM,OAAO,SAAS,WAAW,IAAI;AAAA;AAAA;AAAA,WAGjE,CAAC,UAAU,MAAM,MAAM,OAAO,KAAK,IAAI;AAAA,iBACjC,CAAC,UAAU,MAAM,MAAM,UAAU;AAAA,iBACjC,CAAC,UAAU,MAAM,MAAM,YAAY,MAAM;AAAA,aAC7C,CAAC,UAAU,OAAO,MAAM,MAAM,MAAM,GAAG,CAAC,EAAE;AAAA;AAAA;AAAA,IAGnD,CAAC,UAAU;AAAA,MACT,MAAM,MAAM,WAAW,GAAG,CAAC;AAAA,GAC9B;AAAA;AAAA,IAEC,CAAC,UACD,MAAM,YACN,CAAC,MAAM,qBACP;AAAA,qBACiB,CAACC,WAAUA,OAAM,MAAM,YAAY,QAAQ;AAAA,KAC3D;AAAA;AAAA,IAED,CAAC,UACD,MAAM,UACN,CAAC,MAAM,YACP;AAAA,eACW,CAACA,WAAUA,OAAM,MAAM,OAAO,KAAK,OAAO;AAAA,0BAC/B,MAAM,MAAM,OAAO,SAAS,WAAW,QAAQ;AAAA;AAAA;AAAA,iBAGxD,CAACA,WAAUA,OAAM,MAAM,OAAO,KAAK,OAAO;AAAA;AAAA,KAEtD;AAAA;AAAA;AAAA,KAGA,0BAAAC,kBAAM;AAAA,MACL,CAAC,UACD,MAAM,UACN,CAAC,MAAM,YACP;AAAA,wBACkB,CAACD,WAAUA,OAAM,MAAM,OAAO,UAAU,OAAO,IAAI;AAAA,OACpE;AAAA;AAAA;AAAA,IAGH,CAAC,UACD,CAAC,MAAM,YACP;AAAA;AAAA;AAAA,iBAGa,CAACA,WAAUA,OAAM,MAAM,OAAO,KAAK,IAAI;AAAA,4BAC5B,CAACA,WACnBA,OAAM,MAAM,OAAO,SAAS,WAAW,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAMjD;AAAA;AAAA,IAED,CAAC,UACD,MAAM,eAAe,CAAC,MAAM,WACxB;AAAA;AAAA;AAAA;AAAA,YAKA;AAAA;AAAA;AAAA;AAAA,SAIC;AAAA,IACL,CAAC,UAAU,MAAM,YAAY,kCAAQ;AAAA;AAGlC,IAAM,yBAAqB,yBAAAF,SAAO,uBAAAC,OAAG;AAAA;AAAA;AAAA,MAGtC,mCAAS;AAAA;AAAA;AAAA;AAAA;AAAA;;;ALiHP,IAAAG,sBAAA;AA3JR,IAAMC,QAAO,MAAM;AAAC;AAEpB,IAAM,kBAAkB,CACtB,aACsB;AACtB,UAAQ,UAAU;AAAA,IAChB,KAAK,WAAW;AACd,aAAO,gBAAgB;AAAA,IAEzB,KAAK,WAAW;AACd,aAAO,gBAAgB;AAAA,IAEzB,KAAK,WAAW;AAAA,IAChB;AACE,aAAO,gBAAgB;AAAA,EAC3B;AACF;AAEA,SAAS,gBAAgB,WAAW,OAAO;AACzC,MAAI,CAAC,UAAW,QAAO;AAEvB,MAAI,OAAO,cAAc,UAAU;AACjC,WAAO,QAAQ,aAAa,SAAS,cAAc,KAAK;AAAA,EAC1D,WAAW,MAAM,QAAQ,SAAS,GAAG;AACnC,WAAO,UAAU,SAAS,KAAK;AAAA,EACjC;AAEA,SAAO;AACT;AAKO,IAAM,WAAW,CAAC;AAAA,EACvB,IAAI;AAAA,EACJ,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAAC;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,GAAG;AACL,MAAyB;AACvB,QAAM;AAAA,IACJ,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,EACF,QAAI,0BAAW,WAAW;AAC1B,QAAM,EAAE,gBAAgB,cAAc,IAAI;AAC1C,QAAM,EAAE,aAAa,iBAAiB,QAAI,0BAAW,iBAAiB;AACtE,QAAM,aAAa,YAAY,gBAAgB,OAAO,SAAS;AAC/D,QAAM,oBAAoB,oBAAoB,CAAC;AAC/C,QAAM,WAAW,YAAY,gBAAgB,QAAQ;AACrD,QAAM,SAAK,uBAAQ,MAAM,cAAU,cAAAC,SAAS,WAAW,GAAG,CAAC,MAAM,CAAC;AAClE,QAAM,kBAAc,yCAAe,EAAE;AAGrC,QAAM,QAAQ,aAAa,YAAY;AACvC,QAAM,UAAM,sBAA8B,IAAI;AAC9C,QAAM,QAAQ;AAAA,IACZ;AAAA,MACE,SAAS;AAAA,MACT,SAAS,IAAI;AAAA,MACb,OAAO,aAAa;AAAA,MACpB;AAAA,MACA,UAAAD;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,EACF;AACA,QAAM,WAAW,iBAAiB,CAAC,cAAc,SAAS,KAAK;AAC/D,QAAM,YAAY,UAAU;AAC5B,kBAAgB,QAAQ,KAAK,IAAI;AACjC,QAAM,CAAC,YAAY,aAAa,QAAI,wBAAS,KAAK;AAClD,QAAM,eAAW;AAAA,IACf,MAAM,cAAe,aAAa;AAAA,IAClC,CAAC,YAAY,WAAW,UAAU;AAAA,EACpC;AACA,QAAM,oBAAoB;AAAA,IACxB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA;AAAA,EAElB,EAAE,SAAS,QAAe;AAC1B,QAAM,cACJ,WACA,cACA;AAAA,IACE,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,gBAAgB;AAAA;AAAA,EAElB,EAAE,SAAS,QAAe;AAO5B,+BAAU,MAAM;AACd,QAAI,qBAAqB,IAAI,SAAS;AACpC,YAAM,QAAQ,IAAI,QAAQ,cAAc,OAAO;AAE/C,UAAI,OAAO;AACT,cAAM,WAAW;AAAA,MACnB;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,iBAAiB,CAAC;AAC3B,+BAAU,MAAM;AACd,QAAI,eAAe;AACjB,oBAAc,IAAI;AAAA,IACpB,WAAW,mBAAmB,GAAG;AAC/B,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,gBAAgB,aAAa,CAAC;AAClC,QAAM,kBAAc;AAAA,IAClB,CAAC,MAA+C;AAC9C,cAAQ,SAAS,MAAM;AAEvB,UAAI,YAAY,aAAa,gBAAgB,UAAU;AAErD,iBAAU,aAAqB,KAAK;AAAA,MACtC;AAEA,2BAAqB,eAAe,YAAY;AAChD,iBAAW,QAAQ,CAAC;AAAA,IACtB;AAAA,IACA;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACA,QAAM,aAAS,uBAAQ,MAAM;AAC3B,QAAI,WAAY,QAAO;AAEvB,QAAI,aAAa,gBAAgB,UAAU;AACzC,aACE;AAAA,QAAC,4BAAAE;AAAA,QAAA;AAAA,UACC,IAAI,YAAY,EAAE;AAAA,UAClB,SAAS;AAAA,UACT,eAAY;AAAA,UACZ,UAAUH;AAAA,UACV;AAAA,UACA,IAAI;AAAA;AAAA,MACN;AAAA,IAEJ,WAAW,aAAa,gBAAgB,OAAO;AAC7C,aACE;AAAA,QAAC,yBAAAI;AAAA,QAAA;AAAA,UACC,IAAI,SAAS,EAAE;AAAA,UACf,MAAM,SAAS,EAAE;AAAA,UACjB,SAAS;AAAA,UACT,eAAY;AAAA,UACZ,UAAUJ;AAAA,UACV,IAAI;AAAA;AAAA,MACN;AAAA,IAEJ;AAAA,EACF,GAAG,CAAC,YAAY,IAAI,eAAe,YAAY,QAAQ,CAAC;AACxD,QAAM,YAAQ,uBAAQ,MAAM;AAC1B,QAAI,UAAW,QAAO;AAEtB,QAAI,cAAc,CAAC,mBAAmB;AACpC,aAAO,6CAAC,wBAAAK,SAAA,EAAK,MAAK,eAAc,eAAW,MAAC,MAAK,SAAQ,IAAI,KAAK;AAAA,IACpE;AAAA,EACF,GAAG,CAAC,WAAW,mBAAmB,UAAU,CAAC;AAC7C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,qBAAmB;AAAA,MAClB,GAAG;AAAA,MACJ,QAAQ;AAAA,MACR,qBAAmB;AAAA,MACnB;AAAA,MACA,cAAY;AAAA,MACZ,OAAO;AAAA,MACP,cAAY;AAAA,MACZ,aAAa,MAAM;AAAA,MACnB,gBAAc,oBAAoB,aAAa;AAAA,MAC/C,iBACE,aAAa,gBAAgB,SAAS,aAAa;AAAA,MAErD,UAAUJ;AAAA,MACV,iBAAeA;AAAA,MACf;AAAA,MACA,QAAQ,QAAQ,QAAQ;AAAA,MACxB,aAAa,QAAQ,WAAW;AAAA,MAGhC,SAAS,CAACA,YAAW,cAAc;AAAA,MACnC,MAAM;AAAA,MACN,UAAU;AAAA,MACV,UACE,aAAa,gBAAgB,YAAY,CAACA,YAAW,KAAK;AAAA,MAG5D;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA,OAAO;AAAA,YACL,SAAS;AAAA,YACT,YAAY,MAAM,cAAc;AAAA,YAChC,gBAAgB;AAAA,UAClB;AAAA,UAEC;AAAA;AAAA,YACD;AAAA,cAAC;AAAA;AAAA,gBACC,OAAO;AAAA,kBACL,UAAU;AAAA,kBACV,WAAW;AAAA,kBACX,UAAU;AAAA,gBACZ;AAAA,gBAGA,KAAK;AAAA,gBAEJ;AAAA;AAAA,YACH;AAAA,YACC;AAAA;AAAA;AAAA,MACH;AAAA;AAAA,EACF;AAEJ;AAKO,IAAM,eAAe,CAAC,UAC3B,6CAAC,YAAS,MAAM,gBAAgB,UAAW,GAAG,OAAO;AAMhD,IAAM,YAAY,CAAC,UACxB,6CAAC,YAAS,MAAM,gBAAgB,OAAQ,GAAG,OAAO;AAM7C,IAAM,aAAa,CAAC,UAA+B;AACxD,QAAM,EAAE,OAAO,UAAU,QAAI,0BAAW,WAAW;AACnD,QAAM;AAAA,IACJ;AAAA,IACA,aAAa,CAAC;AAAA,IACd,cAAc,CAAC;AAAA,IACf;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,iBAAa,uBAAQ,MAAM,UAAM,cAAAC,SAAS,WAAW,GAAG,CAAC,EAAE,CAAC;AAClE,QAAM,UAAU,GAAG,UAAU;AAC7B,QAAM,gBACJ;AAAA,IAAC,2BAAAI;AAAA,IAAA;AAAA,MACC,IAAI,GAAG,UAAU;AAAA,MACjB,SAAS,MAAM,YAAY,gBAAgB,WAAW,MAAM,KAAK;AAAA,MACjE,eAAY;AAAA,MACZ,UAAU;AAAA,MACV,mBAAiB;AAAA,MAChB,GAAI,cAAc,WAAW,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI;AAAA,MACrD,GAAG;AAAA,MAEJ,SAASN;AAAA;AAAA,EACX;AAEF,QAAM,gBAAgB;AAAA,IACpB,IAAI;AAAA,IACJ;AAAA,IACA,YAAY,cAAc,WAAW,gBAAgB;AAAA;AAAA,IAErD,WAAW,cAAc,WAAW,6EAAE,IAAM;AAAA,IAC5C,GAAG;AAAA,EACL;AACA,SACE,6CAAC,YAAU,GAAG,eAEZ;AAAA,IAAC,wBAAAO;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,MACH,GAAG;AAAA,MAIJ,UAAU,YAAY;AAAA;AAAA,EACxB,GACF;AAEJ;AAEA,IAAM,gBAAY,0BAAAC,SAAO,wBAAAD,OAAI;AAAA;AAAA,kBAEX,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,iBAChC,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,oBAC5B,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,WACxC,CAAC,EAAE,MAAM,MAAM,MAAM,OAAO,KAAK,QAAQ;AAAA;AAM7C,IAAM,YAAY,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU,aAAa;AAAA,EACvB,GAAG;AACL,MAA0B;AACxB,QAAM,kBAAc,uBAAQ,UAAM,cAAAL,SAAS,aAAa,GAAG,CAAC,CAAC;AAC7D,SACE,6EACE;AAAA,IAAC,wBAAAO;AAAA,IAAA;AAAA,MACC,GAAG;AAAA,MACH,MAAK;AAAA,MACL,mBAAiB,QAAQ,cAAc;AAAA,MACvC,WAAU;AAAA,MACV,aAAY;AAAA,MACX,GAAG;AAAA,MAEH;AAAA,iBACC;AAAA,UAAC;AAAA;AAAA,YACC,IAAI;AAAA,YACJ,MAAK;AAAA,YACL,UAAU;AAAA,YACV,aAAa,WAAW;AAAA,YACxB,KAAK,aAAa,sCAAW;AAAA,YAE5B;AAAA;AAAA,QACH;AAAA,QAED;AAAA;AAAA;AAAA,EACH,GACF;AAEJ;AAKO,IAAM,cAAc,CAAC,UAC1B;AAAA,EAAC,wBAAAA;AAAA,EAAA;AAAA,IACC,IAAG;AAAA,IACH,MAAK;AAAA,IACL,WAAU;AAAA,IACV,aAAY;AAAA,IACX,GAAG;AAAA;AACN;AAMF,IAAM,kBAAkB,CAAC,EAAE,OAAO,UAAU,GAAG,MAAM,MAAsB;AACzE,QAAM,EAAE,UAAU,SAAS,OAAO,IAAI;AACtC,QAAM,EAAE,OAAO,SAAS,QAAI,0BAAW,WAAW;AAClD,QAAM,qBAA6C;AAAA,IACjD,CAAC,OAAO,UAAU;AAChB,kBAAY,SAAS,OAAO,KAAK;AACjC,eAAS;AAAA,QACP,aAAa;AAAA,MACf,CAAC;AAAA,IACH;AAAA,IACA,CAAC,UAAU,QAAQ;AAAA,EACrB;AACA,QAAM,oBAA2C;AAAA,IAC/C,CAAC,UAAU;AACT,iBAAW,QAAQ,KAAK;AACxB,eAAS;AAAA,QACP,sBAAsB;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,IACA,CAAC,UAAU,OAAO;AAAA,EACpB;AACA,QAAM,mBAAyC;AAAA,IAC7C,CAAC,UAAU;AACT,gBAAU,OAAO,KAAK;AACtB,eAAS;AAAA,QACP,sBAAsB;AAAA,MACxB,CAAC;AAAA,IACH;AAAA,IACA,CAAC,UAAU,MAAM;AAAA,EACnB;AACA,SACE;AAAA,IAAC,yBAAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA,OAAO,MAAM;AAAA,MACb,UAAU;AAAA,MACV,SAAS;AAAA,MACT,QAAQ;AAAA;AAAA,EACV;AAEJ;AAKA,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAqB;AACnB,QAAM,EAAE,eAAe,iBAAiB,IAAI,eAAe;AAC3D,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,aAAY;AAAA,MACZ,KAAK;AAAA,MACL;AAAA,MAGA,yBAAuB,kBAAkB;AAAA,MACzC,wBAAsB,cAAc,OAAO;AAAA,MAC3C,UAAU;AAAA,MACV,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,UAAS;AAAA,MAER;AAAA;AAAA,EACH;AAEJ;AAKA,IAAM,aAAa,CAAC,EAAE,SAAS,MAAM;AACnC,QAAM,EAAE,SAAS,QAAI,0BAAW,WAAW;AAC3C,QAAM,mBAAe,2BAAY,MAAM;AACrC,aAAS;AAAA,MACP,iBAAiB;AAAA,IACnB,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,QAAM,oBAAgB,2BAAY,MAAM;AACtC,aAAS;AAAA,MACP,iBAAiB;AAAA,IACnB,CAAC;AAAA,EACH,GAAG,CAAC,QAAQ,CAAC;AACb,SACE,6CAAC,wBAAAD,SAAA,EAAI,QAAQ,cAAc,SAAS,eACjC,UACH;AAEJ;AAKO,IAAM,OAAO,CAAC;AAAA,EACnB,OAAO,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAqB;AACnB,QAAM,CAAC,aAAa,cAAc,IAAI,eAGpC;AACF,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAS;AAAA,IACjC,gBAAgB;AAAA,IAChB,aAAa;AAAA,IACb,eAAe;AAAA,IACf,sBAAsB;AAAA,IACtB,iBAAiB;AAAA,EACnB,CAAC;AACD,QAAM,sBAAkB,sBAA4C,CAAC,CAAC;AACtE,QAAM,cAAU,sBAAO,IAAI;AAC3B,QAAM,sBAAkB;AAAA,IACtB,CAAC,aAAa;AACZ,eAAS,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC;AAAA,IACpC;AAAA,IACA,CAAC,KAAK;AAAA,EACR;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,SAAS;AAAA,MACT,OAAO;AAAA,MACP,KAAK;AAAA,MAEL;AAAA,QAAC,YAAY;AAAA,QAAZ;AAAA,UACC,OAAO;AAAA;AAAA;AAAA,YAGL,SAAS,YAAY;AAAA,YACrB;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,UAAU;AAAA,YACV;AAAA,UACF;AAAA,UAEA;AAAA;AAAA,cAAC;AAAA;AAAA,gBACE,GAAG;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA,UAAU;AAAA,gBAET;AAAA;AAAA,YACH;AAAA,YACC,gBAAgB,6CAAC,cAAY,yBAAc,IAAgB;AAAA;AAAA;AAAA,MAC9D;AAAA;AAAA,EACF;AAEJ;AAEA,UAAU,cAAc;AACxB,SAAS,cAAc;AACvB,aAAa,cAAc;AAC3B,UAAU,cAAc;AACxB,WAAW,cAAc;AACzB,YAAY,cAAc;AAC1B,gBAAgB,cAAc;AAC9B,KAAK,cAAc;AAEnB,KAAK,QAAQ;AACb,KAAK,OAAO;AACZ,KAAK,WAAW;AAChB,KAAK,QAAQ;AACb,KAAK,SAAS;AACd,KAAK,UAAU;AACf,KAAK,cAAc;AAEnB,IAAM,0BAAsB,0BAAAD,SAAO,0BAAAG,QAAO,OAAO;AAAA;AAAA;AAAA;AAAA;AAS1C,IAAM,aAAa,CAAC;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB;AAAA,EACnB,SAAK,cAAAT,SAAS,aAAa;AAAA,EAC3B,YAAY;AAAA,EACZ;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA2B;AACzB,QAAM,CAAC,iBAAiB,kBAAkB,QAAI,wBAAS,KAAK;AAC5D,QAAM,eAAe,OAAO,WAAW;AACvC,QAAM,UAAU,eAAe,SAAS;AACxC,QAAM,iBAAa;AAAA,IACjB,MACE,gBAAgB,YACZ,YACA,CAAC,gBAAgB,mBAAmB,WAAW;AAAA,IACrD,CAAC,cAAc,SAAS;AAAA,EAC1B;AACA,QAAM,kBAAc,2BAAY,MAAM,WAAW,KAAK,GAAG,CAAC,UAAU,CAAC;AACrE,QAAM,iBAAiB,MAAM,iBAAiB,IAC1C,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,KACjC;AACJ,QAAM,YAAY,MAAM,YAAY,IAChC,GAAG,MAAM,YAAY,CAAC,IAAI,UAAU,QAAQ,CAAC,KAC7C;AACJ,SACE;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,MACF;AAAA,MAEA;AAAA,QAAC,0BAAAS;AAAA,QAAA;AAAA,UACC,QAAQ;AAAA,UACR,WAAW;AAAA,UACX,SAAS,6CAAC,uBAAqB,mBAAQ;AAAA,UACvC;AAAA,UACC,GAAG;AAAA,UACJ,OAAO,MAAM;AAAA,UAEb;AAAA,YAAC,0BAAAC;AAAA,YAAA;AAAA,cACE,GAAG;AAAA,cACJ;AAAA,cACA,mBAAiB,gBAAgB,KAAK;AAAA,cACtC,cAAY,WAAW,KAAK;AAAA,cAC5B,QAAQ;AAAA,cACR,WAAW,CAAC,MAAM;AAChB,oBAAI,EAAE,QAAQ,aAAa,EAAE,QAAQ,aAAa;AAEhD,6BAAW,QAAQ,CAAQ;AAC3B,6BAAW,IAAI;AAAA,gBACjB;AAAA,cACF;AAAA,cACA,SAAS,CAAC,MAAM;AACd,2BAAW,QAAQ,CAAC;AACpB,2BAAW,CAAC,OAAO;AAAA,cACrB;AAAA,cAEC;AAAA;AAAA,UACH;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;AAKA,IAAO,eAAQ;;;AMhqBf,IAAOC,gBAAQ;;;ACHf,IAAAC,4BAAmB;AAEnB,IAAM,MAAM,0BAAAC,QAAO;AAAA;AAAA,MAEb,CAAC,UAAU,MAAM,MAAM,WAAW,GAAG,CAAC;AAAA;AAAA,mBAEzB,CAAC,UAAU,MAAM,MAAM,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAMhC,CAAC,UAAU,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAM/C,CAAC,UAAU,MAAM,MAAM,WAAW,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAcxB,CAAC,UAAU,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,aAKxC,CAAC,UAAU,MAAM,MAAM,OAAO,KAAK,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAMvC,CAAC,UAAU,MAAM,MAAM,OAAO,KAAK,IAAI;AAAA,mBACjC,CAAC,UAAU,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA;AAAA;AAIpD,IAAO,iBAAQ;;;AR3BT,IAAAC,sBAAA;AAPN,IAAM,iBAAiB,CAAC;AAAA,EACtB;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA+B;AAC7B,SACE,6CAAC,QACC,uDAAC,wBAAAC,SAAA,EAAK,MAAa,GAAG,MACnB,UACH,GACF;AAEJ;AAKA,IAAM,aAAa,CAAC;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAA2B;AACzB,QAAM,YAAkB,eAAS,QAAQ,QAAQ;AACjD,QAAM,WAAW,UAAU,UAAU,SAAS,CAAC;AAC/C,SACE,6CAAC,kBAAI,cAAY,WAAW,sBAAoB,WAAY,GAAG,MAC7D,wDAAC,QACE;AAAA,gBACC,6CAAC,QACC;AAAA,MAAC;AAAA;AAAA,QACC,YAAW;AAAA,QACX,SAAS,SAAS;AAAA,QAClB,cAAY,SAAS;AAAA,QACrB,WAAU;AAAA,QACV,IAAI;AAAA,QACJ,IAAI;AAAA,QAEJ,uDAAC,yBAAAC,SAAA,EAAK,MAAK,6BAA4B,eAAW,MAAC;AAAA;AAAA,IACrD,GACF;AAAA,IAED,UAAU,IAAI,CAAC,MAAM,MAAM;AAE1B,YAAM,WACJ,OAAO,SAAS,YAAY,WAAW,OACrC,OAEA,6CAAC,UAAK,kBAAI;AAEd,aAAa,mBAAa,UAAU;AAAA,QAClC,GAAG,SAAS;AAAA,QACZ,gBAAgB,UAAU,CAAC,MAAM,WAAW,SAAS;AAAA,MACvD,CAAC;AAAA,IACH,CAAC;AAAA,KACH,GACF;AAEJ;AAEA,eAAe,cAAc;AAC7B,WAAW,OAAO;AAElB,IAAO,qBAAQ;;;ADhDf,0BAAc,6CA7Bd;AA8BA,0BAAc,2CA9Bd;AA+BA,0BAAc,wDA/Bd;AAgCA,0BAAc,mDAhCd;AAiCA,0BAAc,+CAjCd;AAkCA,0BAAc,kDAlCd;AAmCA,0BAAc,iDAnCd;AAoCA,0BAAc,6CApCd;AAqCA,0BAAc,+CArCd;AAsCA,0BAAc,kDAtCd;AAuCA,0BAAc,+CAvCd;AAwCA,0BAAc,iDAxCd;AAyCA,0BAAc,2CAzCd;AA0CA,0BAAc,4CA1Cd;AA2CA,0BAAc,gDA3Cd;AA4CA,0BAAc,4CA5Cd;AA6CA,0BAAc,mDA7Cd;AA8CA,0BAAc,4CA9Cd;AA+CA,0BAAc,2CA/Cd;;;AUCA,IAAAC,4BAA4B;AAE5B,gCAAsB;AACtB,IAAAC,2BAAiB;AAcb,IAAAC,sBAAA;AANG,IAAM,UAAU,CAAC;AAAA,EACtB,OAAO,WAAW;AAAA,EAClB;AAAA,EACA,GAAG;AACL,MAAwB;AACtB,SACE,6CAACC,eAAA,EAAM,GAAG,MAAM,MACb,UACH;AAEJ;AAMO,IAAM,6BAAyB,0BAAAC,SAAO,UAAU;AAAA;AAAA;AAAA,sBAGjC,CAAC,UAAU,MAAM,MAAM,OAAO,KAAK,OAAO,IAAI;AAAA,mBACjD,CAAC,UAAU,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,sBAC9B,CAAC,UAAU,MAAM,MAAM,OAAO,KAAK,WAAW,IAAI;AAAA,WAC7D,CAAC,UAAU,MAAM,MAAM,OAAO,KAAK,IAAI;AAAA,YACtC,CAAC,UAAW,MAAM,WAAW,gBAAgB,SAAU;AAAA;AAAA;AAAA,6BAGtC,CAAC,UAAU,MAAM,MAAM,SAAS,IAAI;AAAA,QACzD,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO;AAAA,iBAC5B,CAAC,UAAU,MAAM,MAAM,SAAS,IAAI;AAAA,QAC7C,CAAC,UAAU,MAAM,MAAM,OAAO,OAAO;AAAA,iBAC5B,CAAC,UAAU,MAAM,MAAM,UAAU;AAAA,iBACjC,CAAC,UAAU,MAAM,MAAM,YAAY,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAO7C,CAAC,UAAU;AACpB,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,aAAO,GAAG,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,IAEhH,KAAK;AACH,aAAO,GAAG,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,IAEhH,KAAK;AAAA,IACL;AACE,aAAO,GAAG,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA,EAClH;AACF,CAAC;AAAA,eACY,CAAC,UAAU;AACtB,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK;AACH,aAAO,MAAM,MAAM,WAAW,GAAG,EAAE;AAAA,IAErC,KAAK;AAAA,IACL,KAAK;AAAA,IACL;AACE,aAAO,MAAM,MAAM,WAAW,GAAG,EAAE;AAAA,EACvC;AACF,CAAC;AAAA;AAAA,IAEC,CAAC,UACD,MAAM,WACN;AAAA,sBACkB,CAACC,WAAUA,OAAM,MAAM,OAAO,KAAK,OAAO,KAAK;AAAA,QAC7D,+BAAK;AAAA,iBACI,CAACA,WAAUA,OAAM,MAAM,OAAO,KAAK,KAAK;AAAA;AAAA,KAEpD;AAAA;AAME,IAAM,gBAAgB,CAAC;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA;AAAA,IACE,GAAG;AAAA,IACJ,aAAa;AAAA,MACX,WAAW;AAAA,MACX,GAAI,UAAU,eAAe,CAAC;AAAA,IAChC;AAAA,IAEC;AAAA;AAAA,MACD,6CAAC,mCAAM,MAAM,UAAU,MACrB,uDAAC,yBAAAC,SAAA,EAAK,MAAK,wBAAuB,YAAU,MAAC,eAAW,MAAC,GAC3D;AAAA;AAAA;AACF;AAGF,QAAQ,SAAS,QAAQ,OAAOH,cAAK;AACrC,QAAQ,WAAWA,cAAK;AACxB,QAAQ,QAAQA,cAAK;AACrB,QAAQ,SAASA,cAAK;AACtB,QAAQ,QAAQA,cAAK;AACrB,QAAQ,UAAUA,cAAK;AACvB,QAAQ,cAAcA,cAAK;AAK3B,IAAO,kBAAQ;;;AVpEf,0BAAc,6CAjDd;AAkDA,0BAAc,oDAlDd;AAoDA,0BAAc,4CApDd;AAqDA,0BAAc,8CArDd;AAsDA,0BAAc,8CAtDd;AAuDA,0BAAc,mDAvDd;AAwDA,0BAAc,6CAxDd;AAyDA,0BAAc,6CAzDd;AA0DA,0BAAc,4CA1Dd;AA2DA,0BAAc,wDA3Dd;AA4DA,0BAAc,6CA5Dd;AA6DA,0BAAc,+CA7Dd;AA8DA,0BAAc,wDA9Dd;AA+DA,0BAAc,4CA/Dd;AAgEA,0BAAc,6CAhEd;AAiEA,0BAAc,4CAjEd;AAkEA,0BAAc,sDAlEd;AAmEA,0BAAc,4DAnEd;AAoEA,0BAAc,8DApEd;AAqEA,0BAAc,2CArEd;AAsEA,0BAAc,2CAtEd;AAuEA,0BAAc,+CAvEd;AAwEA,0BAAc,4CAxEd;;;AWAA,IAAAI,SAAuB;AACvB,IAAAC,2BAAiB;;;ACDjB,IAAAC,4BAA4B;AAC5B,sCAAuB;AACvB,IAAAC,6BAA+B;AAG/B,IAAM,YAAY,0BAAAC,QAAO;AAAA;AAAA;AAAA,aAGZ,CAAC,UAAU,MAAM,MAAM,MAAM,GAAG,CAAC;AAAA;AAAA;AAAA,IAG1C,CAAC,UACD,MAAM,SAAS,aACf;AAAA;AAAA,UAEM,CAACC,WACD,GAAGA,OAAM,MAAM,SAAS,MAAM,IAAIA,OAAM,MAAM,OAAO,UAAU,EAAE;AAAA;AAAA,QAEnE,MAAM,UACR;AAAA;AAAA,OAEC;AAAA,KACF;AAAA;AAAA,IAED,sCAAM;AAAA;AAGH,IAAM,WAAW,0BAAAD,QAAO;AAAA,IAC3B,yCAAc;AAAA;AAGlB,IAAOE,kBAAQ;;;ADbF,IAAAC,sBAAA;AAPb,IAAqB,aAArB,cAA8C,iBAA+B;AAAA,EAC3E,OAAO,eAAe;AAAA,IACpB,QAAQ;AAAA,IACR,MAAM;AAAA,EACR;AAAA,EACA,UAAU,MAAM;AACd,QAAI,KAAK,MAAM,SAAS,WAAW;AACjC,aAAO,6CAAC,yBAAAC,SAAA,EAAK,MAAK,wBAAuB,eAAW,MAAC;AAAA,IACvD;AAEA,WACE;AAAA,MAAC,yBAAAA;AAAA,MAAA;AAAA,QACC,MAAM,KAAK,MAAM,SAAS,kBAAkB;AAAA,QAC5C,eAAW;AAAA;AAAA,IACb;AAAA,EAEJ;AAAA,EAEA,SAAS;AACP,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,KAAK;AACT,WACE;AAAA,MAACC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,WAAW,cAAc,SAAS;AAAA,QAClC,6BAA2B;AAAA,QAI3B;AAAA,QACC,GAAG;AAAA,QACH,GAAG;AAAA,QAEH;AAAA,eAAK,QAAQ;AAAA,UAEd,6CAAC,YAAU,mBAAS,cAAc,YAAW;AAAA;AAAA;AAAA,IAC/C;AAAA,EAEJ;AACF;;;AXeA,0BAAc,4CA1Ed;AA2EA,0BAAc,kDA3Ed;AA4EA,0BAAc,8CA5Ed;AA6EA,0BAAc,sDA7Ed;AAmFA,gCAAgC;","names":["import_seeds_react_hooks","import_seeds_react_icon","import_react","import_styled_components","import_seeds_react_mixins","import_seeds_react_box","import_seeds_react_switch","items","import_react","index","scrollIntoViewIfNeeded","styled","Box","props","Switch","import_jsx_runtime","noop","disabled","uniqueId","Checkbox","Radio","Icon","Switch","Text","styled","Box","Input","Popout","Button","Menu_default","import_styled_components","styled","import_jsx_runtime","Link","Icon","import_styled_components","import_seeds_react_icon","import_jsx_runtime","Menu_default","styled","props","Icon","React","import_seeds_react_icon","import_styled_components","import_seeds_react_mixins","styled","props","styles_default","import_jsx_runtime","Icon","styles_default"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/Breadcrumb/Breadcrumb.tsx","../src/Menu/Menu.tsx","../src/Menu/utils/innertext.ts","../src/Menu/utils/constants.ts","../src/Menu/utils/descendants.tsx","../src/Menu/utils/hooks.ts","../src/Menu/styles.ts","../src/Menu/index.ts","../src/Breadcrumb/styles.ts","../src/Listbox/Listbox.tsx","../src/ToggleHint/ToggleHint.tsx","../src/ToggleHint/styles.ts"],"sourcesContent":["/* Asset types */\nexport type { EnumIconNames } from \"@sproutsocial/seeds-icons\";\nexport type { EnumIllustrationNames } from \"@sproutsocial/seeds-illustrations\";\nexport type { EnumLogoNamesWithoutVariants as EnumLogoNames } from \"@sproutsocial/seeds-partner-logos\";\n\nexport { IllustrationNames as SpotIllustrationNames } from \"@sproutsocial/seeds-illustrations\";\nexport { LogoNamesWithoutVariants as PartnerLogoNames } from \"@sproutsocial/seeds-partner-logos\";\n\n/* Theme and related types */\nexport * from \"@sproutsocial/seeds-react-system-props\";\nexport * from \"@sproutsocial/seeds-react-theme\";\nexport { default as ThemeProvider } from \"@sproutsocial/seeds-react-theme-provider\";\n\n/* Utilities and related types */\nexport {\n useSelect,\n useMultiselect,\n useTextContent,\n useMeasure,\n useInteractiveColor,\n} from \"@sproutsocial/seeds-react-hooks\";\nexport * from \"@sproutsocial/seeds-react-mixins\";\n\n/* Components */\nexport * from \"@sproutsocial/seeds-react-avatar\";\nexport * from \"@sproutsocial/seeds-react-badge\";\nexport * from \"@sproutsocial/seeds-react-banner\";\nexport * from \"@sproutsocial/seeds-react-box\";\nexport * from \"./Breadcrumb\";\nexport * from \"@sproutsocial/seeds-react-button\";\nexport * from \"@sproutsocial/seeds-react-card\";\nexport * from \"@sproutsocial/seeds-react-character-counter\";\nexport * from \"@sproutsocial/seeds-react-chart-legend\";\nexport * from \"@sproutsocial/seeds-react-checkbox\";\nexport * from \"@sproutsocial/seeds-react-collapsible\";\nexport * from \"@sproutsocial/seeds-react-datepicker\";\nexport * from \"@sproutsocial/seeds-react-drawer\";\nexport * from \"@sproutsocial/seeds-react-duration\";\nexport * from \"@sproutsocial/seeds-react-empty-state\";\nexport * from \"@sproutsocial/seeds-react-fieldset\";\nexport * from \"@sproutsocial/seeds-react-form-field\";\nexport * from \"@sproutsocial/seeds-react-icon\";\nexport * from \"@sproutsocial/seeds-react-image\";\nexport * from \"@sproutsocial/seeds-react-indicator\";\nexport * from \"@sproutsocial/seeds-react-input\";\nexport * from \"@sproutsocial/seeds-react-keyboard-key\";\nexport * from \"@sproutsocial/seeds-react-label\";\nexport * from \"@sproutsocial/seeds-react-link\";\nexport * from \"./Listbox\";\nexport * from \"@sproutsocial/seeds-react-loader\";\nexport * from \"@sproutsocial/seeds-react-loader-button\";\nexport * from \"./Menu\";\nexport * from \"@sproutsocial/seeds-react-modal\";\nexport * from \"@sproutsocial/seeds-react-message\";\nexport * from \"@sproutsocial/seeds-react-numeral\";\nexport * from \"@sproutsocial/seeds-react-partner-logo\";\nexport * from \"@sproutsocial/seeds-react-popout\";\nexport * from \"@sproutsocial/seeds-react-portal\";\nexport * from \"@sproutsocial/seeds-react-radio\";\nexport * from \"@sproutsocial/seeds-react-rating\";\nexport * from \"@sproutsocial/seeds-react-segmented-control\";\nexport * from \"@sproutsocial/seeds-react-select\";\nexport * from \"@sproutsocial/seeds-react-skeleton\";\nexport * from \"@sproutsocial/seeds-react-spot-illustration\";\nexport * from \"@sproutsocial/seeds-react-stack\";\nexport * from \"@sproutsocial/seeds-react-switch\";\nexport * from \"@sproutsocial/seeds-react-table\";\nexport * from \"@sproutsocial/seeds-react-table/TableCell\";\nexport * from \"@sproutsocial/seeds-react-table/TableHeaderCell\";\nexport * from \"@sproutsocial/seeds-react-table/TableRowAccordion\";\nexport * from \"@sproutsocial/seeds-react-tabs\";\nexport * from \"@sproutsocial/seeds-react-text\";\nexport * from \"@sproutsocial/seeds-react-textarea\";\nexport * from \"@sproutsocial/seeds-react-toast\";\nexport * from \"./ToggleHint\";\nexport * from \"@sproutsocial/seeds-react-token\";\nexport * from \"@sproutsocial/seeds-react-token-input\";\nexport * from \"@sproutsocial/seeds-react-tooltip\";\nexport * from \"@sproutsocial/seeds-react-visually-hidden\";\n/* End */\n\n/**\n * @deprecated Alert has been renamed to Banner\n */\nexport { Banner as Alert } from \"@sproutsocial/seeds-react-banner\";\n","import * as React from \"react\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Link from \"@sproutsocial/seeds-react-link\";\n// eslint-disable-next-line no-restricted-imports\nimport { MenuButton } from \"../Menu\";\nimport Nav from \"./styles\";\nimport type {\n TypeBreadcrumbProps,\n TypeBreadcrumbItemProps,\n} from \"./BreadcrumbTypes\";\n\n/**\n * @deprecated BreadcrumbItem is deprecated. BreadcrumbItem will be removed in 2025 in favor of seeds-react-breadcrumb which utilizes the new Menu ecosystem. Please create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-breadcrumb | seeds-react-breadcrumb}.\n */\nconst BreadcrumbItem = ({\n children,\n href,\n ...rest\n}: TypeBreadcrumbItemProps) => {\n return (\n <li>\n <Link href={href} {...rest}>\n {children}\n </Link>\n </li>\n );\n};\n\n/**\n * @deprecated Breadcrumb is deprecated. This iteration of Breadcrumb will be removed in 2025 in favor of seeds-react-breadcrumb which utilizes the new Menu ecosystem. Please create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-breadcrumb | seeds-react-breadcrumb}.\n */\nconst Breadcrumb = ({\n ariaLabel,\n overflow,\n children,\n ...rest\n}: TypeBreadcrumbProps) => {\n const listItems = React.Children.toArray(children);\n const lastItem = listItems[listItems.length - 1];\n return (\n <Nav aria-label={ariaLabel} data-qa-breadcrumb={ariaLabel} {...rest}>\n <ol>\n {overflow && (\n <li>\n <MenuButton\n appearance=\"secondary\"\n content={overflow.menu}\n aria-label={overflow.label}\n className=\"overflow--menu\"\n px={200}\n py={0}\n >\n <Icon name=\"ellipsis-horizontal-solid\" aria-hidden />\n </MenuButton>\n </li>\n )}\n {listItems.map((item, i) => {\n // @ts-notes - item is a childNode which can be a string or number but `cloneElement` requires props\n const itemElem =\n typeof item === \"object\" && \"props\" in item ? (\n item\n ) : (\n <span>item</span>\n );\n return React.cloneElement(itemElem, {\n ...itemElem.props,\n \"aria-current\": listItems[i] === lastItem ? \"page\" : undefined,\n });\n })}\n </ol>\n </Nav>\n );\n};\n\nBreadcrumbItem.displayName = \"Breadcrumb.Item\";\nBreadcrumb.Item = BreadcrumbItem;\n\nexport default Breadcrumb;\n","import * as React from \"react\";\nimport {\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport styled from \"styled-components\";\nimport uniqueId from \"lodash.uniqueid\";\nimport { useTextContent } from \"@sproutsocial/seeds-react-hooks\";\nimport { innerText } from \"./utils/innertext\";\nimport { disabled } from \"@sproutsocial/seeds-react-mixins\";\nimport Box, { TypeBoxProps } from \"@sproutsocial/seeds-react-box\";\nimport Button from \"@sproutsocial/seeds-react-button\";\nimport Checkbox from \"@sproutsocial/seeds-react-checkbox\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Input, { TypeInputProps } from \"@sproutsocial/seeds-react-input\";\nimport Popout from \"@sproutsocial/seeds-react-popout\";\nimport Radio from \"@sproutsocial/seeds-react-radio\";\nimport Switch from \"@sproutsocial/seeds-react-switch\";\nimport Text from \"@sproutsocial/seeds-react-text\";\nimport type {\n TypeMenuButtonProps,\n TypeMenuGroupProps,\n TypeMenuItemProps,\n TypeMenuItemRoles,\n TypeMenuProps,\n TypeMenuRoles,\n TypeMenuSwitchProps,\n} from \"./MenuTypes\";\nimport {\n MENU_ITEM_ROLES,\n MENU_ROLES,\n DescendantProvider,\n useDescendant,\n useDescendants,\n MenuButtonContext,\n MenuContext,\n MenuDescendantContext,\n useMenuKeyDown,\n} from \"./utils\";\nimport type { TypeMenuDescendantProps } from \"./utils\";\nimport { MenuItemContainer, MenuItemsContainer } from \"./styles\";\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function\nconst noop = () => {};\n\nconst getMenuItemRole = (\n menuRole?: TypeMenuRoles | null\n): TypeMenuItemRoles => {\n switch (menuRole) {\n case MENU_ROLES.LIST:\n return MENU_ITEM_ROLES.LISTITEM;\n\n case MENU_ROLES.LISTBOX:\n return MENU_ITEM_ROLES.OPTION;\n\n case MENU_ROLES.MENU:\n default:\n return MENU_ITEM_ROLES.MENUITEM;\n }\n};\n\nfunction isValueSelected(menuValue, value) {\n if (!menuValue) return false;\n\n if (typeof menuValue === \"string\") {\n return Boolean(menuValue && value && menuValue === value);\n } else if (Array.isArray(menuValue)) {\n return menuValue.includes(value);\n }\n\n return false;\n}\n\n/**\n * @deprecated MenuItem is deprecated. MenuItem will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuItem = ({\n id: idProp,\n index: indexProp,\n as,\n children,\n role: roleProp,\n elemBefore,\n elemAfter,\n value: valueProp,\n onKeyPress,\n onClick,\n selected,\n disabled,\n indeterminate,\n label: labelProp,\n active: activeProp,\n ...props\n}: TypeMenuItemProps) => {\n const {\n role: menuRole,\n onChange,\n value,\n multiselect,\n state: menuState,\n selectCallbacks,\n menuRef,\n } = useContext(MenuContext);\n const { selectionIndex, filteredItems } = menuState;\n const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);\n const isSelected = selected || isValueSelected(value, valueProp);\n const shouldClosePopout = closeOnItemClick && !multiselect;\n const itemRole = roleProp || getMenuItemRole(menuRole);\n const id = useMemo(() => idProp || uniqueId(\"MenuItem-\"), [idProp]);\n const textContent = useTextContent(\"\");\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const label = labelProp || textContent.current;\n const ref = useRef<HTMLDivElement | null>(null);\n const index = useDescendant<HTMLElement, TypeMenuDescendantProps>(\n {\n context: MenuDescendantContext,\n element: ref.current,\n value: valueProp || label,\n label,\n disabled,\n id,\n },\n indexProp\n );\n const isHidden = filteredItems && !filteredItems.includes(index);\n const isFocused = index === selectionIndex;\n selectCallbacks.current[index] = onClick;\n const [keyPressed, setKeyPressed] = useState(false);\n const isActive = useMemo(\n () => activeProp || (isFocused && keyPressed),\n [activeProp, isFocused, keyPressed]\n );\n const isCheckboxOrRadio = [\n MENU_ITEM_ROLES.CHECKBOX,\n MENU_ITEM_ROLES.RADIO,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ].includes(itemRole as any); // @ts-notes @refactor - since we're only really checking against the string I think we can safely leave this for refactor, nothing else worked for me\n const interactive =\n onClick ||\n onKeyPress ||\n [\n MENU_ITEM_ROLES.OPTION,\n MENU_ITEM_ROLES.MENUITEM,\n MENU_ITEM_ROLES.CHECKBOX,\n MENU_ITEM_ROLES.RADIO,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ].includes(itemRole as any);\n\n /**\n * The Checkbox/Radio component doesn't expose a tabIndex prop, so we can't set the tabIndex on the underlying input\n * to remove it from the tab order. Resulting to DOM manipulation as a last resort. We can remove this if Checkbox\n * exposes this prop in the future.\n */\n useEffect(() => {\n if (isCheckboxOrRadio && ref.current) {\n const input = ref.current.querySelector(\"input\");\n\n if (input) {\n input.tabIndex = -1;\n }\n }\n }, [ref, isCheckboxOrRadio]);\n useEffect(() => {\n if (filteredItems) {\n setKeyPressed(true);\n } else if (selectionIndex !== 0) {\n setKeyPressed(true);\n }\n }, [selectionIndex, filteredItems]);\n const handleClick = useCallback(\n (e: React.SyntheticEvent<HTMLButtonElement>) => {\n menuRef.current?.focus();\n\n if (onChange && itemRole !== MENU_ITEM_ROLES.LISTITEM) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onChange((valueProp as any) || label);\n }\n\n shouldClosePopout && closePopout && closePopout();\n onClick && onClick(e);\n },\n [\n menuRef,\n onChange,\n itemRole,\n shouldClosePopout,\n closePopout,\n onClick,\n valueProp,\n label,\n ]\n );\n const before = useMemo(() => {\n if (elemBefore) return elemBefore;\n\n if (itemRole === MENU_ITEM_ROLES.CHECKBOX) {\n return (\n <Checkbox\n id={`Checkbox-${id}`}\n checked={isSelected}\n aria-hidden=\"true\"\n onChange={noop}\n indeterminate={indeterminate}\n mr={300}\n />\n );\n } else if (itemRole === MENU_ITEM_ROLES.RADIO) {\n return (\n <Radio\n id={`Radio-${id}`}\n name={`Radio-${id}`}\n checked={isSelected}\n aria-hidden=\"true\"\n onChange={noop}\n mr={300}\n />\n );\n }\n }, [elemBefore, id, indeterminate, isSelected, itemRole]);\n const after = useMemo(() => {\n if (elemAfter) return elemAfter;\n\n if (isSelected && !isCheckboxOrRadio) {\n return <Icon name=\"check-solid\" aria-hidden size=\"small\" ml={300} />;\n }\n }, [elemAfter, isCheckboxOrRadio, isSelected]);\n return (\n <MenuItemContainer\n data-qa-menu-item={label}\n {...props}\n active={isActive}\n data-qa-is-active={isActive}\n id={id}\n aria-label={labelProp}\n value={valueProp}\n data-value={valueProp}\n forwardedAs={as || \"li\"}\n aria-checked={isCheckboxOrRadio ? isSelected : undefined}\n aria-selected={\n itemRole === MENU_ITEM_ROLES.OPTION ? isSelected : undefined\n }\n disabled={disabled}\n aria-disabled={disabled}\n isCheckboxOrRadio={isCheckboxOrRadio}\n hidden={Boolean(isHidden)} // @ts migration note: coercing to a boolean here otherwise it thinks its actually receiving callbacks\n interactive={Boolean(interactive)} // @ts migration note: coercing to a boolean here otherwise it thinks its actually receiving callbacks\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore handleclick takes in different event type than what it receives half the times\n onClick={!disabled ? handleClick : undefined}\n role={itemRole}\n selected={isSelected}\n tabIndex={\n itemRole !== MENU_ITEM_ROLES.LISTITEM && !disabled ? -1 : undefined\n }\n >\n <div\n ref={ref}\n style={{\n display: \"flex\",\n alignItems: props.alignItems || \"center\",\n justifyContent: \"space-between\",\n }}\n >\n {before}\n <div\n style={{\n flexGrow: 1,\n wordBreak: \"break-word\",\n minWidth: 0,\n }}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore some legacy ref type mismatch between divs\n ref={textContent}\n >\n {children}\n </div>\n {after}\n </div>\n </MenuItemContainer>\n );\n};\n\n/**\n * @deprecated MenuCheckbox is deprecated. MenuCheckbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuCheckbox = (props: TypeMenuItemProps) => (\n <MenuItem role={MENU_ITEM_ROLES.CHECKBOX} {...props} />\n);\n\n/**\n * @deprecated MenuRadio is deprecated. MenuRadio will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuRadio = (props: TypeMenuItemProps) => (\n <MenuItem role={MENU_ITEM_ROLES.RADIO} {...props} />\n);\n\n/**\n * @deprecated MenuSwitch is deprecated. MenuSwitch will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuSwitch = (props: TypeMenuSwitchProps) => {\n const { value: menuValue } = useContext(MenuContext);\n const {\n placement,\n labelProps = {},\n switchProps = {},\n children,\n id,\n label,\n ...rest\n } = props;\n const menuItemId = useMemo(() => id || uniqueId(\"MenuItem-\"), [id]);\n const labelId = `${menuItemId}-label`;\n const switchElement = (\n <Switch\n id={`${menuItemId}-switch`}\n checked={props.selected || isValueSelected(menuValue, props.value)}\n aria-hidden=\"true\"\n tabIndex={-1}\n aria-labelledby={labelId}\n {...(placement === \"before\" ? { mr: 300 } : { ml: 300 })}\n {...switchProps}\n // This prop is passed after switchProps to disallow overrides.\n onClick={noop}\n />\n );\n const menuItemProps = {\n id: menuItemId,\n label,\n elemBefore: placement === \"before\" ? switchElement : undefined,\n // Empty fragment prevents a check icon in elemAfter when the switch is checked. Can be overridden.\n elemAfter: placement === \"before\" ? <></> : switchElement,\n ...rest,\n };\n return (\n <MenuItem {...menuItemProps}>\n {/*Using Text and aria-labelledby instead of Label to avoid default Label styling and onClick behavior.*/}\n <Text\n id={labelId}\n {...labelProps}\n // This prop is passed after labelProps to disallow overrides.\n // Fall back to the label prop if children is falsy.\n // eslint-disable-next-line react/no-children-prop\n children={children || label}\n />\n </MenuItem>\n );\n};\n\nconst MenuTitle = styled(Text)`\n font-weight: 600;\n padding-left: ${({ theme }) => theme.space[300]};\n padding-top: ${({ theme }) => theme.space[200]};\n padding-bottom: ${({ theme }) => theme.space[300]};\n color: ${({ theme }) => theme.colors.text.headline};\n`;\n\n/**\n * @deprecated MenuGroup is deprecated. MenuGroup will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuGroup = ({\n children,\n title,\n titleAs,\n disabled: isDisabled = false,\n ...props\n}: TypeMenuGroupProps) => {\n const menuTitleId = useMemo(() => uniqueId(\"menu-title-\"), []);\n return (\n <>\n <Box\n p={300}\n role=\"group\"\n aria-labelledby={title ? menuTitleId : undefined}\n borderTop=\"1px solid\"\n borderColor=\"container.border.base\"\n {...props}\n >\n {title && (\n <MenuTitle\n id={menuTitleId}\n role=\"presentation\"\n fontSize={200}\n forwardedAs={titleAs || \"li\"}\n css={isDisabled ? disabled : undefined}\n >\n {title}\n </MenuTitle>\n )}\n {children}\n </Box>\n </>\n );\n};\n\n/**\n * @deprecated MenuDivider is deprecated. MenuDivider will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuDivider = (props: TypeBoxProps) => (\n <Box\n as=\"li\"\n role=\"separator\"\n borderTop=\"1px solid\"\n borderColor=\"container.border.base\"\n {...props}\n />\n);\n\n/**\n * @deprecated MenuFilterInput is deprecated. MenuFilterInput will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuFilterInput = ({ type = \"search\", ...props }: TypeInputProps) => {\n const { onChange, onFocus, onBlur } = props;\n const { state, setState } = useContext(MenuContext);\n const handleOnChange: TypeInputProps[\"onChange\"] = useCallback(\n (event, value) => {\n onChange && onChange(event, value);\n setState({\n filterQuery: value,\n });\n },\n [setState, onChange]\n );\n const handleOnFocus: TypeInputProps[\"onFocus\"] = useCallback(\n (event) => {\n onFocus && onFocus(event);\n setState({\n isFilterInputFocused: true,\n });\n },\n [setState, onFocus]\n );\n const handleOnBlur: TypeInputProps[\"onBlur\"] = useCallback(\n (event) => {\n onBlur && onBlur(event);\n setState({\n isFilterInputFocused: false,\n });\n },\n [setState, onBlur]\n );\n return (\n <Input\n {...props}\n type={type}\n value={state.filterQuery}\n onChange={handleOnChange}\n onFocus={handleOnFocus}\n onBlur={handleOnBlur}\n />\n );\n};\n\n/**\n * @deprecated MenuItems are deprecated. MenuItems will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuItems = ({\n children,\n role,\n multiselect,\n innerRef,\n ...props\n}: TypeMenuProps) => {\n const { handleKeyDown, activeDescendent } = useMenuKeyDown();\n return (\n <MenuItemsContainer\n {...props}\n forwardedAs=\"ul\"\n ref={innerRef}\n role={role}\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n aria-activedescendant={activeDescendent?.id}\n aria-multiselectable={multiselect ? true : undefined}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n margin={0}\n padding={0}\n overflow=\"hidden\"\n >\n {children}\n </MenuItemsContainer>\n );\n};\n\n/**\n * @deprecated MenuFooter is deprecated. MenuFooter will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nconst MenuFooter = ({ children }) => {\n const { setState } = useContext(MenuContext);\n const handleOnBlur = useCallback(() => {\n setState({\n isFooterFocused: false,\n });\n }, [setState]);\n const handleOnFocus = useCallback(() => {\n setState({\n isFooterFocused: true,\n });\n }, [setState]);\n return (\n <Box onBlur={handleOnBlur} onFocus={handleOnFocus}>\n {children}\n </Box>\n );\n};\n\n/**\n * @deprecated Menu is deprecated. Menu will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const Menu = ({\n role = MENU_ROLES.MENU,\n children,\n onChange,\n value,\n multiselect,\n innerRef,\n footerContent,\n ...props\n}: TypeMenuProps) => {\n const [descendants, setDescendants] = useDescendants<\n HTMLElement,\n TypeMenuDescendantProps\n >();\n const [state, setState] = useState({\n selectionIndex: 0,\n filterQuery: \"\",\n filteredItems: null,\n isFilterInputFocused: false,\n isFooterFocused: false,\n });\n const selectCallbacks = useRef<((() => void) | null | undefined)[]>([]);\n const menuRef = useRef(null);\n const setContextState = useCallback(\n (newState) => {\n setState({ ...state, ...newState });\n },\n [state]\n );\n return (\n <DescendantProvider\n context={MenuDescendantContext}\n items={descendants}\n set={setDescendants}\n >\n <MenuContext.Provider\n value={{\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n menuRef: innerRef || menuRef,\n role,\n onChange,\n value,\n multiselect,\n state,\n setState: setContextState,\n selectCallbacks,\n }}\n >\n <MenuItems\n {...props}\n role={role}\n multiselect={multiselect}\n innerRef={menuRef}\n >\n {children}\n </MenuItems>\n {footerContent ? <MenuFooter>{footerContent}</MenuFooter> : null}\n </MenuContext.Provider>\n </DescendantProvider>\n );\n};\n\nMenuGroup.displayName = \"Menu.Group\";\nMenuItem.displayName = \"Menu.Item\";\nMenuCheckbox.displayName = \"Menu.Checkbox\";\nMenuRadio.displayName = \"Menu.Radio\";\nMenuSwitch.displayName = \"Menu.Switch\";\nMenuDivider.displayName = \"Menu.Divider\";\nMenuFilterInput.displayName = \"Menu.FilterInput\";\nMenu.displayName = \"Menu\";\n\nMenu.Group = MenuGroup;\nMenu.Item = MenuItem;\nMenu.Checkbox = MenuCheckbox;\nMenu.Radio = MenuRadio;\nMenu.Switch = MenuSwitch;\nMenu.Divider = MenuDivider;\nMenu.FilterInput = MenuFilterInput;\n\nconst CustomPopoutContent = styled(Popout.Content)`\n padding: 0;\n margin-left: 0;\n margin-right: 0;\n`;\n\n/**\n * @deprecated MenuButton is deprecated. MenuButton will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const MenuButton = ({\n content,\n popoutProps,\n children,\n onClick,\n closeOnItemClick = true,\n id = uniqueId(\"MenuButton-\"),\n placement = \"bottom\",\n isOpen,\n setIsOpen,\n ...props\n}: TypeMenuButtonProps) => {\n const [isInternalShown, setIsInternalShown] = useState(false);\n const isControlled = typeof isOpen === \"boolean\";\n const isShown = isControlled ? isOpen : isInternalShown;\n const setIsShown = useMemo(\n () =>\n isControlled && setIsOpen\n ? setIsOpen\n : (nextIsShown) => setIsInternalShown(nextIsShown),\n [isControlled, setIsOpen]\n );\n const closePopout = useCallback(() => setIsShown(false), [setIsShown]);\n const ariaLabelledBy = props[\"aria-labelledby\"]\n ? `${props[\"aria-labelledby\"]} ${id}`\n : undefined;\n const ariaLabel = props[\"aria-label\"]\n ? `${props[\"aria-label\"]} ${innerText(children)}`\n : undefined;\n return (\n <MenuButtonContext.Provider\n value={{\n closePopout,\n closeOnItemClick,\n }}\n >\n <Popout\n isOpen={isShown}\n setIsOpen={setIsShown}\n content={<CustomPopoutContent>{content}</CustomPopoutContent>}\n placement={placement}\n {...popoutProps}\n width={props.width}\n >\n <Button\n {...props}\n id={id}\n aria-labelledby={ariaLabelledBy?.trim()}\n aria-label={ariaLabel?.trim()}\n active={isShown}\n onKeyDown={(e) => {\n if (e.key === \"ArrowUp\" || e.key === \"ArrowDown\") {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onClick && onClick(e as any); // @ts-notes unfortunately we're passing in a keyboard event here and not the mouse event it expects, so no way to coerce it\n setIsShown(true);\n }\n }}\n onClick={(e) => {\n onClick && onClick(e);\n setIsShown(!isShown);\n }}\n >\n {children}\n </Button>\n </Popout>\n </MenuButtonContext.Provider>\n );\n};\n\n/**\n * @deprecated Menu is deprecated. Menu will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport default Menu;\n","import type { ReactNode } from \"react\";\n\nconst hasOwnProperty = (obj: ReactNode | object, property: string): boolean => {\n return Object.prototype.hasOwnProperty.call(obj, property);\n};\n\nconst hasChildren = (node: object): boolean => {\n return hasOwnProperty(node, \"children\");\n};\n\nconst hasProps = (node: ReactNode): boolean => {\n return hasOwnProperty(node, \"props\");\n};\n\nconst reduceNodeToString = (previous: string, current: ReactNode): string => {\n return previous.length\n ? `${previous} ${innerText(current)}`\n : innerText(current);\n};\n\nexport const innerText = (node: ReactNode): string => {\n if (\n node === null ||\n typeof node === \"undefined\" ||\n typeof node === \"boolean\"\n ) {\n return \"\";\n } else if (typeof node === \"string\") {\n return node;\n } else if (typeof node === \"number\") {\n return node.toString();\n } else if (Array.isArray(node)) {\n return (node as React.ReactNodeArray).reduce<string>(\n reduceNodeToString,\n \"\"\n );\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - hasProps checks for props, but may be able to fix this\n } else if (hasProps(node) && hasChildren(node.props)) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - how can we make sure ts knows this is ok?\n return innerText(node.props.children);\n }\n\n return \"\";\n};\n","export const MENU_ROLES = Object.freeze({\n MENU: \"menu\",\n LIST: \"list\",\n LISTBOX: \"listbox\",\n} as const);\nexport const MENU_ITEM_ROLES = Object.freeze({\n MENUITEM: \"menuitem\",\n LISTITEM: \"listitem\",\n OPTION: \"option\",\n RADIO: \"menuitemradio\",\n CHECKBOX: \"menuitemcheckbox\",\n} as const);\n","/* eslint-disable */\nimport * as React from \"react\";\nimport {\n createContext,\n useState,\n useLayoutEffect,\n useEffect,\n useContext,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\n\n/**\n * These hooks and utilities are largely copied from the @reach-ui/descendents package. They consider the package\n * pre-release and unstable, so instead of importing it, we copied it here and changed the types from TypeScript to\n * Flow. If the package ever stabilizes, we can import these functions from there and remove this file.\n */\nexport type TypeDescendant<ElementType, DescendantProps> = DescendantProps & {\n element: ElementType | null;\n index: number;\n};\ntype TypeDescendantContext<ElementType, DescendantProps> = {\n descendants: TypeDescendant<ElementType, DescendantProps>[];\n registerDescendant(\n descendant: Omit<TypeDescendant<ElementType, DescendantProps>, \"index\">\n ): void;\n unregisterDescendant(element: ElementType | null): void;\n};\n\nconst noop = () => {};\n\n/**\n * Returns the previous value of a reference after a component update.\n *\n * @param value\n */\nexport function usePrevious(value) {\n const ref = useRef(null);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\n/**\n * Wraps a lib-defined event handler and a user-defined event handler, returning\n * a single handler that allows a user to prevent lib-defined handlers from\n * firing.\n *\n * @param theirHandler User-supplied event handler\n * @param ourHandler Library-supplied event handler\n */\nexport function wrapEvent<EventType extends React.SyntheticEvent | Event>(\n theirHandler: ((event: EventType) => any) | null | undefined,\n ourHandler: (event: EventType) => any\n): (event: EventType) => any {\n return (event) => {\n theirHandler && theirHandler(event);\n\n if (!event.defaultPrevented) {\n return ourHandler(event);\n }\n };\n}\n\nexport function canUseDOM() {\n return (\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\"\n );\n}\nconst useIsomorphicLayoutEffect = canUseDOM() ? useLayoutEffect : useEffect;\n\nexport function createNamedContext<ContextValueType>(\n name: string,\n defaultValue: ContextValueType\n): React.Context<ContextValueType> {\n const Ctx = createContext<ContextValueType>(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}\n\nexport function createDescendantContext(\n name: string,\n initialValue = {\n descendants: [],\n registerDescendant: noop,\n unregisterDescendant: noop,\n }\n) {\n return createNamedContext(name, {\n ...initialValue,\n });\n}\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node and (optionally) a key. The key is useful\n * if multiple descendants have identical text values and we need to\n * differentiate siblings for some reason.\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation. However, in the few cases where\n * this is not the case, we can require an explicit index from the app.\n */\nexport function useDescendant<ElementType, DescendantProps>(\n { context, element, ...rest },\n indexProp?: number\n) {\n let [, forceUpdate] = useState<any>();\n let { registerDescendant, unregisterDescendant, descendants } =\n useContext<TypeDescendantContext<ElementType, DescendantProps>>(context);\n // Prevent any flashing\n useIsomorphicLayoutEffect(() => {\n if (!element) forceUpdate({});\n registerDescendant({\n element,\n ...rest,\n } as any);\n return () => unregisterDescendant(element);\n }, [element, ...Object.values(rest)]);\n return indexProp\n ? indexProp\n : descendants.findIndex((item) => item.element === element);\n}\nexport function useDescendants<ElementType, DescendantProps>() {\n return useState<TypeDescendant<ElementType, DescendantProps>[]>([]);\n}\nexport function DescendantProvider<\n ElementType extends HTMLElement,\n DescendantProps\n>({\n context: Ctx,\n children,\n items,\n set,\n}: {\n context: any;\n children: React.ReactNode;\n items: TypeDescendant<ElementType, DescendantProps>[];\n set: (\n arg0: (arg0: TypeDescendant<ElementType, DescendantProps>[]) => any\n ) => any;\n}) {\n let registerDescendant = useCallback(\n ({ element, ...rest }) => {\n if (!element) {\n return;\n }\n\n set((items) => {\n let newItem;\n let newItems;\n\n // If there are no items, register at index 0 and bail.\n if (items.length === 0) {\n newItem = {\n element,\n index: 0,\n ...rest,\n };\n newItems = [...items, newItem];\n } else if (items.find((item) => item.element === element)) {\n // If the element is already registered, just use the same array\n newItems = items;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n let index = items.findIndex((item) => {\n if (!item.element || !element) {\n return false;\n }\n\n // Does this element's DOM node appear before another item in the\n // array in our DOM tree? If so, return true to grab the index at\n // this point in the array so we know where to insert the new\n // element.\n return Boolean(\n item.element.compareDocumentPosition(element) &\n Node.DOCUMENT_POSITION_PRECEDING\n );\n });\n newItem = {\n element,\n index,\n ...rest,\n };\n\n // If an index is not found we will push the element to the end.\n if (index === -1) {\n newItems = [...items, newItem];\n } else {\n newItems = [\n ...items.slice(0, index),\n newItem,\n ...items.slice(index),\n ];\n }\n }\n\n return newItems.map((item, index) => ({ ...item, index }));\n });\n }, // set is a state setter initialized by the useDescendants hook.\n // We can safely ignore the lint warning here because it will not change\n // between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n let unregisterDescendant = useCallback(\n (element: TypeDescendant<ElementType, DescendantProps>[\"element\"]) => {\n if (!element) {\n return;\n }\n\n set((items) =>\n items\n .filter((item) => element !== item.element)\n .map((item, index) => ({ ...item, index }))\n );\n }, // set is a state setter initialized by the useDescendants hook.\n // We can safely ignore the lint warning here because it will not change\n // between renders.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n const value = useMemo(() => {\n return {\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n };\n }, [items, registerDescendant, unregisterDescendant]);\n return <Ctx.Provider value={value}>{children}</Ctx.Provider>;\n}\nexport function useDescendantKeyDown<\n ElementType,\n DescendantProps,\n K extends keyof TypeDescendant<ElementType, DescendantProps>\n>(\n context: React.Context<TypeDescendantContext<ElementType, DescendantProps>>,\n options: {\n currentIndex?: number;\n key?: K | \"option\";\n filter?: (\n descendant: TypeDescendant<ElementType, DescendantProps>\n ) => boolean;\n orientation?: \"vertical\" | \"horizontal\" | \"both\";\n rotate?: boolean;\n rtl?: boolean;\n callback(\n nextOption:\n | TypeDescendant<ElementType, DescendantProps>\n | TypeDescendant<ElementType, DescendantProps>[keyof TypeDescendant<\n ElementType,\n DescendantProps\n >]\n ): void;\n }\n) {\n let { descendants } = useContext(context);\n let {\n callback,\n currentIndex,\n filter,\n key = \"index\",\n orientation = \"vertical\",\n rotate = true,\n rtl = false,\n } = options;\n let index = currentIndex ? currentIndex : -1;\n return function handleKeyDown(event: React.KeyboardEvent) {\n if (\n ![\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"PageUp\",\n \"PageDown\",\n \"Home\",\n \"End\",\n ].includes(event.key)\n ) {\n return;\n }\n\n // If we use a filter function, we need to re-index our descendants array\n // so that filtered descendent elements aren't selected.\n let selectableDescendants = filter\n ? descendants.filter(filter)\n : descendants;\n\n // Current index should map to the updated array vs. the original\n // descendants array.\n if (filter) {\n index = selectableDescendants.findIndex(\n (descendant) => descendant.index === currentIndex\n );\n }\n\n // We need some options for any of this to work!\n if (!selectableDescendants.length) {\n return;\n }\n\n function getNextOption() {\n let atBottom = index === selectableDescendants.length - 1;\n return atBottom\n ? rotate\n ? getFirstOption()\n : selectableDescendants[index]\n : selectableDescendants[(index + 1) % selectableDescendants.length];\n }\n\n function getPreviousOption() {\n let atTop = index === 0;\n return atTop\n ? rotate\n ? getLastOption()\n : selectableDescendants[index]\n : selectableDescendants[\n (index - 1 + selectableDescendants.length) %\n selectableDescendants.length\n ];\n }\n\n function getFirstOption() {\n return selectableDescendants[0];\n }\n\n function getLastOption() {\n return selectableDescendants[selectableDescendants.length - 1];\n }\n\n switch (event.key) {\n case \"ArrowDown\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let next = getNextOption() as any; // @ts-notes: sincerely dont understand the intent of the original library here, since the supposed reference has been completely refactored\n callback(key === \"option\" ? next : next[key]);\n }\n\n break;\n\n case \"ArrowUp\":\n if (orientation === \"vertical\" || orientation === \"both\") {\n event.preventDefault();\n let prev = getPreviousOption() as any;\n callback(key === \"option\" ? prev : prev[key]);\n }\n\n break;\n\n case \"ArrowLeft\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let nextOrPrev = (rtl ? getNextOption : getPreviousOption)() as any;\n callback(key === \"option\" ? nextOrPrev : nextOrPrev[key]);\n }\n\n break;\n\n case \"ArrowRight\":\n if (orientation === \"horizontal\" || orientation === \"both\") {\n event.preventDefault();\n let prevOrNext = (rtl ? getPreviousOption : getNextOption)() as any;\n callback(key === \"option\" ? prevOrNext : prevOrNext[key]);\n }\n\n break;\n\n case \"PageUp\":\n event.preventDefault();\n let prevOrFirst = (\n event.ctrlKey ? getPreviousOption : getFirstOption\n )() as any;\n callback(key === \"option\" ? prevOrFirst : prevOrFirst[key]);\n break;\n\n case \"Home\":\n event.preventDefault();\n let first = getFirstOption() as any;\n callback(key === \"option\" ? first : first[key]);\n break;\n\n case \"PageDown\":\n event.preventDefault();\n let nextOrLast = (\n event.ctrlKey ? getNextOption : getLastOption\n )() as any;\n callback(key === \"option\" ? nextOrLast : nextOrLast[key]);\n break;\n\n case \"End\":\n event.preventDefault();\n let last = getLastOption() as any;\n callback(key === \"option\" ? last : last[key]);\n break;\n }\n };\n}\n","// eslint-disable @typescript-eslint/no-explicit-any\nimport { createContext, useContext, useEffect } from \"react\";\nimport scrollIntoViewIfNeeded from \"scroll-into-view-if-needed\";\nimport type { TypeMenuButtonContext, TypeMenuContext } from \"../MenuTypes\";\nimport { MENU_ROLES } from \"./constants\";\nimport type { TypeDescendant } from \"./descendants\";\nimport {\n createDescendantContext,\n useDescendantKeyDown,\n usePrevious,\n wrapEvent,\n} from \"./descendants\";\nexport const MenuContext = createContext<TypeMenuContext>({\n role: MENU_ROLES.MENU,\n menuRef: {\n current: null,\n },\n value: undefined,\n multiselect: false,\n onChange: undefined,\n state: {\n selectionIndex: 0,\n filterQuery: \"\",\n filteredItems: null,\n isFilterInputFocused: false,\n isFooterFocused: false,\n },\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n setState: () => {},\n selectCallbacks: {\n current: [],\n },\n});\nexport const MenuButtonContext = createContext<TypeMenuButtonContext>({\n closeOnItemClick: undefined,\n closePopout: undefined,\n});\nexport type TypeMenuDescendantProps = {\n id: string;\n label: string | null | undefined;\n value?: string;\n disabled?: boolean;\n};\nexport const MenuDescendantContext = createDescendantContext(\n \"MenuDescendantContext\"\n);\n\n/**\n * When a user's typed input matches the string displayed in a menu item, it is\n * expected that the matching menu item is selected. This is our matching\n * function.\n */\nfunction filterItemsFromTypeahead(\n items: TypeDescendant<HTMLElement, TypeMenuDescendantProps>[],\n string = \"\"\n) {\n if (!string) {\n return null;\n }\n\n return items\n .filter(\n ({ value, label }) =>\n value?.toLowerCase().includes(string.toLocaleLowerCase()) ||\n label?.toLowerCase().includes(string.toLocaleLowerCase())\n )\n .map(({ index }) => index);\n}\n\nexport function useMenuKeyDown() {\n const {\n onChange,\n selectCallbacks,\n setState,\n multiselect,\n state: {\n filterQuery,\n selectionIndex,\n filteredItems,\n isFilterInputFocused,\n isFooterFocused,\n },\n } = useContext(MenuContext);\n const { closePopout, closeOnItemClick } = useContext(MenuButtonContext);\n const { descendants: items } = useContext(MenuDescendantContext);\n const shouldClosePopout = closeOnItemClick && !multiselect;\n const prevMenuItemsLength = usePrevious(items.length);\n const prevSelected = usePrevious(items[selectionIndex]);\n const prevSelectionIndex = usePrevious(selectionIndex);\n useEffect(() => {\n if (items.length && selectionIndex > items.length - 1) {\n // If for some reason our selection index is larger than our possible\n // index range (let's say the last item is selected and the list\n // dynamically updates), we need to select the last item in the list.\n setState({\n selectionIndex: items.length - 1,\n });\n } else if (\n // Checks if\n // - menu length has changed\n // - selection index has not changed BUT selected item has changed\n //\n // This prevents any dynamic adding/removing of menu items from actually\n // changing a user's expected selection.\n prevMenuItemsLength !== items.length &&\n selectionIndex > -1 &&\n prevSelected &&\n prevSelectionIndex === selectionIndex &&\n items[selectionIndex] !== prevSelected\n ) {\n setState({\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore I'm just going to ignore this one because its really hard to estimate where this stuff is coming from at any given time\n selectionIndex: items.findIndex((i) => i.index === prevSelected.index),\n });\n }\n }, [\n setState,\n items,\n prevMenuItemsLength,\n prevSelected,\n prevSelectionIndex,\n selectionIndex,\n ]);\n useEffect(() => {\n const newFilteredItems = filterItemsFromTypeahead(items, filterQuery);\n\n if (\n filterQuery &&\n newFilteredItems &&\n filteredItems?.length !== newFilteredItems?.length\n ) {\n setState({\n filteredItems: newFilteredItems,\n selectionIndex: newFilteredItems[0],\n });\n } else if (!filterQuery && filteredItems !== null) {\n setState({\n filteredItems: null,\n });\n }\n }, [filterQuery, items, setState, filteredItems]);\n const index = items.findIndex(({ index }) => index === selectionIndex);\n return {\n activeDescendent: items[selectionIndex],\n handleKeyDown: wrapEvent<React.KeyboardEvent>(\n function (event) {\n const { key } = event;\n // Do not trigger key events for the selected item if the footer is focused\n if (isFooterFocused) {\n return;\n }\n\n switch (key) {\n case \" \":\n if (isFilterInputFocused) {\n return;\n }\n\n // falls through\n // eslint-disable-next-line no-fallthrough\n case \"Enter\":\n // eslint-disable-next-line no-case-declarations\n const selected = items[selectionIndex] as HTMLElement[] & {\n index: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: any;\n disabled?: boolean;\n };\n\n if (selected && !selected.disabled) {\n event.preventDefault();\n const func = selectCallbacks.current[selected.index];\n func?.call && func();\n onChange && selected.value && onChange(selected.value);\n shouldClosePopout && closePopout && closePopout();\n }\n\n return;\n\n default:\n return;\n }\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useDescendantKeyDown(MenuDescendantContext as React.Context<any>, {\n currentIndex: index,\n orientation: \"vertical\",\n key: \"option\",\n rotate: true,\n filter: (\n option: TypeDescendant<HTMLElement, TypeMenuDescendantProps>\n ) =>\n !option.disabled &&\n (!filteredItems || filteredItems.includes(option.index)),\n\n callback(item: TypeDescendant<HTMLElement, TypeMenuDescendantProps>) {\n if (item.element) {\n scrollIntoViewIfNeeded(item.element, {\n block: \"nearest\",\n scrollMode: \"if-needed\",\n });\n }\n\n setState({\n selectionIndex: item.index,\n });\n },\n })\n ),\n };\n}\n","import styled, { css } from \"styled-components\";\nimport { disabled, focusRing } from \"@sproutsocial/seeds-react-mixins\";\nimport Box from \"@sproutsocial/seeds-react-box\";\nimport { StyledSwitchButton as Switch } from \"@sproutsocial/seeds-react-switch\";\nimport type { TypeMenuItemContainerProps } from \"./MenuTypes\";\n\nexport const MenuItemContainer = styled(Box)<TypeMenuItemContainerProps>`\n ${(props) =>\n !props.hidden &&\n css`\n display: block;\n `};\n width: 100%;\n border-radius: ${(props) => props.theme.radii[500]};\n background-color: ${(props) => props.theme.colors.listItem.background.base};\n border: none;\n text-align: left;\n color: ${(props) => props.theme.colors.text.body};\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.normal};\n padding: ${(props) => `6px ${props.theme.space[300]}`};\n list-style-type: none;\n outline: 0;\n ${(props) => css`\n ${props.theme.typography[200]};\n `};\n\n ${(props) =>\n props.selected &&\n !props.isCheckboxOrRadio &&\n css`\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n `}\n\n ${(props) =>\n props.active &&\n !props.disabled &&\n css`\n color: ${(props) => props.theme.colors.text.inverse};\n background-color: ${props.theme.colors.listItem.background.selected};\n\n .Icon-svg {\n color: ${(props) => props.theme.colors.text.inverse};\n }\n `}\n\n // Add border to Switches inside of active Menu Items so they do not disappear into the background.\n ${Switch} {\n ${(props) =>\n props.active &&\n !props.disabled &&\n css`\n border-color: ${(props) => props.theme.colors.container.border.base};\n `}\n }\n\n ${(props) =>\n !props.disabled &&\n css`\n &:focus,\n &:hover {\n color: ${(props) => props.theme.colors.text.body};\n background-color: ${(props) =>\n props.theme.colors.listItem.background.hover};\n\n .Icon-svg {\n color: unset;\n }\n }\n `}\n\n ${(props) =>\n props.interactive && !props.disabled\n ? css`\n &:hover {\n cursor: pointer;\n }\n `\n : css`\n &:hover {\n cursor: default;\n }\n `}\n ${(props) => props.disabled && disabled}\n`;\n\nexport const MenuItemsContainer = styled(Box)`\n list-style-type: none;\n &:focus {\n ${focusRing}\n }\n & > div[role=\"group\"]:first-of-type {\n border-top: none;\n }\n`;\n","import Menu, { MenuButton } from \"./Menu\";\n\nexport { Menu, MenuButton };\nexport default Menu;\nexport * from \"./MenuTypes\";\nexport * from \"./styles\";\nexport * from \"./utils\";\n","import styled from \"styled-components\";\n\nconst Nav = styled.nav`\n ol {\n ${(props) => props.theme.typography[200]};\n margin: 0;\n font-family: ${(props) => props.theme.fontFamily};\n padding: 0;\n display: flex;\n }\n\n li {\n margin-right: ${(props) => props.theme.space[200]};\n display: flex;\n }\n\n a,\n button {\n ${(props) => props.theme.typography[200]};\n max-width: 200px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n &:not(.overflow--menu) {\n margin: 0;\n padding: 0;\n }\n }\n\n ol > div + li::before {\n content: \"/\";\n margin-right: ${(props) => props.theme.space[200]};\n }\n\n li:last-child a,\n li:last-child button {\n color: ${(props) => props.theme.colors.text.body};\n font-weight: bold;\n }\n\n li:not(:last-child)::after {\n content: \"/\";\n color: ${(props) => props.theme.colors.text.body};\n margin-left: ${(props) => props.theme.space[200]};\n }\n`;\n\nexport default Nav;\n","import * as React from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { MENU_ROLES } from \"../Menu/utils/constants\";\nimport { Arrow } from \"@sproutsocial/seeds-react-select\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\n// eslint-disable-next-line no-restricted-imports\nimport Menu, { MenuButton } from \"../Menu\";\nimport type { TypeListboxProps, TypeListboxButtonProps } from \"./ListboxTypes\";\n\n/**\n * @deprecated Listbox is deprecated. Listbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const Listbox = ({\n role = MENU_ROLES.LISTBOX,\n children,\n ...rest\n}: TypeListboxProps) => {\n return (\n <Menu {...rest} role={role}>\n {children}\n </Menu>\n );\n};\n\n/**\n * These styles are copied from @sproutsocial/racine/commonjs/Select/styles and applied at the root element since\n * the Listbox component doesn't render a select.\n */\nexport const ListboxButtonContainer = styled(MenuButton)`\n position: relative;\n width: 100%;\n border: 1px solid ${(props) => props.theme.colors.form.border.base};\n border-radius: ${(props) => props.theme.radii[500]};\n background-color: ${(props) => props.theme.colors.form.background.base};\n color: ${(props) => props.theme.colors.text.body};\n cursor: ${(props) => (props.disabled ? \"not-allowed\" : \"pointer\")};\n outline: none;\n appearance: none;\n transition: border-color ${(props) => props.theme.duration.fast}\n ${(props) => props.theme.easing.ease_in},\n box-shadow ${(props) => props.theme.duration.fast}\n ${(props) => props.theme.easing.ease_in};\n font-family: ${(props) => props.theme.fontFamily};\n font-weight: ${(props) => props.theme.fontWeights.normal};\n text-align: left;\n margin: 0;\n &:active {\n transform: none;\n }\n\n padding: ${(props) => {\n switch (props.size) {\n case \"large\":\n return `${props.theme.space[400]} ${props.theme.space[600]} ${props.theme.space[400]} ${props.theme.space[400]}`;\n\n case \"small\":\n return `${props.theme.space[200]} ${props.theme.space[500]} ${props.theme.space[200]} ${props.theme.space[200]}`;\n\n case \"default\":\n default:\n return `${props.theme.space[300]} ${props.theme.space[500]} ${props.theme.space[300]} ${props.theme.space[300]}`;\n }\n }};\n font-size: ${(props) => {\n switch (props.size) {\n case \"large\":\n return props.theme.typography[300].fontSize;\n\n case \"small\":\n case \"default\":\n default:\n return props.theme.typography[200].fontSize;\n }\n }};\n\n ${(props) =>\n props.invalid &&\n css`\n border-color: ${(props) => props.theme.colors.form.border.error};\n ${Arrow} {\n color: ${(props) => props.theme.colors.icon.error};\n }\n `}\n`;\n\n/**\n * @deprecated ListboxButton is deprecated. ListboxButton will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport const ListboxButton = ({\n children,\n ...restProps\n}: TypeListboxButtonProps) => (\n <ListboxButtonContainer\n {...restProps}\n popoutProps={{\n placement: \"bottom-start\",\n ...(restProps.popoutProps || {}),\n }}\n >\n {children}\n <Arrow size={restProps.size}>\n <Icon name=\"chevron-down-outline\" fixedWidth aria-hidden />\n </Arrow>\n </ListboxButtonContainer>\n);\n\nListbox.Option = Listbox.Item = Menu.Item;\nListbox.Checkbox = Menu.Checkbox;\nListbox.Radio = Menu.Radio;\nListbox.Switch = Menu.Switch;\nListbox.Group = Menu.Group;\nListbox.Divider = Menu.Divider;\nListbox.FilterInput = Menu.FilterInput;\n\n/**\n * @deprecated Listbox is deprecated. Listbox will be removed in 2025 in favor of seeds-react-menu ecosystem. Create a plan to migrate to {@link https://github.com/sproutsocial/seeds/tree/main/seeds-react/seeds-react-menu/src | seeds-react-menu}.\n */\nexport default Listbox;\n","import * as React from \"react\";\nimport Icon from \"@sproutsocial/seeds-react-icon\";\nimport Container, { IconText } from \"./styles\";\nimport type { TypeToggleHintProps } from \"./ToggleHintTypes\";\n/**\n * Icon (either chevron or plus/minus) indicating whether an element is open or closed.\n */\n\n/**\n * @deprecated ToggleHint is deprecated. ToggleHint is no longer supported and will be removed in 2025.\n */\nexport default class ToggleHint extends React.Component<TypeToggleHintProps> {\n static defaultProps = {\n isOpen: false,\n icon: \"chevron\",\n };\n getIcon = () => {\n if (this.props.icon === \"chevron\") {\n return <Icon name=\"chevron-down-outline\" aria-hidden />;\n }\n\n return (\n <Icon\n name={this.props.isOpen ? \"minus-outline\" : \"plus-outline\"}\n aria-hidden\n />\n );\n };\n\n render() {\n const {\n icon,\n isOpen,\n openString,\n closeString,\n qa,\n className,\n color,\n ...rest\n } = this.props;\n return (\n <Container\n icon={icon}\n isOpen={isOpen}\n className={`ToggleHint ${className}`}\n data-qa-togglehint-isopen={isOpen}\n // TODO: fix this type since `color` should be valid here. TS can't resolve the correct type.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n color={color}\n {...qa}\n {...rest}\n >\n {this.getIcon()}\n\n <IconText>{isOpen ? closeString : openString}</IconText>\n </Container>\n );\n }\n}\n","import styled, { css } from \"styled-components\";\nimport { COMMON } from \"@sproutsocial/seeds-react-system-props\";\nimport { visuallyHidden } from \"@sproutsocial/seeds-react-mixins\";\nimport { TypeToggleHintProps } from \"./ToggleHintTypes\";\n\nconst Container = styled.div<Pick<TypeToggleHintProps, \"icon\" | \"isOpen\">>`\n position: relative;\n display: inline-block;\n padding: ${(props) => props.theme.space[100]};\n color: currentColor;\n\n ${(props) =>\n props.icon === \"chevron\" &&\n css`\n transition: transform\n ${(props) =>\n `${props.theme.duration.medium} ${props.theme.easing.ease_inout}`};\n\n ${props.isOpen &&\n css`\n transform: rotateX(180deg);\n `}\n `}\n\n ${COMMON}\n`;\n\nexport const IconText = styled.div`\n ${visuallyHidden}\n`;\n\nexport default Container;\n"],"mappings":"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","names":["import_seeds_react_hooks","import_seeds_react_icon","import_react","import_styled_components","import_seeds_react_mixins","import_seeds_react_box","import_seeds_react_switch","items","import_react","index","scrollIntoViewIfNeeded","styled","Box","props","Switch","import_jsx_runtime","noop","disabled","uniqueId","Checkbox","Radio","Icon","Switch","Text","styled","Box","Input","Popout","Button","Menu_default","import_styled_components","styled","import_jsx_runtime","Link","Icon","import_styled_components","import_seeds_react_icon","import_jsx_runtime","Menu_default","styled","props","Icon","React","import_seeds_react_icon","import_styled_components","import_seeds_react_mixins","styled","props","styles_default","import_jsx_runtime","Icon","styles_default"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sproutsocial/racine",
3
- "version": "26.7.0",
3
+ "version": "26.9.0",
4
4
  "license": "MIT",
5
5
  "engines": {
6
6
  "node": ">=18"
@@ -60,7 +60,7 @@
60
60
  "@sproutsocial/seeds-react-icon": "^1.1.2",
61
61
  "@sproutsocial/seeds-react-image": "^1.0.1",
62
62
  "@sproutsocial/seeds-react-indicator": "^1.0.1",
63
- "@sproutsocial/seeds-react-input": "^1.4.2",
63
+ "@sproutsocial/seeds-react-input": "^1.4.3",
64
64
  "@sproutsocial/seeds-react-keyboard-key": "^1.0.1",
65
65
  "@sproutsocial/seeds-react-label": "^1.0.1",
66
66
  "@sproutsocial/seeds-react-link": "^1.0.1",
@@ -74,6 +74,7 @@
74
74
  "@sproutsocial/seeds-react-popout": "^2.4.2",
75
75
  "@sproutsocial/seeds-react-portal": "^1.1.3",
76
76
  "@sproutsocial/seeds-react-radio": "^1.3.0",
77
+ "@sproutsocial/seeds-react-rating": "^1.0.0",
77
78
  "@sproutsocial/seeds-react-segmented-control": "^1.0.1",
78
79
  "@sproutsocial/seeds-react-spot-illustration": "^1.0.1",
79
80
  "@sproutsocial/seeds-react-select": "^1.1.1",
@@ -115,7 +116,7 @@
115
116
  "@sproutsocial/seeds-motion": "^1.8.0",
116
117
  "@sproutsocial/seeds-networkcolor": "^2.20.0",
117
118
  "@sproutsocial/seeds-partner-logos": "^1.12.0",
118
- "@sproutsocial/seeds-react-menu": "^1.6.0",
119
+ "@sproutsocial/seeds-react-menu": "^1.6.1",
119
120
  "@sproutsocial/seeds-react-testing-library": "*",
120
121
  "@sproutsocial/seeds-space": "^0.8.0",
121
122
  "@sproutsocial/seeds-testing": "*",