@bigbinary/neetoui 8.3.54 → 8.3.55

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 (142) hide show
  1. package/CHANGELOG.md +21 -21
  2. package/dist/ActionDropdown.js +0 -1
  3. package/dist/ActionDropdown.js.map +1 -1
  4. package/dist/Alert.js +6 -6
  5. package/dist/Alert.js.map +1 -1
  6. package/dist/Avatar.js +6 -10
  7. package/dist/Avatar.js.map +1 -1
  8. package/dist/Checkbox.js +4 -4
  9. package/dist/Checkbox.js.map +1 -1
  10. package/dist/ColorPicker.js +3 -4
  11. package/dist/ColorPicker.js.map +1 -1
  12. package/dist/DatePicker.js +3 -3
  13. package/dist/Dropdown.js +2 -2
  14. package/dist/Dropdown.js.map +1 -1
  15. package/dist/Input.js +10 -10
  16. package/dist/Input.js.map +1 -1
  17. package/dist/Label.js +1 -4
  18. package/dist/Label.js.map +1 -1
  19. package/dist/Modal.js +9 -10
  20. package/dist/Modal.js.map +1 -1
  21. package/dist/MultiEmailInput.js +11 -11
  22. package/dist/MultiEmailInput.js.map +1 -1
  23. package/dist/NoData.js +5 -7
  24. package/dist/NoData.js.map +1 -1
  25. package/dist/Pane.js +5 -6
  26. package/dist/Pane.js.map +1 -1
  27. package/dist/ProgressBar.js +1 -1
  28. package/dist/ProgressBar.js.map +1 -1
  29. package/dist/Radio.js +6 -6
  30. package/dist/Radio.js.map +1 -1
  31. package/dist/Select.js +19 -24
  32. package/dist/Select.js.map +1 -1
  33. package/dist/Sidebar.js +10 -11
  34. package/dist/Sidebar.js.map +1 -1
  35. package/dist/Slider.js +3 -3
  36. package/dist/Slider.js.map +1 -1
  37. package/dist/Spinner.js +1 -2
  38. package/dist/Spinner.js.map +1 -1
  39. package/dist/Stepper.js +1 -1
  40. package/dist/Stepper.js.map +1 -1
  41. package/dist/Switch.js +5 -7
  42. package/dist/Switch.js.map +1 -1
  43. package/dist/Tab.js +3 -4
  44. package/dist/Tab.js.map +1 -1
  45. package/dist/Table.js +4 -4
  46. package/dist/Table.js.map +1 -1
  47. package/dist/Tag.js +1 -3
  48. package/dist/Tag.js.map +1 -1
  49. package/dist/{Textarea-CEwODEM3.js → Textarea-DucQtmjX.js} +6 -6
  50. package/dist/Textarea-DucQtmjX.js.map +1 -0
  51. package/dist/Textarea.js +1 -1
  52. package/dist/TimePicker.js +3 -3
  53. package/dist/Toastr.js +3 -8
  54. package/dist/Toastr.js.map +1 -1
  55. package/dist/Tooltip.js +1 -1
  56. package/dist/Tooltip.js.map +1 -1
  57. package/dist/TreeSelect.js +1 -1
  58. package/dist/TreeSelect.js.map +1 -1
  59. package/dist/cjs/ActionDropdown.js +0 -1
  60. package/dist/cjs/ActionDropdown.js.map +1 -1
  61. package/dist/cjs/Alert.js +6 -6
  62. package/dist/cjs/Alert.js.map +1 -1
  63. package/dist/cjs/Avatar.js +5 -9
  64. package/dist/cjs/Avatar.js.map +1 -1
  65. package/dist/cjs/Checkbox.js +4 -4
  66. package/dist/cjs/Checkbox.js.map +1 -1
  67. package/dist/cjs/ColorPicker.js +3 -4
  68. package/dist/cjs/ColorPicker.js.map +1 -1
  69. package/dist/cjs/DatePicker.js +3 -3
  70. package/dist/cjs/Dropdown.js +2 -2
  71. package/dist/cjs/Dropdown.js.map +1 -1
  72. package/dist/cjs/Input.js +10 -10
  73. package/dist/cjs/Input.js.map +1 -1
  74. package/dist/cjs/Label.js +1 -4
  75. package/dist/cjs/Label.js.map +1 -1
  76. package/dist/cjs/Modal.js +9 -10
  77. package/dist/cjs/Modal.js.map +1 -1
  78. package/dist/cjs/MultiEmailInput.js +11 -11
  79. package/dist/cjs/MultiEmailInput.js.map +1 -1
  80. package/dist/cjs/NoData.js +5 -7
  81. package/dist/cjs/NoData.js.map +1 -1
  82. package/dist/cjs/Pane.js +5 -6
  83. package/dist/cjs/Pane.js.map +1 -1
  84. package/dist/cjs/ProgressBar.js +1 -1
  85. package/dist/cjs/ProgressBar.js.map +1 -1
  86. package/dist/cjs/Radio.js +6 -6
  87. package/dist/cjs/Radio.js.map +1 -1
  88. package/dist/cjs/Select.js +19 -24
  89. package/dist/cjs/Select.js.map +1 -1
  90. package/dist/cjs/Sidebar.js +10 -11
  91. package/dist/cjs/Sidebar.js.map +1 -1
  92. package/dist/cjs/Slider.js +3 -3
  93. package/dist/cjs/Slider.js.map +1 -1
  94. package/dist/cjs/Spinner.js +1 -2
  95. package/dist/cjs/Spinner.js.map +1 -1
  96. package/dist/cjs/Stepper.js +1 -1
  97. package/dist/cjs/Stepper.js.map +1 -1
  98. package/dist/cjs/Switch.js +5 -7
  99. package/dist/cjs/Switch.js.map +1 -1
  100. package/dist/cjs/Tab.js +3 -4
  101. package/dist/cjs/Tab.js.map +1 -1
  102. package/dist/cjs/Table.js +4 -4
  103. package/dist/cjs/Table.js.map +1 -1
  104. package/dist/cjs/Tag.js +1 -3
  105. package/dist/cjs/Tag.js.map +1 -1
  106. package/dist/cjs/{Textarea-CdPvAT3A.js → Textarea-BxE7T1u3.js} +6 -6
  107. package/dist/cjs/Textarea-BxE7T1u3.js.map +1 -0
  108. package/dist/cjs/Textarea.js +1 -1
  109. package/dist/cjs/TimePicker.js +3 -3
  110. package/dist/cjs/Toastr.js +3 -8
  111. package/dist/cjs/Toastr.js.map +1 -1
  112. package/dist/cjs/Tooltip.js +1 -1
  113. package/dist/cjs/Tooltip.js.map +1 -1
  114. package/dist/cjs/TreeSelect.js +1 -1
  115. package/dist/cjs/TreeSelect.js.map +1 -1
  116. package/dist/cjs/formik/ActionBlock.js +2 -4
  117. package/dist/cjs/formik/ActionBlock.js.map +1 -1
  118. package/dist/cjs/formik/BlockNavigation.js +6 -6
  119. package/dist/cjs/formik/BlockNavigation.js.map +1 -1
  120. package/dist/cjs/formik/Textarea.js +1 -1
  121. package/dist/cjs/formik/index.js +2 -2
  122. package/dist/cjs/{index-ouVGQMJ2.js → index-BGsAR8rN.js} +14 -15
  123. package/dist/cjs/index-BGsAR8rN.js.map +1 -0
  124. package/dist/cjs/index.js +3 -3
  125. package/dist/cjs/{useOverlayManager-BWAg7Jhg.js → useOverlayManager-BMNCjew1.js} +3 -4
  126. package/dist/cjs/{useOverlayManager-BWAg7Jhg.js.map → useOverlayManager-BMNCjew1.js.map} +1 -1
  127. package/dist/formik/ActionBlock.js +2 -4
  128. package/dist/formik/ActionBlock.js.map +1 -1
  129. package/dist/formik/BlockNavigation.js +6 -6
  130. package/dist/formik/BlockNavigation.js.map +1 -1
  131. package/dist/formik/Textarea.js +1 -1
  132. package/dist/formik/index.js +2 -2
  133. package/dist/{index-Ui8-igXs.js → index-Dlo3HdFv.js} +14 -15
  134. package/dist/index-Dlo3HdFv.js.map +1 -0
  135. package/dist/index.js +3 -3
  136. package/dist/{useOverlayManager-DGTN4LZe.js → useOverlayManager-Bn2Stdmg.js} +3 -4
  137. package/dist/{useOverlayManager-DGTN4LZe.js.map → useOverlayManager-Bn2Stdmg.js.map} +1 -1
  138. package/package.json +1 -1
  139. package/dist/Textarea-CEwODEM3.js.map +0 -1
  140. package/dist/cjs/Textarea-CdPvAT3A.js.map +0 -1
  141. package/dist/cjs/index-ouVGQMJ2.js.map +0 -1
  142. package/dist/index-Ui8-igXs.js.map +0 -1
