@mvf/external-components 3.36.2 → 3.37.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.
Files changed (33) hide show
  1. package/Experiments/CRO-712/Atoms/ProgressBar/IComponentProps.d.ts +8 -0
  2. package/Experiments/CRO-712/Atoms/ProgressBar/IComponentProps.js +3 -0
  3. package/Experiments/CRO-712/Atoms/ProgressBar/IComponentProps.js.map +1 -0
  4. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.d.ts +7 -0
  5. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.js +42 -0
  6. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.js.map +1 -0
  7. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.test.d.ts +1 -0
  8. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.test.js +28 -0
  9. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.test.js.map +1 -0
  10. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.d.ts +5 -0
  11. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.js +28 -0
  12. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.js.map +1 -0
  13. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.test.d.ts +1 -0
  14. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.test.js +40 -0
  15. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.test.js.map +1 -0
  16. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarStory.d.ts +8 -0
  17. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarStory.js +45 -0
  18. package/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarStory.js.map +1 -0
  19. package/Experiments/CRO-712/Atoms/ProgressBar/defaultProps.d.ts +4 -0
  20. package/Experiments/CRO-712/Atoms/ProgressBar/defaultProps.js +7 -0
  21. package/Experiments/CRO-712/Atoms/ProgressBar/defaultProps.js.map +1 -0
  22. package/Experiments/CRO-712/Atoms/ProgressBar/index.d.ts +1 -0
  23. package/Experiments/CRO-712/Atoms/ProgressBar/index.js +9 -0
  24. package/Experiments/CRO-712/Atoms/ProgressBar/index.js.map +1 -0
  25. package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.d.ts +7 -0
  26. package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.js +51 -0
  27. package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.js.map +1 -0
  28. package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.test.d.ts +1 -0
  29. package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.test.js +18 -0
  30. package/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.test.js.map +1 -0
  31. package/Interfaces/Atoms/ProgressBar/ProgressBar.js +3 -0
  32. package/Interfaces/Atoms/ProgressBar/ProgressBar.js.map +1 -1
  33. package/package.json +1 -1
