@jobber/components 4.46.0 → 4.46.1-JOB-79340.32

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 (128) hide show
  1. package/Chip.d.ts +1 -0
  2. package/Chip.js +17 -0
  3. package/Flex.d.ts +1 -0
  4. package/Flex.js +17 -0
  5. package/dist/Autocomplete/index.js +7 -7
  6. package/dist/Avatar/Avatar.d.ts +1 -1
  7. package/dist/Avatar/index.d.ts +1 -1
  8. package/dist/Banner/index.js +3 -3
  9. package/dist/Button/index.js +2 -2
  10. package/dist/{Button-d89f2271.js → Button-db6114a6.js} +1 -1
  11. package/dist/ButtonDismiss/index.js +3 -3
  12. package/dist/{ButtonDismiss-250840a4.js → ButtonDismiss-1ccb84ec.js} +1 -1
  13. package/dist/Card/index.js +5 -5
  14. package/dist/{Card-69304e99.js → Card-116af709.js} +3 -3
  15. package/dist/Checkbox/index.js +3 -3
  16. package/dist/{Checkbox-eac63b7f.js → Checkbox-bc4bc968.js} +1 -1
  17. package/dist/Chip/Chip.d.ts +8 -0
  18. package/dist/Chip/Chip.types.d.d.ts +68 -0
  19. package/dist/Chip/components/ChipDismissible/ChipDismissible.d.ts +3 -0
  20. package/dist/Chip/components/ChipPrefix/Chip.Prefix.d.ts +6 -0
  21. package/dist/Chip/components/ChipSelectable/ChipSelectable.d.ts +3 -0
  22. package/dist/Chip/components/ChipSuffix/Chip.Suffix.d.ts +10 -0
  23. package/dist/Chip/hooks/index.d.ts +1 -0
  24. package/dist/Chip/hooks/useChildComponent.d.ts +8 -0
  25. package/dist/Chip/index.d.ts +4 -0
  26. package/dist/Chip/index.js +35 -0
  27. package/dist/Chip-00e281e9.js +73 -0
  28. package/dist/Chips/ChipsTypes.d.ts +10 -6
  29. package/dist/Chips/InternalChipDismissible/InternalChipDismissibleTypes.d.ts +1 -1
  30. package/dist/Chips/InternalChipDismissible/hooks/useInternalChipDismissible.d.ts +1 -1
  31. package/dist/Chips/InternalChipSingleSelect.d.ts +1 -1
  32. package/dist/Chips/index.d.ts +5 -1
  33. package/dist/Chips/index.js +122 -18
  34. package/dist/{Chip-4d8e6370.js → Chips-5ff2b9d2.js} +62 -169
  35. package/dist/Combobox/Combobox.d.ts +1 -12
  36. package/dist/Combobox/Combobox.types.d.ts +142 -0
  37. package/dist/Combobox/components/ComboboxAction/ComboboxAction.d.ts +2 -11
  38. package/dist/Combobox/components/ComboboxAction/index.d.ts +1 -1
  39. package/dist/Combobox/components/ComboboxContent/ComboboxContent.d.ts +2 -32
  40. package/dist/Combobox/components/ComboboxContent/ComboboxContentHeader/ComboboxContentHeader.d.ts +3 -0
  41. package/dist/Combobox/components/ComboboxContent/ComboboxContentHeader/index.d.ts +1 -0
  42. package/dist/Combobox/components/ComboboxContent/ComboboxContentList/ComboboxContentList.d.ts +3 -0
  43. package/dist/Combobox/components/ComboboxContent/ComboboxContentList/index.d.ts +1 -0
  44. package/dist/Combobox/components/ComboboxContent/ComboboxContentSearch/ComboboxContentSearch.d.ts +3 -0
  45. package/dist/Combobox/components/ComboboxContent/ComboboxContentSearch/index.d.ts +1 -0
  46. package/dist/Combobox/components/ComboboxTrigger/ComboboxTriggerButton/ComboboxTriggerButton.d.ts +1 -1
  47. package/dist/Combobox/components/ComboboxTrigger/ComboboxTriggerChip/ComboboxTriggerChip.d.ts +1 -1
  48. package/dist/Combobox/hooks/useComboboxAccessibility.d.ts +1 -1
  49. package/dist/Combobox/hooks/useComboboxContent.d.ts +8 -4
  50. package/dist/Combobox/hooks/useComboboxValidation.d.ts +7 -0
  51. package/dist/Combobox/index.d.ts +2 -2
  52. package/dist/Combobox/index.js +112 -53
  53. package/dist/ConfirmationModal/index.js +9 -9
  54. package/dist/{ConfirmationModal-92f07027.js → ConfirmationModal-285c3cbe.js} +2 -2
  55. package/dist/Content/Content.d.ts +1 -1
  56. package/dist/DataDump/index.js +6 -6
  57. package/dist/DataList/DataList.types.d.ts +9 -1
  58. package/dist/DataList/components/DataListSearch/DataListSearch.d.ts +1 -1
  59. package/dist/DataList/index.js +47 -24
  60. package/dist/DataTable/index.js +6 -6
  61. package/dist/DatePicker/index.js +3 -3
  62. package/dist/{DatePicker-39d2dc8b.js → DatePicker-49213434.js} +2 -2
  63. package/dist/DescriptionList/index.js +1 -1
  64. package/dist/Disclosure/index.js +1 -1
  65. package/dist/Drawer/index.js +4 -4
  66. package/dist/Emphasis/index.js +2 -2
  67. package/dist/{Emphasis-cc3456ac.js → Emphasis-e10dde65.js} +1 -1
  68. package/dist/FeatureSwitch/index.js +7 -7
  69. package/dist/Flex/Flex.d.ts +32 -0
  70. package/dist/Flex/Flex.types.d.ts +6 -0
  71. package/dist/Flex/index.d.ts +1 -0
  72. package/dist/Flex/index.js +40 -0
  73. package/dist/FormField/index.js +5 -5
  74. package/dist/{FormField-bef41ec9.js → FormField-fa9254dc.js} +3 -3
  75. package/dist/FormatFile/index.js +10 -10
  76. package/dist/{FormatFile-a470c0f2.js → FormatFile-6423c3b5.js} +4 -4
  77. package/dist/Gallery/index.js +11 -11
  78. package/dist/Heading/index.js +2 -2
  79. package/dist/{Heading-4562900a.js → Heading-4cde9989.js} +1 -1
  80. package/dist/InlineLabel/index.js +2 -2
  81. package/dist/{InlineLabel-3d461632.js → InlineLabel-a24706c4.js} +1 -1
  82. package/dist/InputAvatar/index.js +3 -3
  83. package/dist/InputDate/index.js +6 -6
  84. package/dist/InputEmail/index.js +5 -5
  85. package/dist/InputFile/index.js +3 -3
  86. package/dist/{InputFile-d327dee3.js → InputFile-25c3369b.js} +2 -2
  87. package/dist/InputNumber/index.js +6 -6
  88. package/dist/{InputNumber-5640fb55.js → InputNumber-ea9fcee1.js} +1 -1
  89. package/dist/InputPassword/index.js +5 -5
  90. package/dist/InputPhoneNumber/index.js +5 -5
  91. package/dist/InputText/index.js +6 -6
  92. package/dist/{InputText-5ac5cfe0.js → InputText-ab237501.js} +1 -1
  93. package/dist/InputTime/index.js +5 -5
  94. package/dist/InputValidation/index.js +3 -3
  95. package/dist/{InputValidation-4e809bdd.js → InputValidation-377d6c62.js} +1 -1
  96. package/dist/LightBox/index.js +4 -4
  97. package/dist/{LightBox-02ca409e.js → LightBox-93ef99b9.js} +2 -2
  98. package/dist/List/index.js +5 -5
  99. package/dist/Markdown/index.js +5 -5
  100. package/dist/{Markdown-b37cf9ec.js → Markdown-d53b01bf.js} +3 -3
  101. package/dist/Menu/index.js +3 -3
  102. package/dist/{Menu-cec53b50.js → Menu-2e64307a.js} +2 -2
  103. package/dist/Modal/index.js +5 -5
  104. package/dist/{Modal-dcdc0032.js → Modal-c17cc105.js} +3 -3
  105. package/dist/MultiSelect/index.js +3 -3
  106. package/dist/{Option-9f4a65da.js → Option-07a24acd.js} +1 -1
  107. package/dist/Page/index.js +7 -7
  108. package/dist/Popover/index.js +4 -4
  109. package/dist/{Popover-d401fb54.js → Popover-7c966790.js} +1 -1
  110. package/dist/RadioGroup/index.js +3 -3
  111. package/dist/{RadioGroup-46833fac.js → RadioGroup-9bdd8a59.js} +1 -1
  112. package/dist/RecurringSelect/index.js +8 -8
  113. package/dist/Select/index.js +6 -6
  114. package/dist/StatusLabel/index.js +2 -2
  115. package/dist/Switch/index.js +2 -2
  116. package/dist/{Switch-165f01e3.js → Switch-cc9b645c.js} +1 -1
  117. package/dist/Tabs/index.js +1 -1
  118. package/dist/Text/index.js +2 -2
  119. package/dist/{Text-59bde58c.js → Text-54334431.js} +1 -1
  120. package/dist/Toast/index.js +2 -2
  121. package/dist/Tooltip/index.js +1 -3
  122. package/dist/{Tooltip-59dbab5b.js → Tooltip-ae33a335.js} +5 -7
  123. package/dist/Typography/index.js +1 -1
  124. package/dist/{Typography-9bff9c91.js → Typography-83915c54.js} +2 -2
  125. package/package.json +6 -6
  126. package/rollup.config.js +1 -0
  127. package/dist/Combobox/components/ComboboxContent/ComboboxList.d.ts +0 -14
  128. package/dist/Combobox/components/ComboboxContent/ComboboxSearch.d.ts +0 -7
