@jobber/components 4.0.0 → 4.0.1-pre.4

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 (127) hide show
  1. package/dist/Autocomplete/Autocomplete.d.ts +1 -1
  2. package/dist/Autocomplete/Option.d.ts +2 -2
  3. package/dist/Autocomplete/index.js +51 -67
  4. package/dist/Avatar/Avatar.d.ts +2 -2
  5. package/dist/Avatar/index.js +2 -2
  6. package/dist/{Avatar-cfd04e86.js → Avatar-89cfd0a6.js} +14 -18
  7. package/dist/Banner/Banner.d.ts +1 -1
  8. package/dist/Banner/index.js +15 -19
  9. package/dist/Button/Button.d.ts +1 -1
  10. package/dist/Button/index.js +3 -4
  11. package/dist/{Button-cd30df0f.js → Button-16e043ec.js} +21 -24
  12. package/dist/ButtonDismiss/index.js +4 -5
  13. package/dist/{ButtonDismiss-a9590195.js → ButtonDismiss-3fb1eaf9.js} +2 -3
  14. package/dist/Card/Card.d.ts +1 -1
  15. package/dist/Card/index.js +6 -7
  16. package/dist/Card/types.d.ts +1 -1
  17. package/dist/{Card-b9f8d6f3.js → Card-edab9c3c.js} +18 -22
  18. package/dist/Checkbox/Checkbox.d.ts +1 -1
  19. package/dist/Checkbox/index.js +4 -5
  20. package/dist/{Checkbox-5103d2b9.js → Checkbox-c1efc2f6.js} +10 -12
  21. package/dist/Chips/ChipsTypes.d.ts +1 -1
  22. package/dist/Chips/InternalChipDismissible/InternalChipDismissibleTypes.d.ts +1 -1
  23. package/dist/Chips/InternalChipDismissible/hooks/useInternalChipDismissible.d.ts +1 -1
  24. package/dist/Chips/InternalChipDismissible/hooks/useInternalChipDismissibleInput.d.ts +3 -3
  25. package/dist/Chips/InternalChipMultiSelect.d.ts +1 -1
  26. package/dist/Chips/InternalChipSingleSelect.d.ts +1 -1
  27. package/dist/Chips/index.js +165 -185
  28. package/dist/ConfirmationModal/ConfirmationModal.d.ts +1 -1
  29. package/dist/ConfirmationModal/index.js +11 -12
  30. package/dist/{ConfirmationModal-e95f46d7.js → ConfirmationModal-6a7beee2.js} +28 -31
  31. package/dist/Content/index.js +1 -1
  32. package/dist/{Content-18de5fbb.js → Content-05df8f7f.js} +2 -3
  33. package/dist/Countdown/Countdown.d.ts +1 -1
  34. package/dist/Countdown/computeTimeUnit.d.ts +1 -1
  35. package/dist/Countdown/index.js +15 -18
  36. package/dist/DataDump/index.js +9 -11
  37. package/dist/DataTable/Footer.d.ts +1 -1
  38. package/dist/DataTable/createTableSettings.d.ts +2 -2
  39. package/dist/DataTable/index.js +74 -106
  40. package/dist/DataTable/test-utilities/helpers.d.ts +1 -1
  41. package/dist/DataTable/types.d.ts +2 -2
  42. package/dist/DatePicker/DatePicker.d.ts +1 -1
  43. package/dist/DatePicker/index.js +4 -5
  44. package/dist/{DatePicker-7c67e8d2.js → DatePicker-af21ae91.js} +31 -36
  45. package/dist/DescriptionList/index.js +5 -10
  46. package/dist/Disclosure/index.js +8 -10
  47. package/dist/Divider/index.js +8 -10
  48. package/dist/Drawer/index.js +10 -14
  49. package/dist/Emphasis/index.js +2 -3
  50. package/dist/{Emphasis-75a3f411.js → Emphasis-23dc2a0a.js} +4 -6
  51. package/dist/FeatureSwitch/index.js +15 -17
  52. package/dist/Form/index.js +23 -33
  53. package/dist/FormField/FormFieldTypes.d.ts +2 -2
  54. package/dist/FormField/index.js +8 -8
  55. package/dist/{FormField-76068c0b.js → FormField-1e444bb6.js} +68 -76
  56. package/dist/FormatDate/index.js +2 -3
  57. package/dist/FormatEmail/index.js +2 -3
  58. package/dist/FormatFile/index.js +13 -14
  59. package/dist/{FormatFile-18e8a54a.js → FormatFile-3512f838.js} +33 -40
  60. package/dist/FormatRelativeDateTime/index.js +5 -6
  61. package/dist/FormatTime/index.js +6 -7
  62. package/dist/Gallery/GalleryTypes.d.ts +2 -2
  63. package/dist/Gallery/index.js +31 -33
  64. package/dist/Heading/index.js +2 -3
  65. package/dist/{Heading-a9a66964.js → Heading-7b203f7f.js} +4 -6
  66. package/dist/Icon/index.js +1 -1
  67. package/dist/{Icon-d5ad1a6d.js → Icon-405a216c.js} +7 -8
  68. package/dist/InlineLabel/InlineLabel.d.ts +1 -1
  69. package/dist/InlineLabel/index.js +4 -6
  70. package/dist/InputAvatar/index.js +15 -20
  71. package/dist/InputDate/index.js +15 -15
  72. package/dist/InputEmail/InputEmail.d.ts +1 -1
  73. package/dist/InputEmail/index.js +12 -12
  74. package/dist/InputFile/index.js +6 -6
  75. package/dist/{InputFile-e108a7f8.js → InputFile-5e0ed2b5.js} +48 -62
  76. package/dist/InputGroup/index.js +4 -5
  77. package/dist/InputNumber/index.js +22 -22
  78. package/dist/InputPassword/index.js +12 -12
  79. package/dist/InputText/InputText.d.ts +1 -1
  80. package/dist/InputText/index.js +9 -9
  81. package/dist/{InputText-523d0e48.js → InputText-12b112a9.js} +23 -24
  82. package/dist/InputTime/index.js +27 -27
  83. package/dist/InputValidation/index.js +4 -5
  84. package/dist/{InputValidation-06a8a7ba.js → InputValidation-97dd0dcf.js} +7 -8
  85. package/dist/LightBox/index.js +5 -6
  86. package/dist/{LightBox-1ad62669.js → LightBox-dd1afa97.js} +22 -26
  87. package/dist/List/index.js +26 -32
  88. package/dist/Markdown/index.js +6 -7
  89. package/dist/{Markdown-b53e0308.js → Markdown-be2dcd0c.js} +12 -18
  90. package/dist/Menu/index.js +4 -5
  91. package/dist/{Menu-826cfb89.js → Menu-d6a7d17b.js} +31 -36
  92. package/dist/Modal/index.js +6 -7
  93. package/dist/{Modal-cc3bd7bf.js → Modal-757e83fd.js} +13 -17
  94. package/dist/MultiSelect/index.js +53 -60
  95. package/dist/MultiSelect/types.d.ts +1 -1
  96. package/dist/{Option-fdf21181.js → Option-13150f4a.js} +3 -5
  97. package/dist/Page/Page.d.ts +1 -1
  98. package/dist/Page/index.js +21 -24
  99. package/dist/Popover/index.js +11 -13
  100. package/dist/ProgressBar/index.js +1 -1
  101. package/dist/{ProgressBar-e9a49129.js → ProgressBar-f028b159.js} +3 -4
  102. package/dist/RadioGroup/RadioOption.d.ts +2 -2
  103. package/dist/RadioGroup/index.js +9 -13
  104. package/dist/RecurringSelect/types.d.ts +2 -2
  105. package/dist/Select/Select.d.ts +1 -1
  106. package/dist/Select/index.js +9 -9
  107. package/dist/Spinner/index.js +1 -1
  108. package/dist/{Spinner-e4e9c8eb.js → Spinner-ae4c8a85.js} +5 -7
  109. package/dist/StatusLabel/StatusLabel.d.ts +1 -1
  110. package/dist/StatusLabel/index.js +6 -9
  111. package/dist/Switch/index.js +2 -3
  112. package/dist/{Switch-f03b70fc.js → Switch-7ac32f7b.js} +12 -16
  113. package/dist/Table/index.js +9 -17
  114. package/dist/Tabs/index.js +28 -34
  115. package/dist/Text/index.js +2 -3
  116. package/dist/{Text-e012fb46.js → Text-7ce00adb.js} +4 -5
  117. package/dist/Toast/Toast.d.ts +2 -2
  118. package/dist/Toast/index.js +31 -32
  119. package/dist/Tooltip/index.js +3 -4
  120. package/dist/Tooltip/useTooltipPositioning.d.ts +1 -1
  121. package/dist/{Tooltip-041feb00.js → Tooltip-1090a43d.js} +25 -28
  122. package/dist/Typography/Typography.d.ts +1 -1
  123. package/dist/Typography/index.js +1 -2
  124. package/dist/{Typography-fbe0ed6e.js → Typography-9262511f.js} +5 -7
  125. package/dist/tslib.es6-efe27175.js +38 -0
  126. package/package.json +3 -3
  127. package/dist/tslib.es6-5b50eb8e.js +0 -103