@@ -0,0 +1,8 @@
1
+ interface IComponentProps {
2
+ id?: string;
3
+ progress: number;
4
+ text: string;
5
+ testId?: string;
6
+ totalSteps?: number;
7
+ }
8
+ export default IComponentProps;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IComponentProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IComponentProps.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/IComponentProps.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import { FunctionComponentWithDefaultProps } from '../../../../Helpers/React';
2
+ import defaultProps from './defaultProps';
3
+ import IComponentProps from './IComponentProps';
4
+ import WithExperimentName from '../../../../@types/WithExperimentName';
5
+ export type ProgressBarType = FunctionComponentWithDefaultProps<WithExperimentName<IComponentProps>, typeof defaultProps>;
6
+ declare const ProgressBar: ProgressBarType;
7
+ export default ProgressBar;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
18
+ /** @jsxImportSource @emotion/react */
19
+ var Box_1 = __importDefault(require("@mui/material/Box"));
20
+ var LinearProgress_1 = __importDefault(require("@mui/material/LinearProgress"));
21
+ var Typography_1 = __importDefault(require("@mui/material/Typography"));
22
+ var defaultProps_1 = __importDefault(require("./defaultProps"));
23
+ var react_1 = require("@emotion/react");
24
+ var ProgressBarHelpers_1 = require("./ProgressBarHelpers");
25
+ var makeProgressBarStyling_1 = __importDefault(require("./makeProgressBarStyling"));
26
+ var ProgressBar = function (_a) {
27
+ var id = _a.id, progress = _a.progress, text = _a.text, testId = _a.testId, totalSteps = _a.totalSteps;
28
+ var theme = (0, react_1.useTheme)();
29
+ var displayProgress = totalSteps
30
+ ? Math.min(100, progress + Math.round(100 / totalSteps))
31
+ : progress;
32
+ var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
33
+ progressBarFilledColor: theme.mvf.palette.component.progressBarFilledColor,
34
+ progressBarUnfilledColor: theme.mvf.palette.component.progressBarUnfilledColor,
35
+ progress: displayProgress,
36
+ });
37
+ var styles = (0, makeProgressBarStyling_1.default)(theme, useLightText, Boolean(totalSteps));
38
+ return ((0, jsx_runtime_1.jsxs)(Box_1.default, __assign({ css: styles.container, "data-testid": testId }, { children: [(0, jsx_runtime_1.jsxs)(Typography_1.default, __assign({ css: styles.text }, { children: [text, " ", displayProgress, "%"] })), (0, jsx_runtime_1.jsx)(LinearProgress_1.default, { variant: "determinate", css: styles.progressBar, id: id, value: displayProgress })] })));
39
+ };
40
+ ProgressBar.defaultProps = defaultProps_1.default;
41
+ exports.default = ProgressBar;
42
+ //# sourceMappingURL=ProgressBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,0DAAoC;AACpC,gFAA0D;AAC1D,wEAAkD;AAElD,gEAA0C;AAE1C,wCAA0C;AAC1C,2DAA0D;AAE1D,oFAA8D;AAQ9D,IAAM,WAAW,GAAoB,UAAC,EAMrC;QALC,EAAE,QAAA,EACF,QAAQ,cAAA,EACR,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,UAAU,gBAAA;IAEV,IAAM,KAAK,GAAW,IAAA,gBAAQ,GAAE,CAAC;IAEjC,IAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;QACxD,CAAC,CAAC,QAAQ,CAAC;IAEb,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;QACtC,sBAAsB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB;QAC1E,wBAAwB,EACtB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB;QACtD,QAAQ,EAAE,eAAe;KAC1B,CAAC,CAAC;IAEH,IAAM,MAAM,GAAG,IAAA,gCAAsB,EACnC,KAAK,EACL,YAAY,EACZ,OAAO,CAAC,UAAU,CAAC,CACpB,CAAC;IACF,OAAO,CACL,wBAAC,aAAG,aAAC,GAAG,EAAE,MAAM,CAAC,SAAS,iBAAe,MAAM,iBAC7C,wBAAC,oBAAU,aAAC,GAAG,EAAE,MAAM,CAAC,IAAI,iBACzB,IAAI,OAAG,eAAe,UACZ,EACb,uBAAC,wBAAc,IACb,OAAO,EAAC,aAAa,EACrB,GAAG,EAAE,MAAM,CAAC,WAAW,EACvB,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,eAAe,GACtB,KACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,WAAW,CAAC,YAAY,GAAG,sBAAY,CAAC;AAExC,kBAAe,WAAW,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
7
+ /** @jsxImportSource @emotion/react */
8
+ var renderWithProviders_1 = __importDefault(require("../../../../Helpers/React/renderWithProviders"));
9
+ var ProgressBar_1 = __importDefault(require("./ProgressBar"));
10
+ describe('<ProgressBar /> (CRO-712 head-start)', function () {
11
+ it('should display progress bar', function () {
12
+ var getByTestId = (0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "test-id", testId: "test-id", progress: 50, experimentName: "CRO-712" })).getByTestId;
13
+ expect(getByTestId('test-id')).toBeTruthy();
14
+ });
15
+ it('shifts progress up by one step when totalSteps is provided', function () {
16
+ var getByText = (0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "test-id", progress: 0, totalSteps: 9, text: "Progress:", experimentName: "CRO-712" })).getByText;
17
+ expect(getByText(/11%/)).toBeTruthy();
18
+ });
19
+ it('clamps the shifted progress at 100%', function () {
20
+ var getByText = (0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "test-id", progress: 95, totalSteps: 9, text: "Progress:", experimentName: "CRO-712" })).getByText;
21
+ expect(getByText(/100%/)).toBeTruthy();
22
+ });
23
+ it('falls back to the plain progress value when totalSteps is not provided', function () {
24
+ var getByText = (0, renderWithProviders_1.default)((0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "test-id", progress: 50, text: "Progress:", experimentName: "CRO-712" })).getByText;
25
+ expect(getByText(/50%/)).toBeTruthy();
26
+ });
27
+ });
28
+ //# sourceMappingURL=ProgressBar.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.test.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBar.test.tsx"],"names":[],"mappings":";;;;;;AAAA,sCAAsC;AACtC,sGAAgF;AAChF,8DAAwC;AAExC,QAAQ,CAAC,sCAAsC,EAAE;IAC/C,EAAE,CAAC,6BAA6B,EAAE;QACxB,IAAA,WAAW,GAAK,IAAA,6BAAmB,EACzC,uBAAC,qBAAW,IACV,EAAE,EAAC,SAAS,EACZ,MAAM,EAAC,SAAS,EAChB,QAAQ,EAAE,EAAE,EACZ,cAAc,EAAC,SAAS,GACxB,CACH,YAPkB,CAOjB;QACF,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE;QACvD,IAAA,SAAS,GAAK,IAAA,6BAAmB,EACvC,uBAAC,qBAAW,IACV,EAAE,EAAC,SAAS,EACZ,QAAQ,EAAE,CAAC,EACX,UAAU,EAAE,CAAC,EACb,IAAI,EAAC,WAAW,EAChB,cAAc,EAAC,SAAS,GACxB,CACH,UARgB,CAQf;QACF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE;QAChC,IAAA,SAAS,GAAK,IAAA,6BAAmB,EACvC,uBAAC,qBAAW,IACV,EAAE,EAAC,SAAS,EACZ,QAAQ,EAAE,EAAE,EACZ,UAAU,EAAE,CAAC,EACb,IAAI,EAAC,WAAW,EAChB,cAAc,EAAC,SAAS,GACxB,CACH,UARgB,CAQf;QACF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE;QACnE,IAAA,SAAS,GAAK,IAAA,6BAAmB,EACvC,uBAAC,qBAAW,IACV,EAAE,EAAC,SAAS,EACZ,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAC,WAAW,EAChB,cAAc,EAAC,SAAS,GACxB,CACH,UAPgB,CAOf;QACF,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const shouldUseLightText: ({ progressBarFilledColor, progressBarUnfilledColor, progress, }: {
2
+ progressBarFilledColor: string;
3
+ progressBarUnfilledColor: string;
4
+ progress: number;
5
+ }) => boolean;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shouldUseLightText = void 0;
4
+ /**
5
+ * calculateYIQ uses the luma conversion formula to calculate the relative luminescence of a color.
6
+ * see https://en.wikipedia.org/wiki/YIQ
7
+ * @param hexColor: rgb color
8
+ * @returns number: YIQ = (Y)luminance (IQ)chrominance for the RGB colour provided
9
+ */
10
+ var calculateYIQ = function (hexcolor) {
11
+ var _a, _b, _c;
12
+ var rgb = hexcolor.replace(/[^0-9\,]/g, ''); // remove everything except numbers and commas
13
+ var split = rgb.split(',');
14
+ var r = parseInt((_a = split[0]) !== null && _a !== void 0 ? _a : 0, 16);
15
+ var g = parseInt((_b = split[1]) !== null && _b !== void 0 ? _b : 0, 16);
16
+ var b = parseInt((_c = split[2]) !== null && _c !== void 0 ? _c : 0, 16);
17
+ var yiq = (r * 0.299 + g * 0.587 + b * 0.114) / 1000;
18
+ return yiq;
19
+ };
20
+ var shouldUseLightText = function (_a) {
21
+ var progressBarFilledColor = _a.progressBarFilledColor, progressBarUnfilledColor = _a.progressBarUnfilledColor, progress = _a.progress;
22
+ var textBackground = progress > 50 ? progressBarFilledColor : progressBarUnfilledColor;
23
+ // This matches the hexadecimal 138 value suggested by Vlad Gutkovsky see https://www.infinityinsight.com/blog/?p=411
24
+ var DARK_YIQ = 0.31;
25
+ return calculateYIQ(textBackground) < DARK_YIQ;
26
+ };
27
+ exports.shouldUseLightText = shouldUseLightText;
28
+ //# sourceMappingURL=ProgressBarHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBarHelpers.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,IAAM,YAAY,GAAG,UAAC,QAAgB;;IACpC,IAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,8CAA8C;IAC7F,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,IAAM,CAAC,GAAG,QAAQ,CAAC,MAAA,KAAK,CAAC,CAAC,CAAC,mCAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,IAAM,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC;IACvD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEK,IAAM,kBAAkB,GAAG,UAAC,EAQlC;QAPC,sBAAsB,4BAAA,EACtB,wBAAwB,8BAAA,EACxB,QAAQ,cAAA;IAMR,IAAM,cAAc,GAClB,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,wBAAwB,CAAC;IAEpE,qHAAqH;IACrH,IAAM,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,YAAY,CAAC,cAAc,CAAC,GAAG,QAAQ,CAAC;AACjD,CAAC,CAAC;AAfW,QAAA,kBAAkB,sBAe7B"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var ProgressBarHelpers_1 = require("./ProgressBarHelpers");
4
+ describe('ProgressBarHelpers', function () {
5
+ var darkBackground = 'rgb(0, 0, 0)';
6
+ var lightBackground = 'rgb(255, 255, 255)';
7
+ it('should use light text for dark filled text background', function () {
8
+ var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
9
+ progressBarFilledColor: darkBackground,
10
+ progressBarUnfilledColor: lightBackground,
11
+ progress: 51,
12
+ });
13
+ expect(useLightText).toBe(true);
14
+ });
15
+ it('should use dark text for light filled text background', function () {
16
+ var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
17
+ progressBarFilledColor: lightBackground,
18
+ progressBarUnfilledColor: darkBackground,
19
+ progress: 51,
20
+ });
21
+ expect(useLightText).toBe(false);
22
+ });
23
+ it('should use light text for dark unfilled text background', function () {
24
+ var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
25
+ progressBarFilledColor: lightBackground,
26
+ progressBarUnfilledColor: darkBackground,
27
+ progress: 50,
28
+ });
29
+ expect(useLightText).toBe(true);
30
+ });
31
+ it('should use dark text for light unfilled text background', function () {
32
+ var useLightText = (0, ProgressBarHelpers_1.shouldUseLightText)({
33
+ progressBarFilledColor: darkBackground,
34
+ progressBarUnfilledColor: lightBackground,
35
+ progress: 50,
36
+ });
37
+ expect(useLightText).toBe(false);
38
+ });
39
+ });
40
+ //# sourceMappingURL=ProgressBarHelpers.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBarHelpers.test.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarHelpers.test.ts"],"names":[],"mappings":";;AAAA,2DAA0D;AAE1D,QAAQ,CAAC,oBAAoB,EAAE;IAC7B,IAAM,cAAc,GAAG,cAAc,CAAC;IACtC,IAAM,eAAe,GAAG,oBAAoB,CAAC;IAE7C,EAAE,CAAC,uDAAuD,EAAE;QAC1D,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;YACtC,sBAAsB,EAAE,cAAc;YACtC,wBAAwB,EAAE,eAAe;YACzC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE;QAC1D,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;YACtC,sBAAsB,EAAE,eAAe;YACvC,wBAAwB,EAAE,cAAc;YACxC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE;QAC5D,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;YACtC,sBAAsB,EAAE,eAAe;YACvC,wBAAwB,EAAE,cAAc;YACxC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE;QAC5D,IAAM,YAAY,GAAG,IAAA,uCAAkB,EAAC;YACtC,sBAAsB,EAAE,cAAc;YACtC,wBAAwB,EAAE,eAAe;YACzC,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;QACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ type ProgressBarStoryType = React.FunctionComponent<{
3
+ progress: number;
4
+ text: string;
5
+ onProgressChange: (progress: number) => void;
6
+ }>;
7
+ declare const ProgressBarStory: ProgressBarStoryType;
8
+ export default ProgressBarStory;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
18
+ var react_1 = __importDefault(require("react"));
19
+ var ProgressBar_1 = __importDefault(require("./ProgressBar"));
20
+ // totalSteps/step are canvas-local convenience sliders. Moving either
21
+ // computes the raw progress a real step position would produce and reports
22
+ // it via onProgressChange (wired to the Controls-panel `progress` arg in
23
+ // ProgressBar.stories.mdx), so that slider and these two stay in sync and
24
+ // all three drive the same rendered bar.
25
+ var ProgressBarStory = function (_a) {
26
+ var text = _a.text, progress = _a.progress, onProgressChange = _a.onProgressChange;
27
+ var _b = react_1.default.useState(10), totalSteps = _b[0], setTotalSteps = _b[1];
28
+ var _c = react_1.default.useState(10), step = _c[0], setStep = _c[1];
29
+ var clampedStep = Math.min(step, totalSteps);
30
+ var applyStep = function (nextStep, nextTotalSteps) {
31
+ var clamped = Math.min(nextStep, nextTotalSteps);
32
+ onProgressChange(Math.round(((clamped - 1) * 100) / nextTotalSteps));
33
+ };
34
+ return ((0, jsx_runtime_1.jsxs)("div", __assign({ style: { maxWidth: '500px' } }, { children: [(0, jsx_runtime_1.jsxs)("label", __assign({ style: { display: 'block', marginBottom: 16 } }, { children: ["totalSteps: ", totalSteps, (0, jsx_runtime_1.jsx)("input", { type: "range", min: 1, max: 30, value: totalSteps, onChange: function (event) {
35
+ var next = Number(event.target.value);
36
+ setTotalSteps(next);
37
+ applyStep(step, next);
38
+ }, style: { width: '100%' } })] })), (0, jsx_runtime_1.jsxs)("label", __assign({ style: { display: 'block', marginBottom: 16 } }, { children: ["step: ", clampedStep, " / ", totalSteps, (0, jsx_runtime_1.jsx)("input", { type: "range", min: 1, max: totalSteps, value: clampedStep, onChange: function (event) {
39
+ var next = Number(event.target.value);
40
+ setStep(next);
41
+ applyStep(next, totalSteps);
42
+ }, style: { width: '100%' } })] })), (0, jsx_runtime_1.jsx)("div", __assign({ style: { position: 'relative' } }, { children: (0, jsx_runtime_1.jsx)(ProgressBar_1.default, { id: "id", progress: progress, text: text, totalSteps: totalSteps, experimentName: "CRO-712" }) }))] })));
43
+ };
44
+ exports.default = ProgressBarStory;
45
+ //# sourceMappingURL=ProgressBarStory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBarStory.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/ProgressBarStory.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,8DAAwC;AAQxC,sEAAsE;AACtE,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,yCAAyC;AACzC,IAAM,gBAAgB,GAAyB,UAAC,EAI/C;QAHC,IAAI,UAAA,EACJ,QAAQ,cAAA,EACR,gBAAgB,sBAAA;IAEV,IAAA,KAA8B,eAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAA/C,UAAU,QAAA,EAAE,aAAa,QAAsB,CAAC;IACjD,IAAA,KAAkB,eAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAnC,IAAI,QAAA,EAAE,OAAO,QAAsB,CAAC;IAC3C,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAE/C,IAAM,SAAS,GAAG,UAAC,QAAgB,EAAE,cAAsB;QACzD,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACnD,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IACvE,CAAC,CAAC;IAEF,OAAO,CACL,0CAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAC/B,4CAAO,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,iCACrC,UAAU,EACvB,kCACE,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,UAAC,KAAK;4BACd,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACxC,aAAa,CAAC,IAAI,CAAC,CAAC;4BACpB,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;wBACxB,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GACxB,KACI,EACR,4CAAO,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,2BAC3C,WAAW,SAAK,UAAU,EACjC,kCACE,IAAI,EAAC,OAAO,EACZ,GAAG,EAAE,CAAC,EACN,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,UAAC,KAAK;4BACd,IAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BACxC,OAAO,CAAC,IAAI,CAAC,CAAC;4BACd,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;wBAC9B,CAAC,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GACxB,KACI,EACR,yCAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAClC,uBAAC,qBAAW,IACV,EAAE,EAAC,IAAI,EACP,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,cAAc,EAAC,SAAS,GACxB,IACE,KACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,gBAAgB,CAAC"}
@@ -0,0 +1,4 @@
1
+ declare const defaultProps: {
2
+ text: string;
3
+ };
4
+ export default defaultProps;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var defaultProps = {
4
+ text: 'Progress:',
5
+ };
6
+ exports.default = defaultProps;
7
+ //# sourceMappingURL=defaultProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultProps.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/defaultProps.ts"],"names":[],"mappings":";;AAAA,IAAM,YAAY,GAAG;IACnB,IAAI,EAAE,WAAW;CAClB,CAAC;AAEF,kBAAe,YAAY,CAAC"}
@@ -0,0 +1 @@
1
+ export { default } from './ProgressBar';
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = void 0;
7
+ var ProgressBar_1 = require("./ProgressBar");
8
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(ProgressBar_1).default; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/index.ts"],"names":[],"mappings":";;;;;;AAAA,6CAAwC;AAA/B,uHAAA,OAAO,OAAA"}
@@ -0,0 +1,7 @@
1
+ import { ITheme } from '../../../../Themes/themes';
2
+ declare const makeProgressBarStyling: (theme: ITheme, useLightText: boolean, hasHeadStart: boolean) => {
3
+ container: import("@emotion/react").SerializedStyles;
4
+ progressBar: import("@emotion/react").SerializedStyles;
5
+ text: import("@emotion/react").SerializedStyles;
6
+ };
7
+ export default makeProgressBarStyling;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ var react_1 = require("@emotion/react");
15
+ var LIGHT_TEXT_SHADOW = 'rgb(255, 255, 255) 1px 1px 4px';
16
+ var DARK_TEXT_SHADOW = 'rgb(0, 0, 0) 1px 1px 4px';
17
+ var DARK_TEXT_COLOR = 'rgb(0, 0, 0)';
18
+ var LIGHT_TEXT_COLOR = 'rgb(255, 255, 255)';
19
+ var makeProgressBarStyling = function (theme, useLightText, hasHeadStart) {
20
+ var headStartBorderWidth = "clamp(".concat(theme.mvf.spacing.little, ", 6cqi, ").concat(theme.mvf.spacing.ample, ")");
21
+ return {
22
+ container: (0, react_1.css)({
23
+ height: 25,
24
+ display: 'grid',
25
+ width: '100%',
26
+ containerType: 'inline-size',
27
+ }),
28
+ progressBar: (0, react_1.css)(__assign(__assign({ height: '100%', position: 'relative', boxSizing: 'border-box', gridRowStart: 1, gridColumnStart: 1 }, (hasHeadStart && {
29
+ borderInlineStart: "".concat(headStartBorderWidth, " solid ").concat(theme.mvf.palette.component.progressBarFilledColor),
30
+ })), { '& .MuiLinearProgress-barColorPrimary': {
31
+ backgroundColor: theme.mvf.palette.component.progressBarFilledColor,
32
+ }, '&.MuiLinearProgress-colorPrimary': {
33
+ backgroundColor: theme.mvf.palette.component.progressBarUnfilledColor,
34
+ } })),
35
+ text: (0, react_1.css)({
36
+ gridRowStart: 1,
37
+ gridColumnStart: 1,
38
+ position: 'relative',
39
+ width: 'inherit',
40
+ zIndex: 1,
41
+ lineHeight: '25px',
42
+ fontSize: theme.mvf.fontSize.tiny,
43
+ textShadow: useLightText ? DARK_TEXT_SHADOW : LIGHT_TEXT_SHADOW,
44
+ color: useLightText ? LIGHT_TEXT_COLOR : DARK_TEXT_COLOR,
45
+ textAlign: 'center',
46
+ transition: 'color 0.5s ease, textShadow 0.5s ease',
47
+ }),
48
+ };
49
+ };
50
+ exports.default = makeProgressBarStyling;
51
+ //# sourceMappingURL=makeProgressBarStyling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeProgressBarStyling.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,wCAAqC;AAGrC,IAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAC3D,IAAM,gBAAgB,GAAG,0BAA0B,CAAC;AACpD,IAAM,eAAe,GAAG,cAAc,CAAC;AACvC,IAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAE9C,IAAM,sBAAsB,GAAG,UAC7B,KAAa,EACb,YAAqB,EACrB,YAAqB;IAErB,IAAM,oBAAoB,GAAG,gBAAS,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,qBAAW,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAG,CAAC;IAEpG,OAAO;QACL,SAAS,EAAE,IAAA,WAAG,EAAC;YACb,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,MAAM;YACf,KAAK,EAAE,MAAM;YACb,aAAa,EAAE,aAAa;SAC7B,CAAC;QACF,WAAW,EAAE,IAAA,WAAG,sBACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,CAAC,EACf,eAAe,EAAE,CAAC,IACf,CAAC,YAAY,IAAI;YAClB,iBAAiB,EAAE,UAAG,oBAAoB,oBAAU,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB,CAAE;SACzG,CAAC,KACF,sCAAsC,EAAE;gBACtC,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,sBAAsB;aACpE,EACD,kCAAkC,EAAE;gBAClC,eAAe,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,wBAAwB;aACtE,IACD;QACF,IAAI,EAAE,IAAA,WAAG,EAAC;YACR,YAAY,EAAE,CAAC;YACf,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE,UAAU;YACpB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;YACjC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB;YAC/D,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe;YACxD,SAAS,EAAE,QAAQ;YACnB,UAAU,EAAE,uCAAuC;SACpD,CAAC;KACH,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,sBAAsB,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var Themes_1 = require("../../../../Themes");
7
+ var makeProgressBarStyling_1 = __importDefault(require("./makeProgressBarStyling"));
8
+ describe('makeProgressBarStyling', function () {
9
+ it('adds the head-start border when hasHeadStart is true', function () {
10
+ var progressBar = (0, makeProgressBarStyling_1.default)(Themes_1.chameleonTheme, false, true).progressBar;
11
+ expect(progressBar.styles).toContain('border-inline-start');
12
+ });
13
+ it('omits the head-start border when hasHeadStart is false', function () {
14
+ var progressBar = (0, makeProgressBarStyling_1.default)(Themes_1.chameleonTheme, false, false).progressBar;
15
+ expect(progressBar.styles).not.toContain('border-inline-start');
16
+ });
17
+ });
18
+ //# sourceMappingURL=makeProgressBarStyling.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeProgressBarStyling.test.js","sourceRoot":"","sources":["../../../../../src/Experiments/CRO-712/Atoms/ProgressBar/makeProgressBarStyling.test.ts"],"names":[],"mappings":";;;;;AAAA,6CAAoD;AACpD,oFAA8D;AAE9D,QAAQ,CAAC,wBAAwB,EAAE;IACjC,EAAE,CAAC,sDAAsD,EAAE;QACjD,IAAA,WAAW,GAAK,IAAA,gCAAsB,EAAC,uBAAc,EAAE,KAAK,EAAE,IAAI,CAAC,YAAxD,CAAyD;QAC5E,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE;QACnD,IAAA,WAAW,GAAK,IAAA,gCAAsB,EAC5C,uBAAc,EACd,KAAK,EACL,KAAK,CACN,YAJkB,CAIjB;QACF,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -19,8 +19,11 @@ var ProgressBar_1 = __importDefault(require("../../../Components/Atoms/ProgressB
19
19
  var defaultProps_1 = __importDefault(require("../../../Components/Atoms/ProgressBar/defaultProps"));
