@jobber/components 4.2.2-pree.0 → 4.2.2-pree.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 (93) hide show
  1. package/dist/Autocomplete/index.js +22 -21
  2. package/dist/Avatar/index.js +1 -1
  3. package/dist/{Avatar-99324b59.js → Avatar-98b59e17.js} +7 -6
  4. package/dist/Banner/index.js +13 -11
  5. package/dist/Button/index.js +2 -2
  6. package/dist/Button-f7b0f481.js +57 -0
  7. package/dist/ButtonDismiss/index.js +3 -3
  8. package/dist/{ButtonDismiss-bc13d061.js → ButtonDismiss-7b2ceeaa.js} +1 -1
  9. package/dist/Card/index.js +5 -5
  10. package/dist/Card-13d52e52.js +93 -0
  11. package/dist/Checkbox/index.js +3 -3
  12. package/dist/Checkbox-e40acfeb.js +40 -0
  13. package/dist/Chips/index.js +30 -28
  14. package/dist/ConfirmationModal/index.js +10 -10
  15. package/dist/{ConfirmationModal-c8b6667c.js → ConfirmationModal-2ca04371.js} +3 -3
  16. package/dist/Content/index.js +1 -1
  17. package/dist/{Content-373bbaee.js → Content-db546523.js} +5 -3
  18. package/dist/DataDump/index.js +7 -7
  19. package/dist/DataTable/index.js +40 -36
  20. package/dist/DatePicker/index.js +3 -3
  21. package/dist/DatePicker-c0782233.js +109 -0
  22. package/dist/DescriptionList/index.js +4 -3
  23. package/dist/Disclosure/index.js +9 -8
  24. package/dist/Divider/index.js +8 -7
  25. package/dist/Drawer/index.js +11 -10
  26. package/dist/Emphasis/index.js +2 -2
  27. package/dist/{Emphasis-ec5bfff3.js → Emphasis-6794fc77.js} +1 -1
  28. package/dist/FeatureSwitch/index.js +17 -16
  29. package/dist/FormField/index.js +6 -6
  30. package/dist/{FormField-a62cc4de.js → FormField-2ff2e827.js} +24 -23
  31. package/dist/FormatEmail/index.js +3 -2
  32. package/dist/FormatFile/index.js +12 -12
  33. package/dist/FormatFile-4859d303.js +105 -0
  34. package/dist/Gallery/index.js +17 -16
  35. package/dist/Heading/index.js +2 -2
  36. package/dist/{Heading-19272e83.js → Heading-f94abfd1.js} +1 -1
  37. package/dist/InlineLabel/index.js +4 -3
  38. package/dist/InputAvatar/index.js +12 -11
  39. package/dist/InputDate/index.js +7 -7
  40. package/dist/InputEmail/index.js +6 -6
  41. package/dist/InputFile/index.js +4 -4
  42. package/dist/{InputFile-b794ada2.js → InputFile-e59fea12.js} +8 -7
  43. package/dist/InputGroup/index.js +3 -2
  44. package/dist/InputNumber/index.js +6 -6
  45. package/dist/InputPassword/index.js +6 -6
  46. package/dist/InputText/index.js +7 -7
  47. package/dist/{InputText-f8db1a9d.js → InputText-7e6e8eeb.js} +1 -1
  48. package/dist/InputTime/index.js +6 -6
  49. package/dist/InputValidation/index.js +3 -3
  50. package/dist/{InputValidation-96fa6b11.js → InputValidation-e36c9d5e.js} +4 -3
  51. package/dist/LightBox/index.js +4 -4
  52. package/dist/{LightBox-44108d9c.js → LightBox-f310c9db.js} +13 -12
  53. package/dist/List/index.js +22 -19
  54. package/dist/Markdown/index.js +6 -6
  55. package/dist/{Markdown-b38da515.js → Markdown-18a7298f.js} +4 -4
  56. package/dist/Menu/index.js +3 -3
  57. package/dist/{Menu-be1689cd.js → Menu-94526305.js} +13 -12
  58. package/dist/Modal/index.js +5 -5
  59. package/dist/Modal-bb8547df.js +69 -0
  60. package/dist/MultiSelect/index.js +15 -13
  61. package/dist/{Option-7e17c787.js → Option-8dc5fb8f.js} +1 -1
  62. package/dist/Page/index.js +20 -19
  63. package/dist/Popover/index.js +8 -7
  64. package/dist/ProgressBar/index.js +1 -1
  65. package/dist/ProgressBar-8438dd4c.js +28 -0
  66. package/dist/RadioGroup/index.js +8 -7
  67. package/dist/Select/index.js +7 -7
  68. package/dist/Spinner/index.js +1 -1
  69. package/dist/Spinner-3480bc34.js +24 -0
  70. package/dist/StatusLabel/index.js +6 -5
  71. package/dist/Switch/index.js +2 -2
  72. package/dist/Switch-759b4a9b.js +56 -0
  73. package/dist/Table/index.js +10 -8
  74. package/dist/Tabs/index.js +10 -9
  75. package/dist/Text/index.js +2 -2
  76. package/dist/{Text-1c12d786.js → Text-7c99b48d.js} +1 -1
  77. package/dist/Toast/index.js +10 -9
  78. package/dist/Tooltip/index.js +3 -3
  79. package/dist/{Tooltip-8531962b.js → Tooltip-3ab4c6db.js} +7 -6
  80. package/dist/Typography/index.js +1 -1
  81. package/dist/Typography-c0bec306.js +62 -0
  82. package/package.json +2 -2
  83. package/rollup.config.js +1 -0
  84. package/dist/Button-1063207a.js +0 -56
  85. package/dist/Card-e9b9b7c9.js +0 -91
  86. package/dist/Checkbox-ab8fb96e.js +0 -39
  87. package/dist/DatePicker-f62e2518.js +0 -108
  88. package/dist/FormatFile-0a4835e5.js +0 -103
  89. package/dist/Modal-2769f7e5.js +0 -67
  90. package/dist/ProgressBar-ef96b716.js +0 -26
  91. package/dist/Spinner-aca146ee.js +0 -23
  92. package/dist/Switch-061430f9.js +0 -55
  93. package/dist/Typography-01077f8f.js +0 -53
@@ -6,20 +6,20 @@ var tslib_es6 = require('../tslib.es6-5b8768b7.js');
6
6
  var React = require('react');
7
7
  var debounce = require('lodash/debounce');
8
8
  var temporal = require('@std-proposal/temporal');
9
- var FormField = require('../FormField-a62cc4de.js');
9
+ var FormField = require('../FormField-2ff2e827.js');
10
10
  require('uuid');
11
11
  require('react-hook-form');
12
12
  require('../style-inject.es-9d2f5f4e.js');
13
13
  require('classnames');
14
- require('../Button-1063207a.js');
14
+ require('../Button-f7b0f481.js');
15
15
  require('react-router-dom');
16
16
  require('../Icon-405a216c.js');
17
17
  require('@jobber/design');
18
- require('../Typography-01077f8f.js');
19
- require('../Text-1c12d786.js');
20
- require('../InputValidation-96fa6b11.js');
18
+ require('../Typography-c0bec306.js');
19
+ require('../Text-7c99b48d.js');
20
+ require('../InputValidation-e36c9d5e.js');
21
21
  require('framer-motion');
