@jobber/components 3.4.4-pre.0 → 3.4.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.4.5](https://github.com/GetJobber/atlantis/compare/@jobber/components@3.4.4...@jobber/components@3.4.5) (2023-03-06)
7
+
8
+ **Note:** Version bump only for package @jobber/components
9
+
10
+
11
+
12
+
13
+
14
+ ## [3.4.4](https://github.com/GetJobber/atlantis/compare/@jobber/components@3.4.3...@jobber/components@3.4.4) (2023-03-03)
15
+
16
+ **Note:** Version bump only for package @jobber/components
17
+
18
+
19
+
20
+
21
+
6
22
  ## [3.4.3](https://github.com/GetJobber/atlantis/compare/@jobber/components@3.4.2...@jobber/components@3.4.3) (2023-03-03)
7
23
 
8
24
  **Note:** Version bump only for package @jobber/components
@@ -19,8 +19,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
19
19
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
20
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
21
21
 
22
- var css$1 = ".XnQ3RJFzByInxjZ8LTsv8 {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-shadow: var(--shadow-base);\n padding: var(--space-base);\n color: var(--color-text);\n background-color: var(--color-surface--background);\n grid-gap: var(--space-small);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n._3vGMT9on-QbjXBlSaiNcgm {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n grid-gap: var(--space-small);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n._2iRHpLiGUYBO-8xY0h00rp {\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n._3vGMT9on-QbjXBlSaiNcgm > *:last-child {\n margin-bottom: 0;\n}\n\n._1S5EoHZng2ePaBlNMXhUYb ._3vGMT9on-QbjXBlSaiNcgm {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n._12QzEnq3z7-XCpLmgYARp {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n\n._2MtsHfzp46XdG3BZQtOLm- {\n margin: calc(var(--space-smallest) * -1) 0;\n padding: var(--space-smallest);\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n -ms-flex: 0;\n flex: 0;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n\n._2MtsHfzp46XdG3BZQtOLm-:hover {\n background: rgba(0, 0, 0, 0.025);\n}\n\n._2MtsHfzp46XdG3BZQtOLm-:focus {\n box-shadow: var(--shadow-focus);\n outline: none;\n background: rgba(0, 0, 0, 0.05);\n}\n";
23
- var styles = {"banner":"XnQ3RJFzByInxjZ8LTsv8","bannerContent":"_3vGMT9on-QbjXBlSaiNcgm","bannerChildren":"_2iRHpLiGUYBO-8xY0h00rp","medium":"_1S5EoHZng2ePaBlNMXhUYb","bannerAction":"_12QzEnq3z7-XCpLmgYARp","closeButton":"_2MtsHfzp46XdG3BZQtOLm-"};
22
+ var css$1 = ":root {\n --flash--inset: var(--space-base);\n --flash--inset--small: var(--space-small);\n}\n\n._364vcgV1m5AeWxKbtAvmwW {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-shadow: var(--shadow-base);\n padding: var(--space-base);\n padding: var(--space-base);\n padding: var(--flash--inset);\n color: var(--color-black);\n background-color: var(--color-grey--lightest);\n -ms-flex-align: center;\n align-items: center;\n}\n\n._3vGMT9on-QbjXBlSaiNcgm {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n._2iRHpLiGUYBO-8xY0h00rp {\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n._3GnUCvx5Y7mFbH2Z7IN5U- {\n padding-top: var(--space-smallest);\n padding-right: var(--space-base);\n padding-right: var(--space-base);\n padding-right: var(--flash--inset);\n}\n\n._3vGMT9on-QbjXBlSaiNcgm > * {\n margin-top: var(--space-small);\n margin-top: var(--space-small);\n margin-top: var(--flash--inset--small);\n margin-bottom: var(--space-small);\n margin-bottom: var(--space-small);\n margin-bottom: var(--flash--inset--small);\n}\n\n._3vGMT9on-QbjXBlSaiNcgm > *:first-child {\n margin-top: 0;\n margin-right: var(--space-base);\n}\n\n._3vGMT9on-QbjXBlSaiNcgm > *:last-child {\n margin-bottom: 0;\n}\n\n._1S5EoHZng2ePaBlNMXhUYb ._3vGMT9on-QbjXBlSaiNcgm {\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n}\n\n._1S5EoHZng2ePaBlNMXhUYb ._3vGMT9on-QbjXBlSaiNcgm > * {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n._12QzEnq3z7-XCpLmgYARp {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n\n._2MtsHfzp46XdG3BZQtOLm- {\n padding: var(--space-smallest);\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n -ms-flex: 0;\n flex: 0;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n\n._2MtsHfzp46XdG3BZQtOLm-:hover {\n background: rgba(0, 0, 0, 0.025);\n}\n\n._2MtsHfzp46XdG3BZQtOLm-:focus {\n box-shadow: var(--shadow-focus);\n outline: none;\n background: rgba(0, 0, 0, 0.05);\n}\n";
23
+ var styles = {"flash":"_364vcgV1m5AeWxKbtAvmwW","bannerContent":"_3vGMT9on-QbjXBlSaiNcgm","bannerChildren":"_2iRHpLiGUYBO-8xY0h00rp","dismissibleSpacing":"_3GnUCvx5Y7mFbH2Z7IN5U-","medium":"_1S5EoHZng2ePaBlNMXhUYb","bannerAction":"_12QzEnq3z7-XCpLmgYARp","closeButton":"_2MtsHfzp46XdG3BZQtOLm-"};
24
24
  styleInject_es.styleInject(css$1);
25
25
 
26
26
  var css = ".nw7Tf4jicBNmfENtxh7tG {\n background-color: var(--color-informative--surface);\n}\n\n/* Our Banner \"surface\" colors should be lighter than they are so we're leaving the following alone for now */\n\n.myY4eq0vr_r4Twz0QcBwu {\n background-color: var(--color-green--lighter);\n}\n\n.eExwEf69eCfam2C6Ekk5D {\n background-color: var(--color-yellow--lighter);\n}\n\n._1U_-uPZepxvaZPO5hh8G4O {\n background-color: var(--color-red--lighter);\n}\n";
@@ -28,21 +28,21 @@ var types = {"notice":"nw7Tf4jicBNmfENtxh7tG","success":"myY4eq0vr_r4Twz0QcBwu",
28
28
  styleInject_es.styleInject(css);
29
29
 
30
30
  function Banner(_a) {
31
- var _b;
32
- var children = _a.children, type = _a.type, primaryAction = _a.primaryAction, _c = _a.dismissible, dismissible = _c === void 0 ? true : _c, onDismiss = _a.onDismiss;
33
- var _d = tslib_es6.__read(React.useState(true), 2), showBanner = _d[0], setShowBanner = _d[1];
31
+ var _b, _c;
32
+ var children = _a.children, type = _a.type, primaryAction = _a.primaryAction, _d = _a.dismissible, dismissible = _d === void 0 ? true : _d, onDismiss = _a.onDismiss;
33
+ var _e = tslib_es6.__read(React.useState(true), 2), showFlash = _e[0], setShowFlash = _e[1];
34
34
  var bannerWidths = {
35
35
  small: 320,
36
36
  medium: 480,
37
37
  };
38
- var _e = tslib_es6.__read(jobberHooks.useResizeObserver({
38
+ var _f = tslib_es6.__read(jobberHooks.useResizeObserver({
39
39
  widths: bannerWidths,
40
- }), 2), bannerRef = _e[0], _f = _e[1].width, bannerWidth = _f === void 0 ? bannerWidths.small : _f;
40
+ }), 2), bannerRef = _f[0], _g = _f[1].width, bannerWidth = _g === void 0 ? bannerWidths.small : _g;
41
41
  var iconColors = {
42
- notice: "informative",
43
- success: "success",
44
- warning: "warning",
45
- error: "critical",
42
+ notice: "lightBlue",
43
+ success: "green",
44
+ warning: "yellow",
45
+ error: "red",
46
46
  };
47
47
  if (primaryAction != undefined) {
48
48
  primaryAction = Object.assign({
@@ -51,11 +51,14 @@ function Banner(_a) {
51
51
  variation: type === "notice" ? "learning" : "work",
52
52
  }, primaryAction);
53
53
  }
54
- var bannerClassNames = classnames__default["default"](styles.banner, types[type], (_b = {},
54
+ var flashClassNames = classnames__default["default"](styles.flash, types[type], (_b = {},
55
55
  _b[styles.medium] = bannerWidth >= bannerWidths.medium,
56
56
  _b));
57
- return (React__default["default"].createElement(React__default["default"].Fragment, null, showBanner && (React__default["default"].createElement("div", { className: bannerClassNames, ref: bannerRef, role: type === "error" ? "alert" : "status" },
58
- React__default["default"].createElement("div", { className: styles.bannerContent },
57
+ var contentClassNames = classnames__default["default"](styles.bannerContent, (_c = {},
58
+ _c[styles.dismissibleSpacing] = dismissible,
59
+ _c));
60
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, showFlash && (React__default["default"].createElement("div", { className: flashClassNames, ref: bannerRef, role: type === "error" ? "alert" : "status" },
61
+ React__default["default"].createElement("div", { className: contentClassNames },
59
62
  React__default["default"].createElement("div", { className: styles.bannerChildren },
60
63
  React__default["default"].createElement(BannerChildren, null, children)),
61
64
  primaryAction && (React__default["default"].createElement("div", { className: styles.bannerAction },
@@ -63,7 +66,7 @@ function Banner(_a) {
63
66
  dismissible && (React__default["default"].createElement("button", { className: styles.closeButton, onClick: handleClose, "aria-label": "Close this notification" },
64
67
  React__default["default"].createElement(Icon.Icon, { name: "cross", color: iconColors[type] })))))));
65
68
  function handleClose() {
66
- setShowBanner(!showBanner);
69
+ setShowFlash(!showFlash);
67
70
  onDismiss && onDismiss();
68
71
  }
69
72
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Card = require('../Card-9056628f.js');
5
+ var Card = require('../Card-b9f8d6f3.js');
6
6
  require('../tslib.es6-5b50eb8e.js');
7
7
  require('react');
8
8
  require('classnames');
@@ -13,7 +13,7 @@ require('../Button-cd30df0f.js');
13
13
  require('react-router-dom');
14
14
  require('../Icon-d5ad1a6d.js');
15
15
  require('@jobber/design');
16
- require('../Menu-13deda94.js');
16
+ require('../Menu-826cfb89.js');
17
17
  require('uuid');
18
18
  require('framer-motion');
19
19
  require('@jobber/hooks');
@@ -6,7 +6,7 @@ var classnames = require('classnames');
6
6
  var styleInject_es = require('./style-inject.es-dcee06b6.js');
7
7
  var Heading = require('./Heading-a9a66964.js');
8
8
  var Button = require('./Button-cd30df0f.js');
9
- var Menu = require('./Menu-13deda94.js');
9
+ var Menu = require('./Menu-826cfb89.js');
10
10
 
11
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
12
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var Card = require('../Card-9056628f.js');
6
+ var Card = require('../Card-b9f8d6f3.js');
7
7
  var Content = require('../Content-18de5fbb.js');
8
8
  var Emphasis = require('../Emphasis-75a3f411.js');
9
9
  require('../tslib.es6-5b50eb8e.js');
@@ -15,7 +15,7 @@ require('../Button-cd30df0f.js');
15
15
  require('react-router-dom');
16
16
  require('../Icon-d5ad1a6d.js');
17
17
  require('@jobber/design');
18
- require('../Menu-13deda94.js');
18
+ require('../Menu-826cfb89.js');
19
19
  require('uuid');
20
20
  require('framer-motion');
21
21
  require('@jobber/hooks');
@@ -21,8 +21,8 @@ function DescriptionList(_a) {
21
21
  return (React__default["default"].createElement("dl", { className: styles.descriptionList }, data.map(function (_a) {
22
22
  var _b = tslib_es6.__read(_a, 2), term = _b[0], description = _b[1];
23
23
  return (React__default["default"].createElement("div", { key: term, className: styles.termGroup },
24
- React__default["default"].createElement(Typography.Typography, { element: "dt", textColor: "blue", size: "base" }, term),
25
- React__default["default"].createElement(Typography.Typography, { element: "dd", textColor: "greyBlueDark", size: "base" }, description)));
24
+ React__default["default"].createElement(Typography.Typography, { element: "dt", textColor: "heading", size: "base" }, term),
25
+ React__default["default"].createElement(Typography.Typography, { element: "dd", textColor: "text", size: "base" }, description)));
26
26
  })));
27
27
  }
28
28
 
@@ -6,20 +6,19 @@ var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
6
6
  var React = require('react');
7
7
  var classnames = require('classnames');
8
8
  var styleInject_es = require('../style-inject.es-dcee06b6.js');
9
- var LightBox = require('../LightBox-6aea2128.js');
9
+ var LightBox = require('../LightBox-4eb2e6f0.js');
10
10
  var FormatFile = require('../FormatFile-44fc7b58.js');
11
11
  var Button = require('../Button-cd30df0f.js');
12
- require('react-image-lightbox');
13
- require('react-image-lightbox/style.css');
12
+ require('framer-motion');
13
+ require('react-dom');
14
+ require('lodash/debounce');
15
+ require('@jobber/hooks');
16
+ require('../ButtonDismiss-a9590195.js');
14
17
  require('filesize');
15
18
  require('../ConfirmationModal-e95f46d7.js');
16
- require('@jobber/hooks');
17
19
  require('../Modal-cc3bd7bf.js');
18
- require('react-dom');
19
- require('framer-motion');
20
20
  require('../Heading-a9a66964.js');
21
21
  require('../Typography-fbe0ed6e.js');
22
- require('../ButtonDismiss-a9590195.js');
23
22
  require('../Content-18de5fbb.js');
24
23
  require('../Markdown-b53e0308.js');
25
24
  require('react-markdown');
@@ -6,7 +6,7 @@ var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
6
6
  var React = require('react');
7
7
  var styleInject_es = require('../style-inject.es-dcee06b6.js');
8
8
  var Avatar = require('../Avatar-cfd04e86.js');
9
- var InputFile = require('../InputFile-3ae4cf99.js');
9
+ var InputFile = require('../InputFile-e108a7f8.js');
10
10
  var ProgressBar = require('../ProgressBar-e9a49129.js');
11
11
  var Button = require('../Button-cd30df0f.js');
12
12
  require('classnames');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var InputFile = require('../InputFile-3ae4cf99.js');
5
+ var InputFile = require('../InputFile-e108a7f8.js');
6
6
  require('../tslib.es6-5b50eb8e.js');
7
7
  require('react');
8
8
  require('classnames');
@@ -44,7 +44,7 @@ function InputFile(_a) {
44
44
  React__default["default"].createElement("input", tslib_es6.__assign({}, getInputProps())),
45
45
  variation === "dropzone" && (React__default["default"].createElement(Content.Content, { spacing: "small" },
46
46
  React__default["default"].createElement(Button.Button, { label: buttonLabel, size: "small", type: "secondary" }),
47
- size === "base" && (React__default["default"].createElement(Typography.Typography, { size: "small", textColor: "greyBlue" }, hintText)))),
47
+ size === "base" && (React__default["default"].createElement(Typography.Typography, { size: "small", textColor: "textSecondary" }, hintText)))),
48
48
  variation === "button" && (React__default["default"].createElement(Button.Button, { label: buttonLabel, size: size, type: "secondary", fullWidth: true }))));
49
49
  function handleDrop(acceptedFiles) {
50
50
  acceptedFiles.forEach(function (file) {
@@ -1,4 +1,4 @@
1
- import "react-image-lightbox/style.css";
1
+ import React from "react";
2
2
  interface PresentedImage {
3
3
  title?: string;
4
4
  caption?: string;
@@ -33,5 +33,5 @@ interface LightBoxProps {
33
33
  */
34
34
  onRequestClose(options: RequestCloseOptions): void;
35
35
  }
36
- export declare function LightBox({ open, images, imageIndex, onRequestClose, }: LightBoxProps): JSX.Element;
36
+ export declare function LightBox({ open, images, imageIndex, onRequestClose, }: LightBoxProps): React.ReactPortal;
37
37
  export {};
@@ -2,12 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var LightBox = require('../LightBox-6aea2128.js');
5
+ var LightBox = require('../LightBox-4eb2e6f0.js');
6
6
  require('../tslib.es6-5b50eb8e.js');
7
7
  require('react');
8
- require('react-image-lightbox');
8
+ require('framer-motion');
9
+ require('react-dom');
10
+ require('lodash/debounce');
11
+ require('@jobber/hooks');
9
12
  require('../style-inject.es-dcee06b6.js');
10
- require('react-image-lightbox/style.css');
13
+ require('../ButtonDismiss-a9590195.js');
14
+ require('../Button-cd30df0f.js');
15
+ require('classnames');
16
+ require('react-router-dom');
17
+ require('../Icon-d5ad1a6d.js');
18
+ require('@jobber/design');
19
+ require('../Typography-fbe0ed6e.js');
11
20
 
12
21
 
13
22
 
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
4
+ var React = require('react');
5
+ var framerMotion = require('framer-motion');
6
+ var ReactDOM = require('react-dom');
7
+ var debounce = require('lodash/debounce');
8
+ var jobberHooks = require('@jobber/hooks');
9
+ var styleInject_es = require('./style-inject.es-dcee06b6.js');
10
+ var ButtonDismiss = require('./ButtonDismiss-a9590195.js');
11
+ var Button = require('./Button-cd30df0f.js');
12
+
13
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
14
+
15
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
+ var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
17
+ var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
18
+
19
+ var css = "._2qgU3ylcPWUJGRthB18cb,\n._27gh3HPkx5J1Ru4Tqp_1tF {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 50%;\n z-index: var(--elevation-base);\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n}\n\n._2qgU3ylcPWUJGRthB18cb {\n right: var(--space-base);\n}\n\n._27gh3HPkx5J1Ru4Tqp_1tF {\n left: var(--space-base);\n}\n\n._3FuSx2b8rfxjzTQKeVn6MW {\n display: -ms-flexbox;\n display: flex;\n position: fixed;\n top: 0;\n left: 0;\n z-index: var(--elevation-modal);\n width: 100%;\n height: 100%;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n._2gGRj41uQJhcl0zcSNgsOA {\n display: -ms-flexbox;\n display: flex;\n z-index: var(--elevation-base);\n padding: var(--space-small) var(--space-base);\n color: var(--color-text--reverse--secondary);\n font-size: var(--typography--fontSize-large);\n background-color: var(--color-surface--reverse);\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n\n.oyIA3-aR1Fvwn0lpp1Mgx {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n._1PPDSsP7v3FAZG3DA--Oq3 {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n position: relative;\n -ms-flex: 1 1 0px;\n flex: 1 1 0;\n min-height: 0;\n}\n\n._23IH8HE3ZATpurQqLyWj-l {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--color-overlay);\n}\n\n._2UNyNw_u8HDWIzzxcSLUU6 {\n position: absolute;\n top: 50%;\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n}\n";
20
+ var styles = {"next":"_2qgU3ylcPWUJGRthB18cb","prev":"_27gh3HPkx5J1Ru4Tqp_1tF","lightboxWrapper":"_3FuSx2b8rfxjzTQKeVn6MW","toolbar":"_2gGRj41uQJhcl0zcSNgsOA","title":"oyIA3-aR1Fvwn0lpp1Mgx","imagesWrapper":"_1PPDSsP7v3FAZG3DA--Oq3","overlay":"_23IH8HE3ZATpurQqLyWj-l","image":"_2UNyNw_u8HDWIzzxcSLUU6"};
21
+ styleInject_es.styleInject(css);
22
+
23
+ var swipeConfidenceThreshold = 10000;
24
+ var swipePower = function (offset, velocity) {
25
+ return Math.abs(offset) * velocity;
26
+ };
27
+ var variants = {
28
+ enter: function (direction) {
29
+ return {
30
+ x: direction > 0 ? 1000 : -1000,
31
+ opacity: 0,
32
+ };
33
+ },
34
+ center: {
35
+ zIndex: 1,
36
+ x: 0,
37
+ opacity: 1,
38
+ },
39
+ exit: function (direction) {
40
+ return {
41
+ zIndex: 0,
42
+ x: direction < 0 ? 1000 : -1000,
43
+ opacity: 0,
44
+ };
45
+ },
46
+ };
47
+ var imageTransition = {
48
+ x: { type: "spring", stiffness: 300, damping: 30 },
49
+ opacity: { duration: 0.2 },
50
+ };
51
+ // A little bit more than the transition's duration
52
+ // We're doing this to prevent a bug from framer-motion
53
+ // https://github.com/framer/motion/issues/1769
54
+ var debounceDuration = 250;
55
+ function LightBox(_a) {
56
+ var open = _a.open, images = _a.images, _b = _a.imageIndex, imageIndex = _b === void 0 ? 0 : _b, onRequestClose = _a.onRequestClose;
57
+ var _c = tslib_es6.__read(React.useState(imageIndex), 2), currentImageIndex = _c[0], setCurrentImageIndex = _c[1];
58
+ var _d = tslib_es6.__read(React.useState(0), 2), direction = _d[0], setDirection = _d[1];
59
+ var lightboxRef = jobberHooks.useFocusTrap(open);
60
+ var debouncedHandleNext = debounce__default["default"](handleMoveNext, debounceDuration);
61
+ var debouncedHandlePrevious = debounce__default["default"](handleMovePrevious, debounceDuration);
62
+ jobberHooks.useRefocusOnActivator(open);
63
+ jobberHooks.useOnKeyDown(handleRequestClose, "Escape");
64
+ jobberHooks.useOnKeyDown(debouncedHandlePrevious, {
65
+ key: "ArrowLeft",
66
+ });
67
+ jobberHooks.useOnKeyDown(debouncedHandleNext, {
68
+ key: "ArrowRight",
69
+ });
70
+ React.useEffect(function () {
71
+ setCurrentImageIndex(imageIndex);
72
+ }, [imageIndex, open]);
73
+ var template = (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement("div", { className: styles.lightboxWrapper, tabIndex: 0, "aria-label": "Lightbox", key: "Lightbox", ref: lightboxRef },
74
+ React__default["default"].createElement("div", { className: styles.toolbar },
75
+ React__default["default"].createElement("span", { className: styles.title }, images[currentImageIndex].title),
76
+ React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { ariaLabel: "Close", onClick: handleRequestClose })),
77
+ React__default["default"].createElement("div", { className: styles.imagesWrapper },
78
+ React__default["default"].createElement(framerMotion.AnimatePresence, { initial: false },
79
+ React__default["default"].createElement(framerMotion.motion.img, { key: currentImageIndex, variants: variants, src: images[currentImageIndex].url, custom: direction, className: styles.image, style: { y: "-50%" }, initial: "enter", animate: "center", exit: "exit", transition: imageTransition, drag: "x", dragConstraints: { left: 0, right: 0 }, dragElastic: 1, onDragEnd: handleOnDragEnd }))),
80
+ React__default["default"].createElement(PreviousButton, { onClick: debouncedHandlePrevious }),
81
+ React__default["default"].createElement(NextButton, { onClick: debouncedHandleNext }),
82
+ React__default["default"].createElement("div", { className: styles.toolbar }, images[currentImageIndex].caption),
83
+ React__default["default"].createElement("div", { className: styles.overlay, onClick: handleRequestClose })))));
84
+ return ReactDOM__default["default"].createPortal(template, document.body);
85
+ function handleMovePrevious() {
86
+ setDirection(-1);
87
+ setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
88
+ }
89
+ function handleMoveNext() {
90
+ setDirection(1);
91
+ setCurrentImageIndex((currentImageIndex + 1) % images.length);
92
+ }
93
+ function handleRequestClose() {
94
+ onRequestClose({ lastPosition: currentImageIndex });
95
+ }
96
+ function handleOnDragEnd(event, _a) {
97
+ var offset = _a.offset, velocity = _a.velocity;
98
+ var swipe = swipePower(offset.x, velocity.x);
99
+ if (swipe < -swipeConfidenceThreshold) {
100
+ handleMoveNext();
101
+ }
102
+ else if (swipe > swipeConfidenceThreshold) {
103
+ handleMovePrevious();
104
+ }
105
+ }
106
+ }
107
+ function PreviousButton(_a) {
108
+ var onClick = _a.onClick;
109
+ return (React__default["default"].createElement("div", { className: styles.prev },
110
+ React__default["default"].createElement(Button.Button, { size: "large", variation: "subtle", type: "secondary", icon: "arrowLeft", ariaLabel: "Previous image", onClick: onClick })));
111
+ }
112
+ function NextButton(_a) {
113
+ var onClick = _a.onClick;
114
+ return (React__default["default"].createElement("div", { className: styles.next },
115
+ React__default["default"].createElement(Button.Button, { size: "large", variation: "subtle", type: "secondary", icon: "arrowRight", ariaLabel: "Next image", onClick: onClick })));
116
+ }
117
+
118
+ exports.LightBox = LightBox;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Menu = require('../Menu-13deda94.js');
5
+ var Menu = require('../Menu-826cfb89.js');
6
6
  require('../tslib.es6-5b50eb8e.js');
7
7
  require('react');
8
8
  require('uuid');
@@ -113,7 +113,7 @@ function Menu(_a) {
113
113
  function SectionHeader(_a) {
114
114
  var text = _a.text;
115
115
  return (React__default["default"].createElement("div", { className: styles.sectionHeader, "aria-hidden": true },
116
- React__default["default"].createElement(Typography.Typography, { element: "h6", size: "small", textCase: "uppercase", textColor: "greyBlue", fontWeight: "bold" }, text)));
116
+ React__default["default"].createElement(Typography.Typography, { element: "h6", size: "small", textCase: "uppercase", textColor: "textSecondary", fontWeight: "bold" }, text)));
117
117
  }
118
118
  function Action(_a) {
119
119
  var label = _a.label, sectionLabel = _a.sectionLabel, icon = _a.icon, onClick = _a.onClick, _b = _a.shouldFocus, shouldFocus = _b === void 0 ? false : _b;
@@ -126,7 +126,7 @@ function Action(_a) {
126
126
  return (React__default["default"].createElement("button", { role: "menuitem", type: "button", className: styles.action, key: label, onClick: onClick, ref: actionButtonRef },
127
127
  icon && (React__default["default"].createElement("span", { className: styles.icon },
128
128
  React__default["default"].createElement(Icon.Icon, { name: icon }))),
129
- React__default["default"].createElement(Typography.Typography, { element: "span", size: "base", textColor: "greyBlueDark" },
129
+ React__default["default"].createElement(Typography.Typography, { element: "span", size: "base", textColor: "text" },
130
130
  sectionLabel && (React__default["default"].createElement("span", { className: styles.screenReaderOnly }, sectionLabel)),
131
131
  label)));
132
132
  }
@@ -12,7 +12,7 @@ var Text = require('../Text-e012fb46.js');
12
12
  var Content = require('../Content-18de5fbb.js');
13
13
  var Markdown = require('../Markdown-b53e0308.js');
14
14
  var Button = require('../Button-cd30df0f.js');
15
- var Menu = require('../Menu-13deda94.js');
15
+ var Menu = require('../Menu-826cfb89.js');
16
16
  var Emphasis = require('../Emphasis-75a3f411.js');
17
17
  require('../Typography-fbe0ed6e.js');
18
18
  require('react-markdown');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "3.4.4-pre.0+e32c9ed0",
3
+ "version": "3.4.5",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -41,7 +41,6 @@
41
41
  "react-datepicker": "^4.10.0",
42
42
  "react-dropzone": "^11.0.2",
43
43
  "react-hook-form": "^6.15.8",
44
- "react-image-lightbox": "^5.1.1",
45
44
  "react-markdown": "^8.0.3",
46
45
  "react-popper": "^2.2.5",
47
46
  "react-router-dom": "~5.2.0",
@@ -85,5 +84,5 @@
85
84
  "> 1%",
86
85
  "IE 10"
87
86
  ],
88
- "gitHead": "e32c9ed063fcf8ccbc2ca159e0810f29e3e120ea"
87
+ "gitHead": "34fab41222c5603f7babe5bb58867c12a9175854"
89
88
  }
package/rollup.config.js CHANGED
@@ -50,8 +50,6 @@ export default {
50
50
  "react-countdown",
51
51
  "react-popper",
52
52
  "react-datepicker",
53
- "react-image-lightbox",
54
- "react-image-lightbox/style.css",
55
53
  "react-dropzone",
56
54
  "axios",
57
55
  "filesize",
@@ -1,42 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
4
- var React = require('react');
5
- var ExternalLightBox = require('react-image-lightbox');
6
- var styleInject_es = require('./style-inject.es-dcee06b6.js');
7
- require('react-image-lightbox/style.css');
8
-
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
- var ExternalLightBox__default = /*#__PURE__*/_interopDefaultLegacy(ExternalLightBox);
13
-
14
- var css = "._23H2TI8rNmnv0zlHOHZooa.ril__outer {\n font-family: var(--typography--fontFamily-normal);\n background-color: transparent;\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer:before {\n content: \"\";\n display: block;\n width: 100%;\n height: 100%;\n background-color: var(--color-overlay);\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer .ril__captionContent {\n color: var(--color-greyBlue--lighter);\n}\n\n._23H2TI8rNmnv0zlHOHZooa.ril__outer .ril__toolbarItem {\n color: var(--color-greyBlue--lighter);\n}\n";
15
- var styles = {"wrapper":"_23H2TI8rNmnv0zlHOHZooa"};
16
- styleInject_es.styleInject(css);
17
-
18
- function LightBox(_a) {
19
- var open = _a.open, images = _a.images, _b = _a.imageIndex, imageIndex = _b === void 0 ? 0 : _b, onRequestClose = _a.onRequestClose;
20
- var _c = tslib_es6.__read(React.useState(imageIndex), 2), currentImageIndex = _c[0], setCurrentImageIndex = _c[1];
21
- var nextSrc = undefined;
22
- var prevSrc = undefined;
23
- if (images.length > 1) {
24
- nextSrc = images[(currentImageIndex + 1) % images.length].url;
25
- prevSrc =
26
- images[(currentImageIndex + images.length - 1) % images.length].url;
27
- }
28
- React.useEffect(function () {
29
- setCurrentImageIndex(imageIndex);
30
- }, [imageIndex]);
31
- return (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement(ExternalLightBox__default["default"], { wrapperClassName: styles.wrapper, mainSrc: images[currentImageIndex].url, enableZoom: false, nextSrc: nextSrc, prevSrc: prevSrc, imageTitle: images[currentImageIndex].title, imageCaption: images[currentImageIndex].caption, onCloseRequest: function () {
32
- return onRequestClose({ lastPosition: currentImageIndex });
33
- }, onMovePrevRequest: handleMovePrevious, onMoveNextRequest: handleMoveNext }))));
34
- function handleMovePrevious() {
35
- setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
36
- }
37
- function handleMoveNext() {
38
- setCurrentImageIndex((currentImageIndex + 1) % images.length);
39
- }
40
- }
41
-
42
- exports.LightBox = LightBox;