@@ -5,13 +5,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var styleInject_es = require('../style-inject.es-dcee06b6.js');
8
- var Heading = require('../Heading-a9a66964.js');
9
- var ButtonDismiss = require('../ButtonDismiss-a9590195.js');
10
- require('../tslib.es6-5b50eb8e.js');
11
- require('../Typography-fbe0ed6e.js');
12
- require('../Button-cd30df0f.js');
8
+ var Heading = require('../Heading-7b203f7f.js');
9
+ var ButtonDismiss = require('../ButtonDismiss-3fb1eaf9.js');
10
+ require('../Typography-9262511f.js');
11
+ require('../Button-16e043ec.js');
13
12
  require('react-router-dom');
14
- require('../Icon-d5ad1a6d.js');
13
+ require('../Icon-405a216c.js');
15
14
  require('@jobber/design');
16
15
 
17
16
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -23,9 +22,8 @@ var css$1 = ":root {\n --drawer-width: calc(var(--space-base) * 17.5);\n --dra
23
22
  var styles$1 = {"container":"_3XszLcqw8Bk5bbTId3P8ZV","drawer":"_2nsJzlCbORiq2Zp1r2Zfjq","open":"BVcThJJ-WMJCtzGk9CfUq","header":"_1ql7AVWGaU-1bl2yZegFqH","contentScroll":"axZAc8S3vSa8nFC4yMJaW","content":"_3MACAQEV8zhNH4_KtJ0DiM"};
24
23
  styleInject_es.styleInject(css$1);
25
24
 
26
- function Drawer(_a) {
27
- var title = _a.title, children = _a.children, _b = _a.open, open = _b === void 0 ? true : _b, onRequestClose = _a.onRequestClose, id = _a.id;
28
- var drawerClassNames = classnames__default["default"](styles$1.container, open && styles$1.open);
25
+ function Drawer({ title, children, open = true, onRequestClose, id, }) {
26
+ const drawerClassNames = classnames__default["default"](styles$1.container, open && styles$1.open);
29
27
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
30
28
  React__default["default"].createElement("aside", { className: drawerClassNames, "data-testid": "drawer-container", "aria-label": title, "aria-hidden": !open, id: id },
31
29
  React__default["default"].createElement("div", { className: styles$1.drawer },
@@ -33,19 +31,17 @@ function Drawer(_a) {
33
31
  React__default["default"].createElement("div", { className: styles$1.contentScroll },
34
32
  React__default["default"].createElement("div", { className: styles$1.content }, children))))));
35
33
  }
