@coorpacademy/components 11.40.22 → 11.40.23

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 (187) hide show
  1. package/es/atom/chip/index.d.ts.map +1 -1
  2. package/es/atom/chip/index.js +10 -0
  3. package/es/atom/chip/index.js.map +1 -1
  4. package/es/atom/chips/index.d.ts.map +1 -1
  5. package/es/atom/chips/index.js +9 -0
  6. package/es/atom/chips/index.js.map +1 -1
  7. package/es/atom/circular-progress-bar/index.d.ts.map +1 -1
  8. package/es/atom/circular-progress-bar/index.js +4 -0
  9. package/es/atom/circular-progress-bar/index.js.map +1 -1
  10. package/es/atom/input-select/index.d.ts.map +1 -1
  11. package/es/atom/input-select/index.js +2 -2
  12. package/es/atom/input-select/index.js.map +1 -1
  13. package/es/atom/input-text-with-title/index.js +1 -0
  14. package/es/atom/input-text-with-title/index.js.map +1 -1
  15. package/es/atom/review-presentation/index.js +1 -0
  16. package/es/atom/review-presentation/index.js.map +1 -1
  17. package/es/atom/title/index.js +1 -0
  18. package/es/atom/title/index.js.map +1 -1
  19. package/es/atom/tooltip/index.d.ts.map +1 -1
  20. package/es/atom/tooltip/index.js +1 -0
  21. package/es/atom/tooltip/index.js.map +1 -1
  22. package/es/molecule/base-modal/index.js +1 -0
  23. package/es/molecule/base-modal/index.js.map +1 -1
  24. package/es/molecule/bullet-point-menu-button/index.d.ts.map +1 -1
  25. package/es/molecule/bullet-point-menu-button/index.js +1 -0
  26. package/es/molecule/bullet-point-menu-button/index.js.map +1 -1
  27. package/es/molecule/button-menu-action/index.d.ts.map +1 -1
  28. package/es/molecule/button-menu-action/index.js +1 -0
  29. package/es/molecule/button-menu-action/index.js.map +1 -1
  30. package/es/molecule/card/customer.js +1 -0
  31. package/es/molecule/card/customer.js.map +1 -1
  32. package/es/molecule/card/index.d.ts.map +1 -1
  33. package/es/molecule/card/index.js +7 -0
  34. package/es/molecule/card/index.js.map +1 -1
  35. package/es/molecule/card-content/index.d.ts.map +1 -1
  36. package/es/molecule/card-content/index.js +1 -0
  37. package/es/molecule/card-content/index.js.map +1 -1
  38. package/es/molecule/course-section/index.d.ts.map +1 -1
  39. package/es/molecule/course-section/index.js +3 -0
  40. package/es/molecule/course-section/index.js.map +1 -1
  41. package/es/molecule/dashboard/learning-profile-banner/index.d.ts.map +1 -1
  42. package/es/molecule/dashboard/learning-profile-banner/index.js +2 -4
  43. package/es/molecule/dashboard/learning-profile-banner/index.js.map +1 -1
  44. package/es/molecule/dashboard/review-banner/index.d.ts.map +1 -1
  45. package/es/molecule/dashboard/review-banner/index.js +2 -4
  46. package/es/molecule/dashboard/review-banner/index.js.map +1 -1
  47. package/es/molecule/learner-skill-card/index.d.ts.map +1 -1
  48. package/es/molecule/learner-skill-card/index.js +11 -0
  49. package/es/molecule/learner-skill-card/index.js.map +1 -1
  50. package/es/molecule/learning-priority-card/index.d.ts.map +1 -1
  51. package/es/molecule/learning-priority-card/index.js +1 -0
  52. package/es/molecule/learning-priority-card/index.js.map +1 -1
  53. package/es/molecule/learning-priority-setup-item/index.d.ts.map +1 -1
  54. package/es/molecule/learning-priority-setup-item/index.js +1 -0
  55. package/es/molecule/learning-priority-setup-item/index.js.map +1 -1
  56. package/es/molecule/progress-wrapper/index.d.ts.map +1 -1
  57. package/es/molecule/progress-wrapper/index.js +3 -0
  58. package/es/molecule/progress-wrapper/index.js.map +1 -1
  59. package/es/molecule/questions/qcm/index.d.ts.map +1 -1
  60. package/es/molecule/questions/qcm/index.js +10 -0
  61. package/es/molecule/questions/qcm/index.js.map +1 -1
  62. package/es/molecule/questions/qcm-graphic/index.d.ts.map +1 -1
  63. package/es/molecule/questions/qcm-graphic/index.js +1 -0
  64. package/es/molecule/questions/qcm-graphic/index.js.map +1 -1
  65. package/es/molecule/quick-filters/index.d.ts.map +1 -1
  66. package/es/molecule/quick-filters/index.js +1 -0
  67. package/es/molecule/quick-filters/index.js.map +1 -1
  68. package/es/molecule/review-correction-popin/index.d.ts.map +1 -1
  69. package/es/molecule/review-correction-popin/index.js +3 -0
  70. package/es/molecule/review-correction-popin/index.js.map +1 -1
  71. package/es/molecule/search-form/index.d.ts.map +1 -1
  72. package/es/molecule/search-form/index.js +7 -0
  73. package/es/molecule/search-form/index.js.map +1 -1
  74. package/es/molecule/skill-card/index.d.ts.map +1 -1
  75. package/es/molecule/skill-card/index.js +3 -0
  76. package/es/molecule/skill-card/index.js.map +1 -1
  77. package/es/organism/header-with-actions/index.js +0 -1
  78. package/es/organism/header-with-actions/index.js.map +1 -1
  79. package/es/organism/list-item/index.js +1 -0
  80. package/es/organism/list-item/index.js.map +1 -1
  81. package/es/organism/mooc-header/index.d.ts.map +1 -1
  82. package/es/organism/mooc-header/index.js +3 -0
  83. package/es/organism/mooc-header/index.js.map +1 -1
  84. package/es/organism/review-congrats/index.d.ts.map +1 -1
  85. package/es/organism/review-congrats/index.js +1 -0
  86. package/es/organism/review-congrats/index.js.map +1 -1
  87. package/es/organism/review-header/index.d.ts.map +1 -1
  88. package/es/organism/review-header/index.js +3 -0
  89. package/es/organism/review-header/index.js.map +1 -1
  90. package/es/template/app-review/skills/index.js +1 -0
  91. package/es/template/app-review/skills/index.js.map +1 -1
  92. package/es/template/review-dashboard-skills/index.js +1 -0
  93. package/es/template/review-dashboard-skills/index.js.map +1 -1
  94. package/lib/atom/chip/index.d.ts.map +1 -1
  95. package/lib/atom/chip/index.js +10 -0
  96. package/lib/atom/chip/index.js.map +1 -1
  97. package/lib/atom/chips/index.d.ts.map +1 -1
  98. package/lib/atom/chips/index.js +9 -0
  99. package/lib/atom/chips/index.js.map +1 -1
  100. package/lib/atom/circular-progress-bar/index.d.ts.map +1 -1
  101. package/lib/atom/circular-progress-bar/index.js +4 -0
  102. package/lib/atom/circular-progress-bar/index.js.map +1 -1
  103. package/lib/atom/input-select/index.d.ts.map +1 -1
  104. package/lib/atom/input-select/index.js +2 -2
  105. package/lib/atom/input-select/index.js.map +1 -1
  106. package/lib/atom/input-text-with-title/index.js +1 -0
  107. package/lib/atom/input-text-with-title/index.js.map +1 -1
  108. package/lib/atom/review-presentation/index.js +1 -0
  109. package/lib/atom/review-presentation/index.js.map +1 -1
  110. package/lib/atom/title/index.js +1 -0
  111. package/lib/atom/title/index.js.map +1 -1
  112. package/lib/atom/tooltip/index.d.ts.map +1 -1
  113. package/lib/atom/tooltip/index.js +1 -0
  114. package/lib/atom/tooltip/index.js.map +1 -1
  115. package/lib/molecule/base-modal/index.js +1 -0
  116. package/lib/molecule/base-modal/index.js.map +1 -1
  117. package/lib/molecule/bullet-point-menu-button/index.d.ts.map +1 -1
  118. package/lib/molecule/bullet-point-menu-button/index.js +1 -0
  119. package/lib/molecule/bullet-point-menu-button/index.js.map +1 -1
  120. package/lib/molecule/button-menu-action/index.d.ts.map +1 -1
  121. package/lib/molecule/button-menu-action/index.js +1 -0
  122. package/lib/molecule/button-menu-action/index.js.map +1 -1
  123. package/lib/molecule/card/customer.js +1 -0
  124. package/lib/molecule/card/customer.js.map +1 -1
  125. package/lib/molecule/card/index.d.ts.map +1 -1
  126. package/lib/molecule/card/index.js +7 -0
  127. package/lib/molecule/card/index.js.map +1 -1
  128. package/lib/molecule/card-content/index.d.ts.map +1 -1
  129. package/lib/molecule/card-content/index.js +1 -0
  130. package/lib/molecule/card-content/index.js.map +1 -1
  131. package/lib/molecule/course-section/index.d.ts.map +1 -1
  132. package/lib/molecule/course-section/index.js +3 -0
  133. package/lib/molecule/course-section/index.js.map +1 -1
  134. package/lib/molecule/dashboard/learning-profile-banner/index.d.ts.map +1 -1
  135. package/lib/molecule/dashboard/learning-profile-banner/index.js +2 -4
  136. package/lib/molecule/dashboard/learning-profile-banner/index.js.map +1 -1
  137. package/lib/molecule/dashboard/review-banner/index.d.ts.map +1 -1
  138. package/lib/molecule/dashboard/review-banner/index.js +2 -4
  139. package/lib/molecule/dashboard/review-banner/index.js.map +1 -1
  140. package/lib/molecule/learner-skill-card/index.d.ts.map +1 -1
  141. package/lib/molecule/learner-skill-card/index.js +11 -0
  142. package/lib/molecule/learner-skill-card/index.js.map +1 -1
  143. package/lib/molecule/learning-priority-card/index.d.ts.map +1 -1
  144. package/lib/molecule/learning-priority-card/index.js +1 -0
  145. package/lib/molecule/learning-priority-card/index.js.map +1 -1
  146. package/lib/molecule/learning-priority-setup-item/index.d.ts.map +1 -1
  147. package/lib/molecule/learning-priority-setup-item/index.js +1 -0
  148. package/lib/molecule/learning-priority-setup-item/index.js.map +1 -1
  149. package/lib/molecule/progress-wrapper/index.d.ts.map +1 -1
  150. package/lib/molecule/progress-wrapper/index.js +3 -0
  151. package/lib/molecule/progress-wrapper/index.js.map +1 -1
  152. package/lib/molecule/questions/qcm/index.d.ts.map +1 -1
  153. package/lib/molecule/questions/qcm/index.js +10 -0
  154. package/lib/molecule/questions/qcm/index.js.map +1 -1
  155. package/lib/molecule/questions/qcm-graphic/index.d.ts.map +1 -1
  156. package/lib/molecule/questions/qcm-graphic/index.js +1 -0
  157. package/lib/molecule/questions/qcm-graphic/index.js.map +1 -1
  158. package/lib/molecule/quick-filters/index.d.ts.map +1 -1
  159. package/lib/molecule/quick-filters/index.js +1 -0
  160. package/lib/molecule/quick-filters/index.js.map +1 -1
  161. package/lib/molecule/review-correction-popin/index.d.ts.map +1 -1
  162. package/lib/molecule/review-correction-popin/index.js +3 -0
  163. package/lib/molecule/review-correction-popin/index.js.map +1 -1
  164. package/lib/molecule/search-form/index.d.ts.map +1 -1
  165. package/lib/molecule/search-form/index.js +7 -0
  166. package/lib/molecule/search-form/index.js.map +1 -1
  167. package/lib/molecule/skill-card/index.d.ts.map +1 -1
  168. package/lib/molecule/skill-card/index.js +3 -0
  169. package/lib/molecule/skill-card/index.js.map +1 -1
  170. package/lib/organism/header-with-actions/index.js +0 -1
  171. package/lib/organism/header-with-actions/index.js.map +1 -1
  172. package/lib/organism/list-item/index.js +1 -0
  173. package/lib/organism/list-item/index.js.map +1 -1
  174. package/lib/organism/mooc-header/index.d.ts.map +1 -1
  175. package/lib/organism/mooc-header/index.js +3 -0
  176. package/lib/organism/mooc-header/index.js.map +1 -1
  177. package/lib/organism/review-congrats/index.d.ts.map +1 -1
  178. package/lib/organism/review-congrats/index.js +1 -0
  179. package/lib/organism/review-congrats/index.js.map +1 -1
  180. package/lib/organism/review-header/index.d.ts.map +1 -1
  181. package/lib/organism/review-header/index.js +3 -0
  182. package/lib/organism/review-header/index.js.map +1 -1
  183. package/lib/template/app-review/skills/index.js +1 -0
  184. package/lib/template/app-review/skills/index.js.map +1 -1
  185. package/lib/template/review-dashboard-skills/index.js +1 -0
  186. package/lib/template/review-dashboard-skills/index.js.map +1 -1
  187. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/chip/index.js"],"names":[],"mappings":"AAmBO,qGAG0E;;AAGjF,6DA0EC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/chip/index.js"],"names":[],"mappings":"AA2BO,qGAG0E;;AAGjF,6DA6EC"}