package/dist/Modal.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../src/components/Modal/Body.jsx","../src/components/Modal/Footer.jsx","../src/components/Modal/Header.jsx","../src/components/Modal/MemoizedChildren.js","../src/components/Modal/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Body = ({ children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__body\", className)}\n data-cy={dataCy ?? \"modal-body\"}\n >\n {children}\n </div>\n);\n\nBody.propTypes = {\n /**\n * To specify className to be applied to the Modal Body.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Body.\n */\n children: PropTypes.node,\n};\n\nexport default Body;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Footer = ({ children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__footer\", className)}\n data-cy={dataCy ?? \"modal-footer\"}\n >\n {children}\n </div>\n);\n\nFooter.propTypes = {\n /**\n * To specify className to be applied to the Modal Footer.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Footer.\n */\n children: PropTypes.node,\n};\n\nexport default Footer;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport Typography from \"../Typography\";\n\nconst Header = ({ description = \"\", children, className, dataCy }) => (\n <div\n className={classnames(\"neeto-ui-modal__header\", className)}\n data-cy={dataCy ?? \"modal-header\"}\n >\n {children}\n {description && (\n <div className=\"neeto-ui-modal__header-desc\" data-cy=\"modal-header-desc\">\n <Typography lineHeight=\"normal\" style=\"body2\">\n {description}\n </Typography>\n </div>\n )}\n </div>\n);\n\nHeader.propTypes = {\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify the short description of the Modal.\n */\n description: PropTypes.string,\n /**\n * To specify className to be applied to the Modal Header container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Header.\n */\n children: PropTypes.node,\n};\n\nexport default Header;\n","import React from \"react\";\n\nconst MemoizedChildren = React.memo(\n ({ children }) => children,\n (_, { shouldUpdate }) => !shouldUpdate\n);\n\nMemoizedChildren.displayName = \"MemoizedChildren\";\n\nexport default MemoizedChildren;\n","import React, { useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Close } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport Backdrop from \"atoms/Backdrop\";\nimport Portal from \"atoms/Portal\";\nimport Button from \"components/Button\";\nimport { useOverlayManager, useOverlay } from \"hooks\";\n\nimport Body from \"./Body\";\nimport Footer from \"./Footer\";\nimport Header from \"./Header\";\nimport MemoizedChildren from \"./MemoizedChildren\";\n\nconst SIZES = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n fullScreen: \"fullScreen\",\n};\n\nconst Modal = ({\n size = SIZES.medium,\n isOpen = false,\n onClose = () => {},\n children,\n finalFocusRef,\n initialFocusRef,\n className = \"\",\n closeOnEsc = true,\n closeButton = true,\n backdropClassName = \"\",\n blockScrollOnMount = true,\n closeOnOutsideClick = true,\n forceRender = false,\n ...otherProps\n}) => {\n const [hasTransitionCompleted, setHasTransitionCompleted] = useState(false);\n\n const modalWrapper = useRef(null);\n const backdropRef = useRef(null);\n\n useOverlayManager(modalWrapper, isOpen);\n\n const { handleOverlayClose, setFocusField } = useOverlay({\n isOpen,\n initialFocusRef,\n finalFocusRef,\n overlayWrapper: modalWrapper,\n onClose,\n backdropRef,\n closeOnOutsideClick,\n closeOnEsc,\n blockScrollOnMount,\n hasTransitionCompleted,\n });\n\n const isFullScreenModal = size === SIZES.fullScreen;\n\n return (\n <Portal rootId=\"neeto-ui-portal\">\n <CSSTransition\n unmountOnExit\n appear={isOpen}\n classNames=\"neeto-ui-modal\"\n in={isOpen}\n timeout={300}\n onEntered={() => setHasTransitionCompleted(true)}\n onExited={() => setHasTransitionCompleted(false)}\n >\n <Backdrop\n data-testid=\"backdrop\"\n key=\"modal-backdrop\"\n ref={backdropRef}\n className={classnames(\n \"neeto-ui-modal__backdrop\",\n {\n \"neeto-ui-modal__backdrop--fullscreen\": isFullScreenModal,\n },\n backdropClassName\n )}\n >\n <div\n aria-modal\n key=\"modal-wrapper\"\n ref={modalWrapper}\n role=\"dialog\"\n className={classnames(\"neeto-ui-modal__wrapper\", {\n \"neeto-ui-modal__wrapper--small\": size === SIZES.small,\n \"neeto-ui-modal__wrapper--medium\": size === SIZES.medium,\n \"neeto-ui-modal__wrapper--large\": size === SIZES.large,\n \"neeto-ui-modal__wrapper--fullscreen\": isFullScreenModal,\n [className]: className,\n })}\n {...otherProps}\n >\n {closeButton && (\n <Button\n aria-label=\"Close\"\n className=\"neeto-ui-modal__close\"\n data-cy=\"modal-close-button\"\n data-testid=\"close-button\"\n icon={Close}\n size={isFullScreenModal ? \"large\" : \"small\"}\n style={isFullScreenModal ? \"secondary\" : \"text\"}\n onClick={handleOverlayClose}\n />\n )}\n <MemoizedChildren shouldUpdate={isOpen || forceRender}>\n {typeof children === \"function\"\n ? children({ setFocusField })\n : children}\n </MemoizedChildren>\n </div>\n </Backdrop>\n </CSSTransition>\n </Portal>\n );\n};\n\nModal.propTypes = {\n /**\n * To specify the size of the Modal.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify whether the Modal is open or not.\n */\n isOpen: PropTypes.bool,\n /**\n * To specify the callback which will be invoked when the Modal is closed.\n */\n onClose: PropTypes.func,\n /**\n * To specify the content to be rendered inside the Modal component.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * To provide external classNames to the Modal.\n */\n className: PropTypes.string,\n /**\n * To close the Modal on pressing the Esc key.\n */\n closeOnEsc: PropTypes.bool,\n /**\n * To specify whether the close button of the Modal should be displayed or not.\n */\n closeButton: PropTypes.bool,\n /**\n * To add custom classes to backdrop component.\n */\n backdropClassName: PropTypes.string,\n /**\n * To close on clicking outside the Modal content.\n */\n closeOnOutsideClick: PropTypes.bool,\n /*\n * To specify the ref of the element which will receive focus when the Modal is closed.\n * If not specified, the focus will be set to the element which was focused when the Modal was opened.\n * If the Modal was opened by clicking on a button, then the focus will be set to the button.\n * */\n finalFocusRef: PropTypes.object,\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify the ref of the element which will receive focus when the Modal is opened.\n * If not specified, the focus will be set to the first focusable element inside the Modal.\n * */\n initialFocusRef: PropTypes.object,\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify whether the scroll should be blocked when the Modal is opened.\n * */\n blockScrollOnMount: PropTypes.bool,\n /**\n * The modal children will be force re-rendered if the boolean is set to `true`. Ideally the modal won't update\n * if the `isOpen` is `false`. You can use this prop to override that nature.\n */\n forceRender: PropTypes.bool,\n};\n\nModal.Header = Header;\nModal.Body = Body;\nModal.Footer = Footer;\n\nexport default Modal;\n"],"names":["Body","_ref","children","className","dataCy","_jsx","classnames","Footer","Header","_ref$description","description","_jsxs","Typography","lineHeight","style","MemoizedChildren","React","memo","_","_ref2","shouldUpdate","displayName","SIZES","small","medium","large","fullScreen","Modal","_ref$size","size","_ref$isOpen","isOpen","_ref$onClose","onClose","finalFocusRef","initialFocusRef","_ref$className","_ref$closeOnEsc","closeOnEsc","_ref$closeButton","closeButton","_ref$backdropClassNam","backdropClassName","_ref$blockScrollOnMou","blockScrollOnMount","_ref$closeOnOutsideCl","closeOnOutsideClick","_ref$forceRender","forceRender","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","hasTransitionCompleted","setHasTransitionCompleted","modalWrapper","useRef","backdropRef","useOverlayManager","_useOverlay","useOverlay","overlayWrapper","handleOverlayClose","setFocusField","isFullScreenModal","Portal","rootId","CSSTransition","unmountOnExit","appear","classNames","timeout","onEntered","onExited","Backdrop","ref","_objectSpread","role","_defineProperty","Button","icon","Close","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../src/components/Modal/Body.jsx","../src/components/Modal/Footer.jsx","../src/components/Modal/Header.jsx","../src/components/Modal/MemoizedChildren.js","../src/components/Modal/index.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Body = ({ children, className, dataTestid }) => (\n <div\n className={classnames(\"neeto-ui-modal__body\", className)}\n data-testid={dataTestid ?? \"modal-body\"}\n >\n {children}\n </div>\n);\n\nBody.propTypes = {\n /**\n * To specify className to be applied to the Modal Body.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Body.\n */\n children: PropTypes.node,\n};\n\nexport default Body;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nconst Footer = ({ children, className, dataTestid }) => (\n <div\n className={classnames(\"neeto-ui-modal__footer\", className)}\n data-testid={dataTestid ?? \"modal-footer\"}\n >\n {children}\n </div>\n);\n\nFooter.propTypes = {\n /**\n * To specify className to be applied to the Modal Footer.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Footer.\n */\n children: PropTypes.node,\n};\n\nexport default Footer;\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\n\nimport Typography from \"../Typography\";\n\nconst Header = ({ description = \"\", children, className, dataTestid }) => (\n <div\n className={classnames(\"neeto-ui-modal__header\", className)}\n data-testid={dataTestid ?? \"modal-header\"}\n >\n {children}\n {description && (\n <div\n className=\"neeto-ui-modal__header-desc\"\n data-testid=\"modal-header-desc\"\n >\n <Typography lineHeight=\"normal\" style=\"body2\">\n {description}\n </Typography>\n </div>\n )}\n </div>\n);\n\nHeader.propTypes = {\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify the short description of the Modal.\n */\n description: PropTypes.string,\n /**\n * To specify className to be applied to the Modal Header container.\n */\n className: PropTypes.string,\n /**\n * To specify the content to be rendered inside the Modal Header.\n */\n children: PropTypes.node,\n};\n\nexport default Header;\n","import React from \"react\";\n\nconst MemoizedChildren = React.memo(\n ({ children }) => children,\n (_, { shouldUpdate }) => !shouldUpdate\n);\n\nMemoizedChildren.displayName = \"MemoizedChildren\";\n\nexport default MemoizedChildren;\n","import React, { useRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { Close } from \"neetoicons\";\nimport PropTypes from \"prop-types\";\nimport { CSSTransition } from \"react-transition-group\";\n\nimport Backdrop from \"atoms/Backdrop\";\nimport Portal from \"atoms/Portal\";\nimport Button from \"components/Button\";\nimport { useOverlayManager, useOverlay } from \"hooks\";\n\nimport Body from \"./Body\";\nimport Footer from \"./Footer\";\nimport Header from \"./Header\";\nimport MemoizedChildren from \"./MemoizedChildren\";\n\nconst SIZES = {\n small: \"small\",\n medium: \"medium\",\n large: \"large\",\n fullScreen: \"fullScreen\",\n};\n\nconst Modal = ({\n size = SIZES.medium,\n isOpen = false,\n onClose = () => {},\n children,\n finalFocusRef,\n initialFocusRef,\n className = \"\",\n closeOnEsc = true,\n closeButton = true,\n backdropClassName = \"\",\n blockScrollOnMount = true,\n closeOnOutsideClick = true,\n forceRender = false,\n ...otherProps\n}) => {\n const [hasTransitionCompleted, setHasTransitionCompleted] = useState(false);\n\n const modalWrapper = useRef(null);\n const backdropRef = useRef(null);\n\n useOverlayManager(modalWrapper, isOpen);\n\n const { handleOverlayClose, setFocusField } = useOverlay({\n isOpen,\n initialFocusRef,\n finalFocusRef,\n overlayWrapper: modalWrapper,\n onClose,\n backdropRef,\n closeOnOutsideClick,\n closeOnEsc,\n blockScrollOnMount,\n hasTransitionCompleted,\n });\n\n const isFullScreenModal = size === SIZES.fullScreen;\n\n return (\n <Portal rootId=\"neeto-ui-portal\">\n <CSSTransition\n unmountOnExit\n appear={isOpen}\n classNames=\"neeto-ui-modal\"\n in={isOpen}\n timeout={300}\n onEntered={() => setHasTransitionCompleted(true)}\n onExited={() => setHasTransitionCompleted(false)}\n >\n <Backdrop\n data-testid=\"backdrop\"\n key=\"modal-backdrop\"\n ref={backdropRef}\n className={classnames(\n \"neeto-ui-modal__backdrop\",\n {\n \"neeto-ui-modal__backdrop--fullscreen\": isFullScreenModal,\n },\n backdropClassName\n )}\n >\n <div\n aria-modal\n key=\"modal-wrapper\"\n ref={modalWrapper}\n role=\"dialog\"\n className={classnames(\"neeto-ui-modal__wrapper\", {\n \"neeto-ui-modal__wrapper--small\": size === SIZES.small,\n \"neeto-ui-modal__wrapper--medium\": size === SIZES.medium,\n \"neeto-ui-modal__wrapper--large\": size === SIZES.large,\n \"neeto-ui-modal__wrapper--fullscreen\": isFullScreenModal,\n [className]: className,\n })}\n {...otherProps}\n >\n {closeButton && (\n <Button\n aria-label=\"Close\"\n className=\"neeto-ui-modal__close\"\n data-testid=\"modal-close-button\"\n icon={Close}\n size={isFullScreenModal ? \"large\" : \"small\"}\n style={isFullScreenModal ? \"secondary\" : \"text\"}\n onClick={handleOverlayClose}\n />\n )}\n <MemoizedChildren shouldUpdate={isOpen || forceRender}>\n {typeof children === \"function\"\n ? children({ setFocusField })\n : children}\n </MemoizedChildren>\n </div>\n </Backdrop>\n </CSSTransition>\n </Portal>\n );\n};\n\nModal.propTypes = {\n /**\n * To specify the size of the Modal.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify whether the Modal is open or not.\n */\n isOpen: PropTypes.bool,\n /**\n * To specify the callback which will be invoked when the Modal is closed.\n */\n onClose: PropTypes.func,\n /**\n * To specify the content to be rendered inside the Modal component.\n */\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n /**\n * To provide external classNames to the Modal.\n */\n className: PropTypes.string,\n /**\n * To close the Modal on pressing the Esc key.\n */\n closeOnEsc: PropTypes.bool,\n /**\n * To specify whether the close button of the Modal should be displayed or not.\n */\n closeButton: PropTypes.bool,\n /**\n * To add custom classes to backdrop component.\n */\n backdropClassName: PropTypes.string,\n /**\n * To close on clicking outside the Modal content.\n */\n closeOnOutsideClick: PropTypes.bool,\n /*\n * To specify the ref of the element which will receive focus when the Modal is closed.\n * If not specified, the focus will be set to the element which was focused when the Modal was opened.\n * If the Modal was opened by clicking on a button, then the focus will be set to the button.\n * */\n finalFocusRef: PropTypes.object,\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify the ref of the element which will receive focus when the Modal is opened.\n * If not specified, the focus will be set to the first focusable element inside the Modal.\n * */\n initialFocusRef: PropTypes.object,\n /**\n * <div class=\"neeto-ui-tag neeto-ui-tag--size-small neeto-ui-tag--style-outline neeto-ui-tag--style-success mb-2\">\n * New\n * </div>\n * To specify whether the scroll should be blocked when the Modal is opened.\n * */\n blockScrollOnMount: PropTypes.bool,\n /**\n * The modal children will be force re-rendered if the boolean is set to `true`. Ideally the modal won't update\n * if the `isOpen` is `false`. You can use this prop to override that nature.\n */\n forceRender: PropTypes.bool,\n};\n\nModal.Header = Header;\nModal.Body = Body;\nModal.Footer = Footer;\n\nexport default Modal;\n"],"names":["Body","_ref","children","className","dataTestid","_jsx","classnames","Footer","Header","_ref$description","description","_jsxs","Typography","lineHeight","style","MemoizedChildren","React","memo","_","_ref2","shouldUpdate","displayName","SIZES","small","medium","large","fullScreen","Modal","_ref$size","size","_ref$isOpen","isOpen","_ref$onClose","onClose","finalFocusRef","initialFocusRef","_ref$className","_ref$closeOnEsc","closeOnEsc","_ref$closeButton","closeButton","_ref$backdropClassNam","backdropClassName","_ref$blockScrollOnMou","blockScrollOnMount","_ref$closeOnOutsideCl","closeOnOutsideClick","_ref$forceRender","forceRender","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","hasTransitionCompleted","setHasTransitionCompleted","modalWrapper","useRef","backdropRef","useOverlayManager","_useOverlay","useOverlay","overlayWrapper","handleOverlayClose","setFocusField","isFullScreenModal","Portal","rootId","CSSTransition","unmountOnExit","appear","classNames","timeout","onEntered","onExited","Backdrop","ref","_objectSpread","role","_defineProperty","Button","icon","Close","onClick"],"mappings":"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"}
@@ -112,7 +112,7 @@ var CustomDropdownIndicator = function CustomDropdownIndicator(props) {
112
112
  };
