@widergy/energy-ui 3.7.5 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,25 @@
1
+ # [3.9.0](https://github.com/widergy/energy-ui/compare/v3.8.0...v3.9.0) (2024-06-06)
2
+
3
+
4
+ ### Features
5
+
6
+ * add wizard to workflow component ([#450](https://github.com/widergy/energy-ui/issues/450)) ([943896d](https://github.com/widergy/energy-ui/commit/943896d4d36c22574d06274da3d1b270d215f75a))
7
+
8
+ # [3.8.0](https://github.com/widergy/energy-ui/compare/v3.7.5...v3.8.0) (2024-06-06)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * remove onboarding in example ([8b531c0](https://github.com/widergy/energy-ui/commit/8b531c097c00ff4c54f87cfeed20c532d91e48c4))
14
+ * remove prev button for first step ([e7f59b4](https://github.com/widergy/energy-ui/commit/e7f59b4fca9f63425f509df0b1f8e5fcb5b9f014))
15
+ * some fixes ([2b642de](https://github.com/widergy/energy-ui/commit/2b642de2b9c4eb79cbc906182ba837d80b6e4077))
16
+ * some fixes ([3c86c20](https://github.com/widergy/energy-ui/commit/3c86c203b5515b6151b13cf5defef499f94256b4))
17
+
18
+
19
+ ### Features
20
+
21
+ * add utonboarding ([8eff9a7](https://github.com/widergy/energy-ui/commit/8eff9a70ad6286954bae20bdc4913f06efed7591))
22
+
1
23
  ## [3.7.5](https://github.com/widergy/energy-ui/compare/v3.7.4...v3.7.5) (2024-06-05)
2
24
 
3
25
 
@@ -0,0 +1,44 @@
1
+ # UTOnboarding
2
+
3
+ ### Description
4
+
5
+ Onboarding component.
6
+
7
+ ### Variants
8
+
9
+ - Default: variant = 'dark'
10
+ - Information: variant = 'information'
11
+ - Light: variant = 'light'
12
+
13
+ ### Props
14
+
15
+ - handleOnClose: function --> optional, se ejecutara cuando se cierra el onboarding
16
+ - handleComplete: function --> optional, se ejecutara cuando se completa el onboarding
17
+ - options: object | Espera recibir un objeto propio de la libreria de intro react js. Ejemplo de valores posibles
18
+ - nextLabel: string --> Next button label
19
+ - prevLabel: string --> Previous button label
20
+ - options: objeto --> Ejemplo de lo que se puede pasar:
21
+ {{ positionPrecedence: ['right'] }} (posicion del onboarding)
22
+ - steps: array of object --> requerido
23
+
24
+ - Cada objeto espera recibir:
25
+
26
+ ` {
27
+ title: '¡Bienvenido a tu oficina virtual!',
28
+ element: '.step_1',
29
+ image: '',
30
+ description:
31
+ 'Inicia el tutorial de introducción y descubrí todas las gestiones que podés realizar en tus cuentas.'
32
+ }`
33
+
34
+ - title: Titulo del onboarding
35
+ - element: string | CSS selector to use for the step
36
+ - position: string | Position of the tooltip
37
+ - intro : string | The tooltip content
38
+ - description: string | si quiero agregar una imagen voy a tener que pasarle una description en lugar del intro
39
+ - image: imagen de tipo png
40
+ - vectorImage: imagen de tipo svg
41
+ - hideFooter: bool | oculta los botones y los steps
42
+ - highlightClass: CSS class of the helperLayer.
43
+ - tooltipClass: CSS class of the tooltip
44
+ - isSuggestion: bool | si es el primer paso y no quiero que tenga tooltip puedo dejarlo en true
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ require("intro.js/introjs.css");
9
+ var _propTypes = require("prop-types");
10
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const OnboardingStep = _ref => {
13
+ let {
14
+ hideFooter = false,
15
+ currentStep,
16
+ step,
17
+ totalSteps
18
+ } = _ref;
19
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("h3", {
20
+ className: _stylesModule.default.description
21
+ }, step.description), step.vectorImage ? /*#__PURE__*/_react.default.createElement(step.vectorImage, {
22
+ alt: "",
23
+ className: _stylesModule.default.wizardImage
24
+ }) : step.image && /*#__PURE__*/_react.default.createElement("img", {
25
+ alt: "",
26
+ className: _stylesModule.default.wizardImage,
27
+ src: step.image
28
+ }), !hideFooter && /*#__PURE__*/_react.default.createElement("div", {
29
+ className: _stylesModule.default.footer
30
+ }, /*#__PURE__*/_react.default.createElement("h3", {
31
+ className: _stylesModule.default.counterSteps
32
+ }, currentStep + 1, " de ", totalSteps)));
33
+ };
34
+ OnboardingStep.propTypes = {
35
+ currentStep: _propTypes.number,
36
+ hideFooter: _propTypes.bool,
37
+ step: _propTypes.object,
38
+ totalSteps: _propTypes.number
39
+ };
40
+ var _default = exports.default = OnboardingStep;
@@ -0,0 +1,55 @@
1
+ @import '../../../../scss/variables/colors.module.scss';
2
+
3
+ .description {
4
+ padding: 0;
5
+ margin-top: 4px;
6
+ font-family: 'Inter', sans-serif;
7
+ font-weight: 400;
8
+ font-size: 14px;
9
+ line-height: 20px;
10
+ }
11
+
12
+ .counterSteps {
13
+ font-size: 12px;
14
+ padding: 0;
15
+ margin-top: 4px;
16
+ font-family: 'Inter', sans-serif;
17
+ font-weight: 400;
18
+ line-height: 20px;
19
+ align-self: center;
20
+ }
21
+
22
+ .footer {
23
+ display: flex;
24
+ margin-top: 16px;
25
+ justify-content: space-between;
26
+ align-items: center;
27
+ height: fit-content;
28
+ position: absolute;
29
+ }
30
+
31
+ .buttons {
32
+ padding: 4px 8px;
33
+ font-size: 14px;
34
+ font-family: 'Inter', sans-serif;
35
+ font-weight: 400;
36
+ line-height: 20px;
37
+ border-radius: 4px;
38
+ border: 0;
39
+ color: inherit;
40
+ }
41
+
42
+ .nextButton {
43
+ background-color: $white;
44
+ color: #091e42;
45
+ &:hover {
46
+ color: $white;
47
+ background-color: #091e42;
48
+ }
49
+ }
50
+
51
+ .wizardImage {
52
+ max-height: 180px;
53
+ max-width: 264px;
54
+ object-fit: cover;
55
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VARIANTS = exports.START_LABEL = exports.PREV_LABEL = exports.NEXT_LABEL = exports.DONE_LABEL = exports.DEFAULT_PROPS = void 0;
7
+ const VARIANTS = exports.VARIANTS = {
8
+ dark: 'dark',
9
+ information: 'information',
10
+ light: 'light'
11
+ };
12
+ const DEFAULT_PROPS = exports.DEFAULT_PROPS = {
13
+ variant: 'dark'
14
+ };
15
+ const DONE_LABEL = exports.DONE_LABEL = 'Finalizar';
16
+ const NEXT_LABEL = exports.NEXT_LABEL = 'Siguiente';
17
+ const PREV_LABEL = exports.PREV_LABEL = 'Atrás';
18
+ const START_LABEL = exports.START_LABEL = 'Comenzar';
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _intro = require("intro.js-react");
9
+ require("intro.js/introjs.css");
10
+ var _propTypes = require("prop-types");
11
+ var _classesUtils = require("../../utils/classesUtils");
12
+ var _WithTheme = _interopRequireDefault(require("../WithTheme"));
13
+ var _OnboardingStep = _interopRequireDefault(require("./components/OnboardingStep"));
14
+ var _theme = require("./theme");
15
+ var _constants = require("./constants");
16
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ const UTOnboarding = _ref => {
21
+ var _steps$currentStep$is, _steps$currentStep, _steps$currentStep$hi, _steps$currentStep2, _steps$currentStep3, _steps$currentStep4;
22
+ let {
23
+ classes: themeClasses,
24
+ classNames,
25
+ handleComplete,
26
+ handleOnClose,
27
+ options,
28
+ steps,
29
+ variant
30
+ } = _ref;
31
+ const classes = (0, _react.useMemo)(() => (0, _classesUtils.mergeClasses)(themeClasses, classNames), [themeClasses, classNames]) || {};
32
+ const [currentStep, setCurrentStep] = (0, _react.useState)(0);
33
+ const [loading, setLoading] = (0, _react.useState)(true);
34
+ const [enabled, setEnabled] = (0, _react.useState)(true);
35
+ const currentStepIsSuggestion = (_steps$currentStep$is = (_steps$currentStep = steps[currentStep]) === null || _steps$currentStep === void 0 ? void 0 : _steps$currentStep.isSuggestion) !== null && _steps$currentStep$is !== void 0 ? _steps$currentStep$is : false;
36
+ const hideFooter = (_steps$currentStep$hi = (_steps$currentStep2 = steps[currentStep]) === null || _steps$currentStep2 === void 0 ? void 0 : _steps$currentStep2.hideFooter) !== null && _steps$currentStep$hi !== void 0 ? _steps$currentStep$hi : false;
37
+ const totalSteps = steps.length;
38
+ (0, _react.useEffect)(() => {
39
+ setLoading(false);
40
+ }, [steps]);
41
+ (0, _react.useEffect)(() => {
42
+ const referenceLayer = document.querySelector('.introjs-tooltipReferenceLayer');
43
+ if (currentStepIsSuggestion) {
44
+ var _referenceLayer$class;
45
+ referenceLayer === null || referenceLayer === void 0 || (_referenceLayer$class = referenceLayer.classList) === null || _referenceLayer$class === void 0 || _referenceLayer$class.add(_stylesModule.default.suggestionReference);
46
+ } else {
47
+ var _referenceLayer$class2;
48
+ referenceLayer === null || referenceLayer === void 0 || (_referenceLayer$class2 = referenceLayer.classList) === null || _referenceLayer$class2 === void 0 || _referenceLayer$class2.remove(_stylesModule.default.suggestionReference);
49
+ }
50
+ const footer = document.querySelector('.introjs-tooltipbuttons');
51
+ if (hideFooter) {
52
+ var _footer$classList;
53
+ footer === null || footer === void 0 || (_footer$classList = footer.classList) === null || _footer$classList === void 0 || _footer$classList.add(_stylesModule.default.displayNone);
54
+ } else {
55
+ var _footer$classList2;
56
+ footer === null || footer === void 0 || (_footer$classList2 = footer.classList) === null || _footer$classList2 === void 0 || _footer$classList2.remove(_stylesModule.default.displayNone);
57
+ }
58
+ });
59
+ return loading ? null : /*#__PURE__*/_react.default.createElement(_intro.Steps, {
60
+ enabled: enabled,
61
+ steps: steps.map((step, index) => ({
62
+ ...step,
63
+ intro: step.description ? /*#__PURE__*/_react.default.createElement(_OnboardingStep.default, {
64
+ key: step,
65
+ step: step,
66
+ currentStep: index,
67
+ totalSteps: totalSteps,
68
+ classes: classes,
69
+ hideFooter: step === null || step === void 0 ? void 0 : step.hideFooter,
70
+ buttonPreviousTitle: step === null || step === void 0 ? void 0 : step.buttonPreviousTitle,
71
+ nextStep: step === null || step === void 0 ? void 0 : step.nextStep,
72
+ variant: variant
73
+ }) : step.intro
74
+ })),
75
+ initialStep: 0,
76
+ onExit: handleOnClose || (() => setEnabled(false)),
77
+ onBeforeChange: nextStep => {
78
+ var _steps$nextStep;
79
+ const overlay = document.querySelector('.introjs-overlay');
80
+ setCurrentStep(nextStep);
81
+ if ((_steps$nextStep = steps[nextStep]) !== null && _steps$nextStep !== void 0 && _steps$nextStep.isSuggestion) {
82
+ var _overlay$classList;
83
+ overlay === null || overlay === void 0 || (_overlay$classList = overlay.classList) === null || _overlay$classList === void 0 || _overlay$classList.add(_stylesModule.default.suggestionOverlay);
84
+ } else {
85
+ var _overlay$classList2;
86
+ overlay === null || overlay === void 0 || (_overlay$classList2 = overlay.classList) === null || _overlay$classList2 === void 0 || _overlay$classList2.remove(_stylesModule.default.suggestionOverlay);
87
+ }
88
+ },
89
+ onComplete: handleComplete || {},
90
+ options: {
91
+ buttonClass: "".concat(_stylesModule.default.button, " ").concat(classes.buttons),
92
+ doneLabel: _constants.DONE_LABEL,
93
+ exitOnEsc: false,
94
+ exitOnOverlayClick: false,
95
+ helperElementPadding: 20,
96
+ hidePrev: true,
97
+ nextLabel: currentStep === 0 ? _constants.START_LABEL : _constants.NEXT_LABEL,
98
+ prevLabel: _constants.PREV_LABEL,
99
+ showBullets: false,
100
+ showProgress: false,
101
+ tooltipClass: "".concat(_stylesModule.default.tooltipContainer, " ").concat(classes.onboardingContainer),
102
+ highlightClass: (_steps$currentStep3 = steps[currentStep]) !== null && _steps$currentStep3 !== void 0 && _steps$currentStep3.isSuggestion ? _stylesModule.default.suggestionHighlight : _stylesModule.default.highlight,
103
+ ...((_steps$currentStep4 = steps[currentStep]) !== null && _steps$currentStep4 !== void 0 && _steps$currentStep4.hideFooter ? {
104
+ hidePrev: true,
105
+ hideNext: true,
106
+ showProgress: false,
107
+ showButtons: false
108
+ } : null),
109
+ ...options
110
+ }
111
+ });
112
+ };
113
+ UTOnboarding.propTypes = {
114
+ classes: (0, _propTypes.objectOf)(_propTypes.string),
115
+ classNames: (0, _propTypes.objectOf)(_propTypes.string),
116
+ handleComplete: _propTypes.func,
117
+ handleOnClose: _propTypes.func,
118
+ options: _propTypes.object,
119
+ steps: _propTypes.array,
120
+ variant: _propTypes.string
121
+ };
122
+ var _default = exports.default = (0, _WithTheme.default)(_theme.retrieveStyle)(UTOnboarding);
@@ -0,0 +1,162 @@
1
+ @import '../../scss/variables/colors.module.scss';
2
+ $intro-js-disabled-button-class: 'introjs-disabled';
3
+ $introjs-progress: 'introjs-progress';
4
+ $introjs-progressbar: 'introjs-progressbar';
5
+ $introjs-skipbutton: 'introjs-skipbutton';
6
+ $introjs-arrow: 'introjs-arrow';
7
+ $introjs-tooltip-header: 'introjs-tooltip-header';
8
+ $introjs-tooltiptext: 'introjs-tooltiptext';
9
+ $introjs-tooltip-title: 'introjs-tooltip-title';
10
+ $introjs-nextbutton: 'introjs-nextbutton';
11
+ $introjs-prevbutton: 'introjs-prevbutton';
12
+ $introjs-overlay: 'introjs-overlay';
13
+ $introjs-tooltip-reference-layer: 'introjs-tooltipReferenceLayer';
14
+ $introjs-helper-layer: 'introjs-helperLayer';
15
+ $introjs-show-element: 'introjs-showElement';
16
+ $introjs-tooltipbuttons: 'introjs-tooltipbuttons';
17
+
18
+ %tooltipContainer {
19
+ box-sizing: border-box;
20
+ color: $white;
21
+ margin: 0;
22
+ padding: 16px !important;
23
+ width: 296px;
24
+ z-index: 1290;
25
+ [class*='#{$introjs-skipbutton}'] {
26
+ color: $white;
27
+ font-size: 30px;
28
+ font-weight: 400;
29
+ position: relative;
30
+ top: -10px;
31
+ &:hover {
32
+ background-color: var(--actionAccent03) !important;
33
+ }
34
+ }
35
+ }
36
+
37
+ @font-face {
38
+ font-family: 'Inter';
39
+ font-style: normal;
40
+ font-weight: 700;
41
+ src: url('https://fonts.gstatic.com/s/inter/v8/UcCO3FwrqlXbO-JbATNBXYFF.woff2') format('woff2');
42
+ unicode-range: U+0000-00FF, U+1F1E6-1F1FF;
43
+ }
44
+
45
+ .button {
46
+ background-color: var(--actionAccent04) !important;
47
+ border-radius: 4px;
48
+ box-shadow: none;
49
+ color: var(--actionNegative04) !important;
50
+ cursor: pointer;
51
+ font-family: 'Inter', sans-serif;
52
+ font-size: 14px;
53
+ font-weight: 500;
54
+ line-height: 1.375rem;
55
+ padding: 4px 8px;
56
+ transition:
57
+ background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
58
+ border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
59
+ box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
60
+ color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
61
+ opacity 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
62
+ }
63
+
64
+ .button:hover {
65
+ opacity: 0.5;
66
+ }
67
+
68
+ [class*='#{$intro-js-disabled-button-class}'] {
69
+ border-color: none;
70
+ cursor: auto;
71
+ }
72
+ [class*='#{$introjs-tooltip-header}'] {
73
+ display: flex;
74
+ padding: 0;
75
+ }
76
+
77
+ [class*='#{$introjs-tooltiptext}'] {
78
+ padding: 0;
79
+ }
80
+
81
+ [class*='#{$introjs-tooltip-title}'] {
82
+ font-family: 'Inter', sans-serif;
83
+ font-size: 16px;
84
+ font-weight: 500;
85
+ }
86
+
87
+ [class*='#{$introjs-overlay}'] {
88
+ z-index: 1280;
89
+ }
90
+
91
+ [class*='#{$introjs-nextbutton}'] {
92
+ &:focus {
93
+ outline: none;
94
+ }
95
+ }
96
+
97
+ [class*='#{$introjs-tooltip-reference-layer}'] {
98
+ margin: 16px;
99
+ z-index: 1290;
100
+ }
101
+
102
+ [class*='#{$introjs-helper-layer}'] {
103
+ z-index: 1275;
104
+ }
105
+
106
+ [class*='#{$introjs-show-element}'] {
107
+ z-index: 1285 !important;
108
+ }
109
+
110
+ .suggestionHighlight {
111
+ box-shadow: none !important;
112
+ height: unset !important;
113
+ }
114
+
115
+ .suggestionOverlay {
116
+ display: none;
117
+ }
118
+
119
+ .tooltipSuggestionContainer {
120
+ @extend %tooltipContainer;
121
+ background-color: var(--actionNeutral05);
122
+ color: var(--light01);
123
+
124
+ [class*='#{$introjs-skipbutton}'] {
125
+ border-radius: 4px;
126
+ color: var(--light01);
127
+ &:hover {
128
+ background-color: var(--actionAccent03) !important;
129
+ }
130
+ }
131
+ }
132
+ [class*='#{$introjs-arrow}'] {
133
+ border: none;
134
+ }
135
+ .suggestionReference {
136
+ height: unset !important;
137
+ }
138
+
139
+ .tooltipContainer {
140
+ @extend %tooltipContainer;
141
+ }
142
+
143
+ .displayNone {
144
+ display: none !important;
145
+ }
146
+
147
+ [class*='#{$introjs-tooltipbuttons}'] {
148
+ border-top: none;
149
+ display: flex;
150
+ grid-gap: 8px;
151
+ justify-content: flex-end;
152
+ padding-top: 16px !important;
153
+ padding: 0;
154
+ }
155
+
156
+ .highlight {
157
+ border-radius: 0;
158
+ border: 4px #17f455 solid;
159
+ box-shadow:
160
+ #17f455 0px 0px 1px 2px,
161
+ rgba(33, 33, 33, 0.5) 0px 0px 0px 5000px !important;
162
+ }
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.validateProps = exports.retrieveStyle = void 0;
7
+ var _constants = require("./constants");
8
+ const getBackgroundColor = _ref => {
9
+ let {
10
+ theme,
11
+ variant
12
+ } = _ref;
13
+ return variant !== _constants.VARIANTS.light ? theme.Palette[variant]['05'] : theme.Palette.light['01'];
14
+ };
15
+ const getLabelTheme = _ref2 => {
16
+ let {
17
+ theme,
18
+ variant
19
+ } = _ref2;
20
+ return {
21
+ [_constants.VARIANTS.dark]: theme.Palette.light['01'],
22
+ [_constants.VARIANTS.information]: theme.Palette.light['01'],
23
+ [_constants.VARIANTS.light]: theme.Palette.dark['05']
24
+ }[variant];
25
+ };
26
+ const getButtonTheme = _ref3 => {
27
+ let {
28
+ theme,
29
+ variant
30
+ } = _ref3;
31
+ return {
32
+ [_constants.VARIANTS.dark]: theme.Palette.actions.negative['04'],
33
+ [_constants.VARIANTS.information]: theme.Palette.actions.negative['04'],
34
+ [_constants.VARIANTS.light]: theme.Palette.actions.accent['04']
35
+ }[variant];
36
+ };
37
+ const getButtonNextTextTheme = _ref4 => {
38
+ let {
39
+ theme,
40
+ variant
41
+ } = _ref4;
42
+ return {
43
+ [_constants.VARIANTS.dark]: theme.Palette.actions.neutral['05'],
44
+ [_constants.VARIANTS.information]: theme.Palette.actions.neutral['05'],
45
+ [_constants.VARIANTS.light]: theme.Palette.actions.negative['05']
46
+ }[variant];
47
+ };
48
+ const validateProps = _ref5 => {
49
+ let {
50
+ variant
51
+ } = _ref5;
52
+ return {
53
+ variant: _constants.VARIANTS[variant] || _constants.VARIANTS[_constants.DEFAULT_PROPS.variant]
54
+ };
55
+ };
56
+ exports.validateProps = validateProps;
57
+ const retrieveStyle = _ref6 => {
58
+ let {
59
+ theme,
60
+ variant
61
+ } = _ref6;
62
+ return {
63
+ onboardingContainer: {
64
+ backgroundColor: getBackgroundColor({
65
+ theme,
66
+ ...validateProps({
67
+ variant
68
+ })
69
+ }),
70
+ color: getLabelTheme({
71
+ theme,
72
+ ...validateProps({
73
+ variant
74
+ })
75
+ }),
76
+ '& .introjs-skipbutton': {
77
+ color: getLabelTheme({
78
+ theme,
79
+ ...validateProps({
80
+ variant
81
+ })
82
+ })
83
+ },
84
+ '& .introjs-nextbutton': {
85
+ backgroundColor: "".concat(getButtonTheme({
86
+ theme,
87
+ ...validateProps({
88
+ variant
89
+ })
90
+ }), " !important"),
91
+ color: "".concat(getButtonNextTextTheme({
92
+ theme,
93
+ ...validateProps({
94
+ variant
95
+ })
96
+ }), " !important")
97
+ }
98
+ }
99
+ };
100
+ };
101
+ exports.retrieveStyle = retrieveStyle;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _propTypes = require("prop-types");
9
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ const StepImage = _ref => {
12
+ let {
13
+ Image
14
+ } = _ref;
15
+ return typeof Image === 'string' ? /*#__PURE__*/_react.default.createElement("img", {
16
+ alt: "",
17
+ className: _stylesModule.default.image,
18
+ src: Image
19
+ }) : /*#__PURE__*/_react.default.createElement(Image, {
20
+ className: _stylesModule.default.image
21
+ });
22
+ };
23
+ StepImage.propTypes = {
24
+ Image: (0, _propTypes.oneOfType)([_propTypes.string, _propTypes.elementType])
25
+ };
26
+ var _default = exports.default = StepImage;
@@ -0,0 +1,6 @@
1
+ .image {
2
+ align-self: center;
3
+ display: flex;
4
+ max-height: 180px;
5
+ max-width: 264px;
6
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VARIANTS = exports.DISABLE_TEXT = exports.DEFAULT_PROPS = void 0;
7
+ const DISABLE_TEXT = exports.DISABLE_TEXT = 'No volver a mostrar';
8
+ const VARIANTS = exports.VARIANTS = {
9
+ dark: 'dark',
10
+ information: 'information',
11
+ light: 'light'
12
+ };
13
+ const DEFAULT_PROPS = exports.DEFAULT_PROPS = {
14
+ variant: 'dark'
15
+ };
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = require("prop-types");
9
+ require("react-perfect-scrollbar/dist/css/styles.css");
10
+ var _classesUtils = require("../../utils/classesUtils");
11
+ var _WithTheme = _interopRequireDefault(require("../WithTheme"));
12
+ var _UTButton = _interopRequireDefault(require("../UTButton"));
13
+ var _UTLabel = _interopRequireDefault(require("../UTLabel"));
14
+ var _StepImage = _interopRequireDefault(require("./components/StepImage"));
15
+ var _theme = require("./theme");
16
+ var _utils = require("./utils");
17
+ var _constants = require("./constants");
18
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ const UTWizard = _ref => {
23
+ let {
24
+ classes: themeClasses,
25
+ classNames,
26
+ description,
27
+ enabled,
28
+ handleOnClick,
29
+ image,
30
+ title,
31
+ variant
32
+ } = _ref;
33
+ const classes = (0, _react.useMemo)(() => (0, _classesUtils.mergeClasses)(themeClasses, classNames), [classNames]);
34
+ const [isOpen, setIsOpen] = (0, _react.useState)(false);
35
+ const stepEnabled = enabled && !!(description || image || title);
36
+ return stepEnabled && (isOpen ? /*#__PURE__*/_react.default.createElement("div", {
37
+ className: "".concat(classes.container, " ").concat(_stylesModule.default.container)
38
+ }, /*#__PURE__*/_react.default.createElement("div", {
39
+ className: _stylesModule.default.content
40
+ }, /*#__PURE__*/_react.default.createElement("div", {
41
+ className: _stylesModule.default.header
42
+ }, /*#__PURE__*/_react.default.createElement("div", {
43
+ className: _stylesModule.default.title
44
+ }, /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
45
+ weight: "medium",
46
+ colorTheme: (0, _utils.getLabelTheme)(variant),
47
+ withMarkdown: true
48
+ }, title), /*#__PURE__*/_react.default.createElement(_UTButton.default, {
49
+ Icon: "IconChevronDown",
50
+ onClick: () => setIsOpen(false),
51
+ size: "small",
52
+ variant: "text",
53
+ colorTheme: (0, _utils.getButtonTheme)(variant)
54
+ })), /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
55
+ variant: "small",
56
+ colorTheme: (0, _utils.getLabelTheme)(variant),
57
+ withMarkdown: true
58
+ }, description)), image && /*#__PURE__*/_react.default.createElement(_StepImage.default, {
59
+ Image: image
60
+ }), /*#__PURE__*/_react.default.createElement("div", {
61
+ className: _stylesModule.default.footer
62
+ }, /*#__PURE__*/_react.default.createElement(_UTButton.default, {
63
+ variant: "text",
64
+ onClick: handleOnClick,
65
+ size: "small",
66
+ colorTheme: (0, _utils.getButtonTheme)(variant),
67
+ weight: "medium"
68
+ }, _constants.DISABLE_TEXT)))) : /*#__PURE__*/_react.default.createElement("div", {
69
+ className: "".concat(classes.buttonContainer, " ").concat(_stylesModule.default.buttonContainer)
70
+ }, /*#__PURE__*/_react.default.createElement(_UTButton.default, {
71
+ size: "small",
72
+ classNames: {
73
+ root: "".concat(_stylesModule.default.button, " ").concat(classes.buttonStyle)
74
+ },
75
+ onClick: () => setIsOpen(true),
76
+ colorTheme: (0, _utils.getButtonMinimizedTheme)(variant),
77
+ Icon: "IconQuestionMark"
78
+ })));
79
+ };
80
+ UTWizard.propTypes = {
81
+ classes: (0, _propTypes.objectOf)(_propTypes.string),
82
+ classNames: (0, _propTypes.objectOf)(_propTypes.string),
83
+ description: _propTypes.string,
84
+ enabled: _propTypes.bool,
85
+ handleOnClick: _propTypes.func,
86
+ image: (0, _propTypes.oneOfType)([_propTypes.string, _propTypes.elementType]),
87
+ title: _propTypes.string,
88
+ variant: _propTypes.string
89
+ };
90
+ var _default = exports.default = (0, _WithTheme.default)(_theme.retrieveStyle)(UTWizard);
@@ -0,0 +1,54 @@
1
+ .container {
2
+ border-radius: 4px;
3
+ bottom: calc(100% + 16px);
4
+ display: flex;
5
+ height: fit-content;
6
+ max-width: 296px;
7
+ padding: 16px;
8
+ position: absolute;
9
+ right: 16px;
10
+ z-index: 9999;
11
+ }
12
+
13
+ .content {
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: 16px;
17
+ justify-content: center;
18
+ max-width: 264px;
19
+ width: 100%;
20
+ }
21
+
22
+ .header {
23
+ display: flex;
24
+ flex-direction: column;
25
+ gap: 4px;
26
+ width: 264px;
27
+ }
28
+
29
+ .footer {
30
+ display: flex;
31
+ justify-content: flex-end;
32
+ width: 100%;
33
+ }
34
+
35
+ .title {
36
+ align-items: center;
37
+ display: flex;
38
+ flex-direction: row;
39
+ justify-content: space-between;
40
+ }
41
+
42
+ .buttonContainer {
43
+ bottom: calc(100% + 16px);
44
+ display: flex;
45
+ position: absolute;
46
+ right: 16px;
47
+ z-index: 9999;
48
+ }
49
+
50
+ .button {
51
+ border-radius: 50% !important;
52
+ height: 48px;
53
+ width: 48px;
54
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.retrieveStyle = void 0;
7
+ var _constants = require("./constants");
8
+ var _utils = require("./utils");
9
+ const getBackgroundColor = _ref => {
10
+ let {
11
+ theme,
12
+ variant
13
+ } = _ref;
14
+ return variant === _constants.VARIANTS.light ? theme.Palette.light['01'] : theme.Palette[variant]['05'];
15
+ };
16
+ const retrieveStyle = _ref2 => {
17
+ let {
18
+ theme,
19
+ variant
20
+ } = _ref2;
21
+ const variantTheme = (0, _utils.getVariant)(variant);
22
+ return {
23
+ container: {
24
+ backgroundColor: getBackgroundColor({
25
+ theme,
26
+ variant: variantTheme
27
+ })
28
+ },
29
+ buttonStyle: {
30
+ backgroundColor: "".concat(getBackgroundColor({
31
+ theme,
32
+ variant: variantTheme
33
+ }), " !important")
34
+ }
35
+ };
36
+ };
37
+ exports.retrieveStyle = retrieveStyle;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getVariant = exports.getLabelTheme = exports.getButtonTheme = exports.getButtonMinimizedTheme = void 0;
7
+ var _constants = require("./constants");
8
+ const getVariant = variant => _constants.VARIANTS[variant] || _constants.VARIANTS[_constants.DEFAULT_PROPS.variant];
9
+ exports.getVariant = getVariant;
10
+ const getLabelTheme = variant => ({
11
+ [_constants.VARIANTS.dark]: 'light',
12
+ [_constants.VARIANTS.information]: 'light',
13
+ [_constants.VARIANTS.light]: 'dark'
14
+ })[getVariant(variant)];
15
+ exports.getLabelTheme = getLabelTheme;
16
+ const getButtonTheme = variant => ({
17
+ [_constants.VARIANTS.dark]: 'negative',
18
+ [_constants.VARIANTS.information]: 'negative',
19
+ [_constants.VARIANTS.light]: 'dark'
20
+ })[getVariant(variant)];
21
+ exports.getButtonTheme = getButtonTheme;
22
+ const getButtonMinimizedTheme = variant => ({
23
+ [_constants.VARIANTS.dark]: 'secondary',
24
+ [_constants.VARIANTS.information]: 'secondary',
25
+ [_constants.VARIANTS.light]: 'negative'
26
+ })[getVariant(variant)];
27
+ exports.getButtonMinimizedTheme = getButtonMinimizedTheme;
@@ -12,6 +12,7 @@ var _UTLabel = _interopRequireDefault(require("../../../UTLabel"));
12
12
  var _UTProgressBar = _interopRequireDefault(require("../../../UTProgressBar"));
13
13
  var _WithTheme = _interopRequireDefault(require("../../../WithTheme"));
14
14
  var _classesUtils = require("../../../../utils/classesUtils");
15
+ var _UTWizard = _interopRequireDefault(require("../../../UTWizard"));
15
16
  var _ActionButton = _interopRequireDefault(require("./components/ActionButton"));
16
17
  var _constants = require("./constants");
17
18
  var _types = require("./types");
@@ -21,6 +22,7 @@ var _usePrevious = require("./hooks/use-previous");
21
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
23
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
24
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
24
26
  const UTWorkflowContainer = _ref => {
25
27
  let {
26
28
  backButton,
@@ -39,7 +41,8 @@ const UTWorkflowContainer = _ref => {
39
41
  subtitle,
40
42
  title,
41
43
  TitleIcon,
42
- withIcon = false
44
+ withIcon = false,
45
+ wizardConfig = {}
43
46
  } = _ref;
44
47
  (0, _react.useEffect)(() => () => onExit && onExit(), []);
45
48
  const classes = (0, _react.useMemo)(() => (0, _classesUtils.mergeClasses)(themeClasses, classNames), [classNames]);
@@ -104,7 +107,12 @@ const UTWorkflowContainer = _ref => {
104
107
  className: _stylesModule.default.subtitle,
105
108
  colorTheme: "gray",
106
109
  withMarkdown: true
107
- }, subtitle)), children)));
110
+ }, subtitle)), children), /*#__PURE__*/_react.default.createElement(_UTWizard.default, _extends({
111
+ classNames: {
112
+ container: _stylesModule.default.wizardContainer,
113
+ buttonContainer: _stylesModule.default.wizardButtonContainer
114
+ }
115
+ }, wizardConfig))));
108
116
  };
