@kaizen/components 1.42.0 → 1.42.1

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 (30) hide show
  1. package/dist/cjs/Illustration/subcomponents/VideoPlayer/VideoPlayer.cjs +15 -30
  2. package/dist/cjs/Illustration/subcomponents/VideoPlayer/VideoPlayer.cjs.map +1 -1
  3. package/dist/cjs/dts/Filter/FilterMultiSelect/FilterMultiSelect.d.ts +1 -1
  4. package/dist/cjs/index.css +25 -25
  5. package/dist/esm/Illustration/subcomponents/VideoPlayer/VideoPlayer.mjs +15 -30
  6. package/dist/esm/Illustration/subcomponents/VideoPlayer/VideoPlayer.mjs.map +1 -1
  7. package/dist/esm/dts/Filter/FilterMultiSelect/FilterMultiSelect.d.ts +1 -1
  8. package/dist/esm/index.css +25 -25
  9. package/dist/index.d.ts +3 -3
  10. package/dist/styles.css +1 -1
  11. package/package.json +16 -16
  12. package/src/ButtonGroup/_docs/ButtonGroup.mdx +23 -0
  13. package/src/ButtonGroup/_docs/ButtonGroup.stories.tsx +0 -23
  14. package/src/ErrorPage/_docs/ErrorPage.mdx +21 -0
  15. package/src/ErrorPage/_docs/ErrorPage.stories.tsx +0 -16
  16. package/src/Illustration/subcomponents/VideoPlayer/VideoPlayer.spec.tsx +10 -7
  17. package/src/Illustration/subcomponents/VideoPlayer/VideoPlayer.tsx +9 -24
  18. package/src/LabelledMessage/_docs/LabelledMessage.mdx +21 -0
  19. package/src/LabelledMessage/_docs/LabelledMessage.stories.tsx +0 -19
  20. package/src/Workflow/_docs/ProgressStepper.mdx +41 -0
  21. package/src/Workflow/_docs/ProgressStepper.stories.tsx +0 -21
  22. package/src/Workflow/_docs/Workflow.mdx +1 -2
  23. package/src/Workflow/_docs/Workflow.stories.tsx +1 -1
  24. package/src/Workflow/_docs/WorkflowFooter.mdx +41 -0
  25. package/src/Workflow/_docs/WorkflowFooter.stories.tsx +0 -20
  26. package/src/Workflow/_docs/WorkflowHeader.mdx +31 -0
  27. package/src/Workflow/_docs/WorkflowHeader.stories.tsx +0 -20
  28. package/src/__future__/Workflow/_docs/Workflow.mdx +1 -1
  29. package/src/__future__/Workflow/_docs/Workflow.stories.tsx +1 -1
  30. package/src/Illustration/subcomponents/VideoPlayer/__snapshots__/VideoPlayer.spec.tsx.snap +0 -30
@@ -9,22 +9,18 @@ var canPlayWebm = require('../../utils/canPlayWebm.cjs');
9
9
  var usePausePlay = require('../../utils/usePausePlay.cjs');
10
10
  var Base_module = require('../Base/Base.module.scss.cjs');