@@ -15,6 +15,13 @@ const {
15
15
  cm_primary_blue: DEFAULT_BACKGROUND_COLOR
16
16
  } = COLORS;
17
17
  const ICON_SIZE = '12px';
18
+ const handleChipKeyDown = onClick => event => {
19
+ if (!onClick) return;
20
+ if (event.key === 'Enter' || event.key === ' ') {
21
+ event.preventDefault();
22
+ onClick(event);
23
+ }
24
+ };
18
25
  export const calculateHoveredSelectedBgColor = (selectedBgColor, luminosityDelta = LUMINOSITY_DELTA) => convert(`hsl(from ${selectedBgColor} h s calc(l*(1 - ${luminosityDelta})))`);
19
26
  // note: luminosity decrease is relative to the selected color
20
27
 
@@ -62,6 +69,9 @@ const Chip = (props, context) => {
62
69
  onClick: handleClick,
63
70
  onMouseEnter: handleMouseEnter,
64
71
  onMouseLeave: handleMouseLeave,
72
+ role: onClick ? 'button' : 'group',
73
+ tabIndex: onClick ? 0 : undefined,
74
+ onKeyDown: handleChipKeyDown(onClick),
65
75
  "aria-label": text,
66
76
  "data-name": `chip-${text}`
67
77
  }, /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","PropTypes","classnames","getOr","convert","FontAwesomeIcon","fas","library","Provider","COLORS","style","add","LUMINOSITY_DELTA","cm_primary_blue","DEFAULT_BACKGROUND_COLOR","ICON_SIZE","calculateHoveredSelectedBgColor","selectedBgColor","luminosityDelta","Chip","props","context","text","subText","textColor","cm_grey_700","selected","customIcon","onClick","leftIcon","backgroundColor","customStyle","skin","skinColor","hoveredSelectedBgColor","isHovered","setIsHovered","handleClick","handleMouseEnter","handleMouseLeave","hoverStyle","defaultIcon","showIcon","color","white","createElement","className","container","unselected","onMouseEnter","onMouseLeave","left","icon","fontSize","title","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","bool","func","objectOf","oneOfType","number"],"sources":["../../../src/atom/chip/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport getOr from 'lodash/fp/getOr';\nimport {convert} from 'css-color-function';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {fas} from '@fortawesome/pro-solid-svg-icons';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport Provider from '../provider';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nlibrary.add(fas);\n\nconst LUMINOSITY_DELTA = 0.08;\nconst {cm_primary_blue: DEFAULT_BACKGROUND_COLOR} = COLORS;\nconst ICON_SIZE = '12px';\n\nexport const calculateHoveredSelectedBgColor = (\n selectedBgColor,\n luminosityDelta = LUMINOSITY_DELTA\n) => convert(`hsl(from ${selectedBgColor} h s calc(l*(1 - ${luminosityDelta})))`);\n// note: luminosity decrease is relative to the selected color\n\nconst Chip = (props, context) => {\n const {\n text,\n subText,\n textColor = COLORS.cm_grey_700,\n selected = false,\n customIcon,\n onClick,\n leftIcon,\n backgroundColor,\n customStyle\n } = props;\n const {skin} = context;\n const skinColor = getOr(DEFAULT_BACKGROUND_COLOR, 'common.primary', skin);\n const selectedBgColor =\n backgroundColor === 'skin' && skinColor\n ? skinColor\n : backgroundColor || DEFAULT_BACKGROUND_COLOR;\n const hoveredSelectedBgColor = calculateHoveredSelectedBgColor(selectedBgColor);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleClick = useMemo(() => onClick, [onClick]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const hoverStyle = isHovered ? {backgroundColor: hoveredSelectedBgColor} : {};\n\n const defaultIcon = selected ? 'fa-check' : 'fa-plus';\n const showIcon = customIcon !== 'none';\n const color = selected ? COLORS.white : textColor;\n\n return (\n <div\n className={classnames(style.container, !selected && style.unselected)}\n style={{\n ...(selected && selectedBgColor ? {backgroundColor: selectedBgColor} : {}),\n ...(selected && hoverStyle),\n ...customStyle\n }}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n aria-label={text}\n data-name={`chip-${text}`}\n >\n <div className={style.left}>\n {leftIcon ? <FontAwesomeIcon style={{color}} icon={leftIcon} fontSize={ICON_SIZE} /> : null}\n <div title={text}>\n <span className={style.text} style={{color}}>\n {text}\n </span>\n {subText ? (\n <span className={style.subText} style={{color}}>\n {subText}\n </span>\n ) : null}\n </div>\n </div>\n {showIcon ? (\n <FontAwesomeIcon\n style={{color}}\n icon={customIcon ? `fa-${customIcon}` : defaultIcon}\n fontSize={ICON_SIZE}\n />\n ) : null}\n </div>\n );\n};\n\nChip.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nChip.propTypes = {\n text: PropTypes.string,\n subText: PropTypes.string,\n textColor: PropTypes.string,\n selected: PropTypes.bool,\n customIcon: PropTypes.string,\n backgroundColor: PropTypes.string,\n onClick: PropTypes.func,\n leftIcon: PropTypes.string,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default Chip;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","useState","useCallback","PropTypes","classnames","getOr","convert","FontAwesomeIcon","fas","library","Provider","COLORS","style","add","LUMINOSITY_DELTA","cm_primary_blue","DEFAULT_BACKGROUND_COLOR","ICON_SIZE","handleChipKeyDown","onClick","event","key","preventDefault","calculateHoveredSelectedBgColor","selectedBgColor","luminosityDelta","Chip","props","context","text","subText","textColor","cm_grey_700","selected","customIcon","leftIcon","backgroundColor","customStyle","skin","skinColor","hoveredSelectedBgColor","isHovered","setIsHovered","handleClick","handleMouseEnter","handleMouseLeave","hoverStyle","defaultIcon","showIcon","color","white","createElement","className","container","unselected","onMouseEnter","onMouseLeave","role","tabIndex","undefined","onKeyDown","left","icon","fontSize","title","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","bool","func","objectOf","oneOfType","number"],"sources":["../../../src/atom/chip/index.js"],"sourcesContent":["import React, {useMemo, useState, useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\n\nimport getOr from 'lodash/fp/getOr';\nimport {convert} from 'css-color-function';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {fas} from '@fortawesome/pro-solid-svg-icons';\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport Provider from '../provider';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nlibrary.add(fas);\n\nconst LUMINOSITY_DELTA = 0.08;\nconst {cm_primary_blue: DEFAULT_BACKGROUND_COLOR} = COLORS;\nconst ICON_SIZE = '12px';\n\nconst handleChipKeyDown = onClick => event => {\n if (!onClick) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick(event);\n }\n};\n\nexport const calculateHoveredSelectedBgColor = (\n selectedBgColor,\n luminosityDelta = LUMINOSITY_DELTA\n) => convert(`hsl(from ${selectedBgColor} h s calc(l*(1 - ${luminosityDelta})))`);\n// note: luminosity decrease is relative to the selected color\n\nconst Chip = (props, context) => {\n const {\n text,\n subText,\n textColor = COLORS.cm_grey_700,\n selected = false,\n customIcon,\n onClick,\n leftIcon,\n backgroundColor,\n customStyle\n } = props;\n const {skin} = context;\n const skinColor = getOr(DEFAULT_BACKGROUND_COLOR, 'common.primary', skin);\n const selectedBgColor =\n backgroundColor === 'skin' && skinColor\n ? skinColor\n : backgroundColor || DEFAULT_BACKGROUND_COLOR;\n const hoveredSelectedBgColor = calculateHoveredSelectedBgColor(selectedBgColor);\n\n const [isHovered, setIsHovered] = useState(false);\n\n const handleClick = useMemo(() => onClick, [onClick]);\n\n const handleMouseEnter = useCallback(() => {\n setIsHovered(true);\n }, []);\n\n const handleMouseLeave = useCallback(() => {\n setIsHovered(false);\n }, []);\n\n const hoverStyle = isHovered ? {backgroundColor: hoveredSelectedBgColor} : {};\n\n const defaultIcon = selected ? 'fa-check' : 'fa-plus';\n const showIcon = customIcon !== 'none';\n const color = selected ? COLORS.white : textColor;\n\n return (\n <div\n className={classnames(style.container, !selected && style.unselected)}\n style={{\n ...(selected && selectedBgColor ? {backgroundColor: selectedBgColor} : {}),\n ...(selected && hoverStyle),\n ...customStyle\n }}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n role={onClick ? 'button' : 'group'}\n tabIndex={onClick ? 0 : undefined}\n onKeyDown={handleChipKeyDown(onClick)}\n aria-label={text}\n data-name={`chip-${text}`}\n >\n <div className={style.left}>\n {leftIcon ? <FontAwesomeIcon style={{color}} icon={leftIcon} fontSize={ICON_SIZE} /> : null}\n <div title={text}>\n <span className={style.text} style={{color}}>\n {text}\n </span>\n {subText ? (\n <span className={style.subText} style={{color}}>\n {subText}\n </span>\n ) : null}\n </div>\n </div>\n {showIcon ? (\n <FontAwesomeIcon\n style={{color}}\n icon={customIcon ? `fa-${customIcon}` : defaultIcon}\n fontSize={ICON_SIZE}\n />\n ) : null}\n </div>\n );\n};\n\nChip.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nChip.propTypes = {\n text: PropTypes.string,\n subText: PropTypes.string,\n textColor: PropTypes.string,\n selected: PropTypes.bool,\n customIcon: PropTypes.string,\n backgroundColor: PropTypes.string,\n onClick: PropTypes.func,\n leftIcon: PropTypes.string,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default Chip;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/chips/index.js"],"names":[],"mappings":";AAWA,gDAuBC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/chips/index.js"],"names":[],"mappings":";AAkBA,gDA0BC"}
@@ -5,6 +5,12 @@ import PropTypes from 'prop-types';
5
5
  import classnames from 'classnames';
6
6
  import { NovaSolidRemoveAddAddCircle1 as AddIcon, NovaSolidStatusCheckCircle2 as SelectedIcon } from '@coorpacademy/nova-icons';
7
7
  import style from './style.css';