@@ -2,28 +2,28 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ConfirmationModal = require('../ConfirmationModal-92f07027.js');
5
+ var ConfirmationModal = require('../ConfirmationModal-285c3cbe.js');
6
6
  require('react');
7
7
  require('@jobber/hooks/useOnKeyDown');
8
- require('../Modal-dcdc0032.js');
8
+ require('../Modal-c17cc105.js');
9
9
  require('react-dom');
10
10
  require('classnames');
11
11
  require('framer-motion');
12
12
  require('@jobber/hooks/useRefocusOnActivator');
13
13
  require('@jobber/hooks/useFocusTrap');
14
14
  require('../style-inject.es-9d2f5f4e.js');
15
- require('../Heading-4562900a.js');
16
- require('../Typography-9bff9c91.js');
17
- require('../Button-d89f2271.js');
15
+ require('../Heading-4cde9989.js');
16
+ require('../Typography-83915c54.js');
17
+ require('../Button-db6114a6.js');
18
18
  require('react-router-dom');
19
19
  require('../Icon-405a216c.js');
20
20
  require('@jobber/design');
21
- require('../ButtonDismiss-250840a4.js');
21
+ require('../ButtonDismiss-1ccb84ec.js');
22
22
  require('../Content-2ca1ffe1.js');
23
- require('../Markdown-b37cf9ec.js');
23
+ require('../Markdown-d53b01bf.js');
24
24
  require('react-markdown');