20
20
  var ProgressBar_2 = __importDefault(require("../../../Experiments/CRO-582/Atoms/ProgressBar/ProgressBar"));
21
21
  var ProgressBar_3 = __importDefault(require("../../../Experiments/CRO-585-a/Atoms/ProgressBar/ProgressBar"));
22
+ var ProgressBar_4 = __importDefault(require("../../../Experiments/CRO-712/Atoms/ProgressBar/ProgressBar"));
22
23
  var ProgressBar = function (props) {
23
24
  switch (props.experimentName) {
25
+ case 'CRO-712':
26
+ return (0, jsx_runtime_1.jsx)(ProgressBar_4.default, __assign({}, props));
24
27
  case 'CRO-585-a':
25
28
  return (0, jsx_runtime_1.jsx)(ProgressBar_3.default, __assign({}, props));
26
29
  case 'CRO-582':
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../src/Interfaces/Atoms/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kGAE2D;AAC3D,oGAA8E;AAC9E,2GAA2F;AAC3F,6GAA8F;AAE9F,IAAM,WAAW,GAAoB,UAAC,KAAK;IACzC,QAAQ,KAAK,CAAC,cAAc,EAAE;QAC5B,KAAK,WAAW;YACd,OAAO,uBAAC,qBAAkB,eAAK,KAAK,EAAI,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,uBAAC,qBAAiB,eAAK,KAAK,EAAI,CAAC;QAC1C;YACE,OAAO,uBAAC,qBAAkB,eAAK,KAAK,EAAI,CAAC;KAC5C;AACH,CAAC,CAAC;AAEF,WAAW,CAAC,YAAY,GAAG,sBAAY,CAAC;AAExC,kBAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../src/Interfaces/Atoms/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,kGAE2D;AAC3D,oGAA8E;AAC9E,2GAA2F;AAC3F,6GAA8F;AAC9F,2GAA2F;AAE3F,IAAM,WAAW,GAAoB,UAAC,KAAK;IACzC,QAAQ,KAAK,CAAC,cAAc,EAAE;QAC5B,KAAK,SAAS;YACZ,OAAO,uBAAC,qBAAiB,eAAK,KAAK,EAAI,CAAC;QAC1C,KAAK,WAAW;YACd,OAAO,uBAAC,qBAAkB,eAAK,KAAK,EAAI,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,uBAAC,qBAAiB,eAAK,KAAK,EAAI,CAAC;QAC1C;YACE,OAAO,uBAAC,qBAAkB,eAAK,KAAK,EAAI,CAAC;KAC5C;AACH,CAAC,CAAC;AAEF,WAAW,CAAC,YAAY,GAAG,sBAAY,CAAC;AAExC,kBAAe,WAAW,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mvf/external-components",
3
- "version": "3.36.2",
3
+ "version": "3.37.0",
4
4
  "license": "UNLICENSED",
5
5
  "scripts": {
6
6
  "dev": "scripts/up.sh",