8
+ const handleChipKeyDown = onClick => event => {
9
+ if (event.key === 'Enter' || event.key === ' ') {
10
+ event.preventDefault();
11
+ onClick();
12
+ }
13
+ };
8
14
  const Chips = props => {
9
15
  const {
10
16
  text,
@@ -16,6 +22,9 @@ const Chips = props => {
16
22
  return /*#__PURE__*/React.createElement("div", {
17
23
  className: classnames(style.container, selected ? style.selected : style.unselected),
18
24
  onClick: handleClick,
25
+ role: "button",
26
+ tabIndex: 0,
27
+ onKeyDown: handleChipKeyDown(onClick),
19
28
  "aria-label": `${text} ${information}`,
20
29
  "data-name": text
21
30
  }, /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","PropTypes","classnames","NovaSolidRemoveAddAddCircle1","AddIcon","NovaSolidStatusCheckCircle2","SelectedIcon","style","Chips","props","text","information","selected","onClick","handleClick","createElement","className","container","unselected","textZone","title","selectedIconWrapper","unselectedIconWrapper","propTypes","process","env","NODE_ENV","string","bool","func"],"sources":["../../../src/atom/chips/index.js"],"sourcesContent":["// This component is a simpler version of the generic Chip component, in use in CoorpManager.\n\nimport React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {\n NovaSolidRemoveAddAddCircle1 as AddIcon,\n NovaSolidStatusCheckCircle2 as SelectedIcon\n} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst Chips = props => {\n const {text, information, selected = false, onClick} = props;\n\n const handleClick = useMemo(() => () => onClick(), [onClick]);\n\n return (\n <div\n className={classnames(style.container, selected ? style.selected : style.unselected)}\n onClick={handleClick}\n aria-label={`${text} ${information}`}\n data-name={text}\n >\n <div className={style.textZone} title={text}>\n <span className={style.text}>{text}</span>\n <span className={style.information}>{information}</span>\n </div>\n {selected ? (\n <SelectedIcon className={style.selectedIconWrapper} />\n ) : (\n <AddIcon className={style.unselectedIconWrapper} />\n )}\n </div>\n );\n};\n\nChips.propTypes = {\n text: PropTypes.string,\n information: PropTypes.string,\n selected: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nexport default Chips;\n"],"mappings":"AAAA;;AAEA,OAAOA,KAAK,IAAGC,OAAO,QAAO,OAAO;AACpC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,4BAA4B,IAAIC,OAAO,EACvCC,2BAA2B,IAAIC,YAAY,QACtC,0BAA0B;AACjC,OAAOC,KAAK,MAAM,aAAa;AAE/B,MAAMC,KAAK,GAAGC,KAAK,IAAI;EACrB,MAAM;IAACC,IAAI;IAAEC,WAAW;IAAEC,QAAQ,GAAG,KAAK;IAAEC;EAAO,CAAC,GAAGJ,KAAK;EAE5D,MAAMK,WAAW,GAAGd,OAAO,CAAC,MAAM,MAAMa,OAAO,CAAC,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAE7D,oBACEd,KAAA,CAAAgB,aAAA;IACEC,SAAS,EAAEd,UAAU,CAACK,KAAK,CAACU,SAAS,EAAEL,QAAQ,GAAGL,KAAK,CAACK,QAAQ,GAAGL,KAAK,CAACW,UAAU,CAAE;IACrFL,OAAO,EAAEC,WAAY;IACrB,cAAY,GAAGJ,IAAI,IAAIC,WAAW,EAAG;IACrC,aAAWD;EAAK,gBAEhBX,KAAA,CAAAgB,aAAA;IAAKC,SAAS,EAAET,KAAK,CAACY,QAAS;IAACC,KAAK,EAAEV;EAAK,gBAC1CX,KAAA,CAAAgB,aAAA;IAAMC,SAAS,EAAET,KAAK,CAACG;EAAK,GAAEA,IAAW,CAAC,eAC1CX,KAAA,CAAAgB,aAAA;IAAMC,SAAS,EAAET,KAAK,CAACI;EAAY,GAAEA,WAAkB,CACpD,CAAC,EACLC,QAAQ,gBACPb,KAAA,CAAAgB,aAAA,CAACT,YAAY;IAACU,SAAS,EAAET,KAAK,CAACc;EAAoB,CAAE,CAAC,gBAEtDtB,KAAA,CAAAgB,aAAA,CAACX,OAAO;IAACY,SAAS,EAAET,KAAK,CAACe;EAAsB,CAAE,CAEjD,CAAC;AAEV,CAAC;AAEDd,KAAK,CAACe,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EAChBhB,IAAI,EAAET,SAAS,CAAC0B,MAAM;EACtBhB,WAAW,EAAEV,SAAS,CAAC0B,MAAM;EAC7Bf,QAAQ,EAAEX,SAAS,CAAC2B,IAAI;EACxBf,OAAO,EAAEZ,SAAS,CAAC4B;AACrB,CAAC;AAED,eAAerB,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","PropTypes","classnames","NovaSolidRemoveAddAddCircle1","AddIcon","NovaSolidStatusCheckCircle2","SelectedIcon","style","handleChipKeyDown","onClick","event","key","preventDefault","Chips","props","text","information","selected","handleClick","createElement","className","container","unselected","role","tabIndex","onKeyDown","textZone","title","selectedIconWrapper","unselectedIconWrapper","propTypes","process","env","NODE_ENV","string","bool","func"],"sources":["../../../src/atom/chips/index.js"],"sourcesContent":["// This component is a simpler version of the generic Chip component, in use in CoorpManager.\n\nimport React, {useMemo} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {\n NovaSolidRemoveAddAddCircle1 as AddIcon,\n NovaSolidStatusCheckCircle2 as SelectedIcon\n} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst handleChipKeyDown = onClick => event => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onClick();\n }\n};\n\nconst Chips = props => {\n const {text, information, selected = false, onClick} = props;\n\n const handleClick = useMemo(() => () => onClick(), [onClick]);\n\n return (\n <div\n className={classnames(style.container, selected ? style.selected : style.unselected)}\n onClick={handleClick}\n role=\"button\"\n tabIndex={0}\n onKeyDown={handleChipKeyDown(onClick)}\n aria-label={`${text} ${information}`}\n data-name={text}\n >\n <div className={style.textZone} title={text}>\n <span className={style.text}>{text}</span>\n <span className={style.information}>{information}</span>\n </div>\n {selected ? (\n <SelectedIcon className={style.selectedIconWrapper} />\n ) : (\n <AddIcon className={style.unselectedIconWrapper} />\n )}\n </div>\n );\n};\n\nChips.propTypes = {\n text: PropTypes.string,\n information: PropTypes.string,\n selected: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nexport default Chips;\n"],"mappings":"AAAA;;AAEA,OAAOA,KAAK,IAAGC,OAAO,QAAO,OAAO;AACpC,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AACnC,SACEC,4BAA4B,IAAIC,OAAO,EACvCC,2BAA2B,IAAIC,YAAY,QACtC,0BAA0B;AACjC,OAAOC,KAAK,MAAM,aAAa;AAE/B,MAAMC,iBAAiB,GAAGC,OAAO,IAAIC,KAAK,IAAI;EAC5C,IAAIA,KAAK,CAACC,GAAG,KAAK,OAAO,IAAID,KAAK,CAACC,GAAG,KAAK,GAAG,EAAE;IAC9CD,KAAK,CAACE,cAAc,CAAC,CAAC;IACtBH,OAAO,CAAC,CAAC;EACX;AACF,CAAC;AAED,MAAMI,KAAK,GAAGC,KAAK,IAAI;EACrB,MAAM;IAACC,IAAI;IAAEC,WAAW;IAAEC,QAAQ,GAAG,KAAK;IAAER;EAAO,CAAC,GAAGK,KAAK;EAE5D,MAAMI,WAAW,GAAGlB,OAAO,CAAC,MAAM,MAAMS,OAAO,CAAC,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAE7D,oBACEV,KAAA,CAAAoB,aAAA;IACEC,SAAS,EAAElB,UAAU,CAACK,KAAK,CAACc,SAAS,EAAEJ,QAAQ,GAAGV,KAAK,CAACU,QAAQ,GAAGV,KAAK,CAACe,UAAU,CAAE;IACrFb,OAAO,EAAES,WAAY;IACrBK,IAAI,EAAC,QAAQ;IACbC,QAAQ,EAAE,CAAE;IACZC,SAAS,EAAEjB,iBAAiB,CAACC,OAAO,CAAE;IACtC,cAAY,GAAGM,IAAI,IAAIC,WAAW,EAAG;IACrC,aAAWD;EAAK,gBAEhBhB,KAAA,CAAAoB,aAAA;IAAKC,SAAS,EAAEb,KAAK,CAACmB,QAAS;IAACC,KAAK,EAAEZ;EAAK,gBAC1ChB,KAAA,CAAAoB,aAAA;IAAMC,SAAS,EAAEb,KAAK,CAACQ;EAAK,GAAEA,IAAW,CAAC,eAC1ChB,KAAA,CAAAoB,aAAA;IAAMC,SAAS,EAAEb,KAAK,CAACS;EAAY,GAAEA,WAAkB,CACpD,CAAC,EACLC,QAAQ,gBACPlB,KAAA,CAAAoB,aAAA,CAACb,YAAY;IAACc,SAAS,EAAEb,KAAK,CAACqB;EAAoB,CAAE,CAAC,gBAEtD7B,KAAA,CAAAoB,aAAA,CAACf,OAAO;IAACgB,SAAS,EAAEb,KAAK,CAACsB;EAAsB,CAAE,CAEjD,CAAC;AAEV,CAAC;AAEDhB,KAAK,CAACiB,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EAChBlB,IAAI,EAAEd,SAAS,CAACiC,MAAM;EACtBlB,WAAW,EAAEf,SAAS,CAACiC,MAAM;EAC7BjB,QAAQ,EAAEhB,SAAS,CAACkC,IAAI;EACxB1B,OAAO,EAAER,SAAS,CAACmC;AACrB,CAAC;AAED,eAAevB,KAAK","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/circular-progress-bar/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,6BAA6B,EAA+B,MAAM,SAAS,CAAC;AAmBpF,QAAA,MAAM,mBAAmB;gGAOtB,6BAA6B;;;;;;;;;CAgD/B,CAAC;AAIF,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/circular-progress-bar/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAC,6BAA6B,EAA+B,MAAM,SAAS,CAAC;AAmBpF,QAAA,MAAM,mBAAmB;gGAOtB,6BAA6B;;;;;;;;;CAwD/B,CAAC;AAIF,eAAe,mBAAmB,CAAC"}
@@ -41,7 +41,11 @@ const CircularProgressBar = ({
41
41
  useEffect(() => setOffset(Math.ceil(length * ((100 - progression) / 100))), [length, progression]);
42
42
  return /*#__PURE__*/React.createElement("div", {
43
43
  className: style.container,
44
+ role: "progressbar",
44
45
  "aria-label": ariaLabel,
46
+ "aria-valuemin": 0,
47
+ "aria-valuemax": 100,
48
+ "aria-valuenow": progression,
45
49
  "data-name": dataName
46
50
  }, /*#__PURE__*/React.createElement("svg", {
47
51
  className: style.svg,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","useState","useEffect","CircularProgressBarPropTypes","style","ProgressionGradient","createElement","id","x1","y1","x2","y2","gradientUnits","stopColor","offset","CircularProgressBar","label","progression","size","strokeWidth","ariaLabel","dataName","setOffset","center","radius","length","center_","radius_","length_","Math","ceil","PI","className","container","svg","width","height","mainCircle","cx","cy","r","fill","progressionCircle","stroke","strokeDasharray","strokeDashoffset","_isNull","strokeLinecap","infos","propTypes","process","env","NODE_ENV"],"sources":["../../../src/atom/circular-progress-bar/index.tsx"],"sourcesContent":["import React, {useMemo, useState, useEffect} from 'react';\nimport {isNull} from 'lodash/fp';\nimport {LearningPriorityCardPropTypes, CircularProgressBarPropTypes} from './types';\nimport style from './style.css';\n\nconst ProgressionGradient = () => (\n <defs>\n <linearGradient\n id=\"gradient-stroke-progression\"\n x1=\"81\"\n y1=\"0\"\n x2=\"81\"\n y2=\"162\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#35CC7F\" />\n <stop offset=\"1\" stopColor=\"#55F2A7\" />\n </linearGradient>\n </defs>\n);\n\nconst CircularProgressBar = ({\n label,\n progression,\n size,\n strokeWidth,\n 'aria-label': ariaLabel,\n 'data-name': dataName\n}: LearningPriorityCardPropTypes) => {\n const [offset, setOffset] = useState<null | number>(null);\n\n const {center, radius, length} = useMemo(() => {\n const center_ = size / 2;\n const radius_ = center_ - strokeWidth;\n const length_ = Math.ceil(2 * Math.PI * radius_);\n\n return {center: center_, radius: radius_, length: length_};\n }, [size, strokeWidth]);\n\n useEffect(\n () => setOffset(Math.ceil(length * ((100 - progression) / 100))),\n [length, progression]\n );\n\n return (\n <div className={style.container} aria-label={ariaLabel} data-name={dataName}>\n <svg className={style.svg} width={size} height={size}>\n <ProgressionGradient />\n <circle\n className={style.mainCircle}\n cx={center}\n cy={center}\n r={radius}\n strokeWidth={3}\n fill=\"transparent\"\n />\n <circle cx={center} cy={center} r={radius - (10 / radius) * 100} fill=\"#fafafa\" />\n <circle\n className={style.progressionCircle}\n cx={center}\n cy={center}\n r={radius}\n stroke={`url(#gradient-stroke-progression)`}\n strokeWidth={strokeWidth}\n strokeDasharray={length}\n strokeDashoffset={isNull(offset) ? length : offset}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n />\n </svg>\n <div className={style.infos}>\n <span className={style.progression}>{progression}%</span>\n <span className={style.label}>{label}</span>\n </div>\n </div>\n );\n};\n\nCircularProgressBar.propTypes = CircularProgressBarPropTypes;\n\nexport default CircularProgressBar;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","useState","useEffect","CircularProgressBarPropTypes","style","ProgressionGradient","createElement","id","x1","y1","x2","y2","gradientUnits","stopColor","offset","CircularProgressBar","label","progression","size","strokeWidth","ariaLabel","dataName","setOffset","center","radius","length","center_","radius_","length_","Math","ceil","PI","className","container","role","svg","width","height","mainCircle","cx","cy","r","fill","progressionCircle","stroke","strokeDasharray","strokeDashoffset","_isNull","strokeLinecap","infos","propTypes","process","env","NODE_ENV"],"sources":["../../../src/atom/circular-progress-bar/index.tsx"],"sourcesContent":["import React, {useMemo, useState, useEffect} from 'react';\nimport {isNull} from 'lodash/fp';\nimport {LearningPriorityCardPropTypes, CircularProgressBarPropTypes} from './types';\nimport style from './style.css';\n\nconst ProgressionGradient = () => (\n <defs>\n <linearGradient\n id=\"gradient-stroke-progression\"\n x1=\"81\"\n y1=\"0\"\n x2=\"81\"\n y2=\"162\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop stopColor=\"#35CC7F\" />\n <stop offset=\"1\" stopColor=\"#55F2A7\" />\n </linearGradient>\n </defs>\n);\n\nconst CircularProgressBar = ({\n label,\n progression,\n size,\n strokeWidth,\n 'aria-label': ariaLabel,\n 'data-name': dataName\n}: LearningPriorityCardPropTypes) => {\n const [offset, setOffset] = useState<null | number>(null);\n\n const {center, radius, length} = useMemo(() => {\n const center_ = size / 2;\n const radius_ = center_ - strokeWidth;\n const length_ = Math.ceil(2 * Math.PI * radius_);\n\n return {center: center_, radius: radius_, length: length_};\n }, [size, strokeWidth]);\n\n useEffect(\n () => setOffset(Math.ceil(length * ((100 - progression) / 100))),\n [length, progression]\n );\n\n return (\n <div\n className={style.container}\n role=\"progressbar\"\n aria-label={ariaLabel}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={progression}\n data-name={dataName}\n >\n <svg className={style.svg} width={size} height={size}>\n <ProgressionGradient />\n <circle\n className={style.mainCircle}\n cx={center}\n cy={center}\n r={radius}\n strokeWidth={3}\n fill=\"transparent\"\n />\n <circle cx={center} cy={center} r={radius - (10 / radius) * 100} fill=\"#fafafa\" />\n <circle\n className={style.progressionCircle}\n cx={center}\n cy={center}\n r={radius}\n stroke={`url(#gradient-stroke-progression)`}\n strokeWidth={strokeWidth}\n strokeDasharray={length}\n strokeDashoffset={isNull(offset) ? length : offset}\n fill=\"transparent\"\n strokeLinecap=\"round\"\n />\n </svg>\n <div className={style.infos}>\n <span className={style.progression}>{progression}%</span>\n <span className={style.label}>{label}</span>\n </div>\n </div>\n );\n};\n\nCircularProgressBar.propTypes = CircularProgressBarPropTypes;\n\nexport default CircularProgressBar;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/input-select/index.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAK9C,QAAA,MAAM,WAAW;YAAW,gBAAgB,WAAW,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyHtE,CAAC;AAMF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/input-select/index.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAC,gBAAgB,EAAC,MAAM,yBAAyB,CAAC;AAGzD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAK9C,QAAA,MAAM,WAAW;YAAW,gBAAgB,WAAW,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0HtE,CAAC;AAMF,eAAe,WAAW,CAAC"}
@@ -82,12 +82,12 @@ const InputSelect = (props, context) => {
82
82
  [style.open]: open
83
83
  })
84
84
  }), /*#__PURE__*/React.createElement("div", {
85
- className: classnames(style.wrapper, className),
86
- "aria-label": ariaLabel
85
+ className: classnames(style.wrapper, className)
87
86
  }, /*#__PURE__*/React.createElement("button", {
88
87
  type: "button",
89
88
  className: style.display,
90
89
  onClick: handleToggle,
90
+ "aria-label": ariaLabel,
91
91
  "aria-haspopup": "listbox",
92
92
  "aria-expanded": open,
93
93
  "aria-controls": open ? `${componentId}-listbox` : undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useState","useRef","useCallback","classnames","FontAwesomeIcon","Provider","GetSkinFromContext","style","propTypes","COMPONENT_ID","InputSelect","props","context","options","value","onChange","placeholder","className","ariaLabel","iconClosed","selectedIcon","buttonDataTestId","skin","primaryColor","_get","open","setOpen","wrapperRef","componentId","toLowerCase","replace","handleToggle","o","handleOnOptionClick","optionValue","useEffect","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener","selectedOption","find","opt","renderOption","option","handleClick","isSelected","createElement","key","selected","role","onClick","backgroundOption","backgroundColor","optionIcon","icon","optionLabel","label","checkIcon","color","shouldBeScrollable","length","container","ref","boxShadow","outerWrapper","wrapper","type","display","undefined","id","content","iconWrapper","rotated","menuWrapper","showFade","menu","map","process","env","NODE_ENV","contextTypes","childContextTypes"],"sources":["../../../src/atom/input-select/index.tsx"],"sourcesContent":["import React, {useState, useRef, useCallback} from 'react';\nimport classnames from 'classnames';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {IconName} from '@fortawesome/fontawesome-svg-core';\nimport {get} from 'lodash/fp';\nimport {WebContextValues} from '../provider/web-context';\nimport Provider, {GetSkinFromContext} from '../provider';\nimport style from './style.css';\nimport type {InputSelectProps} from './types';\nimport propTypes from './types';\n\nconst COMPONENT_ID = 'input-select';\n\nconst InputSelect = (props: InputSelectProps, context: WebContextValues) => {\n const {\n options = [],\n value,\n onChange,\n placeholder,\n className,\n 'aria-label': ariaLabel,\n iconClosed = 'chevron-down',\n selectedIcon = 'circle-check',\n 'button-data-testid': buttonDataTestId = 'select-input'\n } = props;\n const skin = GetSkinFromContext(context);\n const primaryColor = get('common.primary', skin);\n const [open, setOpen] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const componentId = `${COMPONENT_ID}-${\n placeholder?.toLowerCase().replace(/\\s+/g, '-') || 'default'\n }`;\n\n const handleToggle = useCallback(() => {\n setOpen(o => !o);\n }, []);\n\n const handleOnOptionClick = useCallback(\n (optionValue: string) => {\n onChange(optionValue);\n setOpen(false);\n },\n [onChange]\n );\n\n React.useEffect(() => {\n if (!open) return;\n const handleClickOutside = (event: MouseEvent) => {\n if (!wrapperRef.current?.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [open]);\n\n const selectedOption = options.find(opt => opt.value === value);\n\n const renderOption = (option: InputSelectProps['options'][0]) => {\n function handleClick() {\n handleOnOptionClick(option.value);\n }\n\n const isSelected = option.value === value;\n\n return (\n <li\n key={option.value}\n className={classnames(style.option, isSelected && style.selected)}\n role=\"option\"\n aria-selected={isSelected}\n onClick={handleClick}\n data-testid={`option-${option.value}`}\n data-name={option['data-name']}\n >\n <div className={style.backgroundOption} style={{backgroundColor: primaryColor}} />\n <span className={style.optionIcon}>{option.icon}</span>\n <span className={style.optionLabel}>{option.label}</span>\n {isSelected ? (\n <span className={style.checkIcon}>\n <FontAwesomeIcon icon={selectedIcon as IconName} color={primaryColor} />\n </span>\n ) : null}\n </li>\n );\n };\n\n const shouldBeScrollable = options.length > 6;\n\n return (\n <div className={style.container} ref={wrapperRef}>\n <div\n style={{\n boxShadow: open\n ? `0 0 0 2px white, 0 0 0 4px${primaryColor}`\n : `0 0 0 2px ${primaryColor}`\n }}\n className={classnames(style.outerWrapper, {\n [style.open]: open\n })}\n />\n <div className={classnames(style.wrapper, className)} aria-label={ariaLabel}>\n <button\n type=\"button\"\n className={style.display}\n onClick={handleToggle}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={open ? `${componentId}-listbox` : undefined}\n id={componentId}\n data-testid={buttonDataTestId}\n >\n <div className={style.content}>\n <span className={style.label}>{placeholder}</span>\n {selectedOption ? <span className={style.value}>{selectedOption.label}</span> : null}\n </div>\n <span className={classnames(style.iconWrapper, {[style.open]: open})}>\n <FontAwesomeIcon\n className={classnames(style.icon, {[style.rotated]: open})}\n icon={iconClosed as IconName}\n />\n </span>\n </button>\n </div>\n {open ? (\n <div className={classnames(style.menuWrapper, {[style.showFade]: shouldBeScrollable})}>\n <ul id={`${componentId}-listbox`} className={style.menu} role=\"listbox\">\n {options.map(renderOption)}\n </ul>\n </div>\n ) : null}\n </div>\n );\n};\n\nInputSelect.propTypes = propTypes;\nInputSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\nexport default InputSelect;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useState","useRef","useCallback","classnames","FontAwesomeIcon","Provider","GetSkinFromContext","style","propTypes","COMPONENT_ID","InputSelect","props","context","options","value","onChange","placeholder","className","ariaLabel","iconClosed","selectedIcon","buttonDataTestId","skin","primaryColor","_get","open","setOpen","wrapperRef","componentId","toLowerCase","replace","handleToggle","o","handleOnOptionClick","optionValue","useEffect","handleClickOutside","event","current","contains","target","document","addEventListener","removeEventListener","selectedOption","find","opt","renderOption","option","handleClick","isSelected","createElement","key","selected","role","onClick","backgroundOption","backgroundColor","optionIcon","icon","optionLabel","label","checkIcon","color","shouldBeScrollable","length","container","ref","boxShadow","outerWrapper","wrapper","type","display","undefined","id","content","iconWrapper","rotated","menuWrapper","showFade","menu","map","process","env","NODE_ENV","contextTypes","childContextTypes"],"sources":["../../../src/atom/input-select/index.tsx"],"sourcesContent":["import React, {useState, useRef, useCallback} from 'react';\nimport classnames from 'classnames';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {IconName} from '@fortawesome/fontawesome-svg-core';\nimport {get} from 'lodash/fp';\nimport {WebContextValues} from '../provider/web-context';\nimport Provider, {GetSkinFromContext} from '../provider';\nimport style from './style.css';\nimport type {InputSelectProps} from './types';\nimport propTypes from './types';\n\nconst COMPONENT_ID = 'input-select';\n\nconst InputSelect = (props: InputSelectProps, context: WebContextValues) => {\n const {\n options = [],\n value,\n onChange,\n placeholder,\n className,\n 'aria-label': ariaLabel,\n iconClosed = 'chevron-down',\n selectedIcon = 'circle-check',\n 'button-data-testid': buttonDataTestId = 'select-input'\n } = props;\n const skin = GetSkinFromContext(context);\n const primaryColor = get('common.primary', skin);\n const [open, setOpen] = useState(false);\n const wrapperRef = useRef<HTMLDivElement>(null);\n\n const componentId = `${COMPONENT_ID}-${\n placeholder?.toLowerCase().replace(/\\s+/g, '-') || 'default'\n }`;\n\n const handleToggle = useCallback(() => {\n setOpen(o => !o);\n }, []);\n\n const handleOnOptionClick = useCallback(\n (optionValue: string) => {\n onChange(optionValue);\n setOpen(false);\n },\n [onChange]\n );\n\n React.useEffect(() => {\n if (!open) return;\n const handleClickOutside = (event: MouseEvent) => {\n if (!wrapperRef.current?.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, [open]);\n\n const selectedOption = options.find(opt => opt.value === value);\n\n const renderOption = (option: InputSelectProps['options'][0]) => {\n function handleClick() {\n handleOnOptionClick(option.value);\n }\n\n const isSelected = option.value === value;\n\n return (\n <li\n key={option.value}\n className={classnames(style.option, isSelected && style.selected)}\n role=\"option\"\n aria-selected={isSelected}\n onClick={handleClick}\n data-testid={`option-${option.value}`}\n data-name={option['data-name']}\n >\n <div className={style.backgroundOption} style={{backgroundColor: primaryColor}} />\n <span className={style.optionIcon}>{option.icon}</span>\n <span className={style.optionLabel}>{option.label}</span>\n {isSelected ? (\n <span className={style.checkIcon}>\n <FontAwesomeIcon icon={selectedIcon as IconName} color={primaryColor} />\n </span>\n ) : null}\n </li>\n );\n };\n\n const shouldBeScrollable = options.length > 6;\n\n return (\n <div className={style.container} ref={wrapperRef}>\n <div\n style={{\n boxShadow: open\n ? `0 0 0 2px white, 0 0 0 4px${primaryColor}`\n : `0 0 0 2px ${primaryColor}`\n }}\n className={classnames(style.outerWrapper, {\n [style.open]: open\n })}\n />\n <div className={classnames(style.wrapper, className)}>\n <button\n type=\"button\"\n className={style.display}\n onClick={handleToggle}\n aria-label={ariaLabel}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-controls={open ? `${componentId}-listbox` : undefined}\n id={componentId}\n data-testid={buttonDataTestId}\n >\n <div className={style.content}>\n <span className={style.label}>{placeholder}</span>\n {selectedOption ? <span className={style.value}>{selectedOption.label}</span> : null}\n </div>\n <span className={classnames(style.iconWrapper, {[style.open]: open})}>\n <FontAwesomeIcon\n className={classnames(style.icon, {[style.rotated]: open})}\n icon={iconClosed as IconName}\n />\n </span>\n </button>\n </div>\n {open ? (\n <div className={classnames(style.menuWrapper, {[style.showFade]: shouldBeScrollable})}>\n <ul id={`${componentId}-listbox`} className={style.menu} role=\"listbox\">\n {options.map(renderOption)}\n </ul>\n </div>\n ) : null}\n </div>\n );\n};\n\nInputSelect.propTypes = propTypes;\nInputSelect.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\nexport default InputSelect;\n"],"mappings":"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","ignoreList":[]}
@@ -13,6 +13,7 @@ const InputTextWithTitle = props => {
13
13
  return /*#__PURE__*/React.createElement("div", {
14
14
  className: style.container,
15
15
  "data-name": dataName,
16
+ role: "group",
16
17
  "aria-label": ariaLabel
17
18
  }, title ? /*#__PURE__*/React.createElement("span", {
18
19
  className: style.title
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","InputText","style","InputTextWithTitle","props","inputText","title","dataName","ariaLabel","inputTextClass","size","smallInputText","defaultInputText","createElement","className","container","propTypes","process","env","NODE_ENV","shape","theme","string"],"sources":["../../../src/atom/input-text-with-title/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport InputText from '../input-text';\nimport style from './style.css';\n\nconst InputTextWithTitle = props => {\n const {inputText, title, 'data-name': dataName, 'aria-label': ariaLabel} = props;\n const inputTextClass = inputText.size === 'small' ? style.smallInputText : style.defaultInputText;\n\n return (\n <div className={style.container} data-name={dataName} aria-label={ariaLabel}>\n {title ? <span className={style.title}>{title}</span> : null}\n <div className={inputTextClass}>\n <InputText {...inputText} />\n </div>\n </div>\n );\n};\n\nInputTextWithTitle.propTypes = {\n inputText: PropTypes.shape({\n ...InputText.propTypes,\n theme: PropTypes.string,\n size: PropTypes.string\n }),\n title: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string\n};\nexport default InputTextWithTitle;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,SAAS,MAAM,eAAe;AACrC,OAAOC,KAAK,MAAM,aAAa;AAE/B,MAAMC,kBAAkB,GAAGC,KAAK,IAAI;EAClC,MAAM;IAACC,SAAS;IAAEC,KAAK;IAAE,WAAW,EAAEC,QAAQ;IAAE,YAAY,EAAEC;EAAS,CAAC,GAAGJ,KAAK;EAChF,MAAMK,cAAc,GAAGJ,SAAS,CAACK,IAAI,KAAK,OAAO,GAAGR,KAAK,CAACS,cAAc,GAAGT,KAAK,CAACU,gBAAgB;EAEjG,oBACEb,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAEZ,KAAK,CAACa,SAAU;IAAC,aAAWR,QAAS;IAAC,cAAYC;EAAU,GACzEF,KAAK,gBAAGP,KAAA,CAAAc,aAAA;IAAMC,SAAS,EAAEZ,KAAK,CAACI;EAAM,GAAEA,KAAY,CAAC,GAAG,IAAI,eAC5DP,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAEL;EAAe,gBAC7BV,KAAA,CAAAc,aAAA,CAACZ,SAAS,EAAKI,SAAY,CACxB,CACF,CAAC;AAEV,CAAC;AAEDF,kBAAkB,CAACa,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EAC7Bd,SAAS,EAAEL,SAAS,CAACoB,KAAK,CAAC;IACzB,GAAGnB,SAAS,CAACe,SAAS;IACtBK,KAAK,EAAErB,SAAS,CAACsB,MAAM;IACvBZ,IAAI,EAAEV,SAAS,CAACsB;EAClB,CAAC,CAAC;EACFhB,KAAK,EAAEN,SAAS,CAACsB,MAAM;EACvB,YAAY,EAAEtB,SAAS,CAACsB,MAAM;EAC9B,WAAW,EAAEtB,SAAS,CAACsB;AACzB,CAAC;AACD,eAAenB,kBAAkB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","InputText","style","InputTextWithTitle","props","inputText","title","dataName","ariaLabel","inputTextClass","size","smallInputText","defaultInputText","createElement","className","container","role","propTypes","process","env","NODE_ENV","shape","theme","string"],"sources":["../../../src/atom/input-text-with-title/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport InputText from '../input-text';\nimport style from './style.css';\n\nconst InputTextWithTitle = props => {\n const {inputText, title, 'data-name': dataName, 'aria-label': ariaLabel} = props;\n const inputTextClass = inputText.size === 'small' ? style.smallInputText : style.defaultInputText;\n\n return (\n <div className={style.container} data-name={dataName} role=\"group\" aria-label={ariaLabel}>\n {title ? <span className={style.title}>{title}</span> : null}\n <div className={inputTextClass}>\n <InputText {...inputText} />\n </div>\n </div>\n );\n};\n\nInputTextWithTitle.propTypes = {\n inputText: PropTypes.shape({\n ...InputText.propTypes,\n theme: PropTypes.string,\n size: PropTypes.string\n }),\n title: PropTypes.string,\n 'aria-label': PropTypes.string,\n 'data-name': PropTypes.string\n};\nexport default InputTextWithTitle;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,SAAS,MAAM,eAAe;AACrC,OAAOC,KAAK,MAAM,aAAa;AAE/B,MAAMC,kBAAkB,GAAGC,KAAK,IAAI;EAClC,MAAM;IAACC,SAAS;IAAEC,KAAK;IAAE,WAAW,EAAEC,QAAQ;IAAE,YAAY,EAAEC;EAAS,CAAC,GAAGJ,KAAK;EAChF,MAAMK,cAAc,GAAGJ,SAAS,CAACK,IAAI,KAAK,OAAO,GAAGR,KAAK,CAACS,cAAc,GAAGT,KAAK,CAACU,gBAAgB;EAEjG,oBACEb,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAEZ,KAAK,CAACa,SAAU;IAAC,aAAWR,QAAS;IAACS,IAAI,EAAC,OAAO;IAAC,cAAYR;EAAU,GACtFF,KAAK,gBAAGP,KAAA,CAAAc,aAAA;IAAMC,SAAS,EAAEZ,KAAK,CAACI;EAAM,GAAEA,KAAY,CAAC,GAAG,IAAI,eAC5DP,KAAA,CAAAc,aAAA;IAAKC,SAAS,EAAEL;EAAe,gBAC7BV,KAAA,CAAAc,aAAA,CAACZ,SAAS,EAAKI,SAAY,CACxB,CACF,CAAC;AAEV,CAAC;AAEDF,kBAAkB,CAACc,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EAC7Bf,SAAS,EAAEL,SAAS,CAACqB,KAAK,CAAC;IACzB,GAAGpB,SAAS,CAACgB,SAAS;IACtBK,KAAK,EAAEtB,SAAS,CAACuB,MAAM;IACvBb,IAAI,EAAEV,SAAS,CAACuB;EAClB,CAAC,CAAC;EACFjB,KAAK,EAAEN,SAAS,CAACuB,MAAM;EACvB,YAAY,EAAEvB,SAAS,CAACuB,MAAM;EAC9B,WAAW,EAAEvB,SAAS,CAACuB;AACzB,CAAC;AACD,eAAepB,kBAAkB","ignoreList":[]}
@@ -56,6 +56,7 @@ const ReviewPresentation = props => {
56
56
  } = props;
57
57
  return /*#__PURE__*/React.createElement("div", {
58
58
  className: style.reviewWrapper,
59
+ role: "group",
59
60
  "aria-label": ariaLabel
60
61
  }, /*#__PURE__*/React.createElement("div", {
61
62
  className: style.reviewTitle
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","getOr","map","NovaSolidStatusCheckCircle2","CheckIcon","NovaSolidVoteRewardsVoteHeart","HeartIcon","NovaSolidInterfaceFeedbackInterfaceQuestionMark","QuestionIcon","NovaLineSelectionCursorsCursorArrowTarget","TargetIcon","ToolTip","style","propTypes","ICONS","skills","questions","lifes","allright","ReviewIcon","icon","Icon","createElement","className","labelIcon","ReviewListItemWrapper","iconKey","label","reviewListItemWrapper","tabIndex","reviewListText","text","TooltipContent","tooltipText","closeToolTipInformationTextAriaLabel","moreDetailsAriaLabel","ReviewPresentation","props","ariaLabel","reviewTitle","reviewText","labelsList","reviewWrapper","dangerouslySetInnerHTML","__html","reviewListWrapper","convert","cap","key","reviewList","process","env","NODE_ENV","string","shape"],"sources":["../../../src/atom/review-presentation/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport getOr from 'lodash/fp/getOr';\nimport map from 'lodash/fp/map';\nimport {\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaSolidVoteRewardsVoteHeart as HeartIcon,\n NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon,\n NovaLineSelectionCursorsCursorArrowTarget as TargetIcon\n} from '@coorpacademy/nova-icons';\nimport ToolTip from '../tooltip';\nimport style from './style.css';\nimport propTypes from './prop-types';\n\nconst ICONS = {\n skills: TargetIcon,\n questions: QuestionIcon,\n lifes: HeartIcon,\n allright: CheckIcon\n};\n\nconst ReviewIcon = ({icon}) => {\n const Icon = getOr(null, icon, ICONS);\n\n /* istanbul ignore next */\n if (!Icon) {\n return <div className={style.labelIcon} />;\n }\n return <Icon className={style.labelIcon} />;\n};\n\nconst ReviewListItemWrapper = ({iconKey, label}) => {\n return (\n <div className={style.reviewListItemWrapper} data-tip data-for=\"reviewListItem\" tabIndex={0}>\n <div className={style.reviewListText}>\n <ReviewIcon icon={iconKey} /> {label.text}\n </div>\n <ToolTip\n TooltipContent={label.tooltipText}\n closeToolTipInformationTextAriaLabel={label.closeToolTipInformationTextAriaLabel}\n data-testid={`review-list-item-tooltip-button-${iconKey}`}\n aria-label={label.moreDetailsAriaLabel}\n />\n </div>\n );\n};\n\nconst ReviewPresentation = props => {\n const {'aria-label': ariaLabel, reviewTitle, reviewText, labelsList} = props;\n\n return (\n <div className={style.reviewWrapper} aria-label={ariaLabel}>\n <div\n className={style.reviewTitle}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: reviewTitle}}\n />\n <div\n className={style.reviewText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: reviewText}}\n />\n <ul className={style.reviewListWrapper}>\n {map.convert({cap: false})((label, key) => {\n return (\n <li key={`step-${key}`} className={style.reviewList}>\n <ReviewListItemWrapper\n iconKey={key}\n label={label}\n tooltipText={label.tooltipText}\n aria-label={label.moreDetailsAriaLabel}\n />\n </li>\n );\n }, labelsList)}\n </ul>\n </div>\n );\n};\n\nReviewIcon.propTypes = {\n icon: PropTypes.string\n};\n\nReviewListItemWrapper.propTypes = {\n iconKey: PropTypes.string,\n label: PropTypes.shape({\n tooltipText: ToolTip.propTypes.tooltipText,\n moreDetailsAriaLabel: ToolTip.propTypes['aria-label'],\n closeToolTipInformationTextAriaLabel: ToolTip.propTypes.closeToolTipInformationTextAriaLabel,\n text: PropTypes.string\n })\n};\n\nReviewPresentation.propTypes = propTypes;\n\nexport default ReviewPresentation;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","getOr","map","NovaSolidStatusCheckCircle2","CheckIcon","NovaSolidVoteRewardsVoteHeart","HeartIcon","NovaSolidInterfaceFeedbackInterfaceQuestionMark","QuestionIcon","NovaLineSelectionCursorsCursorArrowTarget","TargetIcon","ToolTip","style","propTypes","ICONS","skills","questions","lifes","allright","ReviewIcon","icon","Icon","createElement","className","labelIcon","ReviewListItemWrapper","iconKey","label","reviewListItemWrapper","tabIndex","reviewListText","text","TooltipContent","tooltipText","closeToolTipInformationTextAriaLabel","moreDetailsAriaLabel","ReviewPresentation","props","ariaLabel","reviewTitle","reviewText","labelsList","reviewWrapper","role","dangerouslySetInnerHTML","__html","reviewListWrapper","convert","cap","key","reviewList","process","env","NODE_ENV","string","shape"],"sources":["../../../src/atom/review-presentation/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport getOr from 'lodash/fp/getOr';\nimport map from 'lodash/fp/map';\nimport {\n NovaSolidStatusCheckCircle2 as CheckIcon,\n NovaSolidVoteRewardsVoteHeart as HeartIcon,\n NovaSolidInterfaceFeedbackInterfaceQuestionMark as QuestionIcon,\n NovaLineSelectionCursorsCursorArrowTarget as TargetIcon\n} from '@coorpacademy/nova-icons';\nimport ToolTip from '../tooltip';\nimport style from './style.css';\nimport propTypes from './prop-types';\n\nconst ICONS = {\n skills: TargetIcon,\n questions: QuestionIcon,\n lifes: HeartIcon,\n allright: CheckIcon\n};\n\nconst ReviewIcon = ({icon}) => {\n const Icon = getOr(null, icon, ICONS);\n\n /* istanbul ignore next */\n if (!Icon) {\n return <div className={style.labelIcon} />;\n }\n return <Icon className={style.labelIcon} />;\n};\n\nconst ReviewListItemWrapper = ({iconKey, label}) => {\n return (\n <div className={style.reviewListItemWrapper} data-tip data-for=\"reviewListItem\" tabIndex={0}>\n <div className={style.reviewListText}>\n <ReviewIcon icon={iconKey} /> {label.text}\n </div>\n <ToolTip\n TooltipContent={label.tooltipText}\n closeToolTipInformationTextAriaLabel={label.closeToolTipInformationTextAriaLabel}\n data-testid={`review-list-item-tooltip-button-${iconKey}`}\n aria-label={label.moreDetailsAriaLabel}\n />\n </div>\n );\n};\n\nconst ReviewPresentation = props => {\n const {'aria-label': ariaLabel, reviewTitle, reviewText, labelsList} = props;\n\n return (\n <div className={style.reviewWrapper} role=\"group\" aria-label={ariaLabel}>\n <div\n className={style.reviewTitle}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: reviewTitle}}\n />\n <div\n className={style.reviewText}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: reviewText}}\n />\n <ul className={style.reviewListWrapper}>\n {map.convert({cap: false})((label, key) => {\n return (\n <li key={`step-${key}`} className={style.reviewList}>\n <ReviewListItemWrapper\n iconKey={key}\n label={label}\n tooltipText={label.tooltipText}\n aria-label={label.moreDetailsAriaLabel}\n />\n </li>\n );\n }, labelsList)}\n </ul>\n </div>\n );\n};\n\nReviewIcon.propTypes = {\n icon: PropTypes.string\n};\n\nReviewListItemWrapper.propTypes = {\n iconKey: PropTypes.string,\n label: PropTypes.shape({\n tooltipText: ToolTip.propTypes.tooltipText,\n moreDetailsAriaLabel: ToolTip.propTypes['aria-label'],\n closeToolTipInformationTextAriaLabel: ToolTip.propTypes.closeToolTipInformationTextAriaLabel,\n text: PropTypes.string\n })\n};\n\nReviewPresentation.propTypes = propTypes;\n\nexport default ReviewPresentation;\n"],"mappings":"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","ignoreList":[]}
@@ -85,6 +85,7 @@ const Title = props => {
85
85
  }, /*#__PURE__*/React.createElement("div", {
86
86
  className: titleStyle,
87
87
  "data-name": dataName,
88
+ role: "group",
88
89
  "aria-label": ariaLabel
89
90
  }, title, required ? /*#__PURE__*/React.createElement("span", {
90
91
  className: style.required
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","PropTypes","Icon","Tag","ButtonLink","style","getTitleStyle","type","size","titlePage","titleFormGroup","titleFormGroupLightWeight","xlStrongTitle","mediumTitleFormGroup","mediumAndLightColorTitleFormGroup","smallTitleFormGroup","smallAndLightTitleFormGroup","getSubtitleStyle","subtitlePage","subtitleFormGroup","subtitleFormGroupWithoutMargin","mediumSubtitleFormGroup","smallSubtitleFormGroup","smallSubtitleFormGroupWithoutMargin","extraSmallSubtitleFormGroup","Title","props","title","subtitle","dataName","titleSize","subtitleSize","icon","tag","button","required","ariaLabel","titleStyle","subtitleStyle","subtitleSection","createElement","className","dangerouslySetInnerHTML","__html","container","_extends","titleContainer","titleContent","_isEmpty","propTypes","process","env","NODE_ENV","string","oneOf","shape","bool"],"sources":["../../../src/atom/title/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty} from 'lodash/fp';\nimport Icon from '../icon';\nimport Tag from '../tag';\nimport ButtonLink from '../button-link';\nimport style from './style.css';\n\nconst getTitleStyle = (type, size) => {\n switch (type) {\n case 'page':\n return style.titlePage;\n case 'form-group':\n switch (size) {\n case 'standard':\n return style.titleFormGroup;\n case 'standard-light-weight':\n return style.titleFormGroupLightWeight;\n case 'xl-strong':\n return style.xlStrongTitle;\n case 'medium':\n return style.mediumTitleFormGroup;\n case 'medium-light-color':\n return style.mediumAndLightColorTitleFormGroup;\n case 'small':\n return style.smallTitleFormGroup;\n case 'small-and-light':\n return style.smallAndLightTitleFormGroup;\n }\n }\n};\n\nconst getSubtitleStyle = (type, size) => {\n switch (type) {\n case 'page':\n return style.subtitlePage;\n case 'form-group':\n switch (size) {\n case 'standard':\n return style.subtitleFormGroup;\n case 'standard-without-margin':\n return style.subtitleFormGroupWithoutMargin;\n case 'medium':\n return style.mediumSubtitleFormGroup;\n case 'small':\n return style.smallSubtitleFormGroup;\n case 'small-without-margin':\n return style.smallSubtitleFormGroupWithoutMargin;\n case 'extra-small':\n return style.extraSmallSubtitleFormGroup;\n }\n }\n};\n\nconst Title = props => {\n const {\n title,\n subtitle,\n type,\n 'data-name': dataName,\n titleSize = 'standard',\n subtitleSize = 'standard',\n icon,\n tag,\n button,\n required,\n ariaLabel\n } = props;\n const titleStyle = getTitleStyle(type, titleSize);\n const subtitleStyle = getSubtitleStyle(type, subtitleSize);\n\n const subtitleSection = subtitle ? (\n <div\n className={subtitleStyle}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: subtitle}}\n />\n ) : null;\n\n return (\n <div className={style.container}>\n {icon ? <Icon {...icon} className={style.icon} /> : null}\n <div className={style.titleContainer}>\n <div className={style.titleContent}>\n <div className={titleStyle} data-name={dataName} aria-label={ariaLabel}>\n {title}\n {required ? <span className={style.required}>*</span> : null}\n {tag ? <Tag {...tag} /> : null}\n </div>\n {subtitleSection}\n </div>\n {!isEmpty(button) ? <ButtonLink {...button} /> : null}\n </div>\n </div>\n );\n};\n\nTitle.propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n ariaLabel: PropTypes.string,\n type: PropTypes.oneOf(['page', 'form-group']),\n 'data-name': PropTypes.string,\n titleSize: PropTypes.oneOf([\n 'xl-strong',\n 'standard',\n 'standard-light-weight',\n 'medium',\n 'medium-light-color',\n 'small',\n 'small-and-light'\n ]),\n subtitleSize: PropTypes.oneOf([\n 'standard',\n 'standard-without-margin',\n 'medium',\n 'small',\n 'small-without-margin',\n 'extra-small'\n ]),\n icon: PropTypes.shape(Icon.propTypes),\n tag: PropTypes.shape(Tag.propTypes),\n button: PropTypes.shape(ButtonLink.propTypes),\n required: PropTypes.bool\n};\nexport default Title;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","PropTypes","Icon","Tag","ButtonLink","style","getTitleStyle","type","size","titlePage","titleFormGroup","titleFormGroupLightWeight","xlStrongTitle","mediumTitleFormGroup","mediumAndLightColorTitleFormGroup","smallTitleFormGroup","smallAndLightTitleFormGroup","getSubtitleStyle","subtitlePage","subtitleFormGroup","subtitleFormGroupWithoutMargin","mediumSubtitleFormGroup","smallSubtitleFormGroup","smallSubtitleFormGroupWithoutMargin","extraSmallSubtitleFormGroup","Title","props","title","subtitle","dataName","titleSize","subtitleSize","icon","tag","button","required","ariaLabel","titleStyle","subtitleStyle","subtitleSection","createElement","className","dangerouslySetInnerHTML","__html","container","_extends","titleContainer","titleContent","role","_isEmpty","propTypes","process","env","NODE_ENV","string","oneOf","shape","bool"],"sources":["../../../src/atom/title/index.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty} from 'lodash/fp';\nimport Icon from '../icon';\nimport Tag from '../tag';\nimport ButtonLink from '../button-link';\nimport style from './style.css';\n\nconst getTitleStyle = (type, size) => {\n switch (type) {\n case 'page':\n return style.titlePage;\n case 'form-group':\n switch (size) {\n case 'standard':\n return style.titleFormGroup;\n case 'standard-light-weight':\n return style.titleFormGroupLightWeight;\n case 'xl-strong':\n return style.xlStrongTitle;\n case 'medium':\n return style.mediumTitleFormGroup;\n case 'medium-light-color':\n return style.mediumAndLightColorTitleFormGroup;\n case 'small':\n return style.smallTitleFormGroup;\n case 'small-and-light':\n return style.smallAndLightTitleFormGroup;\n }\n }\n};\n\nconst getSubtitleStyle = (type, size) => {\n switch (type) {\n case 'page':\n return style.subtitlePage;\n case 'form-group':\n switch (size) {\n case 'standard':\n return style.subtitleFormGroup;\n case 'standard-without-margin':\n return style.subtitleFormGroupWithoutMargin;\n case 'medium':\n return style.mediumSubtitleFormGroup;\n case 'small':\n return style.smallSubtitleFormGroup;\n case 'small-without-margin':\n return style.smallSubtitleFormGroupWithoutMargin;\n case 'extra-small':\n return style.extraSmallSubtitleFormGroup;\n }\n }\n};\n\nconst Title = props => {\n const {\n title,\n subtitle,\n type,\n 'data-name': dataName,\n titleSize = 'standard',\n subtitleSize = 'standard',\n icon,\n tag,\n button,\n required,\n ariaLabel\n } = props;\n const titleStyle = getTitleStyle(type, titleSize);\n const subtitleStyle = getSubtitleStyle(type, subtitleSize);\n\n const subtitleSection = subtitle ? (\n <div\n className={subtitleStyle}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{__html: subtitle}}\n />\n ) : null;\n\n return (\n <div className={style.container}>\n {icon ? <Icon {...icon} className={style.icon} /> : null}\n <div className={style.titleContainer}>\n <div className={style.titleContent}>\n <div className={titleStyle} data-name={dataName} role=\"group\" aria-label={ariaLabel}>\n {title}\n {required ? <span className={style.required}>*</span> : null}\n {tag ? <Tag {...tag} /> : null}\n </div>\n {subtitleSection}\n </div>\n {!isEmpty(button) ? <ButtonLink {...button} /> : null}\n </div>\n </div>\n );\n};\n\nTitle.propTypes = {\n title: PropTypes.string,\n subtitle: PropTypes.string,\n ariaLabel: PropTypes.string,\n type: PropTypes.oneOf(['page', 'form-group']),\n 'data-name': PropTypes.string,\n titleSize: PropTypes.oneOf([\n 'xl-strong',\n 'standard',\n 'standard-light-weight',\n 'medium',\n 'medium-light-color',\n 'small',\n 'small-and-light'\n ]),\n subtitleSize: PropTypes.oneOf([\n 'standard',\n 'standard-without-margin',\n 'medium',\n 'small',\n 'small-without-margin',\n 'extra-small'\n ]),\n icon: PropTypes.shape(Icon.propTypes),\n tag: PropTypes.shape(Tag.propTypes),\n button: PropTypes.shape(ButtonLink.propTypes),\n required: PropTypes.bool\n};\nexport default Title;\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,YAAY;AAElC,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,GAAG,MAAM,QAAQ;AACxB,OAAOC,UAAU,MAAM,gBAAgB;AACvC,OAAOC,KAAK,MAAM,aAAa;AAE/B,MAAMC,aAAa,GAAGA,CAACC,IAAI,EAAEC,IAAI,KAAK;EACpC,QAAQD,IAAI;IACV,KAAK,MAAM;MACT,OAAOF,KAAK,CAACI,SAAS;IACxB,KAAK,YAAY;MACf,QAAQD,IAAI;QACV,KAAK,UAAU;UACb,OAAOH,KAAK,CAACK,cAAc;QAC7B,KAAK,uBAAuB;UAC1B,OAAOL,KAAK,CAACM,yBAAyB;QACxC,KAAK,WAAW;UACd,OAAON,KAAK,CAACO,aAAa;QAC5B,KAAK,QAAQ;UACX,OAAOP,KAAK,CAACQ,oBAAoB;QACnC,KAAK,oBAAoB;UACvB,OAAOR,KAAK,CAACS,iCAAiC;QAChD,KAAK,OAAO;UACV,OAAOT,KAAK,CAACU,mBAAmB;QAClC,KAAK,iBAAiB;UACpB,OAAOV,KAAK,CAACW,2BAA2B;MAC5C;EACJ;AACF,CAAC;AAED,MAAMC,gBAAgB,GAAGA,CAACV,IAAI,EAAEC,IAAI,KAAK;EACvC,QAAQD,IAAI;IACV,KAAK,MAAM;MACT,OAAOF,KAAK,CAACa,YAAY;IAC3B,KAAK,YAAY;MACf,QAAQV,IAAI;QACV,KAAK,UAAU;UACb,OAAOH,KAAK,CAACc,iBAAiB;QAChC,KAAK,yBAAyB;UAC5B,OAAOd,KAAK,CAACe,8BAA8B;QAC7C,KAAK,QAAQ;UACX,OAAOf,KAAK,CAACgB,uBAAuB;QACtC,KAAK,OAAO;UACV,OAAOhB,KAAK,CAACiB,sBAAsB;QACrC,KAAK,sBAAsB;UACzB,OAAOjB,KAAK,CAACkB,mCAAmC;QAClD,KAAK,aAAa;UAChB,OAAOlB,KAAK,CAACmB,2BAA2B;MAC5C;EACJ;AACF,CAAC;AAED,MAAMC,KAAK,GAAGC,KAAK,IAAI;EACrB,MAAM;IACJC,KAAK;IACLC,QAAQ;IACRrB,IAAI;IACJ,WAAW,EAAEsB,QAAQ;IACrBC,SAAS,GAAG,UAAU;IACtBC,YAAY,GAAG,UAAU;IACzBC,IAAI;IACJC,GAAG;IACHC,MAAM;IACNC,QAAQ;IACRC;EACF,CAAC,GAAGV,KAAK;EACT,MAAMW,UAAU,GAAG/B,aAAa,CAACC,IAAI,EAAEuB,SAAS,CAAC;EACjD,MAAMQ,aAAa,GAAGrB,gBAAgB,CAACV,IAAI,EAAEwB,YAAY,CAAC;EAE1D,MAAMQ,eAAe,GAAGX,QAAQ,gBAC9B5B,KAAA,CAAAwC,aAAA;IACEC,SAAS,EAAEH;IACX;IAAA;IACAI,uBAAuB,EAAE;MAACC,MAAM,EAAEf;IAAQ;EAAE,CAC7C,CAAC,GACA,IAAI;EAER,oBACE5B,KAAA,CAAAwC,aAAA;IAAKC,SAAS,EAAEpC,KAAK,CAACuC;EAAU,GAC7BZ,IAAI,gBAAGhC,KAAA,CAAAwC,aAAA,CAACtC,IAAI,EAAA2C,QAAA,KAAKb,IAAI;IAAES,SAAS,EAAEpC,KAAK,CAAC2B;EAAK,EAAE,CAAC,GAAG,IAAI,eACxDhC,KAAA,CAAAwC,aAAA;IAAKC,SAAS,EAAEpC,KAAK,CAACyC;EAAe,gBACnC9C,KAAA,CAAAwC,aAAA;IAAKC,SAAS,EAAEpC,KAAK,CAAC0C;EAAa,gBACjC/C,KAAA,CAAAwC,aAAA;IAAKC,SAAS,EAAEJ,UAAW;IAAC,aAAWR,QAAS;IAACmB,IAAI,EAAC,OAAO;IAAC,cAAYZ;EAAU,GACjFT,KAAK,EACLQ,QAAQ,gBAAGnC,KAAA,CAAAwC,aAAA;IAAMC,SAAS,EAAEpC,KAAK,CAAC8B;EAAS,GAAC,GAAO,CAAC,GAAG,IAAI,EAC3DF,GAAG,gBAAGjC,KAAA,CAAAwC,aAAA,CAACrC,GAAG,EAAK8B,GAAM,CAAC,GAAG,IACvB,CAAC,EACLM,eACE,CAAC,EACL,CAACU,QAAA,CAAQf,MAAM,CAAC,gBAAGlC,KAAA,CAAAwC,aAAA,CAACpC,UAAU,EAAK8B,MAAS,CAAC,GAAG,IAC9C,CACF,CAAC;AAEV,CAAC;AAEDT,KAAK,CAACyB,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,oBAAG;EAChB1B,KAAK,EAAE1B,SAAS,CAACqD,MAAM;EACvB1B,QAAQ,EAAE3B,SAAS,CAACqD,MAAM;EAC1BlB,SAAS,EAAEnC,SAAS,CAACqD,MAAM;EAC3B/C,IAAI,EAAEN,SAAS,CAACsD,KAAK,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;EAC7C,WAAW,EAAEtD,SAAS,CAACqD,MAAM;EAC7BxB,SAAS,EAAE7B,SAAS,CAACsD,KAAK,CAAC,CACzB,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,QAAQ,EACR,oBAAoB,EACpB,OAAO,EACP,iBAAiB,CAClB,CAAC;EACFxB,YAAY,EAAE9B,SAAS,CAACsD,KAAK,CAAC,CAC5B,UAAU,EACV,yBAAyB,EACzB,QAAQ,EACR,OAAO,EACP,sBAAsB,EACtB,aAAa,CACd,CAAC;EACFvB,IAAI,EAAE/B,SAAS,CAACuD,KAAK,CAACtD,IAAI,CAACgD,SAAS,CAAC;EACrCjB,GAAG,EAAEhC,SAAS,CAACuD,KAAK,CAACrD,GAAG,CAAC+C,SAAS,CAAC;EACnChB,MAAM,EAAEjC,SAAS,CAACuD,KAAK,CAACpD,UAAU,CAAC8C,SAAS,CAAC;EAC7Cf,QAAQ,EAAElC,SAAS,CAACwD;AACtB,CAAC;AACD,eAAehC,KAAK","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/tooltip/index.js"],"names":[],"mappings":"AA6EO,iGAUN;;AAED;;;;;;;;;;;;;;gBAgHC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/tooltip/index.js"],"names":[],"mappings":"AA8EO,iGAUN;;AAED;;;;;;;;;;;;;;gBAgHC"}
@@ -44,6 +44,7 @@ const ToolTipWrapper = ({
44
44
  return /*#__PURE__*/React.createElement("div", {
45
45
  className: coorpToolTipClasses,
46
46
  "data-testid": "tooltip",
47
+ role: "group",
47
48
  "aria-label": closeToolTipInformationTextAriaLabel,
48
49
  onMouseOver: handleContentMouseOver
49
50
  }, content);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","isValidElement","useState","useCallback","useMemo","classnames","PropTypes","ReactTooltip","isString","has","isNil","keys","NovaCompositionCoorpacademyInformationIcon","InformationIcon","style","FontSizes","tooltipContentFontSize12","tooltipContentFontSize14","IconSizes","small","big","ToolTipWrapper","toolTipIsVisible","anchorId","closeToolTipInformationTextAriaLabel","content","handleContentMouseOver","iconSize","tooltipClassName","usesAnchorElement","placement","coorpToolTipClasses","toolTip","bigIconToolTip","smallIconToolTip","createElement","id","className","toolTipReact","place","effect","onMouseOver","propTypes","process","env","NODE_ENV","bool","string","isRequired","node","func","oneOf","toggleStateOnKeyPress","state","setState","ref","event","key","current","focus","stopPropagation","preventDefault","ToolTip","TooltipContent","ariaLabel","dataTestId","_toolTipIsVisible","iconContainerClassName","delayHide","fontSize","AnchorElement","isComponent","setToolTipIsVisible","mouseLeaveTimer","setMouseLeaveTimer","undefined","handleKeyPress","clearTimeout","handleMouseOver","handleMouseLeave","setTimeout","tooltipContent","anchorElement","onKeyDown","type","tooltipIconContainer","tabIndex","informationIcon","width","height","onMouseLeave","tooltipContainer","oneOfType","number"],"sources":["../../../src/atom/tooltip/index.js"],"sourcesContent":["import React, {isValidElement, useState, useCallback, useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport isString from 'lodash/fp/isString';\nimport has from 'lodash/fp/has';\nimport isNil from 'lodash/fp/isNil';\nimport keys from 'lodash/fp/keys';\nimport {NovaCompositionCoorpacademyInformationIcon as InformationIcon} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst FontSizes = {\n 12: style.tooltipContentFontSize12,\n 14: style.tooltipContentFontSize14\n};\n\nconst IconSizes = {\n small: 12,\n big: 20\n};\n\nconst ToolTipWrapper = ({\n toolTipIsVisible,\n anchorId,\n closeToolTipInformationTextAriaLabel,\n content,\n handleContentMouseOver,\n iconSize,\n tooltipClassName,\n usesAnchorElement,\n placement\n}) => {\n const coorpToolTipClasses = classnames(\n style.toolTip,\n tooltipClassName,\n // eslint-disable-next-line no-nested-ternary\n usesAnchorElement ? null : iconSize === 'big' ? style.bigIconToolTip : style.smallIconToolTip\n );\n if (!toolTipIsVisible) return null;\n if (anchorId) {\n return (\n <ReactTooltip\n id={anchorId}\n className={style.toolTipReact}\n data-event-off=\"click\"\n place={placement}\n effect=\"solid\"\n aria-label={closeToolTipInformationTextAriaLabel}\n >\n {content}\n </ReactTooltip>\n );\n } else {\n return (\n <div\n className={coorpToolTipClasses}\n data-testid=\"tooltip\"\n aria-label={closeToolTipInformationTextAriaLabel}\n onMouseOver={handleContentMouseOver}\n >\n {content}\n </div>\n );\n }\n};\n\nToolTipWrapper.propTypes = {\n toolTipIsVisible: PropTypes.bool,\n anchorId: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n content: PropTypes.node,\n handleContentMouseOver: PropTypes.func,\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n tooltipClassName: PropTypes.string,\n usesAnchorElement: PropTypes.bool\n};\n\nexport const toggleStateOnKeyPress = (state, setState, ref) => event => {\n if (!has('key', event)) return;\n else if (event.key === 'Enter') {\n if (ref) ref.current.focus();\n event.stopPropagation();\n event.preventDefault();\n setState(!state);\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n setState(false);\n }\n};\n\nconst ToolTip = ({\n anchorId,\n TooltipContent,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n closeToolTipInformationTextAriaLabel,\n toolTipIsVisible: _toolTipIsVisible,\n iconContainerClassName,\n delayHide = 250,\n fontSize = 14,\n iconSize = 'small',\n AnchorElement,\n tooltipClassName,\n placement = 'left'\n}) => {\n const isComponent = useMemo(\n () => !isString(TooltipContent) && isValidElement(TooltipContent()),\n [TooltipContent]\n );\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));\n }, [delayHide]);\n\n const content = useMemo(() => {\n if (isComponent) {\n return <TooltipContent />;\n }\n // For ReactTooltip (when anchorId is provided), don't wrap in <p> to avoid double padding\n if (anchorId) {\n return TooltipContent;\n }\n // For regular tooltip, keep the <p> wrapper with padding\n return (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent, anchorId]);\n\n const anchorElement = useMemo(\n () =>\n AnchorElement ? (\n <AnchorElement onKeyDown={handleKeyPress} />\n ) : (\n <button\n type=\"button\"\n className={classnames([style.tooltipIconContainer, iconContainerClassName])}\n data-testid={dataTestId}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n >\n <InformationIcon\n className={style.informationIcon}\n width={IconSizes[iconSize]}\n height={IconSizes[iconSize]}\n aria-label={ariaLabel}\n />\n </button>\n ),\n [AnchorElement, ariaLabel, dataTestId, handleKeyPress, iconContainerClassName, iconSize]\n );\n\n return anchorId ? (\n <ToolTipWrapper\n toolTipIsVisible={_toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n fontSize={fontSize}\n placement={placement}\n />\n ) : (\n <div\n className={style.tooltipContainer}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {anchorElement}\n <ToolTipWrapper\n toolTipIsVisible={toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n handleContentMouseOver={handleContentMouseOver}\n fontSize={fontSize}\n iconSize={iconSize}\n tooltipClassName={tooltipClassName}\n usesAnchorElement={!isNil(AnchorElement)}\n />\n </div>\n );\n};\n\nToolTip.propTypes = {\n TooltipContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.string]),\n 'data-testid': PropTypes.string,\n 'aria-label': PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n // ---------- Regular Tooltip exclusive --------------\n // If using an Anchor element w/ the regular Tooltip\n AnchorElement: PropTypes.func,\n tooltipClassName: PropTypes.string,\n //\n iconContainerClassName: PropTypes.string,\n delayHide: PropTypes.number,\n fontSize: PropTypes.oneOf([12, 14]),\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n // ---------- React Tooltip exclusive --------------\n // externalHandling: if passed down, React Tooltip is used instead, due to limitations on\n // parents overflow hidden controls\n // data-for={anchorId} && data-tooltip-place=\"left\" are needed on the anchored component\n anchorId: PropTypes.string,\n toolTipIsVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ToolTip;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","isValidElement","useState","useCallback","useMemo","classnames","PropTypes","ReactTooltip","isString","has","isNil","keys","NovaCompositionCoorpacademyInformationIcon","InformationIcon","style","FontSizes","tooltipContentFontSize12","tooltipContentFontSize14","IconSizes","small","big","ToolTipWrapper","toolTipIsVisible","anchorId","closeToolTipInformationTextAriaLabel","content","handleContentMouseOver","iconSize","tooltipClassName","usesAnchorElement","placement","coorpToolTipClasses","toolTip","bigIconToolTip","smallIconToolTip","createElement","id","className","toolTipReact","place","effect","role","onMouseOver","propTypes","process","env","NODE_ENV","bool","string","isRequired","node","func","oneOf","toggleStateOnKeyPress","state","setState","ref","event","key","current","focus","stopPropagation","preventDefault","ToolTip","TooltipContent","ariaLabel","dataTestId","_toolTipIsVisible","iconContainerClassName","delayHide","fontSize","AnchorElement","isComponent","setToolTipIsVisible","mouseLeaveTimer","setMouseLeaveTimer","undefined","handleKeyPress","clearTimeout","handleMouseOver","handleMouseLeave","setTimeout","tooltipContent","anchorElement","onKeyDown","type","tooltipIconContainer","tabIndex","informationIcon","width","height","onMouseLeave","tooltipContainer","oneOfType","number"],"sources":["../../../src/atom/tooltip/index.js"],"sourcesContent":["import React, {isValidElement, useState, useCallback, useMemo} from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ReactTooltip from 'react-tooltip';\nimport isString from 'lodash/fp/isString';\nimport has from 'lodash/fp/has';\nimport isNil from 'lodash/fp/isNil';\nimport keys from 'lodash/fp/keys';\nimport {NovaCompositionCoorpacademyInformationIcon as InformationIcon} from '@coorpacademy/nova-icons';\nimport style from './style.css';\n\nconst FontSizes = {\n 12: style.tooltipContentFontSize12,\n 14: style.tooltipContentFontSize14\n};\n\nconst IconSizes = {\n small: 12,\n big: 20\n};\n\nconst ToolTipWrapper = ({\n toolTipIsVisible,\n anchorId,\n closeToolTipInformationTextAriaLabel,\n content,\n handleContentMouseOver,\n iconSize,\n tooltipClassName,\n usesAnchorElement,\n placement\n}) => {\n const coorpToolTipClasses = classnames(\n style.toolTip,\n tooltipClassName,\n // eslint-disable-next-line no-nested-ternary\n usesAnchorElement ? null : iconSize === 'big' ? style.bigIconToolTip : style.smallIconToolTip\n );\n if (!toolTipIsVisible) return null;\n if (anchorId) {\n return (\n <ReactTooltip\n id={anchorId}\n className={style.toolTipReact}\n data-event-off=\"click\"\n place={placement}\n effect=\"solid\"\n aria-label={closeToolTipInformationTextAriaLabel}\n >\n {content}\n </ReactTooltip>\n );\n } else {\n return (\n <div\n className={coorpToolTipClasses}\n data-testid=\"tooltip\"\n role=\"group\"\n aria-label={closeToolTipInformationTextAriaLabel}\n onMouseOver={handleContentMouseOver}\n >\n {content}\n </div>\n );\n }\n};\n\nToolTipWrapper.propTypes = {\n toolTipIsVisible: PropTypes.bool,\n anchorId: PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n content: PropTypes.node,\n handleContentMouseOver: PropTypes.func,\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n tooltipClassName: PropTypes.string,\n usesAnchorElement: PropTypes.bool\n};\n\nexport const toggleStateOnKeyPress = (state, setState, ref) => event => {\n if (!has('key', event)) return;\n else if (event.key === 'Enter') {\n if (ref) ref.current.focus();\n event.stopPropagation();\n event.preventDefault();\n setState(!state);\n } else if (event.key === 'Tab' || event.key === 'Escape') {\n setState(false);\n }\n};\n\nconst ToolTip = ({\n anchorId,\n TooltipContent,\n 'aria-label': ariaLabel,\n 'data-testid': dataTestId,\n closeToolTipInformationTextAriaLabel,\n toolTipIsVisible: _toolTipIsVisible,\n iconContainerClassName,\n delayHide = 250,\n fontSize = 14,\n iconSize = 'small',\n AnchorElement,\n tooltipClassName,\n placement = 'left'\n}) => {\n const isComponent = useMemo(\n () => !isString(TooltipContent) && isValidElement(TooltipContent()),\n [TooltipContent]\n );\n\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState(undefined);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible)(event);\n },\n [toolTipIsVisible]\n );\n\n const handleContentMouseOver = useCallback(() => {\n mouseLeaveTimer && /* istanbul ignore next */ clearTimeout(mouseLeaveTimer);\n }, [mouseLeaveTimer]);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(setTimeout(() => setToolTipIsVisible(false), delayHide));\n }, [delayHide]);\n\n const content = useMemo(() => {\n if (isComponent) {\n return <TooltipContent />;\n }\n // For ReactTooltip (when anchorId is provided), don't wrap in <p> to avoid double padding\n if (anchorId) {\n return TooltipContent;\n }\n // For regular tooltip, keep the <p> wrapper with padding\n return (\n <p className={classnames([style.tooltipContent, FontSizes[fontSize]])}>{TooltipContent}</p>\n );\n }, [TooltipContent, fontSize, isComponent, anchorId]);\n\n const anchorElement = useMemo(\n () =>\n AnchorElement ? (\n <AnchorElement onKeyDown={handleKeyPress} />\n ) : (\n <button\n type=\"button\"\n className={classnames([style.tooltipIconContainer, iconContainerClassName])}\n data-testid={dataTestId}\n onKeyDown={handleKeyPress}\n tabIndex={0}\n >\n <InformationIcon\n className={style.informationIcon}\n width={IconSizes[iconSize]}\n height={IconSizes[iconSize]}\n aria-label={ariaLabel}\n />\n </button>\n ),\n [AnchorElement, ariaLabel, dataTestId, handleKeyPress, iconContainerClassName, iconSize]\n );\n\n return anchorId ? (\n <ToolTipWrapper\n toolTipIsVisible={_toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n fontSize={fontSize}\n placement={placement}\n />\n ) : (\n <div\n className={style.tooltipContainer}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n >\n {anchorElement}\n <ToolTipWrapper\n toolTipIsVisible={toolTipIsVisible}\n anchorId={anchorId}\n closeToolTipInformationTextAriaLabel={closeToolTipInformationTextAriaLabel}\n content={content}\n handleContentMouseOver={handleContentMouseOver}\n fontSize={fontSize}\n iconSize={iconSize}\n tooltipClassName={tooltipClassName}\n usesAnchorElement={!isNil(AnchorElement)}\n />\n </div>\n );\n};\n\nToolTip.propTypes = {\n TooltipContent: PropTypes.oneOfType([PropTypes.func, PropTypes.node, PropTypes.string]),\n 'data-testid': PropTypes.string,\n 'aria-label': PropTypes.string,\n closeToolTipInformationTextAriaLabel: PropTypes.string.isRequired,\n // ---------- Regular Tooltip exclusive --------------\n // If using an Anchor element w/ the regular Tooltip\n AnchorElement: PropTypes.func,\n tooltipClassName: PropTypes.string,\n //\n iconContainerClassName: PropTypes.string,\n delayHide: PropTypes.number,\n fontSize: PropTypes.oneOf([12, 14]),\n iconSize: PropTypes.oneOf(keys(IconSizes)),\n // ---------- React Tooltip exclusive --------------\n // externalHandling: if passed down, React Tooltip is used instead, due to limitations on\n // parents overflow hidden controls\n // data-for={anchorId} && data-tooltip-place=\"left\" are needed on the anchored component\n anchorId: PropTypes.string,\n toolTipIsVisible: PropTypes.bool,\n placement: PropTypes.oneOf(['left', 'right', 'top', 'bottom'])\n};\n\nexport default ToolTip;\n"],"mappings":"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","ignoreList":[]}
@@ -177,6 +177,7 @@ const BaseModal = (props, context) => {
177
177
  className: style.headerContent
178
178
  }, /*#__PURE__*/React.createElement("div", {
179
179
  className: style.headerTitle,
180
+ role: "group",
180
181
  "aria-label": titleAriaLabel
181
182
  }, title), description ? /*#__PURE__*/React.createElement("div", {
182
183
  className: style.headerDescription
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","PropTypes","convert","classnames","Provider","Icon","ButtonLink","COLORS","style","BaseModal","props","context","title","titleAriaLabel","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","isScrollbarVisible","setIsScrollbarVisible","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","debouncedCheckScrollbar","_debounce","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","_isEmpty","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get","createElement","className","footerCTAWrapper","button","type","onClick","_extends","backgroundColor","paddingLeft","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","e","stopPropagation","handleModalOnClick","modalWrapper","modal","header","headerCentered","iconColor","faSize","wrapperSize","headerContent","headerTitle","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","node","bool","oneOfType","func","boolean","objectOf","number"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n titleAriaLabel,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer} data-name=\"modal-footer\">\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-cancel`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-confirm`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n function handleModalOnClick(e) {\n e?.stopPropagation();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\" onClick={handleOnClose}>\n <div className={style.modal} style={customStyle} onClick={handleModalOnClick}>\n <header className={classnames(style.header, !description && style.headerCentered)}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle} aria-label={titleAriaLabel}>\n {title}\n </div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n onScroll={onScroll}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n titleAriaLabel: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useRef","useState","PropTypes","convert","classnames","Provider","Icon","ButtonLink","COLORS","style","BaseModal","props","context","title","titleAriaLabel","description","headerIcon","children","isOpen","footer","onClose","onScroll","detectScrollbar","customStyle","skin","bodyRef","isScrollbarVisible","setIsScrollbarVisible","checkScrollbar","bodyElement","current","scrollHeight","clientHeight","debouncedCheckScrollbar","_debounce","mutationObserver","MutationObserver","observe","childList","subtree","resizeObserver","ResizeObserver","disconnect","cancel","handleEscape","event","key","document","addEventListener","removeEventListener","Footer","_isEmpty","cancelButton","confirmButton","text","isError","label","cancelLabel","onCancel","disabled","cancelDisabled","confirmLabel","onConfirm","confirmDisabled","iconName","color","buttonConfirmColor","_get","createElement","className","footerCTAWrapper","button","type","onClick","_extends","backgroundColor","paddingLeft","hoverBackgroundColor","hoverColor","white","icon","position","faIcon","name","size","padding","footerDescription","footerDescriptionError","handleOnClose","e","stopPropagation","handleModalOnClick","modalWrapper","modal","header","headerCentered","iconColor","faSize","wrapperSize","headerContent","headerTitle","role","headerDescription","headerCloseIcon","ref","body","bodyWithoutScrollbar","contextTypes","childContextTypes","propTypes","process","env","NODE_ENV","string","shape","node","bool","oneOfType","func","boolean","objectOf","number"],"sources":["../../../src/molecule/base-modal/index.js"],"sourcesContent":["import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {isEmpty, get, debounce} from 'lodash/fp';\nimport {convert} from 'css-color-function';\nimport classnames from 'classnames';\nimport Provider from '../../atom/provider';\nimport Icon from '../../atom/icon';\nimport ButtonLink from '../../atom/button-link';\nimport {COLORS} from '../../variables/colors';\nimport style from './style.css';\n\nconst BaseModal = (props, context) => {\n const {\n title,\n titleAriaLabel,\n description,\n headerIcon,\n children,\n isOpen,\n footer,\n onClose,\n onScroll,\n detectScrollbar = false,\n customStyle\n } = props;\n const {skin} = context;\n const bodyRef = useRef(null);\n const [isScrollbarVisible, setIsScrollbarVisible] = useState(!detectScrollbar);\n\n const checkScrollbar = () => {\n const bodyElement = bodyRef.current;\n if (bodyElement) {\n setIsScrollbarVisible(bodyElement.scrollHeight > bodyElement.clientHeight);\n }\n };\n\n useEffect(() => {\n if (!detectScrollbar) return;\n const bodyElement = bodyRef.current;\n\n if (!bodyElement) return;\n\n const debouncedCheckScrollbar = debounce(100, () => {\n checkScrollbar();\n });\n\n // Observer of the body content\n const mutationObserver = new MutationObserver(() => {\n debouncedCheckScrollbar();\n });\n\n mutationObserver.observe(bodyElement, {childList: true, subtree: true});\n\n // Observer of the body size\n const resizeObserver = new ResizeObserver(() => {\n debouncedCheckScrollbar();\n });\n\n if (bodyRef.current) {\n resizeObserver.observe(bodyRef.current);\n }\n\n checkScrollbar();\n\n return () => {\n mutationObserver.disconnect();\n resizeObserver.disconnect();\n debouncedCheckScrollbar.cancel();\n };\n }, [children, detectScrollbar]);\n\n // Handle escape key press\n useEffect(() => {\n if (!isOpen || !onClose) return;\n\n const handleEscape = event => {\n if (event.key === 'Escape') {\n onClose();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [isOpen, onClose]);\n\n const Footer = useCallback(() => {\n if (isEmpty(footer)) return null;\n if (typeof footer === 'function') return footer();\n\n const {cancelButton, confirmButton, text, isError} = footer;\n const {label: cancelLabel, onCancel, disabled: cancelDisabled} = cancelButton || {};\n const {\n label: confirmLabel,\n onConfirm,\n disabled: confirmDisabled,\n iconName,\n color\n } = confirmButton || {};\n const buttonConfirmColor = color || get('common.primary', skin);\n\n return (\n <div className={style.footer} data-name=\"modal-footer\">\n <div className={style.footerCTAWrapper}>\n {onCancel && cancelLabel ? (\n <ButtonLink\n {...{\n className: style.button,\n type: 'secondary',\n onClick: onCancel,\n label: cancelLabel,\n disabled: cancelDisabled,\n 'data-testid': `button-link-cancel`\n }}\n />\n ) : null}\n {onConfirm && confirmLabel ? (\n <div>\n <ButtonLink\n {...{\n customStyle: {backgroundColor: buttonConfirmColor, paddingLeft: '16px'},\n hoverBackgroundColor: convert(\n `hsl(from ${buttonConfirmColor} h s calc(l*(1 - 0.08)))`\n ),\n hoverColor: COLORS.white,\n className: style.button,\n type: 'primary',\n onClick: onConfirm,\n label: confirmLabel,\n disabled: confirmDisabled,\n ...(iconName\n ? {\n icon: {\n position: 'left',\n faIcon: {\n name: iconName,\n color: COLORS.white,\n size: 14,\n customStyle: {padding: 0}\n }\n }\n }\n : {}),\n 'data-testid': `button-link-confirm`\n }}\n />\n </div>\n ) : null}\n </div>\n {text ? (\n <div\n className={`${style.footerDescription} ${isError ? style.footerDescriptionError : ''}`}\n >\n {text}\n </div>\n ) : null}\n </div>\n );\n }, [footer, skin]);\n\n if (!isOpen || !title || !children) return null;\n\n function handleOnClose(e) {\n e?.stopPropagation();\n onClose();\n }\n function handleModalOnClick(e) {\n e?.stopPropagation();\n }\n\n return (\n <div className={style.modalWrapper} data-testid=\"modal\" onClick={handleOnClose}>\n <div className={style.modal} style={customStyle} onClick={handleModalOnClick}>\n <header className={classnames(style.header, !description && style.headerCentered)}>\n {headerIcon?.name ? (\n <div className={style.headerIcon}>\n <Icon\n iconName={headerIcon.name}\n iconColor={headerIcon.color}\n backgroundColor={headerIcon.backgroundColor}\n size={{faSize: 20, wrapperSize: 48}}\n />\n </div>\n ) : null}\n <div className={style.headerContent}>\n <div className={style.headerTitle} role=\"group\" aria-label={titleAriaLabel}>\n {title}\n </div>\n {description ? <div className={style.headerDescription}>{description}</div> : null}\n </div>\n <div className={style.headerCloseIcon} onClick={handleOnClose} data-testid=\"close-icon\">\n <Icon iconName=\"close\" backgroundColor=\"#F4F4F5\" size={{faSize: 14, wrapperSize: 28}} />\n </div>\n </header>\n <div\n ref={bodyRef}\n className={isScrollbarVisible ? style.body : style.bodyWithoutScrollbar}\n onScroll={onScroll}\n data-testid=\"modal-body\"\n >\n {children}\n </div>\n <Footer />\n </div>\n </div>\n );\n};\n\nBaseModal.contextTypes = {\n skin: Provider.childContextTypes.skin\n};\n\nBaseModal.propTypes = {\n title: PropTypes.string,\n titleAriaLabel: PropTypes.string,\n headerIcon: PropTypes.shape({\n name: PropTypes.string,\n color: PropTypes.string,\n backgroundColor: PropTypes.string\n }),\n description: PropTypes.string,\n children: PropTypes.node,\n isOpen: PropTypes.bool,\n footer: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({\n text: PropTypes.string,\n isError: PropTypes.boolean,\n cancelButton: PropTypes.shape({\n label: PropTypes.string,\n onCancel: PropTypes.func,\n disabled: PropTypes.bool\n }),\n confirmButton: PropTypes.shape({\n label: PropTypes.string,\n onConfirm: PropTypes.func,\n iconName: PropTypes.string,\n disabled: PropTypes.bool,\n color: PropTypes.string\n })\n })\n ]),\n onClose: PropTypes.func,\n onScroll: PropTypes.func,\n detectScrollbar: PropTypes.bool,\n customStyle: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number]))\n};\n\nexport default BaseModal;\n"],"mappings":"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","ignoreList":[]}