25
- require('../Text-59bde58c.js');
26
- require('../Emphasis-cc3456ac.js');
25
+ require('../Text-54334431.js');
26
+ require('../Emphasis-e10dde65.js');
27
27
 
28
28
 
29
29
 
@@ -2,9 +2,9 @@
2
2
 
3
3
  var React = require('react');
4
4
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
5
- var Modal = require('./Modal-dcdc0032.js');
5
+ var Modal = require('./Modal-c17cc105.js');
6
6
  var Content = require('./Content-2ca1ffe1.js');
7
- var Markdown = require('./Markdown-b37cf9ec.js');
7
+ var Markdown = require('./Markdown-d53b01bf.js');
8
8
 
9
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
@@ -12,7 +12,7 @@ interface ContentProps {
12
12
  * Change the wrapping element to be one of the available
13
13
  * semantic tags.
14
14
  *
15
- * @default 'div'
15
+ * @default "div"
16
16
  */
17
17
  readonly type?: "section" | "aside" | "header" | "footer" | "article" | "main" | "div";
18
18
  }
@@ -3,18 +3,18 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var Card = require('../Card-69304e99.js');
6
+ var Card = require('../Card-116af709.js');
7
7
  var Content = require('../Content-2ca1ffe1.js');
8
- var Emphasis = require('../Emphasis-cc3456ac.js');
8
+ var Emphasis = require('../Emphasis-e10dde65.js');
9
9
  require('classnames');
10
10
  require('../style-inject.es-9d2f5f4e.js');
11
- require('../Heading-4562900a.js');
12
- require('../Typography-9bff9c91.js');
13
- require('../Button-d89f2271.js');
11
+ require('../Heading-4cde9989.js');
12
+ require('../Typography-83915c54.js');
13
+ require('../Button-db6114a6.js');
14
14
  require('react-router-dom');
15
15
  require('../Icon-405a216c.js');
16
16
  require('@jobber/design');
17
- require('../Menu-cec53b50.js');
17
+ require('../Menu-2e64307a.js');
18
18
  require('uuid');
19
19
  require('framer-motion');
20
20
  require('@jobber/hooks/useOnKeyDown');
@@ -117,7 +117,15 @@ export interface DataListSearchProps {
117
117
  * prepended by "Search" or just falls back to "Search".
118
118
  */
119
119
  readonly placeholder?: string;
120
- readonly onSearch: (search: string) => void;
120
+ /**
121
+ * The initial value of the search input.
122
+ *
123
+ * Updating this prop after the component has mounted will rerender the
124
+ * component with the new value. Only update the value of this when you
125
+ * absolutely have to.
126
+ */
127
+ readonly initialValue?: string;
128
+ readonly onSearch: (value: string) => void;
121
129
  }
