@televet/kibble-ui 2.1.6 → 2.1.7-beta.86drdrtzn.1

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.
Files changed (186) hide show
  1. package/build/{alert.component-4d94b2a6.js → alert.component-03133a84.js} +2 -2
  2. package/build/{alert.component-4d94b2a6.js.map → alert.component-03133a84.js.map} +1 -1
  3. package/build/alert.component-ac01dd74.js +2 -0
  4. package/build/alert.component-ac01dd74.js.map +1 -0
  5. package/build/{avatar.component-4967e485.js → avatar.component-1a81b73b.js} +2 -2
  6. package/build/{avatar.component-4967e485.js.map → avatar.component-1a81b73b.js.map} +1 -1
  7. package/build/avatar.component-6be0513a.js +2 -0
  8. package/build/avatar.component-6be0513a.js.map +1 -0
  9. package/build/{avatarGroup.component-fc601255.js → avatarGroup.component-a3e8841d.js} +2 -2
  10. package/build/{avatarGroup.component-fc601255.js.map → avatarGroup.component-a3e8841d.js.map} +1 -1
  11. package/build/avatarGroup.component-a50f3af5.js +2 -0
  12. package/build/avatarGroup.component-a50f3af5.js.map +1 -0
  13. package/build/{button.component-fef0889c.js → button.component-c2b75fd2.js} +2 -2
  14. package/build/{button.component-fef0889c.js.map → button.component-c2b75fd2.js.map} +1 -1
  15. package/build/button.component-e26dad51.js +2 -0
  16. package/build/button.component-e26dad51.js.map +1 -0
  17. package/build/chakra/index.js +1 -1
  18. package/build/{chakra-ui-modal.esm-a00f2bce.js → chakra-ui-modal.esm-f42d0687.js} +2 -2
  19. package/build/{chakra-ui-modal.esm-a00f2bce.js.map → chakra-ui-modal.esm-f42d0687.js.map} +1 -1
  20. package/build/{chakra-ui-skeleton.esm-739cf3ea.js → chakra-ui-skeleton.esm-460afb52.js} +2 -2
  21. package/build/{chakra-ui-skeleton.esm-739cf3ea.js.map → chakra-ui-skeleton.esm-460afb52.js.map} +1 -1
  22. package/build/{checkbox.component-f8ff7fc6.js → checkbox.component-7576daac.js} +2 -2
  23. package/build/{checkbox.component-f8ff7fc6.js.map → checkbox.component-7576daac.js.map} +1 -1
  24. package/build/checkbox.component-f784c74e.js +2 -0
  25. package/build/checkbox.component-f784c74e.js.map +1 -0
  26. package/build/checkboxGroup.component-a1b2847f.js +2 -0
  27. package/build/{checkboxGroup.component-8718b445.js.map → checkboxGroup.component-a1b2847f.js.map} +1 -1
  28. package/build/checkboxGroup.component-e9ddb8ad.js +2 -0
  29. package/build/checkboxGroup.component-e9ddb8ad.js.map +1 -0
  30. package/build/components/Alert/index.js +1 -1
  31. package/build/components/Avatar/index.js +1 -1
  32. package/build/components/AvatarGroup/index.js +1 -1
  33. package/build/components/Button/index.js +1 -1
  34. package/build/components/Checkbox/index.js +1 -1
  35. package/build/components/CheckboxGroup/index.js +1 -1
  36. package/build/components/DatePicker/index.js +1 -1
  37. package/build/components/Icon/index.js +1 -1
  38. package/build/components/Link/index.js +1 -1
  39. package/build/components/Menu/components/MenuButton/index.js +1 -1
  40. package/build/components/Menu/components/MenuItem/index.js +1 -1
  41. package/build/components/Menu/components/MenuList/index.js +1 -1
  42. package/build/components/Menu/index.js +1 -1
  43. package/build/components/Modal/components/ModalBody/index.js +1 -1
  44. package/build/components/Modal/components/ModalCloseButton/index.js +1 -1
  45. package/build/components/Modal/components/ModalFooter/index.js +1 -1
  46. package/build/components/Modal/components/ModalFooterButtons/index.js +1 -1
  47. package/build/components/Modal/components/ModalHeader/index.js +1 -1
  48. package/build/components/Modal/index.js +1 -1
  49. package/build/components/Popover/components/PopoverFooter/index.js +1 -1
  50. package/build/components/Popover/components/PopoverHeader/index.js +1 -1
  51. package/build/components/Popover/index.js +1 -1
  52. package/build/components/RadioGroup/index.js +1 -1
  53. package/build/components/Select/index.js +1 -1
  54. package/build/components/SortableList/components/DragHandle/index.js +1 -1
  55. package/build/components/SortableList/index.js +1 -1
  56. package/build/components/Switch/index.js +1 -1
  57. package/build/components/Tabs/components/Tab/index.js +1 -1
  58. package/build/components/Tabs/index.js +1 -1
  59. package/build/components/TabsLayout/index.js +1 -1
  60. package/build/components/TextInput/index.js +1 -1
  61. package/build/components/Textarea/index.js +1 -1
  62. package/build/components/TimePicker/index.js +1 -1
  63. package/build/components/TimeRange/index.js +1 -1
  64. package/build/components/Toast/index.js +1 -1
  65. package/build/components/index.js +1 -1
  66. package/build/{datepicker.types-626263f5.js → datepicker.types-6aeca469.js} +3 -3
  67. package/build/{datepicker.types-626263f5.js.map → datepicker.types-6aeca469.js.map} +1 -1
  68. package/build/datepicker.types-e5edc0f9.js +16 -0
  69. package/build/datepicker.types-e5edc0f9.js.map +1 -0
  70. package/build/dragHandle.component-b2a80e2f.js +2 -0
  71. package/build/{dragHandle.component-0e356aee.js.map → dragHandle.component-b2a80e2f.js.map} +1 -1
  72. package/build/{dragHandle.component-0e356aee.js → dragHandle.component-bf8d6a0b.js} +2 -2
  73. package/build/dragHandle.component-bf8d6a0b.js.map +1 -0
  74. package/build/{icon.component-067afbfc.js → icon.component-3355868e.js} +1 -1
  75. package/build/{icon.component-067afbfc.js.map → icon.component-3355868e.js.map} +1 -1
  76. package/build/icon.component-68a24294.js +2 -0
  77. package/build/icon.component-68a24294.js.map +1 -0
  78. package/build/icons/Transfer.d.ts +10 -0
  79. package/build/icons/index.d.ts +1 -1
  80. package/build/icons/index.js +1 -1
  81. package/build/icons/index.js.map +1 -1
  82. package/build/{index-8fecff45.js → index-1a339061.js} +1 -1
  83. package/build/{index-8fecff45.js.map → index-1a339061.js.map} +1 -1
  84. package/build/index.js +1 -1
  85. package/build/{link.component-0df23221.js → link.component-4e191c0e.js} +2 -2
  86. package/build/{link.component-0df23221.js.map → link.component-4e191c0e.js.map} +1 -1
  87. package/build/link.component-91c81c4c.js +2 -0
  88. package/build/link.component-91c81c4c.js.map +1 -0
  89. package/build/{menu.component-85f14b60.js → menu.component-a4fab3cb.js} +2 -2
  90. package/build/{menu.component-85f14b60.js.map → menu.component-a4fab3cb.js.map} +1 -1
  91. package/build/menu.component-b05a8a8c.js +2 -0
  92. package/build/menu.component-b05a8a8c.js.map +1 -0
  93. package/build/{menuButton.component-e854af0e.js → menuButton.component-52602de9.js} +2 -2
  94. package/build/{menuButton.component-e854af0e.js.map → menuButton.component-52602de9.js.map} +1 -1
  95. package/build/menuButton.component-a40d8061.js +2 -0
  96. package/build/menuButton.component-a40d8061.js.map +1 -0
  97. package/build/menuItem.component-431a91d3.js +2 -0
  98. package/build/{menuItem.component-6aaaba64.js.map → menuItem.component-431a91d3.js.map} +1 -1
  99. package/build/{menuItem.component-6aaaba64.js → menuItem.component-50201fe5.js} +2 -2
  100. package/build/menuItem.component-50201fe5.js.map +1 -0
  101. package/build/{menuList.component-935e83c9.js → menuList.component-790babbe.js} +2 -2
  102. package/build/{menuList.component-935e83c9.js.map → menuList.component-790babbe.js.map} +1 -1
  103. package/build/menuList.component-c73f8ed4.js +2 -0
  104. package/build/menuList.component-c73f8ed4.js.map +1 -0
  105. package/build/{modal.component-0d68beaa.js → modal.component-570c1543.js} +2 -2
  106. package/build/{modal.component-0d68beaa.js.map → modal.component-570c1543.js.map} +1 -1
  107. package/build/{modalBody.component-345aaa1b.js → modalBody.component-6199e234.js} +2 -2
  108. package/build/{modalBody.component-345aaa1b.js.map → modalBody.component-6199e234.js.map} +1 -1
  109. package/build/modalCloseButton.component-587722ca.js +2 -0
  110. package/build/{modalCloseButton.component-7f275383.js.map → modalCloseButton.component-587722ca.js.map} +1 -1
  111. package/build/modalCloseButton.component-81f1eb9f.js +2 -0
  112. package/build/modalCloseButton.component-81f1eb9f.js.map +1 -0
  113. package/build/{modalFooter.component-1c9fcc61.js → modalFooter.component-2f87119b.js} +2 -2
  114. package/build/{modalFooter.component-1c9fcc61.js.map → modalFooter.component-2f87119b.js.map} +1 -1
  115. package/build/{modalFooterButtons.component-c18d54ae.js → modalFooterButtons.component-06ad6a59.js} +2 -2
  116. package/build/{modalFooterButtons.component-c18d54ae.js.map → modalFooterButtons.component-06ad6a59.js.map} +1 -1
  117. package/build/modalFooterButtons.component-639964ea.js +2 -0
  118. package/build/modalFooterButtons.component-639964ea.js.map +1 -0
  119. package/build/{modalHeader.component-204451e0.js → modalHeader.component-92f511f0.js} +2 -2
  120. package/build/{modalHeader.component-204451e0.js.map → modalHeader.component-92f511f0.js.map} +1 -1
  121. package/build/{popover.component-0ae5fbb4.js → popover.component-9bffab9f.js} +2 -2
  122. package/build/{popover.component-0ae5fbb4.js.map → popover.component-9bffab9f.js.map} +1 -1
  123. package/build/popover.component-c3c4f47c.js +2 -0
  124. package/build/popover.component-c3c4f47c.js.map +1 -0
  125. package/build/popoverFooter.component-75ebea56.js +2 -0
  126. package/build/{popoverFooter.component-c30db814.js.map → popoverFooter.component-75ebea56.js.map} +1 -1
  127. package/build/{popoverFooter.component-c30db814.js → popoverFooter.component-c9ffa095.js} +2 -2
  128. package/build/popoverFooter.component-c9ffa095.js.map +1 -0
  129. package/build/popoverHeader.component-b673151a.js +2 -0
  130. package/build/{popoverHeader.component-70375fd8.js.map → popoverHeader.component-b673151a.js.map} +1 -1
  131. package/build/{popoverHeader.component-70375fd8.js → popoverHeader.component-f94a14f6.js} +2 -2
  132. package/build/popoverHeader.component-f94a14f6.js.map +1 -0
  133. package/build/radioGroup.component-8fbd1f9e.js +2 -0
  134. package/build/{radioGroup.component-648d8016.js.map → radioGroup.component-8fbd1f9e.js.map} +1 -1
  135. package/build/{radioGroup.component-648d8016.js → radioGroup.component-af8bcc57.js} +2 -2
  136. package/build/radioGroup.component-af8bcc57.js.map +1 -0
  137. package/build/{select.component-1d31a084.js → select.component-7141bf80.js} +2 -2
  138. package/build/{select.component-1d31a084.js.map → select.component-7141bf80.js.map} +1 -1
  139. package/build/select.component-de13fb7a.js +2 -0
  140. package/build/select.component-de13fb7a.js.map +1 -0
  141. package/build/{switch.component-e6a76462.js → switch.component-006dc69c.js} +2 -2
  142. package/build/{switch.component-e6a76462.js.map → switch.component-006dc69c.js.map} +1 -1
  143. package/build/switch.component-471031b6.js +2 -0
  144. package/build/switch.component-471031b6.js.map +1 -0
  145. package/build/tab.component-54c05376.js +2 -0
  146. package/build/{tab.component-1d9ac224.js.map → tab.component-54c05376.js.map} +1 -1
  147. package/build/tab.component-d98b2375.js +2 -0
  148. package/build/tab.component-d98b2375.js.map +1 -0
  149. package/build/tabs.component-7b766bac.js +2 -0
  150. package/build/{tabs.component-d37f10e0.js.map → tabs.component-7b766bac.js.map} +1 -1
  151. package/build/{tabs.component-d37f10e0.js → tabs.component-fadd9ba2.js} +2 -2
  152. package/build/tabs.component-fadd9ba2.js.map +1 -0
  153. package/build/{tabsLayout.component-7429c066.js → tabsLayout.component-955f61df.js} +2 -2
  154. package/build/{tabsLayout.component-7429c066.js.map → tabsLayout.component-955f61df.js.map} +1 -1
  155. package/build/tabsLayout.component-e6902b7f.js +2 -0
  156. package/build/tabsLayout.component-e6902b7f.js.map +1 -0
  157. package/build/textInput.component-82cef412.js +2 -0
  158. package/build/{textInput.component-43f9937a.js.map → textInput.component-82cef412.js.map} +1 -1
  159. package/build/textInput.component-a0b43a66.js +2 -0
  160. package/build/textInput.component-a0b43a66.js.map +1 -0
  161. package/build/textarea.component-6e19696c.js +2 -0
  162. package/build/{textarea.component-3023feaa.js.map → textarea.component-6e19696c.js.map} +1 -1
  163. package/build/textarea.component-c02b3c1b.js +2 -0
  164. package/build/textarea.component-c02b3c1b.js.map +1 -0
  165. package/build/{timePicker.component-3e9e9a54.js → timePicker.component-bb27b9f0.js} +2 -2
  166. package/build/{timePicker.component-3e9e9a54.js.map → timePicker.component-bb27b9f0.js.map} +1 -1
  167. package/build/timePicker.component-d50e6b00.js +2 -0
  168. package/build/timePicker.component-d50e6b00.js.map +1 -0
  169. package/build/{timeRange.component-aca7c543.js → timeRange.component-4c3718fc.js} +2 -2
  170. package/build/{timeRange.component-aca7c543.js.map → timeRange.component-4c3718fc.js.map} +1 -1
  171. package/build/timeRange.component-e8a0f2a6.js +2 -0
  172. package/build/timeRange.component-e8a0f2a6.js.map +1 -0
  173. package/build/{useToast-48958846.js → useToast-3e5917e9.js} +2 -2
  174. package/build/{useToast-48958846.js.map → useToast-3e5917e9.js.map} +1 -1
  175. package/build/useToast-58611ee4.js +2 -0
  176. package/build/useToast-58611ee4.js.map +1 -0
  177. package/build/{withFormControl-fb41ff7a.js → withFormControl-6d7abf11.js} +2 -2
  178. package/build/{withFormControl-fb41ff7a.js.map → withFormControl-6d7abf11.js.map} +1 -1
  179. package/build/withFormControl-bbd5b3c6.js +2 -0
  180. package/build/withFormControl-bbd5b3c6.js.map +1 -0
  181. package/package.json +1 -1
  182. package/build/checkboxGroup.component-8718b445.js +0 -2
  183. package/build/modalCloseButton.component-7f275383.js +0 -2
  184. package/build/tab.component-1d9ac224.js +0 -2
  185. package/build/textInput.component-43f9937a.js +0 -2
  186. package/build/textarea.component-3023feaa.js +0 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuButton.component-a40d8061.js","sources":["../src/components/Menu/components/MenuButton/menuButton.records.tsx","../src/components/Menu/components/MenuButton/menuButton.component.tsx"],"sourcesContent":["import { IconSize } from 'components/Icon';\n\nexport const iconButtonPaddingMap = {\n lg: '8px',\n md: '8px',\n sm: '6px',\n xs: '4px',\n};\n\nexport const buttonPaddingMap = {\n lg: '12px 20px',\n md: '10px 16px',\n sm: '8px 12px',\n xs: '5px 8px',\n};\n\nexport const iconButtonIconSizeMap: Record<IconSize, IconSize> = {\n '2xl': 'xl',\n xl: 'xl',\n lg: 'xl',\n md: 'lg',\n sm: 'md',\n xs: 'sm',\n};\n\nexport const textSpacingMap = {\n lg: '8px',\n md: '8px',\n sm: '4px',\n xs: '4px',\n};\n","import React, { ReactNode, useMemo } from 'react';\nimport { Icon } from '../../../Icon/icon.component';\nimport { MenuButton as CMenuButton, MenuButtonProps as CMenuButtonProps, Box, HStack } from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\nimport { ButtonSize, ButtonVariant } from '../../../Button/button.types';\nimport { IconSize } from '../../../Icon/icon.types';\nimport { IconName } from '../../../../icons';\nimport { buttonPaddingMap, iconButtonPaddingMap, iconButtonIconSizeMap, textSpacingMap } from './menuButton.records';\n\nexport interface KMenuButtonProps {\n leftElement?: ReactNode;\n leftIconName?: IconName;\n rightIconName?: IconName;\n showRightIcon?: boolean;\n size?: ButtonSize;\n text?: string;\n variant?: ButtonVariant;\n}\n\nexport type MenuButtonProps = KMenuButtonProps & CMenuButtonProps;\n\nexport const MenuButton = ({\n leftElement,\n leftIconName,\n rightIconName = 'chevronDown',\n showRightIcon = true,\n size,\n text,\n variant,\n ...rest\n}: MenuButtonProps): JSX.Element => {\n const isIconButton = leftIconName && !text;\n\n const buttonPadding = useMemo((): string => {\n if (!size) return '10px 16px';\n return isIconButton ? iconButtonPaddingMap[size] : buttonPaddingMap[size];\n }, [isIconButton, size]);\n\n const iconSize = useMemo((): IconSize => {\n if (!size) return 'md';\n return isIconButton ? iconButtonIconSizeMap[size] : size;\n }, [isIconButton, size]);\n\n const textSpacing = useMemo((): string => {\n if (!size) return '8px';\n return isIconButton ? '0px' : textSpacingMap[size];\n }, [isIconButton, size]);\n\n return (\n <CMenuButton\n as={Button}\n variant={variant}\n size={size}\n position=\"relative\"\n className=\"MenuButton\"\n p={buttonPadding}\n lineHeight={0}\n _active={{ transform: 'none' }}\n {...rest}\n >\n <HStack spacing={textSpacing} className=\"MenuButton__ContentContainer\">\n {leftElement && leftElement}\n {leftIconName && (\n <Box className=\"MenuButton__LeftIcon\">\n <Icon name={leftIconName} size={iconSize} />\n </Box>\n )}\n {text && <Box className=\"MenuButton__Text\">{text}</Box>}\n {showRightIcon && (\n <Box className=\"MenuButton__RightIcon\">\n <Icon name={rightIconName} size={size === 'lg' ? 'sm' : 'xs'} />\n </Box>\n )}\n </HStack>\n </CMenuButton>\n );\n};\n"],"names":["iconButtonPaddingMap","lg","md","sm","xs","buttonPaddingMap","iconButtonIconSizeMap","xl","textSpacingMap","_a","leftElement","leftIconName","rightIconName","showRightIcon","size","text","variant","rest","__rest","isIconButton","buttonPadding","useMemo","iconSize","textSpacing","React","createElement","CMenuButton","MenuButton","as","Button","position","className","p","lineHeight","_active","transform","HStack","spacing","Box","Icon","name"],"mappings":"gVAEO,MAAMA,EAAuB,CAClCC,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,OAGOC,EAAmB,CAC9BJ,GAAI,YACJC,GAAI,YACJC,GAAI,WACJC,GAAI,WAGOE,EAAoD,CAC/D,MAAO,KACPC,GAAI,KACJN,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,MAGOI,EAAiB,CAC5BP,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,0BCRqBK,QAAAC,YACzBA,EAAWC,aACXA,EAAYC,cACZA,EAAgB,cAAaC,cAC7BA,GAAgB,EAAIC,KACpBA,EAAIC,KACJA,EAAIC,QACJA,KACGC,EARsBC,SAAAT,EAAA,CAAA,cAAA,eAAA,gBAAA,gBAAA,OAAA,OAAA,YAUzB,MAAMU,EAAeR,IAAiBI,EAEhCK,EAAgBC,EAAAA,SAAQ,IACvBP,EACEK,EAAenB,EAAqBc,GAAQT,EAAiBS,GADlD,aAEjB,CAACK,EAAcL,IAEZQ,EAAWD,EAAAA,SAAQ,IAClBP,EACEK,EAAeb,EAAsBQ,GAAQA,EADlC,MAEjB,CAACK,EAAcL,IAEZS,EAAcF,EAAAA,SAAQ,IACrBP,EACEK,EAAe,MAAQX,EAAeM,GAD3B,OAEjB,CAACK,EAAcL,IAElB,OACEU,UAACC,cAAAC,EAAWC,0BACVC,GAAIC,EAAMA,OACVb,QAASA,EACTF,KAAMA,EACNgB,SAAS,WACTC,UAAU,aACVC,EAAGZ,EACHa,WAAY,EACZC,QAAS,CAAEC,UAAW,SAClBlB,GAEJO,EAAC,QAAAC,cAAAW,UAAOC,QAASd,EAAaQ,UAAU,gCACrCrB,GAAeA,EACfC,GACCa,EAAA,QAAAC,cAACa,EAAGA,IAAC,CAAAP,UAAU,wBACbP,UAACC,cAAAc,EAAAA,KAAK,CAAAC,KAAM7B,EAAcG,KAAMQ,KAGnCP,GAAQS,wBAACc,EAAAA,IAAG,CAACP,UAAU,oBAAoBhB,GAC3CF,GACCW,EAAA,QAAAC,cAACa,EAAGA,IAAC,CAAAP,UAAU,yBACbP,EAAAA,QAACC,cAAAc,EAAAA,KAAK,CAAAC,KAAM5B,EAAeE,KAAe,OAATA,EAAgB,KAAO"}
