@sproutsocial/racine 26.14.1 → 26.14.3

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,21 @@
1
1
  # Change Log
2
2
 
3
+ ## 26.14.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [14ada75]
8
+ - @sproutsocial/seeds-react-data-table@1.0.2
9
+ - @sproutsocial/seeds-react-table@1.0.4
10
+
11
+ ## 26.14.2
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [116b126]
16
+ - @sproutsocial/seeds-react-token@1.4.0
17
+ - @sproutsocial/seeds-react-token-input@1.4.5
18
+
3
19
  ## 26.14.1
4
20
 
5
21
  ### Patch Changes
package/dist/esm/index.js CHANGED
@@ -1425,7 +1425,6 @@ export * from "@sproutsocial/seeds-react-token-input";
1425
1425
  export * from "@sproutsocial/seeds-react-tooltip";
1426
1426
  export * from "@sproutsocial/seeds-react-visually-hidden";
1427
1427
  export * from "@sproutsocial/seeds-react-data-table";
1428
- export * from "@sproutsocial/seeds-react-table-v2";
1429
1428
  import { Banner } from "@sproutsocial/seeds-react-banner";
1430
1429
  export {
1431
1430
  Banner as Alert,
@@ -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-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\";\nexport * from \"@sproutsocial/seeds-react-data-table\";\nexport * from \"@sproutsocial/seeds-react-table-v2\";\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\";\nexport * from \"@sproutsocial/seeds-react-data-table\";\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"]}
@@ -0,0 +1,10 @@
1
+ // src/table/v1/index.ts
2
+ import {
3
+ default as default2,
4
+ Table
5
+ } from "@sproutsocial/seeds-react-table/v1";
6
+ export {
7
+ default2 as Table,
8
+ Table as TableV1
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/table/v1/index.ts"],"sourcesContent":["// V1 Table - Re-export from seeds-react-table for optimal tree shaking\nexport {\n default as Table,\n Table as TableV1,\n} from \"@sproutsocial/seeds-react-table/v1\";\n\n// Explicit type exports\nexport type {\n TypeTableProps,\n TypeTableRow,\n TypeTableHeadProp,\n TypePassthroughProps,\n} from \"@sproutsocial/seeds-react-table/v1\";\n"],"mappings":";AACA;AAAA,EACa,WAAXA;AAAA,EACS;AAAA,OACJ;","names":["default"]}
@@ -0,0 +1,7 @@
1
+ // src/table/v2/index.ts
2
+ import { default as default2 } from "@sproutsocial/seeds-react-table/v2";
3
+ export * from "@sproutsocial/seeds-react-table/v2";
4
+ export {
5
+ default2 as TableV2
6
+ };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/table/v2/index.ts"],"sourcesContent":["// V2 Table - Re-export from seeds-react-table for optimal tree shaking\nexport { default as TableV2 } from \"@sproutsocial/seeds-react-table/v2\";\n\n// Explicit type exports\nexport type {\n TableV2Props,\n ColumnHeader,\n RowData,\n} from \"@sproutsocial/seeds-react-table/v2\";\n\n// Explicit style exports\nexport * from \"@sproutsocial/seeds-react-table/v2\";\n"],"mappings":";AACA,SAAoB,WAAXA,gBAA0B;AAUnC,cAAc;","names":["default"]}
package/dist/index.d.mts CHANGED
@@ -73,7 +73,6 @@ export * from '@sproutsocial/seeds-react-token-input';
73
73
  export * from '@sproutsocial/seeds-react-tooltip';
74
74
  export * from '@sproutsocial/seeds-react-visually-hidden';
75
75
  export * from '@sproutsocial/seeds-react-data-table';
76
- export * from '@sproutsocial/seeds-react-table-v2';
77
76
 
78
77
  interface TypeBreadcrumbProps extends TypeStyledComponentsCommonProps, TypeSystemCommonProps, Omit<React.ComponentPropsWithoutRef<"nav">, "color"> {
79
78
  children: React.ReactNode;
package/dist/index.d.ts CHANGED
@@ -73,7 +73,6 @@ export * from '@sproutsocial/seeds-react-token-input';
73
73
  export * from '@sproutsocial/seeds-react-tooltip';
74
74
  export * from '@sproutsocial/seeds-react-visually-hidden';
75
75
  export * from '@sproutsocial/seeds-react-data-table';
76
- export * from '@sproutsocial/seeds-react-table-v2';
77
76
 
78
77
  interface TypeBreadcrumbProps extends TypeStyledComponentsCommonProps, TypeSystemCommonProps, Omit<React.ComponentPropsWithoutRef<"nav">, "color"> {
79
78
  children: React.ReactNode;
package/dist/index.js CHANGED
@@ -1469,7 +1469,6 @@ __reExport(src_exports, require("@sproutsocial/seeds-react-token-input"), module
1469
1469
  __reExport(src_exports, require("@sproutsocial/seeds-react-tooltip"), module.exports);
1470
1470
  __reExport(src_exports, require("@sproutsocial/seeds-react-visually-hidden"), module.exports);
1471
1471
  __reExport(src_exports, require("@sproutsocial/seeds-react-data-table"), module.exports);
1472
- __reExport(src_exports, require("@sproutsocial/seeds-react-table-v2"), module.exports);
1473
1472
  var import_seeds_react_banner = require("@sproutsocial/seeds-react-banner");
1474
1473
  // Annotate the CommonJS export names for ESM import in node:
1475
1474
  0 && (module.exports = {
@@ -1559,7 +1558,6 @@ var import_seeds_react_banner = require("@sproutsocial/seeds-react-banner");
1559
1558
  ...require("@sproutsocial/seeds-react-token-input"),
1560
1559
  ...require("@sproutsocial/seeds-react-tooltip"),
1561
1560
  ...require("@sproutsocial/seeds-react-visually-hidden"),
1562
- ...require("@sproutsocial/seeds-react-data-table"),
1563
- ...require("@sproutsocial/seeds-react-table-v2")
1561
+ ...require("@sproutsocial/seeds-react-data-table")
1564
1562
  });
1565
1563
  //# sourceMappingURL=index.js.map
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-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\";\nexport * from \"@sproutsocial/seeds-react-data-table\";\nexport * from \"@sproutsocial/seeds-react-table-v2\";\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,wBAAc,mDATd;AAUA,wBAAc,4CAVd;AAWA,wCAAyC;AAGzC,IAAAA,4BAMO;AACP,wBAAc,6CArBd;AAwBA,wBAAc,6CAxBd;AAyBA,wBAAc,4CAzBd;AA0BA,wBAAc,6CA1Bd;AA2BA,wBAAc,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,wBAAc,6CA7Bd;AA8BA,wBAAc,2CA9Bd;AA+BA,wBAAc,wDA/Bd;AAgCA,wBAAc,mDAhCd;AAiCA,wBAAc,+CAjCd;AAkCA,wBAAc,kDAlCd;AAmCA,wBAAc,iDAnCd;AAoCA,wBAAc,6CApCd;AAqCA,wBAAc,+CArCd;AAsCA,wBAAc,kDAtCd;AAuCA,wBAAc,+CAvCd;AAwCA,wBAAc,iDAxCd;AAyCA,wBAAc,2CAzCd;AA0CA,wBAAc,4CA1Cd;AA2CA,wBAAc,gDA3Cd;AA4CA,wBAAc,4CA5Cd;AA6CA,wBAAc,mDA7Cd;AA8CA,wBAAc,4CA9Cd;AA+CA,wBAAc,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,wBAAc,6CAjDd;AAkDA,wBAAc,oDAlDd;AAoDA,wBAAc,4CApDd;AAqDA,wBAAc,8CArDd;AAsDA,wBAAc,8CAtDd;AAuDA,wBAAc,mDAvDd;AAwDA,wBAAc,6CAxDd;AAyDA,wBAAc,6CAzDd;AA0DA,wBAAc,4CA1Dd;AA2DA,wBAAc,6CA3Dd;AA4DA,wBAAc,wDA5Dd;AA6DA,wBAAc,6CA7Dd;AA8DA,wBAAc,+CA9Dd;AA+DA,wBAAc,wDA/Dd;AAgEA,wBAAc,4CAhEd;AAiEA,wBAAc,6CAjEd;AAkEA,wBAAc,4CAlEd;AAmEA,wBAAc,sDAnEd;AAoEA,wBAAc,4DApEd;AAqEA,wBAAc,8DArEd;AAsEA,wBAAc,2CAtEd;AAuEA,wBAAc,2CAvEd;AAwEA,wBAAc,+CAxEd;AAyEA,wBAAc,4CAzEd;;;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;;;AXgBA,wBAAc,4CA3Ed;AA4EA,wBAAc,kDA5Ed;AA6EA,wBAAc,8CA7Ed;AA8EA,wBAAc,sDA9Ed;AA+EA,wBAAc,iDA/Ed;AAgFA,wBAAc,+CAhFd;AAsFA,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\";\nexport * from \"@sproutsocial/seeds-react-data-table\";\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"]}
@@ -1,2 +1,4 @@
1
1
  export { default as Modal, Modal as ModalV1, TypeModalCloseButtonProps, TypeModalContentProps, TypeModalFooterProps, TypeModalHeaderProps, TypeModalProps } from '@sproutsocial/seeds-react-modal/v1';
2
2
  import '@sproutsocial/seeds-react-modal/v2';
3
+ import '@sproutsocial/seeds-react-table/v1';
4
+ import '@sproutsocial/seeds-react-table/v2';
@@ -1,2 +1,4 @@
1
1
  export { default as Modal, Modal as ModalV1, TypeModalCloseButtonProps, TypeModalContentProps, TypeModalFooterProps, TypeModalHeaderProps, TypeModalProps } from '@sproutsocial/seeds-react-modal/v1';
2
2
  import '@sproutsocial/seeds-react-modal/v2';
3
+ import '@sproutsocial/seeds-react-table/v1';
4
+ import '@sproutsocial/seeds-react-table/v2';
@@ -0,0 +1 @@
1
+ export { default as Table, Table as TableV1, TypePassthroughProps, TypeTableHeadProp, TypeTableProps, TypeTableRow } from '@sproutsocial/seeds-react-table/v1';
@@ -0,0 +1 @@
1
+ export { default as Table, Table as TableV1, TypePassthroughProps, TypeTableHeadProp, TypeTableProps, TypeTableRow } from '@sproutsocial/seeds-react-table/v1';
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/table/v1/index.ts
31
+ var v1_exports = {};
32
+ __export(v1_exports, {
33
+ Table: () => import_v1.default,
34
+ TableV1: () => import_v1.Table
35
+ });
36
+ module.exports = __toCommonJS(v1_exports);
37
+ var import_v1 = __toESM(require("@sproutsocial/seeds-react-table/v1"));
38
+ // Annotate the CommonJS export names for ESM import in node:
39
+ 0 && (module.exports = {
40
+ Table,
41
+ TableV1
42
+ });
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/table/v1/index.ts"],"sourcesContent":["// V1 Table - Re-export from seeds-react-table for optimal tree shaking\nexport {\n default as Table,\n Table as TableV1,\n} from \"@sproutsocial/seeds-react-table/v1\";\n\n// Explicit type exports\nexport type {\n TypeTableProps,\n TypeTableRow,\n TypeTableHeadProp,\n TypePassthroughProps,\n} from \"@sproutsocial/seeds-react-table/v1\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gBAGO;","names":[]}
@@ -0,0 +1,2 @@
1
+ export * from '@sproutsocial/seeds-react-table/v2';
2
+ export { ColumnHeader, RowData, default as TableV2, TableV2Props } from '@sproutsocial/seeds-react-table/v2';
@@ -0,0 +1,2 @@
1
+ export * from '@sproutsocial/seeds-react-table/v2';
2
+ export { ColumnHeader, RowData, default as TableV2, TableV2Props } from '@sproutsocial/seeds-react-table/v2';
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/table/v2/index.ts
32
+ var v2_exports = {};
33
+ __export(v2_exports, {
34
+ TableV2: () => import_v2.default
35
+ });
36
+ module.exports = __toCommonJS(v2_exports);
37
+ var import_v2 = __toESM(require("@sproutsocial/seeds-react-table/v2"));
38
+ __reExport(v2_exports, require("@sproutsocial/seeds-react-table/v2"), module.exports);
39
+ // Annotate the CommonJS export names for ESM import in node:
40
+ 0 && (module.exports = {
41
+ TableV2,
42
+ ...require("@sproutsocial/seeds-react-table/v2")
43
+ });
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/table/v2/index.ts"],"sourcesContent":["// V2 Table - Re-export from seeds-react-table for optimal tree shaking\nexport { default as TableV2 } from \"@sproutsocial/seeds-react-table/v2\";\n\n// Explicit type exports\nexport type {\n TableV2Props,\n ColumnHeader,\n RowData,\n} from \"@sproutsocial/seeds-react-table/v2\";\n\n// Explicit style exports\nexport * from \"@sproutsocial/seeds-react-table/v2\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,gBAAmC;AAUnC,uBAAc,+CAXd;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sproutsocial/racine",
3
- "version": "26.14.1",
3
+ "version": "26.14.3",
4
4
  "license": "MIT",
5
5
  "engines": {
6
6
  "node": ">=18"
@@ -31,6 +31,16 @@
31
31
  "types": "./dist/modal/v2/index.d.ts",
32
32
  "import": "./dist/esm/modal/v2/index.js",
33
33
  "require": "./dist/modal/v2/index.js"
34
+ },
35
+ "./table/v1": {
36
+ "types": "./dist/table/v1/index.d.ts",
37
+ "import": "./dist/esm/table/v1/index.js",
38
+ "require": "./dist/table/v1/index.js"
39
+ },
40
+ "./table/v2": {
41
+ "types": "./dist/table/v2/index.d.ts",
42
+ "import": "./dist/esm/table/v2/index.js",
43
+ "require": "./dist/table/v2/index.js"
34
44
  }
35
45
  },
36
46
  "sideEffects": false,
@@ -65,7 +75,7 @@
65
75
  "@sproutsocial/seeds-react-chart-legend": "^1.0.3",
66
76
  "@sproutsocial/seeds-react-checkbox": "^1.3.3",
67
77
  "@sproutsocial/seeds-react-collapsible": "^1.0.4",
68
- "@sproutsocial/seeds-react-data-table": "^1.0.1",
78
+ "@sproutsocial/seeds-react-data-table": "^1.0.2",
69
79
  "@sproutsocial/seeds-react-datepicker": "^1.0.3",
70
80
  "@sproutsocial/seeds-react-drawer": "^1.0.3",
71
81
  "@sproutsocial/seeds-react-duration": "^1.0.3",
@@ -98,14 +108,13 @@
98
108
  "@sproutsocial/seeds-react-stack": "^1.0.3",
99
109
  "@sproutsocial/seeds-react-switch": "^1.2.3",
100
110
  "@sproutsocial/seeds-react-system-props": "^3.0.2",
101
- "@sproutsocial/seeds-react-table": "^1.0.3",
102
- "@sproutsocial/seeds-react-table-v2": "^1.0.1",
111
+ "@sproutsocial/seeds-react-table": "^1.0.4",
103
112
  "@sproutsocial/seeds-react-tabs": "^1.1.3",
104
113
  "@sproutsocial/seeds-react-text": "^1.3.2",
105
114
  "@sproutsocial/seeds-react-textarea": "^1.0.3",
106
115
  "@sproutsocial/seeds-react-toast": "^1.0.3",
107
- "@sproutsocial/seeds-react-token": "^1.3.0",
108
- "@sproutsocial/seeds-react-token-input": "^1.4.4",
116
+ "@sproutsocial/seeds-react-token": "^1.4.0",
117
+ "@sproutsocial/seeds-react-token-input": "^1.4.5",
109
118
  "@sproutsocial/seeds-react-tooltip": "^1.0.3",
110
119
  "@sproutsocial/seeds-react-theme": "^3.1.0",
111
120
  "@sproutsocial/seeds-react-theme-provider": "^1.1.4",
@@ -133,7 +142,7 @@
133
142
  "@sproutsocial/seeds-motion": "^1.8.1",
134
143
  "@sproutsocial/seeds-networkcolor": "^2.20.0",
135
144
  "@sproutsocial/seeds-partner-logos": "^1.12.0",
136
- "@sproutsocial/seeds-react-menu": "^1.6.8",
145
+ "@sproutsocial/seeds-react-menu": "^1.6.9",
137
146
  "@sproutsocial/seeds-react-testing-library": "*",
138
147
  "@sproutsocial/seeds-space": "^0.8.0",
139
148
  "@sproutsocial/seeds-testing": "*",