@televet/kibble-ui 2.1.26 → 2.1.27

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/build/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./alert.component-ee6be388.js"),r=require("./avatar.component-b1718213.js"),o=require("./avatar.types-a87ebfb5.js"),t=require("./avatarGroup.component-07948ebe.js"),s=require("./button.component-8c8cd059.js"),a=require("./button.types-f42b599b.js"),p=require("./card.component-de5d4b2a.js"),i=require("./checkbox.component-c4ba125b.js"),n=require("./checkboxGroup.component-aba91132.js"),u=require("./datepicker.component-3c981d85.js"),x=require("./heading.component-e55f8364.js"),d=require("./heading.types-b6ca7d59.js"),c=require("./icon.component-100b924b.js"),l=require("./link.component-d28bdaea.js"),m=require("./logo.component-cea68030.js"),b=require("./menuButton.component-6cc24ebb.js"),q=require("./menuContainer.component-37bff630.js"),j=require("./menuItem.component-59369cfc.js"),C=require("./menuList.component-8259b8c6.js"),h=require("./menu.component-2d02a5a8.js"),v=require("./modalBody.component-345aaa1b.js"),k=require("./modalCloseButton.component-59dd95d7.js"),M=require("./modalFooter.component-1c9fcc61.js"),T=require("./modalFooterButtons.component-7889340e.js"),f=require("./modalHeader.component-204451e0.js"),g=require("./modal.component-0d68beaa.js"),S=require("./notificationCounter.component-24f3f4ab.js"),I=require("./picture.component-19489bee.js"),P=require("./popoverFooter.component-3fef4223.js"),y=require("./popoverHeader.component-f4823e52.js"),B=require("./popover.component-b27da5a5.js"),D=require("./popover.types-bc105ea7.js"),L=require("./radio.component-2502a55b.js"),F=require("./radioGroup.component-ca8de307.js"),A=require("./ratingDot.component-01592415.js"),G=require("./ratingDots.component-f7677abd.js"),H=require("./select.component-e3d3c7a1.js"),w=require("./dragHandle.component-e4a46a3d.js"),z=require("./sortableItem.component-3bdead95.js"),O=require("./sortableOverlay.component-39d84330.js"),R=require("./sortableList.component-2c36f685.js"),N=require("./spinner.component-19c70e5d.js"),W=require("./spinner.types-9d350e31.js"),V=require("./switch.component-5e876a7a.js"),E=require("./tab.component-9395a9e2.js"),K=require("./tabs.component-f7a37a9b.js"),Q=require("./tabsLayout.component-9b90c425.js"),U=require("./tag.types-f979ec63.js"),_=require("./text.component-057889c3.js"),$=require("./text.types-fef8ead3.js"),J=require("./textarea.component-70c48acd.js"),X=require("./textInput.component-06de8c5a.js"),Y=require("./timePicker.component-3cacde63.js"),Z=require("./timeRange.component-6172c691.js"),ee=require("./useToast-11567fb0.js"),re=require("./tooltip.component-197bff7c.js"),oe=require("./withTheme-e33ed8bc.js"),te=require("./useTheme-8873c39f.js"),se=require("./theme.provider-ed62e7b9.js"),ae=require("./chakra-ui-skeleton.esm-739cf3ea.js"),pe=require("./chakra-ui-modal.esm-a00f2bce.js"),ie=require("./chakra-ui-layout.esm-6ee578f7.js"),ne=require("./chakra-ui-button.esm-bd065780.js"),ue=require("./chakra-ui-alert.esm-17eebb99.js"),xe=require("./chakra-ui-avatar.esm-eee70d3a.js"),de=require("./chakra-ui-checkbox.esm-4cded6a7.js"),ce=require("./chakra-ui-input.esm-5fd07056.js"),le=require("./chakra-ui-menu.esm-1ed98193.js"),me=require("./chakra-ui-popover.esm-1e836c11.js"),be=require("./chakra-ui-radio.esm-f310d451.js"),qe=require("./chakra-ui-select.esm-793cf4de.js"),je=require("./chakra-ui-tabs.esm-e6372403.js"),Ce=require("./chakra-ui-textarea.esm-23fad4cd.js"),he=require("./chakra-ui-form-control.esm-6d25b1a4.js"),ve=require("./chakra-ui-media-query.esm-6217de7e.js"),ke=require("./chakra-ui-image.esm-66324087.js"),Me=require("./chakra-ui-system.esm-c70df670.js"),Te=require("./chakra-ui-portal.esm-bbcb5d1d.js"),fe=require("./chakra-ui-hooks.esm-21b313f3.js");require("./tslib.es6-d6f17add.js"),require("react"),require("./withFormControl-47cc4bf3.js"),require("./index-eb213f75.js"),require("./withTruncation-60a6b552.js"),require("./icons/index.js"),require("./useIconTextSizeMap-301c4f35.js"),require("./menu.context-bbda65db.js"),require("./menu.config-14739188.js"),require("./sortableItem.context-5bba7c97.js"),require("./core.esm-3a85aed4.js"),require("react-dom"),require("./chakra-ui-icon.esm-9c49b31b.js"),require("./chakra-ui-theme.esm-d6d72df5.js"),require("./index-8fecff45.js"),require("./index-5a9be08d.js"),require("./motion-7de675ca.js"),require("./chakra-ui-popper.esm-c15ff4a5.js"),require("./chakra-ui-visually-hidden.esm-b758df74.js"),require("./use-animation-state-5054a9f7.esm-c89cafc4.js"),require("./chakra-ui-react.esm-f4206977.js"),require("./zIndeces-10b89ae1.js"),require("./borders.config-90d19902.js"),require("./color.record-134d7650.js"),require("./shadows.config-9e24e611.js"),require("./inheritsLoose-490721fe.js"),require("./chakra-ui-clickable.esm-4394877f.js"),exports.Alert=e.Alert,exports.Avatar=r.Avatar,exports.avatarBadePositions=o.avatarBadePositions,exports.avatarSizes=o.avatarSizes,exports.avatarTypes=o.avatarTypes,exports.avatarVariants=o.avatarVariants,exports.AvatarGroup=t.AvatarGroup,exports.Button=s.Button,exports.buttonSizes=a.buttonSizes,exports.buttonVariants=a.buttonVariants,exports.Card=p.Card,exports.CardPaddingMap=p.CardPaddingMap,exports.cardSizes=p.cardSizes,exports.Checkbox=i.WrappedCheckbox,exports.CheckboxGroup=n.WrappedCheckboxGroup,Object.defineProperty(exports,"DateFormats",{enumerable:!0,get:function(){return u.DateFormats}}),exports.DatePicker=u.DatePicker,exports.Heading=x.WrappedHeading,exports.headingSizes=d.headingSizes,exports.Icon=c.Icon,exports.IconSizeMap=c.IconSizeMap,exports.iconSizes=c.iconSizes,exports.Link=l.Link,exports.Logo=m.Logo,exports.MenuButton=b.MenuButton,exports.MenuContainer=q.MenuContainer,exports.MenuItem=j.MenuItem,exports.MenuList=C.MenuList,exports.Menu=h.Menu,exports.ModalBody=v.ModalBody,exports.ModalCloseButton=k.ModalCloseButton,exports.ModalFooter=M.ModalFooter,exports.ModalFooterButtons=T.ModalFooterButtons,exports.ModalHeader=f.ModalHeader,exports.Modal=g.Modal,exports.NotificationCounter=S.NotificationCounter,Object.defineProperty(exports,"NotificationCounterVariant",{enumerable:!0,get:function(){return S.NotificationCounterVariant}}),exports.Picture=I.Picture,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=y.PopoverHeader,exports.Popover=B.Popover,exports.popoverPlacements=D.popoverPlacements,exports.popoverSizes=D.popoverSizes,exports.popoverTriggerTypes=D.popoverTriggerTypes,exports.popoverVariants=D.popoverVariants,exports.Radio=L.Radio,exports.RadioGroup=F.WrappedRadioGroup,exports.RatingDot=A.RatingDot,exports.RatingDots=G.RatingDots,exports.Select=H.WrappedSelect,exports.DragHandle=w.DragHandle,exports.SortableItem=z.SortableItem,exports.SortableOverlay=O.SortableOverlay,exports.SortableList=R.SortableList,exports.Spinner=N.Spinner,exports.spinnerSizes=W.spinnerSizes,exports.Switch=V.WrappedSwitch,exports.Tab=E.Tab,exports.Tabs=K.Tabs,exports.TabsLayout=Q.TabsLayout,exports.Tag=U.Tag,exports.closeButtonDisplays=U.closeButtonDisplays,exports.tagSizes=U.tagSizes,exports.Text=_.WrappedText,exports.textSizes=$.textSizes,exports.Textarea=J.WrappedTextArea,exports.TextInput=X.WrappedTextInput,Object.defineProperty(exports,"Meridiem",{enumerable:!0,get:function(){return Y.Meridiem}}),exports.TimePicker=Y.TimePicker,exports.TimeRange=Z.TimeRange,exports.useToast=ee.useToast,exports.Tooltip=re.Tooltip,exports.withDarkMode=oe.withDarkMode,exports.withTheme=oe.withTheme,exports.useTheme=te.useTheme,exports.KibbleThemeProvider=se.KibbleThemeProvider,exports.theme=se.theme,exports.Accordion=ae.Accordion,exports.AccordionButton=ae.AccordionButton,exports.AccordionIcon=ae.AccordionIcon,exports.AccordionItem=ae.AccordionItem,exports.AccordionPanel=ae.AccordionPanel,exports.NumberDecrementStepper=ae.NumberDecrementStepper,exports.NumberIncrementStepper=ae.NumberIncrementStepper,exports.NumberInput=ae.NumberInput,exports.NumberInputField=ae.NumberInputField,exports.NumberInputStepper=ae.NumberInputStepper,exports.PinInput=ae.PinInput,exports.PinInputField=ae.PinInputField,exports.Progress=ae.Progress,exports.Skeleton=ae.Skeleton,exports.SkeletonText=ae.SkeletonText,exports.Table=ae.Table,exports.TableCaption=ae.TableCaption,exports.TableContainer=ae.TableContainer,exports.Tbody=ae.Tbody,exports.Td=ae.Td,exports.Tfoot=ae.Tfoot,exports.Th=ae.Th,exports.Thead=ae.Thead,exports.Tr=ae.Tr,exports.AlertDialog=pe.AlertDialog,exports.AlertDialogBody=pe.ModalBody,exports.AlertDialogContent=pe.AlertDialogContent,exports.AlertDialogFooter=pe.ModalFooter,exports.AlertDialogHeader=pe.ModalHeader,exports.AlertDialogOverlay=pe.ModalOverlay,exports.CModal=pe.Modal,exports.CModalBody=pe.ModalBody,exports.CModalCloseButton=pe.ModalCloseButton,exports.CModalFooter=pe.ModalFooter,exports.CModalHeader=pe.ModalHeader,exports.Collapse=pe.Collapse,exports.Drawer=pe.Drawer,exports.DrawerBody=pe.ModalBody,exports.DrawerCloseButton=pe.ModalCloseButton,exports.DrawerContent=pe.DrawerContent,exports.DrawerFooter=pe.ModalFooter,exports.DrawerHeader=pe.ModalHeader,exports.DrawerOverlay=pe.ModalOverlay,exports.ModalContent=pe.ModalContent,exports.ModalOverlay=pe.ModalOverlay,exports.Badge=ie.Badge,exports.Box=ie.Box,exports.Center=ie.Center,exports.Circle=ie.Circle,exports.Code=ie.Code,exports.Container=ie.Container,exports.Divider=ie.Divider,exports.Flex=ie.Flex,exports.Grid=ie.Grid,exports.GridItem=ie.GridItem,exports.HStack=ie.HStack,exports.LinkBox=ie.LinkBox,exports.LinkOverlay=ie.LinkOverlay,exports.List=ie.List,exports.ListItem=ie.ListItem,exports.OrderedList=ie.OrderedList,exports.SimpleGrid=ie.SimpleGrid,exports.Spacer=ie.Spacer,exports.Square=ie.Square,exports.Stack=ie.Stack,exports.UnorderedList=ie.UnorderedList,exports.VStack=ie.VStack,exports.Wrap=ie.Wrap,exports.WrapItem=ie.WrapItem,exports.ButtonGroup=ne.ButtonGroup,exports.CButton=ne.Button,exports.IconButton=ne.IconButton,exports.CAlert=ue.Alert,exports.CAvatar=xe.Avatar,exports.CCheckboxGroup=de.CheckboxGroup,exports.useCheckbox=de.useCheckbox,exports.useCheckboxGroup=de.useCheckboxGroup,exports.CInput=ce.Input,exports.InputGroup=ce.InputGroup,exports.InputLeftAddon=ce.InputLeftAddon,exports.InputLeftElement=ce.InputLeftElement,exports.InputRightElement=ce.InputRightElement,exports.CMenu=le.Menu,exports.CMenuButton=le.MenuButton,exports.CMenuItem=le.MenuItem,exports.CMenuList=le.MenuList,exports.MenuDivider=le.MenuDivider,exports.MenuGroup=le.MenuGroup,exports.MenuItemOption=le.MenuItemOption,exports.CPopover=me.Popover,exports.CPopoverBody=me.PopoverBody,exports.CPopoverFooter=me.PopoverFooter,exports.CPopoverHeader=me.PopoverHeader,exports.PopoverArrow=me.PopoverArrow,exports.PopoverContent=me.PopoverContent,exports.PopoverTrigger=me.PopoverTrigger,exports.usePopoverContext=me.usePopoverContext,exports.CRadioGroup=be.RadioGroup,exports.useRadio=be.useRadio,exports.useRadioGroup=be.useRadioGroup,exports.CSelect=qe.Select,exports.CTab=je.Tab,exports.CTabs=je.Tabs,exports.TabList=je.TabList,exports.TabPanel=je.TabPanel,exports.TabPanels=je.TabPanels,exports.CTextarea=Ce.Textarea,exports.FormControl=he.FormControl,exports.FormErrorMessage=he.FormErrorMessage,exports.FormHelperText=he.FormHelperText,exports.FormLabel=he.FormLabel,exports.Hide=ve.Hide,exports.Show=ve.Show,exports.useBreakpoint=ve.useBreakpoint,exports.useBreakpointValue=ve.useBreakpointValue,exports.useMediaQuery=ve.useMediaQuery,exports.Image=ke.Image$1,exports.keyframes=Me.keyframes,exports.useColorMode=Me.useColorMode,exports.Portal=Te.Portal,exports.useConst=fe.useConst,exports.useDisclosure=fe.useDisclosure,exports.useInterval=fe.useInterval,exports.useOutsideClick=fe.useOutsideClick;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./alert.component-ee6be388.js"),r=require("./avatar.component-b1718213.js"),o=require("./avatar.types-a87ebfb5.js"),t=require("./avatarGroup.component-07948ebe.js"),s=require("./button.component-8c8cd059.js"),a=require("./button.types-f42b599b.js"),p=require("./card.component-de5d4b2a.js"),i=require("./checkbox.component-c4ba125b.js"),n=require("./checkboxGroup.component-aba91132.js"),u=require("./datepicker.component-9f6b5f05.js"),d=require("./heading.component-e55f8364.js"),x=require("./heading.types-b6ca7d59.js"),c=require("./icon.component-100b924b.js"),l=require("./link.component-d28bdaea.js"),m=require("./logo.component-cea68030.js"),b=require("./menuButton.component-6cc24ebb.js"),q=require("./menuContainer.component-37bff630.js"),j=require("./menuItem.component-0566ea37.js"),C=require("./menuList.component-41f1f20d.js"),h=require("./menu.component-975ee4cd.js"),v=require("./modalBody.component-345aaa1b.js"),f=require("./modalCloseButton.component-59dd95d7.js"),k=require("./modalFooter.component-1c9fcc61.js"),M=require("./modalFooterButtons.component-7889340e.js"),T=require("./modalHeader.component-204451e0.js"),g=require("./modal.component-0d68beaa.js"),S=require("./notificationCounter.component-24f3f4ab.js"),I=require("./picture.component-19489bee.js"),P=require("./popoverFooter.component-3fef4223.js"),y=require("./popoverHeader.component-f4823e52.js"),B=require("./popover.component-b27da5a5.js"),D=require("./popover.types-bc105ea7.js"),L=require("./radio.component-2502a55b.js"),F=require("./radioGroup.component-ca8de307.js"),A=require("./ratingDot.component-01592415.js"),G=require("./ratingDots.component-f7677abd.js"),H=require("./select.component-cd4ed71f.js"),w=require("./dragHandle.component-e4a46a3d.js"),z=require("./sortableItem.component-3bdead95.js"),O=require("./sortableOverlay.component-39d84330.js"),R=require("./sortableList.component-2c36f685.js"),N=require("./spinner.component-19c70e5d.js"),W=require("./spinner.types-9d350e31.js"),V=require("./switch.component-5e876a7a.js"),E=require("./tab.component-9395a9e2.js"),K=require("./tabs.component-f7a37a9b.js"),Q=require("./tabsLayout.component-9b90c425.js"),U=require("./tag.types-f979ec63.js"),_=require("./text.component-057889c3.js"),$=require("./text.types-fef8ead3.js"),J=require("./textarea.component-70c48acd.js"),X=require("./textInput.component-06de8c5a.js"),Y=require("./timePicker.component-3cacde63.js"),Z=require("./timeRange.component-6172c691.js"),ee=require("./useToast-11567fb0.js"),re=require("./tooltip.component-197bff7c.js"),oe=require("./withTheme-e33ed8bc.js"),te=require("./useTheme-8873c39f.js"),se=require("./theme.provider-ed62e7b9.js"),ae=require("./chakra-ui-skeleton.esm-739cf3ea.js"),pe=require("./chakra-ui-modal.esm-a00f2bce.js"),ie=require("./chakra-ui-layout.esm-6ee578f7.js"),ne=require("./chakra-ui-button.esm-bd065780.js"),ue=require("./chakra-ui-alert.esm-17eebb99.js"),de=require("./chakra-ui-avatar.esm-eee70d3a.js"),xe=require("./chakra-ui-checkbox.esm-4cded6a7.js"),ce=require("./chakra-ui-input.esm-5fd07056.js"),le=require("./chakra-ui-menu.esm-1ed98193.js"),me=require("./chakra-ui-popover.esm-1e836c11.js"),be=require("./chakra-ui-radio.esm-f310d451.js"),qe=require("./chakra-ui-select.esm-793cf4de.js"),je=require("./chakra-ui-tabs.esm-e6372403.js"),Ce=require("./chakra-ui-textarea.esm-23fad4cd.js"),he=require("./chakra-ui-form-control.esm-6d25b1a4.js"),ve=require("./chakra-ui-media-query.esm-6217de7e.js"),fe=require("./chakra-ui-image.esm-66324087.js"),ke=require("./chakra-ui-system.esm-c70df670.js"),Me=require("./chakra-ui-portal.esm-bbcb5d1d.js"),Te=require("./chakra-ui-hooks.esm-21b313f3.js");require("./tslib.es6-d6f17add.js"),require("react"),require("./withFormControl-47cc4bf3.js"),require("./index-eb213f75.js"),require("./withTruncation-60a6b552.js"),require("./icons/index.js"),require("./useIconTextSizeMap-301c4f35.js"),require("./menu.context-bbda65db.js"),require("./menu.config-14739188.js"),require("./sortableItem.context-5bba7c97.js"),require("./core.esm-3a85aed4.js"),require("react-dom"),require("./chakra-ui-icon.esm-9c49b31b.js"),require("./chakra-ui-theme.esm-d6d72df5.js"),require("./index-8fecff45.js"),require("./index-5a9be08d.js"),require("./motion-7de675ca.js"),require("./chakra-ui-popper.esm-c15ff4a5.js"),require("./chakra-ui-visually-hidden.esm-b758df74.js"),require("./use-animation-state-5054a9f7.esm-c89cafc4.js"),require("./chakra-ui-react.esm-f4206977.js"),require("./zIndeces-10b89ae1.js"),require("./borders.config-90d19902.js"),require("./color.record-134d7650.js"),require("./shadows.config-9e24e611.js"),require("./inheritsLoose-490721fe.js"),require("./chakra-ui-clickable.esm-4394877f.js"),exports.Alert=e.Alert,exports.Avatar=r.Avatar,exports.avatarBadePositions=o.avatarBadePositions,exports.avatarSizes=o.avatarSizes,exports.avatarTypes=o.avatarTypes,exports.avatarVariants=o.avatarVariants,exports.AvatarGroup=t.AvatarGroup,exports.Button=s.Button,exports.buttonSizes=a.buttonSizes,exports.buttonVariants=a.buttonVariants,exports.Card=p.Card,exports.CardPaddingMap=p.CardPaddingMap,exports.cardSizes=p.cardSizes,exports.Checkbox=i.WrappedCheckbox,exports.CheckboxGroup=n.WrappedCheckboxGroup,Object.defineProperty(exports,"DateFormats",{enumerable:!0,get:function(){return u.DateFormats}}),exports.DatePicker=u.DatePicker,exports.Heading=d.WrappedHeading,exports.headingSizes=x.headingSizes,exports.Icon=c.Icon,exports.IconSizeMap=c.IconSizeMap,exports.iconSizes=c.iconSizes,exports.Link=l.Link,exports.Logo=m.Logo,exports.MenuButton=b.MenuButton,exports.MenuContainer=q.MenuContainer,exports.MenuItem=j.MenuItem,exports.MenuList=C.MenuList,exports.Menu=h.Menu,exports.ModalBody=v.ModalBody,exports.ModalCloseButton=f.ModalCloseButton,exports.ModalFooter=k.ModalFooter,exports.ModalFooterButtons=M.ModalFooterButtons,exports.ModalHeader=T.ModalHeader,exports.Modal=g.Modal,exports.NotificationCounter=S.NotificationCounter,Object.defineProperty(exports,"NotificationCounterVariant",{enumerable:!0,get:function(){return S.NotificationCounterVariant}}),exports.Picture=I.Picture,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=y.PopoverHeader,exports.Popover=B.Popover,exports.popoverPlacements=D.popoverPlacements,exports.popoverSizes=D.popoverSizes,exports.popoverTriggerTypes=D.popoverTriggerTypes,exports.popoverVariants=D.popoverVariants,exports.Radio=L.Radio,exports.RadioGroup=F.WrappedRadioGroup,exports.RatingDot=A.RatingDot,exports.RatingDots=G.RatingDots,exports.Select=H.WrappedSelect,exports.DragHandle=w.DragHandle,exports.SortableItem=z.SortableItem,exports.SortableOverlay=O.SortableOverlay,exports.SortableList=R.SortableList,exports.Spinner=N.Spinner,exports.spinnerSizes=W.spinnerSizes,exports.Switch=V.WrappedSwitch,exports.Tab=E.Tab,exports.Tabs=K.Tabs,exports.TabsLayout=Q.TabsLayout,exports.Tag=U.Tag,exports.closeButtonDisplays=U.closeButtonDisplays,exports.tagSizes=U.tagSizes,exports.Text=_.WrappedText,exports.textSizes=$.textSizes,exports.Textarea=J.WrappedTextArea,exports.TextInput=X.WrappedTextInput,Object.defineProperty(exports,"Meridiem",{enumerable:!0,get:function(){return Y.Meridiem}}),exports.TimePicker=Y.TimePicker,exports.TimeRange=Z.TimeRange,exports.useToast=ee.useToast,exports.Tooltip=re.Tooltip,exports.withDarkMode=oe.withDarkMode,exports.withTheme=oe.withTheme,exports.useTheme=te.useTheme,exports.KibbleThemeProvider=se.KibbleThemeProvider,exports.theme=se.theme,exports.Accordion=ae.Accordion,exports.AccordionButton=ae.AccordionButton,exports.AccordionIcon=ae.AccordionIcon,exports.AccordionItem=ae.AccordionItem,exports.AccordionPanel=ae.AccordionPanel,exports.NumberDecrementStepper=ae.NumberDecrementStepper,exports.NumberIncrementStepper=ae.NumberIncrementStepper,exports.NumberInput=ae.NumberInput,exports.NumberInputField=ae.NumberInputField,exports.NumberInputStepper=ae.NumberInputStepper,exports.PinInput=ae.PinInput,exports.PinInputField=ae.PinInputField,exports.Progress=ae.Progress,exports.Skeleton=ae.Skeleton,exports.SkeletonText=ae.SkeletonText,exports.Table=ae.Table,exports.TableCaption=ae.TableCaption,exports.TableContainer=ae.TableContainer,exports.Tbody=ae.Tbody,exports.Td=ae.Td,exports.Tfoot=ae.Tfoot,exports.Th=ae.Th,exports.Thead=ae.Thead,exports.Tr=ae.Tr,exports.AlertDialog=pe.AlertDialog,exports.AlertDialogBody=pe.ModalBody,exports.AlertDialogContent=pe.AlertDialogContent,exports.AlertDialogFooter=pe.ModalFooter,exports.AlertDialogHeader=pe.ModalHeader,exports.AlertDialogOverlay=pe.ModalOverlay,exports.CModal=pe.Modal,exports.CModalBody=pe.ModalBody,exports.CModalCloseButton=pe.ModalCloseButton,exports.CModalFooter=pe.ModalFooter,exports.CModalHeader=pe.ModalHeader,exports.Collapse=pe.Collapse,exports.Drawer=pe.Drawer,exports.DrawerBody=pe.ModalBody,exports.DrawerCloseButton=pe.ModalCloseButton,exports.DrawerContent=pe.DrawerContent,exports.DrawerFooter=pe.ModalFooter,exports.DrawerHeader=pe.ModalHeader,exports.DrawerOverlay=pe.ModalOverlay,exports.ModalContent=pe.ModalContent,exports.ModalOverlay=pe.ModalOverlay,exports.Badge=ie.Badge,exports.Box=ie.Box,exports.Center=ie.Center,exports.Circle=ie.Circle,exports.Code=ie.Code,exports.Container=ie.Container,exports.Divider=ie.Divider,exports.Flex=ie.Flex,exports.Grid=ie.Grid,exports.GridItem=ie.GridItem,exports.HStack=ie.HStack,exports.LinkBox=ie.LinkBox,exports.LinkOverlay=ie.LinkOverlay,exports.List=ie.List,exports.ListItem=ie.ListItem,exports.OrderedList=ie.OrderedList,exports.SimpleGrid=ie.SimpleGrid,exports.Spacer=ie.Spacer,exports.Square=ie.Square,exports.Stack=ie.Stack,exports.UnorderedList=ie.UnorderedList,exports.VStack=ie.VStack,exports.Wrap=ie.Wrap,exports.WrapItem=ie.WrapItem,exports.ButtonGroup=ne.ButtonGroup,exports.CButton=ne.Button,exports.IconButton=ne.IconButton,exports.CAlert=ue.Alert,exports.CAvatar=de.Avatar,exports.CCheckboxGroup=xe.CheckboxGroup,exports.useCheckbox=xe.useCheckbox,exports.useCheckboxGroup=xe.useCheckboxGroup,exports.CInput=ce.Input,exports.InputGroup=ce.InputGroup,exports.InputLeftAddon=ce.InputLeftAddon,exports.InputLeftElement=ce.InputLeftElement,exports.InputRightElement=ce.InputRightElement,exports.CMenu=le.Menu,exports.CMenuButton=le.MenuButton,exports.CMenuItem=le.MenuItem,exports.CMenuList=le.MenuList,exports.MenuDivider=le.MenuDivider,exports.MenuGroup=le.MenuGroup,exports.MenuItemOption=le.MenuItemOption,exports.CPopover=me.Popover,exports.CPopoverBody=me.PopoverBody,exports.CPopoverFooter=me.PopoverFooter,exports.CPopoverHeader=me.PopoverHeader,exports.PopoverArrow=me.PopoverArrow,exports.PopoverContent=me.PopoverContent,exports.PopoverTrigger=me.PopoverTrigger,exports.usePopoverContext=me.usePopoverContext,exports.CRadioGroup=be.RadioGroup,exports.useRadio=be.useRadio,exports.useRadioGroup=be.useRadioGroup,exports.CSelect=qe.Select,exports.CTab=je.Tab,exports.CTabs=je.Tabs,exports.TabList=je.TabList,exports.TabPanel=je.TabPanel,exports.TabPanels=je.TabPanels,exports.CTextarea=Ce.Textarea,exports.FormControl=he.FormControl,exports.FormErrorMessage=he.FormErrorMessage,exports.FormHelperText=he.FormHelperText,exports.FormLabel=he.FormLabel,exports.Hide=ve.Hide,exports.Show=ve.Show,exports.useBreakpoint=ve.useBreakpoint,exports.useBreakpointValue=ve.useBreakpointValue,exports.useMediaQuery=ve.useMediaQuery,exports.Image=fe.Image$1,exports.keyframes=ke.keyframes,exports.useColorMode=ke.useColorMode,exports.Portal=Me.Portal,exports.useConst=Te.useConst,exports.useDisclosure=Te.useDisclosure,exports.useInterval=Te.useInterval,exports.useOutsideClick=Te.useOutsideClick;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),n=require("./menuContainer.component-37bff630.js"),r=require("./menuButton.component-6cc24ebb.js"),u=require("./menuList.component-8259b8c6.js"),l=require("./menu.context-bbda65db.js"),s=require("./chakra-ui-portal.esm-bbcb5d1d.js"),a=require("./chakra-ui-menu.esm-1ed98193.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(t);exports.Menu=t=>{var{buttonProps:i,customTriggerElement:c,listProps:m,containerProps:d}=t,b=e.__rest(t,["buttonProps","customTriggerElement","listProps","containerProps"]);return o.default.createElement(l.MenuProvider,{menuItems:null==m?void 0:m.menuItems,isMultiSelect:null==m?void 0:m.isMultiSelect,onClose:null==d?void 0:d.onClose},o.default.createElement(n.MenuContainer,Object.assign({isLazy:(null==d?void 0:d.isLazy)||!0},d,b),c?o.default.createElement("customTriggerElement",{as:a.MenuButton}):o.default.createElement(r.MenuButton,Object.assign({},i)),o.default.createElement((({children:e})=>(null==m?void 0:m.shouldUsePortal)?o.default.createElement(s.Portal,null,e):o.default.createElement(o.default.Fragment,null,e)),null,o.default.createElement(u.MenuList,Object.assign({},m,{isMatchWidthSet:b.matchWidth,menuItems:null==m?void 0:m.menuItems})))))};
2
- //# sourceMappingURL=menu.component-2d02a5a8.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),n=require("./menuContainer.component-37bff630.js"),r=require("./menuButton.component-6cc24ebb.js"),u=require("./menuList.component-41f1f20d.js"),l=require("./menu.context-bbda65db.js"),s=require("./chakra-ui-portal.esm-bbcb5d1d.js"),a=require("./chakra-ui-menu.esm-1ed98193.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(t);exports.Menu=t=>{var{buttonProps:i,customTriggerElement:c,listProps:m,containerProps:d}=t,f=e.__rest(t,["buttonProps","customTriggerElement","listProps","containerProps"]);return o.default.createElement(l.MenuProvider,{menuItems:null==m?void 0:m.menuItems,isMultiSelect:null==m?void 0:m.isMultiSelect,onClose:null==d?void 0:d.onClose},o.default.createElement(n.MenuContainer,Object.assign({isLazy:(null==d?void 0:d.isLazy)||!0},d,f),c?o.default.createElement("customTriggerElement",{as:a.MenuButton}):o.default.createElement(r.MenuButton,Object.assign({},i)),o.default.createElement((({children:e})=>(null==m?void 0:m.shouldUsePortal)?o.default.createElement(s.Portal,null,e):o.default.createElement(o.default.Fragment,null,e)),null,o.default.createElement(u.MenuList,Object.assign({},m,{isMatchWidthSet:f.matchWidth,menuItems:null==m?void 0:m.menuItems})))))};
2
+ //# sourceMappingURL=menu.component-975ee4cd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menu.component-2d02a5a8.js","sources":["../src/components/Menu/menu.component.tsx"],"sourcesContent":["import React, { FunctionComponent, ReactNode } from 'react';\nimport { MenuProps as CMenuProps, MenuButton as CMenuButton, Portal as CPortal } from '@chakra-ui/react';\nimport { MenuContainer, MenuContainerProps } from './components/MenuContainer/menuContainer.component';\nimport { MenuButton, MenuButtonProps } from './components/MenuButton/menuButton.component';\nimport { MenuList, MenuListProps } from './components/MenuList/menuList.component';\nimport { MenuProvider } from './context/menu.context';\n\nexport interface KMenuProps {\n buttonProps?: MenuButtonProps;\n customTriggerElement?: FunctionComponent;\n listProps?: MenuListProps;\n containerProps?: MenuContainerProps;\n}\n\nexport type MenuProps = KMenuProps & Omit<CMenuProps, 'onClose' | 'children'>;\n\nexport const Menu = ({\n buttonProps,\n customTriggerElement,\n listProps,\n containerProps,\n ...props\n}: MenuProps): JSX.Element => {\n const MenuListContainer = ({ children }: { children: ReactNode }): JSX.Element => {\n return listProps?.shouldUsePortal ? <CPortal>{children}</CPortal> : <>{children}</>;\n };\n\n return (\n <MenuProvider\n menuItems={listProps?.menuItems}\n isMultiSelect={listProps?.isMultiSelect}\n onClose={containerProps?.onClose}\n >\n <MenuContainer isLazy={containerProps?.isLazy || true} {...containerProps} {...props}>\n {customTriggerElement ? (\n // @ts-ignore\n <customTriggerElement as={CMenuButton} />\n ) : (\n <MenuButton {...buttonProps} />\n )}\n <MenuListContainer>\n <MenuList {...listProps} isMatchWidthSet={props.matchWidth} menuItems={listProps?.menuItems} />\n </MenuListContainer>\n </MenuContainer>\n </MenuProvider>\n );\n};\n"],"names":["_a","buttonProps","customTriggerElement","listProps","containerProps","props","__rest","React","createElement","MenuProvider","menuItems","isMultiSelect","onClose","MenuContainer","Object","assign","isLazy","as","CMenuButton","MenuButton","children","shouldUsePortal","CPortal","Fragment","MenuList","isMatchWidthSet","matchWidth"],"mappings":"gcAgBqBA,IAAA,IAAAC,YACnBA,EAAWC,qBACXA,EAAoBC,UACpBA,EAASC,eACTA,GAAcJ,EACXK,EALgBC,EAAAA,OAAAN,EAAA,CAAA,cAAA,uBAAA,YAAA,mBAWnB,OACEO,EAAAA,QAAAC,cAACC,EAAAA,aAAY,CACXC,UAAWP,MAAAA,OAAA,EAAAA,EAAWO,UACtBC,cAAeR,MAAAA,OAAS,EAATA,EAAWQ,cAC1BC,QAASR,MAAAA,OAAA,EAAAA,EAAgBQ,SAEzBL,UAAAC,cAACK,EAAAA,cAAcC,OAAAC,OAAA,CAAAC,QAAQZ,MAAAA,OAAA,EAAAA,EAAgBY,UAAU,GAAUZ,EAAoBC,GAC5EH,EAECK,EAAA,QAAAC,cAAA,uBAAA,CAAsBS,GAAIC,EAAAA,aAE1BX,EAAAA,QAACC,cAAAW,EAAAA,WAAeL,OAAAC,OAAA,GAAAd,IAElBM,UAAAC,eAjBoB,EAAGY,SAAAA,MACpBjB,MAAAA,SAAAA,EAAWkB,iBAAkBd,wBAACe,SAAO,KAAEF,GAAsBb,EAAA,QAAAC,cAAAD,EAAAA,QAAAgB,SAAA,KAAGH,IAgBjD,KAChBb,EAAAA,QAACC,cAAAgB,WAAaV,OAAAC,OAAA,GAAAZ,EAAW,CAAAsB,gBAAiBpB,EAAMqB,WAAYhB,UAAWP,MAAAA,OAAA,EAAAA,EAAWO"}
1
+ {"version":3,"file":"menu.component-975ee4cd.js","sources":["../src/components/Menu/menu.component.tsx"],"sourcesContent":["import React, { FunctionComponent, ReactNode } from 'react';\nimport { MenuProps as CMenuProps, MenuButton as CMenuButton, Portal as CPortal } from '@chakra-ui/react';\nimport { MenuContainer, MenuContainerProps } from './components/MenuContainer/menuContainer.component';\nimport { MenuButton, MenuButtonProps } from './components/MenuButton/menuButton.component';\nimport { MenuList, MenuListProps } from './components/MenuList/menuList.component';\nimport { MenuProvider } from './context/menu.context';\n\nexport interface KMenuProps {\n buttonProps?: MenuButtonProps;\n customTriggerElement?: FunctionComponent;\n listProps?: MenuListProps;\n containerProps?: MenuContainerProps;\n}\n\nexport type MenuProps = KMenuProps & Omit<CMenuProps, 'onClose' | 'children'>;\n\nexport const Menu = ({\n buttonProps,\n customTriggerElement,\n listProps,\n containerProps,\n ...props\n}: MenuProps): JSX.Element => {\n const MenuListContainer = ({ children }: { children: ReactNode }): JSX.Element => {\n return listProps?.shouldUsePortal ? <CPortal>{children}</CPortal> : <>{children}</>;\n };\n\n return (\n <MenuProvider\n menuItems={listProps?.menuItems}\n isMultiSelect={listProps?.isMultiSelect}\n onClose={containerProps?.onClose}\n >\n <MenuContainer isLazy={containerProps?.isLazy || true} {...containerProps} {...props}>\n {customTriggerElement ? (\n // @ts-ignore\n <customTriggerElement as={CMenuButton} />\n ) : (\n <MenuButton {...buttonProps} />\n )}\n <MenuListContainer>\n <MenuList {...listProps} isMatchWidthSet={props.matchWidth} menuItems={listProps?.menuItems} />\n </MenuListContainer>\n </MenuContainer>\n </MenuProvider>\n );\n};\n"],"names":["_a","buttonProps","customTriggerElement","listProps","containerProps","props","__rest","React","createElement","MenuProvider","menuItems","isMultiSelect","onClose","MenuContainer","Object","assign","isLazy","as","CMenuButton","MenuButton","children","shouldUsePortal","CPortal","Fragment","MenuList","isMatchWidthSet","matchWidth"],"mappings":"gcAgBqBA,IAAA,IAAAC,YACnBA,EAAWC,qBACXA,EAAoBC,UACpBA,EAASC,eACTA,GAAcJ,EACXK,EALgBC,EAAAA,OAAAN,EAAA,CAAA,cAAA,uBAAA,YAAA,mBAWnB,OACEO,EAAAA,QAAAC,cAACC,EAAAA,aAAY,CACXC,UAAWP,MAAAA,OAAA,EAAAA,EAAWO,UACtBC,cAAeR,MAAAA,OAAS,EAATA,EAAWQ,cAC1BC,QAASR,MAAAA,OAAA,EAAAA,EAAgBQ,SAEzBL,UAAAC,cAACK,EAAAA,cAAcC,OAAAC,OAAA,CAAAC,QAAQZ,MAAAA,OAAA,EAAAA,EAAgBY,UAAU,GAAUZ,EAAoBC,GAC5EH,EAECK,EAAA,QAAAC,cAAA,uBAAA,CAAsBS,GAAIC,EAAAA,aAE1BX,EAAAA,QAACC,cAAAW,EAAAA,WAAeL,OAAAC,OAAA,GAAAd,IAElBM,UAAAC,eAjBoB,EAAGY,SAAAA,MACpBjB,MAAAA,SAAAA,EAAWkB,iBAAkBd,wBAACe,SAAO,KAAEF,GAAsBb,EAAA,QAAAC,cAAAD,EAAAA,QAAAgB,SAAA,KAAGH,IAgBjD,KAChBb,EAAAA,QAACC,cAAAgB,WAAaV,OAAAC,OAAA,GAAAZ,EAAW,CAAAsB,gBAAiBpB,EAAMqB,WAAYhB,UAAWP,MAAAA,OAAA,EAAAA,EAAWO"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),a=require("./menu.config-14739188.js"),l=require("./text.component-057889c3.js"),n=require("./checkbox.component-c4ba125b.js"),s=require("./chakra-ui-menu.esm-1ed98193.js"),i=require("./chakra-ui-layout.esm-6ee578f7.js");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=r(t);exports.MenuItem=r=>{var{canSelectAll:u,children:o,isMultiSelect:m,closeOnSelect:d=!m,groupLabel:f,handleKeyboardNavigation:b=(()=>{}),isDisabled:h,isPlaceholder:p,isSelected:x,itemIndex:I="0",label:g,leftElement:v,menuItemRefs:S,onSelect:_,shouldRetainSelection:E=!1,shouldTruncateText:M,value:k,variant:L}=r,j=e.__rest(r,["canSelectAll","children","isMultiSelect","closeOnSelect","groupLabel","handleKeyboardNavigation","isDisabled","isPlaceholder","isSelected","itemIndex","label","leftElement","menuItemRefs","onSelect","shouldRetainSelection","shouldTruncateText","value","variant"]);const{onClose:C}=s.useMenuState(),y=t.useCallback((e=>{e.stopPropagation(),h||(k&&_&&_({label:g,leftElement:v,value:k}),d&&C())}),[k,_,C,d,h,g,v]),N=t.useMemo((()=>L||(x&&E&&!m?"interactive":"default")),[x,E,m,L]);return c.default.createElement(i.Box,Object.assign({},a.MenuItemConfig,{bg:x&&E&&!m?"background.primaryAlpha.hover":"",className:"MenuList__Item"+(x?" current":""),onClick:y,onKeyDown:e=>b(e,!1),tabIndex:parseInt(u?I+=2:I),ref:e=>S&&I?S.current[parseInt(I)]=e:null,disabled:h},j),o?c.default.createElement(i.Box,{onClick:y},o):c.default.createElement(i.HStack,{className:"MenuList__ItemContainer",justify:"baseline",spacing:3,minH:5,color:`text.${N}`},m&&c.default.createElement(i.Flex,{w:4,h:4,className:"MenuList__ItemCheckbox"},c.default.createElement(n.WrappedCheckbox,{size:"md",isChecked:x,onChange:y})),v&&c.default.createElement(i.Flex,{align:"center",justify:"center",className:"MenuList__ItemLeftElement"},v),"string"==typeof g?c.default.createElement(l.WrappedText,{size:"sm",className:"MenuList__ItemLabel",variant:N,isTruncated:M},g):c.default.createElement(i.Box,{className:"MenuList__ItemLabel",position:"relative",w:"100%"},g)))};
2
- //# sourceMappingURL=menuItem.component-59369cfc.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),a=require("./menu.config-14739188.js"),l=require("./text.component-057889c3.js"),n=require("./checkbox.component-c4ba125b.js"),i=require("./chakra-ui-menu.esm-1ed98193.js"),s=require("./chakra-ui-layout.esm-6ee578f7.js");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=r(t);exports.MenuItem=r=>{var{canSelectAll:u,children:o,isMultiSelect:m,closeOnSelect:d=!m,groupLabel:f,handleKeyboardNavigation:b=(()=>{}),isDisabled:h,isPlaceholder:p,isSelected:x,itemIndex:I="0",label:g,leftElement:v,menuItemRefs:S,onSelect:_,shouldRetainSelection:E=!1,shouldTruncateText:M,value:k,variant:L}=r,j=e.__rest(r,["canSelectAll","children","isMultiSelect","closeOnSelect","groupLabel","handleKeyboardNavigation","isDisabled","isPlaceholder","isSelected","itemIndex","label","leftElement","menuItemRefs","onSelect","shouldRetainSelection","shouldTruncateText","value","variant"]);const{onClose:C}=i.useMenuState(),y=t.useCallback((e=>{e.stopPropagation(),h||(k&&_&&_({label:g,leftElement:v,value:k}),d&&C())}),[k,_,C,d,h,g,v]),N=t.useMemo((()=>L||(x&&E&&!m?"interactive":"default")),[x,E,m,L]);return c.default.createElement(s.Box,Object.assign({},a.MenuItemConfig,{bg:x&&E&&!m?"background.primaryAlpha.hover":"",className:"MenuList__Item"+(x?" current":""),onClick:y,onKeyDown:e=>b(e,!1),tabIndex:parseInt(u?I+=2:I),ref:e=>S&&I?S.current[parseInt(I)]=e:null,disabled:h},j),o?c.default.createElement(s.Box,{onClick:y},o):c.default.createElement(s.HStack,{"data-testid":`menu-item-${g}`,className:"MenuList__ItemContainer",justify:"baseline",spacing:3,minH:5,color:`text.${N}`},m&&c.default.createElement(s.Flex,{w:4,h:4,className:"MenuList__ItemCheckbox"},c.default.createElement(n.WrappedCheckbox,{size:"md",isChecked:x,onChange:y})),v&&c.default.createElement(s.Flex,{align:"center",justify:"center",className:"MenuList__ItemLeftElement"},v),"string"==typeof g?c.default.createElement(l.WrappedText,{size:"sm",className:"MenuList__ItemLabel",variant:N,isTruncated:M},g):c.default.createElement(s.Box,{className:"MenuList__ItemLabel",position:"relative",w:"100%"},g)))};
2
+ //# sourceMappingURL=menuItem.component-0566ea37.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuItem.component-0566ea37.js","sources":["../src/components/Menu/components/MenuItem/menuItem.component.tsx"],"sourcesContent":["import React, {\n ReactNode,\n MutableRefObject,\n useCallback,\n MouseEvent,\n KeyboardEvent,\n useMemo,\n ReactElement,\n ChangeEvent,\n} from 'react';\nimport { Box, Flex, HStack, useMenuState } from '@chakra-ui/react';\nimport { MenuItemConfig } from '../../menu.config';\nimport { Text } from '../../../Text/text.component';\nimport { Checkbox } from 'components/Checkbox';\nimport { TypographyVariant } from 'shared/types';\n\nexport interface KMenuItemProps {\n children?: ReactNode;\n closeOnSelect?: boolean;\n groupLabel?: string;\n isDisabled?: boolean;\n isMultiSelect?: boolean;\n isPlaceholder?: boolean;\n isSelected?: boolean;\n label?: string | ReactElement;\n leftElement?: ReactNode;\n onSelect?: (selectedItem: KMenuItemProps) => void;\n shouldRetainSelection?: boolean;\n shouldTruncateText?: boolean;\n value?: string;\n variant?: TypographyVariant;\n}\n\n// These props are specific to the context passed in from the\n// MenuList and should not need to be passed in by the end user\nexport interface ControlledMenuItemProps {\n canSelectAll?: boolean;\n handleKeyboardNavigation?: (e: KeyboardEvent<HTMLDivElement>, elementIsInputField: boolean) => void;\n menuItemRefs?: MutableRefObject<HTMLDivElement[] | null[]>;\n itemIndex?: string;\n}\n\nexport type MenuItemProps = KMenuItemProps & ControlledMenuItemProps;\n\nexport const MenuItem = ({\n canSelectAll,\n children,\n isMultiSelect,\n closeOnSelect = !isMultiSelect,\n groupLabel,\n handleKeyboardNavigation = (): void => {},\n isDisabled,\n isPlaceholder,\n isSelected,\n itemIndex = '0',\n label,\n leftElement,\n menuItemRefs,\n onSelect,\n shouldRetainSelection = false,\n shouldTruncateText,\n value,\n variant,\n ...rest\n}: MenuItemProps): JSX.Element => {\n const { onClose } = useMenuState();\n\n const handleSelect = useCallback(\n (e: MouseEvent<HTMLDivElement> | ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n\n if (isDisabled) return;\n\n if (value && onSelect) {\n onSelect({\n label,\n leftElement,\n value,\n });\n }\n\n if (closeOnSelect) {\n onClose();\n }\n },\n [value, onSelect, onClose, closeOnSelect, isDisabled, label, leftElement],\n );\n\n const fontColor = useMemo(() => {\n if (variant) {\n return variant;\n }\n return isSelected && shouldRetainSelection && !isMultiSelect ? 'interactive' : 'default';\n }, [isSelected, shouldRetainSelection, isMultiSelect, variant]);\n\n return (\n <Box\n {...MenuItemConfig}\n bg={isSelected && shouldRetainSelection && !isMultiSelect ? 'background.primaryAlpha.hover' : ''}\n className={`MenuList__Item${isSelected ? ' current' : ''}`}\n onClick={handleSelect}\n onKeyDown={(e: KeyboardEvent<HTMLDivElement>): void => handleKeyboardNavigation(e, false)}\n tabIndex={parseInt(canSelectAll ? (itemIndex += 2) : itemIndex)}\n ref={(el): HTMLDivElement | null =>\n menuItemRefs && itemIndex ? (menuItemRefs.current[parseInt(itemIndex)] = el) : null\n }\n // @ts-ignore\n disabled={isDisabled}\n {...rest}\n >\n {children ? (\n <Box onClick={handleSelect}>{children}</Box>\n ) : (\n <HStack data-testid={`menu-item-${label}`} className=\"MenuList__ItemContainer\" justify=\"baseline\" spacing={3} minH={5} color={`text.${fontColor}`}>\n {isMultiSelect && (\n <Flex w={4} h={4} className=\"MenuList__ItemCheckbox\">\n <Checkbox size=\"md\" isChecked={isSelected} onChange={handleSelect} />\n </Flex>\n )}\n {leftElement && (\n <Flex align=\"center\" justify=\"center\" className=\"MenuList__ItemLeftElement\">\n {leftElement}\n </Flex>\n )}\n {typeof label === 'string' ? (\n <Text size=\"sm\" className=\"MenuList__ItemLabel\" variant={fontColor} isTruncated={shouldTruncateText}>\n {label}\n </Text>\n ) : (\n <Box className=\"MenuList__ItemLabel\" position=\"relative\" w=\"100%\">\n {label}\n </Box>\n )}\n </HStack>\n )}\n </Box>\n );\n};\n"],"names":["_a","canSelectAll","children","isMultiSelect","closeOnSelect","groupLabel","handleKeyboardNavigation","isDisabled","isPlaceholder","isSelected","itemIndex","label","leftElement","menuItemRefs","onSelect","shouldRetainSelection","shouldTruncateText","value","variant","rest","__rest","onClose","useMenuState","handleSelect","useCallback","e","stopPropagation","fontColor","useMemo","React","Box","Object","assign","MenuItemConfig","bg","className","onClick","onKeyDown","tabIndex","parseInt","ref","el","current","disabled","createElement","HStack","justify","spacing","minH","color","Flex","w","h","Checkbox","size","isChecked","onChange","align","Text","WrappedText","isTruncated","position"],"mappings":"0YA4CyBA,QAAAC,aACvBA,EAAYC,SACZA,EAAQC,cACRA,EAAaC,cACbA,GAAiBD,EAAaE,WAC9BA,EAAUC,yBACVA,EAA2B,SAAcC,WACzCA,EAAUC,cACVA,EAAaC,WACbA,EAAUC,UACVA,EAAY,IAAGC,MACfA,EAAKC,YACLA,EAAWC,aACXA,EAAYC,SACZA,EAAQC,sBACRA,GAAwB,EAAKC,mBAC7BA,EAAkBC,MAClBA,EAAKC,QACLA,KACGC,EAnBoBC,SAAApB,EAAA,CAAA,eAAA,WAAA,gBAAA,gBAAA,aAAA,2BAAA,aAAA,gBAAA,aAAA,YAAA,QAAA,cAAA,eAAA,WAAA,wBAAA,qBAAA,QAAA,YAqBvB,MAAMqB,QAAEA,GAAYC,EAAAA,eAEdC,EAAeC,eAClBC,IACCA,EAAEC,kBAEEnB,IAEAU,GAASH,GACXA,EAAS,CACPH,MAAAA,EACAC,YAAAA,EACAK,MAAAA,IAIAb,GACFiB,OAGJ,CAACJ,EAAOH,EAAUO,EAASjB,EAAeG,EAAYI,EAAOC,IAGzDe,EAAYC,EAAAA,SAAQ,IACpBV,IAGGT,GAAcM,IAA0BZ,EAAgB,cAAgB,YAC9E,CAACM,EAAYM,EAAuBZ,EAAee,IAEtD,OACEW,wBAACC,EAAGA,IAAAC,OAAAC,OAAA,GACEC,iBACJ,CAAAC,GAAIzB,GAAcM,IAA0BZ,EAAgB,gCAAkC,GAC9FgC,UAAW,kBAAiB1B,EAAa,WAAa,IACtD2B,QAASb,EACTc,UAAYZ,GAA2CnB,EAAyBmB,GAAG,GACnFa,SAAUC,SAAStC,EAAgBS,GAAa,EAAKA,GACrD8B,IAAMC,GACJ5B,GAAgBH,EAAaG,EAAa6B,QAAQH,SAAS7B,IAAc+B,EAAM,KAGjFE,SAAUpC,GACNY,GAEHjB,EACC2B,EAAA,QAAAe,cAACd,EAAAA,IAAI,CAAAM,QAASb,GAAerB,GAE7B2B,EAAA,QAAAe,cAACC,SAAoB,CAAA,cAAA,aAAalC,IAASwB,UAAU,0BAA0BW,QAAQ,WAAWC,QAAS,EAAGC,KAAM,EAAGC,MAAO,QAAQtB,KACnIxB,GACC0B,EAAC,QAAAe,cAAAM,EAAAA,MAAKC,EAAG,EAAGC,EAAG,EAAGjB,UAAU,0BAC1BN,EAAAA,QAAAe,cAACS,kBAAQ,CAACC,KAAK,KAAKC,UAAW9C,EAAY+C,SAAUjC,KAGxDX,GACCiB,EAAAA,QAAAe,cAACM,EAAIA,KAAC,CAAAO,MAAM,SAASX,QAAQ,SAASX,UAAU,6BAC7CvB,GAGa,iBAAVD,EACNkB,EAAA,QAAAe,cAACc,EAAIC,YAAA,CAACL,KAAK,KAAKnB,UAAU,sBAAsBjB,QAASS,EAAWiC,YAAa5C,GAC9EL,GAGHkB,EAAA,QAAAe,cAACd,EAAGA,IAAA,CAACK,UAAU,sBAAsB0B,SAAS,WAAWV,EAAE,QACxDxC"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),l=require("./heading.component-e55f8364.js"),a=require("./text.component-057889c3.js"),n=require("./menuItem.component-59369cfc.js"),r=require("./textInput.component-06de8c5a.js"),s=require("./menu.context-bbda65db.js"),u=require("./chakra-ui-menu.esm-1ed98193.js"),o=require("./button.component-8c8cd059.js"),c=require("./chakra-ui-layout.esm-6ee578f7.js"),i=require("./spinner.component-19c70e5d.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=d(t);const f=({handleKeyboardNavigation:e,menuItems:l,onSearchCallback:a,searchInputRef:n,setFilteredMenuItems:o,placeholder:c="Search..."})=>{const{isOpen:i}=u.useMenuState(),{searchText:d,setSearchText:f}=s.useMenuContext(),p=t.useCallback((e=>{const t=e.target.value;if(f(t),a)a(e);else if(""!==t&&t){const e=l.filter((e=>{var l;const a="string"==typeof e.label?e.label:null===(l=e.label)||void 0===l?void 0:l.key;return null==a?void 0:a.toLowerCase().includes(t.toLowerCase())}));o(e)}else o(l)}),[l,a,o,f]);return t.useEffect((()=>{let e;return i&&(e=setTimeout((()=>{var e;null===(e=null==n?void 0:n.current)||void 0===e||e.focus()}),200)),()=>clearTimeout(e)}),[n,i]),m.default.createElement(r.WrappedTextInput,{className:"MenuList__SearchBar",placeholder:c,onChange:p,onKeyDown:t=>e(t,!0),size:"sm",ref:n,value:d,isClearable:!0,onClear:()=>{f(""),p({target:{value:""}})},formControlStyle:{mt:1}})},p=({groupName:e,handleToggleAllItems:t,hasSelectedItems:l,isGrouped:a})=>a?m.default.createElement(c.Box,{textAlign:"right",w:"50%",className:"MenuListItem__SelectAllButton"},l?m.default.createElement(o.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({groupName:e,clear:!0}),isDisabled:!l},"Clear all"):m.default.createElement(o.Button,{variant:"ghost",size:"xs",onClick:()=>t({groupName:e,clear:!1})},"Select all")):m.default.createElement(c.Box,{mt:"8px",className:"MenuList__SelectAllButtons"},m.default.createElement(c.Flex,{justifyContent:"space-between"},m.default.createElement(o.Button,{variant:"ghost",size:"xs",onClick:()=>t({clear:!1})},"Select all"),m.default.createElement(o.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({clear:!0}),isDisabled:!l},"Clear all")));exports.MenuList=r=>{var{canSelectAll:o=!1,canSelectGroups:d=!1,children:h,isGrouped:v=!1,isMatchWidthSet:S,isMultiSelect:x=!1,isSearchable:g=!1,onSearchCallback:b,isLoading:I=!1,menuItems:E,onSelect:C,onSelectAll:k,searchPlaceholder:M,shouldRetainSelection:y=!1,shouldTruncateText:N=!0,minW:w="240px",maxW:A,maxH:T="480px",shouldUsePortal:B=!1,emptyStateText:L="No results found"}=r,j=e.__rest(r,["canSelectAll","canSelectGroups","children","isGrouped","isMatchWidthSet","isMultiSelect","isSearchable","onSearchCallback","isLoading","menuItems","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","shouldUsePortal","emptyStateText"]);const{filteredMenuItems:_,setFilteredMenuItems:q,allMenuItems:G,groups:W,setGroups:z,focusedItemIndex:F,setFocusedItemIndex:R,searchInputRef:D,menuItemRefs:H}=s.useMenuContext(),P=t.useCallback((e=>{var t,l;if(!(null==H?void 0:H.current))return;const a=0===F,n=F===(null==H?void 0:H.current.length)-1;let r=-1;if("ArrowDown"===e)if(n){if(g)return null===(t=null==D?void 0:D.current)||void 0===t||t.focus(),void R(-1);r=0}else r=F+1;else if("ArrowUp"===e)if(a){if(g)return null===(l=null==D?void 0:D.current)||void 0===l||l.focus(),void R(-1);r=H.current.length-1}else r=F-1;const s=null==H?void 0:H.current[r];s?(null==s||s.focus(),R(r)):R(-1)}),[F,g,H,D,R]),U=t.useCallback(((e,t)=>{e.persist(),(null==H?void 0:H.current)&&("ArrowDown"!==e.key&&"Tab"!==e.key||P("ArrowDown"),"ArrowUp"===e.key&&P("ArrowUp"),"Enter"===e.key&&(e.preventDefault(),e.target.click()))}),[P,H]),K=t.useCallback(((e,t)=>{if(_&&G){const l=[..._],a=l.find((t=>t.value===e.value));x&&a&&(a.isSelected=!a.isSelected),q(l);const n=G.filter((e=>e.isSelected));C&&a&&C(a,n),t&&a&&t(a,n)}}),[G,_,x,C,q]),O=t.useCallback((({groupName:e,clear:t=!1})=>{if(_&&G){const l=[..._],a=[];l.forEach((l=>{e?e===l.groupLabel&&(l.isSelected=!t,l.value&&l.isSelected&&a.push(l.value)):(l.isSelected=!t,l.value&&l.isSelected&&a.push(l.value))})),q(l),k&&k(G.filter((e=>e.isSelected)))}}),[_,G,k,q]);t.useEffect((()=>{if(v){const e=[...new Set(null==_?void 0:_.map((e=>e.groupLabel)))];e.length&&z(e)}}),[_,v,z]);const $=t.useCallback(((e,t)=>e.isPlaceholder?m.default.createElement(m.default.Fragment,{key:e.value}):m.default.createElement(n.MenuItem,Object.assign({},e,{key:`${e.value}${t}`,canSelectAll:o,handleKeyboardNavigation:U,isMultiSelect:x,itemIndex:t.toString(),menuItemRefs:H,onSelect:t=>K(t,e.onSelect),shouldRetainSelection:y,shouldTruncateText:N}))),[U,K,x,H,y,N,o]);if(S||(A="320px"),h)return m.default.createElement(u.MenuList,Object.assign({},j),h);const J=!(null==_?void 0:_.length)||1===(null==_?void 0:_.length)&&!0===_[0].isPlaceholder;return m.default.createElement(u.MenuList,Object.assign({className:"MeuList"},j,{maxW:A||"unset",maxH:T,minW:w,overflow:"hidden auto",zIndex:"popover"}),(g||o&&x)&&m.default.createElement(c.Box,{className:"MenuList__Header",m:"0 12px 8px"},g&&m.default.createElement(f,{handleKeyboardNavigation:U,menuItems:E||[],searchInputRef:D,setFilteredMenuItems:q,placeholder:M,onSearchCallback:b}),o&&x&&m.default.createElement(p,{handleToggleAllItems:O,hasSelectedItems:Boolean(null==_?void 0:_.find((e=>e.isSelected))),isGrouped:!1})),m.default.createElement(c.Box,{className:"MenuList__Body",position:"relative"},J&&!I?m.default.createElement(c.Box,{textAlign:"center",display:"block",p:3},m.default.createElement(a.WrappedText,{size:"sm",variant:"subtle"},L)):v?null==W?void 0:W.map(((e,t)=>{const a=null==_?void 0:_.filter((t=>t.groupLabel===e));return m.default.createElement(c.Box,{className:"MenuList__Group",key:`${e||"noGroup"}-${t}`},e&&m.default.createElement(c.Flex,{minH:8,pt:2,pr:3,pb:1,pl:5,justify:"space-between",align:"center"},m.default.createElement(c.Box,{textAlign:"left",className:"MenuList__GroupTitle"},m.default.createElement(l.WrappedHeading,{size:"xs"},e)),x&&d&&m.default.createElement(p,{handleToggleAllItems:O,hasSelectedItems:Boolean(null==a?void 0:a.find((e=>e.isSelected))),isGrouped:!0,groupName:e})),null==a?void 0:a.map(((e,t)=>$(e,t))))})):null==_?void 0:_.map(((e,t)=>$(e,t))),I&&m.default.createElement(c.Box,{position:"absolute",w:"100%",h:"100%",top:"0",left:"0",bg:"background.alphaContrast.pressed"},m.default.createElement(c.Flex,{h:"100%",align:"center",justify:"center"},m.default.createElement(i.Spinner,null)))))};
2
- //# sourceMappingURL=menuList.component-8259b8c6.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),l=require("./heading.component-e55f8364.js"),a=require("./text.component-057889c3.js"),n=require("./menuItem.component-0566ea37.js"),r=require("./textInput.component-06de8c5a.js"),s=require("./menu.context-bbda65db.js"),u=require("./chakra-ui-menu.esm-1ed98193.js"),o=require("./button.component-8c8cd059.js"),c=require("./chakra-ui-layout.esm-6ee578f7.js"),i=require("./spinner.component-19c70e5d.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=d(t);const f=({handleKeyboardNavigation:e,menuItems:l,onSearchCallback:a,searchInputRef:n,setFilteredMenuItems:o,placeholder:c="Search..."})=>{const{isOpen:i}=u.useMenuState(),{searchText:d,setSearchText:f}=s.useMenuContext(),p=t.useCallback((e=>{const t=e.target.value;if(f(t),a)a(e);else if(""!==t&&t){const e=l.filter((e=>{var l;const a="string"==typeof e.label?e.label:null===(l=e.label)||void 0===l?void 0:l.key;return null==a?void 0:a.toLowerCase().includes(t.toLowerCase())}));o(e)}else o(l)}),[l,a,o,f]);return t.useEffect((()=>{let e;return i&&(e=setTimeout((()=>{var e;null===(e=null==n?void 0:n.current)||void 0===e||e.focus()}),200)),()=>clearTimeout(e)}),[n,i]),m.default.createElement(r.WrappedTextInput,{className:"MenuList__SearchBar",placeholder:c,onChange:p,onKeyDown:t=>e(t,!0),size:"sm",ref:n,value:d,isClearable:!0,onClear:()=>{f(""),p({target:{value:""}})},formControlStyle:{mt:1}})},p=({groupName:e,handleToggleAllItems:t,hasSelectedItems:l,isGrouped:a})=>a?m.default.createElement(c.Box,{textAlign:"right",w:"50%",className:"MenuListItem__SelectAllButton"},l?m.default.createElement(o.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({groupName:e,clear:!0}),isDisabled:!l},"Clear all"):m.default.createElement(o.Button,{variant:"ghost",size:"xs",onClick:()=>t({groupName:e,clear:!1})},"Select all")):m.default.createElement(c.Box,{mt:"8px",className:"MenuList__SelectAllButtons"},m.default.createElement(c.Flex,{justifyContent:"space-between"},m.default.createElement(o.Button,{variant:"ghost",size:"xs",onClick:()=>t({clear:!1})},"Select all"),m.default.createElement(o.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({clear:!0}),isDisabled:!l},"Clear all")));exports.MenuList=r=>{var{canSelectAll:o=!1,canSelectGroups:d=!1,children:h,isGrouped:v=!1,isMatchWidthSet:S,isMultiSelect:x=!1,isSearchable:g=!1,onSearchCallback:b,isLoading:I=!1,menuItems:E,onSelect:C,onSelectAll:k,searchPlaceholder:M,shouldRetainSelection:y=!1,shouldTruncateText:N=!0,minW:w="240px",maxW:A,maxH:T="480px",shouldUsePortal:B=!1,emptyStateText:L="No results found"}=r,j=e.__rest(r,["canSelectAll","canSelectGroups","children","isGrouped","isMatchWidthSet","isMultiSelect","isSearchable","onSearchCallback","isLoading","menuItems","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","shouldUsePortal","emptyStateText"]);const{filteredMenuItems:_,setFilteredMenuItems:q,allMenuItems:G,groups:W,setGroups:z,focusedItemIndex:F,setFocusedItemIndex:R,searchInputRef:D,menuItemRefs:H}=s.useMenuContext(),P=t.useCallback((e=>{var t,l;if(!(null==H?void 0:H.current))return;const a=0===F,n=F===(null==H?void 0:H.current.length)-1;let r=-1;if("ArrowDown"===e)if(n){if(g)return null===(t=null==D?void 0:D.current)||void 0===t||t.focus(),void R(-1);r=0}else r=F+1;else if("ArrowUp"===e)if(a){if(g)return null===(l=null==D?void 0:D.current)||void 0===l||l.focus(),void R(-1);r=H.current.length-1}else r=F-1;const s=null==H?void 0:H.current[r];s?(null==s||s.focus(),R(r)):R(-1)}),[F,g,H,D,R]),U=t.useCallback(((e,t)=>{e.persist(),(null==H?void 0:H.current)&&("ArrowDown"!==e.key&&"Tab"!==e.key||P("ArrowDown"),"ArrowUp"===e.key&&P("ArrowUp"),"Enter"===e.key&&(e.preventDefault(),e.target.click()))}),[P,H]),K=t.useCallback(((e,t)=>{if(_&&G){const l=[..._],a=l.find((t=>t.value===e.value));x&&a&&(a.isSelected=!a.isSelected),q(l);const n=G.filter((e=>e.isSelected));C&&a&&C(a,n),t&&a&&t(a,n)}}),[G,_,x,C,q]),O=t.useCallback((({groupName:e,clear:t=!1})=>{if(_&&G){const l=[..._],a=[];l.forEach((l=>{e?e===l.groupLabel&&(l.isSelected=!t,l.value&&l.isSelected&&a.push(l.value)):(l.isSelected=!t,l.value&&l.isSelected&&a.push(l.value))})),q(l),k&&k(G.filter((e=>e.isSelected)))}}),[_,G,k,q]);t.useEffect((()=>{if(v){const e=[...new Set(null==_?void 0:_.map((e=>e.groupLabel)))];e.length&&z(e)}}),[_,v,z]);const $=t.useCallback(((e,t)=>e.isPlaceholder?m.default.createElement(m.default.Fragment,{key:e.value}):m.default.createElement(n.MenuItem,Object.assign({},e,{key:`${e.value}${t}`,canSelectAll:o,handleKeyboardNavigation:U,isMultiSelect:x,itemIndex:t.toString(),menuItemRefs:H,onSelect:t=>K(t,e.onSelect),shouldRetainSelection:y,shouldTruncateText:N}))),[U,K,x,H,y,N,o]);if(S||(A="320px"),h)return m.default.createElement(u.MenuList,Object.assign({},j),h);const J=!(null==_?void 0:_.length)||1===(null==_?void 0:_.length)&&!0===_[0].isPlaceholder;return m.default.createElement(u.MenuList,Object.assign({className:"MeuList"},j,{maxW:A||"unset",maxH:T,minW:w,overflow:"hidden auto",zIndex:"popover"}),(g||o&&x)&&m.default.createElement(c.Box,{className:"MenuList__Header",m:"0 12px 8px"},g&&m.default.createElement(f,{handleKeyboardNavigation:U,menuItems:E||[],searchInputRef:D,setFilteredMenuItems:q,placeholder:M,onSearchCallback:b}),o&&x&&m.default.createElement(p,{handleToggleAllItems:O,hasSelectedItems:Boolean(null==_?void 0:_.find((e=>e.isSelected))),isGrouped:!1})),m.default.createElement(c.Box,{className:"MenuList__Body",position:"relative"},J&&!I?m.default.createElement(c.Box,{textAlign:"center",display:"block",p:3},m.default.createElement(a.WrappedText,{size:"sm",variant:"subtle"},L)):v?null==W?void 0:W.map(((e,t)=>{const a=null==_?void 0:_.filter((t=>t.groupLabel===e));return m.default.createElement(c.Box,{className:"MenuList__Group",key:`${e||"noGroup"}-${t}`},e&&m.default.createElement(c.Flex,{minH:8,pt:2,pr:3,pb:1,pl:5,justify:"space-between",align:"center"},m.default.createElement(c.Box,{textAlign:"left",className:"MenuList__GroupTitle"},m.default.createElement(l.WrappedHeading,{size:"xs"},e)),x&&d&&m.default.createElement(p,{handleToggleAllItems:O,hasSelectedItems:Boolean(null==a?void 0:a.find((e=>e.isSelected))),isGrouped:!0,groupName:e})),null==a?void 0:a.map(((e,t)=>$(e,t))))})):null==_?void 0:_.map(((e,t)=>$(e,t))),I&&m.default.createElement(c.Box,{position:"absolute",w:"100%",h:"100%",top:"0",left:"0",bg:"background.alphaContrast.pressed"},m.default.createElement(c.Flex,{h:"100%",align:"center",justify:"center"},m.default.createElement(i.Spinner,null)))))};
2
+ //# sourceMappingURL=menuList.component-41f1f20d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menuList.component-8259b8c6.js","sources":["../src/components/Menu/components/MenuSearchBar/menuSearchBar.component.tsx","../src/components/Menu/components/MenuSelectAllButtons/menuSelectAllButtons.component.tsx","../src/components/Menu/components/MenuList/menuList.component.tsx"],"sourcesContent":["import React, {\n Dispatch,\n SetStateAction,\n useCallback,\n KeyboardEvent,\n MutableRefObject,\n useEffect,\n ChangeEvent,\n} from 'react';\nimport { TextInput } from '../../../TextInput/textInput.component';\nimport { MenuItemProps } from '../MenuItem/menuItem.component';\nimport { useMenuState } from '@chakra-ui/react';\nimport { useMenuContext } from 'components/Menu/context/menu.context';\n\nexport interface MenuSearchBarProps {\n handleKeyboardNavigation: (e: KeyboardEvent<HTMLInputElement>, elementIsInputField: boolean) => void;\n menuItems: MenuItemProps[];\n onSearchCallback?: (e: ChangeEvent<HTMLInputElement>) => void;\n searchInputRef?: MutableRefObject<HTMLInputElement | null>;\n setFilteredMenuItems: Dispatch<SetStateAction<MenuItemProps[]>>;\n placeholder?: string;\n}\n\nexport const MenuSearchBar = ({\n handleKeyboardNavigation,\n menuItems,\n onSearchCallback,\n searchInputRef,\n setFilteredMenuItems,\n placeholder = 'Search...',\n}: MenuSearchBarProps): JSX.Element => {\n const { isOpen } = useMenuState();\n const { searchText, setSearchText } = useMenuContext();\n\n const handleSearch = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const searchInput = e.target.value;\n setSearchText(searchInput);\n\n if (onSearchCallback) {\n onSearchCallback(e);\n } else {\n if (searchInput === '' || !searchInput) {\n setFilteredMenuItems(menuItems);\n } else {\n const filterdItems = menuItems.filter((item) => {\n const labelText = typeof item.label === 'string' ? item.label : (item.label?.key as string);\n\n return labelText?.toLowerCase().includes(searchInput.toLowerCase());\n });\n setFilteredMenuItems(filterdItems);\n }\n }\n },\n [menuItems, onSearchCallback, setFilteredMenuItems, setSearchText],\n );\n\n useEffect(() => {\n let focusTimeout: NodeJS.Timeout;\n\n if (isOpen) {\n focusTimeout = setTimeout(() => {\n searchInputRef?.current?.focus();\n }, 200);\n }\n\n return (): void => clearTimeout(focusTimeout);\n }, [searchInputRef, isOpen]);\n\n return (\n <TextInput\n className=\"MenuList__SearchBar\"\n placeholder={placeholder}\n onChange={handleSearch}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>): void => handleKeyboardNavigation(e, true)}\n size=\"sm\"\n ref={searchInputRef}\n value={searchText}\n isClearable\n onClear={(): void => {\n setSearchText('');\n handleSearch({ target: { value: '' } } as ChangeEvent<HTMLInputElement>);\n }}\n formControlStyle={{ mt: 1 }}\n />\n );\n};\n","import React from 'react';\nimport { Box, Flex } from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\n\nexport interface MenuSelectAllButtonsProps {\n groupName?: string;\n handleToggleAllItems: ({ groupName, clear }: { groupName?: string; clear?: boolean }) => void;\n hasSelectedItems: boolean;\n isGrouped: boolean;\n}\n\nexport const MenuSelectAllButtons = ({\n groupName,\n handleToggleAllItems,\n hasSelectedItems,\n isGrouped,\n}: MenuSelectAllButtonsProps): JSX.Element => {\n if (isGrouped) {\n return (\n <Box textAlign=\"right\" w=\"50%\" className=\"MenuListItem__SelectAllButton\">\n {hasSelectedItems ? (\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n onClick={(): void => handleToggleAllItems({ groupName, clear: true })}\n isDisabled={!hasSelectedItems}\n >\n Clear all\n </Button>\n ) : (\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => handleToggleAllItems({ groupName, clear: false })}>\n Select all\n </Button>\n )}\n </Box>\n );\n }\n\n return (\n <Box mt=\"8px\" className=\"MenuList__SelectAllButtons\">\n <Flex justifyContent=\"space-between\">\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => handleToggleAllItems({ clear: false })}>\n Select all\n </Button>\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n onClick={(): void => handleToggleAllItems({ clear: true })}\n isDisabled={!hasSelectedItems}\n >\n Clear all\n </Button>\n </Flex>\n </Box>\n );\n};\n","import React, { useCallback, KeyboardEvent, useEffect, ChangeEvent } from 'react';\nimport { MenuList as CMenuList, MenuListProps as CMenuListProps, Box, Flex } from '@chakra-ui/react';\nimport { Heading } from '../../../Heading/heading.component';\nimport { Text } from '../../../Text/text.component';\nimport { MenuItem, MenuItemProps } from '../MenuItem/menuItem.component';\nimport { MenuSearchBar } from '../MenuSearchBar/menuSearchBar.component';\nimport { MenuSelectAllButtons } from '../MenuSelectAllButtons/menuSelectAllButtons.component';\nimport { useMenuContext } from '../../context/menu.context';\nimport { Spinner } from 'components/Spinner';\n\nexport interface KMenuListProps {\n canSelectAll?: boolean;\n canSelectGroups?: boolean;\n isGrouped?: boolean;\n isLoading?: boolean;\n isMatchWidthSet?: boolean;\n isMultiSelect?: boolean;\n isSearchable?: boolean;\n onSearchCallback?: (e: ChangeEvent<HTMLInputElement>) => void;\n menuItems?: MenuItemProps[];\n onSelect?:\n | ((selectedItem: MenuItemProps, allSelectedItems?: MenuItemProps[]) => void)\n | ((selectedItem: MenuItemProps, allSelectedItems?: MenuItemProps[]) => Promise<void>);\n onSelectAll?: ((selectedItems: MenuItemProps[]) => void) | ((selectedItems: MenuItemProps[]) => Promise<void>);\n searchPlaceholder?: string;\n shouldRetainSelection?: boolean;\n shouldTruncateText?: boolean;\n shouldUsePortal?: boolean;\n emptyStateText?: string;\n}\n\nexport type MenuListProps = KMenuListProps & Omit<CMenuListProps, 'onSelect'>;\n\nexport const MenuList = ({\n canSelectAll = false,\n canSelectGroups = false,\n children,\n isGrouped = false,\n isMatchWidthSet,\n isMultiSelect = false,\n isSearchable = false,\n onSearchCallback,\n isLoading = false,\n menuItems,\n onSelect,\n onSelectAll,\n searchPlaceholder,\n shouldRetainSelection = false,\n shouldTruncateText = true,\n minW = '240px',\n maxW,\n maxH = '480px',\n shouldUsePortal = false,\n emptyStateText = 'No results found',\n ...rest\n}: MenuListProps): JSX.Element => {\n const {\n filteredMenuItems,\n setFilteredMenuItems,\n allMenuItems,\n groups,\n setGroups,\n focusedItemIndex,\n setFocusedItemIndex,\n searchInputRef,\n menuItemRefs,\n } = useMenuContext();\n\n const focusNextListItem = useCallback(\n (direction) => {\n if (!menuItemRefs?.current) return;\n\n const isFirstOption = focusedItemIndex === 0;\n const isLastOption = focusedItemIndex === menuItemRefs?.current.length - 1;\n let newIndex = -1;\n\n if (direction === 'ArrowDown') {\n if (isLastOption) {\n if (isSearchable) {\n searchInputRef?.current?.focus();\n setFocusedItemIndex(-1);\n return;\n }\n\n newIndex = 0;\n } else {\n newIndex = focusedItemIndex + 1;\n }\n } else if (direction === 'ArrowUp') {\n if (isFirstOption) {\n if (isSearchable) {\n searchInputRef?.current?.focus();\n setFocusedItemIndex(-1);\n return;\n }\n\n newIndex = menuItemRefs.current.length - 1;\n } else {\n newIndex = focusedItemIndex - 1;\n }\n }\n\n const nextListItem = menuItemRefs?.current[newIndex];\n\n if (nextListItem) {\n nextListItem?.focus();\n setFocusedItemIndex(newIndex);\n } else {\n setFocusedItemIndex(-1);\n }\n },\n [focusedItemIndex, isSearchable, menuItemRefs, searchInputRef, setFocusedItemIndex],\n );\n\n const handleKeyboardNavigation = useCallback(\n (e: KeyboardEvent<HTMLInputElement | HTMLDivElement>, elementIsInputField): void => {\n e.persist();\n\n if (!menuItemRefs?.current) return;\n\n if (e.key === 'ArrowDown' || e.key === 'Tab') {\n focusNextListItem('ArrowDown');\n }\n\n if (e.key === 'ArrowUp') {\n focusNextListItem('ArrowUp');\n }\n\n if (e.key === 'Enter') {\n e.preventDefault();\n (e.target as HTMLElement).click();\n }\n },\n [focusNextListItem, menuItemRefs],\n );\n\n const handleToggleSingleItem = useCallback(\n (selectedValue: MenuItemProps, itemOnSelect) => {\n if (filteredMenuItems && allMenuItems) {\n const _filteredMenuItemsCopy = [...filteredMenuItems];\n const selectedItem = _filteredMenuItemsCopy.find((item) => item.value === selectedValue.value);\n\n if (isMultiSelect && selectedItem) {\n selectedItem.isSelected = !selectedItem.isSelected;\n }\n\n setFilteredMenuItems(_filteredMenuItemsCopy);\n\n const allSelectedItems = allMenuItems.filter((item) => item.isSelected);\n\n if (onSelect && selectedItem) {\n onSelect(selectedItem, allSelectedItems);\n }\n\n if (itemOnSelect && selectedItem) {\n itemOnSelect(selectedItem, allSelectedItems);\n }\n }\n },\n [allMenuItems, filteredMenuItems, isMultiSelect, onSelect, setFilteredMenuItems],\n );\n\n const handleToggleAllItems = useCallback(\n ({ groupName, clear = false }: { groupName?: string; clear?: boolean }) => {\n if (filteredMenuItems && allMenuItems) {\n const _filteredMenuItemsCopy = [...filteredMenuItems];\n const value: string[] = [];\n\n _filteredMenuItemsCopy.forEach((item) => {\n if (groupName) {\n if (groupName === item.groupLabel) {\n item.isSelected = !clear;\n\n if (item.value && item.isSelected) {\n value.push(item.value);\n }\n }\n } else {\n item.isSelected = !clear;\n\n if (item.value && item.isSelected) {\n value.push(item.value);\n }\n }\n });\n\n setFilteredMenuItems(_filteredMenuItemsCopy);\n\n if (onSelectAll) {\n onSelectAll(allMenuItems.filter((item) => item.isSelected));\n }\n }\n },\n [filteredMenuItems, allMenuItems, onSelectAll, setFilteredMenuItems],\n );\n\n useEffect(() => {\n if (isGrouped) {\n const groupNames = [...new Set(filteredMenuItems?.map((item) => item.groupLabel))];\n if (groupNames.length) {\n setGroups(groupNames);\n }\n }\n }, [filteredMenuItems, isGrouped, setGroups]);\n\n const getMenuItem = useCallback(\n (item: MenuItemProps, index: number) => {\n if (item.isPlaceholder) return <React.Fragment key={item.value}></React.Fragment>;\n\n return (\n <MenuItem\n {...item}\n key={`${item.value}${index}`}\n canSelectAll={canSelectAll}\n handleKeyboardNavigation={handleKeyboardNavigation}\n isMultiSelect={isMultiSelect}\n itemIndex={index.toString()}\n menuItemRefs={menuItemRefs}\n onSelect={(selectedItem: MenuItemProps): void => handleToggleSingleItem(selectedItem, item.onSelect)}\n shouldRetainSelection={shouldRetainSelection}\n shouldTruncateText={shouldTruncateText}\n />\n );\n },\n [\n handleKeyboardNavigation,\n handleToggleSingleItem,\n isMultiSelect,\n menuItemRefs,\n shouldRetainSelection,\n shouldTruncateText,\n canSelectAll,\n ],\n );\n\n if (!isMatchWidthSet) {\n maxW = '320px';\n }\n\n // Return default Chakra menu if user passes in custom child elements\n if (children) {\n return <CMenuList {...rest}>{children}</CMenuList>;\n }\n\n const shouldShowEmptyState =\n !filteredMenuItems?.length || (filteredMenuItems?.length === 1 && filteredMenuItems[0].isPlaceholder === true);\n\n return (\n <CMenuList\n className=\"MeuList\"\n {...rest}\n maxW={maxW || 'unset'}\n maxH={maxH}\n minW={minW}\n overflow=\"hidden auto\"\n zIndex=\"popover\"\n >\n {(isSearchable || (canSelectAll && isMultiSelect)) && (\n <Box className=\"MenuList__Header\" m=\"0 12px 8px\">\n {isSearchable && (\n <MenuSearchBar\n handleKeyboardNavigation={handleKeyboardNavigation}\n menuItems={menuItems || []}\n searchInputRef={searchInputRef}\n setFilteredMenuItems={setFilteredMenuItems}\n placeholder={searchPlaceholder}\n onSearchCallback={onSearchCallback}\n />\n )}\n {canSelectAll && isMultiSelect && (\n <MenuSelectAllButtons\n handleToggleAllItems={handleToggleAllItems}\n hasSelectedItems={Boolean(filteredMenuItems?.find((item) => item.isSelected))}\n isGrouped={false}\n />\n )}\n </Box>\n )}\n <Box className=\"MenuList__Body\" position=\"relative\">\n {shouldShowEmptyState && !isLoading ? (\n <Box textAlign=\"center\" display=\"block\" p={3}>\n <Text size=\"sm\" variant=\"subtle\">\n {emptyStateText}\n </Text>\n </Box>\n ) : isGrouped ? (\n groups?.map((groupName, index) => {\n const menuItems = filteredMenuItems?.filter((item) => item.groupLabel === groupName);\n return (\n <Box className=\"MenuList__Group\" key={`${groupName || 'noGroup'}-${index}`}>\n {groupName && (\n <Flex minH={8} pt={2} pr={3} pb={1} pl={5} justify=\"space-between\" align=\"center\">\n <Box textAlign=\"left\" className=\"MenuList__GroupTitle\">\n <Heading size=\"xs\">{groupName}</Heading>\n </Box>\n {isMultiSelect && canSelectGroups && (\n <MenuSelectAllButtons\n handleToggleAllItems={handleToggleAllItems}\n hasSelectedItems={Boolean(menuItems?.find((item) => item.isSelected))}\n isGrouped={true}\n groupName={groupName}\n />\n )}\n </Flex>\n )}\n {menuItems?.map((item: MenuItemProps, index: number) => {\n return getMenuItem(item, index);\n })}\n </Box>\n );\n })\n ) : (\n filteredMenuItems?.map((item: MenuItemProps, index: number) => {\n return getMenuItem(item, index);\n })\n )}\n {isLoading && (\n <Box position=\"absolute\" w=\"100%\" h=\"100%\" top=\"0\" left=\"0\" bg=\"background.alphaContrast.pressed\">\n <Flex h=\"100%\" align=\"center\" justify=\"center\">\n <Spinner />\n </Flex>\n </Box>\n )}\n </Box>\n </CMenuList>\n );\n};\n"],"names":["MenuSearchBar","handleKeyboardNavigation","menuItems","onSearchCallback","searchInputRef","setFilteredMenuItems","placeholder","isOpen","useMenuState","searchText","setSearchText","useMenuContext","handleSearch","useCallback","e","searchInput","target","value","filterdItems","filter","item","labelText","label","_a","key","toLowerCase","includes","useEffect","focusTimeout","setTimeout","current","focus","clearTimeout","React","TextInput","WrappedTextInput","className","onChange","onKeyDown","size","ref","isClearable","onClear","formControlStyle","mt","MenuSelectAllButtons","groupName","handleToggleAllItems","hasSelectedItems","isGrouped","Box","textAlign","w","createElement","Button","variant","iconName","onClick","clear","isDisabled","Flex","justifyContent","canSelectAll","canSelectGroups","children","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","shouldUsePortal","emptyStateText","rest","__rest","filteredMenuItems","allMenuItems","groups","setGroups","focusedItemIndex","setFocusedItemIndex","menuItemRefs","focusNextListItem","direction","isFirstOption","isLastOption","length","newIndex","_b","nextListItem","elementIsInputField","persist","preventDefault","click","handleToggleSingleItem","selectedValue","itemOnSelect","_filteredMenuItemsCopy","selectedItem","find","isSelected","allSelectedItems","forEach","groupLabel","push","groupNames","Set","map","getMenuItem","index","isPlaceholder","Fragment","MenuItem","Object","assign","itemIndex","toString","CMenuList","shouldShowEmptyState","overflow","zIndex","m","Boolean","position","display","p","Text","WrappedText","minH","pt","pr","pb","pl","justify","align","Heading","h","top","left","bg","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"menuList.component-41f1f20d.js","sources":["../src/components/Menu/components/MenuSearchBar/menuSearchBar.component.tsx","../src/components/Menu/components/MenuSelectAllButtons/menuSelectAllButtons.component.tsx","../src/components/Menu/components/MenuList/menuList.component.tsx"],"sourcesContent":["import React, {\n Dispatch,\n SetStateAction,\n useCallback,\n KeyboardEvent,\n MutableRefObject,\n useEffect,\n ChangeEvent,\n} from 'react';\nimport { TextInput } from '../../../TextInput/textInput.component';\nimport { MenuItemProps } from '../MenuItem/menuItem.component';\nimport { useMenuState } from '@chakra-ui/react';\nimport { useMenuContext } from 'components/Menu/context/menu.context';\n\nexport interface MenuSearchBarProps {\n handleKeyboardNavigation: (e: KeyboardEvent<HTMLInputElement>, elementIsInputField: boolean) => void;\n menuItems: MenuItemProps[];\n onSearchCallback?: (e: ChangeEvent<HTMLInputElement>) => void;\n searchInputRef?: MutableRefObject<HTMLInputElement | null>;\n setFilteredMenuItems: Dispatch<SetStateAction<MenuItemProps[]>>;\n placeholder?: string;\n}\n\nexport const MenuSearchBar = ({\n handleKeyboardNavigation,\n menuItems,\n onSearchCallback,\n searchInputRef,\n setFilteredMenuItems,\n placeholder = 'Search...',\n}: MenuSearchBarProps): JSX.Element => {\n const { isOpen } = useMenuState();\n const { searchText, setSearchText } = useMenuContext();\n\n const handleSearch = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const searchInput = e.target.value;\n setSearchText(searchInput);\n\n if (onSearchCallback) {\n onSearchCallback(e);\n } else {\n if (searchInput === '' || !searchInput) {\n setFilteredMenuItems(menuItems);\n } else {\n const filterdItems = menuItems.filter((item) => {\n const labelText = typeof item.label === 'string' ? item.label : (item.label?.key as string);\n\n return labelText?.toLowerCase().includes(searchInput.toLowerCase());\n });\n setFilteredMenuItems(filterdItems);\n }\n }\n },\n [menuItems, onSearchCallback, setFilteredMenuItems, setSearchText],\n );\n\n useEffect(() => {\n let focusTimeout: NodeJS.Timeout;\n\n if (isOpen) {\n focusTimeout = setTimeout(() => {\n searchInputRef?.current?.focus();\n }, 200);\n }\n\n return (): void => clearTimeout(focusTimeout);\n }, [searchInputRef, isOpen]);\n\n return (\n <TextInput\n className=\"MenuList__SearchBar\"\n placeholder={placeholder}\n onChange={handleSearch}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>): void => handleKeyboardNavigation(e, true)}\n size=\"sm\"\n ref={searchInputRef}\n value={searchText}\n isClearable\n onClear={(): void => {\n setSearchText('');\n handleSearch({ target: { value: '' } } as ChangeEvent<HTMLInputElement>);\n }}\n formControlStyle={{ mt: 1 }}\n />\n );\n};\n","import React from 'react';\nimport { Box, Flex } from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\n\nexport interface MenuSelectAllButtonsProps {\n groupName?: string;\n handleToggleAllItems: ({ groupName, clear }: { groupName?: string; clear?: boolean }) => void;\n hasSelectedItems: boolean;\n isGrouped: boolean;\n}\n\nexport const MenuSelectAllButtons = ({\n groupName,\n handleToggleAllItems,\n hasSelectedItems,\n isGrouped,\n}: MenuSelectAllButtonsProps): JSX.Element => {\n if (isGrouped) {\n return (\n <Box textAlign=\"right\" w=\"50%\" className=\"MenuListItem__SelectAllButton\">\n {hasSelectedItems ? (\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n onClick={(): void => handleToggleAllItems({ groupName, clear: true })}\n isDisabled={!hasSelectedItems}\n >\n Clear all\n </Button>\n ) : (\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => handleToggleAllItems({ groupName, clear: false })}>\n Select all\n </Button>\n )}\n </Box>\n );\n }\n\n return (\n <Box mt=\"8px\" className=\"MenuList__SelectAllButtons\">\n <Flex justifyContent=\"space-between\">\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => handleToggleAllItems({ clear: false })}>\n Select all\n </Button>\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n onClick={(): void => handleToggleAllItems({ clear: true })}\n isDisabled={!hasSelectedItems}\n >\n Clear all\n </Button>\n </Flex>\n </Box>\n );\n};\n","import React, { useCallback, KeyboardEvent, useEffect, ChangeEvent } from 'react';\nimport { MenuList as CMenuList, MenuListProps as CMenuListProps, Box, Flex } from '@chakra-ui/react';\nimport { Heading } from '../../../Heading/heading.component';\nimport { Text } from '../../../Text/text.component';\nimport { MenuItem, MenuItemProps } from '../MenuItem/menuItem.component';\nimport { MenuSearchBar } from '../MenuSearchBar/menuSearchBar.component';\nimport { MenuSelectAllButtons } from '../MenuSelectAllButtons/menuSelectAllButtons.component';\nimport { useMenuContext } from '../../context/menu.context';\nimport { Spinner } from 'components/Spinner';\n\nexport interface KMenuListProps {\n canSelectAll?: boolean;\n canSelectGroups?: boolean;\n isGrouped?: boolean;\n isLoading?: boolean;\n isMatchWidthSet?: boolean;\n isMultiSelect?: boolean;\n isSearchable?: boolean;\n onSearchCallback?: (e: ChangeEvent<HTMLInputElement>) => void;\n menuItems?: MenuItemProps[];\n onSelect?:\n | ((selectedItem: MenuItemProps, allSelectedItems?: MenuItemProps[]) => void)\n | ((selectedItem: MenuItemProps, allSelectedItems?: MenuItemProps[]) => Promise<void>);\n onSelectAll?: ((selectedItems: MenuItemProps[]) => void) | ((selectedItems: MenuItemProps[]) => Promise<void>);\n searchPlaceholder?: string;\n shouldRetainSelection?: boolean;\n shouldTruncateText?: boolean;\n shouldUsePortal?: boolean;\n emptyStateText?: string;\n}\n\nexport type MenuListProps = KMenuListProps & Omit<CMenuListProps, 'onSelect'>;\n\nexport const MenuList = ({\n canSelectAll = false,\n canSelectGroups = false,\n children,\n isGrouped = false,\n isMatchWidthSet,\n isMultiSelect = false,\n isSearchable = false,\n onSearchCallback,\n isLoading = false,\n menuItems,\n onSelect,\n onSelectAll,\n searchPlaceholder,\n shouldRetainSelection = false,\n shouldTruncateText = true,\n minW = '240px',\n maxW,\n maxH = '480px',\n shouldUsePortal = false,\n emptyStateText = 'No results found',\n ...rest\n}: MenuListProps): JSX.Element => {\n const {\n filteredMenuItems,\n setFilteredMenuItems,\n allMenuItems,\n groups,\n setGroups,\n focusedItemIndex,\n setFocusedItemIndex,\n searchInputRef,\n menuItemRefs,\n } = useMenuContext();\n\n const focusNextListItem = useCallback(\n (direction) => {\n if (!menuItemRefs?.current) return;\n\n const isFirstOption = focusedItemIndex === 0;\n const isLastOption = focusedItemIndex === menuItemRefs?.current.length - 1;\n let newIndex = -1;\n\n if (direction === 'ArrowDown') {\n if (isLastOption) {\n if (isSearchable) {\n searchInputRef?.current?.focus();\n setFocusedItemIndex(-1);\n return;\n }\n\n newIndex = 0;\n } else {\n newIndex = focusedItemIndex + 1;\n }\n } else if (direction === 'ArrowUp') {\n if (isFirstOption) {\n if (isSearchable) {\n searchInputRef?.current?.focus();\n setFocusedItemIndex(-1);\n return;\n }\n\n newIndex = menuItemRefs.current.length - 1;\n } else {\n newIndex = focusedItemIndex - 1;\n }\n }\n\n const nextListItem = menuItemRefs?.current[newIndex];\n\n if (nextListItem) {\n nextListItem?.focus();\n setFocusedItemIndex(newIndex);\n } else {\n setFocusedItemIndex(-1);\n }\n },\n [focusedItemIndex, isSearchable, menuItemRefs, searchInputRef, setFocusedItemIndex],\n );\n\n const handleKeyboardNavigation = useCallback(\n (e: KeyboardEvent<HTMLInputElement | HTMLDivElement>, elementIsInputField): void => {\n e.persist();\n\n if (!menuItemRefs?.current) return;\n\n if (e.key === 'ArrowDown' || e.key === 'Tab') {\n focusNextListItem('ArrowDown');\n }\n\n if (e.key === 'ArrowUp') {\n focusNextListItem('ArrowUp');\n }\n\n if (e.key === 'Enter') {\n e.preventDefault();\n (e.target as HTMLElement).click();\n }\n },\n [focusNextListItem, menuItemRefs],\n );\n\n const handleToggleSingleItem = useCallback(\n (selectedValue: MenuItemProps, itemOnSelect) => {\n if (filteredMenuItems && allMenuItems) {\n const _filteredMenuItemsCopy = [...filteredMenuItems];\n const selectedItem = _filteredMenuItemsCopy.find((item) => item.value === selectedValue.value);\n\n if (isMultiSelect && selectedItem) {\n selectedItem.isSelected = !selectedItem.isSelected;\n }\n\n setFilteredMenuItems(_filteredMenuItemsCopy);\n\n const allSelectedItems = allMenuItems.filter((item) => item.isSelected);\n\n if (onSelect && selectedItem) {\n onSelect(selectedItem, allSelectedItems);\n }\n\n if (itemOnSelect && selectedItem) {\n itemOnSelect(selectedItem, allSelectedItems);\n }\n }\n },\n [allMenuItems, filteredMenuItems, isMultiSelect, onSelect, setFilteredMenuItems],\n );\n\n const handleToggleAllItems = useCallback(\n ({ groupName, clear = false }: { groupName?: string; clear?: boolean }) => {\n if (filteredMenuItems && allMenuItems) {\n const _filteredMenuItemsCopy = [...filteredMenuItems];\n const value: string[] = [];\n\n _filteredMenuItemsCopy.forEach((item) => {\n if (groupName) {\n if (groupName === item.groupLabel) {\n item.isSelected = !clear;\n\n if (item.value && item.isSelected) {\n value.push(item.value);\n }\n }\n } else {\n item.isSelected = !clear;\n\n if (item.value && item.isSelected) {\n value.push(item.value);\n }\n }\n });\n\n setFilteredMenuItems(_filteredMenuItemsCopy);\n\n if (onSelectAll) {\n onSelectAll(allMenuItems.filter((item) => item.isSelected));\n }\n }\n },\n [filteredMenuItems, allMenuItems, onSelectAll, setFilteredMenuItems],\n );\n\n useEffect(() => {\n if (isGrouped) {\n const groupNames = [...new Set(filteredMenuItems?.map((item) => item.groupLabel))];\n if (groupNames.length) {\n setGroups(groupNames);\n }\n }\n }, [filteredMenuItems, isGrouped, setGroups]);\n\n const getMenuItem = useCallback(\n (item: MenuItemProps, index: number) => {\n if (item.isPlaceholder) return <React.Fragment key={item.value}></React.Fragment>;\n\n return (\n <MenuItem\n {...item}\n key={`${item.value}${index}`}\n canSelectAll={canSelectAll}\n handleKeyboardNavigation={handleKeyboardNavigation}\n isMultiSelect={isMultiSelect}\n itemIndex={index.toString()}\n menuItemRefs={menuItemRefs}\n onSelect={(selectedItem: MenuItemProps): void => handleToggleSingleItem(selectedItem, item.onSelect)}\n shouldRetainSelection={shouldRetainSelection}\n shouldTruncateText={shouldTruncateText}\n />\n );\n },\n [\n handleKeyboardNavigation,\n handleToggleSingleItem,\n isMultiSelect,\n menuItemRefs,\n shouldRetainSelection,\n shouldTruncateText,\n canSelectAll,\n ],\n );\n\n if (!isMatchWidthSet) {\n maxW = '320px';\n }\n\n // Return default Chakra menu if user passes in custom child elements\n if (children) {\n return <CMenuList {...rest}>{children}</CMenuList>;\n }\n\n const shouldShowEmptyState =\n !filteredMenuItems?.length || (filteredMenuItems?.length === 1 && filteredMenuItems[0].isPlaceholder === true);\n\n return (\n <CMenuList\n className=\"MeuList\"\n {...rest}\n maxW={maxW || 'unset'}\n maxH={maxH}\n minW={minW}\n overflow=\"hidden auto\"\n zIndex=\"popover\"\n >\n {(isSearchable || (canSelectAll && isMultiSelect)) && (\n <Box className=\"MenuList__Header\" m=\"0 12px 8px\">\n {isSearchable && (\n <MenuSearchBar\n handleKeyboardNavigation={handleKeyboardNavigation}\n menuItems={menuItems || []}\n searchInputRef={searchInputRef}\n setFilteredMenuItems={setFilteredMenuItems}\n placeholder={searchPlaceholder}\n onSearchCallback={onSearchCallback}\n />\n )}\n {canSelectAll && isMultiSelect && (\n <MenuSelectAllButtons\n handleToggleAllItems={handleToggleAllItems}\n hasSelectedItems={Boolean(filteredMenuItems?.find((item) => item.isSelected))}\n isGrouped={false}\n />\n )}\n </Box>\n )}\n <Box className=\"MenuList__Body\" position=\"relative\">\n {shouldShowEmptyState && !isLoading ? (\n <Box textAlign=\"center\" display=\"block\" p={3}>\n <Text size=\"sm\" variant=\"subtle\">\n {emptyStateText}\n </Text>\n </Box>\n ) : isGrouped ? (\n groups?.map((groupName, index) => {\n const menuItems = filteredMenuItems?.filter((item) => item.groupLabel === groupName);\n return (\n <Box className=\"MenuList__Group\" key={`${groupName || 'noGroup'}-${index}`}>\n {groupName && (\n <Flex minH={8} pt={2} pr={3} pb={1} pl={5} justify=\"space-between\" align=\"center\">\n <Box textAlign=\"left\" className=\"MenuList__GroupTitle\">\n <Heading size=\"xs\">{groupName}</Heading>\n </Box>\n {isMultiSelect && canSelectGroups && (\n <MenuSelectAllButtons\n handleToggleAllItems={handleToggleAllItems}\n hasSelectedItems={Boolean(menuItems?.find((item) => item.isSelected))}\n isGrouped={true}\n groupName={groupName}\n />\n )}\n </Flex>\n )}\n {menuItems?.map((item: MenuItemProps, index: number) => {\n return getMenuItem(item, index);\n })}\n </Box>\n );\n })\n ) : (\n filteredMenuItems?.map((item: MenuItemProps, index: number) => {\n return getMenuItem(item, index);\n })\n )}\n {isLoading && (\n <Box position=\"absolute\" w=\"100%\" h=\"100%\" top=\"0\" left=\"0\" bg=\"background.alphaContrast.pressed\">\n <Flex h=\"100%\" align=\"center\" justify=\"center\">\n <Spinner />\n </Flex>\n </Box>\n )}\n </Box>\n </CMenuList>\n );\n};\n"],"names":["MenuSearchBar","handleKeyboardNavigation","menuItems","onSearchCallback","searchInputRef","setFilteredMenuItems","placeholder","isOpen","useMenuState","searchText","setSearchText","useMenuContext","handleSearch","useCallback","e","searchInput","target","value","filterdItems","filter","item","labelText","label","_a","key","toLowerCase","includes","useEffect","focusTimeout","setTimeout","current","focus","clearTimeout","React","TextInput","WrappedTextInput","className","onChange","onKeyDown","size","ref","isClearable","onClear","formControlStyle","mt","MenuSelectAllButtons","groupName","handleToggleAllItems","hasSelectedItems","isGrouped","Box","textAlign","w","createElement","Button","variant","iconName","onClick","clear","isDisabled","Flex","justifyContent","canSelectAll","canSelectGroups","children","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","shouldUsePortal","emptyStateText","rest","__rest","filteredMenuItems","allMenuItems","groups","setGroups","focusedItemIndex","setFocusedItemIndex","menuItemRefs","focusNextListItem","direction","isFirstOption","isLastOption","length","newIndex","_b","nextListItem","elementIsInputField","persist","preventDefault","click","handleToggleSingleItem","selectedValue","itemOnSelect","_filteredMenuItemsCopy","selectedItem","find","isSelected","allSelectedItems","forEach","groupLabel","push","groupNames","Set","map","getMenuItem","index","isPlaceholder","Fragment","MenuItem","Object","assign","itemIndex","toString","CMenuList","shouldShowEmptyState","overflow","zIndex","m","Boolean","position","display","p","Text","WrappedText","minH","pt","pr","pb","pl","justify","align","Heading","h","top","left","bg","Spinner"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),n=require("./menuContainer.component-37bff630.js"),l=require("./withFormControl-47cc4bf3.js"),a=require("./menu.context-bbda65db.js"),r=require("./menuList.component-8259b8c6.js"),s=require("./text.component-057889c3.js"),i=require("./chakra-ui-layout.esm-6ee578f7.js"),c=require("./icon.component-100b924b.js"),o=require("./chakra-ui-select.esm-793cf4de.js"),u=require("./chakra-ui-menu.esm-1ed98193.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=d(t);const f=t=>{const{options:n}=t,l=e.__rest(t,["options"]);return m.default.createElement(r.MenuList,Object.assign({shouldRetainSelection:!0,menuItems:n,isMatchWidthSet:!0},l))},p=({selectedOption:e,defaultLeftElement:t,shouldTruncateText:n=!0})=>m.default.createElement(i.Flex,{"data-testid":"dropdown-container",className:"Select__Container",justify:"flex-start",align:"center",textAlign:"left",color:e.variant?`text.${e.variant}`:"text.default"},(null==e?void 0:e.leftElement)?m.default.createElement(i.Flex,{align:"center",className:"Select__LeftElement",pr:2},e.leftElement):t?m.default.createElement(i.Flex,{align:"center",className:"Select__LeftElement",pr:2},t):null,"string"==typeof e.label?m.default.createElement(s.WrappedText,{className:"Select__Text",isTruncated:n,variant:e.variant||"default"},e.label):e.label),v=l=>{var{defaultLeftElement:r,isFieldInline:s,listProps:i,options:d,placeholder:v,size:x="md",value:b,maxW:h="100%",isOnContrast:E,emptyStateText:S}=l,j=e.__rest(l,["defaultLeftElement","isFieldInline","listProps","options","placeholder","size","value","maxW","isOnContrast","emptyStateText"]);const g=E?"onContrast":"default",T=t.useRef(null),_=t.useMemo((()=>({label:v,value:"",variant:E?"placeholderOnContrast":"placeholder",leftElement:null,isSelected:!1,isPlaceholder:!0})),[v,E]),[O,q]=t.useState([]),C=t.useMemo((()=>{const e=O.find((e=>e.isSelected));return e||_}),[O,_]),y=t.useCallback((e=>{if(!O)return;const t=O.map((t=>Object.assign(Object.assign({},t),{isSelected:t.value===e.value})));q(t),(null==i?void 0:i.onSelect)&&i.onSelect(e)}),[O,i]),L=(null==i?void 0:i.shouldTruncateText)?{}:{height:"max-content",minH:10},M=t.useMemo((()=>{var e;return T.current?`${null===(e=null==T?void 0:T.current)||void 0===e?void 0:e.clientWidth}px`:"320px"}),[null==T?void 0:T.current]);return t.useEffect((()=>{const e=d.map((e=>Object.assign(Object.assign({},e),{isSelected:e.value===b})));q([...e,_])}),[d,_,b]),m.default.createElement(a.MenuProvider,{menuItems:O},m.default.createElement(n.MenuContainer,{matchWidth:!0,isLazy:!0},m.default.createElement(o.Select,Object.assign({icon:m.default.createElement(c.Icon,{name:"chevronDown",size:x}),as:u.MenuButton,ref:T,onClick:e=>e.stopPropagation(),type:"button",className:"Select__MenuButton",variant:g,maxW:h},L,j),m.default.createElement(p,{selectedOption:C,defaultLeftElement:r,shouldTruncateText:null==i?void 0:i.shouldTruncateText})),m.default.createElement(f,Object.assign({},i,{onSelect:y,options:O,maxW:M||h,emptyStateText:S}))))};v.displayName="Select";const x=l.withFormControl(v);exports.WrappedSelect=x;
2
- //# sourceMappingURL=select.component-e3d3c7a1.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),n=require("./menuContainer.component-37bff630.js"),l=require("./withFormControl-47cc4bf3.js"),a=require("./menu.context-bbda65db.js"),r=require("./menuList.component-41f1f20d.js"),s=require("./text.component-057889c3.js"),i=require("./chakra-ui-layout.esm-6ee578f7.js"),c=require("./icon.component-100b924b.js"),o=require("./chakra-ui-select.esm-793cf4de.js"),u=require("./chakra-ui-menu.esm-1ed98193.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=d(t);const f=t=>{const{options:n}=t,l=e.__rest(t,["options"]);return m.default.createElement(r.MenuList,Object.assign({shouldRetainSelection:!0,menuItems:n,isMatchWidthSet:!0},l))},p=({selectedOption:e,defaultLeftElement:t,shouldTruncateText:n=!0})=>m.default.createElement(i.Flex,{"data-testid":"dropdown-container",className:"Select__Container",justify:"flex-start",align:"center",textAlign:"left",color:e.variant?`text.${e.variant}`:"text.default"},(null==e?void 0:e.leftElement)?m.default.createElement(i.Flex,{align:"center",className:"Select__LeftElement",pr:2},e.leftElement):t?m.default.createElement(i.Flex,{align:"center",className:"Select__LeftElement",pr:2},t):null,"string"==typeof e.label?m.default.createElement(s.WrappedText,{className:"Select__Text",isTruncated:n,variant:e.variant||"default"},e.label):e.label),v=l=>{var{defaultLeftElement:r,isFieldInline:s,listProps:i,options:d,placeholder:v,size:x="md",value:h,maxW:b="100%",isOnContrast:E,emptyStateText:S}=l,j=e.__rest(l,["defaultLeftElement","isFieldInline","listProps","options","placeholder","size","value","maxW","isOnContrast","emptyStateText"]);const g=E?"onContrast":"default",T=t.useRef(null),_=t.useMemo((()=>({label:v,value:"",variant:E?"placeholderOnContrast":"placeholder",leftElement:null,isSelected:!1,isPlaceholder:!0})),[v,E]),[O,q]=t.useState([]),C=t.useMemo((()=>{const e=O.find((e=>e.isSelected));return e||_}),[O,_]),y=t.useCallback((e=>{if(!O)return;const t=O.map((t=>Object.assign(Object.assign({},t),{isSelected:t.value===e.value})));q(t),(null==i?void 0:i.onSelect)&&i.onSelect(e)}),[O,i]),L=(null==i?void 0:i.shouldTruncateText)?{}:{height:"max-content",minH:10},M=t.useMemo((()=>{var e;return T.current?`${null===(e=null==T?void 0:T.current)||void 0===e?void 0:e.clientWidth}px`:"320px"}),[null==T?void 0:T.current]);return t.useEffect((()=>{const e=d.map((e=>Object.assign(Object.assign({},e),{isSelected:e.value===h})));q([...e,_])}),[d,_,h]),m.default.createElement(a.MenuProvider,{menuItems:O},m.default.createElement(n.MenuContainer,{matchWidth:!0,isLazy:!0},m.default.createElement(o.Select,Object.assign({icon:m.default.createElement(c.Icon,{name:"chevronDown",size:x}),as:u.MenuButton,ref:T,onClick:e=>e.stopPropagation(),type:"button",className:"Select__MenuButton",variant:g,maxW:b},L,j),m.default.createElement(p,{selectedOption:C,defaultLeftElement:r,shouldTruncateText:null==i?void 0:i.shouldTruncateText})),m.default.createElement(f,Object.assign({},i,{onSelect:y,options:O,maxW:M||b,emptyStateText:S}))))};v.displayName="Select";const x=l.withFormControl(v);exports.WrappedSelect=x;
2
+ //# sourceMappingURL=select.component-cd4ed71f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"select.component-e3d3c7a1.js","sources":["../src/components/Select/components/SelectList/selectList.component.tsx","../src/components/Select/components/SelectContainer/selectContainer.component.tsx","../src/components/Select/select.component.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuList, KMenuListProps, MenuListProps } from '../../../Menu/components/MenuList/menuList.component';\nimport { SelectOptionProps } from '../SelectOption/selectOption.types';\n\nexport interface KSelectListProps\n extends Omit<\n KMenuListProps,\n | 'canSelectAll'\n | 'canSelectGroups'\n | 'isMultiSelect'\n | 'onSelectAll'\n | 'menuItems'\n | 'shouldRetainSelection'\n | 'isMatchWidthSet'\n | 'isLoading'\n > {\n options?: SelectOptionProps[];\n}\n\nexport type SelectListProps = KSelectListProps & MenuListProps;\n\nexport const SelectList = (props: SelectListProps): JSX.Element => {\n const { options, ...rest } = props;\n\n return <MenuList shouldRetainSelection={true} menuItems={options} isMatchWidthSet={true} {...rest} />;\n};\n","import React, { ReactNode } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { Text } from '../../../Text/text.component';\nimport { SelectOptionProps } from '../SelectOption/selectOption.types';\n\nexport interface SelectContainerProps {\n selectedOption: SelectOptionProps;\n defaultLeftElement: ReactNode;\n shouldTruncateText?: boolean;\n}\n\nexport const SelectContainer = ({\n selectedOption,\n defaultLeftElement,\n shouldTruncateText = true,\n}: SelectContainerProps): JSX.Element => {\n return (\n <Flex\n data-testid=\"dropdown-container\"\n className=\"Select__Container\"\n justify=\"flex-start\"\n align=\"center\"\n textAlign=\"left\"\n color={selectedOption.variant ? `text.${selectedOption.variant}` : 'text.default'}\n >\n {selectedOption?.leftElement ? (\n <Flex align=\"center\" className=\"Select__LeftElement\" pr={2}>\n {selectedOption.leftElement}\n </Flex>\n ) : defaultLeftElement ? (\n <Flex align=\"center\" className=\"Select__LeftElement\" pr={2}>\n {defaultLeftElement}\n </Flex>\n ) : null}\n {typeof selectedOption.label === 'string' ? (\n <Text className=\"Select__Text\" isTruncated={shouldTruncateText} variant={selectedOption.variant || 'default'}>\n {selectedOption.label}\n </Text>\n ) : (\n selectedOption.label\n )}\n </Flex>\n );\n};\n","import React, { useMemo, ReactNode, useRef, useState, useCallback, useEffect } from 'react';\nimport { Select as CSelect, SelectProps as CSelectProps, MenuButton } from '@chakra-ui/react';\nimport { MenuContainer } from '../Menu/components/MenuContainer/menuContainer.component';\nimport { WithFormControlProps, withFormControl } from 'shared/hocs/FormControl/withFormControl';\nimport { MenuProvider } from '../Menu/context/menu.context';\nimport { SelectList, SelectListProps } from './components/SelectList/selectList.component';\nimport { SelectContainer } from './components/SelectContainer/selectContainer.component';\nimport { Icon } from '../Icon/icon.component';\nimport { IconSize } from '../Icon/icon.types';\nimport { FormControlSize } from 'shared/types/formControl';\nimport { SelectOptionProps } from './components/SelectOption/selectOption.types';\n\nexport interface KSelectProps extends WithFormControlProps {\n defaultLeftElement?: ReactNode;\n listProps?: SelectListProps;\n options: SelectOptionProps[];\n size?: FormControlSize;\n isOnContrast?: boolean;\n placeholder?: string;\n emptyStateText?: string;\n}\n\nexport type SelectProps = KSelectProps & Omit<CSelectProps, 'onSelect'>;\n\nconst Select = ({\n defaultLeftElement,\n isFieldInline,\n listProps,\n options,\n placeholder,\n size = 'md',\n value,\n maxW = '100%',\n isOnContrast,\n emptyStateText,\n ...rest\n}: SelectProps): JSX.Element => {\n // TODO: Need to add full support for isOnContrast, currently menu list still renders white\n const _computedVariant = isOnContrast ? 'onContrast' : 'default';\n const selectRef = useRef<HTMLSelectElement>(null);\n const placeholderOption: SelectOptionProps = useMemo(\n () => ({\n label: placeholder,\n value: '',\n variant: isOnContrast ? 'placeholderOnContrast' : 'placeholder',\n leftElement: null,\n isSelected: false,\n isPlaceholder: true,\n }),\n [placeholder, isOnContrast],\n );\n\n const [allOptions, setAllOptions] = useState<SelectOptionProps[]>([]);\n\n const selectedOption: SelectOptionProps = useMemo(() => {\n const selectedItem = allOptions.find((option) => option.isSelected);\n\n return selectedItem ? selectedItem : placeholderOption;\n }, [allOptions, placeholderOption]);\n\n const handleSelect = useCallback(\n (selectedItem: SelectOptionProps) => {\n if (!allOptions) return;\n\n const updatedOptions = allOptions.map((option) => {\n return {\n ...option,\n isSelected: option.value === selectedItem.value,\n };\n });\n setAllOptions(updatedOptions);\n\n if (listProps?.onSelect) {\n listProps.onSelect(selectedItem);\n }\n },\n [allOptions, listProps],\n );\n\n // If the text is not being truncated it should grow to fit the content\n const flexibleHeightProps = !listProps?.shouldTruncateText ? { height: 'max-content', minH: 10 } : {};\n\n const selectWidth = useMemo(() => {\n if (!selectRef.current) {\n return '320px';\n }\n\n return `${selectRef?.current?.clientWidth}px`;\n\n // Disables the warning for not including unused dependency in the hook array. This dependency is needed to rerender the menu list with the correct width\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectRef?.current]);\n\n // Set default selected state\n useEffect(() => {\n const mappedOptions = options.map((option) => ({\n ...option,\n isSelected: option.value === value,\n }));\n\n setAllOptions([...mappedOptions, placeholderOption]);\n }, [options, placeholderOption, value]);\n\n return (\n <MenuProvider menuItems={allOptions}>\n <MenuContainer matchWidth={true} isLazy={true}>\n <CSelect\n icon={<Icon name=\"chevronDown\" size={size as IconSize} />}\n as={MenuButton}\n ref={selectRef}\n onClick={(event: React.MouseEvent): void => event.stopPropagation()}\n type=\"button\"\n className=\"Select__MenuButton\"\n variant={_computedVariant}\n maxW={maxW}\n {...flexibleHeightProps}\n {...rest}\n >\n <SelectContainer\n selectedOption={selectedOption}\n defaultLeftElement={defaultLeftElement}\n shouldTruncateText={listProps?.shouldTruncateText}\n />\n </CSelect>\n <SelectList\n {...listProps}\n onSelect={handleSelect}\n options={allOptions}\n maxW={selectWidth || maxW}\n emptyStateText={emptyStateText}\n />\n </MenuContainer>\n </MenuProvider>\n );\n};\n\nSelect.displayName = 'Select';\n\nconst WrappedSelect = withFormControl(Select);\n\nexport { WrappedSelect as Select };\n"],"names":["SelectList","props","options","rest","__rest","React","MenuList","Object","assign","shouldRetainSelection","menuItems","isMatchWidthSet","SelectContainer","selectedOption","defaultLeftElement","shouldTruncateText","createElement","Flex","className","justify","align","textAlign","color","variant","leftElement","pr","label","Text","isTruncated","Select","_a","isFieldInline","listProps","placeholder","size","value","maxW","isOnContrast","emptyStateText","_computedVariant","selectRef","useRef","placeholderOption","useMemo","isSelected","isPlaceholder","allOptions","setAllOptions","useState","selectedItem","find","option","handleSelect","useCallback","updatedOptions","map","onSelect","flexibleHeightProps","height","minH","selectWidth","current","clientWidth","useEffect","mappedOptions","MenuProvider","MenuContainer","matchWidth","isLazy","CSelect","icon","Icon","name","as","MenuButton","ref","onClick","event","stopPropagation","type","displayName","WrappedSelect","withFormControl"],"mappings":"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"}
1
+ {"version":3,"file":"select.component-cd4ed71f.js","sources":["../src/components/Select/components/SelectList/selectList.component.tsx","../src/components/Select/components/SelectContainer/selectContainer.component.tsx","../src/components/Select/select.component.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuList, KMenuListProps, MenuListProps } from '../../../Menu/components/MenuList/menuList.component';\nimport { SelectOptionProps } from '../SelectOption/selectOption.types';\n\nexport interface KSelectListProps\n extends Omit<\n KMenuListProps,\n | 'canSelectAll'\n | 'canSelectGroups'\n | 'isMultiSelect'\n | 'onSelectAll'\n | 'menuItems'\n | 'shouldRetainSelection'\n | 'isMatchWidthSet'\n | 'isLoading'\n > {\n options?: SelectOptionProps[];\n}\n\nexport type SelectListProps = KSelectListProps & MenuListProps;\n\nexport const SelectList = (props: SelectListProps): JSX.Element => {\n const { options, ...rest } = props;\n\n return <MenuList shouldRetainSelection={true} menuItems={options} isMatchWidthSet={true} {...rest} />;\n};\n","import React, { ReactNode } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { Text } from '../../../Text/text.component';\nimport { SelectOptionProps } from '../SelectOption/selectOption.types';\n\nexport interface SelectContainerProps {\n selectedOption: SelectOptionProps;\n defaultLeftElement: ReactNode;\n shouldTruncateText?: boolean;\n}\n\nexport const SelectContainer = ({\n selectedOption,\n defaultLeftElement,\n shouldTruncateText = true,\n}: SelectContainerProps): JSX.Element => {\n return (\n <Flex\n data-testid=\"dropdown-container\"\n className=\"Select__Container\"\n justify=\"flex-start\"\n align=\"center\"\n textAlign=\"left\"\n color={selectedOption.variant ? `text.${selectedOption.variant}` : 'text.default'}\n >\n {selectedOption?.leftElement ? (\n <Flex align=\"center\" className=\"Select__LeftElement\" pr={2}>\n {selectedOption.leftElement}\n </Flex>\n ) : defaultLeftElement ? (\n <Flex align=\"center\" className=\"Select__LeftElement\" pr={2}>\n {defaultLeftElement}\n </Flex>\n ) : null}\n {typeof selectedOption.label === 'string' ? (\n <Text className=\"Select__Text\" isTruncated={shouldTruncateText} variant={selectedOption.variant || 'default'}>\n {selectedOption.label}\n </Text>\n ) : (\n selectedOption.label\n )}\n </Flex>\n );\n};\n","import React, { useMemo, ReactNode, useRef, useState, useCallback, useEffect } from 'react';\nimport { Select as CSelect, SelectProps as CSelectProps, MenuButton } from '@chakra-ui/react';\nimport { MenuContainer } from '../Menu/components/MenuContainer/menuContainer.component';\nimport { WithFormControlProps, withFormControl } from 'shared/hocs/FormControl/withFormControl';\nimport { MenuProvider } from '../Menu/context/menu.context';\nimport { SelectList, SelectListProps } from './components/SelectList/selectList.component';\nimport { SelectContainer } from './components/SelectContainer/selectContainer.component';\nimport { Icon } from '../Icon/icon.component';\nimport { IconSize } from '../Icon/icon.types';\nimport { FormControlSize } from 'shared/types/formControl';\nimport { SelectOptionProps } from './components/SelectOption/selectOption.types';\n\nexport interface KSelectProps extends WithFormControlProps {\n defaultLeftElement?: ReactNode;\n listProps?: SelectListProps;\n options: SelectOptionProps[];\n size?: FormControlSize;\n isOnContrast?: boolean;\n placeholder?: string;\n emptyStateText?: string;\n}\n\nexport type SelectProps = KSelectProps & Omit<CSelectProps, 'onSelect'>;\n\nconst Select = ({\n defaultLeftElement,\n isFieldInline,\n listProps,\n options,\n placeholder,\n size = 'md',\n value,\n maxW = '100%',\n isOnContrast,\n emptyStateText,\n ...rest\n}: SelectProps): JSX.Element => {\n // TODO: Need to add full support for isOnContrast, currently menu list still renders white\n const _computedVariant = isOnContrast ? 'onContrast' : 'default';\n const selectRef = useRef<HTMLSelectElement>(null);\n const placeholderOption: SelectOptionProps = useMemo(\n () => ({\n label: placeholder,\n value: '',\n variant: isOnContrast ? 'placeholderOnContrast' : 'placeholder',\n leftElement: null,\n isSelected: false,\n isPlaceholder: true,\n }),\n [placeholder, isOnContrast],\n );\n\n const [allOptions, setAllOptions] = useState<SelectOptionProps[]>([]);\n\n const selectedOption: SelectOptionProps = useMemo(() => {\n const selectedItem = allOptions.find((option) => option.isSelected);\n\n return selectedItem ? selectedItem : placeholderOption;\n }, [allOptions, placeholderOption]);\n\n const handleSelect = useCallback(\n (selectedItem: SelectOptionProps) => {\n if (!allOptions) return;\n\n const updatedOptions = allOptions.map((option) => {\n return {\n ...option,\n isSelected: option.value === selectedItem.value,\n };\n });\n setAllOptions(updatedOptions);\n\n if (listProps?.onSelect) {\n listProps.onSelect(selectedItem);\n }\n },\n [allOptions, listProps],\n );\n\n // If the text is not being truncated it should grow to fit the content\n const flexibleHeightProps = !listProps?.shouldTruncateText ? { height: 'max-content', minH: 10 } : {};\n\n const selectWidth = useMemo(() => {\n if (!selectRef.current) {\n return '320px';\n }\n\n return `${selectRef?.current?.clientWidth}px`;\n\n // Disables the warning for not including unused dependency in the hook array. This dependency is needed to rerender the menu list with the correct width\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectRef?.current]);\n\n // Set default selected state\n useEffect(() => {\n const mappedOptions = options.map((option) => ({\n ...option,\n isSelected: option.value === value,\n }));\n\n setAllOptions([...mappedOptions, placeholderOption]);\n }, [options, placeholderOption, value]);\n\n return (\n <MenuProvider menuItems={allOptions}>\n <MenuContainer matchWidth={true} isLazy={true}>\n <CSelect\n icon={<Icon name=\"chevronDown\" size={size as IconSize} />}\n as={MenuButton}\n ref={selectRef}\n onClick={(event: React.MouseEvent): void => event.stopPropagation()}\n type=\"button\"\n className=\"Select__MenuButton\"\n variant={_computedVariant}\n maxW={maxW}\n {...flexibleHeightProps}\n {...rest}\n >\n <SelectContainer\n selectedOption={selectedOption}\n defaultLeftElement={defaultLeftElement}\n shouldTruncateText={listProps?.shouldTruncateText}\n />\n </CSelect>\n <SelectList\n {...listProps}\n onSelect={handleSelect}\n options={allOptions}\n maxW={selectWidth || maxW}\n emptyStateText={emptyStateText}\n />\n </MenuContainer>\n </MenuProvider>\n );\n};\n\nSelect.displayName = 'Select';\n\nconst WrappedSelect = withFormControl(Select);\n\nexport { WrappedSelect as Select };\n"],"names":["SelectList","props","options","rest","__rest","React","MenuList","Object","assign","shouldRetainSelection","menuItems","isMatchWidthSet","SelectContainer","selectedOption","defaultLeftElement","shouldTruncateText","createElement","Flex","className","justify","align","textAlign","color","variant","leftElement","pr","label","Text","isTruncated","Select","_a","isFieldInline","listProps","placeholder","size","value","maxW","isOnContrast","emptyStateText","_computedVariant","selectRef","useRef","placeholderOption","useMemo","isSelected","isPlaceholder","allOptions","setAllOptions","useState","selectedItem","find","option","handleSelect","useCallback","updatedOptions","map","onSelect","flexibleHeightProps","height","minH","selectWidth","current","clientWidth","useEffect","mappedOptions","MenuProvider","MenuContainer","matchWidth","isLazy","CSelect","icon","Icon","name","as","MenuButton","ref","onClick","event","stopPropagation","type","displayName","WrappedSelect","withFormControl"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@televet/kibble-ui",
3
- "version": "2.1.26",
3
+ "version": "2.1.27",
4
4
  "description": "Kibble Design System by Otto",
5
5
  "author": "Otto",
6
6
  "main": "build/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"menuItem.component-59369cfc.js","sources":["../src/components/Menu/components/MenuItem/menuItem.component.tsx"],"sourcesContent":["import React, {\n ReactNode,\n MutableRefObject,\n useCallback,\n MouseEvent,\n KeyboardEvent,\n useMemo,\n ReactElement,\n ChangeEvent,\n} from 'react';\nimport { Box, Flex, HStack, useMenuState } from '@chakra-ui/react';\nimport { MenuItemConfig } from '../../menu.config';\nimport { Text } from '../../../Text/text.component';\nimport { Checkbox } from 'components/Checkbox';\nimport { TypographyVariant } from 'shared/types';\n\nexport interface KMenuItemProps {\n children?: ReactNode;\n closeOnSelect?: boolean;\n groupLabel?: string;\n isDisabled?: boolean;\n isMultiSelect?: boolean;\n isPlaceholder?: boolean;\n isSelected?: boolean;\n label?: string | ReactElement;\n leftElement?: ReactNode;\n onSelect?: (selectedItem: KMenuItemProps) => void;\n shouldRetainSelection?: boolean;\n shouldTruncateText?: boolean;\n value?: string;\n variant?: TypographyVariant;\n}\n\n// These props are specific to the context passed in from the\n// MenuList and should not need to be passed in by the end user\nexport interface ControlledMenuItemProps {\n canSelectAll?: boolean;\n handleKeyboardNavigation?: (e: KeyboardEvent<HTMLDivElement>, elementIsInputField: boolean) => void;\n menuItemRefs?: MutableRefObject<HTMLDivElement[] | null[]>;\n itemIndex?: string;\n}\n\nexport type MenuItemProps = KMenuItemProps & ControlledMenuItemProps;\n\nexport const MenuItem = ({\n canSelectAll,\n children,\n isMultiSelect,\n closeOnSelect = !isMultiSelect,\n groupLabel,\n handleKeyboardNavigation = (): void => {},\n isDisabled,\n isPlaceholder,\n isSelected,\n itemIndex = '0',\n label,\n leftElement,\n menuItemRefs,\n onSelect,\n shouldRetainSelection = false,\n shouldTruncateText,\n value,\n variant,\n ...rest\n}: MenuItemProps): JSX.Element => {\n const { onClose } = useMenuState();\n\n const handleSelect = useCallback(\n (e: MouseEvent<HTMLDivElement> | ChangeEvent<HTMLInputElement>) => {\n e.stopPropagation();\n\n if (isDisabled) return;\n\n if (value && onSelect) {\n onSelect({\n label,\n leftElement,\n value,\n });\n }\n\n if (closeOnSelect) {\n onClose();\n }\n },\n [value, onSelect, onClose, closeOnSelect, isDisabled, label, leftElement],\n );\n\n const fontColor = useMemo(() => {\n if (variant) {\n return variant;\n }\n return isSelected && shouldRetainSelection && !isMultiSelect ? 'interactive' : 'default';\n }, [isSelected, shouldRetainSelection, isMultiSelect, variant]);\n\n return (\n <Box\n {...MenuItemConfig}\n bg={isSelected && shouldRetainSelection && !isMultiSelect ? 'background.primaryAlpha.hover' : ''}\n className={`MenuList__Item${isSelected ? ' current' : ''}`}\n onClick={handleSelect}\n onKeyDown={(e: KeyboardEvent<HTMLDivElement>): void => handleKeyboardNavigation(e, false)}\n tabIndex={parseInt(canSelectAll ? (itemIndex += 2) : itemIndex)}\n ref={(el): HTMLDivElement | null =>\n menuItemRefs && itemIndex ? (menuItemRefs.current[parseInt(itemIndex)] = el) : null\n }\n // @ts-ignore\n disabled={isDisabled}\n {...rest}\n >\n {children ? (\n <Box onClick={handleSelect}>{children}</Box>\n ) : (\n <HStack className=\"MenuList__ItemContainer\" justify=\"baseline\" spacing={3} minH={5} color={`text.${fontColor}`}>\n {isMultiSelect && (\n <Flex w={4} h={4} className=\"MenuList__ItemCheckbox\">\n <Checkbox size=\"md\" isChecked={isSelected} onChange={handleSelect} />\n </Flex>\n )}\n {leftElement && (\n <Flex align=\"center\" justify=\"center\" className=\"MenuList__ItemLeftElement\">\n {leftElement}\n </Flex>\n )}\n {typeof label === 'string' ? (\n <Text size=\"sm\" className=\"MenuList__ItemLabel\" variant={fontColor} isTruncated={shouldTruncateText}>\n {label}\n </Text>\n ) : (\n <Box className=\"MenuList__ItemLabel\" position=\"relative\" w=\"100%\">\n {label}\n </Box>\n )}\n </HStack>\n )}\n </Box>\n );\n};\n"],"names":["_a","canSelectAll","children","isMultiSelect","closeOnSelect","groupLabel","handleKeyboardNavigation","isDisabled","isPlaceholder","isSelected","itemIndex","label","leftElement","menuItemRefs","onSelect","shouldRetainSelection","shouldTruncateText","value","variant","rest","__rest","onClose","useMenuState","handleSelect","useCallback","e","stopPropagation","fontColor","useMemo","React","Box","Object","assign","MenuItemConfig","bg","className","onClick","onKeyDown","tabIndex","parseInt","ref","el","current","disabled","createElement","HStack","justify","spacing","minH","color","Flex","w","h","Checkbox","size","isChecked","onChange","align","Text","WrappedText","isTruncated","position"],"mappings":"0YA4CyBA,QAAAC,aACvBA,EAAYC,SACZA,EAAQC,cACRA,EAAaC,cACbA,GAAiBD,EAAaE,WAC9BA,EAAUC,yBACVA,EAA2B,SAAcC,WACzCA,EAAUC,cACVA,EAAaC,WACbA,EAAUC,UACVA,EAAY,IAAGC,MACfA,EAAKC,YACLA,EAAWC,aACXA,EAAYC,SACZA,EAAQC,sBACRA,GAAwB,EAAKC,mBAC7BA,EAAkBC,MAClBA,EAAKC,QACLA,KACGC,EAnBoBC,SAAApB,EAAA,CAAA,eAAA,WAAA,gBAAA,gBAAA,aAAA,2BAAA,aAAA,gBAAA,aAAA,YAAA,QAAA,cAAA,eAAA,WAAA,wBAAA,qBAAA,QAAA,YAqBvB,MAAMqB,QAAEA,GAAYC,EAAAA,eAEdC,EAAeC,eAClBC,IACCA,EAAEC,kBAEEnB,IAEAU,GAASH,GACXA,EAAS,CACPH,MAAAA,EACAC,YAAAA,EACAK,MAAAA,IAIAb,GACFiB,OAGJ,CAACJ,EAAOH,EAAUO,EAASjB,EAAeG,EAAYI,EAAOC,IAGzDe,EAAYC,EAAAA,SAAQ,IACpBV,IAGGT,GAAcM,IAA0BZ,EAAgB,cAAgB,YAC9E,CAACM,EAAYM,EAAuBZ,EAAee,IAEtD,OACEW,wBAACC,EAAGA,IAAAC,OAAAC,OAAA,GACEC,iBACJ,CAAAC,GAAIzB,GAAcM,IAA0BZ,EAAgB,gCAAkC,GAC9FgC,UAAW,kBAAiB1B,EAAa,WAAa,IACtD2B,QAASb,EACTc,UAAYZ,GAA2CnB,EAAyBmB,GAAG,GACnFa,SAAUC,SAAStC,EAAgBS,GAAa,EAAKA,GACrD8B,IAAMC,GACJ5B,GAAgBH,EAAaG,EAAa6B,QAAQH,SAAS7B,IAAc+B,EAAM,KAGjFE,SAAUpC,GACNY,GAEHjB,EACC2B,EAAAA,sBAACC,EAAGA,IAAA,CAACM,QAASb,GAAerB,GAE7B2B,EAAAA,QAACe,cAAAC,EAAMA,QAACV,UAAU,0BAA0BW,QAAQ,WAAWC,QAAS,EAAGC,KAAM,EAAGC,MAAO,QAAQtB,KAChGxB,GACC0B,EAAC,QAAAe,cAAAM,EAAAA,MAAKC,EAAG,EAAGC,EAAG,EAAGjB,UAAU,0BAC1BN,EAAAA,QAAAe,cAACS,kBAAQ,CAACC,KAAK,KAAKC,UAAW9C,EAAY+C,SAAUjC,KAGxDX,GACCiB,EAAAA,QAAAe,cAACM,EAAIA,KAAC,CAAAO,MAAM,SAASX,QAAQ,SAASX,UAAU,6BAC7CvB,GAGa,iBAAVD,EACNkB,EAAA,QAAAe,cAACc,EAAIC,YAAA,CAACL,KAAK,KAAKnB,UAAU,sBAAsBjB,QAASS,EAAWiC,YAAa5C,GAC9EL,GAGHkB,EAAA,QAAAe,cAACd,EAAGA,IAAA,CAACK,UAAU,sBAAsB0B,SAAS,WAAWV,EAAE,QACxDxC"}