122
130
  export interface DataListFiltersProps {
123
131
  readonly children: ReactElement | ReactElement[];
@@ -3,6 +3,6 @@ import { DataListSearchProps } from "../../DataList.types";
3
3
  export declare const DATA_LIST_SEARCH_TEST_ID = "ATL-DataList-Search-input-wrapper";
4
4
  export declare function DataListSearch(_: DataListSearchProps): null;
5
5
  /**
6
- * Renders the DataList.Search component
6
+ * Renders the DataList.Search component.
7
7
  */
8
8
  export declare function InternalDataListSearch(): JSX.Element | null;
@@ -5,45 +5,46 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var tslib_es6 = require('../tslib.es6-5b8768b7.js');
6
6
  var React = require('react');
7
7
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
- var Text = require('../Text-59bde58c.js');
8
+ var Text = require('../Text-54334431.js');
9
9
  var Glimmer = require('../Glimmer-cfa92a88.js');
10
10
  var noop = require('lodash/noop');
11
11
  var design = require('@jobber/design');
12
12
  var framerMotion = require('framer-motion');
13
13
  var classnames = require('classnames');
14
- var Tooltip = require('../Tooltip-59dbab5b.js');
15
- var Button = require('../Button-d89f2271.js');
14
+ var Tooltip = require('../Tooltip-ae33a335.js');
15
+ var Button = require('../Button-db6114a6.js');
16
16
  var useInView = require('@jobber/hooks/useInView');
17
17
  var isEmpty = require('lodash/isEmpty');
18
- var InlineLabel = require('../InlineLabel-3d461632.js');
18
+ var InlineLabel = require('../InlineLabel-a24706c4.js');
19
19
  var FormatDate = require('../FormatDate-70ea5b43.js');
20
- var Heading = require('../Heading-4562900a.js');
20
+ var Heading = require('../Heading-4cde9989.js');
21
21
  var useFocusTrap = require('@jobber/hooks/useFocusTrap');
22
22
  var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
23
23
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
24
24
  var ReactDOM = require('react-dom');
25
- var Checkbox = require('../Checkbox-eac63b7f.js');
25
+ var Checkbox = require('../Checkbox-bc4bc968.js');
26
26
  var reactRouterDom = require('react-router-dom');
27
27
  var AnimatedSwitcher = require('../AnimatedSwitcher-d1e1ddcf.js');
28
- var Popover = require('../Popover-d401fb54.js');
28
+ var Popover = require('../Popover-7c966790.js');
29
29
  var Content = require('../Content-2ca1ffe1.js');
30
- var Chip = require('../Chip-4d8e6370.js');
30
+ var Chips = require('../Chips-5ff2b9d2.js');
31
31
  require('@jobber/hooks/useAssert');
32
32
  require('../Avatar-1aa30ee1.js');
33
33
  require('color');
34
- var Typography = require('../Typography-9bff9c91.js');
34
+ var Typography = require('../Typography-83915c54.js');
35
35
  require('react-popper');
36
+ var Chip = require('../Chip-00e281e9.js');
37
+ require('lodash/sortBy');
38
+ require('@jobber/hooks/useLiveAnnounce');
36
39
  var debounce = require('lodash/debounce');
37
- var InputText = require('../InputText-5ac5cfe0.js');
38
40
  var Spinner = require('../Spinner-9d8fc7ff.js');
41
+ var InputText = require('../InputText-ab237501.js');
39
42
  var Icon = require('../Icon-405a216c.js');
40
43
  require('uuid');
41
44
  require('react-hook-form');
42
- require('../ButtonDismiss-250840a4.js');
43
- require('lodash/sortBy');
44
- require('@jobber/hooks/useLiveAnnounce');
45
- require('../FormField-bef41ec9.js');
46
- require('../InputValidation-4e809bdd.js');
45
+ require('../ButtonDismiss-1ccb84ec.js');
46
+ require('../FormField-fa9254dc.js');
47
+ require('../InputValidation-377d6c62.js');
47
48
 
48
49
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
49
50
 
@@ -101,6 +102,19 @@ function useDataListContext() {
101
102
  }
102
103
 
103
104
  function useMediaQuery(CSSMediaQuery) {
105
+ /**
106
+ * matchMedia have had full support for browsers since 2012 but jest, being a
107
+ * lite version of a DOM, doesn't support it.
108
+ *
109
+ * Instead of the consumers mocking matchMedia on every usage of DataList,
110
+ * we can just return true to mimic the largest screen we support.
111
+ *
112
+ * In the event that the consumer wants to test the DataList on different
113
+ * screen sizes, they can use the `mockViewportWidth` function from
114
+ * `@jobber/components/useBreakpoints`.
115
+ */
116
+ if (window.matchMedia === undefined)
117
+ return true;
104
118
  const [matches, setMatches] = React.useState(window.matchMedia(CSSMediaQuery).matches);
105
119
  React.useEffect(() => {
106
120
  const media = window.matchMedia(CSSMediaQuery);
@@ -484,6 +498,8 @@ function InternalDataListItemActions() {
484
498
  if (!itemActionComponent)
485
499
  return null;
486
500
  const { children } = itemActionComponent.props;
501
+ if (!children)
502
+ return null;
487
503
  return (React__default["default"].createElement(framerMotion.motion.div, { variants: variants, initial: "hidden", animate: "visible", exit: "hidden", transition: {
488
504
  duration: TRANSITION_DURATION_IN_SECONDS,
489
505
  delay: TRANSITION_DELAY_IN_SECONDS,
@@ -707,11 +723,11 @@ function DataListSort() {
707
723
  React__default["default"].createElement(Popover.Popover, { attachTo: divRef, open: showPopover, onRequestClose: () => setShowPopover(false) },
708
724
  React__default["default"].createElement(Content.Content, null,
709
725
  React__default["default"].createElement(Heading.Heading, { level: 5 }, "Sort by"),
710
- React__default["default"].createElement(Chip.Chips, { selected: (state === null || state === void 0 ? void 0 : state.key) || "none", onChange: handleKeyChange }, sortByOptions.map(({ label, value }) => (React__default["default"].createElement(Chip.Chip, { key: label, label: label, value: value })))),
726
+ React__default["default"].createElement(Chips.Chips, { selected: (state === null || state === void 0 ? void 0 : state.key) || "none", onChange: handleKeyChange }, sortByOptions.map(({ label, value }) => (React__default["default"].createElement(Chip.Chip, { key: label, label: label, value: value, role: "radio" })))),
711
727
  React__default["default"].createElement(Heading.Heading, { level: 5 }, "Ordered by"),
712
- React__default["default"].createElement(Chip.Chips, { selected: state === null || state === void 0 ? void 0 : state.order, onChange: handleSortingChange },
713
- React__default["default"].createElement(Chip.Chip, { label: "Ascending", value: "asc", disabled: canChangeOrder }),
714
- React__default["default"].createElement(Chip.Chip, { label: "Descending", value: "desc", disabled: canChangeOrder }))))));
728
+ React__default["default"].createElement(Chips.Chips, { selected: (state === null || state === void 0 ? void 0 : state.order) || "", onChange: handleSortingChange },
729
+ React__default["default"].createElement(Chip.Chip, { label: "Ascending", value: "asc", disabled: canChangeOrder, role: "radio" }),
730
+ React__default["default"].createElement(Chip.Chip, { label: "Descending", value: "desc", disabled: canChangeOrder, role: "radio" }))))));
715
731
  function getSortByOptions() {
716
732
  const options = sortable.reduce((acc, sort) => {
717
733
  const label = headers[sort];
@@ -731,14 +747,14 @@ function DataListSort() {
731
747
  return `Sort by: ${label}, ${state.order}`;
732
748
  }
733
749
  function handleKeyChange(value) {
734
- if (value && value !== "none") {
750
+ if (value && value !== "none" && value !== (state === null || state === void 0 ? void 0 : state.order)) {
735
751
  onSort({ key: value, order: (state === null || state === void 0 ? void 0 : state.order) || "asc" });
736
752
  return;
737
753
  }
738
754
  onSort(undefined);
739
755
  }
740
756
  function handleSortingChange(value) {
741
- if ((state === null || state === void 0 ? void 0 : state.key) && value) {
757
+ if ((state === null || state === void 0 ? void 0 : state.key) && value && value !== (state === null || state === void 0 ? void 0 : state.order)) {
742
758
  onSort({ key: state.key, order: value });
743
759
  return;
744
760
  }
@@ -811,7 +827,7 @@ function DataListSearch(_) {
811
827
  return null;
812
828
  }
813
829
  /**
814
- * Renders the DataList.Search component
830
+ * Renders the DataList.Search component.
815
831
  */
816
832
  function InternalDataListSearch() {
817
833
  const inputRef = React.useRef(null);
@@ -820,14 +836,18 @@ function InternalDataListSearch() {
820
836
  const debouncedSearch = React.useCallback(debounce__default["default"]((value) => { var _a; return (_a = searchComponent === null || searchComponent === void 0 ? void 0 : searchComponent.props) === null || _a === void 0 ? void 0 : _a.onSearch(value); }, SEARCH_DEBOUNCE_DELAY), [searchComponent === null || searchComponent === void 0 ? void 0 : searchComponent.props.onSearch]);
821
837
  if (!searchComponent)
822
838
  return null;
823
- const { placeholder } = searchComponent.props;
839
+ const { placeholder, initialValue } = searchComponent.props;
824
840
  return (React__default["default"].createElement("div", { className: classnames__default["default"]({
825
841
  [styles$4.withNoFilters]: !filterComponent && !sorting,
826
842
  }) },
827
843
  React__default["default"].createElement("div", { "data-testid": DATA_LIST_SEARCH_TEST_ID, className: classnames__default["default"](styles$4.searchInput, {
828
844
  [styles$4.searchInputVisible]: visible,
829
845
  }) },
830
- React__default["default"].createElement(InputText.InputText, { ref: inputRef, placeholder: getPlaceholder(), onChange: debouncedSearch, prefix: { icon: "search" }, size: "small" })),
846
+ React__default["default"].createElement(InputText.InputText
847
+ // If the initial value changes, reset the input.
848
+ , {
849
+ // If the initial value changes, reset the input.
850
+ key: initialValue, defaultValue: initialValue, ref: inputRef, placeholder: getPlaceholder(), onChange: debouncedSearch, prefix: { icon: "search" }, size: "small" })),
831
851
  React__default["default"].createElement("div", { className: styles$4.searchButton },
832
852
  React__default["default"].createElement(AnimatedSwitcher.AnimatedSwitcher, { switched: visible, initialChild: React__default["default"].createElement(Button.Button, { variation: "subtle", icon: "search", ariaLabel: "Search", onClick: toggleSearch }), switchTo: React__default["default"].createElement(Button.Button, { variation: "subtle", icon: "remove", ariaLabel: "Close search bar", onClick: toggleSearch }) }))));
833
853
  function getPlaceholder() {
@@ -1054,6 +1074,9 @@ DataList.EmptyState = DataListEmptyState;
1054
1074
  DataList.Filters = DataListFilters;
1055
1075
  /**
1056
1076
  * Enables the search functionality of the DataList.
1077
+ *
1078
+ * Since the debounce is implemented within the component, it can only be an
1079
+ * uncontrolled component. Thus the lack of a `value` prop.
1057
1080
  */
1058
1081
  DataList.Search = DataListSearch;
1059
1082
  /**
@@ -9,20 +9,20 @@ var jobberHooks = require('@jobber/hooks/useResizeObserver');
9
9
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
10
10
  var Glimmer = require('../Glimmer-cfa92a88.js');
11
11
  var tslib_es6 = require('../tslib.es6-5b8768b7.js');
12
- var Option = require('../Option-9f4a65da.js');
13
- var Button = require('../Button-d89f2271.js');
14
- var Text = require('../Text-59bde58c.js');
12
+ var Option = require('../Option-07a24acd.js');
13
+ var Button = require('../Button-db6114a6.js');
14
+ var Text = require('../Text-54334431.js');
15
15
  require('../Content-2ca1ffe1.js');
16
- require('../FormField-bef41ec9.js');
16
+ require('../FormField-fa9254dc.js');
17
17
  require('uuid');
18
18
  require('react-hook-form');
19
19
  require('../Icon-405a216c.js');
20
20
  require('@jobber/design');
21
- require('../InputValidation-4e809bdd.js');
21
+ require('../InputValidation-377d6c62.js');
22
22
  require('framer-motion');
23
23
  require('../Spinner-9d8fc7ff.js');
24
24
  require('react-router-dom');
25
- require('../Typography-9bff9c91.js');
25
+ require('../Typography-83915c54.js');
26
26
 
27
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
28
28
 
@@ -2,14 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var DatePicker = require('../DatePicker-39d2dc8b.js');
5
+ var DatePicker = require('../DatePicker-49213434.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('react-datepicker');
9
9
  require('@jobber/hooks/useRefocusOnActivator');
10
10
  require('../style-inject.es-9d2f5f4e.js');
11
- require('../Typography-9bff9c91.js');
12
- require('../Button-d89f2271.js');
11
+ require('../Typography-83915c54.js');
12
+ require('../Button-db6114a6.js');
13
13
  require('react-router-dom');
14
14
  require('../Icon-405a216c.js');
15
15
  require('@jobber/design');
@@ -5,8 +5,8 @@ var classnames = require('classnames');
5
5
  var ReactDatePicker = require('react-datepicker');
6
6
  var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
7
7
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
8
- var Typography = require('./Typography-9bff9c91.js');
9
- var Button = require('./Button-d89f2271.js');
8
+ var Typography = require('./Typography-83915c54.js');
9
+ var Button = require('./Button-db6114a6.js');
10
10
  var omit = require('lodash/omit');
11
11
 
12
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
7
- var Typography = require('../Typography-9bff9c91.js');
7
+ var Typography = require('../Typography-83915c54.js');
8
8
  require('classnames');
9
9
 
10
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -6,7 +6,7 @@ var React = require('react');
6
6
  var jobberHooks = require('@jobber/hooks/useResizeObserver');
7
7
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
8
  var Icon = require('../Icon-405a216c.js');
9
- var Typography = require('../Typography-9bff9c91.js');
9
+ var Typography = require('../Typography-83915c54.js');
10
10
  require('@jobber/design');
11
11
  require('classnames');
12
12
 
@@ -5,10 +5,10 @@ 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-9d2f5f4e.js');
8
- var Heading = require('../Heading-4562900a.js');
9
- var ButtonDismiss = require('../ButtonDismiss-250840a4.js');
10
- require('../Typography-9bff9c91.js');
11
- require('../Button-d89f2271.js');
8
+ var Heading = require('../Heading-4cde9989.js');
9
+ var ButtonDismiss = require('../ButtonDismiss-1ccb84ec.js');
10
+ require('../Typography-83915c54.js');
11
+ require('../Button-db6114a6.js');
12
12
  require('react-router-dom');
13
13
  require('../Icon-405a216c.js');
14
14
  require('@jobber/design');
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Emphasis = require('../Emphasis-cc3456ac.js');
5
+ var Emphasis = require('../Emphasis-e10dde65.js');
6
6
  require('react');
7
- require('../Typography-9bff9c91.js');
7
+ require('../Typography-83915c54.js');
8
8
  require('classnames');
9
9
  require('../style-inject.es-9d2f5f4e.js');
10
10
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var Typography = require('./Typography-9bff9c91.js');
4
+ var Typography = require('./Typography-83915c54.js');
5
5
 
6
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
7
 
@@ -6,14 +6,14 @@ var React = require('react');
6
6
  var framerMotion = require('framer-motion');
7
7
  var classnames = require('classnames');
8
8
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
9
- var Heading = require('../Heading-4562900a.js');
10
- var Text = require('../Text-59bde58c.js');
9
+ var Heading = require('../Heading-4cde9989.js');
10
+ var Text = require('../Text-54334431.js');
11
11
  var Content = require('../Content-2ca1ffe1.js');
12
- var Switch = require('../Switch-165f01e3.js');
13
- var Button = require('../Button-d89f2271.js');
14
- var Emphasis = require('../Emphasis-cc3456ac.js');
15
- var Markdown = require('../Markdown-b37cf9ec.js');
16
- require('../Typography-9bff9c91.js');
12
+ var Switch = require('../Switch-cc9b645c.js');
13
+ var Button = require('../Button-db6114a6.js');
14
+ var Emphasis = require('../Emphasis-e10dde65.js');
15
+ var Markdown = require('../Markdown-d53b01bf.js');
16
+ require('../Typography-83915c54.js');
17
17
  require('react-router-dom');
18
18
  require('../Icon-405a216c.js');
19
19
  require('@jobber/design');
@@ -0,0 +1,32 @@
1
+ import { PropsWithChildren } from "react";
2
+ import { ColumnKeys, Direction, Spacing } from "./Flex.types";
3
+ interface FlexProps extends PropsWithChildren {
4
+ /**
5
+ * Determine how the children gets laid out
6
+ *
7
+ * **Supported keys**
8
+ * - `"grow"` - Grows to the space available. If all children are set to
9
+ * grow, then they'll have equal width.
10
+ * - `"shrink"` - Shrinks to the smallest size possible. Normally the size of
11
+ * the child.
12
+ */
13
+ readonly template: ColumnKeys[];
14
+ /**
15
+ * Adjusts the alignment of the Flex children.
16
+ */
17
+ readonly align?: "start" | "end" | "center";
18
+ /**
19
+ * The spacing between the children.
20
+ *
21
+ * @default "base"
22
+ */
23
+ readonly gap?: Spacing;
24
+ /**
25
+ * The direction of the content.
26
+ *
27
+ * @default "row"
28
+ */
29
+ readonly direction?: Direction;
30
+ }
31
+ export declare function Flex({ align, children, direction, gap, template, }: FlexProps): JSX.Element;
32
+ export {};
@@ -0,0 +1,6 @@
1
+ export type ColumnKeys = "shrink" | "grow";
2
+ export type Direction = "row" | "column";
3
+ export declare const spacing: readonly ["none", "smallest", "smaller", "small", "base", "large"];
4
+ type ValuesOfSpacing<T extends typeof spacing> = T[number];
5
+ export type Spacing = ValuesOfSpacing<typeof spacing>;
6
+ export {};
@@ -0,0 +1 @@
1
+ export { Flex } from "./Flex";
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var classnames = require('classnames');
7
+ var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
13
+
14
+ var css_248z = "._8VpnrMKmsqQ- {\n display: grid;\n /* If this gets wrapped in a flex container, it should take the remaining space */\n -ms-flex: 1;\n flex: 1;\n}\n\n.ooF1YfV4Usc- {\n gap: calc(16px / 8);\n gap: var(--space-smallest);\n}\n\n.ppCZfXq-Kqc- {\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n.tElkBalXH3g- {\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n._4u3OwUKxxbg- {\n gap: calc(16px * 1);\n gap: var(--space-base);\n}\n\n.RL7CJla0AAI- {\n gap: calc(16px * 1.5);\n gap: var(--space-large);\n}\n\n.fV4cvFYkhgo- {\n gap: 0;\n}\n\n._04xVVjZgr-0- {\n -ms-flex-align: start;\n align-items: start;\n}\n\n.Nc3zrqHHYSg- {\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qA-v50wBX1U- {\n -ms-flex-align: end;\n align-items: end;\n}\n";
15
+ var styles = {"flexible":"_8VpnrMKmsqQ-","smallestGap":"ooF1YfV4Usc-","smallerGap":"ppCZfXq-Kqc-","smallGap":"tElkBalXH3g-","baseGap":"_4u3OwUKxxbg-","largeGap":"RL7CJla0AAI-","noneGap":"fV4cvFYkhgo-","startAlign":"_04xVVjZgr-0-","centerAlign":"Nc3zrqHHYSg-","endAlign":"qA-v50wBX1U-"};
16
+ styleInject_es.styleInject(css_248z);
17
+
18
+ function Flex({ align = "center", children, direction = "row", gap = "base", template, }) {
19
+ return (React__default["default"].createElement("div", { className: classnames__default["default"](styles.flexible, {
20
+ [styles[`${gap}Gap`]]: Boolean(gap),
21
+ [styles[`${align}Align`]]: Boolean(align),
22
+ }), style: generateGridStylesFromTemplate(direction, template) }, children));
23
+ }
24
+ function generateGridStylesFromTemplate(direction, layoutTemplate) {
25
+ const containerStyles = {};
26
+ const templateKeys = {
27
+ row: "gridTemplateColumns",
28
+ column: "gridTemplateRows",
29
+ };
30
+ const templateValues = {
31
+ grow: "1fr",
32
+ shrink: "max-content",
33
+ };
34
+ containerStyles[templateKeys[direction]] = layoutTemplate
35
+ .map(key => templateValues[key])
36
+ .join(" ");
37
+ return containerStyles;
38
+ }
39
+
40
+ exports.Flex = Flex;
@@ -2,20 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var FormField = require('../FormField-bef41ec9.js');
5
+ var FormField = require('../FormField-fa9254dc.js');
6
6
  require('../tslib.es6-5b8768b7.js');
7
7
  require('react');
8
8
  require('uuid');
9
9
  require('react-hook-form');
10
10
  require('../style-inject.es-9d2f5f4e.js');
11
11
  require('classnames');
12
- require('../Button-d89f2271.js');
12
+ require('../Button-db6114a6.js');
13
13
  require('react-router-dom');
14
14
  require('../Icon-405a216c.js');
15
15
  require('@jobber/design');
16
- require('../Typography-9bff9c91.js');
17
- require('../Text-59bde58c.js');
18
- require('../InputValidation-4e809bdd.js');
16
+ require('../Typography-83915c54.js');
17
+ require('../Text-54334431.js');
18
+ require('../InputValidation-377d6c62.js');
19
19
  require('framer-motion');
20
20
  require('../Spinner-9d8fc7ff.js');
21
21
 
@@ -6,10 +6,10 @@ var uuid = require('uuid');
6
6
  var reactHookForm = require('react-hook-form');
7
7
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
8
8
  var classnames = require('classnames');
9
- var Button = require('./Button-d89f2271.js');
9
+ var Button = require('./Button-db6114a6.js');
10
10
  var Icon = require('./Icon-405a216c.js');
11
- var Text = require('./Text-59bde58c.js');
12
- var InputValidation = require('./InputValidation-4e809bdd.js');
11
+ var Text = require('./Text-54334431.js');
12
+ var InputValidation = require('./InputValidation-377d6c62.js');
13
13
  var Spinner = require('./Spinner-9d8fc7ff.js');
14
14
 
15
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -2,30 +2,30 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var FormatFile = require('../FormatFile-a470c0f2.js');
5
+ var FormatFile = require('../FormatFile-6423c3b5.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('filesize');
9
9
  require('../style-inject.es-9d2f5f4e.js');
10
- require('../Button-d89f2271.js');
10
+ require('../Button-db6114a6.js');
11
11
  require('react-router-dom');
12
12
  require('../Icon-405a216c.js');
13
13
  require('@jobber/design');
14
- require('../Typography-9bff9c91.js');
15
- require('../ConfirmationModal-92f07027.js');
14
+ require('../Typography-83915c54.js');
15
+ require('../ConfirmationModal-285c3cbe.js');
16
16
  require('@jobber/hooks/useOnKeyDown');
17
- require('../Modal-dcdc0032.js');
17
+ require('../Modal-c17cc105.js');
18
18
  require('react-dom');
19
19
  require('framer-motion');
20
20
  require('@jobber/hooks/useRefocusOnActivator');
21
21
  require('@jobber/hooks/useFocusTrap');
22
- require('../Heading-4562900a.js');
23
- require('../ButtonDismiss-250840a4.js');
22
+ require('../Heading-4cde9989.js');
23
+ require('../ButtonDismiss-1ccb84ec.js');
24
24
  require('../Content-2ca1ffe1.js');
25
- require('../Markdown-b37cf9ec.js');
25
+ require('../Markdown-d53b01bf.js');
26
26
  require('react-markdown');
27
- require('../Text-59bde58c.js');
28
- require('../Emphasis-cc3456ac.js');
27
+ require('../Text-54334431.js');
28
+ require('../Emphasis-e10dde65.js');
29
29
  require('../Glimmer-cfa92a88.js');
30
30
  require('../tslib.es6-5b8768b7.js');
31
31
  require('../ProgressBar-5dfc1885.js');
@@ -4,12 +4,12 @@ var React = require('react');
4
4
  var classnames = require('classnames');
5
5
  var getHumanReadableFileSize = require('filesize');
6
6
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
7
- var Button = require('./Button-d89f2271.js');
8
- var ConfirmationModal = require('./ConfirmationModal-92f07027.js');
7
+ var Button = require('./Button-db6114a6.js');
8
+ var ConfirmationModal = require('./ConfirmationModal-285c3cbe.js');
9
9
  var Glimmer = require('./Glimmer-cfa92a88.js');
10
10
  var Icon = require('./Icon-405a216c.js');
11
- var Typography = require('./Typography-9bff9c91.js');
12
- var Text = require('./Text-59bde58c.js');
11
+ var Typography = require('./Typography-83915c54.js');
12
+ var Text = require('./Text-54334431.js');
13
13
  var ProgressBar = require('./ProgressBar-5dfc1885.js');
14
14
 
15
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }