@jobber/components 4.1.0 → 4.1.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 (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-cf813028.js → DatePicker-0696b0f0.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-ac310b6f.js → FormField-79a0a375.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-70f7d947.js → InputText-95ea24f9.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-7d5de76b.js → Option-4b665afd.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
@@ -1,15 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
4
3
  var React = require('react');
5
4
  var ReactDOM = require('react-dom');
6
5
  var classnames = require('classnames');
7
6
  var framerMotion = require('framer-motion');
8
7
  var jobberHooks = require('@jobber/hooks');
9
8
  var styleInject_es = require('./style-inject.es-dcee06b6.js');
10
- var Heading = require('./Heading-a9a66964.js');
11
- var Button = require('./Button-cd30df0f.js');
12
- var ButtonDismiss = require('./ButtonDismiss-a9590195.js');
9
+ var Heading = require('./Heading-7b203f7f.js');
10
+ var Button = require('./Button-16e043ec.js');
11
+ var ButtonDismiss = require('./ButtonDismiss-3fb1eaf9.js');
13
12
 
14
13
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
14
 
@@ -25,13 +24,12 @@ var css = "._1rPyLQMc1nSLWx4zAzSas0 {\n --modal--padding: var(--space-base);\n
25
24
  var sizes = {"small":"_1rPyLQMc1nSLWx4zAzSas0","large":"_3GkHDHYnN_8P6NQFVSfYiB"};
26
25
  styleInject_es.styleInject(css);
27
26
 
28
- function Modal(_a) {
29
- var _b = _a.open, open = _b === void 0 ? false : _b, title = _a.title, size = _a.size, _c = _a.dismissible, dismissible = _c === void 0 ? true : _c, children = _a.children, primaryAction = _a.primaryAction, secondaryAction = _a.secondaryAction, tertiaryAction = _a.tertiaryAction, onRequestClose = _a.onRequestClose;
30
- var modalClassName = classnames__default["default"](styles.modal, size && sizes[size]);
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]);
31
29
  jobberHooks.useRefocusOnActivator(open);
32
- var modalRef = jobberHooks.useFocusTrap(open);
30
+ const modalRef = jobberHooks.useFocusTrap(open);
33
31
  jobberHooks.useOnKeyDown(handleRequestClose, "Escape");