113
113
  var MultiValueRemove = function MultiValueRemove(props) {
114
114
  return /*#__PURE__*/jsx(components.MultiValueRemove, _objectSpread$2(_objectSpread$2({}, props), {}, {
115
- innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "".concat(hyphenize(props.data.label), "-remove-icon"))),
115
+ innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-testid", "".concat(hyphenize(props.data.label), "-remove-icon"))),
116
116
  children: /*#__PURE__*/jsx(Close, {
117
117
  size: 16
118
118
  })
@@ -132,7 +132,7 @@ var CustomValueContainer = function CustomValueContainer(_ref2) {
132
132
  rest = _children.slice(1);
133
133
  var shouldCollapse = !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;
134
134
  return /*#__PURE__*/jsxs(components.ValueContainer, _objectSpread$2(_objectSpread$2({}, props), {}, {
135
- innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-input-container")),
135
+ innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-testid", "multi-email-input-container")),
136
136
  children: [shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild, shouldCollapse && /*#__PURE__*/jsx(Tag, {
137
137
  label: "".concat(value.length - visibleEmailsCount, " more"),
138
138
  style: "secondary"
@@ -141,7 +141,7 @@ var CustomValueContainer = function CustomValueContainer(_ref2) {
141
141
  };
142
142
  var CustomClearIndicator = function CustomClearIndicator(props) {
143
143
  return /*#__PURE__*/jsx(components.ClearIndicator, _objectSpread$2(_objectSpread$2({}, props), {}, {
144
- innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "clear-all-button")),
144
+ innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-testid", "clear-all-button")),
145
145
  children: /*#__PURE__*/jsx(Close, {
146
146
  className: "cursor-pointer",
147
147
  size: 16
@@ -150,7 +150,7 @@ var CustomClearIndicator = function CustomClearIndicator(props) {
150
150
  };
151
151
  var SelectContainer = function SelectContainer(props) {
152
152
  return /*#__PURE__*/jsx(components.SelectContainer, _objectSpread$2(_objectSpread$2({}, props), {}, {
153
- innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-cy", "multi-email-select-container"))
153
+ innerProps: _objectSpread$2(_objectSpread$2({}, props.innerProps), {}, _defineProperty({}, "data-testid", "multi-email-select-container"))
154
154
  }));
155
155
  };
156
156
  var Input = function Input(props) {
@@ -164,7 +164,7 @@ var Input = function Input(props) {
164
164
  });
165
165
  };
166
166
  return /*#__PURE__*/jsx(components.Input, _objectSpread$2(_objectSpread$2({}, props), {}, {
167
- "data-cy": "email-select-input-field",
167
+ "data-testid": "email-select-input-field",
168
168
  onPaste: handlePaste
169
169
  }));
170
170
  };
@@ -388,18 +388,18 @@ var MultiEmailInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
388
388
  var isFilterEmailsLinkVisible = !!filterInvalidEmails && value.length > getValidEmailsCount(value);
389
389
  return /*#__PURE__*/jsxs("div", {
390
390
  className: "neeto-ui-input__wrapper neeto-ui-email-input__wrapper",
391
- "data-cy": "email-input-wrapper",
391
+ "data-testid": "email-input-wrapper",
392
392
  children: [/*#__PURE__*/jsxs("div", {
393
393
  className: "neeto-ui-email-input__label-wrapper",
394
394
  children: [label && /*#__PURE__*/jsx(Label, _objectSpread(_objectSpread({
395
395
  required: required,
396
396
  className: "neeto-ui-email-input__label",
397
- "data-cy": "".concat(hyphenize(label), "-input-label")
397
+ "data-testid": "".concat(hyphenize(label), "-input-label")
398
398
  }, labelProps), {}, {
399
399
  children: label
400
400
  })), isCounterVisible && /*#__PURE__*/jsxs("p", {
401
401
  className: "neeto-ui-email-input__counter",
402
- "data-cy": "".concat(hyphenize(label), "-email-counter"),
402
+ "data-testid": "".concat(hyphenize(label), "-email-counter"),
403
403
  children: [getValidEmailsCount(value), " ", counter.label ? counter.label : renderDefaultText(getValidEmailsCount(value))]
404
404
  })]
405
405
  }), /*#__PURE__*/jsx(CreatableSelect, _objectSpread({
@@ -442,7 +442,7 @@ var MultiEmailInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
442
442
  menuIsOpen: false
443
443
  }), otherProps), overrideProps))), !!error && /*#__PURE__*/jsxs("p", {
444
444
  className: "neeto-ui-input__error",
445
- "data-cy": "".concat(hyphenize(label), "-input-error"),
445
+ "data-testid": "".concat(hyphenize(label), "-input-error"),
446
446
  children: [error, isFilterEmailsLinkVisible && /*#__PURE__*/jsxs("span", {
447
447
  className: "neeto-ui-font-semibold cursor-pointer",
448
448
  onClick: handleFilterEmails,
@@ -450,11 +450,11 @@ var MultiEmailInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
450
450
  })]
451
451
  }), !!helpText && /*#__PURE__*/jsx("p", {
452
452
  className: "neeto-ui-input__help-text",
453
- "data-cy": "".concat(hyphenize(label), "-input-help"),
453
+ "data-testid": "".concat(hyphenize(label), "-input-help"),
454
454
  children: helpText
455
455
  }), !!duplicateEmails.length && /*#__PURE__*/jsx("p", {
456
456
  className: "neeto-ui-input__error",
457
- "data-cy": "".concat(hyphenize(label), "-duplicate-emails-warning"),
457
+ "data-testid": "".concat(hyphenize(label), "-duplicate-emails-warning"),
458
458
  children: renderDuplicateEmailsWarningMessage(duplicateEmails)
459
459
  })]
460
460
  });
@@ -1 +1 @@
1
- {"version":3,"file":"MultiEmailInput.js","sources":["../src/components/MultiEmailInput/constants.jsx","../src/components/MultiEmailInput/utils.js","../src/components/MultiEmailInput/index.jsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { assoc } from \"ramda\";\nimport { components } from \"react-select\";\n\nimport Tag from \"components/Tag\";\nimport { hyphenize } from \"utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst CustomControl = ({ children, ...props }) => {\n const { getValue } = props;\n const { isFocused, prefix } = props.selectProps;\n\n const prevValue = useRef([]);\n const controlRef = useRef(null);\n\n const value = getValue();\n\n const scrollToBottom = () => {\n const scrollContainer = controlRef.current;\n if (!scrollContainer) return;\n\n const { scrollHeight, clientHeight } = scrollContainer;\n\n scrollContainer.scrollTo({ top: scrollHeight - clientHeight });\n };\n\n useEffect(() => {\n const isItemAdded = value.length > prevValue.current.length;\n const isItemDeleted = value.length < prevValue.current.length;\n\n if ((isFocused && !isItemDeleted) || isItemAdded) scrollToBottom();\n\n prevValue.current = value;\n }, [isFocused, value]);\n\n return (\n <components.Control\n {...props}\n innerProps={{ ...props.innerProps, ref: controlRef }}\n >\n {prefix && <div className=\"neeto-ui-email-input__prefix\">{prefix}</div>}\n {children}\n </components.Control>\n );\n};\n\nconst CustomDropdownIndicator = props => {\n const { suffix } = props.selectProps;\n\n return suffix ? (\n <components.DropdownIndicator {...props}>\n <div className=\"neeto-ui-email-input__suffix\">{suffix}</div>\n </components.DropdownIndicator>\n ) : null;\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: `${hyphenize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst CustomValueContainer = ({ children, ...props }) => {\n const {\n getValue,\n selectProps: { isFocused, visibleEmailsCount, isAlwaysExpanded },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse =\n !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-input-container\",\n }}\n >\n {shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild}\n {shouldCollapse && (\n <Tag\n label={`${value.length - visibleEmailsCount} more`}\n style=\"secondary\"\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst CustomClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"clear-all-button\",\n }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nconst SelectContainer = props => (\n <components.SelectContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-cy\"]: \"multi-email-select-container\",\n }}\n />\n);\n\nconst Input = props => {\n const handlePaste = event => {\n const { handleEmailChange } = props.selectProps;\n\n const text = event.clipboardData.getData(\"Text\");\n if (!EMAIL_REGEX.test(text)) return;\n\n event?.preventDefault();\n setTimeout(() => handleEmailChange(text));\n };\n\n return (\n <components.Input\n {...props}\n data-cy=\"email-select-input-field\"\n onPaste={handlePaste}\n />\n );\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9-]+(?:\\\\.[A-Z0-9-]+)*\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const UNSTRICT_EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\n\nexport const EMAIL_SEPARATION_REGEX = /[^\\s,]+/g;\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: CustomDropdownIndicator,\n Control: CustomControl,\n MultiValueRemove,\n ValueContainer: CustomValueContainer,\n ClearIndicator: CustomClearIndicator,\n SelectContainer,\n Input,\n};\n","import { isPresent } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getEmailsMap = (inputEmails = [], options = []) => {\n const emails = [...inputEmails, ...options];\n const emailsMap = new Map();\n\n emails.forEach(option => {\n const hasPersistedEntry = isPresent(emailsMap.get(option.value)?.id);\n if (!hasPersistedEntry) emailsMap.set(option.value, option);\n });\n\n return emailsMap;\n};\n\nconst processEmailOptions = (inputEmails = [], options = []) => {\n const emailsMap = getEmailsMap(inputEmails, options);\n\n return email => {\n const emailDetails = emailsMap.get(email) || { value: email };\n\n return formatEmailInputOption(emailDetails);\n };\n};\n\nexport const formatEmailInputOption = ({ label, value, ...otherDetails }) => ({\n label: label ?? value,\n value,\n ...otherDetails,\n valid: EMAIL_REGEX.test(value),\n});\n\nexport const pruneDuplicates = (inputValues, options) => {\n const emailProcessor = processEmailOptions(inputValues, options);\n const emails = pluck(\"value\", inputValues);\n const uniqueValuesSet = new Set();\n const duplicates = [];\n\n emails.forEach(pristineEmail => {\n const email = pristineEmail.toLowerCase();\n if (uniqueValuesSet.has(email)) duplicates.push(pristineEmail);\n\n uniqueValuesSet.add(email);\n });\n\n const uniqueValues = Array.from(uniqueValuesSet);\n const uniqueEmails = uniqueValues.map(emailProcessor);\n\n return { uniqueEmails, duplicates };\n};\n\nexport const renderValidEmails = values =>\n values.filter(email => email.valid && email);\n\nexport const getValidEmailsCount = values => renderValidEmails(values).length;\n\nexport const renderDefaultText = count => (count === 1 ? \"email\" : \"emails\");\n\nexport const renderDuplicateEmailsWarningMessage = duplicateEmails => {\n const count = duplicateEmails.length;\n\n return `Removed ${count} duplicate ${renderDefaultText(\n count\n )} from the list: ${duplicateEmails.join(\", \")}`;\n};\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, isEmpty } from \"ramda\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport { noop, hyphenize } from \"utils\";\n\nimport {\n EMAIL_SEPARATION_REGEX,\n CUSTOM_STYLES,\n UNSTRICT_EMAIL_REGEX,\n CUSTOM_COMPONENTS,\n} from \"./constants\";\nimport {\n pruneDuplicates,\n renderValidEmails,\n renderDefaultText,\n getValidEmailsCount,\n renderDuplicateEmailsWarningMessage,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst MultiEmailInput = forwardRef(\n (\n {\n label = \"Email(s)\",\n placeholder = \"\",\n helpText = \"\",\n value = [],\n onChange = noop,\n error = \"\",\n onBlur = noop,\n filterInvalidEmails,\n counter,\n disabled = false,\n maxHeight = 200,\n required = false,\n labelProps,\n visibleEmailsCount = 3,\n isCreateable = true,\n isAlwaysExpanded = false,\n ...otherProps\n },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [duplicateEmails, setDuplicateEmails] = useState([]);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n const isCounterVisible =\n !!counter &&\n (!counter.startsFrom || getValidEmailsCount(value) >= counter.startsFrom);\n\n const isOptionsPresent = !!otherProps.options;\n\n const handleFilterEmails = () => onChange(renderValidEmails(value));\n\n const handleEmailChange = inputValue => {\n if (!isCreateable) return;\n\n const inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);\n const emailMatches =\n inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];\n\n const emails = emailMatches.map(email => ({ value: email }));\n\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, ...emails],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n setInputValue(\"\");\n setIsMenuOpen(false);\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n switch (event.key) {\n case \"Enter\": {\n handleEmailChange(inputValue);\n !isOptionsPresent && event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n case \"Tab\":\n case \",\":\n case \" \": {\n handleEmailChange(inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n const onCreateOption = input => {\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, { value: input }],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n otherProps?.onCreateOption?.(input);\n };\n\n const handleBlur = event => {\n inputValue ? handleEmailChange(inputValue) : onBlur(event);\n setIsFocused(false);\n setDuplicateEmails([]);\n };\n\n let overrideProps = {};\n\n if (isOptionsPresent) {\n const isValidNewOption = (inputValue, _, selectOptions) => {\n if (!isCreateable) return false;\n\n const isInputEmpty = isEmpty(inputValue.trim());\n const doesInputContainSeparator =\n inputValue.includes(\",\") || inputValue.includes(\" \");\n\n const isInputPresentInOptions = selectOptions.find(\n option => option.value === inputValue.toLowerCase()\n );\n\n return !(\n isInputEmpty ||\n doesInputContainSeparator ||\n isInputPresentInOptions\n );\n };\n overrideProps = { onCreateOption, isValidNewOption };\n }\n\n const isFilterEmailsLinkVisible =\n !!filterInvalidEmails && value.length > getValidEmailsCount(value);\n\n return (\n <div\n className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\"\n data-cy=\"email-input-wrapper\"\n >\n <div className=\"neeto-ui-email-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n className=\"neeto-ui-email-input__label\"\n data-cy={`${hyphenize(label)}-input-label`}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCounterVisible && (\n <p\n className=\"neeto-ui-email-input__counter\"\n data-cy={`${hyphenize(label)}-email-counter`}\n >\n {getValidEmailsCount(value)}{\" \"}\n {counter.label\n ? counter.label\n : renderDefaultText(getValidEmailsCount(value))}\n </p>\n )}\n </div>\n <CreatableSelect\n isMulti\n required\n blurInputOnSelect={false}\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n isDisabled={disabled}\n menuIsOpen={isMenuOpen}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: `${maxHeight}px`,\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onKeyDown={handleKeyDown}\n onInputChange={inputValue => {\n setIsMenuOpen(Boolean(inputValue));\n setInputValue(inputValue);\n }}\n {...{\n handleEmailChange,\n inputValue,\n isAlwaysExpanded,\n isFocused,\n onChange,\n placeholder,\n ref,\n value,\n visibleEmailsCount,\n ...(!isOptionsPresent && { menuIsOpen: false }),\n ...otherProps,\n ...overrideProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-input-error`}\n >\n {error}\n {isFilterEmailsLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterEmails}\n >\n &nbsp;\n {filterInvalidEmails.label\n ? filterInvalidEmails.label\n : \"Click here to remove invalid emails.\"}\n </span>\n )}\n </p>\n )}\n {!!helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-cy={`${hyphenize(label)}-input-help`}\n >\n {helpText}\n </p>\n )}\n {!!duplicateEmails.length && (\n <p\n className=\"neeto-ui-input__error\"\n data-cy={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n {renderDuplicateEmailsWarningMessage(duplicateEmails)}\n </p>\n )}\n </div>\n );\n }\n);\n\nMultiEmailInput.displayName = \"MultiEmailInput\";\n\nMultiEmailInput.propTypes = {\n /**\n * To specify the text to be displayed above the Input field.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify the text to be displayed inside the Input field.\n */\n placeholder: PropTypes.string,\n /**\n * To specify the helper text message to be displayed below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify the value to be displayed inside the Input field.\n */\n value: PropTypes.array,\n /**\n * To specify the error message to be shown below the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify the message to be shown besides the error message to filter out the invalid emails.\n */\n filterInvalidEmails: PropTypes.shape({ label: PropTypes.string }),\n /**\n * To add an email counter next to the label.\n */\n counter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.string,\n startsFrom: PropTypes.number,\n }),\n ]),\n /**\n * To specify the action to be triggered on modifying the Input field.\n */\n onChange: PropTypes.func,\n /**\n * To specify the action to be triggered on changing focus from the Input field.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the maximum height (in pixels) of the container before it becomes scrollable.\n */\n maxHeight: PropTypes.number,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify the number of email to be displayed in the input field when not in focus.\n */\n visibleEmailsCount: PropTypes.number,\n /**\n * To specify whether a new email option can be created or not.\n */\n isCreateable: PropTypes.bool,\n /**\n * To specify whether the input field should always be shown in an expanded state or not.\n */\n isAlwaysExpanded: PropTypes.bool,\n};\n\nexport default MultiEmailInput;\n"],"names":["STYLES","border","error","color","CustomControl","_ref","children","props","_objectWithoutProperties","_excluded","getValue","_props$selectProps","selectProps","isFocused","prefix","prevValue","useRef","controlRef","value","scrollToBottom","scrollContainer","current","scrollHeight","clientHeight","scrollTo","top","useEffect","isItemAdded","length","isItemDeleted","_jsxs","components","Control","_objectSpread","innerProps","ref","_jsx","className","CustomDropdownIndicator","suffix","DropdownIndicator","MultiValueRemove","_defineProperty","concat","hyphenize","data","label","Close","size","CustomValueContainer","_ref2","_excluded2","_props$selectProps2","visibleEmailsCount","isAlwaysExpanded","_children","_toArray","firstChild","rest","slice","shouldCollapse","ValueContainer","Tag","style","CustomClearIndicator","ClearIndicator","SelectContainer","Input","handlePaste","event","handleEmailChange","text","clipboardData","getData","EMAIL_REGEX","test","preventDefault","setTimeout","onPaste","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","getEmailsMap","inputEmails","arguments","undefined","options","emails","_toConsumableArray","emailsMap","Map","forEach","option","_emailsMap$get","hasPersistedEntry","isPresent","get","id","set","processEmailOptions","email","emailDetails","formatEmailInputOption","otherDetails","pruneDuplicates","inputValues","emailProcessor","pluck","uniqueValuesSet","Set","duplicates","pristineEmail","toLowerCase","has","push","add","uniqueValues","Array","from","uniqueEmails","map","renderValidEmails","values","filter","getValidEmailsCount","renderDefaultText","count","renderDuplicateEmailsWarningMessage","duplicateEmails","join","MultiEmailInput","forwardRef","_ref$label","_ref$placeholder","placeholder","_ref$helpText","helpText","_ref$value","_ref$onChange","onChange","noop","_ref$error","_ref$onBlur","onBlur","filterInvalidEmails","counter","_ref$disabled","disabled","_ref$maxHeight","maxHeight","_ref$required","required","labelProps","_ref$visibleEmailsCou","_ref$isCreateable","isCreateable","_ref$isAlwaysExpanded","otherProps","_useState","useState","_useState2","_slicedToArray","inputValue","setInputValue","_useState3","_useState4","setIsFocused","_useState5","_useState6","setDuplicateEmails","_useState7","_useState8","isMenuOpen","setIsMenuOpen","isCounterVisible","startsFrom","isOptionsPresent","handleFilterEmails","match","emailMatches","_pruneDuplicates","handleKeyDown","key","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","blurInputOnSelect","classNamePrefix","isDisabled","menuIsOpen","classnames","control","mergeLeft","overflowY","onFocus","onKeyDown","onInputChange","Boolean","onClick","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"MultiEmailInput.js","sources":["../src/components/MultiEmailInput/constants.jsx","../src/components/MultiEmailInput/utils.js","../src/components/MultiEmailInput/index.jsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\";\n\nimport { Close } from \"neetoicons\";\nimport { assoc } from \"ramda\";\nimport { components } from \"react-select\";\n\nimport Tag from \"components/Tag\";\nimport { hyphenize } from \"utils\";\n\nconst STYLES = {\n border: {\n default: \"1px solid rgb(var(--neeto-ui-gray-400))\",\n error: \"1px solid rgb(var(--neeto-ui-error-800)) !important\",\n },\n color: {\n default: \"rgb(var(--neeto-ui-gray-800))\",\n error: \"rgb(var(--neeto-ui-error-800)) !important\",\n },\n};\n\nconst CustomControl = ({ children, ...props }) => {\n const { getValue } = props;\n const { isFocused, prefix } = props.selectProps;\n\n const prevValue = useRef([]);\n const controlRef = useRef(null);\n\n const value = getValue();\n\n const scrollToBottom = () => {\n const scrollContainer = controlRef.current;\n if (!scrollContainer) return;\n\n const { scrollHeight, clientHeight } = scrollContainer;\n\n scrollContainer.scrollTo({ top: scrollHeight - clientHeight });\n };\n\n useEffect(() => {\n const isItemAdded = value.length > prevValue.current.length;\n const isItemDeleted = value.length < prevValue.current.length;\n\n if ((isFocused && !isItemDeleted) || isItemAdded) scrollToBottom();\n\n prevValue.current = value;\n }, [isFocused, value]);\n\n return (\n <components.Control\n {...props}\n innerProps={{ ...props.innerProps, ref: controlRef }}\n >\n {prefix && <div className=\"neeto-ui-email-input__prefix\">{prefix}</div>}\n {children}\n </components.Control>\n );\n};\n\nconst CustomDropdownIndicator = props => {\n const { suffix } = props.selectProps;\n\n return suffix ? (\n <components.DropdownIndicator {...props}>\n <div className=\"neeto-ui-email-input__suffix\">{suffix}</div>\n </components.DropdownIndicator>\n ) : null;\n};\n\nconst MultiValueRemove = props => (\n <components.MultiValueRemove\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-testid\"]: `${hyphenize(props.data.label)}-remove-icon`,\n }}\n >\n <Close size={16} />\n </components.MultiValueRemove>\n);\n\nconst CustomValueContainer = ({ children, ...props }) => {\n const {\n getValue,\n selectProps: { isFocused, visibleEmailsCount, isAlwaysExpanded },\n } = props;\n const value = getValue();\n const [firstChild, ...rest] = children;\n\n const shouldCollapse =\n !isAlwaysExpanded && !isFocused && value.length > visibleEmailsCount;\n\n return (\n <components.ValueContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-testid\"]: \"multi-email-input-container\",\n }}\n >\n {shouldCollapse ? firstChild.slice(0, visibleEmailsCount) : firstChild}\n {shouldCollapse && (\n <Tag\n label={`${value.length - visibleEmailsCount} more`}\n style=\"secondary\"\n />\n )}\n {rest}\n </components.ValueContainer>\n );\n};\n\nconst CustomClearIndicator = props => (\n <components.ClearIndicator\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-testid\"]: \"clear-all-button\",\n }}\n >\n <Close className=\"cursor-pointer\" size={16} />\n </components.ClearIndicator>\n);\n\nconst SelectContainer = props => (\n <components.SelectContainer\n {...props}\n innerProps={{\n ...props.innerProps,\n [\"data-testid\"]: \"multi-email-select-container\",\n }}\n />\n);\n\nconst Input = props => {\n const handlePaste = event => {\n const { handleEmailChange } = props.selectProps;\n\n const text = event.clipboardData.getData(\"Text\");\n if (!EMAIL_REGEX.test(text)) return;\n\n event?.preventDefault();\n setTimeout(() => handleEmailChange(text));\n };\n\n return (\n <components.Input\n {...props}\n data-testid=\"email-select-input-field\"\n onPaste={handlePaste}\n />\n );\n};\n\nexport const EMAIL_REGEX = new RegExp(\n \"^[A-Z0-9._%+-]+@[A-Z0-9-]+(?:\\\\.[A-Z0-9-]+)*\\\\.[A-Z]{2,}$\",\n \"i\"\n);\n\nexport const UNSTRICT_EMAIL_REGEX =\n /(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))/g;\n\nexport const EMAIL_SEPARATION_REGEX = /[^\\s,]+/g;\n\nexport const CUSTOM_STYLES = {\n input: assoc(\"overflow\", \"hidden\"),\n multiValue: (styles, { data: { valid } }) => ({\n ...styles,\n border: valid ? STYLES.border.default : STYLES.border.error,\n color: valid ? STYLES.color.default : STYLES.color.error,\n }),\n};\n\nexport const CUSTOM_COMPONENTS = {\n DropdownIndicator: CustomDropdownIndicator,\n Control: CustomControl,\n MultiValueRemove,\n ValueContainer: CustomValueContainer,\n ClearIndicator: CustomClearIndicator,\n SelectContainer,\n Input,\n};\n","import { isPresent } from \"neetocist\";\nimport { pluck } from \"ramda\";\n\nimport { EMAIL_REGEX } from \"./constants\";\n\nconst getEmailsMap = (inputEmails = [], options = []) => {\n const emails = [...inputEmails, ...options];\n const emailsMap = new Map();\n\n emails.forEach(option => {\n const hasPersistedEntry = isPresent(emailsMap.get(option.value)?.id);\n if (!hasPersistedEntry) emailsMap.set(option.value, option);\n });\n\n return emailsMap;\n};\n\nconst processEmailOptions = (inputEmails = [], options = []) => {\n const emailsMap = getEmailsMap(inputEmails, options);\n\n return email => {\n const emailDetails = emailsMap.get(email) || { value: email };\n\n return formatEmailInputOption(emailDetails);\n };\n};\n\nexport const formatEmailInputOption = ({ label, value, ...otherDetails }) => ({\n label: label ?? value,\n value,\n ...otherDetails,\n valid: EMAIL_REGEX.test(value),\n});\n\nexport const pruneDuplicates = (inputValues, options) => {\n const emailProcessor = processEmailOptions(inputValues, options);\n const emails = pluck(\"value\", inputValues);\n const uniqueValuesSet = new Set();\n const duplicates = [];\n\n emails.forEach(pristineEmail => {\n const email = pristineEmail.toLowerCase();\n if (uniqueValuesSet.has(email)) duplicates.push(pristineEmail);\n\n uniqueValuesSet.add(email);\n });\n\n const uniqueValues = Array.from(uniqueValuesSet);\n const uniqueEmails = uniqueValues.map(emailProcessor);\n\n return { uniqueEmails, duplicates };\n};\n\nexport const renderValidEmails = values =>\n values.filter(email => email.valid && email);\n\nexport const getValidEmailsCount = values => renderValidEmails(values).length;\n\nexport const renderDefaultText = count => (count === 1 ? \"email\" : \"emails\");\n\nexport const renderDuplicateEmailsWarningMessage = duplicateEmails => {\n const count = duplicateEmails.length;\n\n return `Removed ${count} duplicate ${renderDefaultText(\n count\n )} from the list: ${duplicateEmails.join(\", \")}`;\n};\n","import React, { useState, forwardRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { mergeLeft, isEmpty } from \"ramda\";\nimport CreatableSelect from \"react-select/creatable\";\n\nimport { noop, hyphenize } from \"utils\";\n\nimport {\n EMAIL_SEPARATION_REGEX,\n CUSTOM_STYLES,\n UNSTRICT_EMAIL_REGEX,\n CUSTOM_COMPONENTS,\n} from \"./constants\";\nimport {\n pruneDuplicates,\n renderValidEmails,\n renderDefaultText,\n getValidEmailsCount,\n renderDuplicateEmailsWarningMessage,\n} from \"./utils\";\n\nimport Label from \"../Label\";\n\nconst MultiEmailInput = forwardRef(\n (\n {\n label = \"Email(s)\",\n placeholder = \"\",\n helpText = \"\",\n value = [],\n onChange = noop,\n error = \"\",\n onBlur = noop,\n filterInvalidEmails,\n counter,\n disabled = false,\n maxHeight = 200,\n required = false,\n labelProps,\n visibleEmailsCount = 3,\n isCreateable = true,\n isAlwaysExpanded = false,\n ...otherProps\n },\n ref\n ) => {\n const [inputValue, setInputValue] = useState(\"\");\n const [isFocused, setIsFocused] = useState(false);\n const [duplicateEmails, setDuplicateEmails] = useState([]);\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n\n const isCounterVisible =\n !!counter &&\n (!counter.startsFrom || getValidEmailsCount(value) >= counter.startsFrom);\n\n const isOptionsPresent = !!otherProps.options;\n\n const handleFilterEmails = () => onChange(renderValidEmails(value));\n\n const handleEmailChange = inputValue => {\n if (!isCreateable) return;\n\n const inputValues = inputValue.match(EMAIL_SEPARATION_REGEX);\n const emailMatches =\n inputValue.match(UNSTRICT_EMAIL_REGEX) || inputValues || [];\n\n const emails = emailMatches.map(email => ({ value: email }));\n\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, ...emails],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n setInputValue(\"\");\n setIsMenuOpen(false);\n };\n\n const handleKeyDown = event => {\n if (!inputValue) return;\n\n switch (event.key) {\n case \"Enter\": {\n handleEmailChange(inputValue);\n !isOptionsPresent && event.preventDefault();\n event.stopPropagation();\n\n return;\n }\n case \"Tab\":\n case \",\":\n case \" \": {\n handleEmailChange(inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n }\n };\n\n const onCreateOption = input => {\n const { uniqueEmails, duplicates } = pruneDuplicates(\n [...value, { value: input }],\n otherProps.options\n );\n onChange(uniqueEmails);\n setDuplicateEmails(duplicates);\n otherProps?.onCreateOption?.(input);\n };\n\n const handleBlur = event => {\n inputValue ? handleEmailChange(inputValue) : onBlur(event);\n setIsFocused(false);\n setDuplicateEmails([]);\n };\n\n let overrideProps = {};\n\n if (isOptionsPresent) {\n const isValidNewOption = (inputValue, _, selectOptions) => {\n if (!isCreateable) return false;\n\n const isInputEmpty = isEmpty(inputValue.trim());\n const doesInputContainSeparator =\n inputValue.includes(\",\") || inputValue.includes(\" \");\n\n const isInputPresentInOptions = selectOptions.find(\n option => option.value === inputValue.toLowerCase()\n );\n\n return !(\n isInputEmpty ||\n doesInputContainSeparator ||\n isInputPresentInOptions\n );\n };\n overrideProps = { onCreateOption, isValidNewOption };\n }\n\n const isFilterEmailsLinkVisible =\n !!filterInvalidEmails && value.length > getValidEmailsCount(value);\n\n return (\n <div\n className=\"neeto-ui-input__wrapper neeto-ui-email-input__wrapper\"\n data-testid=\"email-input-wrapper\"\n >\n <div className=\"neeto-ui-email-input__label-wrapper\">\n {label && (\n <Label\n {...{ required }}\n className=\"neeto-ui-email-input__label\"\n data-testid={`${hyphenize(label)}-input-label`}\n {...labelProps}\n >\n {label}\n </Label>\n )}\n {isCounterVisible && (\n <p\n className=\"neeto-ui-email-input__counter\"\n data-testid={`${hyphenize(label)}-email-counter`}\n >\n {getValidEmailsCount(value)}{\" \"}\n {counter.label\n ? counter.label\n : renderDefaultText(getValidEmailsCount(value))}\n </p>\n )}\n </div>\n <CreatableSelect\n isMulti\n required\n blurInputOnSelect={false}\n classNamePrefix=\"neeto-ui-react-select\"\n components={CUSTOM_COMPONENTS}\n isDisabled={disabled}\n menuIsOpen={isMenuOpen}\n className={classnames(\n \"neeto-ui-react-select__container neeto-ui-react-select__container--medium neeto-ui-email-input__select\",\n { \"neeto-ui-react-select__container--error\": !!error }\n )}\n styles={{\n ...CUSTOM_STYLES,\n control: mergeLeft({\n maxHeight: `${maxHeight}px`,\n overflowY: \"auto\",\n }),\n }}\n onBlur={handleBlur}\n onFocus={() => setIsFocused(true)}\n onKeyDown={handleKeyDown}\n onInputChange={inputValue => {\n setIsMenuOpen(Boolean(inputValue));\n setInputValue(inputValue);\n }}\n {...{\n handleEmailChange,\n inputValue,\n isAlwaysExpanded,\n isFocused,\n onChange,\n placeholder,\n ref,\n value,\n visibleEmailsCount,\n ...(!isOptionsPresent && { menuIsOpen: false }),\n ...otherProps,\n ...overrideProps,\n }}\n />\n {!!error && (\n <p\n className=\"neeto-ui-input__error\"\n data-testid={`${hyphenize(label)}-input-error`}\n >\n {error}\n {isFilterEmailsLinkVisible && (\n <span\n className=\"neeto-ui-font-semibold cursor-pointer\"\n onClick={handleFilterEmails}\n >\n &nbsp;\n {filterInvalidEmails.label\n ? filterInvalidEmails.label\n : \"Click here to remove invalid emails.\"}\n </span>\n )}\n </p>\n )}\n {!!helpText && (\n <p\n className=\"neeto-ui-input__help-text\"\n data-testid={`${hyphenize(label)}-input-help`}\n >\n {helpText}\n </p>\n )}\n {!!duplicateEmails.length && (\n <p\n className=\"neeto-ui-input__error\"\n data-testid={`${hyphenize(label)}-duplicate-emails-warning`}\n >\n {renderDuplicateEmailsWarningMessage(duplicateEmails)}\n </p>\n )}\n </div>\n );\n }\n);\n\nMultiEmailInput.displayName = \"MultiEmailInput\";\n\nMultiEmailInput.propTypes = {\n /**\n * To specify the text to be displayed above the Input field.\n */\n label: PropTypes.string,\n /**\n * To specify the label props to be passed to the Label component.\n */\n labelProps: PropTypes.object,\n /**\n * To specify the text to be displayed inside the Input field.\n */\n placeholder: PropTypes.string,\n /**\n * To specify the helper text message to be displayed below the Input field.\n */\n helpText: PropTypes.string,\n /**\n * To specify the value to be displayed inside the Input field.\n */\n value: PropTypes.array,\n /**\n * To specify the error message to be shown below the Input field.\n */\n error: PropTypes.string,\n /**\n * To specify whether the Input field is disabled or not.\n */\n disabled: PropTypes.bool,\n /**\n * To specify whether the Input field is required or not.\n */\n required: PropTypes.bool,\n /**\n * To specify the message to be shown besides the error message to filter out the invalid emails.\n */\n filterInvalidEmails: PropTypes.shape({ label: PropTypes.string }),\n /**\n * To add an email counter next to the label.\n */\n counter: PropTypes.oneOfType([\n PropTypes.bool,\n PropTypes.shape({\n label: PropTypes.string,\n startsFrom: PropTypes.number,\n }),\n ]),\n /**\n * To specify the action to be triggered on modifying the Input field.\n */\n onChange: PropTypes.func,\n /**\n * To specify the action to be triggered on changing focus from the Input field.\n */\n onBlur: PropTypes.func,\n /**\n * To specify the maximum height (in pixels) of the container before it becomes scrollable.\n */\n maxHeight: PropTypes.number,\n /**\n * To specify the content to be added at the end of the Input field.\n */\n suffix: PropTypes.node,\n /**\n * To specify the content to be added at the beginning of the Input field.\n */\n prefix: PropTypes.node,\n /**\n * To specify the number of email to be displayed in the input field when not in focus.\n */\n visibleEmailsCount: PropTypes.number,\n /**\n * To specify whether a new email option can be created or not.\n */\n isCreateable: PropTypes.bool,\n /**\n * To specify whether the input field should always be shown in an expanded state or not.\n */\n isAlwaysExpanded: PropTypes.bool,\n};\n\nexport default MultiEmailInput;\n"],"names":["STYLES","border","error","color","CustomControl","_ref","children","props","_objectWithoutProperties","_excluded","getValue","_props$selectProps","selectProps","isFocused","prefix","prevValue","useRef","controlRef","value","scrollToBottom","scrollContainer","current","scrollHeight","clientHeight","scrollTo","top","useEffect","isItemAdded","length","isItemDeleted","_jsxs","components","Control","_objectSpread","innerProps","ref","_jsx","className","CustomDropdownIndicator","suffix","DropdownIndicator","MultiValueRemove","_defineProperty","concat","hyphenize","data","label","Close","size","CustomValueContainer","_ref2","_excluded2","_props$selectProps2","visibleEmailsCount","isAlwaysExpanded","_children","_toArray","firstChild","rest","slice","shouldCollapse","ValueContainer","Tag","style","CustomClearIndicator","ClearIndicator","SelectContainer","Input","handlePaste","event","handleEmailChange","text","clipboardData","getData","EMAIL_REGEX","test","preventDefault","setTimeout","onPaste","RegExp","UNSTRICT_EMAIL_REGEX","EMAIL_SEPARATION_REGEX","CUSTOM_STYLES","input","assoc","multiValue","styles","_ref3","valid","CUSTOM_COMPONENTS","getEmailsMap","inputEmails","arguments","undefined","options","emails","_toConsumableArray","emailsMap","Map","forEach","option","_emailsMap$get","hasPersistedEntry","isPresent","get","id","set","processEmailOptions","email","emailDetails","formatEmailInputOption","otherDetails","pruneDuplicates","inputValues","emailProcessor","pluck","uniqueValuesSet","Set","duplicates","pristineEmail","toLowerCase","has","push","add","uniqueValues","Array","from","uniqueEmails","map","renderValidEmails","values","filter","getValidEmailsCount","renderDefaultText","count","renderDuplicateEmailsWarningMessage","duplicateEmails","join","MultiEmailInput","forwardRef","_ref$label","_ref$placeholder","placeholder","_ref$helpText","helpText","_ref$value","_ref$onChange","onChange","noop","_ref$error","_ref$onBlur","onBlur","filterInvalidEmails","counter","_ref$disabled","disabled","_ref$maxHeight","maxHeight","_ref$required","required","labelProps","_ref$visibleEmailsCou","_ref$isCreateable","isCreateable","_ref$isAlwaysExpanded","otherProps","_useState","useState","_useState2","_slicedToArray","inputValue","setInputValue","_useState3","_useState4","setIsFocused","_useState5","_useState6","setDuplicateEmails","_useState7","_useState8","isMenuOpen","setIsMenuOpen","isCounterVisible","startsFrom","isOptionsPresent","handleFilterEmails","match","emailMatches","_pruneDuplicates","handleKeyDown","key","stopPropagation","onCreateOption","_otherProps$onCreateO","_pruneDuplicates2","call","handleBlur","overrideProps","isValidNewOption","_","selectOptions","isInputEmpty","isEmpty","trim","doesInputContainSeparator","includes","isInputPresentInOptions","find","isFilterEmailsLinkVisible","Label","CreatableSelect","isMulti","blurInputOnSelect","classNamePrefix","isDisabled","menuIsOpen","classnames","control","mergeLeft","overflowY","onFocus","onKeyDown","onInputChange","Boolean","onClick","displayName"],"mappings":"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"}
package/dist/NoData.js CHANGED
@@ -15,7 +15,7 @@ import 'tippy.js';
15
15
 
16
16
  var renderImage = function renderImage(image) {
17
17
  return typeof image === "string" ? /*#__PURE__*/jsx("img", {
18
- "data-cy": "no-data-image",
18
+ "data-testid": "no-data-image",
19
19
  src: image
20
20
  }) : image;
21
21
  };
@@ -49,26 +49,26 @@ var NoData = function NoData(_ref) {
49
49
  var showButtonSeparator = hasButtonSeparatorText && hasPrimaryButtonProps && hasSecondaryButtonProps;
50
50
  return /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
51
51
  className: classnames("neeto-ui-no-data", [className]),
52
- "data-cy": "no-data-container"
52
+ "data-testid": "no-data-container"
53
53
  }, otherProps), {}, {
54
54
  children: [image ? /*#__PURE__*/jsx("div", {
55
55
  className: "neeto-ui-no-data__image",
56
56
  children: renderImage(image)
57
57
  }) : null, title && /*#__PURE__*/jsx(Typography, {
58
58
  className: "neeto-ui-text-center",
59
- "data-cy": "no-data-title",
59
+ "data-testid": "no-data-title",
60
60
  lineHeight: "none",
61
61
  style: "h3",
62
62
  children: title
63
63
  }), description && /*#__PURE__*/jsx(Typography, {
64
64
  className: "neeto-ui-text-center neeto-ui-no-data__description",
65
- "data-cy": "no-data-description",
65
+ "data-testid": "no-data-description",
66
66
  lineHeight: "normal",
67
67
  style: "body2",
68
68
  children: description
69
69
  }), helpText && /*#__PURE__*/jsx(Typography, {
70
70
  className: "neeto-ui-text-center neeto-ui-no-data__help-text",
71
- "data-cy": "no-data-help-text",
71
+ "data-testid": "no-data-help-text",
72
72
  lineHeight: "normal",
73
73
  style: "body2",
74
74
  children: helpText
@@ -78,7 +78,6 @@ var NoData = function NoData(_ref) {
78
78
  disabled: isNil(primaryButtonProps === null || primaryButtonProps === void 0 ? void 0 : primaryButtonProps.tooltipProps) || !showTooltipWhenButtonDisabled && (primaryButtonProps === null || primaryButtonProps === void 0 ? void 0 : primaryButtonProps.disabled),
79
79
  children: /*#__PURE__*/jsx("div", {
80
80
  children: /*#__PURE__*/jsx(Button, _objectSpread({
81
- "data-cy": "no-data-primary-button",
82
81
  "data-testid": "no-data-primary-button"
83
82
  }, omit(["tooltipProps"], primaryButtonProps)))
84
83
  })
@@ -90,7 +89,6 @@ var NoData = function NoData(_ref) {
90
89
  disabled: isNil(secondaryButtonProps === null || secondaryButtonProps === void 0 ? void 0 : secondaryButtonProps.tooltipProps) || !showTooltipWhenButtonDisabled && (secondaryButtonProps === null || secondaryButtonProps === void 0 ? void 0 : secondaryButtonProps.disabled),
91
90
  children: /*#__PURE__*/jsx("div", {
92
91
  children: /*#__PURE__*/jsx(Button, _objectSpread({
93
- "data-cy": "no-data-secondary-button",
94
92
  "data-testid": "no-data-secondary-button",
95
93
  style: "secondary"
96
94
  }, omit(["tooltipProps"], secondaryButtonProps)))
@@ -1 +1 @@
1
- {"version":3,"file":"NoData.js","sources":["../src/components/NoData/utils.jsx","../src/components/NoData/index.jsx"],"sourcesContent":["import React from \"react\";\n\nexport const renderImage = image =>\n typeof image === \"string\" ? (\n <img data-cy=\"no-data-image\" src={image} />\n ) : (\n image\n );\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, isNil, omit } from \"ramda\";\n\nimport Button from \"components/Button\";\nimport Tooltip from \"components/Tooltip\";\nimport Typography from \"components/Typography\";\n\nimport { renderImage } from \"./utils\";\n\nconst NoData = ({\n image = null,\n title = \"\",\n description = \"\",\n helpText = null,\n className = \"\",\n primaryButtonProps = {},\n secondaryButtonProps = {},\n buttonSeparatorText = \"\",\n showTooltipWhenButtonDisabled = false,\n ...otherProps\n}) => {\n const hasPrimaryButtonProps = !isEmpty(primaryButtonProps);\n const hasSecondaryButtonProps = !isEmpty(secondaryButtonProps);\n const hasButtonSeparatorText = !isEmpty(buttonSeparatorText);\n\n const showButtonSeparator =\n hasButtonSeparatorText && hasPrimaryButtonProps && hasSecondaryButtonProps;\n\n return (\n <div\n className={classnames(\"neeto-ui-no-data\", [className])}\n data-cy=\"no-data-container\"\n {...otherProps}\n >\n {image ? (\n <div className=\"neeto-ui-no-data__image\">{renderImage(image)}</div>\n ) : null}\n {title && (\n <Typography\n className=\"neeto-ui-text-center\"\n data-cy=\"no-data-title\"\n lineHeight=\"none\"\n style=\"h3\"\n >\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n className=\"neeto-ui-text-center neeto-ui-no-data__description\"\n data-cy=\"no-data-description\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n )}\n {helpText && (\n <Typography\n className=\"neeto-ui-text-center neeto-ui-no-data__help-text\"\n data-cy=\"no-data-help-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {helpText}\n </Typography>\n )}\n {(hasPrimaryButtonProps || hasSecondaryButtonProps) && (\n <div className=\"neeto-ui-no-data__action-block\">\n {hasPrimaryButtonProps && (\n <Tooltip\n {...primaryButtonProps?.tooltipProps}\n disabled={\n isNil(primaryButtonProps?.tooltipProps) ||\n (!showTooltipWhenButtonDisabled && primaryButtonProps?.disabled)\n }\n >\n <div>\n <Button\n data-cy=\"no-data-primary-button\"\n data-testid=\"no-data-primary-button\"\n {...omit([\"tooltipProps\"], primaryButtonProps)}\n />\n </div>\n </Tooltip>\n )}\n {showButtonSeparator && (\n <Typography lineHeight=\"normal\" style=\"body2\">\n {buttonSeparatorText}\n </Typography>\n )}\n {hasSecondaryButtonProps && (\n <Tooltip\n {...secondaryButtonProps?.tooltipProps}\n disabled={\n isNil(secondaryButtonProps?.tooltipProps) ||\n (!showTooltipWhenButtonDisabled &&\n secondaryButtonProps?.disabled)\n }\n >\n <div>\n <Button\n data-cy=\"no-data-secondary-button\"\n data-testid=\"no-data-secondary-button\"\n style=\"secondary\"\n {...omit([\"tooltipProps\"], secondaryButtonProps)}\n />\n </div>\n </Tooltip>\n )}\n </div>\n )}\n </div>\n );\n};\n\nNoData.propTypes = {\n /**\n * To specify the image.\n */\n image: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /**\n * To specify the title text.\n */\n title: PropTypes.string,\n /**\n * To specify the description text.\n */\n description: PropTypes.node,\n /**\n * To specify the text that appears below the description.\n */\n helpText: PropTypes.node,\n /**\n * Provide external classnames to NoData component.\n */\n className: PropTypes.string,\n /**\n * To specify the props to be passed to the primary button.\n */\n primaryButtonProps: PropTypes.object,\n /**\n * To specify the props to be passed to the secondary button.\n */\n secondaryButtonProps: PropTypes.object,\n /**\n * To specify if the tooltip should be shown when the button is disabled.\n */\n showTooltipWhenButtonDisabled: PropTypes.bool,\n /**\n * To specify the text that appears between the primary and secondary buttons.\n * */\n buttonSeparatorText: PropTypes.string,\n};\n\nexport default NoData;\n"],"names":["renderImage","image","_jsx","src","NoData","_ref","_ref$image","_ref$title","title","_ref$description","description","_ref$helpText","helpText","_ref$className","className","_ref$primaryButtonPro","primaryButtonProps","_ref$secondaryButtonP","secondaryButtonProps","_ref$buttonSeparatorT","buttonSeparatorText","_ref$showTooltipWhenB","showTooltipWhenButtonDisabled","otherProps","_objectWithoutProperties","_excluded","hasPrimaryButtonProps","isEmpty","hasSecondaryButtonProps","hasButtonSeparatorText","showButtonSeparator","_jsxs","_objectSpread","classnames","children","Typography","lineHeight","style","Tooltip","tooltipProps","disabled","isNil","Button","omit"],"mappings":"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"}
1
+ {"version":3,"file":"NoData.js","sources":["../src/components/NoData/utils.jsx","../src/components/NoData/index.jsx"],"sourcesContent":["import React from \"react\";\n\nexport const renderImage = image =>\n typeof image === \"string\" ? (\n <img data-testid=\"no-data-image\" src={image} />\n ) : (\n image\n );\n","import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, isNil, omit } from \"ramda\";\n\nimport Button from \"components/Button\";\nimport Tooltip from \"components/Tooltip\";\nimport Typography from \"components/Typography\";\n\nimport { renderImage } from \"./utils\";\n\nconst NoData = ({\n image = null,\n title = \"\",\n description = \"\",\n helpText = null,\n className = \"\",\n primaryButtonProps = {},\n secondaryButtonProps = {},\n buttonSeparatorText = \"\",\n showTooltipWhenButtonDisabled = false,\n ...otherProps\n}) => {\n const hasPrimaryButtonProps = !isEmpty(primaryButtonProps);\n const hasSecondaryButtonProps = !isEmpty(secondaryButtonProps);\n const hasButtonSeparatorText = !isEmpty(buttonSeparatorText);\n\n const showButtonSeparator =\n hasButtonSeparatorText && hasPrimaryButtonProps && hasSecondaryButtonProps;\n\n return (\n <div\n className={classnames(\"neeto-ui-no-data\", [className])}\n data-testid=\"no-data-container\"\n {...otherProps}\n >\n {image ? (\n <div className=\"neeto-ui-no-data__image\">{renderImage(image)}</div>\n ) : null}\n {title && (\n <Typography\n className=\"neeto-ui-text-center\"\n data-testid=\"no-data-title\"\n lineHeight=\"none\"\n style=\"h3\"\n >\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n className=\"neeto-ui-text-center neeto-ui-no-data__description\"\n data-testid=\"no-data-description\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n )}\n {helpText && (\n <Typography\n className=\"neeto-ui-text-center neeto-ui-no-data__help-text\"\n data-testid=\"no-data-help-text\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {helpText}\n </Typography>\n )}\n {(hasPrimaryButtonProps || hasSecondaryButtonProps) && (\n <div className=\"neeto-ui-no-data__action-block\">\n {hasPrimaryButtonProps && (\n <Tooltip\n {...primaryButtonProps?.tooltipProps}\n disabled={\n isNil(primaryButtonProps?.tooltipProps) ||\n (!showTooltipWhenButtonDisabled && primaryButtonProps?.disabled)\n }\n >\n <div>\n <Button\n data-testid=\"no-data-primary-button\"\n {...omit([\"tooltipProps\"], primaryButtonProps)}\n />\n </div>\n </Tooltip>\n )}\n {showButtonSeparator && (\n <Typography lineHeight=\"normal\" style=\"body2\">\n {buttonSeparatorText}\n </Typography>\n )}\n {hasSecondaryButtonProps && (\n <Tooltip\n {...secondaryButtonProps?.tooltipProps}\n disabled={\n isNil(secondaryButtonProps?.tooltipProps) ||\n (!showTooltipWhenButtonDisabled &&\n secondaryButtonProps?.disabled)\n }\n >\n <div>\n <Button\n data-testid=\"no-data-secondary-button\"\n style=\"secondary\"\n {...omit([\"tooltipProps\"], secondaryButtonProps)}\n />\n </div>\n </Tooltip>\n )}\n </div>\n )}\n </div>\n );\n};\n\nNoData.propTypes = {\n /**\n * To specify the image.\n */\n image: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n /**\n * To specify the title text.\n */\n title: PropTypes.string,\n /**\n * To specify the description text.\n */\n description: PropTypes.node,\n /**\n * To specify the text that appears below the description.\n */\n helpText: PropTypes.node,\n /**\n * Provide external classnames to NoData component.\n */\n className: PropTypes.string,\n /**\n * To specify the props to be passed to the primary button.\n */\n primaryButtonProps: PropTypes.object,\n /**\n * To specify the props to be passed to the secondary button.\n */\n secondaryButtonProps: PropTypes.object,\n /**\n * To specify if the tooltip should be shown when the button is disabled.\n */\n showTooltipWhenButtonDisabled: PropTypes.bool,\n /**\n * To specify the text that appears between the primary and secondary buttons.\n * */\n buttonSeparatorText: PropTypes.string,\n};\n\nexport default NoData;\n"],"names":["renderImage","image","_jsx","src","NoData","_ref","_ref$image","_ref$title","title","_ref$description","description","_ref$helpText","helpText","_ref$className","className","_ref$primaryButtonPro","primaryButtonProps","_ref$secondaryButtonP","secondaryButtonProps","_ref$buttonSeparatorT","buttonSeparatorText","_ref$showTooltipWhenB","showTooltipWhenButtonDisabled","otherProps","_objectWithoutProperties","_excluded","hasPrimaryButtonProps","isEmpty","hasSecondaryButtonProps","hasButtonSeparatorText","showButtonSeparator","_jsxs","_objectSpread","classnames","children","Typography","lineHeight","style","Tooltip","tooltipProps","disabled","isNil","Button","omit"],"mappings":";;;;;;;;;;;;;;;AAEO,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAGC,KAAK,EAAA;AAAA,EAAA,OAC9B,OAAOA,KAAK,KAAK,QAAQ,gBACvBC,GAAA,CAAA,KAAA,EAAA;AAAK,IAAA,aAAA,EAAY,eAAe;AAACC,IAAAA,GAAG,EAAEF;GAAQ,CAAC,GAE/CA,KACD;AAAA,CAAA;;;;;ACKH,IAAMG,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAWN;AAAA,EAAA,IAAAC,UAAA,GAAAD,IAAA,CAVJJ,KAAK;AAALA,IAAAA,KAAK,GAAAK,UAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,UAAA;IAAAC,UAAA,GAAAF,IAAA,CACZG,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,UAAA;IAAAE,gBAAA,GAAAJ,IAAA,CACVK,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,gBAAA;IAAAE,aAAA,GAAAN,IAAA,CAChBO,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,aAAA;IAAAE,cAAA,GAAAR,IAAA,CACfS,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;IAAAE,qBAAA,GAAAV,IAAA,CACdW,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAAZ,IAAA,CACvBa,oBAAoB;AAApBA,IAAAA,oBAAoB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAAd,IAAA,CACzBe,mBAAmB;AAAnBA,IAAAA,mBAAmB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAAhB,IAAA,CACxBiB,6BAA6B;AAA7BA,IAAAA,6BAA6B,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;AAClCE,IAAAA,UAAU,GAAAC,wBAAA,CAAAnB,IAAA,EAAAoB,SAAA,CAAA;AAEb,EAAA,IAAMC,qBAAqB,GAAG,CAACC,OAAO,CAACX,kBAAkB,CAAC;AAC1D,EAAA,IAAMY,uBAAuB,GAAG,CAACD,OAAO,CAACT,oBAAoB,CAAC;AAC9D,EAAA,IAAMW,sBAAsB,GAAG,CAACF,OAAO,CAACP,mBAAmB,CAAC;AAE5D,EAAA,IAAMU,mBAAmB,GACvBD,sBAAsB,IAAIH,qBAAqB,IAAIE,uBAAuB;AAE5E,EAAA,oBACEG,IAAA,CAAA,KAAA,EAAAC,aAAA,CAAAA,aAAA,CAAA;IACElB,SAAS,EAAEmB,UAAU,CAAC,kBAAkB,EAAE,CAACnB,SAAS,CAAC,CAAE;IACvD,aAAA,EAAY;AAAmB,GAAA,EAC3BS,UAAU,CAAA,EAAA,EAAA,EAAA;IAAAW,QAAA,EAAA,CAEbjC,KAAK,gBACJC,GAAA,CAAA,KAAA,EAAA;AAAKY,MAAAA,SAAS,EAAC,yBAAyB;MAAAoB,QAAA,EAAElC,WAAW,CAACC,KAAK;KAAO,CAAC,GACjE,IAAI,EACPO,KAAK,iBACJN,GAAA,CAACiC,UAAU,EAAA;AACTrB,MAAAA,SAAS,EAAC,sBAAsB;AAChC,MAAA,aAAA,EAAY,eAAe;AAC3BsB,MAAAA,UAAU,EAAC,MAAM;AACjBC,MAAAA,KAAK,EAAC,IAAI;AAAAH,MAAAA,QAAA,EAET1B;AAAK,KACI,CACb,EACAE,WAAW,iBACVR,GAAA,CAACiC,UAAU,EAAA;AACTrB,MAAAA,SAAS,EAAC,oDAAoD;AAC9D,MAAA,aAAA,EAAY,qBAAqB;AACjCsB,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,KAAK,EAAC,OAAO;AAAAH,MAAAA,QAAA,EAEZxB;AAAW,KACF,CACb,EACAE,QAAQ,iBACPV,GAAA,CAACiC,UAAU,EAAA;AACTrB,MAAAA,SAAS,EAAC,kDAAkD;AAC5D,MAAA,aAAA,EAAY,mBAAmB;AAC/BsB,MAAAA,UAAU,EAAC,QAAQ;AACnBC,MAAAA,KAAK,EAAC,OAAO;AAAAH,MAAAA,QAAA,EAEZtB;AAAQ,KACC,CACb,EACA,CAACc,qBAAqB,IAAIE,uBAAuB,kBAChDG,IAAA,CAAA,KAAA,EAAA;AAAKjB,MAAAA,SAAS,EAAC,gCAAgC;AAAAoB,MAAAA,QAAA,GAC5CR,qBAAqB,iBACpBxB,GAAA,CAACoC,OAAO,EAAAN,aAAA,CAAAA,aAAA,KACFhB,kBAAkB,KAAA,IAAA,IAAlBA,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAkB,CAAEuB,YAAY,CAAA,EAAA,EAAA,EAAA;QACpCC,QAAQ,EACNC,KAAK,CAACzB,kBAAkB,aAAlBA,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAkB,CAAEuB,YAAY,CAAC,IACtC,CAACjB,6BAA6B,KAAIN,kBAAkB,KAAA,IAAA,IAAlBA,kBAAkB,KAAA,MAAA,GAAA,MAAA,GAAlBA,kBAAkB,CAAEwB,QAAQ,CAChE;AAAAN,QAAAA,QAAA,eAEDhC,GAAA,CAAA,KAAA,EAAA;AAAAgC,UAAAA,QAAA,eACEhC,GAAA,CAACwC,MAAM,EAAAV,aAAA,CAAA;YACL,aAAA,EAAY;WAAwB,EAChCW,IAAI,CAAC,CAAC,cAAc,CAAC,EAAE3B,kBAAkB,CAAC,CAC/C;SACE;AAAC,OAAA,CACC,CACV,EACAc,mBAAmB,iBAClB5B,GAAA,CAACiC,UAAU,EAAA;AAACC,QAAAA,UAAU,EAAC,QAAQ;AAACC,QAAAA,KAAK,EAAC,OAAO;AAAAH,QAAAA,QAAA,EAC1Cd;AAAmB,OACV,CACb,EACAQ,uBAAuB,iBACtB1B,GAAA,CAACoC,OAAO,EAAAN,aAAA,CAAAA,aAAA,KACFd,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAAA,MAAA,GAAA,MAAA,GAApBA,oBAAoB,CAAEqB,YAAY,CAAA,EAAA,EAAA,EAAA;QACtCC,QAAQ,EACNC,KAAK,CAACvB,oBAAoB,aAApBA,oBAAoB,KAAA,MAAA,GAAA,MAAA,GAApBA,oBAAoB,CAAEqB,YAAY,CAAC,IACxC,CAACjB,6BAA6B,KAC7BJ,oBAAoB,KAAA,IAAA,IAApBA,oBAAoB,KAAA,MAAA,GAAA,MAAA,GAApBA,oBAAoB,CAAEsB,QAAQ,CACjC;AAAAN,QAAAA,QAAA,eAEDhC,GAAA,CAAA,KAAA,EAAA;AAAAgC,UAAAA,QAAA,eACEhC,GAAA,CAACwC,MAAM,EAAAV,aAAA,CAAA;AACL,YAAA,aAAA,EAAY,0BAA0B;AACtCK,YAAAA,KAAK,EAAC;WAAW,EACbM,IAAI,CAAC,CAAC,cAAc,CAAC,EAAEzB,oBAAoB,CAAC,CACjD;SACE;AAAC,OAAA,CACC,CACV;AAAA,KACE,CACN;AAAA,GAAA,CACE,CAAC;AAEV;;;;"}
package/dist/Pane.js CHANGED
@@ -4,7 +4,7 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
4
4
  import { useState, useRef, useEffect } from 'react';
5
5
  import classnames from 'classnames';
6
6
  import Close from '@bigbinary/neeto-icons/Close';
7
- import { u as useOverlayManager, a as useOverlay, P as Portal, C as CSSTransition, B as Backdrop } from './useOverlayManager-DGTN4LZe.js';
7
+ import { u as useOverlayManager, a as useOverlay, P as Portal, C as CSSTransition, B as Backdrop } from './useOverlayManager-Bn2Stdmg.js';
8
8
  import Button from './Button.js';
9
9
  import 'react-router-dom';
10
10
  import 'qs';
@@ -39,7 +39,7 @@ var Body = function Body(_ref) {
39
39
  _ref$hasFooter = _ref.hasFooter,
40
40
  hasFooter = _ref$hasFooter === void 0 ? true : _ref$hasFooter;
41
41
  return /*#__PURE__*/jsx("div", {
42
- "data-cy": "pane-body",
42
+ "data-testid": "pane-body",
43
43
  className: classnames("neeto-ui-pane__body neeto-ui-flex neeto-ui-flex-col neeto-ui-items-start neeto-ui-justify-start", _defineProperty({
44
44
  "neeto-ui-pane__body--has-footer": hasFooter
45
45
  }, className, className)),
@@ -61,7 +61,7 @@ var Header = function Header(_ref) {
61
61
  className = _ref.className;
62
62
  return /*#__PURE__*/jsx("div", {
63
63
  className: classnames("neeto-ui-pane__header", className),
64
- "data-cy": "pane-header",
64
+ "data-testid": "pane-header",
65
65
  children: children
66
66
  });
67
67
  };
@@ -182,7 +182,7 @@ var Pane = function Pane(_ref) {
182
182
  ref: backdropRef,
183
183
  className: classnames("neeto-ui-pane__backdrop neeto-ui-flex neeto-ui-justify-end", backdropClassName),
184
184
  children: /*#__PURE__*/jsxs("div", _objectSpread(_objectSpread({
185
- "data-cy": "pane-wrapper",
185
+ "data-testid": "pane-wrapper",
186
186
  ref: paneWrapperRef,
187
187
  className: classnames("neeto-ui-pane__wrapper", _defineProperty({
188
188
  "neeto-ui-pane__wrapper--small": size === SIZES.small,
@@ -193,8 +193,7 @@ var Pane = function Pane(_ref) {
193
193
  children: [closeButton && /*#__PURE__*/jsx(Button, {
194
194
  "aria-label": "Close",
195
195
  className: "neeto-ui-pane__close",
196
- "data-cy": "pane-close-button",
197
- "data-testid": "close-button",
196
+ "data-testid": "pane-close-button",
198
197
  icon: Close,
199
198
  size: "small",
200
199
  style: "text",