109
117
  UTWorkflowContainer.propTypes = {
110
118
  backButton: _types.buttonTypes,
@@ -123,6 +131,13 @@ UTWorkflowContainer.propTypes = {
123
131
  subtitle: _propTypes.string,
124
132
  title: _propTypes.string,
125
133
  TitleIcon: _propTypes.element,
126
- withIcon: _propTypes.bool
134
+ withIcon: _propTypes.bool,
135
+ wizardConfig: (0, _propTypes.shape)({
136
+ description: _propTypes.string,
137
+ enabled: _propTypes.bool,
138
+ handleOnClick: _propTypes.func,
139
+ title: _propTypes.string,
140
+ variant: _propTypes.string
141
+ })
127
142
  };
128
143
  var _default = exports.default = (0, _WithTheme.default)(_theme.retrieveStyle)(UTWorkflowContainer);
@@ -33,3 +33,11 @@
33
33
  .hidden {
34
34
  display: none;
35
35
  }
36
+
37
+ .wizardButtonContainer {
38
+ bottom: 16px;
39
+ }
40
+
41
+ .wizardContainer {
42
+ bottom: 16px;
43
+ }
@@ -13,6 +13,7 @@ var _UTHeader = _interopRequireDefault(require("../../../UTHeader"));
13
13
  var _UTStepper = _interopRequireDefault(require("../../../UTStepper"));
14
14
  var _UTCheckbox = _interopRequireDefault(require("../../../UTCheckbox"));
15
15
  var _useScreenSize = require("../../../../utils/useScreenSize");
16
+ var _UTWizard = _interopRequireDefault(require("../../../UTWizard"));
16
17
  var _NavActions = _interopRequireDefault(require("./components/NavActions"));
17
18
  var _types = require("./types");
18
19
  var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
@@ -46,7 +47,8 @@ const UTWorkflowContainer = _ref => {
46
47
  title,
47
48
  variant = _constants.VARIANTS.DEFAULT,
48
49
  withIcon = false,
49
- withStepperPadding = true
50
+ withStepperPadding = true,
51
+ wizardConfig = {}
50
52
  } = _ref;
51
53
  (0, _react.useEffect)(() => () => onExit && onExit(), []);
52
54
  const classes = (0, _react.useMemo)(() => (0, _classesUtils.mergeClasses)(themeClasses, classNames), [classNames]);
@@ -82,7 +84,9 @@ const UTWorkflowContainer = _ref => {
82
84
  className: "".concat(_stylesModule.default.childrenContainer, " ").concat(classes.childrenContainer, " ").concat(variant === _constants.VARIANTS.FULL_WIDTH && "".concat(_stylesModule.default.childrenContainerFullWidth, " ").concat(classes.childrenContainerFullWidth))
83
85
  }, /*#__PURE__*/_react.default.createElement("div", {
84
86
  className: "".concat(_constants.childrenContentStyle[variant] || _stylesModule.default.childrenContent, " ").concat(classes.childrenContent)
85
- }, children))), !isNavHidden && /*#__PURE__*/_react.default.createElement("div", {
87
+ }, children))), /*#__PURE__*/_react.default.createElement("div", {
88
+ className: _stylesModule.default.footer
89
+ }, /*#__PURE__*/_react.default.createElement(_UTWizard.default, wizardConfig), !isNavHidden && /*#__PURE__*/_react.default.createElement("div", {
86
90
  className: "".concat(classes.bottomNav, " ").concat(_stylesModule.default.bottomNav)
87
91
  }, checkbox && isMobileOrTablet && /*#__PURE__*/_react.default.createElement("div", {
88
92
  className: _stylesModule.default.mobileCheckboxContainer
@@ -103,7 +107,7 @@ const UTWorkflowContainer = _ref => {
103
107
  primaryAction: primaryAction,
104
108
  secondaryAction: secondaryAction,
105
109
  withIcon: withIcon
106
- })));
110
+ }))));
107
111
  };
