@coorpacademy/components 11.11.5-alpha.0 → 11.11.5

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 (146) hide show
  1. package/es/atom/battle-opponent/index.d.ts +20 -0
  2. package/es/atom/battle-opponent/index.d.ts.map +1 -0
  3. package/es/atom/battle-opponent/index.js +104 -0
  4. package/es/atom/battle-opponent/index.js.map +1 -0
  5. package/es/atom/battle-opponent/prop-types.d.ts +21 -0
  6. package/es/atom/battle-opponent/prop-types.d.ts.map +1 -0
  7. package/es/atom/battle-opponent/prop-types.js +12 -0
  8. package/es/atom/battle-opponent/prop-types.js.map +1 -0
  9. package/es/atom/battle-opponent/style.css +133 -0
  10. package/es/atom/{review-header-step-item → status-item}/index.d.ts +4 -4
  11. package/es/atom/status-item/index.d.ts.map +1 -0
  12. package/es/atom/status-item/index.js +104 -0
  13. package/es/atom/status-item/index.js.map +1 -0
  14. package/es/atom/status-item/index.native.d.ts +5 -0
  15. package/es/atom/status-item/index.native.d.ts.map +1 -0
  16. package/es/atom/{review-header-step-item → status-item}/index.native.js +2 -2
  17. package/es/atom/status-item/index.native.js.map +1 -0
  18. package/es/atom/{review-header-step-item → status-item}/style.css +47 -0
  19. package/es/atom/{review-header-step-item → status-item}/types.d.ts +5 -5
  20. package/es/atom/status-item/types.d.ts.map +1 -0
  21. package/es/atom/{review-header-step-item → status-item}/types.js +1 -1
  22. package/es/atom/status-item/types.js.map +1 -0
  23. package/es/atom/tooltip/index.d.ts +3 -1
  24. package/es/atom/tooltip/index.d.ts.map +1 -1
  25. package/es/atom/tooltip/index.js +18 -7
  26. package/es/atom/tooltip/index.js.map +1 -1
  27. package/es/atom/tooltip/style.css +11 -2
  28. package/es/globals.d.js.map +1 -1
  29. package/es/molecule/battle-opponent-list/index.d.ts +18 -0
  30. package/es/molecule/battle-opponent-list/index.d.ts.map +1 -0
  31. package/es/molecule/battle-opponent-list/index.js +25 -0
  32. package/es/molecule/battle-opponent-list/index.js.map +1 -0
  33. package/es/molecule/battle-opponent-list/prop-types.d.ts +26 -0
  34. package/es/molecule/battle-opponent-list/prop-types.d.ts.map +1 -0
  35. package/es/molecule/battle-opponent-list/prop-types.js +14 -0
  36. package/es/molecule/battle-opponent-list/prop-types.js.map +1 -0
  37. package/es/molecule/battle-opponent-list/style.css +5 -0
  38. package/es/molecule/review-header-steps/index.js +2 -2
  39. package/es/molecule/review-header-steps/index.js.map +1 -1
  40. package/es/molecule/review-header-steps/prop-types.d.ts +2 -2
  41. package/es/molecule/review-header-steps/prop-types.d.ts.map +1 -1
  42. package/es/molecule/review-header-steps/prop-types.js +1 -1
  43. package/es/molecule/review-header-steps/prop-types.js.map +1 -1
  44. package/es/organism/review-header/index.native.js +1 -1
  45. package/es/organism/review-header/index.native.js.map +1 -1
  46. package/es/organism/review-header/types.d.ts +2 -2
  47. package/es/organism/review-header/types.d.ts.map +1 -1
  48. package/es/organism/review-header/types.js.map +1 -1
  49. package/es/organism/user-preferences/index.d.ts.map +1 -1
  50. package/es/organism/user-preferences/index.js +6 -3
  51. package/es/organism/user-preferences/index.js.map +1 -1
  52. package/es/variables/colors.css +2 -0
  53. package/lib/atom/battle-opponent/index.d.ts +20 -0
  54. package/lib/atom/battle-opponent/index.d.ts.map +1 -0
  55. package/lib/atom/battle-opponent/index.js +124 -0
  56. package/lib/atom/battle-opponent/index.js.map +1 -0
  57. package/lib/atom/battle-opponent/prop-types.d.ts +21 -0
  58. package/lib/atom/battle-opponent/prop-types.d.ts.map +1 -0
  59. package/lib/atom/battle-opponent/prop-types.js +21 -0
  60. package/lib/atom/battle-opponent/prop-types.js.map +1 -0
  61. package/lib/atom/battle-opponent/style.css +133 -0
  62. package/lib/atom/{review-header-step-item → status-item}/index.d.ts +4 -4
  63. package/lib/atom/status-item/index.d.ts.map +1 -0
  64. package/lib/atom/{review-header-step-item → status-item}/index.js +50 -23
  65. package/lib/atom/status-item/index.js.map +1 -0
  66. package/lib/atom/status-item/index.native.d.ts +5 -0
  67. package/lib/atom/status-item/index.native.d.ts.map +1 -0
  68. package/lib/atom/{review-header-step-item → status-item}/index.native.js +2 -2
  69. package/lib/atom/status-item/index.native.js.map +1 -0
  70. package/lib/atom/{review-header-step-item → status-item}/style.css +47 -0
  71. package/lib/atom/{review-header-step-item → status-item}/types.d.ts +5 -5
  72. package/lib/atom/status-item/types.d.ts.map +1 -0
  73. package/lib/atom/{review-header-step-item → status-item}/types.js +1 -1
  74. package/lib/atom/status-item/types.js.map +1 -0
  75. package/lib/atom/tooltip/index.d.ts +3 -1
  76. package/lib/atom/tooltip/index.d.ts.map +1 -1
  77. package/lib/atom/tooltip/index.js +19 -7
  78. package/lib/atom/tooltip/index.js.map +1 -1
  79. package/lib/atom/tooltip/style.css +11 -2
  80. package/lib/globals.d.js.map +1 -1
  81. package/lib/molecule/battle-opponent-list/index.d.ts +18 -0
  82. package/lib/molecule/battle-opponent-list/index.d.ts.map +1 -0
  83. package/lib/molecule/battle-opponent-list/index.js +43 -0
  84. package/lib/molecule/battle-opponent-list/index.js.map +1 -0
  85. package/lib/molecule/battle-opponent-list/prop-types.d.ts +26 -0
  86. package/lib/molecule/battle-opponent-list/prop-types.d.ts.map +1 -0
  87. package/lib/molecule/battle-opponent-list/prop-types.js +23 -0
  88. package/lib/molecule/battle-opponent-list/prop-types.js.map +1 -0
  89. package/lib/molecule/battle-opponent-list/style.css +5 -0
  90. package/lib/molecule/review-header-steps/index.js +2 -2
  91. package/lib/molecule/review-header-steps/index.js.map +1 -1
  92. package/lib/molecule/review-header-steps/prop-types.d.ts +2 -2
  93. package/lib/molecule/review-header-steps/prop-types.d.ts.map +1 -1
  94. package/lib/molecule/review-header-steps/prop-types.js +1 -1
  95. package/lib/molecule/review-header-steps/prop-types.js.map +1 -1
  96. package/lib/organism/review-header/index.native.js +1 -1
  97. package/lib/organism/review-header/index.native.js.map +1 -1
  98. package/lib/organism/review-header/types.d.ts +2 -2
  99. package/lib/organism/review-header/types.d.ts.map +1 -1
  100. package/lib/organism/review-header/types.js.map +1 -1
  101. package/lib/organism/user-preferences/index.d.ts.map +1 -1
  102. package/lib/organism/user-preferences/index.js +10 -3
  103. package/lib/organism/user-preferences/index.js.map +1 -1
  104. package/lib/variables/colors.css +2 -0
  105. package/locales/bs/global.json +0 -2
  106. package/locales/cs/global.json +0 -2
  107. package/locales/de/global.json +0 -2
  108. package/locales/en/global.json +8 -5
  109. package/locales/es/global.json +0 -2
  110. package/locales/et/global.json +0 -2
  111. package/locales/fr/global.json +0 -2
  112. package/locales/hr/global.json +0 -2
  113. package/locales/hu/global.json +0 -2
  114. package/locales/hy/global.json +0 -2
  115. package/locales/it/global.json +0 -2
  116. package/locales/ja/global.json +0 -2
  117. package/locales/ko/global.json +0 -2
  118. package/locales/nl/global.json +0 -2
  119. package/locales/pl/global.json +0 -2
  120. package/locales/pt/global.json +0 -2
  121. package/locales/ro/global.json +0 -2
  122. package/locales/ru/global.json +0 -2
  123. package/locales/sk/global.json +0 -2
  124. package/locales/th/global.json +0 -2
  125. package/locales/tl/global.json +0 -2
  126. package/locales/tr/global.json +0 -2
  127. package/locales/uk/global.json +0 -2
  128. package/locales/vi/global.json +0 -2
  129. package/locales/zh/global.json +0 -2
  130. package/locales/zh_TW/global.json +0 -2
  131. package/package.json +3 -2
  132. package/es/atom/review-header-step-item/index.d.ts.map +0 -1
  133. package/es/atom/review-header-step-item/index.js +0 -77
  134. package/es/atom/review-header-step-item/index.js.map +0 -1
  135. package/es/atom/review-header-step-item/index.native.d.ts +0 -5
  136. package/es/atom/review-header-step-item/index.native.d.ts.map +0 -1
  137. package/es/atom/review-header-step-item/index.native.js.map +0 -1
  138. package/es/atom/review-header-step-item/types.d.ts.map +0 -1
  139. package/es/atom/review-header-step-item/types.js.map +0 -1
  140. package/lib/atom/review-header-step-item/index.d.ts.map +0 -1
  141. package/lib/atom/review-header-step-item/index.js.map +0 -1
  142. package/lib/atom/review-header-step-item/index.native.d.ts +0 -5
  143. package/lib/atom/review-header-step-item/index.native.d.ts.map +0 -1
  144. package/lib/atom/review-header-step-item/index.native.js.map +0 -1
  145. package/lib/atom/review-header-step-item/types.d.ts.map +0 -1
  146. package/lib/atom/review-header-step-item/types.js.map +0 -1
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _react = _interopRequireWildcard(require("react"));
7
+
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+
10
+ var _uuid = require("uuid");
11
+
12
+ var _has = _interopRequireDefault(require("lodash/fp/has"));
13
+
14
+ var _novaIcons = require("@coorpacademy/nova-icons");
15
+
16
+ var _tooltip = _interopRequireWildcard(require("../tooltip"));
17
+
18
+ var _provider = _interopRequireWildcard(require("../provider"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("./prop-types"));
21
+
22
+ var _style = _interopRequireDefault(require("./style.css"));
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
31
+
32
+ const BattleOpponent = ({
33
+ isAlreadyEngaged,
34
+ isRandom,
35
+ userAvatarSrc,
36
+ onClick,
37
+ displayName,
38
+ tooltipText,
39
+ 'aria-label': ariaLabel
40
+ }, legacyContext) => {
41
+ const translate = (0, _provider.GetTranslateFromContext)(legacyContext);
42
+ const wrapperClassnames = (0, _react.useMemo)(() => (0, _classnames.default)(_style.default.card, _style.default['opponent-card'], isRandom ? _style.default.random : null), [isRandom]);
43
+ const displayNameClassnames = (0, _react.useMemo)(() => (0, _classnames.default)(_style.default.name, isAlreadyEngaged ? _style.default.alreadyEngaged : null), [isAlreadyEngaged]);
44
+ const [mouseLeaveTimer, setMouseLeaveTimer] = (0, _react.useState)(undefined);
45
+ const [toolTipIsVisible, setToolTipIsVisible] = (0, _react.useState)(false); // to be replaced by useId when React17 is bumped to React18
46
+
47
+ const [battleOpponentInfoId] = (0, _react.useState)(isAlreadyEngaged ? (0, _uuid.v5)('engaged-battle-', _uuid.v5.URL) : undefined);
48
+ const buttonRef = (0, _react.useRef)(null);
49
+ const handleMouseOver = (0, _react.useCallback)(() => {
50
+ mouseLeaveTimer && clearTimeout(mouseLeaveTimer); // @ts-expect-error (error: focus does not exists on type never)
51
+
52
+ /* istanbul ignore next */
53
+
54
+ (0, _has.default)(['current', 'focus'], buttonRef) && buttonRef.current.focus();
55
+ setToolTipIsVisible(true);
56
+ }, [mouseLeaveTimer]);
57
+ const handleMouseLeave = (0, _react.useCallback)(() => {
58
+ setMouseLeaveTimer(setTimeout(() => {
59
+ setToolTipIsVisible(false); // @ts-expect-error (error: blur does not exists on type never)
60
+
61
+ /* istanbul ignore next */
62
+
63
+ (0, _has.default)(['current', 'blur'], buttonRef) && buttonRef.current.blur();
64
+ }, 500));
65
+ }, []);
66
+ const handleKeyPress = (0, _react.useCallback)(event => {
67
+ (0, _tooltip.toggleStateOnKeyPress)(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);
68
+ }, [toolTipIsVisible]);
69
+ const TooltipContent = (0, _react.useCallback)(_props => /*#__PURE__*/_react.default.createElement("p", _extends({}, _props, {
70
+ onMouseOver: handleMouseOver,
71
+ onMouseLeave: handleMouseLeave,
72
+ "data-testid": "battle-opponent-tooltip-content"
73
+ }), tooltipText), [handleMouseLeave, handleMouseOver, tooltipText]);
74
+ return /*#__PURE__*/_react.default.createElement("li", _extends({}, !isAlreadyEngaged && {
75
+ onClick
76
+ }, {
77
+ className: wrapperClassnames,
78
+ "data-testid": "battle-opponent-wrapper",
79
+ tabIndex: 0
80
+ }), /*#__PURE__*/_react.default.createElement("div", {
81
+ className: _style.default.avatar
82
+ }, isRandom ? null : /*#__PURE__*/_react.default.createElement("img", {
83
+ src: userAvatarSrc,
84
+ alt: ""
85
+ })), /*#__PURE__*/_react.default.createElement("p", {
86
+ className: displayNameClassnames,
87
+ tabIndex: 0
88
+ }, displayName), isAlreadyEngaged ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("button", {
89
+ ref: buttonRef,
90
+ tabIndex: 0,
91
+ type: "button",
92
+ className: _style.default.tooltipIconContainer,
93
+ "data-testid": "battle-engaged-opponent-information-button",
94
+ onKeyDown: handleKeyPress,
95
+ onMouseLeave: handleMouseLeave,
96
+ onMouseOver: handleMouseOver,
97
+ "data-for": battleOpponentInfoId,
98
+ "data-tooltip-place": "left",
99
+ "data-tip": isAlreadyEngaged,
100
+ "aria-label": ariaLabel
101
+ }, /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyInformationIcon, {
102
+ className: _style.default.informationIcon,
103
+ width: 20,
104
+ height: 20
105
+ })), /*#__PURE__*/_react.default.createElement(_tooltip.default, {
106
+ fontSize: 12,
107
+ anchorId: battleOpponentInfoId,
108
+ toolTipIsVisible: toolTipIsVisible,
109
+ TooltipContent: TooltipContent,
110
+ closeToolTipInformationTextAriaLabel: translate('Press the escape key to close the information text')
111
+ })) : /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionNavigationArrowRight, {
112
+ className: _style.default.rightArrow,
113
+ width: 16,
114
+ height: 16
115
+ }));
116
+ };
117
+
118
+ BattleOpponent.propTypes = process.env.NODE_ENV !== "production" ? _propTypes.default : {};
119
+ BattleOpponent.contextTypes = {
120
+ translate: _provider.default.childContextTypes.translate
121
+ };
122
+ var _default = BattleOpponent;
123
+ exports.default = _default;
124
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["BattleOpponent","isAlreadyEngaged","isRandom","userAvatarSrc","onClick","displayName","tooltipText","ariaLabel","legacyContext","translate","GetTranslateFromContext","wrapperClassnames","useMemo","classnames","style","card","random","displayNameClassnames","name","alreadyEngaged","mouseLeaveTimer","setMouseLeaveTimer","useState","undefined","toolTipIsVisible","setToolTipIsVisible","battleOpponentInfoId","uuidV5","URL","buttonRef","useRef","handleMouseOver","useCallback","clearTimeout","has","current","focus","handleMouseLeave","setTimeout","blur","handleKeyPress","event","toggleStateOnKeyPress","TooltipContent","_props","avatar","tooltipIconContainer","informationIcon","rightArrow","propTypes","contextTypes","Provider","childContextTypes"],"sources":["../../../src/atom/battle-opponent/index.tsx"],"sourcesContent":["import React, {useCallback, useMemo, useState, useRef} from 'react';\nimport classnames from 'classnames';\nimport {v5 as uuidV5} from 'uuid';\nimport has from 'lodash/fp/has';\nimport {\n NovaCompositionNavigationArrowRight as ArrowRight,\n NovaCompositionCoorpacademyInformationIcon as InformationIcon\n} from '@coorpacademy/nova-icons';\nimport ToolTip, {toggleStateOnKeyPress} from '../tooltip';\nimport Provider, {GetTranslateFromContext} from '../provider';\nimport {WebContextValues} from '../provider/web-context';\nimport propTypes, {BattleOpponentProps} from './prop-types';\nimport style from './style.css';\n\nconst BattleOpponent = (\n {\n isAlreadyEngaged,\n isRandom,\n userAvatarSrc,\n onClick,\n displayName,\n tooltipText,\n 'aria-label': ariaLabel\n }: BattleOpponentProps,\n legacyContext: WebContextValues\n) => {\n const translate: Required<WebContextValues>['translate'] = GetTranslateFromContext(legacyContext);\n const wrapperClassnames = useMemo(\n () => classnames(style.card, style['opponent-card'], isRandom ? style.random : null),\n [isRandom]\n );\n\n const displayNameClassnames = useMemo(\n () => classnames(style.name, isAlreadyEngaged ? style.alreadyEngaged : null),\n [isAlreadyEngaged]\n );\n\n const [mouseLeaveTimer, setMouseLeaveTimer] = useState<number | undefined>(undefined);\n const [toolTipIsVisible, setToolTipIsVisible] = useState(false);\n\n // to be replaced by useId when React17 is bumped to React18\n const [battleOpponentInfoId] = useState(\n isAlreadyEngaged ? uuidV5('engaged-battle-', uuidV5.URL) : undefined\n );\n\n const buttonRef = useRef(null);\n\n const handleMouseOver = useCallback(() => {\n mouseLeaveTimer && clearTimeout(mouseLeaveTimer);\n // @ts-expect-error (error: focus does not exists on type never)\n /* istanbul ignore next */ has(['current', 'focus'], buttonRef) && buttonRef.current.focus();\n setToolTipIsVisible(true);\n }, [mouseLeaveTimer]);\n\n const handleMouseLeave = useCallback(() => {\n setMouseLeaveTimer(\n setTimeout(() => {\n setToolTipIsVisible(false);\n // @ts-expect-error (error: blur does not exists on type never)\n /* istanbul ignore next */ has(['current', 'blur'], buttonRef) && buttonRef.current.blur();\n }, 500) as unknown as number\n );\n }, []);\n\n const handleKeyPress = useCallback(\n event => {\n toggleStateOnKeyPress(toolTipIsVisible, setToolTipIsVisible, buttonRef)(event);\n },\n [toolTipIsVisible]\n );\n\n const TooltipContent = useCallback(\n _props => (\n <p\n {..._props}\n onMouseOver={handleMouseOver}\n onMouseLeave={handleMouseLeave}\n data-testid=\"battle-opponent-tooltip-content\"\n >\n {tooltipText}\n </p>\n ),\n [handleMouseLeave, handleMouseOver, tooltipText]\n );\n\n return (\n <li\n {...(!isAlreadyEngaged && {onClick})}\n className={wrapperClassnames}\n data-testid=\"battle-opponent-wrapper\"\n tabIndex={0}\n >\n <div className={style.avatar}>{isRandom ? null : <img src={userAvatarSrc} alt=\"\" />}</div>\n <p className={displayNameClassnames} tabIndex={0}>\n {displayName}\n </p>\n {isAlreadyEngaged ? (\n <>\n <button\n ref={buttonRef}\n tabIndex={0}\n type=\"button\"\n className={style.tooltipIconContainer}\n data-testid=\"battle-engaged-opponent-information-button\"\n onKeyDown={handleKeyPress}\n onMouseLeave={handleMouseLeave}\n onMouseOver={handleMouseOver}\n data-for={battleOpponentInfoId}\n data-tooltip-place=\"left\"\n data-tip={isAlreadyEngaged}\n aria-label={ariaLabel}\n >\n <InformationIcon className={style.informationIcon} width={20} height={20} />\n </button>\n <ToolTip\n fontSize={12}\n anchorId={battleOpponentInfoId}\n toolTipIsVisible={toolTipIsVisible}\n TooltipContent={TooltipContent}\n closeToolTipInformationTextAriaLabel={translate(\n 'Press the escape key to close the information text'\n )}\n />\n </>\n ) : (\n <ArrowRight className={style.rightArrow} width={16} height={16} />\n )}\n </li>\n );\n};\n\nBattleOpponent.propTypes = propTypes;\n\nBattleOpponent.contextTypes = {\n translate: Provider.childContextTypes.translate\n};\n\nexport default BattleOpponent;\n"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import PropTypes from 'prop-types';
2
+ declare const propTypes: {
3
+ isAlreadyEngaged: PropTypes.Requireable<boolean>;
4
+ isRandom: PropTypes.Requireable<boolean>;
5
+ userAvatarSrc: PropTypes.Requireable<string>;
6
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
7
+ displayName: PropTypes.Requireable<string>;
8
+ tooltipText: PropTypes.Requireable<string>;
9
+ 'aria-label': PropTypes.Requireable<string>;
10
+ };
11
+ export declare type BattleOpponentProps = {
12
+ isAlreadyEngaged?: boolean;
13
+ isRandom?: boolean;
14
+ userAvatarSrc?: string;
15
+ onClick?: () => void;
16
+ displayName: string;
17
+ tooltipText?: string;
18
+ 'aria-label'?: string;
19
+ };
20
+ export default propTypes;
21
+ //# sourceMappingURL=prop-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prop-types.d.ts","sourceRoot":"","sources":["../../../src/atom/battle-opponent/prop-types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,QAAA,MAAM,SAAS;;;;;;;;CAQd,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = void 0;
5
+
6
+ var _propTypes = _interopRequireDefault(require("prop-types"));
7
+
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+
10
+ const propTypes = {
11
+ isAlreadyEngaged: _propTypes.default.bool,
12
+ isRandom: _propTypes.default.bool,
13
+ userAvatarSrc: _propTypes.default.string,
14
+ onClick: _propTypes.default.func,
15
+ displayName: _propTypes.default.string,
16
+ tooltipText: _propTypes.default.string,
17
+ 'aria-label': _propTypes.default.string
18
+ };
19
+ var _default = propTypes;
20
+ exports.default = _default;
21
+ //# sourceMappingURL=prop-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prop-types.js","names":["propTypes","isAlreadyEngaged","PropTypes","bool","isRandom","userAvatarSrc","string","onClick","func","displayName","tooltipText"],"sources":["../../../src/atom/battle-opponent/prop-types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst propTypes = {\n isAlreadyEngaged: PropTypes.bool,\n isRandom: PropTypes.bool,\n userAvatarSrc: PropTypes.string,\n onClick: PropTypes.func,\n displayName: PropTypes.string,\n tooltipText: PropTypes.string,\n 'aria-label': PropTypes.string\n};\n\nexport type BattleOpponentProps = {\n isAlreadyEngaged?: boolean;\n isRandom?: boolean;\n userAvatarSrc?: string;\n onClick?: () => void;\n displayName: string;\n tooltipText?: string;\n 'aria-label'?: string;\n};\n\nexport default propTypes;\n"],"mappings":";;;;;AAAA;;;;AAEA,MAAMA,SAAS,GAAG;EAChBC,gBAAgB,EAAEC,kBAAA,CAAUC,IADZ;EAEhBC,QAAQ,EAAEF,kBAAA,CAAUC,IAFJ;EAGhBE,aAAa,EAAEH,kBAAA,CAAUI,MAHT;EAIhBC,OAAO,EAAEL,kBAAA,CAAUM,IAJH;EAKhBC,WAAW,EAAEP,kBAAA,CAAUI,MALP;EAMhBI,WAAW,EAAER,kBAAA,CAAUI,MANP;EAOhB,cAAcJ,kBAAA,CAAUI;AAPR,CAAlB;eAoBeN,S"}
@@ -0,0 +1,133 @@
1
+ @value breakpoints: "../../variables/breakpoints.css";
2
+ @value mobile from breakpoints;
3
+ @value colors: "../../variables/colors.css";
4
+ @value white from colors;
5
+ @value dark from colors;
6
+ @value black from colors;
7
+ @value cm_grey_75 from colors;
8
+ @value medium from colors;
9
+ @value light from colors;
10
+ @value brand from colors;
11
+
12
+ .rightArrow {
13
+ position: flex;
14
+ padding: 9px;
15
+ cursor: pointer;
16
+ opacity: 1;
17
+ user-select: none;
18
+ text-align: right;
19
+ color: dark;
20
+ }
21
+
22
+ .card {
23
+ margin: 5px;
24
+ }
25
+
26
+ .opponent-card {
27
+ flex: 1 1 350px;
28
+ height: 80px;
29
+ background-color: white;
30
+ box-shadow: 0 0 4px 1px rgba(0,0,0,0.10);
31
+ border-radius: 3px;
32
+ padding: 20px;
33
+ box-sizing: border-box;
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: space-between;
37
+ cursor: pointer;
38
+ }
39
+
40
+ .opponent-card .name {
41
+ font-family: 'Gilroy';
42
+ font-size: 15px;
43
+ font-weight: 700;
44
+ color: black;
45
+ flex-grow: 1;
46
+ }
47
+
48
+
49
+ .opponent-card .rightArrow {
50
+ margin-left: 20px;
51
+ }
52
+
53
+ .avatar {
54
+ width: 50px;
55
+ height: 50px;
56
+ border-radius: 50%;
57
+ overflow: hidden;
58
+ background-color: light;
59
+ margin-right: 20px;
60
+ flex-shrink: 0;
61
+ }
62
+
63
+ .avatar img {
64
+ width: 100%;
65
+ height: auto;
66
+ }
67
+
68
+
69
+ .random {
70
+ color: medium;
71
+ }
72
+
73
+ .alreadyEngaged.name,
74
+ .random .name {
75
+ color: medium;
76
+ }
77
+
78
+ .random .avatar {
79
+ background-color: brand;
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ }
84
+
85
+ .random .avatar:before {
86
+ content: '?';
87
+ font-family: 'Gilroy';
88
+ font-size: 32px;
89
+ font-weight: 600;
90
+ color: white;
91
+ text-align: center;
92
+ }
93
+
94
+ .random .avatar img {
95
+ display: none;
96
+ }
97
+
98
+ .opponent-card:hover {
99
+ background-color: cm_grey_75;
100
+ }
101
+
102
+ .informationIcon {
103
+ color: cm_grey_500;
104
+ }
105
+
106
+ .tooltipIconContainer {
107
+ display: flex;
108
+ justify-content: flex-end;
109
+ border: none;
110
+ background: transparent;
111
+ height: 25px;
112
+ align-items: center;
113
+ }
114
+
115
+ @media mobile {
116
+ .opponent-card {
117
+ width: 100%;
118
+ padding: 10px;
119
+ }
120
+
121
+ .opponent-card .avatar {
122
+ margin-right: 10px;
123
+ }
124
+
125
+ .opponent-card .rightArrow {
126
+ margin-left: 10px;
127
+ }
128
+
129
+ .card {
130
+ margin: 0 0 10px;
131
+ }
132
+ }
133
+
@@ -1,12 +1,12 @@
1
1
  /// <reference types="react" />
2
- import { HeaderStepItemProps } from './types';
3
- declare const ReviewHeaderStepItem: {
4
- (props: HeaderStepItemProps): JSX.Element;
2
+ import { StatusItemProps } from './types';
3
+ declare const StatusItem: {
4
+ (props: StatusItemProps): JSX.Element;
5
5
  propTypes: {
6
6
  current: import("prop-types").Requireable<boolean>;
7
7
  icon: import("prop-types").Requireable<string>;
8
8
  value: import("prop-types").Requireable<string>;
9
9
  };
10
10
  };
11
- export default ReviewHeaderStepItem;
11
+ export default StatusItem;
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atom/status-item/index.tsx"],"names":[],"mappings":";AASA,OAAkB,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AAqFnD,QAAA,MAAM,UAAU;YAAW,eAAe;;;;;;CAkBzC,CAAC;AAWF,eAAe,UAAU,CAAC"}
@@ -21,6 +21,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
24
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
25
+
24
26
  const Content = (props, legacyContext) => {
25
27
  const {
26
28
  icon,
@@ -29,33 +31,59 @@ const Content = (props, legacyContext) => {
29
31
  } = props;
30
32
  const translate = (0, _provider.GetTranslateFromContext)(legacyContext);
31
33
  let child;
32
- let ariaDescription;
34
+ let contentAriaLabel;
33
35
 
34
36
  switch (icon) {
35
37
  case 'no-answer':
36
38
  child = value;
37
- ariaDescription = current ? translate('review_header_step_item.current_question', {
38
- headerStepValue: value
39
- }) : translate('review_header_step_item.not_answered_question', {
39
+ contentAriaLabel = translate('review_header_step_item.not_answered_question', {
40
+ current: current ? 'current ' : '',
40
41
  headerStepValue: value
41
42
  });
42
43
  break;
43
44
 
44
45
  case 'right':
45
46
  child = /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyCheck, {
46
- className: (0, _classnames.default)(_style.default.rightIcon, current && _style.default.currentRightIcon)
47
- });
48
- ariaDescription = translate('review_header_step_item.correct_question', {
49
- headerStepValue: value
47
+ className: (0, _classnames.default)(_style.default.rightIcon, current && _style.default.currentRightIcon),
48
+ role: "status",
49
+ "aria-label": translate('review_header_step_item.correct_question', {
50
+ current: current ? 'current ' : '',
51
+ headerStepValue: value
52
+ })
50
53
  });
51
54
  break;
52
55
 
53
56
  case 'wrong':
54
57
  child = /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidStatusClose, {
55
- className: (0, _classnames.default)(_style.default.wrongIcon, current && _style.default.currentWrongIcon)
58
+ className: (0, _classnames.default)(_style.default.wrongIcon, current && _style.default.currentWrongIcon),
59
+ role: "alert",
60
+ "aria-label": translate('review_header_step_item.incorrect_question', {
61
+ current: current ? 'current ' : '',
62
+ headerStepValue: value
63
+ })
56
64
  });
57
- ariaDescription = translate('review_header_step_item.incorrect_question', {
58
- headerStepValue: value
65
+ break;
66
+
67
+ case 'errors-number':
68
+ child = value;
69
+ contentAriaLabel = translate('bulk_import.errors_number', {
70
+ bulkImportErrorsNumber: value
71
+ });
72
+ break;
73
+
74
+ case 'valid':
75
+ child = /*#__PURE__*/_react.default.createElement(_novaIcons.NovaCompositionCoorpacademyCheck, {
76
+ className: (0, _classnames.default)(_style.default.validIcon),
77
+ role: "status",
78
+ "aria-label": translate('bulk_import.valid_scorm')
79
+ });
80
+ break;
81
+
82
+ case 'invalid':
83
+ child = /*#__PURE__*/_react.default.createElement(_novaIcons.NovaSolidStatusClose, {
84
+ className: (0, _classnames.default)(_style.default.invalidIcon),
85
+ role: "alert",
86
+ "aria-label": translate('bulk_import.invalid_scorm')
59
87
  });
60
88
  break;
61
89
 
@@ -63,23 +91,22 @@ const Content = (props, legacyContext) => {
63
91
  return null;
64
92
  }
65
93
 
66
- return /*#__PURE__*/_react.default.createElement("span", {
67
- className: _style.default.value,
68
- "aria-label": translate('review_header_step_item.aria_label', {
69
- headerStepValue: value
70
- }),
71
- "aria-describedby": ariaDescription
72
- }, child);
94
+ return /*#__PURE__*/_react.default.createElement("span", _extends({}, icon === 'no-answer' || icon === 'errors-number' ? {
95
+ 'aria-label': contentAriaLabel,
96
+ role: 'status'
97
+ } : {}, {
98
+ className: _style.default.value
99
+ }), child);
73
100
  };
74
101
 
75
- const ReviewHeaderStepItem = props => {
102
+ const StatusItem = props => {
76
103
  const {
77
104
  icon,
78
105
  current
79
106
  } = props;
80
107
  return /*#__PURE__*/_react.default.createElement("div", {
81
- className: (0, _classnames.default)(_style.default.default, icon === 'right' && _style.default.right, icon === 'wrong' && _style.default.wrong, current && _style.default.current),
82
- "data-name": "header-step-item"
108
+ className: (0, _classnames.default)(_style.default.default, icon === 'right' && _style.default.right, icon === 'wrong' && _style.default.wrong, current && _style.default.current, icon === 'valid' && _style.default.valid, icon === 'invalid' && _style.default.invalid, icon === 'errors-number' && _style.default.errorsNumber),
109
+ "data-name": "status-item"
83
110
  }, /*#__PURE__*/_react.default.createElement(Content, props));
84
111
  };
85
112
 
@@ -88,7 +115,7 @@ Content.contextTypes = {
88
115
  skin: _provider.default.childContextTypes.skin,
89
116
  translate: _provider.default.childContextTypes.translate
90
117
  };
91
- ReviewHeaderStepItem.propTypes = process.env.NODE_ENV !== "production" ? _types.default : {};
92
- var _default = ReviewHeaderStepItem;
118
+ StatusItem.propTypes = process.env.NODE_ENV !== "production" ? _types.default : {};
119
+ var _default = StatusItem;
93
120
  exports.default = _default;
94
121
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["Content","props","legacyContext","icon","current","value","translate","GetTranslateFromContext","child","contentAriaLabel","headerStepValue","classnames","style","rightIcon","currentRightIcon","wrongIcon","currentWrongIcon","bulkImportErrorsNumber","validIcon","invalidIcon","role","StatusItem","default","right","wrong","valid","invalid","errorsNumber","propTypes","contextTypes","skin","Provider","childContextTypes"],"sources":["../../../src/atom/status-item/index.tsx"],"sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport {\n NovaCompositionCoorpacademyCheck as RightIcon,\n NovaSolidStatusClose as WrongIcon\n} from '@coorpacademy/nova-icons';\nimport Provider, {GetTranslateFromContext} from '../provider';\nimport {WebContextValues} from '../provider/web-context';\nimport style from './style.css';\nimport propTypes, {StatusItemProps} from './types';\n\nconst Content = (props: StatusItemProps, legacyContext: WebContextValues) => {\n const {icon, current, value} = props;\n const translate = GetTranslateFromContext(legacyContext);\n let child;\n let contentAriaLabel;\n switch (icon) {\n case 'no-answer':\n child = value;\n contentAriaLabel = translate('review_header_step_item.not_answered_question', {\n current: current ? 'current ' : '',\n headerStepValue: value\n });\n break;\n\n case 'right':\n child = (\n <RightIcon\n className={classnames(style.rightIcon, current && style.currentRightIcon)}\n role=\"status\"\n aria-label={translate('review_header_step_item.correct_question', {\n current: current ? 'current ' : '',\n headerStepValue: value\n })}\n />\n );\n break;\n\n case 'wrong':\n child = (\n <WrongIcon\n className={classnames(style.wrongIcon, current && style.currentWrongIcon)}\n role=\"alert\"\n aria-label={translate('review_header_step_item.incorrect_question', {\n current: current ? 'current ' : '',\n headerStepValue: value\n })}\n />\n );\n break;\n\n case 'errors-number':\n child = value;\n contentAriaLabel = translate('bulk_import.errors_number', {\n bulkImportErrorsNumber: value\n });\n break;\n\n case 'valid':\n child = (\n <RightIcon\n className={classnames(style.validIcon)}\n role=\"status\"\n aria-label={translate('bulk_import.valid_scorm')}\n />\n );\n break;\n\n case 'invalid':\n child = (\n <WrongIcon\n className={classnames(style.invalidIcon)}\n role=\"alert\"\n aria-label={translate('bulk_import.invalid_scorm')}\n />\n );\n break;\n\n default:\n return null;\n }\n\n return (\n <span\n {...(icon === 'no-answer' || icon === 'errors-number'\n ? {'aria-label': contentAriaLabel, role: 'status'}\n : {})}\n className={style.value}\n >\n {child}\n </span>\n );\n};\n\nconst StatusItem = (props: StatusItemProps) => {\n const {icon, current} = props;\n return (\n <div\n className={classnames(\n style.default,\n icon === 'right' && style.right,\n icon === 'wrong' && style.wrong,\n current && style.current,\n icon === 'valid' && style.valid,\n icon === 'invalid' && style.invalid,\n icon === 'errors-number' && style.errorsNumber\n )}\n data-name=\"status-item\"\n >\n <Content {...props} />\n </div>\n );\n};\n\nContent.propTypes = propTypes;\n\nContent.contextTypes = {\n skin: Provider.childContextTypes.skin,\n translate: Provider.childContextTypes.translate\n};\n\nStatusItem.propTypes = propTypes;\n\nexport default StatusItem;\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /// <reference types="react" />
2
+ import { StatusItemProps } from './types';
3
+ declare const Step: ({ value, icon, current }: StatusItemProps) => JSX.Element | null;
4
+ export default Step;
5
+ //# sourceMappingURL=index.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.d.ts","sourceRoot":"","sources":["../../../src/atom/status-item/index.native.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAC,eAAe,EAAC,MAAM,SAAS,CAAC;AA6CxC,QAAA,MAAM,IAAI,6BAA4B,eAAe,uBA2BpD,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -15,7 +15,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
15
 
16
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
17
17
 
18
- const createStyle = (current, icon) => {
18
+ const createStyle = (icon, current) => {
19
19
  let backgroundColor;
20
20
 
21
21
  switch (icon) {
@@ -61,7 +61,7 @@ const Step = ({
61
61
  }) => {
62
62
  const [style, setStyle] = (0, _react.useState)(null);
63
63
  (0, _react.useEffect)(() => {
64
- const _style = createStyle(current, icon);
64
+ const _style = createStyle(icon, current);
65
65
 
66
66
  setStyle(_style);
67
67
  }, [current, icon]);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.js","names":["createStyle","icon","current","backgroundColor","COLORS","positive","negative","gray","StyleSheet","create","step","width","height","opacity","marginHorizontal","alignItems","justifyContent","borderRadius","stepText","fontWeight","fontSize","Step","value","style","setStyle","useState","useEffect","_style","child"],"sources":["../../../src/atom/status-item/index.native.tsx"],"sourcesContent":["import React, {useEffect, useState} from 'react';\nimport {StyleSheet, Text, TextStyle, View, ViewStyle} from 'react-native';\nimport {\n NovaCompositionCoorpacademyCheck as RightIcon,\n NovaSolidStatusClose as WrongIcon\n} from '@coorpacademy/nova-icons';\nimport {COLORS} from '../../variables/colors';\nimport {StatusItemProps} from './types';\n\ntype StyleSheetType = {\n step: ViewStyle;\n stepText: TextStyle;\n icon: ViewStyle;\n};\n\nconst createStyle = (icon: StatusItemProps['icon'], current?: boolean): StyleSheetType => {\n let backgroundColor;\n\n switch (icon) {\n case 'right':\n backgroundColor = COLORS.positive;\n break;\n case 'wrong':\n backgroundColor = COLORS.negative;\n break;\n case 'no-answer':\n default:\n backgroundColor = COLORS.gray;\n }\n\n return StyleSheet.create({\n step: {\n width: current ? 40 : 32,\n height: current ? 40 : 32,\n opacity: current ? 1 : 0.5,\n marginHorizontal: 8,\n backgroundColor,\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 50\n },\n stepText: {\n fontWeight: '600',\n fontSize: current ? 16 : 12\n },\n icon: {\n width: current ? 14 : 12,\n height: current ? 14 : 12\n }\n });\n};\n\nconst Step = ({value, icon, current}: StatusItemProps) => {\n const [style, setStyle] = useState<StyleSheetType | null>(null);\n\n useEffect(() => {\n const _style = createStyle(icon, current);\n setStyle(_style);\n }, [current, icon]);\n\n if (!style) {\n return null;\n }\n\n let child;\n\n switch (icon) {\n case 'right':\n child = <RightIcon style={style.icon} color=\"#fff\" />;\n break;\n case 'wrong':\n child = <WrongIcon style={style.icon} color=\"#fff\" />;\n break;\n case 'no-answer':\n default:\n child = <Text style={style.stepText}>{value}</Text>;\n }\n\n return <View style={style.step}>{child}</View>;\n};\n\nexport default Step;\n"],"mappings":";;;;;AAAA;;AACA;;AACA;;AAIA;;;;;;AASA,MAAMA,WAAW,GAAG,CAACC,IAAD,EAAgCC,OAAhC,KAAsE;EACxF,IAAIC,eAAJ;;EAEA,QAAQF,IAAR;IACE,KAAK,OAAL;MACEE,eAAe,GAAGC,cAAA,CAAOC,QAAzB;MACA;;IACF,KAAK,OAAL;MACEF,eAAe,GAAGC,cAAA,CAAOE,QAAzB;MACA;;IACF,KAAK,WAAL;IACA;MACEH,eAAe,GAAGC,cAAA,CAAOG,IAAzB;EATJ;;EAYA,OAAOC,uBAAA,CAAWC,MAAX,CAAkB;IACvBC,IAAI,EAAE;MACJC,KAAK,EAAET,OAAO,GAAG,EAAH,GAAQ,EADlB;MAEJU,MAAM,EAAEV,OAAO,GAAG,EAAH,GAAQ,EAFnB;MAGJW,OAAO,EAAEX,OAAO,GAAG,CAAH,GAAO,GAHnB;MAIJY,gBAAgB,EAAE,CAJd;MAKJX,eALI;MAMJY,UAAU,EAAE,QANR;MAOJC,cAAc,EAAE,QAPZ;MAQJC,YAAY,EAAE;IARV,CADiB;IAWvBC,QAAQ,EAAE;MACRC,UAAU,EAAE,KADJ;MAERC,QAAQ,EAAElB,OAAO,GAAG,EAAH,GAAQ;IAFjB,CAXa;IAevBD,IAAI,EAAE;MACJU,KAAK,EAAET,OAAO,GAAG,EAAH,GAAQ,EADlB;MAEJU,MAAM,EAAEV,OAAO,GAAG,EAAH,GAAQ;IAFnB;EAfiB,CAAlB,CAAP;AAoBD,CAnCD;;AAqCA,MAAMmB,IAAI,GAAG,CAAC;EAACC,KAAD;EAAQrB,IAAR;EAAcC;AAAd,CAAD,KAA6C;EACxD,MAAM,CAACqB,KAAD,EAAQC,QAAR,IAAoB,IAAAC,eAAA,EAAgC,IAAhC,CAA1B;EAEA,IAAAC,gBAAA,EAAU,MAAM;IACd,MAAMC,MAAM,GAAG3B,WAAW,CAACC,IAAD,EAAOC,OAAP,CAA1B;;IACAsB,QAAQ,CAACG,MAAD,CAAR;EACD,CAHD,EAGG,CAACzB,OAAD,EAAUD,IAAV,CAHH;;EAKA,IAAI,CAACsB,KAAL,EAAY;IACV,OAAO,IAAP;EACD;;EAED,IAAIK,KAAJ;;EAEA,QAAQ3B,IAAR;IACE,KAAK,OAAL;MACE2B,KAAK,gBAAG,6BAAC,2CAAD;QAAW,KAAK,EAAEL,KAAK,CAACtB,IAAxB;QAA8B,KAAK,EAAC;MAApC,EAAR;MACA;;IACF,KAAK,OAAL;MACE2B,KAAK,gBAAG,6BAAC,+BAAD;QAAW,KAAK,EAAEL,KAAK,CAACtB,IAAxB;QAA8B,KAAK,EAAC;MAApC,EAAR;MACA;;IACF,KAAK,WAAL;IACA;MACE2B,KAAK,gBAAG,6BAAC,iBAAD;QAAM,KAAK,EAAEL,KAAK,CAACL;MAAnB,GAA8BI,KAA9B,CAAR;EATJ;;EAYA,oBAAO,6BAAC,iBAAD;IAAM,KAAK,EAAEC,KAAK,CAACb;EAAnB,GAA0BkB,KAA1B,CAAP;AACD,CA3BD;;eA6BeP,I"}
@@ -3,6 +3,12 @@
3
3
  @value cm_positive_100 from colors;
4
4
  @value cm_negative_100 from colors;
5
5
  @value white from colors;
6
+ @value positive from colors;
7
+ @value negative from colors;
8
+ @value cm_negative_50 from colors;
9
+ @value cm_green_secondary_200 from colors;
10
+ @value cm_green_secondary_100 from colors;
11
+ @value cm_pink_50 from colors;
6
12
 
7
13
  .default {
8
14
  width: 32px;
@@ -62,4 +68,45 @@
62
68
  transform: scale(1.5);
63
69
  }
64
70
 
71
+ /* ----------------- CM bulk theme ------------------------- */
65
72
 
73
+
74
+ .valid {
75
+ opacity: 1;
76
+ width: 24px;
77
+ height: 24px;
78
+ background-color: cm_green_secondary_100;
79
+ }
80
+
81
+ .validIcon {
82
+ color: cm_green_secondary_200;
83
+ width: 12px;
84
+ height: 10px;
85
+ transition: transform 0.25s ease;
86
+ }
87
+
88
+ .invalid {
89
+ opacity: 1;
90
+ width: 24px;
91
+ height: 24px;
92
+ background-color: cm_negative_50;
93
+ }
94
+
95
+ .invalidIcon {
96
+ color: cm_negative_100;
97
+ width: 10px;
98
+ height: 10px;
99
+ transition: color 0.25s ease;
100
+ }
101
+
102
+ .errorsNumber {
103
+ opacity: 1;
104
+ width: 24px;
105
+ height: 24px;
106
+ background-color: cm_pink_50;
107
+ color: cm_negative_100;
108
+ font-family: 'Gilroy';
109
+ font-style: normal;
110
+ font-weight: 600;
111
+ font-size: 14px;
112
+ }
@@ -5,12 +5,12 @@ declare const propTypes: {
5
5
  value: PropTypes.Requireable<string>;
6
6
  };
7
7
  export default propTypes;
8
- export declare type HeaderStepItemProps = {
9
- current: boolean;
10
- icon: 'no-answer' | 'right' | 'wrong';
11
- value: string;
8
+ export declare type StatusItemProps = {
9
+ current?: boolean;
10
+ icon: 'no-answer' | 'right' | 'wrong' | 'valid' | 'invalid' | 'errors-number';
11
+ value?: string;
12
12
  };
13
13
  export declare type Fixture = {
14
- props: HeaderStepItemProps;
14
+ props: StatusItemProps;
15
15
  };
16
16
  //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/atom/status-item/types.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,QAAA,MAAM,SAAS;;;;CAId,CAAC;AAEF,eAAe,SAAS,CAAC;AAEzB,oBAAY,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,eAAe,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,OAAO,GAAG;IACpB,KAAK,EAAE,eAAe,CAAC;CACxB,CAAC"}
@@ -9,7 +9,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
9
9
 
10
10
  const propTypes = {
11
11
  current: _propTypes.default.bool,
12
- icon: _propTypes.default.oneOf(['no-answer', 'right', 'wrong']),
12
+ icon: _propTypes.default.oneOf(['no-answer', 'right', 'wrong', 'valid', 'invalid', 'errors-number']),
13
13
  value: _propTypes.default.string
14
14
  };
15
15
  var _default = propTypes;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","names":["propTypes","current","PropTypes","bool","icon","oneOf","value","string"],"sources":["../../../src/atom/status-item/types.ts"],"sourcesContent":["import PropTypes from 'prop-types';\n\nconst propTypes = {\n current: PropTypes.bool,\n icon: PropTypes.oneOf(['no-answer', 'right', 'wrong', 'valid', 'invalid', 'errors-number']),\n value: PropTypes.string\n};\n\nexport default propTypes;\n\nexport type StatusItemProps = {\n current?: boolean;\n icon: 'no-answer' | 'right' | 'wrong' | 'valid' | 'invalid' | 'errors-number';\n value?: string;\n};\n\nexport type Fixture = {\n props: StatusItemProps;\n};\n"],"mappings":";;;;;AAAA;;;;AAEA,MAAMA,SAAS,GAAG;EAChBC,OAAO,EAAEC,kBAAA,CAAUC,IADH;EAEhBC,IAAI,EAAEF,kBAAA,CAAUG,KAAV,CAAgB,CAAC,WAAD,EAAc,OAAd,EAAuB,OAAvB,EAAgC,OAAhC,EAAyC,SAAzC,EAAoD,eAApD,CAAhB,CAFU;EAGhBC,KAAK,EAAEJ,kBAAA,CAAUK;AAHD,CAAlB;eAMeP,S"}