34
- var template = (React__default["default"].createElement(framerMotion.AnimatePresence, null, open && (React__default["default"].createElement("div", { ref: modalRef, className: styles.container, tabIndex: 0 },
32
+ const template = (React__default["default"].createElement(framerMotion.AnimatePresence, null, open && (React__default["default"].createElement("div", { ref: modalRef, className: styles.container, tabIndex: 0 },
35
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 } }),
36
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: {
37
35
  duration: 0.2,
@@ -47,15 +45,13 @@ function Modal(_a) {
47
45
  }
48
46
  }
49
47
  }
50
- function Header(_a) {
51
- var title = _a.title, dismissible = _a.dismissible, onRequestClose = _a.onRequestClose;
48
+ function Header({ title, dismissible, onRequestClose }) {
52
49
  return (React__default["default"].createElement("div", { className: styles.header, "data-testid": "modal-header" },
53
50
  React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
54
51
  dismissible && (React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close modal" }))));
55
52
  }
56
- function Actions(_a) {
57
- var primary = _a.primary, secondary = _a.secondary, tertiary = _a.tertiary;
58
- var shouldShow = primary != undefined || secondary != undefined || tertiary != undefined;
53
+ function Actions({ primary, secondary, tertiary }) {
54
+ const shouldShow = primary != undefined || secondary != undefined || tertiary != undefined;
59
55
  if (secondary != undefined) {
60
56
  secondary = Object.assign({ type: "primary", variation: "subtle" }, secondary);
61
57
  }
@@ -64,10 +60,10 @@ function Actions(_a) {
64
60
  }
65
61
  return (React__default["default"].createElement(React__default["default"].Fragment, null, shouldShow && (React__default["default"].createElement("div", { className: styles.actionBar },
66
62
  React__default["default"].createElement("div", { className: styles.rightAction },
67
- primary && React__default["default"].createElement(Button.Button, tslib_es6.__assign({}, primary)),
68
- secondary && React__default["default"].createElement(Button.Button, tslib_es6.__assign({}, secondary))),
63
+ primary && React__default["default"].createElement(Button.Button, Object.assign({}, primary)),
64
+ secondary && React__default["default"].createElement(Button.Button, Object.assign({}, secondary))),
69
65
  tertiary && (React__default["default"].createElement("div", { className: styles.leftAction },
70
- React__default["default"].createElement(Button.Button, tslib_es6.__assign({}, tertiary))))))));
66
+ React__default["default"].createElement(Button.Button, Object.assign({}, tertiary))))))));
71
67
  }
72
68
 
73
69
  exports.Modal = Modal;
@@ -2,15 +2,14 @@
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 classnames = require('classnames');
8
7
  var jobberHooks = require('@jobber/hooks');
9
8
  var styleInject_es = require('../style-inject.es-dcee06b6.js');
10
- var Checkbox = require('../Checkbox-5103d2b9.js');
11
- var Text = require('../Text-e012fb46.js');
12
- var Icon = require('../Icon-d5ad1a6d.js');
13
- require('../Typography-fbe0ed6e.js');
9
+ var Checkbox = require('../Checkbox-c1efc2f6.js');
10
+ var Text = require('../Text-7ce00adb.js');
11
+ var Icon = require('../Icon-405a216c.js');
12
+ require('../Typography-9262511f.js');
14
13
  require('@jobber/design');
15
14
 
16
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -28,30 +27,27 @@ styleInject_es.styleInject(css);
28
27
 
29
28
  function handleKeyboardShortcut(setupKeyListeners) {
30
29
  function callback(event) {
31
- var metaKey = event.metaKey, ctrlKey = event.ctrlKey, key = event.key, target = event.target;
32
- var shouldTriggerShortcut = target instanceof HTMLButtonElement ? metaKey || ctrlKey : true;
30
+ const { metaKey, ctrlKey, key, target } = event;
31
+ const shouldTriggerShortcut = target instanceof HTMLButtonElement ? metaKey || ctrlKey : true;
33
32
  if (!shouldTriggerShortcut)
34
33
  return;
35
34
  event.preventDefault();
36
35
  event.stopPropagation();
37
36
  setupKeyListeners(key);
38
37
  }
39
- return { callback: callback };
38
+ return { callback };
40
39
  }
41
40
 
42
- function DropDownMenu(_a) {
43
- var options = _a.options, setOptions = _a.setOptions;
44
- var _b = tslib_es6.__read(React.useState(0), 2), highlightedIndex = _b[0], setHighlightedIndex = _b[1];
45
- var menuDiv = React.useRef();
46
- var handleOptionClick = React.useCallback(function (clickedOption) {
47
- setOptions(function (current) {
48
- return current.map(function (option) {
49
- if (option.label == clickedOption.label) {
50
- return tslib_es6.__assign(tslib_es6.__assign({}, option), { checked: !clickedOption.checked });
51
- }
52
- return option;
53
- });
54
- });
41
+ function DropDownMenu({ options, setOptions }) {
42
+ const [highlightedIndex, setHighlightedIndex] = React.useState(0);
43
+ const menuDiv = React.useRef();
44
+ const handleOptionClick = React.useCallback((clickedOption) => {
45
+ setOptions(current => current.map(option => {
46
+ if (option.label == clickedOption.label) {
47
+ return Object.assign(Object.assign({}, option), { checked: !clickedOption.checked });
48
+ }
49
+ return option;
50
+ }));
55
51
  }, []);
56
52
  function handleOptionHover(event, index) {
57
53
  event.preventDefault();
@@ -60,18 +56,18 @@ function DropDownMenu(_a) {
60
56
  function handleOptionFocus(index) {
61
57
  setHighlightedIndex(index);
62
58
  if (menuDiv.current) {
63
- var option = menuDiv.current.children[index].querySelector("input");
59
+ const option = menuDiv.current.children[index].querySelector("input");
64
60
  option === null || option === void 0 ? void 0 : option.focus();
65
61
  }
66
62
  }
67
63
  function scrollMenuIfItemNotInView(menuDivElement, direction) {
68
- var itemDiv = menuDivElement.querySelector(":nth-child(" + (highlightedIndex + 1) + ")");
64
+ const itemDiv = menuDivElement.querySelector(`:nth-child(${highlightedIndex + 1})`);
69
65
  if (!itemDiv)
70
66
  return;
71
- var menuTop = menuDivElement.getBoundingClientRect().top;
72
- var _a = itemDiv.getBoundingClientRect(), itemTop = _a.top, itemHeight = _a.height, itemBottom = _a.bottom;
73
- var itemTrueBottom = itemBottom + itemHeight;
74
- var menuBottom = menuDivElement.getBoundingClientRect().bottom;
67
+ const menuTop = menuDivElement.getBoundingClientRect().top;
68
+ const { top: itemTop, height: itemHeight, bottom: itemBottom, } = itemDiv.getBoundingClientRect();
69
+ const itemTrueBottom = itemBottom + itemHeight;
70
+ const menuBottom = menuDivElement.getBoundingClientRect().bottom;
75
71
  if (direction == "up" && itemTop - itemHeight < menuTop) {
76
72
  menuDivElement.scrollTop -= itemHeight;
77
73
  }
@@ -89,13 +85,13 @@ function DropDownMenu(_a) {
89
85
  break;
90
86
  }
91
87
  case "ArrowDown": {
92
- var newIndex = Math.min(options.length - 1, highlightedIndex + 1);
88
+ const newIndex = Math.min(options.length - 1, highlightedIndex + 1);
93
89
  handleOptionFocus(newIndex);
94
90
  scrollMenuIfItemNotInView(menuDiv.current, "down");
95
91
  break;
96
92
  }
97
93
  case "ArrowUp": {
98
- var newIndex = Math.max(0, highlightedIndex - 1);
94
+ const newIndex = Math.max(0, highlightedIndex - 1);
99
95
  handleOptionFocus(newIndex);
100
96
  scrollMenuIfItemNotInView(menuDiv.current, "up");
101
97
  break;
@@ -108,43 +104,40 @@ function DropDownMenu(_a) {
108
104
  "ArrowDown",
109
105
  "ArrowUp",
110
106
  ]);
111
- React.useEffect(function () {
107
+ React.useEffect(() => {
112
108
  // focus first option
113
109
  handleOptionFocus(0);
114
110
  }, [menuDiv]);
115
- return (React__default["default"].createElement("ul", { "data-testid": "dropdown-menu", className: styles.dropDownMenuContainer, ref: menuDiv }, options.map(function (option, index) {
116
- var _a;
117
- var optionClass = classnames__default["default"](styles.option, (_a = {},
118
- _a[styles.active] = index === highlightedIndex,
119
- _a));
120
- return (React__default["default"].createElement("li", { key: index + "-" + option.label, className: optionClass, onClick: function (event) {
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,
114
+ });
115
+ return (React__default["default"].createElement("li", { key: `${index}-${option.label}`, className: optionClass, onClick: event => {
121
116
  event.stopPropagation();
122
117
  event.preventDefault();
123
118
  handleOptionClick(option);
124
- }, onMouseOver: function (e) { return handleOptionHover(e, index); } },
125
- React__default["default"].createElement(Checkbox.Checkbox, { label: option.label, checked: option.checked, onFocus: function () { return setHighlightedIndex(index); } })));
119
+ }, onMouseOver: e => handleOptionHover(e, index) },
120
+ React__default["default"].createElement(Checkbox.Checkbox, { label: option.label, checked: option.checked, onFocus: () => setHighlightedIndex(index) })));
126
121
  })));
127
122
  }
128
123
 
129
124
  // eslint-disable-next-line max-statements
130
- function MultiSelect(_a) {
131
- var _b;
132
- var defaultLabel = _a.defaultLabel, allSelectedLabel = _a.allSelectedLabel, options = _a.options, onOptionsChange = _a.onOptionsChange, size = _a.size;
133
- var _c = tslib_es6.__read(React.useState(defaultLabel), 2), label = _c[0], setLabel = _c[1];
134
- var _d = tslib_es6.__read(React.useState(false), 2), menuVisible = _d[0], setMenuVisible = _d[1];
135
- var _e = tslib_es6.__read(React.useState(false), 2), focused = _e[0], setFocused = _e[1];
136
- var multiSelectContainer = React.useRef();
137
- var multiSelectRef = React.useRef();
138
- var multiSelectClass = classnames__default["default"](styles$1.multiSelect, (_b = {},
139
- _b[styles$1.active] = menuVisible,
140
- _b[styles$1.large] = size === "large",
141
- _b[styles$1.small] = size === "small",
142
- _b));
125
+ function MultiSelect({ defaultLabel, allSelectedLabel, options, onOptionsChange, size, }) {
126
+ const [label, setLabel] = React.useState(defaultLabel);
127
+ const [menuVisible, setMenuVisible] = React.useState(false);
128
+ const [focused, setFocused] = React.useState(false);
129
+ const multiSelectContainer = React.useRef();
130
+ const multiSelectRef = React.useRef();
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",
135
+ });
143
136
  function handleMenuVisibility() {
144
137
  multiSelectRef.current.focus();
145
138
  setMenuVisible(!menuVisible);
146
139
  }
147
- var handleClickOutside = function (e) {
140
+ const handleClickOutside = (e) => {
148
141
  var _a;
149
142
  if (!((_a = multiSelectContainer === null || multiSelectContainer === void 0 ? void 0 : multiSelectContainer.current) === null || _a === void 0 ? void 0 : _a.contains(e.target))) {
150
143
  setMenuVisible(false);
@@ -171,12 +164,12 @@ function MultiSelect(_a) {
171
164
  " ",
172
165
  "Escape",
173
166
  ]);
174
- React.useEffect(function () {
167
+ React.useEffect(() => {
175
168
  document.addEventListener("mousedown", handleClickOutside);
176
- return function () { return document.removeEventListener("mousedown", handleClickOutside); };
169
+ return () => document.removeEventListener("mousedown", handleClickOutside);
177
170
  });
178
- React.useEffect(function () {
179
- var selected = options.filter(function (option) { return option.checked; });
171
+ React.useEffect(() => {
172
+ const selected = options.filter(option => option.checked);
180
173
  if (selected.length === 0) {
181
174
  setLabel(defaultLabel);
182
175
  }
@@ -184,13 +177,13 @@ function MultiSelect(_a) {
184
177
  setLabel(allSelectedLabel);
185
178
  }
186
179
  else {
187
- var selectedLabels_1 = [];
188
- selected.forEach(function (option) { return selectedLabels_1.push(option.label); });
189
- setLabel(selectedLabels_1.join(", "));
180
+ const selectedLabels = [];
181
+ selected.forEach(option => selectedLabels.push(option.label));
182
+ setLabel(selectedLabels.join(", "));
190
183
  }
191
184
  }, [options]);
192
185
  return (React__default["default"].createElement("div", { ref: multiSelectContainer, className: styles$1.multiSelectContainer },
193
- React__default["default"].createElement("div", { "data-testid": "multi-select", className: multiSelectClass, onClick: handleMenuVisibility, onFocus: function () { return setFocused(true); }, onBlur: function () { return setFocused(false); }, tabIndex: 0, ref: multiSelectRef, role: "button", "aria-label": defaultLabel + ": " + label, "aria-multiselectable": true, "aria-haspopup": true },
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 },
194
187
  React__default["default"].createElement(Text.Text, null, label),
195
188
  React__default["default"].createElement(Icon.Icon, { name: "arrowDown" })),
196
189
  menuVisible && (React__default["default"].createElement(DropDownMenu, { options: options, setOptions: onOptionsChange }))));
@@ -10,4 +10,4 @@ export interface Option {
10
10
  */
11
11
  checked: boolean;
12
12
  }
13
- export declare type Options = Array<Option>;
13
+ export type Options = Array<Option>;
@@ -1,19 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
4
3
  var React = require('react');
5
- var FormField = require('./FormField-ac310b6f.js');
4
+ var FormField = require('./FormField-79a0a375.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
10
  function Select(props) {
12
- return React__default["default"].createElement(FormField.FormField, tslib_es6.__assign({ type: "select" }, props));
11
+ return React__default["default"].createElement(FormField.FormField, Object.assign({ type: "select" }, props));
13
12
  }
14
13
 
15
- function SelectOption(_a) {
16
- var children = _a.children, disabled = _a.disabled, value = _a.value;
14
+ function SelectOption({ children, disabled, value }) {
17
15
  return (React__default["default"].createElement("option", { disabled: disabled, value: value }, children));
18
16
  }
19
17
 
@@ -54,6 +54,6 @@ interface PageWithIntroProps extends PageFoundationProps {
54
54
  */
55
55
  readonly externalIntroLinks?: boolean;
56
56
  }
57
- export declare type PageProps = XOR<PageFoundationProps, PageWithIntroProps>;
57
+ export type PageProps = XOR<PageFoundationProps, PageWithIntroProps>;
58
58
  export declare function Page({ title, intro, externalIntroLinks, subtitle, children, width, primaryAction, secondaryAction, moreActionsMenu, }: PageProps): JSX.Element;
59
59
  export {};
@@ -2,22 +2,21 @@
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 classnames = require('classnames');
8
7
  var jobberHooks = require('@jobber/hooks');
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 Markdown = require('../Markdown-b53e0308.js');
14
- var Button = require('../Button-cd30df0f.js');
15
- var Menu = require('../Menu-826cfb89.js');
16
- var Emphasis = require('../Emphasis-75a3f411.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 Markdown = require('../Markdown-be2dcd0c.js');
13
+ var Button = require('../Button-16e043ec.js');
14
+ var Menu = require('../Menu-d6a7d17b.js');
15
+ var Emphasis = require('../Emphasis-23dc2a0a.js');
16
+ require('../Typography-9262511f.js');
18
17
  require('react-markdown');
19
18
  require('react-router-dom');
20
- require('../Icon-d5ad1a6d.js');
19
+ require('../Icon-405a216c.js');
21
20
  require('@jobber/design');
22
21
  require('uuid');
23
22
  require('framer-motion');
@@ -32,18 +31,16 @@ var styles = {"page":"D_deCgrOv6-H73MnfGJvm","fill":"_1ApfukxxkhoI4O2hiz5Uwn","s
32
31
  styleInject_es.styleInject(css);
33
32
 
34
33
  // eslint-disable-next-line max-statements
35
- function Page(_a) {
36
- var _b;
37
- var title = _a.title, intro = _a.intro, externalIntroLinks = _a.externalIntroLinks, subtitle = _a.subtitle, children = _a.children, _c = _a.width, width = _c === void 0 ? "standard" : _c, primaryAction = _a.primaryAction, secondaryAction = _a.secondaryAction, _d = _a.moreActionsMenu, moreActionsMenu = _d === void 0 ? [] : _d;
38
- var pageStyles = classnames__default["default"](styles.page, styles[width]);
39
- var _e = tslib_es6.__read(jobberHooks.useResizeObserver(), 2), titleBarRef = _e[0], _f = _e[1].width, titleBarWidth = _f === void 0 ? jobberHooks.Breakpoints.large : _f;
40
- var titleBarClasses = classnames__default["default"](styles.titleBar, (_b = {},
41
- _b[styles.small] = titleBarWidth > jobberHooks.Breakpoints.smaller,
42
- _b[styles.medium] = titleBarWidth > jobberHooks.Breakpoints.small,
43
- _b[styles.large] = titleBarWidth > jobberHooks.Breakpoints.base,
44
- _b));
45
- var showMenu = moreActionsMenu.length > 0;
46
- var showActionGroup = showMenu || primaryAction;
34
+ function Page({ title, intro, externalIntroLinks, subtitle, children, width = "standard", primaryAction, secondaryAction, moreActionsMenu = [], }) {
35
+ const pageStyles = classnames__default["default"](styles.page, styles[width]);
36
+ const [titleBarRef, { width: titleBarWidth = jobberHooks.Breakpoints.large }] = jobberHooks.useResizeObserver();
37
+ const titleBarClasses = classnames__default["default"](styles.titleBar, {
38
+ [styles.small]: titleBarWidth > jobberHooks.Breakpoints.smaller,
39
+ [styles.medium]: titleBarWidth > jobberHooks.Breakpoints.small,
40
+ [styles.large]: titleBarWidth > jobberHooks.Breakpoints.base,
41
+ });
42
+ const showMenu = moreActionsMenu.length > 0;
43
+ const showActionGroup = showMenu || primaryAction;
47
44
  if (primaryAction != undefined) {
48
45
  primaryAction = Object.assign({ fullWidth: true }, primaryAction);
49
46
  }
@@ -65,9 +62,9 @@ function Page(_a) {
65
62
  React__default["default"].createElement(Markdown.Markdown, { content: subtitle, basicUsage: true })))))),
66
63
  showActionGroup && (React__default["default"].createElement("div", { className: styles.actionGroup },
67
64
  primaryAction && (React__default["default"].createElement("div", { className: styles.primaryAction },
68
- React__default["default"].createElement(Button.Button, tslib_es6.__assign({}, primaryAction)))),
65
+ React__default["default"].createElement(Button.Button, Object.assign({}, primaryAction)))),
69
66
  secondaryAction && (React__default["default"].createElement("div", { className: styles.actionButton },
70
- React__default["default"].createElement(Button.Button, tslib_es6.__assign({}, secondaryAction)))),
67
+ React__default["default"].createElement(Button.Button, Object.assign({}, secondaryAction)))),
71
68
  showMenu && (React__default["default"].createElement("div", { className: styles.actionButton },
72
69
  React__default["default"].createElement(Menu.Menu, { items: moreActionsMenu })))))),
73
70
  intro && (React__default["default"].createElement(Text.Text, { size: "large" },
@@ -2,18 +2,17 @@
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 reactPopper = require('react-popper');
8
7
  var jobberHooks = require('@jobber/hooks');
9
8
  var styleInject_es = require('../style-inject.es-dcee06b6.js');
10
- var ButtonDismiss = require('../ButtonDismiss-a9590195.js');
11
- require('../Button-cd30df0f.js');
9
+ var ButtonDismiss = require('../ButtonDismiss-3fb1eaf9.js');
10
+ require('../Button-16e043ec.js');
12
11
  require('classnames');
13
12
  require('react-router-dom');
14
- require('../Icon-d5ad1a6d.js');
13
+ require('../Icon-405a216c.js');
15
14
  require('@jobber/design');
16
- require('../Typography-fbe0ed6e.js');
15
+ require('../Typography-9262511f.js');
17
16
 
18
17
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
18
 
@@ -23,23 +22,22 @@ var css = ":root {\n --card--base-padding: var(--space-base);\n --popover--pad
23
22
  var classes = {"header":"bmcwfoRgxW9uxv0uyXH04","dismissButton":"TjIegPUFwvTBnPHT-hzfN","popover":"_1v-Ekqld7VhWiu8_bFt62z","arrow":"ZBY5pcUZw7V-86CZwsJcF"};
24
23
  styleInject_es.styleInject(css);
25
24
 
26
- function Popover(_a) {
27
- var onRequestClose = _a.onRequestClose, children = _a.children, attachTo = _a.attachTo, open = _a.open, _b = _a.preferredPlacement, preferredPlacement = _b === void 0 ? "auto" : _b;
28
- var _c = tslib_es6.__read(React.useState(), 2), popperElement = _c[0], setPopperElement = _c[1];
29
- var _d = tslib_es6.__read(React.useState(), 2), arrowElement = _d[0], setArrowElement = _d[1];
30
- var _e = reactPopper.usePopper(attachTo instanceof Element ? attachTo : attachTo.current, popperElement, {
25
+ function Popover({ onRequestClose, children, attachTo, open, preferredPlacement = "auto", }) {
26
+ const [popperElement, setPopperElement] = React.useState();
27
+ const [arrowElement, setArrowElement] = React.useState();
28
+ const { styles: popperStyles, attributes } = reactPopper.usePopper(attachTo instanceof Element ? attachTo : attachTo.current, popperElement, {
31
29
  modifiers: buildModifiers(arrowElement),
32
30
  placement: preferredPlacement,
33
- }), popperStyles = _e.styles, attributes = _e.attributes;
31
+ });
34
32
  jobberHooks.useRefocusOnActivator(open);
35
- return (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement("div", tslib_es6.__assign({ role: "dialog", ref: setPopperElement, style: popperStyles.popper, className: classes.popover }, attributes.popper),
33
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, open && (React__default["default"].createElement("div", Object.assign({ role: "dialog", ref: setPopperElement, style: popperStyles.popper, className: classes.popover }, attributes.popper),
36
34
  React__default["default"].createElement("div", { className: classes.dismissButton },
37
35
  React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: "Close dialog" })),
38
36
  children,
39
37
  React__default["default"].createElement("div", { ref: setArrowElement, className: classes.arrow, style: popperStyles.arrow })))));
40
38
  }
41
39
  function buildModifiers(arrowElement) {
42
- var modifiers = [
40
+ const modifiers = [
43
41
  {
44
42
  name: "arrow",
45
43
  options: { element: arrowElement, padding: 10 },
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ProgressBar = require('../ProgressBar-e9a49129.js');
5
+ var ProgressBar = require('../ProgressBar-f028b159.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('../style-inject.es-dcee06b6.js');
@@ -17,10 +17,9 @@ var css = "._3m4bLvy45VVeWhtP3H5dQ3 {\n --progress-bar--height: var(--space-sma
17
17
  var sizes = {"small":"_3m4bLvy45VVeWhtP3H5dQ3","base":"_2gLOi6dJvWt7HGwcOX4GlO"};
18
18
  styleInject_es.styleInject(css);
19
19
 
20
- function ProgressBar(_a) {
21
- var currentStep = _a.currentStep, totalSteps = _a.totalSteps, _b = _a.size, size = _b === void 0 ? "base" : _b;
22
- var percentage = (currentStep / totalSteps) * 100;
23
- var progressBarClassName = classnames__default["default"](styles.ProgressBar, sizes[size]);
20
+ function ProgressBar({ currentStep, totalSteps, size = "base", }) {
21
+ const percentage = (currentStep / totalSteps) * 100;
22
+ const progressBarClassName = classnames__default["default"](styles.ProgressBar, sizes[size]);
24
23
  return (React__default["default"].createElement("progress", { className: progressBarClassName, max: totalSteps, value: currentStep },
25
24
  percentage,
26
25
  "%"));
@@ -14,7 +14,7 @@ interface RadioOptionsWithDescription extends BaseRadioOptions {
14
14
  */
15
15
  description?: string;
16
16
  }
17
- declare type RadioOptionProps = XOR<RadioOptionsWithDescription, PropsWithChildren<BaseRadioOptions>>;
17
+ type RadioOptionProps = XOR<RadioOptionsWithDescription, PropsWithChildren<BaseRadioOptions>>;
18
18
  /**
19
19
  * For rendering props only. To make updates to
20
20
  * the real RadioOption, look at InternalRadioOption
@@ -29,6 +29,6 @@ interface InternalRadioOptionsWithDescription extends BaseInternalRadioOptions {
29
29
  label: string;
30
30
  description?: string;
31
31
  }
32
- declare type InternalRadioOptionProps = XOR<InternalRadioOptionsWithDescription, PropsWithChildren<BaseInternalRadioOptions>>;
32
+ type InternalRadioOptionProps = XOR<InternalRadioOptionsWithDescription, PropsWithChildren<BaseInternalRadioOptions>>;
33
33
  export declare function InternalRadioOption({ value, name, label, description, disabled, checked, children, onChange, }: PropsWithChildren<InternalRadioOptionProps>): JSX.Element;
34
34
  export {};
@@ -2,12 +2,11 @@
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 uuid = require('uuid');
8
7
  var styleInject_es = require('../style-inject.es-dcee06b6.js');
9
- var Text = require('../Text-e012fb46.js');
10
- require('../Typography-fbe0ed6e.js');
8
+ var Text = require('../Text-7ce00adb.js');
9
+ require('../Typography-9262511f.js');
11
10
  require('classnames');
12
11
 
13
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -22,26 +21,23 @@ styleInject_es.styleInject(css);
22
21
  * For rendering props only. To make updates to
23
22
  * the real RadioOption, look at InternalRadioOption
24
23
  */
25
- function RadioOption(_a) {
26
- var children = _a.children;
24
+ function RadioOption({ children }) {
27
25
  return React__default["default"].createElement(React__default["default"].Fragment, null, children);
28
26
  }
29
- function InternalRadioOption(_a) {
30
- var value = _a.value, name = _a.name, label = _a.label, description = _a.description, disabled = _a.disabled, checked = _a.checked, children = _a.children, onChange = _a.onChange;
31
- var inputId = value.toString() + "_" + uuid.v1();
27
+ function InternalRadioOption({ value, name, label, description, disabled, checked, children, onChange, }) {
28
+ const inputId = `${value.toString()}_${uuid.v1()}`;
32
29
  return (React__default["default"].createElement("div", null,
33
- React__default["default"].createElement("input", { onChange: handleChange, type: "radio", name: name, value: value, disabled: disabled, checked: checked, id: inputId, className: styles.input, "aria-describedby": description ? inputId + "_description" : undefined }),
30
+ React__default["default"].createElement("input", { onChange: handleChange, type: "radio", name: name, value: value, disabled: disabled, checked: checked, id: inputId, className: styles.input, "aria-describedby": description ? `${inputId}_description` : undefined }),
34
31
  React__default["default"].createElement("label", { className: styles.label, htmlFor: inputId }, label ? label : children),
35
- description && (React__default["default"].createElement("div", { className: styles.description, id: inputId + "_description" },
32
+ description && (React__default["default"].createElement("div", { className: styles.description, id: `${inputId}_description` },
36
33
  React__default["default"].createElement(Text.Text, { variation: "subdued", size: "small" }, description)))));
37
34
  function handleChange() {
38
35
  onChange(value);
39
36
  }
40
37
  }
41
38
 
42
- function RadioGroup(_a) {
43
- var children = _a.children, value = _a.value, ariaLabel = _a.ariaLabel, onChange = _a.onChange, _b = _a.name, name = _b === void 0 ? uuid.v1() : _b;
44
- return (React__default["default"].createElement("div", { role: "radiogroup", "aria-label": ariaLabel, className: styles.radioGroup }, React__default["default"].Children.map(children, function (option) { return (React__default["default"].createElement(InternalRadioOption, tslib_es6.__assign({ checked: value === option.props.value, name: name, onChange: handleChange }, option.props), option.props.children)); })));
39
+ function RadioGroup({ children, value, ariaLabel, onChange, name = uuid.v1(), }) {
40
+ return (React__default["default"].createElement("div", { role: "radiogroup", "aria-label": ariaLabel, className: styles.radioGroup }, React__default["default"].Children.map(children, option => (React__default["default"].createElement(InternalRadioOption, Object.assign({ checked: value === option.props.value, name: name, onChange: handleChange }, option.props), option.props.children)))));
45
41
  function handleChange(newValue) {
46
42
  if (newValue !== value) {
47
43
  onChange(newValue);
@@ -7,7 +7,7 @@ export declare enum WeekDay {
7
7
  Friday = 5,
8
8
  Saturday = 6
9
9
  }
10
- export declare type DayOfMonth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | "LAST";
10
+ export type DayOfMonth = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | "LAST";
11
11
  export declare enum DurationPeriod {
12
12
  Day = "Day",
13
13
  Week = "Week",
@@ -34,7 +34,7 @@ export interface RecurrenceRuleWeekDayOfMonth {
34
34
  type: DurationPeriod.WeekDayOfMonth;
35
35
  dayOfWeek: [Set<WeekDay>, Set<WeekDay>, Set<WeekDay>, Set<WeekDay>];
36
36
  }
37
- export declare type RecurrenceRule = {
37
+ export type RecurrenceRule = {
38
38
  interval: number;
39
39
  } & (RecurrenceRuleDay | RecurrenceRuleWeek | RecurrenceRuleYear | RecurrenceRuleDayOfMonth | RecurrenceRuleWeekDayOfMonth);
40
40
  export interface InitialStateMap {
@@ -6,6 +6,6 @@ import { FormFieldProps } from "../FormField";
6
6
  * Unfortunately Docz doesn't currently support Omit so it has been reduced to
7
7
  * its component parts.
8
8
  */
9
- declare type SelectProps = Pick<FormFieldProps, Exclude<keyof FormFieldProps, "type" | "rows" | "keyboard" | "actionsRef">>;
9
+ type SelectProps = Pick<FormFieldProps, Exclude<keyof FormFieldProps, "type" | "rows" | "keyboard" | "actionsRef">>;
10
10
  export declare function Select(props: SelectProps): JSX.Element;
11
11
  export {};
@@ -2,23 +2,23 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Option = require('../Option-7d5de76b.js');
6
- require('../tslib.es6-5b50eb8e.js');
5
+ var Option = require('../Option-4b665afd.js');
7
6
  require('react');
8
- require('../FormField-ac310b6f.js');
7
+ require('../FormField-79a0a375.js');
8
+ require('../tslib.es6-efe27175.js');
9
9
  require('uuid');
10
10
  require('react-hook-form');
11
11
  require('../style-inject.es-dcee06b6.js');
12
12
  require('classnames');
13
- require('../Button-cd30df0f.js');
13
+ require('../Button-16e043ec.js');
14
14
  require('react-router-dom');
15
- require('../Icon-d5ad1a6d.js');
15
+ require('../Icon-405a216c.js');
16
16
  require('@jobber/design');
17
- require('../Typography-fbe0ed6e.js');
18
- require('../Text-e012fb46.js');
19
- require('../InputValidation-06a8a7ba.js');
17
+ require('../Typography-9262511f.js');
18
+ require('../Text-7ce00adb.js');
19
+ require('../InputValidation-97dd0dcf.js');
20
20
  require('framer-motion');
21
- require('../Spinner-e4e9c8eb.js');
21
+ require('../Spinner-ae4c8a85.js');
22
22
 
23
23
 
24
24
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Spinner = require('../Spinner-e4e9c8eb.js');
5
+ var Spinner = require('../Spinner-ae4c8a85.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('../style-inject.es-dcee06b6.js');