@@ -0,0 +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-7576daac.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:d,closeOnSelect:m=!d,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}),m&&C())}),[k,_,C,m,h,g,v]),N=t.useMemo((()=>L||(x&&E&&!d?"interactive":"default")),[x,E,d,L]);return c.default.createElement(i.Box,Object.assign({},a.MenuItemConfig,{bg:x&&E&&!d?"background.primaryAlpha.hover":"",className:"MenuList__Item",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}`},d&&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-431a91d3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menuItem.component-6aaaba64.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\"\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,MAAGC,OAAAC,OAAA,GACEC,iBACJ,CAAAC,GAAIzB,GAAcM,IAA0BZ,EAAgB,gCAAkC,GAC9FgC,UAAU,iBACVC,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"}
1
+ {"version":3,"file":"menuItem.component-431a91d3.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\"\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,MAAGC,OAAAC,OAAA,GACEC,iBACJ,CAAAC,GAAIzB,GAAcM,IAA0BZ,EAAgB,gCAAkC,GAC9FgC,UAAU,iBACVC,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"}
@@ -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-f8ff7fc6.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",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-6aaaba64.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-f784c74e.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",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-50201fe5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuItem.component-50201fe5.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\"\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,MAAGC,OAAAC,OAAA,GACEC,iBACJ,CAAAC,GAAIzB,GAAcM,IAA0BZ,EAAgB,gCAAkC,GAC9FgC,UAAU,iBACVC,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"}
@@ -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-6aaaba64.js"),r=require("./textInput.component-43f9937a.js"),s=require("./chakra-ui-menu.esm-1ed98193.js"),u=require("./button.component-fef0889c.js"),o=require("./chakra-ui-layout.esm-6ee578f7.js"),i=require("./menu.context-22d23674.js"),c=require("./spinner.component-39040867.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:u,placeholder:o="Search..."})=>{const{isOpen:i}=s.useMenuState(),c=t.useCallback((e=>{const t=e.target.value;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())}));u(e)}else u(l);a&&a(e)}),[l,a,u]);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:o,onChange:c,mt:1,onKeyDown:t=>e(t,!0),size:"sm",ref:n})},p=({groupName:e,handleToggleAllItems:t,hasSelectedItems:l,isGrouped:a})=>a?m.default.createElement(o.Box,{textAlign:"right",w:"50%",className:"MenuListItem__SelectAllButton"},l?m.default.createElement(u.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({groupName:e,clear:!0}),isDisabled:!l},"Clear all"):m.default.createElement(u.Button,{variant:"ghost",size:"xs",onClick:()=>t({groupName:e,clear:!1})},"Select all")):m.default.createElement(o.Box,{mt:"8px",className:"MenuList__SelectAllButtons"},m.default.createElement(o.Flex,{justifyContent:"space-between"},m.default.createElement(u.Button,{variant:"ghost",size:"xs",onClick:()=>t({clear:!1})},"Select all"),m.default.createElement(u.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({clear:!0}),isDisabled:!l},"Clear all")));exports.MenuList=r=>{var{canSelectAll:u=!1,canSelectGroups:d=!1,children:h,isGrouped:v=!1,isMatchWidthSet:g,isMultiSelect:S=!1,isSearchable:x=!1,isLoading:b=!1,menuItems:E,onSelect:I,onSelectAll:k,searchPlaceholder:M,shouldRetainSelection:C=!1,shouldTruncateText:N=!0,minW:w="240px",maxW:y,maxH:A="480px"}=r,B=e.__rest(r,["canSelectAll","canSelectGroups","children","isGrouped","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","menuItems","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH"]);const{filteredMenuItems:L,setFilteredMenuItems:j,allMenuItems:_,groups:T,setGroups:q,focusedItemIndex:G,setFocusedItemIndex:W,searchInputRef:F,menuItemRefs:R}=i.useMenuContext(),z=t.useCallback((e=>{var t,l;if(!(null==R?void 0:R.current))return;const a=0===G,n=G===(null==R?void 0:R.current.length)-1;let r=-1;if("ArrowDown"===e)if(n){if(x)return null===(t=null==F?void 0:F.current)||void 0===t||t.focus(),void W(-1);r=0}else r=G+1;else if("ArrowUp"===e)if(a){if(x)return null===(l=null==F?void 0:F.current)||void 0===l||l.focus(),void W(-1);r=R.current.length-1}else r=G-1;const s=null==R?void 0:R.current[r];s?(null==s||s.focus(),W(r)):W(-1)}),[G,x,R,F,W]),D=t.useCallback(((e,t)=>{e.persist(),(null==R?void 0:R.current)&&("ArrowDown"!==e.key&&"Tab"!==e.key||z("ArrowDown"),"ArrowUp"===e.key&&z("ArrowUp"),"Enter"===e.key&&(e.preventDefault(),e.target.click()))}),[z,R]),H=t.useCallback(((e,t)=>{if(L&&_){const l=[...L],a=l.find((t=>t.value===e.value));S&&a&&(a.isSelected=!a.isSelected),j(l);const n=_.filter((e=>e.isSelected));I&&a&&I(a,n),t&&a&&t(a,n)}}),[_,L,S,I,j]),K=t.useCallback((({groupName:e,clear:t=!1})=>{if(L&&_){const l=[...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))})),j(l),k&&k(_.filter((e=>e.isSelected)))}}),[L,_,k,j]);t.useEffect((()=>{if(v){const e=[...new Set(null==L?void 0:L.map((e=>e.groupLabel)))];e.length&&q(e)}}),[L,v,q]);const O=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:u,handleKeyboardNavigation:D,isMultiSelect:S,itemIndex:t.toString(),menuItemRefs:R,onSelect:t=>H(t,e.onSelect),shouldRetainSelection:C,shouldTruncateText:N}))),[D,H,S,R,C,N,u]);return g||(y="320px"),h?m.default.createElement(s.MenuList,Object.assign({},B),h):m.default.createElement(s.MenuList,Object.assign({className:"MeuList"},B,{maxW:y||"unset",maxH:A,minW:w,overflow:"hidden auto"}),(x||u&&S)&&m.default.createElement(o.Box,{className:"MenuList__Header",m:"0 12px 8px"},x&&m.default.createElement(f,{handleKeyboardNavigation:D,menuItems:E||[],searchInputRef:F,setFilteredMenuItems:j,placeholder:M}),u&&S&&m.default.createElement(p,{handleToggleAllItems:K,hasSelectedItems:Boolean(null==L?void 0:L.find((e=>e.isSelected))),isGrouped:!1})),m.default.createElement(o.Box,{className:"MenuList__Body",position:"relative"},(null==L?void 0:L.length)?v?null==T?void 0:T.map(((e,t)=>{const a=null==L?void 0:L.filter((t=>t.groupLabel===e));return m.default.createElement(o.Box,{className:"MenuList__Group",key:`${e||"noGroup"}-${t}`},e&&m.default.createElement(o.Flex,{minH:8,pt:2,pr:3,pb:1,pl:5,justify:"space-between",align:"center"},m.default.createElement(o.Box,{textAlign:"left",className:"MenuList__GroupTitle"},m.default.createElement(l.WrappedHeading,{size:"xs"},e)),S&&d&&m.default.createElement(p,{handleToggleAllItems:K,hasSelectedItems:Boolean(null==a?void 0:a.find((e=>e.isSelected))),isGrouped:!0,groupName:e})),null==a?void 0:a.map(((e,t)=>O(e,t))))})):null==L?void 0:L.map(((e,t)=>O(e,t))):m.default.createElement(o.Box,{textAlign:"center",display:"block",p:3},m.default.createElement(a.WrappedText,{size:"sm",variant:"subtle"},"No results found")),b&&m.default.createElement(o.Box,{position:"absolute",w:"100%",h:"100%",top:"0",left:"0",bg:"background.alphaContrast.pressed"},m.default.createElement(o.Flex,{h:"100%",align:"center",justify:"center"},m.default.createElement(c.Spinner,null)))))};
2
- //# sourceMappingURL=menuList.component-935e83c9.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-431a91d3.js"),r=require("./textInput.component-a0b43a66.js"),s=require("./chakra-ui-menu.esm-1ed98193.js"),u=require("./button.component-c2b75fd2.js"),o=require("./chakra-ui-layout.esm-6ee578f7.js"),i=require("./menu.context-22d23674.js"),c=require("./spinner.component-39040867.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:u,placeholder:o="Search..."})=>{const{isOpen:i}=s.useMenuState(),c=t.useCallback((e=>{const t=e.target.value;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())}));u(e)}else u(l);a&&a(e)}),[l,a,u]);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:o,onChange:c,mt:1,onKeyDown:t=>e(t,!0),size:"sm",ref:n})},p=({groupName:e,handleToggleAllItems:t,hasSelectedItems:l,isGrouped:a})=>a?m.default.createElement(o.Box,{textAlign:"right",w:"50%",className:"MenuListItem__SelectAllButton"},l?m.default.createElement(u.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({groupName:e,clear:!0}),isDisabled:!l},"Clear all"):m.default.createElement(u.Button,{variant:"ghost",size:"xs",onClick:()=>t({groupName:e,clear:!1})},"Select all")):m.default.createElement(o.Box,{mt:"8px",className:"MenuList__SelectAllButtons"},m.default.createElement(o.Flex,{justifyContent:"space-between"},m.default.createElement(u.Button,{variant:"ghost",size:"xs",onClick:()=>t({clear:!1})},"Select all"),m.default.createElement(u.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({clear:!0}),isDisabled:!l},"Clear all")));exports.MenuList=r=>{var{canSelectAll:u=!1,canSelectGroups:d=!1,children:h,isGrouped:v=!1,isMatchWidthSet:g,isMultiSelect:S=!1,isSearchable:x=!1,isLoading:b=!1,menuItems:E,onSelect:I,onSelectAll:k,searchPlaceholder:M,shouldRetainSelection:C=!1,shouldTruncateText:N=!0,minW:w="240px",maxW:y,maxH:A="480px"}=r,B=e.__rest(r,["canSelectAll","canSelectGroups","children","isGrouped","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","menuItems","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH"]);const{filteredMenuItems:L,setFilteredMenuItems:j,allMenuItems:_,groups:T,setGroups:q,focusedItemIndex:G,setFocusedItemIndex:W,searchInputRef:F,menuItemRefs:R}=i.useMenuContext(),z=t.useCallback((e=>{var t,l;if(!(null==R?void 0:R.current))return;const a=0===G,n=G===(null==R?void 0:R.current.length)-1;let r=-1;if("ArrowDown"===e)if(n){if(x)return null===(t=null==F?void 0:F.current)||void 0===t||t.focus(),void W(-1);r=0}else r=G+1;else if("ArrowUp"===e)if(a){if(x)return null===(l=null==F?void 0:F.current)||void 0===l||l.focus(),void W(-1);r=R.current.length-1}else r=G-1;const s=null==R?void 0:R.current[r];s?(null==s||s.focus(),W(r)):W(-1)}),[G,x,R,F,W]),D=t.useCallback(((e,t)=>{e.persist(),(null==R?void 0:R.current)&&("ArrowDown"!==e.key&&"Tab"!==e.key||z("ArrowDown"),"ArrowUp"===e.key&&z("ArrowUp"),"Enter"===e.key&&(e.preventDefault(),e.target.click()))}),[z,R]),H=t.useCallback(((e,t)=>{if(L&&_){const l=[...L],a=l.find((t=>t.value===e.value));S&&a&&(a.isSelected=!a.isSelected),j(l);const n=_.filter((e=>e.isSelected));I&&a&&I(a,n),t&&a&&t(a,n)}}),[_,L,S,I,j]),K=t.useCallback((({groupName:e,clear:t=!1})=>{if(L&&_){const l=[...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))})),j(l),k&&k(_.filter((e=>e.isSelected)))}}),[L,_,k,j]);t.useEffect((()=>{if(v){const e=[...new Set(null==L?void 0:L.map((e=>e.groupLabel)))];e.length&&q(e)}}),[L,v,q]);const O=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:u,handleKeyboardNavigation:D,isMultiSelect:S,itemIndex:t.toString(),menuItemRefs:R,onSelect:t=>H(t,e.onSelect),shouldRetainSelection:C,shouldTruncateText:N}))),[D,H,S,R,C,N,u]);return g||(y="320px"),h?m.default.createElement(s.MenuList,Object.assign({},B),h):m.default.createElement(s.MenuList,Object.assign({className:"MeuList"},B,{maxW:y||"unset",maxH:A,minW:w,overflow:"hidden auto"}),(x||u&&S)&&m.default.createElement(o.Box,{className:"MenuList__Header",m:"0 12px 8px"},x&&m.default.createElement(f,{handleKeyboardNavigation:D,menuItems:E||[],searchInputRef:F,setFilteredMenuItems:j,placeholder:M}),u&&S&&m.default.createElement(p,{handleToggleAllItems:K,hasSelectedItems:Boolean(null==L?void 0:L.find((e=>e.isSelected))),isGrouped:!1})),m.default.createElement(o.Box,{className:"MenuList__Body",position:"relative"},(null==L?void 0:L.length)?v?null==T?void 0:T.map(((e,t)=>{const a=null==L?void 0:L.filter((t=>t.groupLabel===e));return m.default.createElement(o.Box,{className:"MenuList__Group",key:`${e||"noGroup"}-${t}`},e&&m.default.createElement(o.Flex,{minH:8,pt:2,pr:3,pb:1,pl:5,justify:"space-between",align:"center"},m.default.createElement(o.Box,{textAlign:"left",className:"MenuList__GroupTitle"},m.default.createElement(l.WrappedHeading,{size:"xs"},e)),S&&d&&m.default.createElement(p,{handleToggleAllItems:K,hasSelectedItems:Boolean(null==a?void 0:a.find((e=>e.isSelected))),isGrouped:!0,groupName:e})),null==a?void 0:a.map(((e,t)=>O(e,t))))})):null==L?void 0:L.map(((e,t)=>O(e,t))):m.default.createElement(o.Box,{textAlign:"center",display:"block",p:3},m.default.createElement(a.WrappedText,{size:"sm",variant:"subtle"},"No results found")),b&&m.default.createElement(o.Box,{position:"absolute",w:"100%",h:"100%",top:"0",left:"0",bg:"background.alphaContrast.pressed"},m.default.createElement(o.Flex,{h:"100%",align:"center",justify:"center"},m.default.createElement(c.Spinner,null)))))};
2
+ //# sourceMappingURL=menuList.component-790babbe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"menuList.component-935e83c9.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 ChangeEventHandler,\n Dispatch,\n SetStateAction,\n useCallback,\n KeyboardEvent,\n MutableRefObject,\n useEffect,\n} from 'react';\nimport { TextInput } from '../../../TextInput/textInput.component';\nimport { MenuItemProps } from '../MenuItem/menuItem.component';\nimport { useMenuState } from '@chakra-ui/react';\n\nexport interface MenuSearchBarProps {\n handleKeyboardNavigation: (e: KeyboardEvent<HTMLInputElement>, elementIsInputField: boolean) => void;\n menuItems: MenuItemProps[];\n onSearchCallback?: (e: ChangeEventHandler) => 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\n const handleSearch = useCallback(\n (e) => {\n const searchInput = e.target.value;\n\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 if (onSearchCallback) {\n onSearchCallback(e);\n }\n },\n [menuItems, onSearchCallback, setFilteredMenuItems],\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 mt={1}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>): void => handleKeyboardNavigation(e, true)}\n size=\"sm\"\n ref={searchInputRef}\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 } 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 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}\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 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 ...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 return (\n <CMenuList className=\"MeuList\" {...rest} maxW={maxW || 'unset'} maxH={maxH} minW={minW} overflow=\"hidden auto\">\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 />\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 {!filteredMenuItems?.length ? (\n <Box textAlign=\"center\" display=\"block\" p={3}>\n <Text size=\"sm\" variant=\"subtle\">\n No results found\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","handleSearch","useCallback","e","searchInput","target","value","filterdItems","filter","item","labelText","label","_a","key","toLowerCase","includes","useEffect","focusTimeout","setTimeout","current","focus","clearTimeout","React","createElement","TextInput","WrappedTextInput","className","onChange","mt","onKeyDown","size","ref","MenuSelectAllButtons","groupName","handleToggleAllItems","hasSelectedItems","isGrouped","Box","textAlign","w","Button","variant","iconName","onClick","clear","isDisabled","Flex","justifyContent","canSelectAll","canSelectGroups","children","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","rest","__rest","filteredMenuItems","allMenuItems","groups","setGroups","focusedItemIndex","setFocusedItemIndex","menuItemRefs","useMenuContext","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","overflow","m","Boolean","position","minH","pt","pr","pb","pl","justify","align","Heading","display","p","Text","WrappedText","h","top","left","bg","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"menuList.component-790babbe.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 ChangeEventHandler,\n Dispatch,\n SetStateAction,\n useCallback,\n KeyboardEvent,\n MutableRefObject,\n useEffect,\n} from 'react';\nimport { TextInput } from '../../../TextInput/textInput.component';\nimport { MenuItemProps } from '../MenuItem/menuItem.component';\nimport { useMenuState } from '@chakra-ui/react';\n\nexport interface MenuSearchBarProps {\n handleKeyboardNavigation: (e: KeyboardEvent<HTMLInputElement>, elementIsInputField: boolean) => void;\n menuItems: MenuItemProps[];\n onSearchCallback?: (e: ChangeEventHandler) => 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\n const handleSearch = useCallback(\n (e) => {\n const searchInput = e.target.value;\n\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 if (onSearchCallback) {\n onSearchCallback(e);\n }\n },\n [menuItems, onSearchCallback, setFilteredMenuItems],\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 mt={1}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>): void => handleKeyboardNavigation(e, true)}\n size=\"sm\"\n ref={searchInputRef}\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 } 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 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}\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 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 ...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 return (\n <CMenuList className=\"MeuList\" {...rest} maxW={maxW || 'unset'} maxH={maxH} minW={minW} overflow=\"hidden auto\">\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 />\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 {!filteredMenuItems?.length ? (\n <Box textAlign=\"center\" display=\"block\" p={3}>\n <Text size=\"sm\" variant=\"subtle\">\n No results found\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","handleSearch","useCallback","e","searchInput","target","value","filterdItems","filter","item","labelText","label","_a","key","toLowerCase","includes","useEffect","focusTimeout","setTimeout","current","focus","clearTimeout","React","createElement","TextInput","WrappedTextInput","className","onChange","mt","onKeyDown","size","ref","MenuSelectAllButtons","groupName","handleToggleAllItems","hasSelectedItems","isGrouped","Box","textAlign","w","Button","variant","iconName","onClick","clear","isDisabled","Flex","justifyContent","canSelectAll","canSelectGroups","children","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","rest","__rest","filteredMenuItems","allMenuItems","groups","setGroups","focusedItemIndex","setFocusedItemIndex","menuItemRefs","useMenuContext","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","overflow","m","Boolean","position","minH","pt","pr","pb","pl","justify","align","Heading","display","p","Text","WrappedText","h","top","left","bg","Spinner"],"mappings":"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"}
@@ -0,0 +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-50201fe5.js"),r=require("./textInput.component-82cef412.js"),s=require("./chakra-ui-menu.esm-1ed98193.js"),u=require("./button.component-e26dad51.js"),o=require("./chakra-ui-layout.esm-6ee578f7.js"),i=require("./menu.context-22d23674.js"),c=require("./spinner.component-39040867.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:u,placeholder:o="Search..."})=>{const{isOpen:i}=s.useMenuState(),c=t.useCallback((e=>{const t=e.target.value;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())}));u(e)}else u(l);a&&a(e)}),[l,a,u]);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:o,onChange:c,mt:1,onKeyDown:t=>e(t,!0),size:"sm",ref:n})},p=({groupName:e,handleToggleAllItems:t,hasSelectedItems:l,isGrouped:a})=>a?m.default.createElement(o.Box,{textAlign:"right",w:"50%",className:"MenuListItem__SelectAllButton"},l?m.default.createElement(u.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({groupName:e,clear:!0}),isDisabled:!l},"Clear all"):m.default.createElement(u.Button,{variant:"ghost",size:"xs",onClick:()=>t({groupName:e,clear:!1})},"Select all")):m.default.createElement(o.Box,{mt:"8px",className:"MenuList__SelectAllButtons"},m.default.createElement(o.Flex,{justifyContent:"space-between"},m.default.createElement(u.Button,{variant:"ghost",size:"xs",onClick:()=>t({clear:!1})},"Select all"),m.default.createElement(u.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({clear:!0}),isDisabled:!l},"Clear all")));exports.MenuList=r=>{var{canSelectAll:u=!1,canSelectGroups:d=!1,children:h,isGrouped:v=!1,isMatchWidthSet:g,isMultiSelect:S=!1,isSearchable:x=!1,isLoading:b=!1,menuItems:E,onSelect:I,onSelectAll:k,searchPlaceholder:M,shouldRetainSelection:C=!1,shouldTruncateText:N=!0,minW:w="240px",maxW:y,maxH:A="480px"}=r,B=e.__rest(r,["canSelectAll","canSelectGroups","children","isGrouped","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","menuItems","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH"]);const{filteredMenuItems:L,setFilteredMenuItems:j,allMenuItems:_,groups:T,setGroups:q,focusedItemIndex:G,setFocusedItemIndex:W,searchInputRef:F,menuItemRefs:R}=i.useMenuContext(),z=t.useCallback((e=>{var t,l;if(!(null==R?void 0:R.current))return;const a=0===G,n=G===(null==R?void 0:R.current.length)-1;let r=-1;if("ArrowDown"===e)if(n){if(x)return null===(t=null==F?void 0:F.current)||void 0===t||t.focus(),void W(-1);r=0}else r=G+1;else if("ArrowUp"===e)if(a){if(x)return null===(l=null==F?void 0:F.current)||void 0===l||l.focus(),void W(-1);r=R.current.length-1}else r=G-1;const s=null==R?void 0:R.current[r];s?(null==s||s.focus(),W(r)):W(-1)}),[G,x,R,F,W]),D=t.useCallback(((e,t)=>{e.persist(),(null==R?void 0:R.current)&&("ArrowDown"!==e.key&&"Tab"!==e.key||z("ArrowDown"),"ArrowUp"===e.key&&z("ArrowUp"),"Enter"===e.key&&(e.preventDefault(),e.target.click()))}),[z,R]),H=t.useCallback(((e,t)=>{if(L&&_){const l=[...L],a=l.find((t=>t.value===e.value));S&&a&&(a.isSelected=!a.isSelected),j(l);const n=_.filter((e=>e.isSelected));I&&a&&I(a,n),t&&a&&t(a,n)}}),[_,L,S,I,j]),K=t.useCallback((({groupName:e,clear:t=!1})=>{if(L&&_){const l=[...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))})),j(l),k&&k(_.filter((e=>e.isSelected)))}}),[L,_,k,j]);t.useEffect((()=>{if(v){const e=[...new Set(null==L?void 0:L.map((e=>e.groupLabel)))];e.length&&q(e)}}),[L,v,q]);const O=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:u,handleKeyboardNavigation:D,isMultiSelect:S,itemIndex:t.toString(),menuItemRefs:R,onSelect:t=>H(t,e.onSelect),shouldRetainSelection:C,shouldTruncateText:N}))),[D,H,S,R,C,N,u]);return g||(y="320px"),h?m.default.createElement(s.MenuList,Object.assign({},B),h):m.default.createElement(s.MenuList,Object.assign({className:"MeuList"},B,{maxW:y||"unset",maxH:A,minW:w,overflow:"hidden auto"}),(x||u&&S)&&m.default.createElement(o.Box,{className:"MenuList__Header",m:"0 12px 8px"},x&&m.default.createElement(f,{handleKeyboardNavigation:D,menuItems:E||[],searchInputRef:F,setFilteredMenuItems:j,placeholder:M}),u&&S&&m.default.createElement(p,{handleToggleAllItems:K,hasSelectedItems:Boolean(null==L?void 0:L.find((e=>e.isSelected))),isGrouped:!1})),m.default.createElement(o.Box,{className:"MenuList__Body",position:"relative"},(null==L?void 0:L.length)?v?null==T?void 0:T.map(((e,t)=>{const a=null==L?void 0:L.filter((t=>t.groupLabel===e));return m.default.createElement(o.Box,{className:"MenuList__Group",key:`${e||"noGroup"}-${t}`},e&&m.default.createElement(o.Flex,{minH:8,pt:2,pr:3,pb:1,pl:5,justify:"space-between",align:"center"},m.default.createElement(o.Box,{textAlign:"left",className:"MenuList__GroupTitle"},m.default.createElement(l.WrappedHeading,{size:"xs"},e)),S&&d&&m.default.createElement(p,{handleToggleAllItems:K,hasSelectedItems:Boolean(null==a?void 0:a.find((e=>e.isSelected))),isGrouped:!0,groupName:e})),null==a?void 0:a.map(((e,t)=>O(e,t))))})):null==L?void 0:L.map(((e,t)=>O(e,t))):m.default.createElement(o.Box,{textAlign:"center",display:"block",p:3},m.default.createElement(a.WrappedText,{size:"sm",variant:"subtle"},"No results found")),b&&m.default.createElement(o.Box,{position:"absolute",w:"100%",h:"100%",top:"0",left:"0",bg:"background.alphaContrast.pressed"},m.default.createElement(o.Flex,{h:"100%",align:"center",justify:"center"},m.default.createElement(c.Spinner,null)))))};
2
+ //# sourceMappingURL=menuList.component-c73f8ed4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menuList.component-c73f8ed4.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 ChangeEventHandler,\n Dispatch,\n SetStateAction,\n useCallback,\n KeyboardEvent,\n MutableRefObject,\n useEffect,\n} from 'react';\nimport { TextInput } from '../../../TextInput/textInput.component';\nimport { MenuItemProps } from '../MenuItem/menuItem.component';\nimport { useMenuState } from '@chakra-ui/react';\n\nexport interface MenuSearchBarProps {\n handleKeyboardNavigation: (e: KeyboardEvent<HTMLInputElement>, elementIsInputField: boolean) => void;\n menuItems: MenuItemProps[];\n onSearchCallback?: (e: ChangeEventHandler) => 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\n const handleSearch = useCallback(\n (e) => {\n const searchInput = e.target.value;\n\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 if (onSearchCallback) {\n onSearchCallback(e);\n }\n },\n [menuItems, onSearchCallback, setFilteredMenuItems],\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 mt={1}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>): void => handleKeyboardNavigation(e, true)}\n size=\"sm\"\n ref={searchInputRef}\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 } 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 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}\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 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 ...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 return (\n <CMenuList className=\"MeuList\" {...rest} maxW={maxW || 'unset'} maxH={maxH} minW={minW} overflow=\"hidden auto\">\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 />\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 {!filteredMenuItems?.length ? (\n <Box textAlign=\"center\" display=\"block\" p={3}>\n <Text size=\"sm\" variant=\"subtle\">\n No results found\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","handleSearch","useCallback","e","searchInput","target","value","filterdItems","filter","item","labelText","label","_a","key","toLowerCase","includes","useEffect","focusTimeout","setTimeout","current","focus","clearTimeout","React","createElement","TextInput","WrappedTextInput","className","onChange","mt","onKeyDown","size","ref","MenuSelectAllButtons","groupName","handleToggleAllItems","hasSelectedItems","isGrouped","Box","textAlign","w","Button","variant","iconName","onClick","clear","isDisabled","Flex","justifyContent","canSelectAll","canSelectGroups","children","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","rest","__rest","filteredMenuItems","allMenuItems","groups","setGroups","focusedItemIndex","setFocusedItemIndex","menuItemRefs","useMenuContext","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","overflow","m","Boolean","position","minH","pt","pr","pb","pl","justify","align","Heading","display","p","Text","WrappedText","h","top","left","bg","Spinner"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),l=require("react"),a=require("./chakra-ui-media-query.esm-6217de7e.js"),s=require("./chakra-ui-modal.esm-a00f2bce.js");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(l);exports.Modal=l=>{var{children:r,isOpen:i,onClose:t,isCentered:n=!0,responsiveModalSizes:u,allowEscape:c=!0,useFullScreenMobile:d=!0,initialFocusRef:b,scrollBehavior:m,size:f="xl"}=l,p=e.__rest(l,["children","isOpen","onClose","isCentered","responsiveModalSizes","allowEscape","useFullScreenMobile","initialFocusRef","scrollBehavior","size"]);const v=a.useBreakpointValue({base:"full",md:f}),k=a.useBreakpointValue({base:0,md:"xl"}),C=a.useBreakpointValue({base:d?0:16,md:16});return o.default.createElement(s.Modal,Object.assign({closeOnEsc:c,closeOnOverlayClick:c,autoFocus:!!b,isOpen:i,onClose:t,scrollBehavior:m,isCentered:n,size:d?v:f,motionPreset:"slideInBottom"},p),o.default.createElement(s.ModalOverlay,null),o.default.createElement(s.ModalContent,Object.assign({backgroundColor:"background.overlay",m:C},!d&&{mx:5},{borderRadius:d?k:"xl"},d&&{minH:{base:"-webkit-fill-available",md:"auto"}}),r))};
2
- //# sourceMappingURL=modal.component-0d68beaa.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),l=require("react"),a=require("./chakra-ui-media-query.esm-6217de7e.js"),s=require("./chakra-ui-modal.esm-f42d0687.js");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=r(l);exports.Modal=l=>{var{children:r,isOpen:i,onClose:t,isCentered:n=!0,responsiveModalSizes:u,allowEscape:d=!0,useFullScreenMobile:c=!0,initialFocusRef:m,scrollBehavior:b,size:f="xl"}=l,p=e.__rest(l,["children","isOpen","onClose","isCentered","responsiveModalSizes","allowEscape","useFullScreenMobile","initialFocusRef","scrollBehavior","size"]);const v=a.useBreakpointValue({base:"full",md:f}),k=a.useBreakpointValue({base:0,md:"xl"}),C=a.useBreakpointValue({base:c?0:16,md:16});return o.default.createElement(s.Modal,Object.assign({closeOnEsc:d,closeOnOverlayClick:d,autoFocus:!!m,isOpen:i,onClose:t,scrollBehavior:b,isCentered:n,size:c?v:f,motionPreset:"slideInBottom"},p),o.default.createElement(s.ModalOverlay,null),o.default.createElement(s.ModalContent,Object.assign({backgroundColor:"background.overlay",m:C},!c&&{mx:5},{borderRadius:c?k:"xl"},c&&{minH:{base:"-webkit-fill-available",md:"auto"}}),r))};
2
+ //# sourceMappingURL=modal.component-570c1543.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.component-0d68beaa.js","sources":["../src/components/Modal/modal.component.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n Modal as CModal,\n ModalProps as CModalProps,\n ModalContent,\n ModalOverlay,\n useBreakpointValue,\n} from '@chakra-ui/react';\nimport { FocusableElement } from '@chakra-ui/utils';\nimport { ModalSize } from './modal.types';\n\ntype ResponsiveBreakpoints = 'base' | 'md';\n\nexport interface ModalProps extends CModalProps {\n children: ReactNode;\n isCentered?: boolean;\n responsiveModalSizes?: Partial<Record<ResponsiveBreakpoints, ModalSize>>;\n allowEscape?: boolean;\n useFullScreenMobile?: boolean;\n initialFocusRef?: React.RefObject<FocusableElement>;\n scrollBehavior?: 'inside' | 'outside';\n size?: string;\n}\n\nexport const Modal = ({\n children,\n isOpen,\n onClose,\n isCentered = true,\n responsiveModalSizes,\n allowEscape = true,\n useFullScreenMobile = true,\n initialFocusRef,\n scrollBehavior,\n size = 'xl',\n ...rest\n}: ModalProps): JSX.Element => {\n // Responsive values for full screen modals on phones.\n const fullScreenMobileSize = useBreakpointValue({ base: 'full', md: size });\n const fullScreenMobileBorderRadius = useBreakpointValue({ base: 0, md: 'xl' });\n const modalMargin = useBreakpointValue({ base: useFullScreenMobile ? 0 : 16, md: 16 });\n\n const Modal: JSX.Element = (\n <CModal\n closeOnEsc={allowEscape}\n closeOnOverlayClick={allowEscape}\n autoFocus={!!initialFocusRef}\n isOpen={isOpen}\n onClose={onClose}\n scrollBehavior={scrollBehavior}\n isCentered={isCentered}\n size={useFullScreenMobile ? fullScreenMobileSize : size}\n motionPreset=\"slideInBottom\"\n {...rest}\n >\n <ModalOverlay />\n <ModalContent\n backgroundColor=\"background.overlay\"\n m={modalMargin}\n {...(!useFullScreenMobile && { mx: 5 })}\n borderRadius={useFullScreenMobile ? fullScreenMobileBorderRadius : 'xl'}\n {...(useFullScreenMobile && { minH: { base: '-webkit-fill-available', md: 'auto' } })}\n >\n {children}\n </ModalContent>\n </CModal>\n );\n\n return Modal;\n};\n"],"names":["_a","children","isOpen","onClose","isCentered","responsiveModalSizes","allowEscape","useFullScreenMobile","initialFocusRef","scrollBehavior","size","rest","__rest","fullScreenMobileSize","useBreakpointValue","base","md","fullScreenMobileBorderRadius","modalMargin","React","createElement","CModal","Modal","closeOnEsc","closeOnOverlayClick","autoFocus","motionPreset","ModalOverlay","ModalContent","Object","assign","backgroundColor","m","mx","borderRadius","minH"],"mappings":"8QAwBsBA,IAAA,IAAAC,SACpBA,EAAQC,OACRA,EAAMC,QACNA,EAAOC,WACPA,GAAa,EAAIC,qBACjBA,EAAoBC,YACpBA,GAAc,EAAIC,oBAClBA,GAAsB,EAAIC,gBAC1BA,EAAeC,eACfA,EAAcC,KACdA,EAAO,MAEIV,EADRW,EAAIC,EAAAA,OAAAZ,EAXa,mJAcpB,MAAMa,EAAuBC,EAAAA,mBAAmB,CAAEC,KAAM,OAAQC,GAAIN,IAC9DO,EAA+BH,EAAAA,mBAAmB,CAAEC,KAAM,EAAGC,GAAI,OACjEE,EAAcJ,qBAAmB,CAAEC,KAAMR,EAAsB,EAAI,GAAIS,GAAI,KA4BjF,OAzBEG,EAAC,QAAAC,cAAAC,EAAMC,qBACLC,WAAYjB,EACZkB,oBAAqBlB,EACrBmB,YAAajB,EACbN,OAAQA,EACRC,QAASA,EACTM,eAAgBA,EAChBL,WAAYA,EACZM,KAAMH,EAAsBM,EAAuBH,EACnDgB,aAAa,iBACTf,GAEJQ,UAAAC,cAACO,EAAYA,aAAG,MAChBR,EAAC,QAAAC,cAAAQ,EAAYA,aACXC,OAAAC,OAAA,CAAAC,gBAAgB,qBAChBC,EAAGd,IACGX,GAAuB,CAAE0B,GAAI,GAAI,CACvCC,aAAc3B,EAAsBU,EAA+B,MAC9DV,GAAuB,CAAE4B,KAAM,CAAEpB,KAAM,yBAA0BC,GAAI,UAEzEf"}
1
+ {"version":3,"file":"modal.component-570c1543.js","sources":["../src/components/Modal/modal.component.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport {\n Modal as CModal,\n ModalProps as CModalProps,\n ModalContent,\n ModalOverlay,\n useBreakpointValue,\n} from '@chakra-ui/react';\nimport { FocusableElement } from '@chakra-ui/utils';\nimport { ModalSize } from './modal.types';\n\ntype ResponsiveBreakpoints = 'base' | 'md';\n\nexport interface ModalProps extends CModalProps {\n children: ReactNode;\n isCentered?: boolean;\n responsiveModalSizes?: Partial<Record<ResponsiveBreakpoints, ModalSize>>;\n allowEscape?: boolean;\n useFullScreenMobile?: boolean;\n initialFocusRef?: React.RefObject<FocusableElement>;\n scrollBehavior?: 'inside' | 'outside';\n size?: string;\n}\n\nexport const Modal = ({\n children,\n isOpen,\n onClose,\n isCentered = true,\n responsiveModalSizes,\n allowEscape = true,\n useFullScreenMobile = true,\n initialFocusRef,\n scrollBehavior,\n size = 'xl',\n ...rest\n}: ModalProps): JSX.Element => {\n // Responsive values for full screen modals on phones.\n const fullScreenMobileSize = useBreakpointValue({ base: 'full', md: size });\n const fullScreenMobileBorderRadius = useBreakpointValue({ base: 0, md: 'xl' });\n const modalMargin = useBreakpointValue({ base: useFullScreenMobile ? 0 : 16, md: 16 });\n\n const Modal: JSX.Element = (\n <CModal\n closeOnEsc={allowEscape}\n closeOnOverlayClick={allowEscape}\n autoFocus={!!initialFocusRef}\n isOpen={isOpen}\n onClose={onClose}\n scrollBehavior={scrollBehavior}\n isCentered={isCentered}\n size={useFullScreenMobile ? fullScreenMobileSize : size}\n motionPreset=\"slideInBottom\"\n {...rest}\n >\n <ModalOverlay />\n <ModalContent\n backgroundColor=\"background.overlay\"\n m={modalMargin}\n {...(!useFullScreenMobile && { mx: 5 })}\n borderRadius={useFullScreenMobile ? fullScreenMobileBorderRadius : 'xl'}\n {...(useFullScreenMobile && { minH: { base: '-webkit-fill-available', md: 'auto' } })}\n >\n {children}\n </ModalContent>\n </CModal>\n );\n\n return Modal;\n};\n"],"names":["_a","children","isOpen","onClose","isCentered","responsiveModalSizes","allowEscape","useFullScreenMobile","initialFocusRef","scrollBehavior","size","rest","__rest","fullScreenMobileSize","useBreakpointValue","base","md","fullScreenMobileBorderRadius","modalMargin","React","createElement","CModal","Modal","closeOnEsc","closeOnOverlayClick","autoFocus","motionPreset","ModalOverlay","ModalContent","Object","assign","backgroundColor","m","mx","borderRadius","minH"],"mappings":"8QAwBsBA,IAAA,IAAAC,SACpBA,EAAQC,OACRA,EAAMC,QACNA,EAAOC,WACPA,GAAa,EAAIC,qBACjBA,EAAoBC,YACpBA,GAAc,EAAIC,oBAClBA,GAAsB,EAAIC,gBAC1BA,EAAeC,eACfA,EAAcC,KACdA,EAAO,MAEIV,EADRW,EAAIC,EAAAA,OAAAZ,EAXa,mJAcpB,MAAMa,EAAuBC,EAAAA,mBAAmB,CAAEC,KAAM,OAAQC,GAAIN,IAC9DO,EAA+BH,EAAAA,mBAAmB,CAAEC,KAAM,EAAGC,GAAI,OACjEE,EAAcJ,qBAAmB,CAAEC,KAAMR,EAAsB,EAAI,GAAIS,GAAI,KA4BjF,OAzBEG,EAAC,QAAAC,cAAAC,EAAMC,qBACLC,WAAYjB,EACZkB,oBAAqBlB,EACrBmB,YAAajB,EACbN,OAAQA,EACRC,QAASA,EACTM,eAAgBA,EAChBL,WAAYA,EACZM,KAAMH,EAAsBM,EAAuBH,EACnDgB,aAAa,iBACTf,GAEJQ,UAAAC,cAACO,EAAYA,aAAG,MAChBR,EAAC,QAAAC,cAAAQ,EAAYA,aACXC,OAAAC,OAAA,CAAAC,gBAAgB,qBAChBC,EAAGd,IACGX,GAAuB,CAAE0B,GAAI,GAAI,CACvCC,aAAc3B,EAAsBU,EAA+B,MAC9DV,GAAuB,CAAE4B,KAAM,CAAEpB,KAAM,yBAA0BC,GAAI,UAEzEf"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),r=require("react"),t=require("./chakra-ui-modal.esm-a00f2bce.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(r);exports.ModalBody=r=>{var{children:a}=r,i=e.__rest(r,["children"]);return d.default.createElement(t.ModalBody,Object.assign({py:1},i),a)};
2
- //# sourceMappingURL=modalBody.component-345aaa1b.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),r=require("react"),t=require("./chakra-ui-modal.esm-f42d0687.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(r);exports.ModalBody=r=>{var{children:a}=r,i=e.__rest(r,["children"]);return d.default.createElement(t.ModalBody,Object.assign({py:1},i),a)};
2
+ //# sourceMappingURL=modalBody.component-6199e234.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modalBody.component-345aaa1b.js","sources":["../src/components/Modal/components/ModalBody/modalBody.component.tsx"],"sourcesContent":["import React from 'react';\nimport { ModalBody as CModalBody, ModalBodyProps as CModalBodyProps } from '@chakra-ui/react';\n\nexport interface ModalBodyProps extends CModalBodyProps {}\n\nexport const ModalBody = ({ children, ...rest }: ModalBodyProps): JSX.Element => {\n return (\n <CModalBody py={1} {...rest}>\n {children}\n </CModalBody>\n );\n};\n"],"names":["_a","children","rest","__rest","React","createElement","CModalBody","ModalBody","Object","assign","py"],"mappings":"6NAK0BA,IAAA,IAAAC,SAAEA,GAAmCD,EAAtBE,EAAIC,EAAAA,OAAAH,EAAnB,cACxB,OACEI,UAAAC,cAACC,EAAUC,UAAAC,OAAAC,OAAA,CAACC,GAAI,GAAOR,GACpBD"}
1
+ {"version":3,"file":"modalBody.component-6199e234.js","sources":["../src/components/Modal/components/ModalBody/modalBody.component.tsx"],"sourcesContent":["import React from 'react';\nimport { ModalBody as CModalBody, ModalBodyProps as CModalBodyProps } from '@chakra-ui/react';\n\nexport interface ModalBodyProps extends CModalBodyProps {}\n\nexport const ModalBody = ({ children, ...rest }: ModalBodyProps): JSX.Element => {\n return (\n <CModalBody py={1} {...rest}>\n {children}\n </CModalBody>\n );\n};\n"],"names":["_a","children","rest","__rest","React","createElement","CModalBody","ModalBody","Object","assign","py"],"mappings":"6NAK0BA,IAAA,IAAAC,SAAEA,GAAmCD,EAAtBE,EAAIC,EAAAA,OAAAH,EAAnB,cACxB,OACEI,UAAAC,cAACC,EAAUC,UAAAC,OAAAC,OAAA,CAACC,GAAI,GAAOR,GACpBD"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),o=require("./button.component-c2b75fd2.js"),r=require("./chakra-ui-modal.esm-f42d0687.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=s(t);exports.ModalCloseButton=t=>{var{right:s=2,top:a=2,size:n="md"}=t,u=e.__rest(t,["right","top","size"]);const{onClose:l}=r.useModalContext();return i.default.createElement(o.Button,Object.assign({variant:"ghostNeutral",onClick:l,iconName:"close",position:"absolute",right:s,top:a,size:n},u))};
2
+ //# sourceMappingURL=modalCloseButton.component-587722ca.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modalCloseButton.component-7f275383.js","sources":["../src/components/Modal/components/ModalCloseButton/modalCloseButton.component.tsx"],"sourcesContent":["import React from 'react';\nimport { useModalContext } from '@chakra-ui/react';\nimport { Button, ButtonProps } from '../../../Button/button.component';\n\nexport interface ModalCloseButtonProps extends ButtonProps {}\n\nexport const ModalCloseButton = ({ right = 2, top = 2, size = 'md', ...rest }: ModalCloseButtonProps): JSX.Element => {\n const { onClose } = useModalContext();\n return (\n <Button\n variant=\"ghostNeutral\"\n onClick={onClose}\n iconName=\"close\"\n position=\"absolute\"\n right={right}\n top={top}\n size={size}\n {...rest}\n />\n );\n};\n"],"names":["_a","right","top","size","rest","__rest","onClose","useModalContext","React","createElement","Button","Object","assign","variant","onClick","iconName","position"],"mappings":"gRAMiCA,IAAA,IAAAC,MAAEA,EAAQ,EAACC,IAAEA,EAAM,EAACC,KAAEA,EAAO,MAAsCH,EAA7BI,EAAIC,EAAAA,OAAAL,EAA1C,wBAC/B,MAAMM,QAAEA,GAAYC,EAAAA,kBACpB,OACEC,UAAAC,cAACC,EAAMA,OAAAC,OAAAC,OAAA,CACLC,QAAQ,eACRC,QAASR,EACTS,SAAS,QACTC,SAAS,WACTf,MAAOA,EACPC,IAAKA,EACLC,KAAMA,GACFC"}
1
+ {"version":3,"file":"modalCloseButton.component-587722ca.js","sources":["../src/components/Modal/components/ModalCloseButton/modalCloseButton.component.tsx"],"sourcesContent":["import React from 'react';\nimport { useModalContext } from '@chakra-ui/react';\nimport { Button, ButtonProps } from '../../../Button/button.component';\n\nexport interface ModalCloseButtonProps extends ButtonProps {}\n\nexport const ModalCloseButton = ({ right = 2, top = 2, size = 'md', ...rest }: ModalCloseButtonProps): JSX.Element => {\n const { onClose } = useModalContext();\n return (\n <Button\n variant=\"ghostNeutral\"\n onClick={onClose}\n iconName=\"close\"\n position=\"absolute\"\n right={right}\n top={top}\n size={size}\n {...rest}\n />\n );\n};\n"],"names":["_a","right","top","size","rest","__rest","onClose","useModalContext","React","createElement","Button","Object","assign","variant","onClick","iconName","position"],"mappings":"gRAMiCA,IAAA,IAAAC,MAAEA,EAAQ,EAACC,IAAEA,EAAM,EAACC,KAAEA,EAAO,MAAsCH,EAA7BI,EAAIC,EAAAA,OAAAL,EAA1C,wBAC/B,MAAMM,QAAEA,GAAYC,EAAAA,kBACpB,OACEC,UAAAC,cAACC,EAAMA,OAAAC,OAAAC,OAAA,CACLC,QAAQ,eACRC,QAASR,EACTS,SAAS,QACTC,SAAS,WACTf,MAAOA,EACPC,IAAKA,EACLC,KAAMA,GACFC"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),o=require("./button.component-e26dad51.js"),r=require("./chakra-ui-modal.esm-f42d0687.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=s(t);exports.ModalCloseButton=t=>{var{right:s=2,top:i=2,size:n="md"}=t,u=e.__rest(t,["right","top","size"]);const{onClose:l}=r.useModalContext();return a.default.createElement(o.Button,Object.assign({variant:"ghostNeutral",onClick:l,iconName:"close",position:"absolute",right:s,top:i,size:n},u))};
2
+ //# sourceMappingURL=modalCloseButton.component-81f1eb9f.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modalCloseButton.component-81f1eb9f.js","sources":["../src/components/Modal/components/ModalCloseButton/modalCloseButton.component.tsx"],"sourcesContent":["import React from 'react';\nimport { useModalContext } from '@chakra-ui/react';\nimport { Button, ButtonProps } from '../../../Button/button.component';\n\nexport interface ModalCloseButtonProps extends ButtonProps {}\n\nexport const ModalCloseButton = ({ right = 2, top = 2, size = 'md', ...rest }: ModalCloseButtonProps): JSX.Element => {\n const { onClose } = useModalContext();\n return (\n <Button\n variant=\"ghostNeutral\"\n onClick={onClose}\n iconName=\"close\"\n position=\"absolute\"\n right={right}\n top={top}\n size={size}\n {...rest}\n />\n );\n};\n"],"names":["_a","right","top","size","rest","__rest","onClose","useModalContext","React","createElement","Button","Object","assign","variant","onClick","iconName","position"],"mappings":"gRAMiCA,IAAA,IAAAC,MAAEA,EAAQ,EAACC,IAAEA,EAAM,EAACC,KAAEA,EAAO,MAAsCH,EAA7BI,EAAIC,EAAAA,OAAAL,EAA1C,wBAC/B,MAAMM,QAAEA,GAAYC,EAAAA,kBACpB,OACEC,UAAAC,cAACC,EAAMA,OAAAC,OAAAC,OAAA,CACLC,QAAQ,eACRC,QAASR,EACTS,SAAS,QACTC,SAAS,WACTf,MAAOA,EACPC,IAAKA,EACLC,KAAMA,GACFC"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),r=require("react"),t=require("./chakra-ui-modal.esm-a00f2bce.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(r);exports.ModalFooter=r=>{var{children:a}=r,i=e.__rest(r,["children"]);return d.default.createElement(t.ModalFooter,Object.assign({pb:6},i),a)};
2
- //# sourceMappingURL=modalFooter.component-1c9fcc61.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),r=require("react"),t=require("./chakra-ui-modal.esm-f42d0687.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=a(r);exports.ModalFooter=r=>{var{children:a}=r,i=e.__rest(r,["children"]);return d.default.createElement(t.ModalFooter,Object.assign({pb:6},i),a)};
2
+ //# sourceMappingURL=modalFooter.component-2f87119b.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modalFooter.component-1c9fcc61.js","sources":["../src/components/Modal/components/ModalFooter/modalFooter.component.tsx"],"sourcesContent":["import React from 'react';\nimport { ModalFooter as CModalFooter, ModalFooterProps as CModalFooterProps } from '@chakra-ui/react';\n\nexport interface ModalFooterProps extends CModalFooterProps {}\n\nexport const ModalFooter = ({ children, ...rest }: ModalFooterProps): JSX.Element => {\n return (\n <CModalFooter pb={6} {...rest}>\n {children}\n </CModalFooter>\n );\n};\n"],"names":["_a","children","rest","__rest","React","createElement","CModalFooter","ModalFooter","Object","assign","pb"],"mappings":"+NAK4BA,IAAA,IAAAC,SAAEA,GAAqCD,EAAxBE,EAAIC,EAAAA,OAAAH,EAAnB,cAC1B,OACEI,UAAAC,cAACC,EAAYC,YAAAC,OAAAC,OAAA,CAACC,GAAI,GAAOR,GACtBD"}
1
+ {"version":3,"file":"modalFooter.component-2f87119b.js","sources":["../src/components/Modal/components/ModalFooter/modalFooter.component.tsx"],"sourcesContent":["import React from 'react';\nimport { ModalFooter as CModalFooter, ModalFooterProps as CModalFooterProps } from '@chakra-ui/react';\n\nexport interface ModalFooterProps extends CModalFooterProps {}\n\nexport const ModalFooter = ({ children, ...rest }: ModalFooterProps): JSX.Element => {\n return (\n <CModalFooter pb={6} {...rest}>\n {children}\n </CModalFooter>\n );\n};\n"],"names":["_a","children","rest","__rest","React","createElement","CModalFooter","ModalFooter","Object","assign","pb"],"mappings":"+NAK4BA,IAAA,IAAAC,SAAEA,GAAqCD,EAAxBE,EAAIC,EAAAA,OAAAH,EAAnB,cAC1B,OACEI,UAAAC,cAACC,EAAYC,YAAAC,OAAAC,OAAA,CAACC,GAAI,GAAOR,GACtBD"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),a=require("./button.component-fef0889c.js"),i=require("./chakra-ui-modal.esm-a00f2bce.js"),n=require("./chakra-ui-layout.esm-6ee578f7.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=l(t);exports.ModalFooterButtons=t=>{var{submitText:l="Submit",isLoading:o,loadingText:s,isDisabled:u,isDestructive:c,mixpanelName:d,children:m,onSubmit:b,allowCancel:f=!0,onCancel:x}=t,p=e.__rest(t,["submitText","isLoading","loadingText","isDisabled","isDestructive","mixpanelName","children","onSubmit","allowCancel","onCancel"]);const{onClose:C}=i.useModalContext();return r.default.createElement(i.ModalFooter,Object.assign({},p,{pb:6}),r.default.createElement(n.Flex,{w:"100%"},f&&r.default.createElement(a.Button,{variant:"tertiary",onClick:()=>{x&&x(),C()}},"Cancel"),r.default.createElement(n.Spacer,null),r.default.createElement(a.Button,{"data-mixpanel-name":d,onClick:b,isLoading:o,loadingText:s,isDisabled:u,variant:c?"primaryDestructive":"primary"},l)))};
2
- //# sourceMappingURL=modalFooterButtons.component-c18d54ae.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),a=require("./button.component-c2b75fd2.js"),i=require("./chakra-ui-modal.esm-f42d0687.js"),n=require("./chakra-ui-layout.esm-6ee578f7.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=l(t);exports.ModalFooterButtons=t=>{var{submitText:l="Submit",isLoading:o,loadingText:s,isDisabled:u,isDestructive:c,mixpanelName:d,children:m,onSubmit:b,allowCancel:f=!0,onCancel:x}=t,p=e.__rest(t,["submitText","isLoading","loadingText","isDisabled","isDestructive","mixpanelName","children","onSubmit","allowCancel","onCancel"]);const{onClose:C}=i.useModalContext();return r.default.createElement(i.ModalFooter,Object.assign({},p,{pb:6}),r.default.createElement(n.Flex,{w:"100%"},f&&r.default.createElement(a.Button,{variant:"tertiary",onClick:()=>{x&&x(),C()}},"Cancel"),r.default.createElement(n.Spacer,null),r.default.createElement(a.Button,{"data-mixpanel-name":d,onClick:b,isLoading:o,loadingText:s,isDisabled:u,variant:c?"primaryDestructive":"primary"},l)))};
2
+ //# sourceMappingURL=modalFooterButtons.component-06ad6a59.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modalFooterButtons.component-c18d54ae.js","sources":["../src/components/Modal/components/ModalFooterButtons/modalFooterButtons.component.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ModalFooter as CModalFooter,\n ModalFooterProps as CModalFooterProps,\n useModalContext,\n Flex,\n Spacer,\n} from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\n\nexport interface ModalFooterButtonProps extends CModalFooterProps {\n mixpanelName?: string;\n submitText?: string;\n isLoading?: boolean;\n loadingText?: string;\n isDisabled?: boolean;\n isDestructive?: boolean;\n onSubmit?: () => void;\n allowCancel?: boolean;\n onCancel?: () => void;\n}\n\nexport const ModalFooterButtons = ({\n submitText = 'Submit',\n isLoading,\n loadingText,\n isDisabled,\n isDestructive,\n mixpanelName,\n children,\n onSubmit,\n allowCancel = true,\n onCancel,\n ...rest\n}: ModalFooterButtonProps): JSX.Element => {\n const { onClose } = useModalContext();\n\n const handleCancel = (): void => {\n if (onCancel) {\n onCancel();\n }\n onClose();\n };\n\n return (\n <CModalFooter {...rest} pb={6}>\n <Flex w=\"100%\">\n {allowCancel && (\n <Button variant=\"tertiary\" onClick={handleCancel}>\n Cancel\n </Button>\n )}\n <Spacer />\n <Button\n data-mixpanel-name={mixpanelName}\n onClick={onSubmit}\n isLoading={isLoading}\n loadingText={loadingText}\n isDisabled={isDisabled}\n variant={isDestructive ? 'primaryDestructive' : 'primary'}\n >\n {submitText}\n </Button>\n </Flex>\n </CModalFooter>\n );\n};\n"],"names":["_a","submitText","isLoading","loadingText","isDisabled","isDestructive","mixpanelName","children","onSubmit","allowCancel","onCancel","rest","__rest","onClose","useModalContext","React","CModalFooter","ModalFooter","Object","assign","pb","createElement","Flex","w","Button","variant","onClick","Spacer"],"mappings":"kUAsBmCA,IAAA,IAAAC,WACjCA,EAAa,SAAQC,UACrBA,EAASC,YACTA,EAAWC,WACXA,EAAUC,cACVA,EAAaC,aACbA,EAAYC,SACZA,EAAQC,SACRA,EAAQC,YACRA,GAAc,EAAIC,SAClBA,GAAQV,EACLW,EAX8BC,EAAAA,OAAAZ,EAAA,CAAA,aAAA,YAAA,cAAA,aAAA,gBAAA,eAAA,WAAA,WAAA,cAAA,aAajC,MAAMa,QAAEA,GAAYC,EAAAA,kBASpB,OACEC,wBAACC,EAAYC,YAAAC,OAAAC,OAAA,GAAKR,EAAM,CAAAS,GAAI,IAC1BL,EAAAA,QAAAM,cAACC,EAAAA,KAAI,CAACC,EAAE,QACLd,GACCM,EAAC,QAAAM,cAAAG,EAAAA,OAAO,CAAAC,QAAQ,WAAWC,QAXd,KACfhB,GACFA,IAEFG,gBAWIE,UAAAM,cAACM,EAAMA,OAAG,MACVZ,UAAAM,cAACG,EAAMA,OACe,CAAA,qBAAAlB,EACpBoB,QAASlB,EACTN,UAAWA,EACXC,YAAaA,EACbC,WAAYA,EACZqB,QAASpB,EAAgB,qBAAuB,WAE/CJ"}
1
+ {"version":3,"file":"modalFooterButtons.component-06ad6a59.js","sources":["../src/components/Modal/components/ModalFooterButtons/modalFooterButtons.component.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ModalFooter as CModalFooter,\n ModalFooterProps as CModalFooterProps,\n useModalContext,\n Flex,\n Spacer,\n} from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\n\nexport interface ModalFooterButtonProps extends CModalFooterProps {\n mixpanelName?: string;\n submitText?: string;\n isLoading?: boolean;\n loadingText?: string;\n isDisabled?: boolean;\n isDestructive?: boolean;\n onSubmit?: () => void;\n allowCancel?: boolean;\n onCancel?: () => void;\n}\n\nexport const ModalFooterButtons = ({\n submitText = 'Submit',\n isLoading,\n loadingText,\n isDisabled,\n isDestructive,\n mixpanelName,\n children,\n onSubmit,\n allowCancel = true,\n onCancel,\n ...rest\n}: ModalFooterButtonProps): JSX.Element => {\n const { onClose } = useModalContext();\n\n const handleCancel = (): void => {\n if (onCancel) {\n onCancel();\n }\n onClose();\n };\n\n return (\n <CModalFooter {...rest} pb={6}>\n <Flex w=\"100%\">\n {allowCancel && (\n <Button variant=\"tertiary\" onClick={handleCancel}>\n Cancel\n </Button>\n )}\n <Spacer />\n <Button\n data-mixpanel-name={mixpanelName}\n onClick={onSubmit}\n isLoading={isLoading}\n loadingText={loadingText}\n isDisabled={isDisabled}\n variant={isDestructive ? 'primaryDestructive' : 'primary'}\n >\n {submitText}\n </Button>\n </Flex>\n </CModalFooter>\n );\n};\n"],"names":["_a","submitText","isLoading","loadingText","isDisabled","isDestructive","mixpanelName","children","onSubmit","allowCancel","onCancel","rest","__rest","onClose","useModalContext","React","CModalFooter","ModalFooter","Object","assign","pb","createElement","Flex","w","Button","variant","onClick","Spacer"],"mappings":"kUAsBmCA,IAAA,IAAAC,WACjCA,EAAa,SAAQC,UACrBA,EAASC,YACTA,EAAWC,WACXA,EAAUC,cACVA,EAAaC,aACbA,EAAYC,SACZA,EAAQC,SACRA,EAAQC,YACRA,GAAc,EAAIC,SAClBA,GAAQV,EACLW,EAX8BC,EAAAA,OAAAZ,EAAA,CAAA,aAAA,YAAA,cAAA,aAAA,gBAAA,eAAA,WAAA,WAAA,cAAA,aAajC,MAAMa,QAAEA,GAAYC,EAAAA,kBASpB,OACEC,wBAACC,EAAYC,YAAAC,OAAAC,OAAA,GAAKR,EAAM,CAAAS,GAAI,IAC1BL,EAAAA,QAAAM,cAACC,EAAAA,KAAI,CAACC,EAAE,QACLd,GACCM,EAAC,QAAAM,cAAAG,EAAAA,OAAO,CAAAC,QAAQ,WAAWC,QAXd,KACfhB,GACFA,IAEFG,gBAWIE,UAAAM,cAACM,EAAMA,OAAG,MACVZ,UAAAM,cAACG,EAAMA,OACe,CAAA,qBAAAlB,EACpBoB,QAASlB,EACTN,UAAWA,EACXC,YAAaA,EACbC,WAAYA,EACZqB,QAASpB,EAAgB,qBAAuB,WAE/CJ"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),a=require("./button.component-e26dad51.js"),i=require("./chakra-ui-modal.esm-f42d0687.js"),n=require("./chakra-ui-layout.esm-6ee578f7.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=l(t);exports.ModalFooterButtons=t=>{var{submitText:l="Submit",isLoading:o,loadingText:s,isDisabled:u,isDestructive:d,mixpanelName:c,children:m,onSubmit:b,allowCancel:f=!0,onCancel:x}=t,p=e.__rest(t,["submitText","isLoading","loadingText","isDisabled","isDestructive","mixpanelName","children","onSubmit","allowCancel","onCancel"]);const{onClose:C}=i.useModalContext();return r.default.createElement(i.ModalFooter,Object.assign({},p,{pb:6}),r.default.createElement(n.Flex,{w:"100%"},f&&r.default.createElement(a.Button,{variant:"tertiary",onClick:()=>{x&&x(),C()}},"Cancel"),r.default.createElement(n.Spacer,null),r.default.createElement(a.Button,{"data-mixpanel-name":c,onClick:b,isLoading:o,loadingText:s,isDisabled:u,variant:d?"primaryDestructive":"primary"},l)))};
2
+ //# sourceMappingURL=modalFooterButtons.component-639964ea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modalFooterButtons.component-639964ea.js","sources":["../src/components/Modal/components/ModalFooterButtons/modalFooterButtons.component.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ModalFooter as CModalFooter,\n ModalFooterProps as CModalFooterProps,\n useModalContext,\n Flex,\n Spacer,\n} from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\n\nexport interface ModalFooterButtonProps extends CModalFooterProps {\n mixpanelName?: string;\n submitText?: string;\n isLoading?: boolean;\n loadingText?: string;\n isDisabled?: boolean;\n isDestructive?: boolean;\n onSubmit?: () => void;\n allowCancel?: boolean;\n onCancel?: () => void;\n}\n\nexport const ModalFooterButtons = ({\n submitText = 'Submit',\n isLoading,\n loadingText,\n isDisabled,\n isDestructive,\n mixpanelName,\n children,\n onSubmit,\n allowCancel = true,\n onCancel,\n ...rest\n}: ModalFooterButtonProps): JSX.Element => {\n const { onClose } = useModalContext();\n\n const handleCancel = (): void => {\n if (onCancel) {\n onCancel();\n }\n onClose();\n };\n\n return (\n <CModalFooter {...rest} pb={6}>\n <Flex w=\"100%\">\n {allowCancel && (\n <Button variant=\"tertiary\" onClick={handleCancel}>\n Cancel\n </Button>\n )}\n <Spacer />\n <Button\n data-mixpanel-name={mixpanelName}\n onClick={onSubmit}\n isLoading={isLoading}\n loadingText={loadingText}\n isDisabled={isDisabled}\n variant={isDestructive ? 'primaryDestructive' : 'primary'}\n >\n {submitText}\n </Button>\n </Flex>\n </CModalFooter>\n );\n};\n"],"names":["_a","submitText","isLoading","loadingText","isDisabled","isDestructive","mixpanelName","children","onSubmit","allowCancel","onCancel","rest","__rest","onClose","useModalContext","React","CModalFooter","ModalFooter","Object","assign","pb","createElement","Flex","w","Button","variant","onClick","Spacer"],"mappings":"kUAsBmCA,IAAA,IAAAC,WACjCA,EAAa,SAAQC,UACrBA,EAASC,YACTA,EAAWC,WACXA,EAAUC,cACVA,EAAaC,aACbA,EAAYC,SACZA,EAAQC,SACRA,EAAQC,YACRA,GAAc,EAAIC,SAClBA,GAAQV,EACLW,EAX8BC,EAAAA,OAAAZ,EAAA,CAAA,aAAA,YAAA,cAAA,aAAA,gBAAA,eAAA,WAAA,WAAA,cAAA,aAajC,MAAMa,QAAEA,GAAYC,EAAAA,kBASpB,OACEC,wBAACC,EAAYC,YAAAC,OAAAC,OAAA,GAAKR,EAAM,CAAAS,GAAI,IAC1BL,EAAAA,QAAAM,cAACC,EAAAA,KAAI,CAACC,EAAE,QACLd,GACCM,EAAC,QAAAM,cAAAG,EAAAA,OAAO,CAAAC,QAAQ,WAAWC,QAXd,KACfhB,GACFA,IAEFG,gBAWIE,UAAAM,cAACM,EAAMA,OAAG,MACVZ,UAAAM,cAACG,EAAMA,OACe,CAAA,qBAAAlB,EACpBoB,QAASlB,EACTN,UAAWA,EACXC,YAAaA,EACbC,WAAYA,EACZqB,QAASpB,EAAgB,qBAAuB,WAE/CJ"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),r=require("react"),a=require("./heading.component-e55f8364.js"),t=require("./chakra-ui-modal.esm-a00f2bce.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=d(r);exports.ModalHeader=r=>{var{size:d="md",children:s}=r,n=e.__rest(r,["size","children"]);return i.default.createElement(t.ModalHeader,Object.assign({px:6,pt:6,pb:2},n),i.default.createElement(a.WrappedHeading,{size:d},s))};
2
- //# sourceMappingURL=modalHeader.component-204451e0.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),r=require("react"),a=require("./heading.component-e55f8364.js"),t=require("./chakra-ui-modal.esm-f42d0687.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=d(r);exports.ModalHeader=r=>{var{size:d="md",children:s}=r,n=e.__rest(r,["size","children"]);return i.default.createElement(t.ModalHeader,Object.assign({px:6,pt:6,pb:2},n),i.default.createElement(a.WrappedHeading,{size:d},s))};
2
+ //# sourceMappingURL=modalHeader.component-92f511f0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modalHeader.component-204451e0.js","sources":["../src/components/Modal/components/ModalHeader/modalHeader.component.tsx"],"sourcesContent":["import React from 'react';\nimport { ModalHeader as CModalHeader, ModalHeaderProps as CModalHeaderProps } from '@chakra-ui/react';\nimport { HeadingSize } from '../../../Heading/heading.types';\nimport { Heading } from '../../../Heading/heading.component';\n\nexport interface ModalHeaderProps extends CModalHeaderProps {\n size?: HeadingSize;\n}\n\nexport const ModalHeader = ({ size = 'md', children, ...rest }: ModalHeaderProps): JSX.Element => {\n return (\n <CModalHeader px={6} pt={6} pb={2} {...rest}>\n <Heading size={size}>{children}</Heading>\n </CModalHeader>\n );\n};\n"],"names":["_a","size","children","rest","__rest","React","createElement","CModalHeader","ModalHeader","Object","assign","px","pt","pb","Heading"],"mappings":"4QAS4BA,QAAAC,KAAEA,EAAO,KAAIC,SAAEA,KAAaC,EAA5BC,EAAAA,OAAAJ,EAAA,CAAA,OAAA,aAC1B,OACEK,EAAC,QAAAC,cAAAC,EAAYC,YAACC,OAAAC,OAAA,CAAAC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAAOV,GACrCE,EAAC,QAAAC,cAAAQ,iBAAQ,CAAAb,KAAMA,GAAOC"}
1
+ {"version":3,"file":"modalHeader.component-92f511f0.js","sources":["../src/components/Modal/components/ModalHeader/modalHeader.component.tsx"],"sourcesContent":["import React from 'react';\nimport { ModalHeader as CModalHeader, ModalHeaderProps as CModalHeaderProps } from '@chakra-ui/react';\nimport { HeadingSize } from '../../../Heading/heading.types';\nimport { Heading } from '../../../Heading/heading.component';\n\nexport interface ModalHeaderProps extends CModalHeaderProps {\n size?: HeadingSize;\n}\n\nexport const ModalHeader = ({ size = 'md', children, ...rest }: ModalHeaderProps): JSX.Element => {\n return (\n <CModalHeader px={6} pt={6} pb={2} {...rest}>\n <Heading size={size}>{children}</Heading>\n </CModalHeader>\n );\n};\n"],"names":["_a","size","children","rest","__rest","React","createElement","CModalHeader","ModalHeader","Object","assign","px","pt","pb","Heading"],"mappings":"4QAS4BA,QAAAC,KAAEA,EAAO,KAAIC,SAAEA,KAAaC,EAA5BC,EAAAA,OAAAJ,EAAA,CAAA,OAAA,aAC1B,OACEK,EAAC,QAAAC,cAAAC,EAAYC,YAACC,OAAAC,OAAA,CAAAC,GAAI,EAAGC,GAAI,EAAGC,GAAI,GAAOV,GACrCE,EAAC,QAAAC,cAAAQ,iBAAQ,CAAAb,KAAMA,GAAOC"}
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),r=require("./popoverHeader.component-70375fd8.js"),o=require("./popoverFooter.component-c30db814.js"),a=require("./text.component-057889c3.js"),s=require("./chakra-ui-popover.esm-1e836c11.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=n(t);exports.Popover=n=>{var{allowEscape:i=!0,anchor:l,children:u,contentProps:d,footerProps:p,headerProps:f,placement:v="auto",size:g="sm",trigger:m="click",variant:b="contrast"}=n,P=e.__rest(n,["allowEscape","anchor","children","contentProps","footerProps","headerProps","placement","size","trigger","variant"]);const j=t.useMemo((()=>{switch(b){case"contrast":case"contrastDestructive":return{bg:"background.contrast",color:"text.onContrast"};case"default":case"defaultDestructive":return{bg:"background.default",color:"text.default"}}}),[b]),E="contrast"===b||"contrastDestructive"===b,h="contrastDestructive"===b||"defaultDestructive"===b;return c.default.createElement(s.Popover,Object.assign({size:g,closeOnBlur:i,closeOnEsc:i,placement:v,trigger:m},P),c.default.createElement(s.PopoverTrigger,null,l),c.default.createElement(s.PopoverContent,Object.assign({},j,d,{shadow:"md"}),c.default.createElement(s.PopoverArrow,Object.assign({},j)),f&&c.default.createElement(r.PopoverHeader,Object.assign({isOnContrast:E},j,f)),c.default.createElement(s.PopoverBody,Object.assign({py:3,borderRadius:"inherit"},j),"string"==typeof u?c.default.createElement(a.WrappedText,{variant:E?"onContrast":"default",size:"sm"},u):u),p&&c.default.createElement(o.PopoverFooter,Object.assign({isDestructive:h,isOnContrast:E},p,j))))};
2
- //# sourceMappingURL=popover.component-0ae5fbb4.js.map
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),r=require("./popoverHeader.component-b673151a.js"),o=require("./popoverFooter.component-75ebea56.js"),a=require("./text.component-057889c3.js"),s=require("./chakra-ui-popover.esm-1e836c11.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=n(t);exports.Popover=n=>{var{allowEscape:i=!0,anchor:l,children:u,contentProps:p,footerProps:d,headerProps:v,placement:f="auto",size:g="sm",trigger:m="click",variant:b="contrast"}=n,P=e.__rest(n,["allowEscape","anchor","children","contentProps","footerProps","headerProps","placement","size","trigger","variant"]);const j=t.useMemo((()=>{switch(b){case"contrast":case"contrastDestructive":return{bg:"background.contrast",color:"text.onContrast"};case"default":case"defaultDestructive":return{bg:"background.default",color:"text.default"}}}),[b]),E="contrast"===b||"contrastDestructive"===b,h="contrastDestructive"===b||"defaultDestructive"===b;return c.default.createElement(s.Popover,Object.assign({size:g,closeOnBlur:i,closeOnEsc:i,placement:f,trigger:m},P),c.default.createElement(s.PopoverTrigger,null,l),c.default.createElement(s.PopoverContent,Object.assign({},j,p,{shadow:"md"}),c.default.createElement(s.PopoverArrow,Object.assign({},j)),v&&c.default.createElement(r.PopoverHeader,Object.assign({isOnContrast:E},j,v)),c.default.createElement(s.PopoverBody,Object.assign({py:3,borderRadius:"inherit"},j),"string"==typeof u?c.default.createElement(a.WrappedText,{variant:E?"onContrast":"default",size:"sm"},u):u),d&&c.default.createElement(o.PopoverFooter,Object.assign({isDestructive:h,isOnContrast:E},d,j))))};
2
+ //# sourceMappingURL=popover.component-9bffab9f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"popover.component-0ae5fbb4.js","sources":["../src/components/Popover/popover.component.tsx"],"sourcesContent":["import React, { ReactNode, useMemo } from 'react';\nimport {\n Popover as CPopover,\n PopoverProps as CPopoverProps,\n PopoverTrigger as CPopoverTrigger,\n PopoverContent as CPopoverContent,\n PopoverArrow as CPopoverArrow,\n PopoverBody as CPopoverBody,\n PopoverContentProps,\n} from '@chakra-ui/react';\nimport { PopoverPlacement, PopoverSize, PopoverVariant, PopoverTriggerType } from './popover.types';\nimport { PopoverHeader, PopoverHeaderProps } from './components/PopoverHeader';\nimport { PopoverFooter, PopoverFooterProps } from './components/PopoverFooter';\nimport { Text } from '../Text';\n\nexport interface KPopoverProps {\n allowEscape?: boolean;\n anchor: ReactNode;\n children: ReactNode;\n footerProps?: PopoverFooterProps;\n headerProps?: PopoverHeaderProps;\n contentProps?: PopoverContentProps;\n placement?: PopoverPlacement;\n size?: PopoverSize;\n trigger?: PopoverTriggerType;\n variant?: PopoverVariant;\n}\n\nexport type PopoverProps = KPopoverProps & CPopoverProps;\n\nexport const Popover = ({\n allowEscape = true,\n anchor,\n children,\n contentProps,\n footerProps,\n headerProps,\n placement = 'auto',\n size = 'sm',\n trigger = 'click',\n variant = 'contrast',\n ...rest\n}: PopoverProps): JSX.Element => {\n // Manually setting the variant styles here rather than in the config\n // because chakra doesn't style the tooltip/popover arrow properly when styles are customized\n // See GH issue for reference: https://github.com/chakra-ui/chakra-ui/issues/4695#issuecomment-991023319\n const styles = useMemo(() => {\n switch (variant) {\n case 'contrast':\n case 'contrastDestructive':\n return {\n bg: 'background.contrast',\n color: 'text.onContrast',\n };\n case 'default':\n case 'defaultDestructive':\n return {\n bg: 'background.default',\n color: 'text.default',\n };\n default:\n break;\n }\n }, [variant]);\n\n const isOnContrast = variant === 'contrast' || variant === 'contrastDestructive';\n const isDestructive = variant === 'contrastDestructive' || variant === 'defaultDestructive';\n\n return (\n <CPopover\n size={size}\n closeOnBlur={allowEscape}\n closeOnEsc={allowEscape}\n placement={placement}\n trigger={trigger}\n {...rest}\n >\n <CPopoverTrigger>{anchor}</CPopoverTrigger>\n <CPopoverContent {...styles} {...contentProps} shadow=\"md\">\n <CPopoverArrow {...styles} />\n {headerProps && <PopoverHeader isOnContrast={isOnContrast} {...styles} {...headerProps} />}\n <CPopoverBody py={3} borderRadius=\"inherit\" {...styles}>\n {typeof children === 'string' ? (\n <Text variant={isOnContrast ? 'onContrast' : 'default'} size=\"sm\">\n {children}\n </Text>\n ) : (\n children\n )}\n </CPopoverBody>\n {footerProps && (\n <PopoverFooter isDestructive={isDestructive} isOnContrast={isOnContrast} {...footerProps} {...styles} />\n )}\n </CPopoverContent>\n </CPopover>\n );\n};\n"],"names":["_a","allowEscape","anchor","children","contentProps","footerProps","headerProps","placement","size","trigger","variant","rest","__rest","styles","useMemo","bg","color","isOnContrast","isDestructive","React","createElement","CPopover","Popover","Object","assign","closeOnBlur","closeOnEsc","CPopoverTrigger","CPopoverContent","shadow","CPopoverArrow","PopoverHeader","CPopoverBody","py","borderRadius","Text","PopoverFooter"],"mappings":"6WA8BwBA,IAAA,IAAAC,YACtBA,GAAc,EAAIC,OAClBA,EAAMC,SACNA,EAAQC,aACRA,EAAYC,YACZA,EAAWC,YACXA,EAAWC,UACXA,EAAY,OAAMC,KAClBA,EAAO,KAAIC,QACXA,EAAU,QAAOC,QACjBA,EAAU,YAEGV,EADVW,EAAIC,EAAAA,OAAAZ,EAXe,uHAgBtB,MAAMa,EAASC,EAAAA,SAAQ,KACrB,OAAQJ,GACN,IAAK,WACL,IAAK,sBACH,MAAO,CACLK,GAAI,sBACJC,MAAO,mBAEX,IAAK,UACL,IAAK,qBACH,MAAO,CACLD,GAAI,qBACJC,MAAO,mBAKZ,CAACN,IAEEO,EAA2B,aAAZP,GAAsC,wBAAZA,EACzCQ,EAA4B,wBAAZR,GAAiD,uBAAZA,EAE3D,OACES,EAAAA,QAACC,cAAAC,EAAQC,QACPC,OAAAC,OAAA,CAAAhB,KAAMA,EACNiB,YAAaxB,EACbyB,WAAYzB,EACZM,UAAWA,EACXE,QAASA,GACLE,GAEJQ,EAAAA,QAACC,cAAAO,iBAAiB,KAAAzB,GAClBiB,EAAAA,QAACC,cAAAQ,kCAAoBf,EAAYT,EAAc,CAAAyB,OAAO,OACpDV,EAAC,QAAAC,cAAAU,eAAkBP,OAAAC,OAAA,GAAAX,IAClBP,GAAea,EAAC,QAAAC,cAAAW,EAAAA,cAAcR,OAAAC,OAAA,CAAAP,aAAcA,GAAkBJ,EAAYP,IAC3Ea,EAAAA,QAACC,cAAAY,EAAAA,2BAAaC,GAAI,EAAGC,aAAa,WAAcrB,GACzB,iBAAbV,EACNgB,EAAAA,QAACC,cAAAe,EAAAA,YAAK,CAAAzB,QAASO,EAAe,aAAe,UAAWT,KAAK,MAC1DL,GACI,GAKVE,GACCc,EAAC,QAAAC,cAAAgB,EAAaA,6BAAClB,cAAeA,EAAeD,aAAcA,GAAkBZ,EAAiBQ"}
1
+ {"version":3,"file":"popover.component-9bffab9f.js","sources":["../src/components/Popover/popover.component.tsx"],"sourcesContent":["import React, { ReactNode, useMemo } from 'react';\nimport {\n Popover as CPopover,\n PopoverProps as CPopoverProps,\n PopoverTrigger as CPopoverTrigger,\n PopoverContent as CPopoverContent,\n PopoverArrow as CPopoverArrow,\n PopoverBody as CPopoverBody,\n PopoverContentProps,\n} from '@chakra-ui/react';\nimport { PopoverPlacement, PopoverSize, PopoverVariant, PopoverTriggerType } from './popover.types';\nimport { PopoverHeader, PopoverHeaderProps } from './components/PopoverHeader';\nimport { PopoverFooter, PopoverFooterProps } from './components/PopoverFooter';\nimport { Text } from '../Text';\n\nexport interface KPopoverProps {\n allowEscape?: boolean;\n anchor: ReactNode;\n children: ReactNode;\n footerProps?: PopoverFooterProps;\n headerProps?: PopoverHeaderProps;\n contentProps?: PopoverContentProps;\n placement?: PopoverPlacement;\n size?: PopoverSize;\n trigger?: PopoverTriggerType;\n variant?: PopoverVariant;\n}\n\nexport type PopoverProps = KPopoverProps & CPopoverProps;\n\nexport const Popover = ({\n allowEscape = true,\n anchor,\n children,\n contentProps,\n footerProps,\n headerProps,\n placement = 'auto',\n size = 'sm',\n trigger = 'click',\n variant = 'contrast',\n ...rest\n}: PopoverProps): JSX.Element => {\n // Manually setting the variant styles here rather than in the config\n // because chakra doesn't style the tooltip/popover arrow properly when styles are customized\n // See GH issue for reference: https://github.com/chakra-ui/chakra-ui/issues/4695#issuecomment-991023319\n const styles = useMemo(() => {\n switch (variant) {\n case 'contrast':\n case 'contrastDestructive':\n return {\n bg: 'background.contrast',\n color: 'text.onContrast',\n };\n case 'default':\n case 'defaultDestructive':\n return {\n bg: 'background.default',\n color: 'text.default',\n };\n default:\n break;\n }\n }, [variant]);\n\n const isOnContrast = variant === 'contrast' || variant === 'contrastDestructive';\n const isDestructive = variant === 'contrastDestructive' || variant === 'defaultDestructive';\n\n return (\n <CPopover\n size={size}\n closeOnBlur={allowEscape}\n closeOnEsc={allowEscape}\n placement={placement}\n trigger={trigger}\n {...rest}\n >\n <CPopoverTrigger>{anchor}</CPopoverTrigger>\n <CPopoverContent {...styles} {...contentProps} shadow=\"md\">\n <CPopoverArrow {...styles} />\n {headerProps && <PopoverHeader isOnContrast={isOnContrast} {...styles} {...headerProps} />}\n <CPopoverBody py={3} borderRadius=\"inherit\" {...styles}>\n {typeof children === 'string' ? (\n <Text variant={isOnContrast ? 'onContrast' : 'default'} size=\"sm\">\n {children}\n </Text>\n ) : (\n children\n )}\n </CPopoverBody>\n {footerProps && (\n <PopoverFooter isDestructive={isDestructive} isOnContrast={isOnContrast} {...footerProps} {...styles} />\n )}\n </CPopoverContent>\n </CPopover>\n );\n};\n"],"names":["_a","allowEscape","anchor","children","contentProps","footerProps","headerProps","placement","size","trigger","variant","rest","__rest","styles","useMemo","bg","color","isOnContrast","isDestructive","React","createElement","CPopover","Popover","Object","assign","closeOnBlur","closeOnEsc","CPopoverTrigger","CPopoverContent","shadow","CPopoverArrow","PopoverHeader","CPopoverBody","py","borderRadius","Text","PopoverFooter"],"mappings":"6WA8BwBA,IAAA,IAAAC,YACtBA,GAAc,EAAIC,OAClBA,EAAMC,SACNA,EAAQC,aACRA,EAAYC,YACZA,EAAWC,YACXA,EAAWC,UACXA,EAAY,OAAMC,KAClBA,EAAO,KAAIC,QACXA,EAAU,QAAOC,QACjBA,EAAU,YAEGV,EADVW,EAAIC,EAAAA,OAAAZ,EAXe,uHAgBtB,MAAMa,EAASC,EAAAA,SAAQ,KACrB,OAAQJ,GACN,IAAK,WACL,IAAK,sBACH,MAAO,CACLK,GAAI,sBACJC,MAAO,mBAEX,IAAK,UACL,IAAK,qBACH,MAAO,CACLD,GAAI,qBACJC,MAAO,mBAKZ,CAACN,IAEEO,EAA2B,aAAZP,GAAsC,wBAAZA,EACzCQ,EAA4B,wBAAZR,GAAiD,uBAAZA,EAE3D,OACES,EAAAA,QAACC,cAAAC,EAAQC,QACPC,OAAAC,OAAA,CAAAhB,KAAMA,EACNiB,YAAaxB,EACbyB,WAAYzB,EACZM,UAAWA,EACXE,QAASA,GACLE,GAEJQ,EAAAA,QAACC,cAAAO,iBAAiB,KAAAzB,GAClBiB,EAAAA,QAACC,cAAAQ,kCAAoBf,EAAYT,EAAc,CAAAyB,OAAO,OACpDV,EAAC,QAAAC,cAAAU,eAAkBP,OAAAC,OAAA,GAAAX,IAClBP,GAAea,EAAC,QAAAC,cAAAW,EAAAA,cAAcR,OAAAC,OAAA,CAAAP,aAAcA,GAAkBJ,EAAYP,IAC3Ea,EAAAA,QAACC,cAAAY,EAAAA,2BAAaC,GAAI,EAAGC,aAAa,WAAcrB,GACzB,iBAAbV,EACNgB,EAAAA,QAACC,cAAAe,EAAAA,YAAK,CAAAzB,QAASO,EAAe,aAAe,UAAWT,KAAK,MAC1DL,GACI,GAKVE,GACCc,EAAC,QAAAC,cAAAgB,EAAaA,6BAAClB,cAAeA,EAAeD,aAAcA,GAAkBZ,EAAiBQ"}
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),r=require("./popoverHeader.component-f94a14f6.js"),o=require("./popoverFooter.component-c9ffa095.js"),a=require("./text.component-057889c3.js"),s=require("./chakra-ui-popover.esm-1e836c11.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=n(t);exports.Popover=n=>{var{allowEscape:i=!0,anchor:l,children:u,contentProps:p,footerProps:d,headerProps:f,placement:v="auto",size:g="sm",trigger:m="click",variant:P="contrast"}=n,b=e.__rest(n,["allowEscape","anchor","children","contentProps","footerProps","headerProps","placement","size","trigger","variant"]);const j=t.useMemo((()=>{switch(P){case"contrast":case"contrastDestructive":return{bg:"background.contrast",color:"text.onContrast"};case"default":case"defaultDestructive":return{bg:"background.default",color:"text.default"}}}),[P]),E="contrast"===P||"contrastDestructive"===P,h="contrastDestructive"===P||"defaultDestructive"===P;return c.default.createElement(s.Popover,Object.assign({size:g,closeOnBlur:i,closeOnEsc:i,placement:v,trigger:m},b),c.default.createElement(s.PopoverTrigger,null,l),c.default.createElement(s.PopoverContent,Object.assign({},j,p,{shadow:"md"}),c.default.createElement(s.PopoverArrow,Object.assign({},j)),f&&c.default.createElement(r.PopoverHeader,Object.assign({isOnContrast:E},j,f)),c.default.createElement(s.PopoverBody,Object.assign({py:3,borderRadius:"inherit"},j),"string"==typeof u?c.default.createElement(a.WrappedText,{variant:E?"onContrast":"default",size:"sm"},u):u),d&&c.default.createElement(o.PopoverFooter,Object.assign({isDestructive:h,isOnContrast:E},d,j))))};
2
+ //# sourceMappingURL=popover.component-c3c4f47c.js.map