22
- require('../Spinner-aca146ee.js');
22
+ require('../Spinner-3480bc34.js');
23
23
 
24
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
25
 
@@ -2,12 +2,12 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var InputValidation = require('../InputValidation-96fa6b11.js');
5
+ var InputValidation = require('../InputValidation-e36c9d5e.js');
6
6
  require('react');
7
7
  require('framer-motion');
8
8
  require('../style-inject.es-9d2f5f4e.js');
9
- require('../Text-1c12d786.js');
10
- require('../Typography-01077f8f.js');
9
+ require('../Text-7c99b48d.js');
10
+ require('../Typography-c0bec306.js');
11
11
  require('classnames');
12
12
  require('../Icon-405a216c.js');
13
13
  require('@jobber/design');
@@ -3,14 +3,15 @@
3
3
  var React = require('react');
4
4
  var framerMotion = require('framer-motion');
5
5
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
6
- var Text = require('./Text-1c12d786.js');
6
+ var Text = require('./Text-7c99b48d.js');
7
7
  var Icon = require('./Icon-405a216c.js');
8
8
 
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
11
11
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
12
 
13
- var css_248z = ".hasValidationMessage {\n margin-top: var(--space-smaller);\n}\n\n.message {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: var(--space-smaller);\n padding-left: 0;\n}\n\n.message > svg {\n margin-right: var(--space-smaller);\n}\n\n.message:focus {\n box-shadow: var(--shadow-focus);\n outline: none;\n}\n";
13
+ var css_248z = ".sc-bFJieXBA- {\n margin-top: var(--space-smaller);\n}\n\n.xybhC5Y6mk4- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: var(--space-smaller);\n padding-left: 0;\n}\n\n.xybhC5Y6mk4- > svg {\n margin-right: var(--space-smaller);\n}\n\n.xybhC5Y6mk4-:focus {\n box-shadow: var(--shadow-focus);\n outline: none;\n}\n";
14
+ var styles = {"hasValidationMessage":"sc-bFJieXBA-","message":"xybhC5Y6mk4-"};
14
15
  styleInject_es.styleInject(css_248z);
15
16
 
16
17
  function InputValidation({ message }) {
@@ -20,7 +21,7 @@ function InputValidation({ message }) {
20
21
  slideIn: { y: 0, opacity: 1 },
21
22
  };
22
23
  return (React__default["default"].createElement(React__default["default"].Fragment, null, messages && messages.length > 0 && (React__default["default"].createElement(framerMotion.AnimatePresence, { exitBeforeEnter: true }, messages.map(msg => (React__default["default"].createElement(framerMotion.motion.div, { key: `validation-${msg}`, variants: variants, initial: "slideOut", animate: "slideIn", exit: "slideOut", transition: { duration: 0.2 } },
23
- React__default["default"].createElement("div", { className: css_248z.message, "aria-live": "assertive", role: "alert", tabIndex: 0 },
24
+ React__default["default"].createElement("div", { className: styles.message, "aria-live": "assertive", role: "alert", tabIndex: 0 },
24
25
  React__default["default"].createElement(Icon.Icon, { name: "alert", size: "small", color: "critical" }),
25
26
  React__default["default"].createElement(Text.Text, { size: "small", variation: "error" }, msg)))))))));
26
27
  }
@@ -2,20 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var LightBox = require('../LightBox-44108d9c.js');
5
+ var LightBox = require('../LightBox-f310c9db.js');
6
6
  require('react');
7
7
  require('framer-motion');
8
8
  require('react-dom');
9
9
  require('lodash/debounce');
10
10
  require('@jobber/hooks');
11
11
  require('../style-inject.es-9d2f5f4e.js');
12
- require('../ButtonDismiss-bc13d061.js');
13
- require('../Button-1063207a.js');
12
+ require('../ButtonDismiss-7b2ceeaa.js');
13
+ require('../Button-f7b0f481.js');
14
14
  require('classnames');
15
15
  require('react-router-dom');
16
16
  require('../Icon-405a216c.js');
17
17
  require('@jobber/design');
18
- require('../Typography-01077f8f.js');
18
+ require('../Typography-c0bec306.js');
19
19
 
20
20
 
21
21
 
@@ -6,8 +6,8 @@ var ReactDOM = require('react-dom');
6
6
  var debounce = require('lodash/debounce');
7
7
  var jobberHooks = require('@jobber/hooks');
8
8
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
9
- var ButtonDismiss = require('./ButtonDismiss-bc13d061.js');
10
- var Button = require('./Button-1063207a.js');
9
+ var ButtonDismiss = require('./ButtonDismiss-7b2ceeaa.js');
10
+ var Button = require('./Button-f7b0f481.js');
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
@@ -15,7 +15,8 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
15
  var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
16
16
  var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
17
17
 
18
- var css_248z = ".next,\n.prev {\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.next {\n right: var(--space-base);\n}\n\n.prev {\n left: var(--space-base);\n}\n\n.lightboxWrapper {\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.toolbar {\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.title {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.imagesWrapper {\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.overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--color-overlay);\n}\n\n.image {\n position: absolute;\n top: 50%;\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n}\n";
18
+ var css_248z = "._3JgBCebdbNU-,\n.JJOBEL7d-10- {\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._3JgBCebdbNU- {\n right: var(--space-base);\n}\n\n.JJOBEL7d-10- {\n left: var(--space-base);\n}\n\n.fAep1A-0xIU- {\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.AfUUWErd5S4- {\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.ysUYbBTaORk- {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.GSOVtN1Y3IU- {\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.-V917BdNqSs- {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: var(--color-overlay);\n}\n\n.sjwUjzb3a5c- {\n position: absolute;\n top: 50%;\n max-width: 100%;\n max-height: 100%;\n margin: auto;\n}\n";
19
+ var styles = {"next":"_3JgBCebdbNU-","prev":"JJOBEL7d-10-","lightboxWrapper":"fAep1A-0xIU-","toolbar":"AfUUWErd5S4-","title":"ysUYbBTaORk-","imagesWrapper":"GSOVtN1Y3IU-","overlay":"-V917BdNqSs-","image":"sjwUjzb3a5c-"};
19
20
  styleInject_es.styleInject(css_248z);
20
21
 
21
22
  /* eslint-disable max-statements */
@@ -68,18 +69,18 @@ function LightBox({ open, images, imageIndex = 0, onRequestClose, }) {
68
69
  React.useEffect(() => {
69
70
  setCurrentImageIndex(imageIndex);
70
71
  }, [imageIndex, open]);
71
- const template = (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement("div", { className: css_248z.lightboxWrapper, tabIndex: 0, "aria-label": "Lightbox", key: "Lightbox", ref: lightboxRef },
72
- React__default["default"].createElement("div", { className: css_248z.toolbar },
73
- React__default["default"].createElement("span", { className: css_248z.title }, images[currentImageIndex].title),
72
+ const 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 },
73
+ React__default["default"].createElement("div", { className: styles.toolbar },
74
+ React__default["default"].createElement("span", { className: styles.title }, images[currentImageIndex].title),
74
75
  React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { ariaLabel: "Close", onClick: handleRequestClose })),
75
- React__default["default"].createElement("div", { className: css_248z.imagesWrapper },
76
+ React__default["default"].createElement("div", { className: styles.imagesWrapper },
76
77
  React__default["default"].createElement(framerMotion.AnimatePresence, { initial: false },
77
- React__default["default"].createElement(framerMotion.motion.img, { key: currentImageIndex, variants: variants, src: images[currentImageIndex].url, custom: direction, className: css_248z.image, style: { y: "-50%" }, initial: "enter", animate: "center", exit: "exit", transition: imageTransition, drag: "x", dragConstraints: { left: 0, right: 0 }, dragElastic: 1, onDragEnd: handleOnDragEnd }))),
78
+ 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 }))),
78
79
  images.length > 1 && (React__default["default"].createElement(React__default["default"].Fragment, null,
79
80
  React__default["default"].createElement(PreviousButton, { onClick: debouncedHandlePrevious }),
80
81
  React__default["default"].createElement(NextButton, { onClick: debouncedHandleNext }))),