108
112
  UTWorkflowContainer.propTypes = {
109
113
  backButton: _types.buttonTypes,
@@ -134,6 +138,13 @@ UTWorkflowContainer.propTypes = {
134
138
  title: _propTypes.string,
135
139
  variant: _propTypes.string,
136
140
  withIcon: _propTypes.bool,
137
- withStepperPadding: _propTypes.bool
141
+ withStepperPadding: _propTypes.bool,
142
+ wizardConfig: (0, _propTypes.shape)({
143
+ description: _propTypes.string,
144
+ enabled: _propTypes.bool,
145
+ handleOnClick: _propTypes.func,
146
+ title: _propTypes.string,
147
+ variant: _propTypes.string
148
+ })
138
149
  };
139
150
  var _default = exports.default = (0, _WithTheme.default)(_theme.retrieveStyle)(UTWorkflowContainer);
@@ -92,3 +92,9 @@
92
92
  .mobileCheckboxContainer {
93
93
  padding-left: 16px;
94
94
  }
95
+
96
+ .footer {
97
+ display: flex;
98
+ position: relative;
99
+ width: 100%;
100
+ }
package/dist/index.js CHANGED
@@ -207,6 +207,12 @@ Object.defineProperty(exports, "UTModal", {
207
207
  return _UTModal.default;
208
208
  }
209
209
  });