11
11
  var VideoPlayer = function (_a) {
12
- var _b;
13
- var _c = _a.autoplay,
14
- autoplay = _c === void 0 ? true : _c,
15
- _d = _a.loop,
16
- loop = _d === void 0 ? false : _d,
12
+ var _b = _a.autoplay,
13
+ autoplay = _b === void 0 ? true : _b,
14
+ _c = _a.loop,
15
+ loop = _c === void 0 ? false : _c,
17
16
  fallback = _a.fallback,
18
17
  source = _a.source,
19
18
  aspectRatio = _a.aspectRatio,
20
19
  onEnded = _a.onEnded;
21
20
  var videoRef = React.useRef(null);
22
- var _e = React.useState(true),
23
- prefersReducedMotion = _e[0],
24
- setPrefersReducedMotion = _e[1];
25
- var _f = React.useState(),
26
- sourceEl = _f[0],
27
- setSourceEl = _f[1];
21
+ var _d = React.useState(true),
22
+ prefersReducedMotion = _d[0],
23
+ setPrefersReducedMotion = _d[1];
28
24
  React.useEffect(function () {
29
25
  /**
30
26
  * Setting `muted` on the player is required in Safari/Webkit and older
@@ -105,26 +101,9 @@ var VideoPlayer = function (_a) {
105
101
  videoElement.removeEventListener("ended", onEnded);
106
102
  };
107
103
  }, [videoRef]);
108
- React.useEffect(function () {
109
- /**
110
- * This seems counter-intuitive, but webm support is codec specific.
111
- * Only offer webm if we are positive the browser supports it.
112
- * Reference: https://bugs.webkit.org/show_bug.cgi?id=216652#c1
113
- */
114
- canPlayWebm.canPlayWebm() ? setSourceEl(React.createElement(React.Fragment, null, React.createElement("source", {
115
- src: hostedAssets.assetUrl("".concat(source, ".webm")),
116
- type: "video/webm"
117
- }), React.createElement("source", {
118
- src: hostedAssets.assetUrl("".concat(source, ".mp4")),
119
- type: "video/mp4"
120
- }))) : React.createElement("source", {
121
- src: hostedAssets.assetUrl("".concat(source, ".mp4")),
122
- type: "video/mp4"
123
- });
124
- }, [setSourceEl]);
125
104
  var pausePlay = usePausePlay.usePausePlay(videoRef);
126
105
  return React.createElement("figure", {
127
- className: classnames(Base_module.figure, (_b = {}, _b["".concat(Base_module[aspectRatio], " ").concat(Base_module.aspectRatioWrapper)] = Boolean(aspectRatio), _b))
106
+ className: classnames(Base_module.figure, aspectRatio && Base_module[aspectRatio], aspectRatio && Base_module.aspectRatioWrapper)
128
107
  }, React.createElement("video", {
129
108
  muted: true,
130
109
  "aria-hidden": true,
@@ -138,7 +117,13 @@ var VideoPlayer = function (_a) {
138
117
  autoPlay: prefersReducedMotion ? false : autoplay,
139
118
  playsInline: true,
140
119
  tabIndex: -1
141
- }, sourceEl), React.createElement(IconButton.IconButton, {
120
+ }, canPlayWebm.canPlayWebm() && React.createElement("source", {
121
+ src: hostedAssets.assetUrl("".concat(source, ".webm")),
122
+ type: "video/webm"
123
+ }), React.createElement("source", {
124
+ src: hostedAssets.assetUrl("".concat(source, ".mp4")),
125
+ type: "video/mp4"
126
+ })), React.createElement(IconButton.IconButton, {
142
127
  onClick: function () {
143
128
  return pausePlay.toggle();
144
129
  },
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.cjs","sources":["../../../../../src/Illustration/subcomponents/VideoPlayer/VideoPlayer.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\"\nimport classnames from \"classnames\"\nimport { assetUrl } from \"@kaizen/hosted-assets\"\nimport { IconButton } from \"~components/Button\"\nimport { canPlayWebm } from \"../../utils/canPlayWebm\"\nimport { usePausePlay } from \"../../utils/usePausePlay\"\nimport styles from \"../Base/Base.module.scss\"\n\nexport type VideoPlayerProps = {\n /**\n * Specifies whether the animation plays as soon as it is rendered.\n * If the user has enabled prefer-reduced-motion their preferences\n * take precedent over this prop.\n */\n autoplay?: boolean\n\n /**\n * Replay from start when active animation reaches the end of the animation.\n */\n loop?: boolean\n\n /**\n * Fallback image. Used when rendering of the asset fails, or as a\n * poster for the video player.\n */\n fallback: string\n\n /**\n * The path of the animation source, excluding the file extension. This\n * Player will preference Webm over mp4.\n */\n source: string\n\n /**\n * Aspect ratio that is set on the illustration in Scene/Spot which wraps the\n * component in a container, forcing the aspect ratio.\n */\n aspectRatio?: \"landscape\" | \"portrait\" | \"square\"\n\n onEnded?: () => void\n}\n\nexport const VideoPlayer = ({\n autoplay = true,\n loop = false,\n fallback,\n source,\n aspectRatio,\n onEnded,\n}: VideoPlayerProps): JSX.Element => {\n const videoRef = useRef<HTMLVideoElement>(null)\n const [prefersReducedMotion, setPrefersReducedMotion] =\n React.useState<boolean>(true)\n const [sourceEl, setSourceEl] = React.useState<React.ReactNode>()\n\n useEffect(() => {\n /**\n * Setting `muted` on the player is required in Safari/Webkit and older\n * versions of Chome for the video to autoplay (regardless of whether\n * the format contains an audio stream or not).\n *\n * React does not guarentee the `muted` attribute is set on the\n * `video` element. So on load we force set this attribute. See issue:\n * https://github.com/facebook/react/issues/10389\n */\n const { current: videoElement } = videoRef\n if (videoElement !== null) {\n videoElement.setAttribute(\"muted\", \"\")\n }\n }, [])\n\n useEffect(() => {\n // when the source of the animation is updated, we need to reload the asset\n // to ensure the video player is in sync with the new source.\n const { current: videoElement } = videoRef\n if (videoElement !== null) {\n videoElement.load()\n }\n }, [source])\n\n useEffect(() => {\n if (!window) return\n\n const reducedMotionQuery = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n )\n setPrefersReducedMotion(reducedMotionQuery.matches)\n const updateMotionPreferences = (): void => {\n const { matches = false } = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n )\n setPrefersReducedMotion(matches)\n }\n\n const isLegacyEdge = navigator.userAgent.match(/Edge/)\n\n const isUnsupportedSafari =\n window.matchMedia(\"\").addEventListener === undefined\n\n if (isLegacyEdge || isUnsupportedSafari) return\n\n reducedMotionQuery.addEventListener(\"change\", updateMotionPreferences, true)\n\n return function cleanup() {\n reducedMotionQuery.removeEventListener(\"change\", updateMotionPreferences)\n }\n }, [])\n\n useEffect(() => {\n const { current: videoElement } = videoRef\n if (!videoElement) return\n\n if (prefersReducedMotion) {\n videoElement.pause()\n } else if (autoplay && !prefersReducedMotion) {\n try {\n // Older browsers may not return a promise, so .play could return undefined\n videoElement.play()?.catch(() => {\n /*\n * An DOMException _may_ be raised by some browsers if we\n * programatically interact with the video before the\n * user has interacted with the page. This is okay - so\n * we're going to catch this error without handling it. See:\n * https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide#autoplay_availability\n */\n })\n } catch (e) {\n /**\n * Older browsers will raise a synchronous error because their first implementation\n * of `.play` was not a promise.\n */\n }\n }\n /**\n * Chrome seems to have an issue with changes to autoplay after the video\n * has been mounted. If there is a change in autoplay we need to force the\n * play() method to be called.\n */\n }, [prefersReducedMotion, autoplay])\n\n useEffect(() => {\n // Add event listeners for the video element\n const { current: videoElement } = videoRef\n if (!videoElement || !onEnded) return\n\n videoElement.addEventListener(\"ended\", onEnded)\n\n return function cleanup() {\n videoElement.removeEventListener(\"ended\", onEnded)\n }\n }, [videoRef])\n\n useEffect(() => {\n /**\n * This seems counter-intuitive, but webm support is codec specific.\n * Only offer webm if we are positive the browser supports it.\n * Reference: https://bugs.webkit.org/show_bug.cgi?id=216652#c1\n */\n canPlayWebm() ? (\n setSourceEl(\n <>\n <source src={assetUrl(`${source}.webm`)} type=\"video/webm\" />\n <source src={assetUrl(`${source}.mp4`)} type=\"video/mp4\" />\n </>\n )\n ) : (\n <source src={assetUrl(`${source}.mp4`)} type=\"video/mp4\" />\n )\n }, [setSourceEl])\n\n const pausePlay = usePausePlay(videoRef)\n\n return (\n <figure\n className={classnames(styles.figure, {\n [`${styles[aspectRatio!]} ${styles.aspectRatioWrapper}`]:\n Boolean(aspectRatio),\n })}\n >\n <video\n muted={true}\n aria-hidden={true}\n preload=\"metadata\"\n ref={videoRef}\n width=\"100%\"\n data-testid=\"kz-video-player\"\n className={styles.wrapper}\n loop={loop}\n poster={assetUrl(`${fallback}.png`)}\n autoPlay={prefersReducedMotion ? false : autoplay}\n playsInline={true}\n tabIndex={-1}\n >\n {sourceEl}\n </video>\n <IconButton\n onClick={(): void => pausePlay.toggle()}\n icon={pausePlay.icon}\n label={pausePlay.label}\n classNameOverride={styles.pausePlayButton}\n />\n </figure>\n )\n}\n"],"names":["VideoPlayer","_a","_c","autoplay","_d","loop","fallback","source","aspectRatio","onEnded","videoRef","useRef","_e","React","useState","prefersReducedMotion","setPrefersReducedMotion","_f","sourceEl","setSourceEl","useEffect","videoElement","current","setAttribute","load","window","reducedMotionQuery","matchMedia","matches","updateMotionPreferences","isLegacyEdge","navigator","userAgent","match","isUnsupportedSafari","addEventListener","undefined","cleanup","removeEventListener","pause","play","catch","e","canPlayWebm","createElement","Fragment","src","assetUrl","concat","type","pausePlay","usePausePlay","className","classnames","styles","figure","_b","aspectRatioWrapper","Boolean","muted","preload","ref","width","wrapper","poster","autoPlay","playsInline","tabIndex","IconButton","onClick","toggle","icon","label","classNameOverride","pausePlayButton"],"mappings":"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"}
1
+ {"version":3,"file":"VideoPlayer.cjs","sources":["../../../../../src/Illustration/subcomponents/VideoPlayer/VideoPlayer.tsx"],"sourcesContent":["import React, { useEffect, useRef } from \"react\"\nimport classnames from \"classnames\"\nimport { assetUrl } from \"@kaizen/hosted-assets\"\nimport { IconButton } from \"~components/Button\"\nimport { canPlayWebm } from \"../../utils/canPlayWebm\"\nimport { usePausePlay } from \"../../utils/usePausePlay\"\nimport styles from \"../Base/Base.module.scss\"\n\nexport type VideoPlayerProps = {\n /**\n * Specifies whether the animation plays as soon as it is rendered.\n * If the user has enabled prefer-reduced-motion their preferences\n * take precedent over this prop.\n */\n autoplay?: boolean\n\n /**\n * Replay from start when active animation reaches the end of the animation.\n */\n loop?: boolean\n\n /**\n * Fallback image. Used when rendering of the asset fails, or as a\n * poster for the video player.\n */\n fallback: string\n\n /**\n * The path of the animation source, excluding the file extension. This\n * Player will preference Webm over mp4.\n */\n source: string\n\n /**\n * Aspect ratio that is set on the illustration in Scene/Spot which wraps the\n * component in a container, forcing the aspect ratio.\n */\n aspectRatio?: \"landscape\" | \"portrait\" | \"square\"\n\n onEnded?: () => void\n}\n\nexport const VideoPlayer = ({\n autoplay = true,\n loop = false,\n fallback,\n source,\n aspectRatio,\n onEnded,\n}: VideoPlayerProps): JSX.Element => {\n const videoRef = useRef<HTMLVideoElement>(null)\n const [prefersReducedMotion, setPrefersReducedMotion] =\n React.useState<boolean>(true)\n\n useEffect(() => {\n /**\n * Setting `muted` on the player is required in Safari/Webkit and older\n * versions of Chome for the video to autoplay (regardless of whether\n * the format contains an audio stream or not).\n *\n * React does not guarentee the `muted` attribute is set on the\n * `video` element. So on load we force set this attribute. See issue:\n * https://github.com/facebook/react/issues/10389\n */\n const { current: videoElement } = videoRef\n if (videoElement !== null) {\n videoElement.setAttribute(\"muted\", \"\")\n }\n }, [])\n\n useEffect(() => {\n // when the source of the animation is updated, we need to reload the asset\n // to ensure the video player is in sync with the new source.\n const { current: videoElement } = videoRef\n if (videoElement !== null) {\n videoElement.load()\n }\n }, [source])\n\n useEffect(() => {\n if (!window) return\n\n const reducedMotionQuery = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n )\n setPrefersReducedMotion(reducedMotionQuery.matches)\n const updateMotionPreferences = (): void => {\n const { matches = false } = window.matchMedia(\n \"(prefers-reduced-motion: reduce)\"\n )\n setPrefersReducedMotion(matches)\n }\n\n const isLegacyEdge = navigator.userAgent.match(/Edge/)\n\n const isUnsupportedSafari =\n window.matchMedia(\"\").addEventListener === undefined\n\n if (isLegacyEdge || isUnsupportedSafari) return\n\n reducedMotionQuery.addEventListener(\"change\", updateMotionPreferences, true)\n\n return function cleanup() {\n reducedMotionQuery.removeEventListener(\"change\", updateMotionPreferences)\n }\n }, [])\n\n useEffect(() => {\n const { current: videoElement } = videoRef\n if (!videoElement) return\n\n if (prefersReducedMotion) {\n videoElement.pause()\n } else if (autoplay && !prefersReducedMotion) {\n try {\n // Older browsers may not return a promise, so .play could return undefined\n videoElement.play()?.catch(() => {\n /*\n * An DOMException _may_ be raised by some browsers if we\n * programatically interact with the video before the\n * user has interacted with the page. This is okay - so\n * we're going to catch this error without handling it. See:\n * https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide#autoplay_availability\n */\n })\n } catch (e) {\n /**\n * Older browsers will raise a synchronous error because their first implementation\n * of `.play` was not a promise.\n */\n }\n }\n /**\n * Chrome seems to have an issue with changes to autoplay after the video\n * has been mounted. If there is a change in autoplay we need to force the\n * play() method to be called.\n */\n }, [prefersReducedMotion, autoplay])\n\n useEffect(() => {\n // Add event listeners for the video element\n const { current: videoElement } = videoRef\n if (!videoElement || !onEnded) return\n\n videoElement.addEventListener(\"ended\", onEnded)\n\n return function cleanup() {\n videoElement.removeEventListener(\"ended\", onEnded)\n }\n }, [videoRef])\n\n const pausePlay = usePausePlay(videoRef)\n\n return (\n <figure\n className={classnames(\n styles.figure,\n aspectRatio && styles[aspectRatio],\n aspectRatio && styles.aspectRatioWrapper\n )}\n >\n <video\n muted={true}\n aria-hidden={true}\n preload=\"metadata\"\n ref={videoRef}\n width=\"100%\"\n data-testid=\"kz-video-player\"\n className={styles.wrapper}\n loop={loop}\n poster={assetUrl(`${fallback}.png`)}\n autoPlay={prefersReducedMotion ? false : autoplay}\n playsInline={true}\n tabIndex={-1}\n >\n {canPlayWebm() && (\n <source src={assetUrl(`${source}.webm`)} type=\"video/webm\" />\n )}\n <source src={assetUrl(`${source}.mp4`)} type=\"video/mp4\" />\n </video>\n <IconButton\n onClick={(): void => pausePlay.toggle()}\n icon={pausePlay.icon}\n label={pausePlay.label}\n classNameOverride={styles.pausePlayButton}\n />\n </figure>\n )\n}\n"],"names":["VideoPlayer","_a","_b","autoplay","_c","loop","fallback","source","aspectRatio","onEnded","videoRef","useRef","_d","React","useState","prefersReducedMotion","setPrefersReducedMotion","useEffect","videoElement","current","setAttribute","load","window","reducedMotionQuery","matchMedia","matches","updateMotionPreferences","isLegacyEdge","navigator","userAgent","match","isUnsupportedSafari","addEventListener","undefined","cleanup","removeEventListener","pause","play","catch","e","pausePlay","usePausePlay","className","classnames","styles","figure","aspectRatioWrapper","createElement","muted","preload","ref","width","wrapper","poster","assetUrl","concat","autoPlay","playsInline","tabIndex","canPlayWebm","src","type","IconButton","onClick","toggle","icon","label","classNameOverride","pausePlayButton"],"mappings":"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"}
@@ -61,7 +61,7 @@ export declare const FilterMultiSelect: {
61
61
  displayName: string;
62
62
  };
63
63
  LoadMoreButton: {
64
- (props: import("./subcomponents/LoadMoreButton").LoadMoreButtonProps): JSX.Element;
64
+ (props: import("../../Button/GenericButton").GenericButtonProps): JSX.Element;
65
65
  displayName: string;
66
66
  };
67
67
  NoResults: {