36
- function Header(_a) {
37
- var title = _a.title, onRequestClose = _a.onRequestClose;
34
+ function Header({ title, onRequestClose }) {
38
35
  return (React__default["default"].createElement("div", { className: styles$1.header, "data-testid": "drawer-header" },
39
36
  React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
40
- React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close " + (title || "drawer") })));
37
+ React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: `Close ${title || "drawer"}` })));
41
38
  }
42
39
 
43
40
  var css = ".Sc90BtF67zpsMHXh3g9kq {\n display: grid;\n width: 100%;\n height: 100%;\n overflow: hidden;\n grid-template-columns: minmax(0, 1fr) minmax(-webkit-min-content, -webkit-max-content);\n grid-template-columns: minmax(0, 1fr) minmax(min-content, max-content);\n grid-template-rows: 1fr;\n}\n";
44
41
  var styles = {"drawerGrid":"Sc90BtF67zpsMHXh3g9kq"};
45
42
  styleInject_es.styleInject(css);
46
43
 
47
- function DrawerGrid(_a) {
48
- var children = _a.children;
44
+ function DrawerGrid({ children }) {
49
45
  return React__default["default"].createElement("div", { className: styles.drawerGrid }, children);
50
46
  }
51
47
 
@@ -2,10 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Emphasis = require('../Emphasis-75a3f411.js');
6
- require('../tslib.es6-5b50eb8e.js');
5
+ var Emphasis = require('../Emphasis-23dc2a0a.js');
7
6
  require('react');
8
- require('../Typography-fbe0ed6e.js');
7
+ require('../Typography-9262511f.js');
9
8
  require('classnames');
10
9
  require('../style-inject.es-dcee06b6.js');
11
10
 
@@ -1,21 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
4
3
  var React = require('react');
5
- var Typography = require('./Typography-fbe0ed6e.js');
4
+ var Typography = require('./Typography-9262511f.js');
6
5
 
7
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
7
 
9
8
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
9
 
11
- function Emphasis(_a) {
12
- var variation = _a.variation, children = _a.children;
13
- var variationMap = {
10
+ function Emphasis({ variation, children }) {
11
+ const variationMap = {
14
12
  bold: { element: "b", fontWeight: "bold" },
15
13
  italic: { element: "em", emphasisType: "italic" },
16
14
  highlight: { element: "strong", emphasisType: "highlight" },
17
15
  };
18
- return React__default["default"].createElement(Typography.Typography, tslib_es6.__assign({}, variationMap[variation]), children);
16
+ return React__default["default"].createElement(Typography.Typography, Object.assign({}, variationMap[variation]), children);
19
17
  }
20
18
 
21
19
  exports.Emphasis = Emphasis;
@@ -2,21 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
6
5
  var React = require('react');
7
6
  var framerMotion = require('framer-motion');
8
7
  var classnames = require('classnames');
9
8
  var styleInject_es = require('../style-inject.es-dcee06b6.js');
10
- var Heading = require('../Heading-a9a66964.js');
11
- var Text = require('../Text-e012fb46.js');
12
- var Content = require('../Content-18de5fbb.js');
13
- var Switch = require('../Switch-f03b70fc.js');
14
- var Button = require('../Button-cd30df0f.js');
15
- var Emphasis = require('../Emphasis-75a3f411.js');
16
- var Markdown = require('../Markdown-b53e0308.js');
17
- require('../Typography-fbe0ed6e.js');
9
+ var Heading = require('../Heading-7b203f7f.js');
10
+ var Text = require('../Text-7ce00adb.js');
11
+ var Content = require('../Content-05df8f7f.js');
12
+ var Switch = require('../Switch-7ac32f7b.js');
13
+ var Button = require('../Button-16e043ec.js');
14
+ var Emphasis = require('../Emphasis-23dc2a0a.js');
15
+ var Markdown = require('../Markdown-be2dcd0c.js');
16
+ require('../Typography-9262511f.js');
18
17
  require('react-router-dom');
19
- require('../Icon-d5ad1a6d.js');
18
+ require('../Icon-405a216c.js');
20
19
  require('@jobber/design');
21
20
  require('react-markdown');
22
21
 
@@ -29,10 +28,9 @@ var css = "._2wLd_KRTNAGUWLuHUk3oW {\n display: -ms-flexbox;\n display: flex;\
29
28
  var styles = {"container":"_2wLd_KRTNAGUWLuHUk3oW","content":"_3S4AEFcAzye_0NKuyb26Pt","action":"_3fTQ2YTOZjh3z63IpmHOEX","savedIndicator":"vVv_rOT7pURJPkU4rvJPE","featureContent":"f8zTHuP6EgBAklxGjSv1O","enabled":"NweVtD0555WFOwkVpskgX"};
30
29
  styleInject_es.styleInject(css);
31
30
 
32
- function FeatureSwitch(_a) {
33
- var children = _a.children, description = _a.description, _b = _a.disabled, disabled = _b === void 0 ? false : _b, enabled = _a.enabled, _c = _a.externalLink, externalLink = _c === void 0 ? false : _c, onEdit = _a.onEdit, onSwitch = _a.onSwitch, _d = _a.hasSaveIndicator, hasSaveIndicator = _d === void 0 ? false : _d, title = _a.title;
34
- var _e = tslib_es6.__read(React.useState(false), 2), savedIndicator = _e[0], setSavedIndicator = _e[1];
35
- var featureContentClassnames = classnames__default["default"](styles.featureContent, styles.content, enabled && styles.enabled);
31
+ function FeatureSwitch({ children, description, disabled = false, enabled, externalLink = false, onEdit, onSwitch, hasSaveIndicator = false, title, }) {
32
+ const [savedIndicator, setSavedIndicator] = React.useState(false);
33
+ const featureContentClassnames = classnames__default["default"](styles.featureContent, styles.content, enabled && styles.enabled);
36
34
  shouldShowSavedIndicator();
37
35
  return (React__default["default"].createElement(Content.Content, null,
38
36
  React__default["default"].createElement("div", { className: styles.container },
@@ -57,9 +55,9 @@ function FeatureSwitch(_a) {
57
55
  React__default["default"].createElement(Button.Button, { label: "Edit", type: "tertiary", onClick: onEdit })))))));
58
56
  function shouldShowSavedIndicator() {
59
57
  // Check if the component is mounted
60
- var _a = tslib_es6.__read(React.useState(false), 2), didMount = _a[0], setDidMount = _a[1];
61
- React.useEffect(function () { return setDidMount(true); }, []);
62
- React.useEffect(function () {
58
+ const [didMount, setDidMount] = React.useState(false);
59
+ React.useEffect(() => setDidMount(true), []);
60
+ React.useEffect(() => {
63
61
  didMount && hasSaveIndicator && setSavedIndicator(true);
64
62
  }, [enabled]);
65
63
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../tslib.es6-5b50eb8e.js');
5
+ var tslib_es6 = require('../tslib.es6-efe27175.js');
6
6
  var React = require('react');
7
7
  var reactHookForm = require('react-hook-form');
8
8
 
@@ -10,55 +10,45 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
10
10
 
11
11
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
12
 
13
- var Form = React.forwardRef(function InternalForm(_a, ref) {
14
- var _this = this;
15
- var onSubmit = _a.onSubmit, children = _a.children, onStateChange = _a.onStateChange;
16
- var methods = reactHookForm.useForm({ mode: "onTouched" });
17
- var errors = methods.errors, trigger = methods.trigger, handleSubmit = methods.handleSubmit, _b = methods.formState, isDirty = _b.isDirty, isValid = _b.isValid;
18
- React.useEffect(function () { return onStateChange && onStateChange({ isDirty: isDirty, isValid: isValid }); }, [isDirty, isValid]);
19
- React.useImperativeHandle(ref, function () { return ({
13
+ const Form = React.forwardRef(function InternalForm({ onSubmit, children, onStateChange }, ref) {
14
+ const methods = reactHookForm.useForm({ mode: "onTouched" });
15
+ const { errors, trigger, handleSubmit, formState: { isDirty, isValid }, } = methods;
16
+ React.useEffect(() => onStateChange && onStateChange({ isDirty, isValid }), [isDirty, isValid]);
17
+ React.useImperativeHandle(ref, () => ({
20
18
  /**
21
19
  * The `trigger()` method can also accept an array
22
20
  * of fields to validate. We may at some point want
23
21
  * to consider adding a `validate()` method to the
24
22
  * `Form` component.
25
23
  */
26
- submit: function () { return tslib_es6.__awaiter(_this, void 0, void 0, function () {
27
- var valid;
28
- return tslib_es6.__generator(this, function (_a) {
29
- switch (_a.label) {
30
- case 0: return [4 /*yield*/, trigger()];
31
- case 1:
32
- valid = _a.sent();
33
- if (valid) {
34
- submitHandler();
35
- }
36
- else {
37
- trigger();
38
- errorHandler(errors);
39
- }
40
- return [2 /*return*/];
41
- }
42
- });
43
- }); },
44
- }); });
24
+ submit: () => tslib_es6.__awaiter(this, void 0, void 0, function* () {
25
+ const valid = yield trigger();
26
+ if (valid) {
27
+ submitHandler();
28
+ }
29
+ else {
30
+ trigger();
31
+ errorHandler(errors);
32
+ }
33
+ }),
34
+ }));
45
35
  /**
46
36
  * If an onSubmit is not passed into a form, it will only be used
47
37
  * for validation. For that, we do not need to wrap it in a <form>
48
38
  * tag. This allows the <Form> component to be used in legacy code.
49
39
  */
50
- var Wrapper = onSubmit ? "form" : "div";
51
- var formProps = {
40
+ const Wrapper = onSubmit ? "form" : "div";
41
+ const formProps = {
52
42
  onSubmit: onSubmit && handleSubmit(submitHandler, errorHandler),
53
43
  };
54
- return (React__default["default"].createElement(reactHookForm.FormProvider, tslib_es6.__assign({}, methods),
55
- React__default["default"].createElement(Wrapper, tslib_es6.__assign({}, formProps, { "data-testid": "atlantis-form" }), children)));
44
+ return (React__default["default"].createElement(reactHookForm.FormProvider, Object.assign({}, methods),
45
+ React__default["default"].createElement(Wrapper, Object.assign({}, formProps, { "data-testid": "atlantis-form" }), children)));
56
46
  function submitHandler() {
57
47
  onSubmit && onSubmit();
58
48
  }
59
49
  function errorHandler(errs) {
60
- var firstErrName = Object.keys(errs)[0];
61
- var element = document.querySelector("[name=\"" + firstErrName + "\"]");
50
+ const firstErrName = Object.keys(errs)[0];
51
+ const element = document.querySelector(`[name="${firstErrName}"]`);
62
52
  if (typeof element != undefined) {
63
53
  element === null || element === void 0 ? void 0 : element.focus();
64
54
  }
@@ -2,8 +2,8 @@ import { ChangeEvent, ReactNode, RefObject } from "react";
2
2
  import { RegisterOptions } from "react-hook-form";
3
3
  import { XOR } from "ts-xor";
4
4
  import { IconNames } from "../Icon";
5
- export declare type FormFieldTypes = "text" | "password" | "number" | "time" | "textarea" | "select" | "email";
6
- export declare type AutocompleteTypes = "one-time-code" | "address-line1" | "address-line2";
5
+ export type FormFieldTypes = "text" | "password" | "number" | "time" | "textarea" | "select" | "email";
6
+ export type AutocompleteTypes = "one-time-code" | "address-line1" | "address-line2";
7
7
  export interface FieldActionsRef {
8
8
  setValue(value: string | number): void;
9
9
  }
@@ -2,22 +2,22 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var FormField = require('../FormField-76068c0b.js');
6
- require('../tslib.es6-5b50eb8e.js');
5
+ var FormField = require('../FormField-1e444bb6.js');
6
+ require('../tslib.es6-efe27175.js');
7
7
  require('react');
8
8
  require('uuid');
9
9
  require('react-hook-form');
10
10
  require('../style-inject.es-dcee06b6.js');
11
11
  require('classnames');
12
- require('../Button-cd30df0f.js');
12
+ require('../Button-16e043ec.js');
13
13
  require('react-router-dom');
14
- require('../Icon-d5ad1a6d.js');
14
+ require('../Icon-405a216c.js');
15
15
  require('@jobber/design');
16
- require('../Typography-fbe0ed6e.js');
17
- require('../Text-e012fb46.js');
18
- require('../InputValidation-06a8a7ba.js');
16
+ require('../Typography-9262511f.js');
17
+ require('../Text-7ce00adb.js');
18
+ require('../InputValidation-97dd0dcf.js');
19
19
  require('framer-motion');
20
- require('../Spinner-e4e9c8eb.js');
20
+ require('../Spinner-ae4c8a85.js');
21
21
 
22
22
 
23
23
 
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
3
+ var tslib_es6 = require('./tslib.es6-efe27175.js');
4
4
  var React = require('react');
5
5
  var uuid = require('uuid');
6
6
  var reactHookForm = require('react-hook-form');
7
7
  var styleInject_es = require('./style-inject.es-dcee06b6.js');
8
8
  var classnames = require('classnames');
9
- var Button = require('./Button-cd30df0f.js');
10
- var Icon = require('./Icon-d5ad1a6d.js');
11
- var Text = require('./Text-e012fb46.js');
12
- var InputValidation = require('./InputValidation-06a8a7ba.js');
13
- var Spinner = require('./Spinner-e4e9c8eb.js');
9
+ var Button = require('./Button-16e043ec.js');
10
+ var Icon = require('./Icon-405a216c.js');
11
+ var Text = require('./Text-7ce00adb.js');
12
+ var InputValidation = require('./InputValidation-97dd0dcf.js');
13
+ var Spinner = require('./Spinner-ae4c8a85.js');
14
14
 
15
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
16
 
@@ -21,22 +21,18 @@ var css = ":root {\n /**\n * These `--public-field` properties are used in ot
21
21
  var styles = {"wrapper":"_2bOj_Hpd2VvA3mi9t4RcZO","miniLabel":"IVFKQabHAwX8Kn2aNj8gM","textarea":"_1hfSn_RRn6Enf7teCHrbV8","invalid":"_3H2M7GlXG4Qh417lRbpzS7","disabled":"_2xkImc45YUzsUp6bZ3Ik_4","small":"_2N7Ipv_CbNRzrdEGCrptrV","large":"_2RtHPlAJG3Hp2QD9Q9cfD_","inline-left":"_3AHR56Sam4H_gp9JyzxRLl","inline-right":"_3AHR56Sam4H_gp9JyzxRLl","inline":"_3AHR56Sam4H_gp9JyzxRLl","center":"_19KcCv1flBCB9mHUlTLkQL","right":"_1wVbgkkxLyHZUFsS-xEPlc","maxLength":"_1tABQjw4-IkgUE3cbBzs7r","inputWrapper":"_1WnxEaBZY0zLsD8oKwh20b","input":"_3koQsrzZZXPVxXmmESjSG_","select":"Ntcl388Qhhu4uLJc2d1Ll","label":"ktPFw5_r1v4MB-Ts5rPTG","postfix":"_1yJbSG5N0hfPjPkrih4Q99","affixIcon":"_1EBMzQ2qM74AhLWsJH_VD7","suffix":"_2k-tb4HuwDpSggx3JEm4Rp","hasAction":"_1Pm2Qo4Aw45IfKYq1qX4CW","affixLabel":"_2PE8Igv1VLxZ4mpQc6iiR4","description":"_1iN0xB6nTG687YOOopowf"};
22
22
  styleInject_es.styleInject(css);
23
23
 
24
- function AffixLabel(_a) {
25
- var _b;
26
- var label = _a.label, _c = _a.variation, variation = _c === void 0 ? "prefix" : _c, labelRef = _a.labelRef;
27
- var affixLabelClass = classnames__default["default"](styles.affixLabel, (_b = {},
28
- _b[styles.suffix] = variation === "suffix",
29
- _b));
24
+ function AffixLabel({ label, variation = "prefix", labelRef, }) {
25
+ const affixLabelClass = classnames__default["default"](styles.affixLabel, {
26
+ [styles.suffix]: variation === "suffix",
27
+ });
30
28
  return (React__default["default"].createElement("div", { ref: labelRef, className: affixLabelClass }, label));
31
29
  }
32
- function AffixIcon(_a) {
33
- var _b;
34
- var icon = _a.icon, onClick = _a.onClick, ariaLabel = _a.ariaLabel, _c = _a.variation, variation = _c === void 0 ? "prefix" : _c, size = _a.size;
35
- var affixIconClass = classnames__default["default"](styles.affixIcon, (_b = {},
36
- _b[styles.suffix] = variation === "suffix",
37
- _b[styles.hasAction] = onClick,
38
- _b));
39
- var iconSize = size === "small" ? "small" : "base";
30
+ function AffixIcon({ icon, onClick, ariaLabel, variation = "prefix", size, }) {
31
+ const affixIconClass = classnames__default["default"](styles.affixIcon, {
32
+ [styles.suffix]: variation === "suffix",
33
+ [styles.hasAction]: onClick,
34
+ });
35
+ const iconSize = size === "small" ? "small" : "base";
40
36
  if (!icon)
41
37
  return React__default["default"].createElement(React__default["default"].Fragment, null);
42
38
  return (React__default["default"].createElement("div", { className: affixIconClass }, onClick ? (React__default["default"].createElement(Button.Button
@@ -52,123 +48,119 @@ function AffixIcon(_a) {
52
48
  ariaLabel: ariaLabel, icon: icon, onClick: onClick, variation: "subtle", type: "tertiary", size: iconSize })) : (React__default["default"].createElement(Icon.Icon, { name: icon, size: iconSize, color: "greyBlue" }))));
53
49
  }
54
50
 
55
- function FormFieldDescription(_a) {
56
- var id = _a.id, description = _a.description;
51
+ function FormFieldDescription({ id, description, }) {
57
52
  return (React__default["default"].createElement("div", { id: id, className: styles.description },
58
53
  React__default["default"].createElement(Text.Text, { size: "small", variation: "subdued" }, description)));
59
54
  }
60
55
 
61
- function FormFieldWrapper(_a) {
62
- var _b, _c;
63
- var align = _a.align, description = _a.description, descriptionIdentifier = _a.descriptionIdentifier, placeholder = _a.placeholder, value = _a.value, children = _a.children, invalid = _a.invalid, error = _a.error, size = _a.size, prefix = _a.prefix, suffix = _a.suffix, max = _a.max, maxLength = _a.maxLength, type = _a.type, disabled = _a.disabled, inline = _a.inline, identifier = _a.identifier;
64
- var wrapperClasses = classnames__default["default"](styles.wrapper, size && styles[size], align && styles[align], (_b = {},
65
- _b[styles.miniLabel] = (placeholder && value !== "") ||
56
+ function FormFieldWrapper({ align, description, descriptionIdentifier, placeholder, value, children, invalid, error, size, prefix, suffix, max, maxLength, type, disabled, inline, identifier, }) {
57
+ const wrapperClasses = classnames__default["default"](styles.wrapper, size && styles[size], align && styles[align], {
58
+ [styles.miniLabel]: (placeholder && value !== "") ||
66
59
  (placeholder && type === "select") ||
67
60
  (placeholder && type === "time"),
68
- _b[styles.textarea] = type === "textarea",
69
- _b[styles.invalid] = invalid !== null && invalid !== void 0 ? invalid : error,
70
- _b[styles.disabled] = disabled,
71
- _b[styles.inline] = inline,
72
- _b[styles.maxLength] = maxLength,
73
- _b[styles.select] = type === "select",
74
- _b));
75
- var wrapperInlineStyle = (_c = {},
76
- _c["--formField-maxLength"] = maxLength || max,
77
- _c);
78
- var prefixRef = React.useRef();
79
- var suffixRef = React.useRef();
80
- var _d = tslib_es6.__read(React.useState({
61
+ [styles.textarea]: type === "textarea",
62
+ [styles.invalid]: invalid !== null && invalid !== void 0 ? invalid : error,
63
+ [styles.disabled]: disabled,
64
+ [styles.inline]: inline,
65
+ [styles.maxLength]: maxLength,
66
+ [styles.select]: type === "select",
67
+ });
68
+ const wrapperInlineStyle = {
69
+ ["--formField-maxLength"]: maxLength || max,
70
+ };
71
+ const prefixRef = React.useRef();
72
+ const suffixRef = React.useRef();
73
+ const [labelStyle, setLabelStyle] = React.useState({
81
74
  paddingLeft: undefined,
82
75
  paddingRight: undefined,
83
- }), 2), labelStyle = _d[0], setLabelStyle = _d[1];
84
- React.useEffect(function () {
76
+ });
77
+ React.useEffect(() => {
85
78
  setLabelStyle(getAffixPaddding);
86
79
  }, [value]);
87
80
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
88
81
  React__default["default"].createElement("div", { className: wrapperClasses, style: wrapperInlineStyle },
89
- (prefix === null || prefix === void 0 ? void 0 : prefix.icon) && React__default["default"].createElement(AffixIcon, tslib_es6.__assign({}, prefix, { size: size })),
82
+ (prefix === null || prefix === void 0 ? void 0 : prefix.icon) && React__default["default"].createElement(AffixIcon, Object.assign({}, prefix, { size: size })),
90
83
  React__default["default"].createElement("div", { className: styles.inputWrapper },
91
84
  React__default["default"].createElement("label", { className: styles.label, htmlFor: identifier, style: (prefixRef === null || prefixRef === void 0 ? void 0 : prefixRef.current) || (suffixRef === null || suffixRef === void 0 ? void 0 : suffixRef.current) ? labelStyle : undefined }, placeholder),
92
- (prefix === null || prefix === void 0 ? void 0 : prefix.label) && React__default["default"].createElement(AffixLabel, tslib_es6.__assign({}, prefix, { labelRef: prefixRef })),
85
+ (prefix === null || prefix === void 0 ? void 0 : prefix.label) && React__default["default"].createElement(AffixLabel, Object.assign({}, prefix, { labelRef: prefixRef })),
93
86
  children,
94
- (suffix === null || suffix === void 0 ? void 0 : suffix.label) && (React__default["default"].createElement(AffixLabel, tslib_es6.__assign({}, suffix, { labelRef: suffixRef, variation: "suffix" })))),
95
- (suffix === null || suffix === void 0 ? void 0 : suffix.icon) && (React__default["default"].createElement(AffixIcon, tslib_es6.__assign({}, suffix, { variation: "suffix", size: size })))),
87
+ (suffix === null || suffix === void 0 ? void 0 : suffix.label) && (React__default["default"].createElement(AffixLabel, Object.assign({}, suffix, { labelRef: suffixRef, variation: "suffix" })))),
88
+ (suffix === null || suffix === void 0 ? void 0 : suffix.icon) && (React__default["default"].createElement(AffixIcon, Object.assign({}, suffix, { variation: "suffix", size: size })))),
96
89
  description && !inline && (React__default["default"].createElement(FormFieldDescription, { id: descriptionIdentifier, description: description })),
97
90
  error && !inline && React__default["default"].createElement(InputValidation.InputValidation, { message: error })));
98
91
  function getAffixPaddding() {
99
- var hasValue = value !== "";
100
- var newPadding = {
92
+ const hasValue = value !== "";
93
+ const newPadding = {
101
94
  paddingLeft: undefined,
102
95
  paddingRight: undefined,
103
96
  };
104
97
  if ((prefixRef === null || prefixRef === void 0 ? void 0 : prefixRef.current) && !hasValue) {
105
- var offsetWidth = prefixRef.current.offsetWidth;
98
+ const { offsetWidth } = prefixRef.current;
106
99
  newPadding.paddingLeft = offset(offsetWidth);
107
100
  }
108
101
  if ((suffixRef === null || suffixRef === void 0 ? void 0 : suffixRef.current) && !hasValue) {
109
- var offsetWidth = suffixRef.current.offsetWidth;
102
+ const { offsetWidth } = suffixRef.current;
110
103
  newPadding.paddingRight = offset(offsetWidth);
111
104
  }
112
105
  function offset(width) {
113
- return "calc(" + width + "px + var(--space-smallest)";
106
+ return `calc(${width}px + var(--space-smallest)`;
114
107
  }
115
108
  return newPadding;
116
109
  }
117
110
  }
118
111
 
119
- function FormFieldPostFix(_a) {
120
- var variation = _a.variation;
112
+ function FormFieldPostFix({ variation }) {
121
113
  return (React__default["default"].createElement("span", { className: styles.postfix }, variation === "select" ? (React__default["default"].createElement(Icon.Icon, { name: "arrowDown" })) : (React__default["default"].createElement(Spinner.Spinner, { size: "small" }))));
122
114
  }
123
115
 
124
116
  function FormField(props) {
125
117
  var _a;
126
- var actionsRef = props.actionsRef, _b = props.autocomplete, autocomplete = _b === void 0 ? true : _b, children = props.children, defaultValue = props.defaultValue, description = props.description, disabled = props.disabled, inputRef = props.inputRef, inline = props.inline, keyboard = props.keyboard, max = props.max, maxLength = props.maxLength, min = props.min, name = props.name, readonly = props.readonly, rows = props.rows, loading = props.loading, _c = props.type, type = _c === void 0 ? "text" : _c, validations = props.validations, value = props.value, onChange = props.onChange, onEnter = props.onEnter, onFocus = props.onFocus, onBlur = props.onBlur, onValidation = props.onValidation;
127
- var _d = reactHookForm.useFormContext() != undefined
118
+ const { actionsRef, autocomplete = true, children, defaultValue, description, disabled, inputRef, inline, keyboard, max, maxLength, min, name, readonly, rows, loading, type = "text", validations, value, onChange, onEnter, onFocus, onBlur, onValidation, } = props;
119
+ const { control, errors, setValue, watch } = reactHookForm.useFormContext() != undefined
128
120
  ? reactHookForm.useFormContext()
129
- : reactHookForm.useForm({ mode: "onTouched" }), control = _d.control, errors = _d.errors, setValue = _d.setValue, watch = _d.watch;
130
- var _e = tslib_es6.__read(React.useState(uuid.v1()), 1), identifier = _e[0];
131
- var _f = tslib_es6.__read(React.useState("descriptionUUID--" + uuid.v1()), 1), descriptionIdentifier = _f[0];
121
+ : reactHookForm.useForm({ mode: "onTouched" });
122
+ const [identifier] = React.useState(uuid.v1());
123
+ const [descriptionIdentifier] = React.useState(`descriptionUUID--${uuid.v1()}`);
132
124
  /**
133
125
  * Generate a name if one is not supplied, this is the name
134
126
  * that will be used for react-hook-form and not neccessarily
135
127
  * attached to the DOM
136
128
  */
137
- var _g = tslib_es6.__read(React.useState(name ? name : "generatedName--" + identifier), 1), controlledName = _g[0];
138
- React.useEffect(function () {
129
+ const [controlledName] = React.useState(name ? name : `generatedName--${identifier}`);
130
+ React.useEffect(() => {
139
131
  if (value != undefined) {
140
132
  setValue(controlledName, value);
141
133
  }
142
134
  }, [value, watch(controlledName)]);
143
- React.useImperativeHandle(actionsRef, function () { return ({
144
- setValue: function (newValue) {
135
+ React.useImperativeHandle(actionsRef, () => ({
136
+ setValue: newValue => {
145
137
  setValue(controlledName, newValue);
146
138
  },
147
- }); });
148
- var error = errors[controlledName] && errors[controlledName].message;
149
- React.useEffect(function () { return handleValidation(); }, [error]);
150
- return (React__default["default"].createElement(reactHookForm.Controller, { control: control, name: controlledName, rules: tslib_es6.__assign({}, validations), defaultValue: (_a = value !== null && value !== void 0 ? value : defaultValue) !== null && _a !== void 0 ? _a : "", render: function (_a) {
151
- var onControllerChange = _a.onChange, onControllerBlur = _a.onBlur, controllerName = _a.name, rest = tslib_es6.__rest(_a, ["onChange", "onBlur", "name"]);
152
- var fieldProps = tslib_es6.__assign(tslib_es6.__assign(tslib_es6.__assign({}, rest), { id: identifier, className: styles.input, name: (validations || name) && controllerName, disabled: disabled, readOnly: readonly, inputMode: keyboard, onChange: handleChange }), (description &&
139
+ }));
140
+ const error = errors[controlledName] && errors[controlledName].message;
141
+ React.useEffect(() => handleValidation(), [error]);
142
+ return (React__default["default"].createElement(reactHookForm.Controller, { control: control, name: controlledName, rules: Object.assign({}, validations), defaultValue: (_a = value !== null && value !== void 0 ? value : defaultValue) !== null && _a !== void 0 ? _a : "", render: (_a) => {
143
+ var { onChange: onControllerChange, onBlur: onControllerBlur, name: controllerName } = _a, rest = tslib_es6.__rest(_a, ["onChange", "onBlur", "name"]);
144
+ const fieldProps = Object.assign(Object.assign(Object.assign({}, rest), { id: identifier, className: styles.input, name: (validations || name) && controllerName, disabled: disabled, readOnly: readonly, inputMode: keyboard, onChange: handleChange }), (description &&
153
145
  !inline && { "aria-describedby": descriptionIdentifier }));
154
- var textFieldProps = tslib_es6.__assign(tslib_es6.__assign({}, fieldProps), { onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown });
155
- return (React__default["default"].createElement(FormFieldWrapper, tslib_es6.__assign({}, props, { value: rest.value, error: error, identifier: identifier, descriptionIdentifier: descriptionIdentifier }), renderField()));
146
+ const textFieldProps = Object.assign(Object.assign({}, fieldProps), { onBlur: handleBlur, onFocus: handleFocus, onKeyDown: handleKeyDown });
147
+ return (React__default["default"].createElement(FormFieldWrapper, Object.assign({}, props, { value: rest.value, error: error, identifier: identifier, descriptionIdentifier: descriptionIdentifier }), renderField()));
156
148
  function renderField() {
157
149
  switch (type) {
158
150
  case "select":
159
151
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
160
- React__default["default"].createElement("select", tslib_es6.__assign({}, fieldProps), children),
152
+ React__default["default"].createElement("select", Object.assign({}, fieldProps), children),
161
153
  React__default["default"].createElement(FormFieldPostFix, { variation: "select" })));
162
154
  case "textarea":
163
- return (React__default["default"].createElement("textarea", tslib_es6.__assign({}, textFieldProps, { rows: rows, ref: inputRef })));
155
+ return (React__default["default"].createElement("textarea", Object.assign({}, textFieldProps, { rows: rows, ref: inputRef })));
164
156
  default:
165
157
  return (React__default["default"].createElement(React__default["default"].Fragment, null,
166
- React__default["default"].createElement("input", tslib_es6.__assign({}, textFieldProps, { autoComplete: setAutocomplete(autocomplete), type: type, maxLength: maxLength, max: max, min: min, ref: inputRef })),
158
+ React__default["default"].createElement("input", Object.assign({}, textFieldProps, { autoComplete: setAutocomplete(autocomplete), type: type, maxLength: maxLength, max: max, min: min, ref: inputRef })),
167
159
  loading && React__default["default"].createElement(FormFieldPostFix, { variation: "spinner" })));
168
160
  }
169
161
  }
170
162
  function handleChange(event) {
171
- var newValue;
163
+ let newValue;
172
164
  newValue = event.currentTarget.value;
173
165
  if (type === "number" && newValue.length > 0) {
174
166
  newValue = parseFloat(newValue);
@@ -187,8 +179,8 @@ function FormField(props) {
187
179
  onEnter && onEnter(event);
188
180
  }
189
181
  function handleFocus(event) {
190
- var target = event.currentTarget;
191
- setTimeout(function () { return readonly && target.select(); });
182
+ const target = event.currentTarget;
183
+ setTimeout(() => readonly && target.select());
192
184
  onFocus && onFocus();
193
185
  }
194
186
  function handleBlur() {
@@ -8,9 +8,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
8
8
 
9
9
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
10
 
11
- function FormatDate(_a) {
12
- var inputDate = _a.date;
13
- var dateObject;
11
+ function FormatDate({ date: inputDate }) {
12
+ let dateObject;
14
13
  if (inputDate instanceof Date) {
15
14
  dateObject = inputDate;
16
15
  }
@@ -15,9 +15,8 @@ var css = "._2WQ6E_TFQTKhlZCeQv65zh {\n font-style: normal;\n}\n";
15
15
  var styles = {"email":"_2WQ6E_TFQTKhlZCeQv65zh"};
16
16
  styleInject_es.styleInject(css);
17
17
 
18
- function FormatEmail(_a) {
19
- var email = _a.email;
20
- var className = classnames__default["default"](styles.email);
18
+ function FormatEmail({ email }) {
19
+ const className = classnames__default["default"](styles.email);
21
20
  return React__default["default"].createElement("address", { className: className }, email);
22
21
  }
23
22
 
@@ -2,30 +2,29 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var FormatFile = require('../FormatFile-18e8a54a.js');
5
+ var FormatFile = require('../FormatFile-3512f838.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('filesize');
9
9
  require('../style-inject.es-dcee06b6.js');
10
- require('../tslib.es6-5b50eb8e.js');
11
- require('../Button-cd30df0f.js');
10
+ require('../Button-16e043ec.js');
12
11
  require('react-router-dom');
13
- require('../Icon-d5ad1a6d.js');
12
+ require('../Icon-405a216c.js');
14
13
  require('@jobber/design');
15
- require('../Typography-fbe0ed6e.js');
16
- require('../ConfirmationModal-e95f46d7.js');
14
+ require('../Typography-9262511f.js');
15
+ require('../ConfirmationModal-6a7beee2.js');
17
16
  require('@jobber/hooks');
18
- require('../Modal-cc3bd7bf.js');
17
+ require('../Modal-757e83fd.js');
19
18
  require('react-dom');
20
19
  require('framer-motion');
21
- require('../Heading-a9a66964.js');
22
- require('../ButtonDismiss-a9590195.js');
23
- require('../Content-18de5fbb.js');
24
- require('../Markdown-b53e0308.js');
20
+ require('../Heading-7b203f7f.js');
21
+ require('../ButtonDismiss-3fb1eaf9.js');
22
+ require('../Content-05df8f7f.js');
23
+ require('../Markdown-be2dcd0c.js');
25
24
  require('react-markdown');
26
- require('../Text-e012fb46.js');
27
- require('../Emphasis-75a3f411.js');
28
- require('../ProgressBar-e9a49129.js');
25
+ require('../Text-7ce00adb.js');
26
+ require('../Emphasis-23dc2a0a.js');
27
+ require('../ProgressBar-f028b159.js');
29
28
 
30
29
 
31
30