210
+ Object.defineProperty(exports, "UTOnboarding", {
211
+ enumerable: true,
212
+ get: function () {
213
+ return _UTOnboarding.default;
214
+ }
215
+ });
210
216
  Object.defineProperty(exports, "UTPagination", {
211
217
  enumerable: true,
212
218
  get: function () {
@@ -444,4 +450,5 @@ var _UTVirtualizedList = _interopRequireDefault(require("./components/UTVirtuali
444
450
  var _UTWorkflowContainer = _interopRequireDefault(require("./components/UTWorkflowContainer"));
445
451
  var _WithLoading = _interopRequireDefault(require("./components/WithLoading"));
446
452
  var _WithTouch = _interopRequireDefault(require("./components/WithTouch"));
453
+ var _UTOnboarding = _interopRequireDefault(require("./components/UTOnboarding"));
447
454
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@widergy/energy-ui",
3
- "version": "3.7.5",
3
+ "version": "3.9.0",
4
4
  "description": "Widergy Web Components",
5
5
  "author": "widergy",
6
6
  "license": "MIT",
@@ -39,6 +39,8 @@
39
39
  "d3": "^7.0.1",
40
40
  "dayjs": "^1.10.7",
41
41
  "emojilib": "^3.0.10",
42
+ "intro.js": "^7.2.0",
43
+ "intro.js-react": "0.7.1",
42
44
  "node-sass": "^8.0.0",
43
45
  "numeral": "^2.0.6",
44
46
  "object-hash": "^3.0.0",