81
- React__default["default"].createElement("div", { className: css_248z.toolbar }, images[currentImageIndex].caption),
82
- React__default["default"].createElement("div", { className: css_248z.overlay, onClick: handleRequestClose })))));
82
+ React__default["default"].createElement("div", { className: styles.toolbar }, images[currentImageIndex].caption),
83
+ React__default["default"].createElement("div", { className: styles.overlay, onClick: handleRequestClose })))));
83
84
  return ReactDOM__default["default"].createPortal(template, document.body);
84
85
  function handleMovePrevious() {
85
86
  setDirection(-1);
@@ -103,11 +104,11 @@ function LightBox({ open, images, imageIndex = 0, onRequestClose, }) {
103
104
  }
104
105
  }
105
106
  function PreviousButton({ onClick }) {
106
- return (React__default["default"].createElement("div", { className: css_248z.prev },
107
+ return (React__default["default"].createElement("div", { className: styles.prev },
107
108
  React__default["default"].createElement(Button.Button, { size: "large", variation: "subtle", type: "secondary", icon: "arrowLeft", ariaLabel: "Previous image", onClick: onClick })));
108
109
  }
109
110
  function NextButton({ onClick }) {
110
- return (React__default["default"].createElement("div", { className: css_248z.next },
111
+ return (React__default["default"].createElement("div", { className: styles.next },
111
112
  React__default["default"].createElement(Button.Button, { size: "large", variation: "subtle", type: "secondary", icon: "arrowRight", ariaLabel: "Next image", onClick: onClick })));
112
113
  }
113
114
 
@@ -7,54 +7,57 @@ var classnames = require('classnames');
7
7
  var lodash = require('lodash');
8
8
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
9
9
  var Icon = require('../Icon-405a216c.js');
10
- var Text = require('../Text-1c12d786.js');
11
- var Heading = require('../Heading-19272e83.js');
12
- var Typography = require('../Typography-01077f8f.js');
13
- var Markdown = require('../Markdown-b38da515.js');
14
- var Emphasis = require('../Emphasis-ec5bfff3.js');
10
+ var Text = require('../Text-7c99b48d.js');
11
+ var Heading = require('../Heading-f94abfd1.js');
12
+ var Typography = require('../Typography-c0bec306.js');
13
+ var Markdown = require('../Markdown-18a7298f.js');
14
+ var Emphasis = require('../Emphasis-6794fc77.js');
15
15
  require('@jobber/design');
16
16
  require('react-markdown');
17
- require('../Content-373bbaee.js');
17
+ require('../Content-db546523.js');
18
18
 
19
19
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
20
 
21
21
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
22
22
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
23
23
 
24
- var css_248z$2 = ".list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.item:not(:last-child) {\n border-bottom: var(--border-base) solid var(--color-border);\n}\n\n.section {\n position: relative;\n}\n\n.section:not(:last-child) .list {\n padding-bottom: var(--space-large);\n}\n";
24
+ var css_248z$2 = ".u853Ql4cj50- {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n.ig9l6LfEgwo-:not(:last-child) {\n border-bottom: var(--border-base) solid var(--color-border);\n}\n\n.KIYTQdrufzY- {\n position: relative;\n}\n\n.KIYTQdrufzY-:not(:last-child) .u853Ql4cj50- {\n padding-bottom: var(--space-large);\n}\n";
25
+ var styles$1 = {"list":"u853Ql4cj50-","item":"ig9l6LfEgwo-","section":"KIYTQdrufzY-"};
25
26
  styleInject_es.styleInject(css_248z$2);
26
27
 
27
- var css_248z$1 = ".sectionHeader {\n position: sticky;\n top: 0;\n padding: var(--space-small) var(--space-base);\n border-bottom: 1px solid var(--color-border--section);\n background-color: var(--color-surface);\n}\n\n.greyBlue {\n border-bottom-color: var(--color-greyBlue--light);\n color: var(--color-greyBlue--light);\n}\n\n.green {\n border-bottom-color: var(--color-green);\n color: var(--color-green);\n}\n\n.blue,\n.archived {\n border-bottom-color: var(--color-blue);\n color: var(--color-blue);\n}\n\n.orange {\n border-bottom-color: var(--color-orange);\n color: var(--color-orange);\n}\n\n.red {\n border-bottom-color: var(--color-red);\n color: var(--color-red);\n}\n\n.teal {\n border-bottom-color: var(--color-teal);\n color: var(--color-teal);\n}\n";
28
+ var css_248z$1 = ".LUlooG82UJA- {\n position: sticky;\n top: 0;\n padding: var(--space-small) var(--space-base);\n border-bottom: 1px solid var(--color-border--section);\n background-color: var(--color-surface);\n}\n\n._4LVpgNq-SLM- {\n border-bottom-color: var(--color-greyBlue--light);\n color: var(--color-greyBlue--light);\n}\n\n._0QhWokyE9PY- {\n border-bottom-color: var(--color-green);\n color: var(--color-green);\n}\n\n.J8wB3qqOlBc-,\n.Ujqj17pKDIE- {\n border-bottom-color: var(--color-blue);\n color: var(--color-blue);\n}\n\n._0lNxLGXhrfY- {\n border-bottom-color: var(--color-orange);\n color: var(--color-orange);\n}\n\n._4qPymF0CAAE- {\n border-bottom-color: var(--color-red);\n color: var(--color-red);\n}\n\n.kKYNLBSu9IQ- {\n border-bottom-color: var(--color-teal);\n color: var(--color-teal);\n}\n";
29
+ var sectionStyles = {"sectionHeader":"LUlooG82UJA-","greyBlue":"_4LVpgNq-SLM-","green":"_0QhWokyE9PY-","blue":"J8wB3qqOlBc-","archived":"Ujqj17pKDIE-","orange":"_0lNxLGXhrfY-","red":"_4qPymF0CAAE-","teal":"kKYNLBSu9IQ-"};
28
30
  styleInject_es.styleInject(css_248z$1);
29
31
 
30
- var css_248z = ".action {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n box-sizing: border-box;\n padding: var(--space-small);\n border: none;\n text-align: left;\n text-decoration: none;\n background-color: transparent;\n transition: background-color var(--timing-base);\n -webkit-appearance: none;\n appearance: none;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.action > * {\n padding: var(--space-small);\n}\n\n.hoverable {\n cursor: pointer;\n}\n\n.hoverable:hover,\n.hoverable:focus {\n outline: none;\n background-color: var(--color-surface--hover);\n}\n\n.icon {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: var(--space-large);\n height: var(--space-large);\n box-sizing: content-box;\n}\n\n.info {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-width: 0;\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n.amount {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n text-align: right;\n}\n\n/* States */\n\n.isActive {\n background-color: var(--color-surface--active);\n}\n\n/* TODO: Move truncate in typography */\n\n.truncate {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n";
32
+ var css_248z = ".XPLf4Jp6feU- {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n box-sizing: border-box;\n padding: var(--space-small);\n border: none;\n text-align: left;\n text-decoration: none;\n background-color: transparent;\n transition: background-color var(--timing-base);\n -webkit-appearance: none;\n appearance: none;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n.XPLf4Jp6feU- > * {\n padding: var(--space-small);\n}\n\n.RseHYbVm4MA- {\n cursor: pointer;\n}\n\n.RseHYbVm4MA-:hover,\n.RseHYbVm4MA-:focus {\n outline: none;\n background-color: var(--color-surface--hover);\n}\n\n.d1-zQvxPH-M- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: var(--space-large);\n height: var(--space-large);\n box-sizing: content-box;\n}\n\n._-58VuZf1TtM- {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n min-width: 0;\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n.wHB5zXYWW3E- {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n text-align: right;\n}\n\n/* States */\n\n.C4DznaxLKiw- {\n background-color: var(--color-surface--active);\n}\n\n/* TODO: Move truncate in typography */\n\n.Brob-IpVv4o- {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n";
33
+ var styles = {"action":"XPLf4Jp6feU-","hoverable":"RseHYbVm4MA-","icon":"d1-zQvxPH-M-","info":"_-58VuZf1TtM-","amount":"wHB5zXYWW3E-","isActive":"C4DznaxLKiw-","truncate":"Brob-IpVv4o-"};
31
34
  styleInject_es.styleInject(css_248z);
32
35
 
33
36
  function ListItem({ caption, content, icon, iconColor, id, isActive, onClick, title, url, value, }) {
34
- const actionClasses = classnames__default["default"](css_248z.action, isActive && css_248z.isActive, (onClick || url) && css_248z.hoverable);
37
+ const actionClasses = classnames__default["default"](styles.action, isActive && styles.isActive, (onClick || url) && styles.hoverable);
35
38
  const Wrapper = url ? "a" : "button";
36
39
  const buttonProps = Object.assign({}, (Wrapper === "button" && { role: "button", type: "button" }));
37
40
  return (React__default["default"].createElement(Wrapper, Object.assign({ id: id.toString(), className: actionClasses, href: url, onClick: onClick }, buttonProps),
38
- icon && (React__default["default"].createElement("div", { className: css_248z.icon },
41
+ icon && (React__default["default"].createElement("div", { className: styles.icon },
39
42
  React__default["default"].createElement(Icon.Icon, { name: icon, color: iconColor }))),
40
- React__default["default"].createElement("div", { className: css_248z.info },
43
+ React__default["default"].createElement("div", { className: styles.info },
41
44
  title && React__default["default"].createElement(Heading.Heading, { level: 5 }, title),
42
45
  React__default["default"].createElement(Description, { content: content }),
43
46
  caption && (React__default["default"].createElement(Text.Text, { variation: "subdued" },
44
47
  React__default["default"].createElement(Typography.Typography, { element: "span", size: "small", emphasisType: "italic" }, caption)))),
45
- value && (React__default["default"].createElement("div", { className: css_248z.amount },
48
+ value && (React__default["default"].createElement("div", { className: styles.amount },
46
49
  React__default["default"].createElement(Text.Text, null,
47
50
  React__default["default"].createElement(Emphasis.Emphasis, { variation: "bold" }, value))))));
48
51
  }
49
52
  function Description({ content }) {
50
53
  if (content instanceof Array) {
51
54
  return (React__default["default"].createElement(React__default["default"].Fragment, null, content.map((item, i) => (React__default["default"].createElement(Text.Text, { key: i },
52
- React__default["default"].createElement("span", { className: css_248z.truncate },
55
+ React__default["default"].createElement("span", { className: styles.truncate },
53
56
  React__default["default"].createElement(Markdown.Markdown, { content: item, basicUsage: true })))))));
54
57
  }
55
58
  else {
56
59
  return (React__default["default"].createElement(Text.Text, null,
57
- React__default["default"].createElement("span", { className: css_248z.truncate },
60
+ React__default["default"].createElement("span", { className: styles.truncate },
58
61
  React__default["default"].createElement(Markdown.Markdown, { content: content, basicUsage: true }))));
59
62
  }
60
63
  }
@@ -69,16 +72,16 @@ function List({ items }) {
69
72
  }
70
73
  }
71
74
  function DisplayList({ items }) {
72
- return (React__default["default"].createElement("ul", { className: css_248z$2.list }, items.map(item => (React__default["default"].createElement("li", { key: item.id, className: css_248z$2.item },
75
+ return (React__default["default"].createElement("ul", { className: styles$1.list }, items.map(item => (React__default["default"].createElement("li", { key: item.id, className: styles$1.item },
73
76
  React__default["default"].createElement(ListItem, Object.assign({}, item)))))));
74
77
  }
75
78
  function SectionedList({ items }) {
76
79
  const sectionedItems = lodash.groupBy(items, item => lodash.get(item, "section", "Other"));
77
- const sectionHeaderClassNames = classnames__default["default"](css_248z$1.sectionHeader);
78
- return (React__default["default"].createElement("ul", { className: css_248z$2.list }, Object.keys(sectionedItems).map(sectionName => (React__default["default"].createElement("li", { key: sectionName, className: css_248z$2.section },
80
+ const sectionHeaderClassNames = classnames__default["default"](sectionStyles.sectionHeader);
81
+ return (React__default["default"].createElement("ul", { className: styles$1.list }, Object.keys(sectionedItems).map(sectionName => (React__default["default"].createElement("li", { key: sectionName, className: styles$1.section },
79
82
  React__default["default"].createElement("div", { className: sectionHeaderClassNames },
80
83
  React__default["default"].createElement(Typography.Typography, { element: "h4", fontWeight: "bold", size: "large" }, sectionName)),
81
- React__default["default"].createElement("ul", { className: css_248z$2.list }, sectionedItems[sectionName].map(item => (React__default["default"].createElement("li", { key: item.id, className: css_248z$2.item },
84
+ React__default["default"].createElement("ul", { className: styles$1.list }, sectionedItems[sectionName].map(item => (React__default["default"].createElement("li", { key: item.id, className: styles$1.item },
82
85
  React__default["default"].createElement(ListItem, Object.assign({}, item)))))))))));
83
86
  }
84
87
 
@@ -2,16 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Markdown = require('../Markdown-b38da515.js');
5
+ var Markdown = require('../Markdown-18a7298f.js');
6
6
  require('react');
7
7
  require('react-markdown');
8
- require('../Text-1c12d786.js');
9
- require('../Typography-01077f8f.js');
8
+ require('../Text-7c99b48d.js');
9
+ require('../Typography-c0bec306.js');
10
10
  require('classnames');
11
11
  require('../style-inject.es-9d2f5f4e.js');
12
- require('../Emphasis-ec5bfff3.js');
13
- require('../Heading-19272e83.js');
14
- require('../Content-373bbaee.js');
12
+ require('../Emphasis-6794fc77.js');
13
+ require('../Heading-f94abfd1.js');
14
+ require('../Content-db546523.js');
15
15
 
16
16
 
17
17
 
@@ -2,10 +2,10 @@
2
2
 
3
3
  var React = require('react');
4
4
  var ReactMarkdown = require('react-markdown');
5
- var Text = require('./Text-1c12d786.js');
6
- var Emphasis = require('./Emphasis-ec5bfff3.js');
7
- var Heading = require('./Heading-19272e83.js');
8
- var Content = require('./Content-373bbaee.js');
5
+ var Text = require('./Text-7c99b48d.js');
6
+ var Emphasis = require('./Emphasis-6794fc77.js');
7
+ var Heading = require('./Heading-f94abfd1.js');
8
+ var Content = require('./Content-db546523.js');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
11
 
@@ -2,18 +2,18 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Menu = require('../Menu-be1689cd.js');
5
+ var Menu = require('../Menu-94526305.js');
6
6
  require('react');
7
7
  require('uuid');
8
8
  require('classnames');
9
9
  require('framer-motion');
10
10
  require('@jobber/hooks');
11
11
  require('../style-inject.es-9d2f5f4e.js');
12
- require('../Button-1063207a.js');
12
+ require('../Button-f7b0f481.js');
13
13
  require('react-router-dom');
14
14
  require('../Icon-405a216c.js');
15
15
  require('@jobber/design');
16
- require('../Typography-01077f8f.js');
16
+ require('../Typography-c0bec306.js');
17
17
 
18
18
 
19
19
 
@@ -6,8 +6,8 @@ var classnames = require('classnames');
6
6
  var framerMotion = require('framer-motion');
7
7
  var jobberHooks = require('@jobber/hooks');
8
8
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
9
- var Button = require('./Button-1063207a.js');
10
- var Typography = require('./Typography-01077f8f.js');
9
+ var Button = require('./Button-f7b0f481.js');
10
+ var Typography = require('./Typography-c0bec306.js');
11
11
  var Icon = require('./Icon-405a216c.js');
12
12
 
13
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -15,7 +15,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
15
15
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
16
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
17
17
 
18
- var css_248z = ".wrapper * {\n box-sizing: border-box;\n}\n\n.wrapper {\n display: inline-block;\n position: relative;\n}\n\n.menu {\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: var(--elevation-menu);\n width: 100%;\n max-height: 72vh;\n padding: var(--space-small);\n padding-bottom: calc(env(safe-area-inset-bottom) + var(--space-small));\n border-radius: var(--radius-base) var(--radius-base) 0 0;\n -webkit-overflow-scrolling: touch;\n overflow-y: scroll;\n background-color: var(--color-surface)\n}\n\n@media (min-width: 640px) {\n\n.menu {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (--medium-screens) {\n\n.menu {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (min-width: 640px) {\n\n.above {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (--medium-screens) {\n\n.above {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n.below {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (--medium-screens) {\n\n.below {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n.left {\n right: 0;\n left: auto\n}\n }\n\n@media (--medium-screens) {\n\n.left {\n right: 0;\n left: auto\n}\n }\n\n@media (min-width: 640px) {\n\n.right {\n right: auto;\n left: 0\n}\n }\n\n@media (--medium-screens) {\n\n.right {\n right: auto;\n left: 0\n}\n }\n\n.section {\n padding: var(--space-small) 0;\n border-bottom: var(--border-base) dotted var(--color-border);\n}\n\n.section:first-of-type {\n padding-top: 0;\n}\n\n.section:last-of-type {\n padding-bottom: 0;\n border-bottom: none;\n}\n\n.sectionHeader {\n padding: var(--space-small);\n}\n\n.action {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n padding: var(--space-small);\n border: none;\n border-radius: var(--radius-base);\n background-color: transparent;\n cursor: pointer;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.action:hover,\n.action:focus {\n background-color: var(--color-surface--hover);\n outline-color: var(--color-focus);\n}\n\n.icon {\n margin-right: var(--space-base);\n}\n\n.overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: var(--elevation-menu);\n background-color: var(--color-overlay)\n}\n\n@media (min-width: 640px) {\n\n.overlay {\n background-color: transparent\n}\n }\n\n@media (--medium-screens) {\n\n.overlay {\n background-color: transparent\n}\n }\n\n.fullWidth {\n width: 100%;\n}\n\n.screenReaderOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n}\n";
18
+ var css_248z = ".dT6M9tp1sZc- * {\n box-sizing: border-box;\n}\n\n.dT6M9tp1sZc- {\n display: inline-block;\n position: relative;\n}\n\n.Qmxlsj0D3qM- {\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: var(--elevation-menu);\n width: 100%;\n max-height: 72vh;\n padding: var(--space-small);\n padding-bottom: calc(env(safe-area-inset-bottom) + var(--space-small));\n border-radius: var(--radius-base) var(--radius-base) 0 0;\n -webkit-overflow-scrolling: touch;\n overflow-y: scroll;\n background-color: var(--color-surface)\n}\n\n@media (min-width: 640px) {\n\n.Qmxlsj0D3qM- {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (--medium-screens) {\n\n.Qmxlsj0D3qM- {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (min-width: 640px) {\n\n.QTisUfiHwL4- {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (--medium-screens) {\n\n.QTisUfiHwL4- {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n.qsch1dlpOHc- {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (--medium-screens) {\n\n.qsch1dlpOHc- {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n._0xR9-oxWMOU- {\n right: 0;\n left: auto\n}\n }\n\n@media (--medium-screens) {\n\n._0xR9-oxWMOU- {\n right: 0;\n left: auto\n}\n }\n\n@media (min-width: 640px) {\n\n.gaZwsdyoG0k- {\n right: auto;\n left: 0\n}\n }\n\n@media (--medium-screens) {\n\n.gaZwsdyoG0k- {\n right: auto;\n left: 0\n}\n }\n\n.LaKFjYCLHZc- {\n padding: var(--space-small) 0;\n border-bottom: var(--border-base) dotted var(--color-border);\n}\n\n.LaKFjYCLHZc-:first-of-type {\n padding-top: 0;\n}\n\n.LaKFjYCLHZc-:last-of-type {\n padding-bottom: 0;\n border-bottom: none;\n}\n\n._7HB7dWnqCi0- {\n padding: var(--space-small);\n}\n\n.ZuceCiefKqw- {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n padding: var(--space-small);\n border: none;\n border-radius: var(--radius-base);\n background-color: transparent;\n cursor: pointer;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.ZuceCiefKqw-:hover,\n.ZuceCiefKqw-:focus {\n background-color: var(--color-surface--hover);\n outline-color: var(--color-focus);\n}\n\n.Bz8TONF8kws- {\n margin-right: var(--space-base);\n}\n\n.eKnUAucwwWU- {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: var(--elevation-menu);\n background-color: var(--color-overlay)\n}\n\n@media (min-width: 640px) {\n\n.eKnUAucwwWU- {\n background-color: transparent\n}\n }\n\n@media (--medium-screens) {\n\n.eKnUAucwwWU- {\n background-color: transparent\n}\n }\n\n.oaxefr58z-E- {\n width: 100%;\n}\n\n.vz9opIdwHFg- {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n}\n";
19
+ var styles = {"wrapper":"dT6M9tp1sZc-","menu":"Qmxlsj0D3qM-","above":"QTisUfiHwL4-","below":"qsch1dlpOHc-","left":"_0xR9-oxWMOU-","right":"gaZwsdyoG0k-","section":"LaKFjYCLHZc-","sectionHeader":"_7HB7dWnqCi0-","action":"ZuceCiefKqw-","icon":"Bz8TONF8kws-","overlay":"eKnUAucwwWU-","fullWidth":"oaxefr58z-E-","screenReaderOnly":"vz9opIdwHFg-"};
19
20
  styleInject_es.styleInject(css_248z);
20
21
 
21
22
  const variation = {
@@ -65,9 +66,9 @@ function Menu({ activator, items }) {
65
66
  if (!activator) {
66
67
  activator = (React__default["default"].createElement(Button.Button, { fullWidth: true, label: "More Actions", icon: "more", type: "secondary" }));
67
68
  }
68
- const menuClasses = classnames__default["default"](css_248z.menu, position.vertical === "above" && css_248z.above, position.vertical === "below" && css_248z.below, position.horizontal === "left" && css_248z.left, position.horizontal === "right" && css_248z.right);
69
- const wrapperClasses = classnames__default["default"](css_248z.wrapper, {
70
- [css_248z.fullWidth]: fullWidth,
69
+ const menuClasses = classnames__default["default"](styles.menu, position.vertical === "above" && styles.above, position.vertical === "below" && styles.below, position.horizontal === "left" && styles.left, position.horizontal === "right" && styles.right);
70
+ const wrapperClasses = classnames__default["default"](styles.wrapper, {
71
+ [styles.fullWidth]: fullWidth,
71
72
  });
72
73
  return (React__default["default"].createElement("div", { className: wrapperClasses, ref: wrapperRef },
73
74
  React__default["default"].cloneElement(activator, {
@@ -78,14 +79,14 @@ function Menu({ activator, items }) {
78
79
  ariaHaspopup: true,
79
80
  }),
80
81
  React__default["default"].createElement(framerMotion.AnimatePresence, null, visible && (React__default["default"].createElement(React__default["default"].Fragment, null,
81
- React__default["default"].createElement(framerMotion.motion.div, { className: css_248z.overlay, onClick: toggle(), variants: variation, initial: "overlayStartStop", animate: "done", exit: "overlayStartStop", transition: {
82
+ React__default["default"].createElement(framerMotion.motion.div, { className: styles.overlay, onClick: toggle(), variants: variation, initial: "overlayStartStop", animate: "done", exit: "overlayStartStop", transition: {
82
83
  type: "tween",
83
84
  duration: 0.15,
84
85
  } }),
85
86
  React__default["default"].createElement(framerMotion.motion.div, { className: menuClasses, role: "menu", "aria-labelledby": buttonID, id: menuID, onClick: hide, variants: variation, initial: "startOrStop", animate: "done", exit: "startOrStop", custom: position, transition: {
86
87
  type: "tween",
87
88
  duration: 0.25,
88
- } }, items.map((item, key) => (React__default["default"].createElement("div", { key: key, className: css_248z.section },
89
+ } }, items.map((item, key) => (React__default["default"].createElement("div", { key: key, className: styles.section },
89
90
  item.header && React__default["default"].createElement(SectionHeader, { text: item.header }),
90
91
  item.actions.map((action, index) => (React__default["default"].createElement(Action, Object.assign({ sectionLabel: item.header, key: action.label, shouldFocus: key === 0 && index === 0 }, action)))))))))))));
91
92
  function toggle(callbackPassthrough) {
@@ -107,7 +108,7 @@ function Menu({ activator, items }) {
107
108
  }
108
109
  }
109
110
  function SectionHeader({ text }) {
110
- return (React__default["default"].createElement("div", { className: css_248z.sectionHeader, "aria-hidden": true },
111
+ return (React__default["default"].createElement("div", { className: styles.sectionHeader, "aria-hidden": true },
111
112
  React__default["default"].createElement(Typography.Typography, { element: "h6", size: "small", textCase: "uppercase", textColor: "textSecondary", fontWeight: "bold" }, text)));
112
113
  }
113
114
  function Action({ label, sectionLabel, icon, onClick, shouldFocus = false, }) {
@@ -117,11 +118,11 @@ function Action({ label, sectionLabel, icon, onClick, shouldFocus = false, }) {
117
118
  actionButtonRef.current.focus();
118
119
  }
119
120
  }, [shouldFocus]);
120
- return (React__default["default"].createElement("button", { role: "menuitem", type: "button", className: css_248z.action, key: label, onClick: onClick, ref: actionButtonRef },
121
- icon && (React__default["default"].createElement("span", { className: css_248z.icon },
121
+ return (React__default["default"].createElement("button", { role: "menuitem", type: "button", className: styles.action, key: label, onClick: onClick, ref: actionButtonRef },
122
+ icon && (React__default["default"].createElement("span", { className: styles.icon },
122
123
  React__default["default"].createElement(Icon.Icon, { name: icon }))),
123
124
  React__default["default"].createElement(Typography.Typography, { element: "span", size: "base", textColor: "text" },
124
- sectionLabel && (React__default["default"].createElement("span", { className: css_248z.screenReaderOnly }, sectionLabel)),
125
+ sectionLabel && (React__default["default"].createElement("span", { className: styles.screenReaderOnly }, sectionLabel)),
125
126
  label)));
126
127
  }
127
128
 
@@ -2,20 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Modal = require('../Modal-2769f7e5.js');
5
+ var Modal = require('../Modal-bb8547df.js');
6
6
  require('react');
7
7
  require('react-dom');
8
8
  require('classnames');
9
9
  require('framer-motion');
10
10
  require('@jobber/hooks');
11
11
  require('../style-inject.es-9d2f5f4e.js');
12
- require('../Heading-19272e83.js');
13
- require('../Typography-01077f8f.js');
14
- require('../Button-1063207a.js');
12
+ require('../Heading-f94abfd1.js');
13
+ require('../Typography-c0bec306.js');
14
+ require('../Button-f7b0f481.js');
15
15
  require('react-router-dom');
16
16
  require('../Icon-405a216c.js');
17
17
  require('@jobber/design');
18
- require('../ButtonDismiss-bc13d061.js');
18
+ require('../ButtonDismiss-7b2ceeaa.js');
19
19
 
20
20
 
21
21
 
@@ -0,0 +1,69 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var ReactDOM = require('react-dom');
5
+ var classnames = require('classnames');
6
+ var framerMotion = require('framer-motion');
7
+ var jobberHooks = require('@jobber/hooks');
8
+ var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
9
+ var Heading = require('./Heading-f94abfd1.js');
10
+ var Button = require('./Button-f7b0f481.js');
11
+ var ButtonDismiss = require('./ButtonDismiss-7b2ceeaa.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 classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
18
+
19
+ var css_248z$1 = ":root {\n --modal--width: calc(var(--base-unit) * 37.5);\n --modal--padding: var(--space-base);\n}\n\n@media (min-width: 640px) {\n :root {\n --modal--padding: var(--space-base) var(--space-large);\n }\n}\n\n@media (--medium-screens) {\n :root {\n --modal--padding: var(--space-base) var(--space-large);\n }\n}\n\n.QGRLFHPoV5E- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n z-index: var(--elevation-modal);\n padding: var(--space-small);\n overflow: auto;\n}\n\n.QGRLFHPoV5E-,\n._4WzGOMUGj5I- {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n._4WzGOMUGj5I- {\n background-color: var(--color-overlay);\n}\n\n.WLId2NJBQcQ- {\n --public-tab--inset: var(--space-large);\n\n position: relative;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n width: 100%;\n max-width: calc(var(--base-unit) * 37.5);\n max-width: var(--modal--width);\n margin: auto;\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n outline-color: var(--color-focus);\n background-color: var(--color-surface);\n}\n\n/* Adjust `Content` components public padding to match the modal */\n\n.WLId2NJBQcQ- > * {\n --public-content--padding: var(--modal--padding);\n}\n\n/* Remove the nested `Content` components public padding */\n\n.WLId2NJBQcQ- > * > * {\n --public-content--padding: 0;\n}\n\n.wjrPpIUNNrk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n padding: var(--space-base);\n padding: var(--modal--padding);\n background-color: var(--color-surface--background);\n}\n\n.rKvigUnOyYE- {\n padding: 0;\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n}\n\n._62c8HLZFwvs- {\n display: -ms-flexbox;\n display: flex;\n padding: var(--space-base);\n padding: var(--modal--padding);\n padding-top: 0;\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n\n/**\n * 1. Use CSS `order` to adjust the buttons position on the UI\n */\n\n.Xl1Ptn-P9Ew- {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n -ms-flex-order: 1;\n order: 1; /* 1 */\n}\n\n.p2s7GtpoZz0- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-order: 2;\n order: 2; /* 1 */\n}\n\n.p2s7GtpoZz0- > * {\n margin-left: var(--space-small);\n}\n\n.p2s7GtpoZz0- *:first-child {\n -ms-flex-order: 2;\n order: 2; /* 1 */\n}\n\n.p2s7GtpoZz0- *:nth-child(2) {\n -ms-flex-order: 1;\n order: 1; /* 1 */\n}\n";
20
+ var styles = {"container":"QGRLFHPoV5E-","overlay":"_4WzGOMUGj5I-","modal":"WLId2NJBQcQ-","header":"wjrPpIUNNrk-","closeButton":"rKvigUnOyYE-","actionBar":"_62c8HLZFwvs-","leftAction":"Xl1Ptn-P9Ew-","rightAction":"p2s7GtpoZz0-"};
21
+ styleInject_es.styleInject(css_248z$1);
22
+
23
+ var css_248z = "._65IpUjOZiBg- {\n --modal--padding: var(--space-base);\n max-width: calc(var(--base-unit) * 25);\n}\n\n.Cpwnmw65caA- {\n max-width: calc(var(--base-unit) * 58.75);\n}\n";
24
+ var sizes = {"small":"_65IpUjOZiBg-","large":"Cpwnmw65caA-"};
25
+ styleInject_es.styleInject(css_248z);
26
+
27
+ function Modal({ open = false, title, size, dismissible = true, children, primaryAction, secondaryAction, tertiaryAction, onRequestClose, }) {
28
+ const modalClassName = classnames__default["default"](styles.modal, size && sizes[size]);
29
+ jobberHooks.useRefocusOnActivator(open);
30
+ const modalRef = jobberHooks.useFocusTrap(open);
31
+ jobberHooks.useOnKeyDown(handleRequestClose, "Escape");
32
+ const template = (React__default["default"].createElement(framerMotion.AnimatePresence, null, open && (React__default["default"].createElement("div", { ref: modalRef, className: styles.container, tabIndex: 0 },
33
+ React__default["default"].createElement(framerMotion.motion.div, { key: styles.overlay, className: styles.overlay, onClick: onRequestClose, initial: { opacity: 0 }, animate: { opacity: 0.8 }, exit: { opacity: 0 }, transition: { duration: 0.2 } }),
34
+ React__default["default"].createElement(framerMotion.motion.div, { key: styles.modal, className: modalClassName, initial: { scale: 0.9, opacity: 0 }, animate: { scale: 1, opacity: 1 }, exit: { scale: 0.9, opacity: 0 }, transition: {
35
+ duration: 0.2,
36
+ ease: "easeInOut",
37
+ } },
38
+ title != undefined && (React__default["default"].createElement(Header, { title: title, dismissible: dismissible, onRequestClose: onRequestClose })),
39
+ children,
40
+ React__default["default"].createElement(Actions, { primary: primaryAction, secondary: secondaryAction, tertiary: tertiaryAction }))))));
41
+ return ReactDOM__default["default"].createPortal(template, document.body);
42
+ function handleRequestClose() {
43
+ if (open && onRequestClose) {
44
+ onRequestClose();
45
+ }
46
+ }
47
+ }
48
+ function Header({ title, dismissible, onRequestClose }) {
49
+ return (React__default["default"].createElement("div", { className: styles.header, "data-testid": "modal-header" },
50
+ React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
51
+ dismissible && (React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close modal" }))));
52
+ }
53
+ function Actions({ primary, secondary, tertiary }) {
54
+ const shouldShow = primary != undefined || secondary != undefined || tertiary != undefined;
55
+ if (secondary != undefined) {
56
+ secondary = Object.assign({ type: "primary", variation: "subtle" }, secondary);
57
+ }
58
+ if (tertiary != undefined) {
59
+ tertiary = Object.assign({ type: "secondary", variation: "destructive" }, tertiary);
60
+ }
61
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, shouldShow && (React__default["default"].createElement("div", { className: styles.actionBar },
62
+ React__default["default"].createElement("div", { className: styles.rightAction },
63
+ primary && React__default["default"].createElement(Button.Button, Object.assign({}, primary)),
64
+ secondary && React__default["default"].createElement(Button.Button, Object.assign({}, secondary))),
65
+ tertiary && (React__default["default"].createElement("div", { className: styles.leftAction },
66
+ React__default["default"].createElement(Button.Button, Object.assign({}, tertiary))))))));
67
+ }
68
+
69
+ exports.Modal = Modal;
@@ -6,10 +6,10 @@ var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var jobberHooks = require('@jobber/hooks');
8
8
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
9
- var Checkbox = require('../Checkbox-ab8fb96e.js');
10
- var Text = require('../Text-1c12d786.js');
9
+ var Checkbox = require('../Checkbox-e40acfeb.js');
10
+ var Text = require('../Text-7c99b48d.js');
11
11
  var Icon = require('../Icon-405a216c.js');
12
- require('../Typography-01077f8f.js');
12
+ require('../Typography-c0bec306.js');
13
13
  require('@jobber/design');
14
14
 
15
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -17,10 +17,12 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
17
17
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
18
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
19
19
 
20
- var css_248z$1 = ".multiSelectContainer {\n position: relative;\n width: 100%;\n}\n\n.multiSelectContainer * {\n box-sizing: border-box;\n}\n\n.multiSelect {\n --field--height: var(--space-largest);\n\n --field--padding-top: calc(var(--space-base) - var(--space-smallest));\n --field--padding-bottom: calc(var(--space-base) - var(--space-smallest));\n --field--padding-left: var(--space-base);\n --field--padding-right: var(--space-base);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n width: 100%;\n height: var(--field--height);\n padding-top: var(--field--padding-top);\n padding-bottom: var(--field--padding-bottom);\n padding-left: var(--field--padding-left);\n padding-right: var(--field--padding-right);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n}\n\n.multiSelect p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.multiSelectContainer:hover,\n.multiSelectContainer.multiSelect {\n cursor: pointer;\n caret-color: transparent;\n}\n\n.multiSelect:focus,\n.multiSelect.active {\n box-shadow: var(--shadow-focus);\n outline: none;\n}\n\n.small {\n --field--padding-left: calc(var(--space-base) - var(--space-smaller));\n --field--padding-right: calc(var(--space-base) - var(--space-smaller));\n --field--height: calc(var(--space-larger) + var(--space-smaller));\n}\n\n.large {\n --field--padding-left: var(--space-large);\n --field--padding-right: var(--space-large);\n --field--height: calc(var(--space-extravagant));\n}\n";
20
+ var css_248z$1 = ".D-J03az6XL4- {\n position: relative;\n width: 100%;\n}\n\n.D-J03az6XL4- * {\n box-sizing: border-box;\n}\n\n.EzNdHgwsT40- {\n --field--height: var(--space-largest);\n\n --field--padding-top: calc(var(--space-base) - var(--space-smallest));\n --field--padding-bottom: calc(var(--space-base) - var(--space-smallest));\n --field--padding-left: var(--space-base);\n --field--padding-right: var(--space-base);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n width: 100%;\n height: var(--field--height);\n padding-top: var(--field--padding-top);\n padding-bottom: var(--field--padding-bottom);\n padding-left: var(--field--padding-left);\n padding-right: var(--field--padding-right);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n}\n\n.EzNdHgwsT40- p {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.D-J03az6XL4-:hover,\n.D-J03az6XL4-.EzNdHgwsT40- {\n cursor: pointer;\n caret-color: transparent;\n}\n\n.EzNdHgwsT40-:focus,\n.EzNdHgwsT40-.bu7HWKRu6HI- {\n box-shadow: var(--shadow-focus);\n outline: none;\n}\n\n.eQ6yfQg6zLc- {\n --field--padding-left: calc(var(--space-base) - var(--space-smaller));\n --field--padding-right: calc(var(--space-base) - var(--space-smaller));\n --field--height: calc(var(--space-larger) + var(--space-smaller));\n}\n\n.pM-ts4-QMZY- {\n --field--padding-left: var(--space-large);\n --field--padding-right: var(--space-large);\n --field--height: calc(var(--space-extravagant));\n}\n";
21
+ var styles$1 = {"multiSelectContainer":"D-J03az6XL4-","multiSelect":"EzNdHgwsT40-","active":"bu7HWKRu6HI-","small":"eQ6yfQg6zLc-","large":"pM-ts4-QMZY-"};
21
22
  styleInject_es.styleInject(css_248z$1);
22
23
 
23
- var css_248z = ".dropDownMenuContainer {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n z-index: var(--elevation-menu);\n width: 100%;\n max-height: calc(var(--space-extravagant) * 5);\n box-shadow: var(--shadow-base);\n margin: 0;\n padding: 0;\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-large);\n overflow: auto;\n background-color: var(--color-surface);\n -ms-flex-direction: column;\n flex-direction: column;\n scroll-behavior: smooth;\n}\n\n.dropDownMenuContainer li {\n list-style: none;\n}\n\n.option {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n padding: var(--space-small) var(--space-base);\n cursor: pointer;\n transition: all var(--timing-base);\n}\n\n.option:focus,\n.option.active {\n background-color: var(--color-surface--hover);\n outline-color: var(--color-focus);\n}\n";
24
+ var css_248z = "._0SStdD4KRHs- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n z-index: var(--elevation-menu);\n width: 100%;\n max-height: calc(var(--space-extravagant) * 5);\n box-shadow: var(--shadow-base);\n margin: 0;\n padding: 0;\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-large);\n overflow: auto;\n background-color: var(--color-surface);\n -ms-flex-direction: column;\n flex-direction: column;\n scroll-behavior: smooth;\n}\n\n._0SStdD4KRHs- li {\n list-style: none;\n}\n\n.mFSgwOQZJm0- {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n padding: var(--space-small) var(--space-base);\n cursor: pointer;\n transition: all var(--timing-base);\n}\n\n.mFSgwOQZJm0-:focus,\n.mFSgwOQZJm0-.SepF4gvOxq8- {\n background-color: var(--color-surface--hover);\n outline-color: var(--color-focus);\n}\n";
25
+ var styles = {"dropDownMenuContainer":"_0SStdD4KRHs-","option":"mFSgwOQZJm0-","active":"SepF4gvOxq8-"};
24
26
  styleInject_es.styleInject(css_248z);
25
27
 
26
28
  function handleKeyboardShortcut(setupKeyListeners) {
@@ -106,9 +108,9 @@ function DropDownMenu({ options, setOptions }) {
106
108
  // focus first option
107
109
  handleOptionFocus(0);
108
110
  }, [menuDiv]);
109
- return (React__default["default"].createElement("ul", { "data-testid": "dropdown-menu", className: css_248z.dropDownMenuContainer, ref: menuDiv }, options.map((option, index) => {
110
- const optionClass = classnames__default["default"](css_248z.option, {
111
- [css_248z.active]: index === highlightedIndex,
111
+ return (React__default["default"].createElement("ul", { "data-testid": "dropdown-menu", className: styles.dropDownMenuContainer, ref: menuDiv }, options.map((option, index) => {
112
+ const optionClass = classnames__default["default"](styles.option, {
113
+ [styles.active]: index === highlightedIndex,
112
114
  });
113
115
  return (React__default["default"].createElement("li", { key: `${index}-${option.label}`, className: optionClass, onClick: event => {
114
116
  event.stopPropagation();
@@ -126,10 +128,10 @@ function MultiSelect({ defaultLabel, allSelectedLabel, options, onOptionsChange,
126
128
  const [focused, setFocused] = React.useState(false);
127
129
  const multiSelectContainer = React.useRef();
128
130
  const multiSelectRef = React.useRef();
129
- const multiSelectClass = classnames__default["default"](css_248z$1.multiSelect, {
130
- [css_248z$1.active]: menuVisible,
131
- [css_248z$1.large]: size === "large",
132
- [css_248z$1.small]: size === "small",
131
+ const multiSelectClass = classnames__default["default"](styles$1.multiSelect, {
132
+ [styles$1.active]: menuVisible,
133
+ [styles$1.large]: size === "large",
134
+ [styles$1.small]: size === "small",
133
135
  });
134
136
  function handleMenuVisibility() {
135
137
  multiSelectRef.current.focus();
@@ -180,7 +182,7 @@ function MultiSelect({ defaultLabel, allSelectedLabel, options, onOptionsChange,
180
182
  setLabel(selectedLabels.join(", "));
181
183
  }
182
184
  }, [options]);
183
- return (React__default["default"].createElement("div", { ref: multiSelectContainer, className: css_248z$1.multiSelectContainer },
185
+ return (React__default["default"].createElement("div", { ref: multiSelectContainer, className: styles$1.multiSelectContainer },
184
186
  React__default["default"].createElement("div", { "data-testid": "multi-select", className: multiSelectClass, onClick: handleMenuVisibility, onFocus: () => setFocused(true), onBlur: () => setFocused(false), tabIndex: 0, ref: multiSelectRef, role: "button", "aria-label": `${defaultLabel}: ${label}`, "aria-multiselectable": true, "aria-haspopup": true },
185
187
  React__default["default"].createElement(Text.Text, null, label),
186
188
  React__default["default"].createElement(Icon.Icon, { name: "arrowDown" })),