@jobber/components 4.67.2-JOB-84261.6 → 4.67.2-pre.25

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 (154) hide show
  1. package/dist/AnimatedSwitcher/index.js +2 -2
  2. package/dist/{AnimatedSwitcher-d1e1ddcf.js → AnimatedSwitcher-879d0d6f.js} +1 -1
  3. package/dist/Autocomplete/index.js +13 -15
  4. package/dist/Avatar/index.js +2 -3
  5. package/dist/{Avatar-76a799fa.js → Avatar-765d6e45.js} +1 -4
  6. package/dist/Banner/index.js +4 -9
  7. package/dist/Button/index.js +3 -4
  8. package/dist/Button-8bde6560.js +54 -0
  9. package/dist/ButtonDismiss/index.js +4 -5
  10. package/dist/{ButtonDismiss-2b98d075.js → ButtonDismiss-af17d76d.js} +1 -1
  11. package/dist/Card/index.js +7 -8
  12. package/dist/Card-9dfc98d3.js +88 -0
  13. package/dist/Checkbox/index.js +5 -7
  14. package/dist/{Checkbox-ad7ec2e7.js → Checkbox-2d7c43d9.js} +5 -8
  15. package/dist/Chip/index.js +8 -7
  16. package/dist/Chip-dca6c22b.js +86 -0
  17. package/dist/Chips/index.js +12 -16
  18. package/dist/ClientOnly-4f3e136d.js +23 -0
  19. package/dist/Combobox/index.js +11 -10
  20. package/dist/{Combobox-eb1e5817.js → Combobox-35a3ea22.js} +43 -24
  21. package/dist/ConfirmationModal/index.js +14 -13
  22. package/dist/{ConfirmationModal-0f85d96c.js → ConfirmationModal-f6c0afc7.js} +3 -3
  23. package/dist/Content/index.js +1 -2
  24. package/dist/{Content-2ca1ffe1.js → Content-80486307.js} +0 -5
  25. package/dist/DataDump/index.js +9 -10
  26. package/dist/DataList/components/DataListHeader/DataListHeaderCheckbox.d.ts +1 -2
  27. package/dist/DataList/components/DataListHeaderTile/DataListSortingArrows.d.ts +1 -1
  28. package/dist/DataList/hooks/useMediaQuery.d.ts +3 -1
  29. package/dist/DataList/index.js +31 -56
  30. package/dist/DataTable/DataTable.d.ts +1 -1
  31. package/dist/DataTable/index.js +18 -22
  32. package/dist/DatePicker/index.js +4 -5
  33. package/dist/DatePicker-9399cc69.js +131 -0
  34. package/dist/DescriptionList/index.js +1 -4
  35. package/dist/Disclosure/index.js +2 -5
  36. package/dist/Divider/index.js +0 -3
  37. package/dist/Drawer/index.js +5 -10
  38. package/dist/Emphasis/index.js +2 -3
  39. package/dist/{Emphasis-b2d1b3aa.js → Emphasis-7a2893bb.js} +1 -1
  40. package/dist/FeatureSwitch/index.js +11 -13
  41. package/dist/Flex/index.js +6 -4
  42. package/dist/Form/index.js +1 -1
  43. package/dist/FormField/FormFieldTypes.d.ts +8 -0
  44. package/dist/FormField/FormFieldWrapper.d.ts +3 -1
  45. package/dist/FormField/components/ClearAction.d.ts +9 -0
  46. package/dist/FormField/index.js +9 -10
  47. package/dist/FormField-18eda132.js +252 -0
  48. package/dist/FormatDate/index.js +1 -1
  49. package/dist/FormatEmail/index.js +0 -3
  50. package/dist/FormatFile/index.js +17 -17
  51. package/dist/FormatFile-317b158a.js +116 -0
  52. package/dist/FormatTime/FormatTime.d.ts +1 -2
  53. package/dist/FormatTime/index.js +11 -6
  54. package/dist/Gallery/index.js +18 -20
  55. package/dist/Glimmer/index.js +3 -4
  56. package/dist/Glimmer-f5c31401.js +68 -0
  57. package/dist/Grid/index.js +0 -7
  58. package/dist/Heading/index.js +2 -3
  59. package/dist/{Heading-0f4ecb0c.js → Heading-f066883a.js} +1 -1
  60. package/dist/Icon/index.js +1 -1
  61. package/dist/InlineLabel/index.js +2 -3
  62. package/dist/InlineLabel-4c2fec47.js +25 -0
  63. package/dist/InputAvatar/index.js +8 -12
  64. package/dist/InputDate/InputDate.d.ts +1 -1
  65. package/dist/InputDate/index.js +10 -11
  66. package/dist/InputEmail/index.js +9 -10
  67. package/dist/InputFile/InputFile.d.ts +5 -1
  68. package/dist/InputFile/index.js +6 -8
  69. package/dist/{InputFile-540c1657.js → InputFile-5c44f0b4.js} +8 -11
  70. package/dist/InputGroup/index.js +1 -2
  71. package/dist/InputGroup-88bec8c9.js +30 -0
  72. package/dist/InputNumber/index.js +10 -11
  73. package/dist/{InputNumber-d9ebabaa.js → InputNumber-ed655bae.js} +1 -1
  74. package/dist/InputPassword/index.js +9 -10
  75. package/dist/InputPhoneNumber/index.js +9 -12
  76. package/dist/InputText/InputText.d.ts +2 -0
  77. package/dist/InputText/index.js +11 -11
  78. package/dist/InputText/useSafeLayoutEffect.d.ts +2 -0
  79. package/dist/{InputText-f7c45ee5.js → InputText-c68964ff.js} +3 -2
  80. package/dist/InputTime/InputTime.d.ts +3 -1
  81. package/dist/InputTime/InputTime.disabledTest.d.ts +1 -0
  82. package/dist/InputTime/InputTimeProps.d.ts +1 -1
  83. package/dist/InputTime/InternalInputTime.d.ts +3 -0
  84. package/dist/InputTime/SupportsTimePolyfill.d.ts +2 -0
  85. package/dist/InputTime/TimeInputPolyfill.client.d.ts +2 -0
  86. package/dist/InputTime/index.js +58 -724
  87. package/dist/InputValidation/index.js +4 -5
  88. package/dist/{InputValidation-179f0926.js → InputValidation-fdc891af.js} +2 -5
  89. package/dist/LightBox/ClientOnly.d.ts +6 -0
  90. package/dist/LightBox/LightBox.d.ts +2 -2
  91. package/dist/LightBox/index.js +6 -6
  92. package/dist/{LightBox-3f4dbc33.js → LightBox-d5aea313.js} +5 -6
  93. package/dist/List/index.js +9 -15
  94. package/dist/Markdown/Markdown.d.ts +1 -1
  95. package/dist/Markdown/index.js +8 -8
  96. package/dist/Markdown-10fc9d3e.js +90 -0
  97. package/dist/Menu/Menu.d.ts +4 -4
  98. package/dist/Menu/index.js +5 -6
  99. package/dist/{Menu-d7ea093c.js → Menu-7b7aa325.js} +7 -10
  100. package/dist/Modal/Modal.d.ts +2 -2
  101. package/dist/Modal/index.js +7 -7
  102. package/dist/{Modal-70daa0e2.js → Modal-357fd1df.js} +6 -9
  103. package/dist/MultiSelect/index.js +5 -11
  104. package/dist/{Option-469029b5.js → Option-c84f28a6.js} +1 -1
  105. package/dist/Page/index.js +12 -14
  106. package/dist/Popover/Popover.d.ts +2 -2
  107. package/dist/Popover/index.js +8 -8
  108. package/dist/ProgressBar/index.js +1 -2
  109. package/dist/ProgressBar-5c577dc0.js +38 -0
  110. package/dist/RadioGroup/index.js +3 -5
  111. package/dist/RadioGroup-9dded55d.js +44 -0
  112. package/dist/RecurringSelect/components/DayOfMonthSelect.d.ts +2 -2
  113. package/dist/RecurringSelect/components/WeeklySelect.d.ts +2 -2
  114. package/dist/RecurringSelect/index.js +16 -29
  115. package/dist/Select/index.js +10 -11
  116. package/dist/Spinner/index.js +1 -2
  117. package/dist/Spinner-cac356ee.js +21 -0
  118. package/dist/StatusLabel/index.js +2 -5
  119. package/dist/SupportsTimePolyfill-466a30f9.js +21 -0
  120. package/dist/Switch/index.js +2 -3
  121. package/dist/Switch-588c5e70.js +53 -0
  122. package/dist/Table/index.js +0 -5
  123. package/dist/Tabs/index.js +1 -4
  124. package/dist/Text/index.js +2 -3
  125. package/dist/{Text-4a2bc89f.js → Text-9f261dde.js} +1 -1
  126. package/dist/TimeInputPolyfill.client-1dfc8ab1.js +687 -0
  127. package/dist/Toast/index.js +3 -6
  128. package/dist/Tooltip/index.js +3 -2
  129. package/dist/{Tooltip-6b12f1c2.js → Tooltip-99440954.js} +14 -12
  130. package/dist/Typography/index.js +1 -2
  131. package/dist/Typography-75f58b60.js +43 -0
  132. package/dist/styles.css +8107 -0
  133. package/dist/useSafeLayoutEffect-b63708b1.js +16 -0
  134. package/package.json +4 -4
  135. package/rollup.config.js +3 -1
  136. package/dist/Button-163a0641.js +0 -57
  137. package/dist/Card-3178033c.js +0 -93
  138. package/dist/Chip-168acf3e.js +0 -89
  139. package/dist/DatePicker-c18f1739.js +0 -134
  140. package/dist/FormField-dfc061ca.js +0 -227
  141. package/dist/FormatFile-3b650d02.js +0 -121
  142. package/dist/Glimmer-cfa92a88.js +0 -77
  143. package/dist/InlineLabel-9a517c19.js +0 -28
  144. package/dist/InputGroup-8d4fd4eb.js +0 -33
  145. package/dist/Markdown-96070121.js +0 -62
  146. package/dist/ProgressBar-b68edc8f.js +0 -43
  147. package/dist/RadioGroup-ebaa4f87.js +0 -47
  148. package/dist/Spinner-9d8fc7ff.js +0 -24
  149. package/dist/Switch-b85272bf.js +0 -56
  150. package/dist/Typography-973b122e.js +0 -62
  151. package/dist/style-inject.es-9d2f5f4e.js +0 -30
  152. /package/dist/{FormatDate-70ea5b43.js → FormatDate-6fc94218.js} +0 -0
  153. /package/dist/{Icon-405a216c.js → Icon-361343e0.js} +0 -0
  154. /package/dist/{tslib.es6-5b8768b7.js → tslib.es6-a575af05.js} +0 -0
@@ -2,45 +2,46 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib_es6 = require('../tslib.es6-5b8768b7.js');
5
+ var tslib_es6 = require('../tslib.es6-a575af05.js');
6
6
  var React = require('react');
7
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
- var Text = require('../Text-4a2bc89f.js');
9
- var Glimmer = require('../Glimmer-cfa92a88.js');
7
+ var Text = require('../Text-9f261dde.js');
8
+ var Glimmer = require('../Glimmer-f5c31401.js');
10
9
  var noop = require('lodash/noop');
11
10
  var design = require('@jobber/design');
12
11
  var framerMotion = require('framer-motion');
13
12
  var classnames = require('classnames');
14
- var Tooltip = require('../Tooltip-6b12f1c2.js');
15
- var Button = require('../Button-163a0641.js');
13
+ var Tooltip = require('../Tooltip-99440954.js');
14
+ var Button = require('../Button-8bde6560.js');
16
15
  var useInView = require('@jobber/hooks/useInView');
17
16
  var isEmpty = require('lodash/isEmpty');
18
- var InlineLabel = require('../InlineLabel-9a517c19.js');
19
- var FormatDate = require('../FormatDate-70ea5b43.js');
20
- var Heading = require('../Heading-0f4ecb0c.js');
17
+ var InlineLabel = require('../InlineLabel-4c2fec47.js');
18
+ var FormatDate = require('../FormatDate-6fc94218.js');
19
+ var Heading = require('../Heading-f066883a.js');
21
20
  var useFocusTrap = require('@jobber/hooks/useFocusTrap');
22
21
  var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
23
22
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
24
23
  var ReactDOM = require('react-dom');
25
- var Checkbox = require('../Checkbox-ad7ec2e7.js');
24
+ var Checkbox = require('../Checkbox-2d7c43d9.js');
26
25
  var reactRouterDom = require('react-router-dom');
27
- var AnimatedSwitcher = require('../AnimatedSwitcher-d1e1ddcf.js');
28
- var Combobox = require('../Combobox-eb1e5817.js');
29
- var Chip = require('../Chip-168acf3e.js');
30
- var Icon = require('../Icon-405a216c.js');
26
+ var AnimatedSwitcher = require('../AnimatedSwitcher-879d0d6f.js');
27
+ var Combobox = require('../Combobox-35a3ea22.js');
28
+ var Chip = require('../Chip-dca6c22b.js');
29
+ var Icon = require('../Icon-361343e0.js');
31
30
  var debounce = require('lodash/debounce');
32
- var InputText = require('../InputText-f7c45ee5.js');
33
- var Spinner = require('../Spinner-9d8fc7ff.js');
34
- var Typography = require('../Typography-973b122e.js');
35
- require('../Content-2ca1ffe1.js');
31
+ var InputText = require('../InputText-c68964ff.js');
32
+ var Spinner = require('../Spinner-cac356ee.js');
33
+ var Typography = require('../Typography-75f58b60.js');
34
+ require('../Content-80486307.js');
36
35
  require('react-popper');
37
- require('uuid');
36
+ require('../ClientOnly-4f3e136d.js');
37
+ require('../useSafeLayoutEffect-b63708b1.js');
38
38
  require('react-hook-form');
39
39
  require('@jobber/hooks/useAssert');
40
- require('../Avatar-76a799fa.js');
40
+ require('../Avatar-765d6e45.js');
41
41
  require('color');
42
- require('../FormField-dfc061ca.js');
43
- require('../InputValidation-179f0926.js');
42
+ require('../FormField-18eda132.js');
43
+ require('@jobber/hooks/useShowClear');
44
+ require('../InputValidation-fdc891af.js');
44
45
 
45
46
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
46
47
 
@@ -50,13 +51,9 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
50
51
  var isEmpty__default = /*#__PURE__*/_interopDefaultLegacy(isEmpty);
51
52
  var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
52
53
 
53
- var css_248z$f = ".TkdrExYnvcY-,\n.TkdrExYnvcY- * {\n box-sizing: border-box;\n}\n\n.TkdrExYnvcY- {\n --data-list--minimum-item-height: calc(var(--base-unit) * 3.5);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n z-index: 0;\n z-index: var(--elevation-default);\n -ms-flex: 1;\n flex: 1;\n}\n\n/*\n * Header\n */\n\n.IcAlZHoB4LI- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n z-index: 1;\n z-index: var(--elevation-base);\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.TFO76ysivmg- {\n display: grid;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n gap: calc(16px / 2);\n grid-gap: calc(16px / 2);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n grid-template-columns: auto -webkit-max-content;\n grid-template-columns: auto max-content;\n}\n\n.jGHZZYZm1ZY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: calc(16px * 3);\n min-height: var(--space-largest);\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 8) solid rgb(217, 223, 225);\n border-bottom: var(--border-thick) solid var(--color-border);\n}\n\n.GiD7MjZJbcw- {\n display: -ms-flexbox;\n display: flex;\n}\n\n@media (max-width: 489px) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n@media (--small-screens-and-below) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n.jMSVGIAr5tk- > p {\n font-weight: 500;\n white-space: nowrap;\n}\n\n.jMSVGIAr5tk- {\n display: -ms-flexbox;\n display: flex;\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n -ms-flex-align: center;\n align-items: center;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n/*\n * List Item\n */\n\n.ise8kHCfhCY- {\n position: relative;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.ise8kHCfhCY-,\n.Tq6e0BGwcSM- {\n display: grid;\n grid-template-columns: minmax(0px, auto);\n min-height: var(--data-list--minimum-item-height);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.ise8kHCfhCY-.Pc0JGX6jCD4-,\n.ise8kHCfhCY-:hover,\n.ise8kHCfhCY-:focus-within {\n --data-list-item-active-color: var(--color-surface--hover);\n background-color: rgb(244, 246, 250);\n background-color: var(--data-list-item-active-color);\n}\n\n.Tq6e0BGwcSM- {\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n text-align: left;\n -webkit-text-decoration: none;\n text-decoration: none;\n background-color: transparent;\n cursor: pointer;\n}\n\n/**\n * Reset CSS properties on focus to ensure we only have the focus state on the\n * parent .listItem\n */\n\n.Tq6e0BGwcSM-:focus {\n outline: none;\n background-color: transparent;\n}\n\n/**\n * Enable a better hover and focus experience when :has() is supported.\n * This is a workaround for Firefox where the :has() selector is not supported.\n */\n\n@supports selector(*:has(*)) {\n .ise8kHCfhCY-:hover,\n .ise8kHCfhCY-:focus-within {\n background-color: transparent;\n }\n\n .ise8kHCfhCY-:has(.Tq6e0BGwcSM-:hover, .Tq6e0BGwcSM-:focus) {\n background-color: var(--data-list-item-active-color);\n }\n}\n\n/*\n * List Item Selection\n */\n\n.d-79rkMqufg- {\n display: grid;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (min-width: 768px) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n.d-79rkMqufg-,\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n grid-template-columns: -webkit-max-content minmax(0px, auto);\n grid-template-columns: max-content minmax(0px, auto);\n -webkit-column-gap: calc(16px / 2);\n -webkit-column-gap: var(--space-small);\n -moz-column-gap: calc(16px / 2);\n -moz-column-gap: var(--space-small);\n column-gap: calc(16px / 2);\n column-gap: var(--space-small);\n}\n\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n display: grid;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qm-SSuWTXkI- {\n display: -ms-flexbox;\n display: flex;\n visibility: hidden;\n\n /* To compensate the Checkbox's label margin that we are using for screen-readers */\n margin-right: calc((16px * 1) * -1);\n margin-right: calc(calc(16px * 1) * -1);\n margin-right: calc(var(--space-base) * -1);\n}\n\n.qm-SSuWTXkI-.VA9RnQp6nbI- {\n visibility: visible;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :first-child {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n -ms-flex-order: 1;\n order: 1;\n padding-top: calc(16px / 4);\n padding-top: var(--space-smaller);\n opacity: 1;\n transition: opacity 100ms ease-in-out;\n transition: opacity var(--transition-properties);\n --transition-properties: var(--timing-quick) ease-in-out;\n}\n\n@media (min-width: 768px) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n.ise8kHCfhCY-:hover .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY-:focus-within .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY- .d-79rkMqufg-._4L7iXXzLr5k- > :last-child {\n opacity: 1;\n}\n\n/*\n * Filters\n */\n\n.Kkp-IYmwq-s- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(255, 255, 255, 0.6);\n background-color: var(--color-overlay--dimmed);\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.m-eCShL7TU4- {\n position: sticky;\n top: 50vh;\n}\n\n/* This hides the text from the UI but not from the screen readers */\n\n.esUiRgWabYw- {\n position: absolute;\n top: auto;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n text-indent: -10000px;\n}\n";
54
54
  var styles$f = {"wrapper":"TkdrExYnvcY-","titleContainer":"IcAlZHoB4LI-","headerFilters":"TFO76ysivmg-","headerTitles":"jGHZZYZm1ZY-","batchSelectContainer":"GiD7MjZJbcw-","headerBatchSelect":"jMSVGIAr5tk-","listItem":"ise8kHCfhCY-","listItemClickable":"Tq6e0BGwcSM-","active":"Pc0JGX6jCD4-","selectable":"d-79rkMqufg-","selectAllCheckbox":"qm-SSuWTXkI-","visible":"VA9RnQp6nbI-","selected":"_4L7iXXzLr5k-","filtering":"Kkp-IYmwq-s-","filteringSpinner":"m-eCShL7TU4-","srOnly":"esUiRgWabYw-"};
55
- styleInject_es.styleInject(css_248z$f);
56
55
 
57
- var css_248z$e = ".F56prQsXm3A- {\n min-width: 80px;\n margin-left: calc(16px / 2);\n margin-left: var(--space-small);\n}\n";
58
56
  var styles$e = {"results":"F56prQsXm3A-"};
59
- styleInject_es.styleInject(css_248z$e);
60
57
 
61
58
  const DATALIST_TOTALCOUNT_TEST_ID = "ATL-DataList-TotalCount";
62
59
  function DataListTotalCount({ totalCount, loading, }) {
@@ -97,7 +94,7 @@ function useDataListContext() {
97
94
  return React.useContext(DataListContext);
98
95
  }
99
96
 
100
- function useMediaQuery(CSSMediaQuery) {
97
+ function useUnSafeMediaQuery(CSSMediaQuery) {
101
98
  /**
102
99
  * matchMedia have had full support for browsers since 2012 but jest, being a
103
100
  * lite version of a DOM, doesn't support it.
@@ -123,6 +120,12 @@ function useMediaQuery(CSSMediaQuery) {
123
120
  }, [CSSMediaQuery]);
124
121
  return matches;
125
122
  }
123
+ const canUseDom = !!(typeof window !== "undefined" &&
124
+ window.document &&
125
+ window.document.createElement);
126
+ // safe to disable eslint here because we want a function that does nothing
127
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
128
+ const useMediaQuery = canUseDom ? useUnSafeMediaQuery : () => true;
126
129
 
127
130
  const EMPTY_RESULTS_MESSAGE = "List is looking empty";
128
131
  const EMPTY_FILTER_RESULTS_MESSAGE = "No results for selected filters";
@@ -167,9 +170,7 @@ function useActiveLayout() {
167
170
  return { layout, activeBreakpoint };
168
171
  }
169
172
 
170
- var css_248z$d = "._8cMzUF8XEwY- {\n position: relative;\n}\n\n._8cMzUF8XEwY-::after {\n content: \"\";\n display: block;\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 100px;\n background-image: linear-gradient(\n to top,\n rgba(255, 255, 255, 1) 0%,\n rgba(255, 255, 255, 0) 100%\n );\n background-image: linear-gradient(\n to top,\n var(--color-surface) 0%,\n rgba(var(--color-white--rgb), 0) 100%\n );\n}\n\n.Rh--6fVpkm4- {\n padding: calc(16px * 1) calc(16px / 2);\n padding: var(--space-base) var(--space-small);\n}\n\n.NFaWWvmxtkw- {\n width: 100%;\n min-width: calc(16px * 3);\n min-width: var(--space-largest);\n}\n";
171
173
  var styles$d = {"wrapper":"_8cMzUF8XEwY-","loadingItem":"Rh--6fVpkm4-","glimmer":"NFaWWvmxtkw-"};
172
- styleInject_es.styleInject(css_248z$d);
173
174
 
174
175
  const LOADING_STATE_LIMIT_ITEMS = 10;
175
176
  const DATALIST_LOADINGSTATE_ROW_TEST_ID = "ATL-DataList-LoadingState-Row";
@@ -195,15 +196,11 @@ function useDataListLayoutContext() {
195
196
  return React.useContext(DataListLayoutContext);
196
197
  }
197
198
 
198
- var css_248z$c = ".jHcHGQ-HDbk- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: calc((16px / 2) * -1);\n top: calc(calc(16px / 2) * -1);\n top: calc(var(--space-small) * -1);\n right: 0;\n z-index: 6;\n z-index: var(--elevation-menu);\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n padding: calc(16px / 4);\n padding: var(--space-smaller);\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 2);\n border-radius: var(--radius-larger);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n";
199
199
  var styles$c = {"menu":"jHcHGQ-HDbk-"};
200
- styleInject_es.styleInject(css_248z$c);
201
200
 
202
201
  const CONTAINER_TEST_ID = "ATL-DataListFilters-Container";
203
202
 
204
- var css_248z$b = ".jbBRoxlZlNI- {\n --overflow-fade--offset: var(--space-smaller);\n --overflow-fade--negative-offset: calc(var(--overflow-fade--offset) * -1);\n\n -ms-flex-item-align: center;\n\n align-self: center;\n position: relative;\n min-width: 0;\n}\n\n.P6uJ-vHfKrM-,\n.MnN8qbS4hw4- {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: -webkit-max-content;\n grid-auto-columns: max-content;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.P6uJ-vHfKrM- {\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n.MnN8qbS4hw4- {\n margin: var(--overflow-fade--negative-offset);\n padding: var(--overflow-fade--offset);\n overflow-x: auto;\n overflow-y: visible;\n}\n\n.b-5P7Z8eGO8- {\n visibility: hidden;\n}\n\n.xzaCS4slLpI-::before,\n.Jf227kC8Nu0-::after {\n content: \"\";\n position: absolute;\n top: 0;\n width: calc(16px * 1.5);\n width: var(--space-large);\n height: 100%;\n background-image: linear-gradient(\n to right,\n rgba(255, 255, 255, 1) 0%,\n rgba(255, 255, 255, 0) 100%\n );\n background-image: linear-gradient(\n var(--data-list-overflow-shadow-angle, to right),\n var(--color-surface) 0%,\n rgba(var(--color-white--rgb), 0) 100%\n );\n pointer-events: none;\n}\n\n.xzaCS4slLpI-::before {\n left: var(--overflow-fade--negative-offset);\n}\n\n.Jf227kC8Nu0-::after {\n --data-list-overflow-shadow-angle: to left;\n right: var(--overflow-fade--negative-offset);\n}\n";
205
203
  var styles$b = {"fadeContainer":"jbBRoxlZlNI-","overflowItems":"P6uJ-vHfKrM-","overflowGrid":"MnN8qbS4hw4-","overflowTrigger":"b-5P7Z8eGO8-","overflowLeft":"xzaCS4slLpI-","overflowRight":"Jf227kC8Nu0-"};
206
- styleInject_es.styleInject(css_248z$b);
207
204
 
208
205
  function DataListOverflowFade({ children }) {
209
206
  const [leftRef, isLeftVisible] = useInView.useInView();
@@ -218,9 +215,7 @@ function DataListOverflowFade({ children }) {
218
215
  React__default["default"].createElement("span", { ref: rightRef, className: styles$b.overflowTrigger }))));
219
216
  }
220
217
 
221
- var css_248z$a = "._8MYxAQYdZzM- {\n position: relative;\n}\n\n.WRV-UmQmPzo- {\n --inline-label-height: calc(\n var(--typography--fontSize-small) * 1.5 + calc(var(--space-smaller) * 1.5) *\n 2\n );\n\n display: -ms-flexbox;\n\n display: flex;\n z-index: 0;\n z-index: var(--elevation-default);\n max-height: calc((\n ((16px * 1) * 0.75) * 1.5 + ((16px / 4) * 1.5) *\n 2\n ) * 2);\n max-height: calc(calc(\n calc(calc(16px * 1) * 0.75) * 1.5 + calc(calc(16px / 4) * 1.5) *\n 2\n ) * 2);\n max-height: calc(var(--inline-label-height) * 2);\n overflow: hidden;\n white-space: nowrap;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n.ND-cN-mX5-c- {\n -webkit-mask-image: linear-gradient(\n to left,\n transparent,\n transparent calc(16px * 1.5),\n rgba(0, 0, 0, 1) calc(16px * 3),\n rgba(0, 0, 0, 1)\n );\n -webkit-mask-image: linear-gradient(\n to left,\n transparent,\n transparent var(--space-large),\n rgba(0, 0, 0, 1) var(--space-largest),\n rgba(0, 0, 0, 1)\n );\n mask-image: linear-gradient(\n to left,\n transparent,\n transparent calc(16px * 1.5),\n rgba(0, 0, 0, 1) calc(16px * 3),\n rgba(0, 0, 0, 1)\n );\n mask-image: linear-gradient(\n to left,\n transparent,\n transparent var(--space-large),\n rgba(0, 0, 0, 1) var(--space-largest),\n rgba(0, 0, 0, 1)\n );\n}\n\n.liQeWCMenD0- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n height: 100%;\n -ms-flex-align: center;\n align-items: center;\n}\n";
222
218
  var styles$a = {"tagWrapper":"_8MYxAQYdZzM-","tags":"WRV-UmQmPzo-","tagsMask":"ND-cN-mX5-c-","tagCount":"liQeWCMenD0-"};
223
- styleInject_es.styleInject(css_248z$a);
224
219
 
225
220
  function DataListTags({ items }) {
226
221
  const ref = React.useRef(null);
@@ -276,13 +271,9 @@ function buildIntersectionThreshold(items) {
276
271
  return thresholds;
277
272
  }
278
273
 
279
- var css_248z$9 = ".fLmJZJJqMcE- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding: 0;\n border: none;\n background-color: transparent;\n}\n\n.fLmJZJJqMcE-:focus,\n.fLmJZJJqMcE-:focus-visible {\n outline: none;\n}\n\n.fLmJZJJqMcE-:focus-visible {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n\n.UG8cHUT3Hds- {\n cursor: pointer;\n}\n";
280
274
  var styles$9 = {"headerLabel":"fLmJZJJqMcE-","sortable":"UG8cHUT3Hds-"};
281
- styleInject_es.styleInject(css_248z$9);
282
275
 
283
- var css_248z$8 = ".AN5egORYy-0- {\n width: calc(16px * 1.5);\n width: var(--space-large);\n height: calc(16px * 1.5);\n height: var(--space-large);\n margin-right: calc(16px / 2);\n margin-right: var(--space-small);\n}\n\n.AN5egORYy-0- path {\n fill: rgba(101, 120, 132, 1);\n fill: var(--color-interactive--subtle);\n transition: all 200ms ease;\n transition: all var(--timing-base) ease;\n}\n\n.AN5egORYy-0- path.F1uTDCK0Sb0- {\n fill: rgb(1, 41, 57);\n fill: var(--color-heading);\n}\n\n.AN5egORYy-0- path._6KYeQXWXLQ8- {\n fill: rgb(217, 223, 225);\n fill: var(--color-inactive--surface);\n}\n";
284
276
  var styles$8 = {"sortIcon":"AN5egORYy-0-","active":"F1uTDCK0Sb0-","inactive":"_6KYeQXWXLQ8-"};
285
- styleInject_es.styleInject(css_248z$8);
286
277
 
287
278
  const SORTING_ICON_TEST_ID = "ATL-DataList-Sorting-Icon";
288
279
  function DataListSortingArrows({ order }) {
@@ -304,7 +295,7 @@ function DataListHeaderTile({ headers, headerKey, }) {
304
295
  [styles$9.sortable]: isSortable,
305
296
  }), onClick: handleOnClick },
306
297
  React__default["default"].createElement(Text.Text, { maxLines: "single" }, headers[headerKey]),
307
- (sortingState === null || sortingState === void 0 ? void 0 : sortingState.key) === headerKey && (React__default["default"].createElement(DataListSortingArrows, { order: sortingState.order }))));
298
+ (sortingState === null || sortingState === void 0 ? void 0 : sortingState.key) === headerKey ? (React__default["default"].createElement(DataListSortingArrows, { order: sortingState.order })) : (sortingState === null || sortingState === void 0 ? void 0 : sortingState.key) !== headerKey && isSortable ? (React__default["default"].createElement(DataListSortingArrows, { order: "none" })) : null));
308
299
  function toggleSorting(sortingKey) {
309
300
  const isSameKey = sortingKey === (sortingState === null || sortingState === void 0 ? void 0 : sortingState.key);
310
301
  if (isSameKey && (sortingState === null || sortingState === void 0 ? void 0 : sortingState.order) === "desc") {
@@ -398,9 +389,7 @@ function useDataListLayoutActionsContext() {
398
389
  return React.useContext(DataListLayoutActionsContext);
399
390
  }
400
391
 
401
- var css_248z$7 = ".aokwZU8jbWU- {\n position: fixed;\n top: 0;\n top: var(--actions-menu-y, 0);\n left: 0;\n left: var(--actions-menu-x, 0);\n z-index: 6;\n z-index: var(--elevation-menu);\n min-width: 150px;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n padding: calc(16px / 4);\n padding: var(--space-smaller);\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 2);\n border-radius: var(--radius-larger);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.XtVRP97TVSE- {\n position: fixed;\n top: 0;\n left: 0;\n z-index: calc(6 - 1);\n z-index: calc(var(--elevation-menu) - 1);\n width: 100%;\n height: 100%;\n padding: 0;\n border: none;\n background-color: transparent;\n}\n";
402
392
  var styles$7 = {"menu":"aokwZU8jbWU-","overlay":"XtVRP97TVSE-"};
403
- styleInject_es.styleInject(css_248z$7);
404
393
 
405
394
  const variants$1 = {
406
395
  hidden: { opacity: 0, y: -10 },
@@ -721,9 +710,7 @@ function DataListLayout({ children, size = "xs", }) {
721
710
  return null;
722
711
  }
723
712
 
724
- var css_248z$6 = ".v-GrdlFpBLk- {\n /* Offset the button's padding so the height of the header bar doesn't change */\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n}\n";
725
713
  var styles$6 = {"bulkActions":"v-GrdlFpBLk-"};
726
- styleInject_es.styleInject(css_248z$6);
727
714
 
728
715
  // This component is meant to capture the props of the DataList.BulkActions
729
716
  function DataListBulkActions(
@@ -906,9 +893,7 @@ function InternalDataListFilters() {
906
893
  showSortButton && React__default["default"].createElement(DataListSort, null)));
907
894
  }
908
895
 
909
- var css_248z$5 = ".PGOHzrMh374- {\n --offset: 1px;\n --sticky-header-transition-properties: var(--timing-base) ease-in-out;\n\n position: sticky;\n top: calc(1px * -1);\n top: calc(var(--offset) * -1);\n z-index: 1;\n z-index: var(--elevation-base);\n padding-top: 1px;\n padding-top: var(--offset);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n/**\n * Draw a border that gets covered by the column headers border when it shows up.\n *\n * Mostly to prevent us from writing some complex JS to remove the border when\n * the column headers show up.\n */\n\n.PGOHzrMh374-::before {\n content: \"\";\n display: block;\n position: absolute;\n bottom: 0;\n left: 50%;\n z-index: -1;\n width: 0;\n height: 0;\n background-color: rgb(217, 223, 225);\n background-color: var(--color-border);\n -webkit-transform: translateX(-50%);\n transform: translateX(-50%);\n transition: height var(--sticky-header-transition-properties)\n 100ms,\n width var(--sticky-header-transition-properties);\n transition: height var(--sticky-header-transition-properties)\n var(--timing-quick),\n width var(--sticky-header-transition-properties);\n}\n\n.PGjWc5ocjpI-::before {\n width: 100%;\n height: calc(16px / 8);\n height: var(--border-thick);\n transition: height var(--sticky-header-transition-properties),\n width var(--sticky-header-transition-properties) 100ms;\n transition: height var(--sticky-header-transition-properties),\n width var(--sticky-header-transition-properties) var(--timing-quick);\n}\n";
910
896
  var styles$5 = {"header":"PGOHzrMh374-","stuck":"PGjWc5ocjpI-"};
911
- styleInject_es.styleInject(css_248z$5);
912
897
 
913
898
  function DataListStickyHeader({ children }) {
914
899
  const [isStuck, setIsStuck] = React.useState(false);
@@ -926,9 +911,7 @@ function DataListStickyHeader({ children }) {
926
911
  return (React__default["default"].createElement("div", { ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
927
912
  }
928
913
 
929
- var css_248z$4 = ".tj0MOMhLEEY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.SaPMOnvw-3c- {\n --transition-properties: var(--timing-base) ease-in-out;\n --button-offset: calc(var(--space-largest) - var(--space-smaller));\n\n position: absolute;\n top: 50%;\n right: calc((16px * 3) - (16px / 4));\n right: calc(calc(16px * 3) - calc(16px / 4));\n right: var(--button-offset);\n visibility: hidden;\n width: 0;\n padding: calc(16px / 4) 0;\n padding: var(--space-smaller) 0;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n opacity: 0;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n transition: opacity 200ms ease-in-out,\n width 200ms ease-in-out, visibility 200ms ease-in-out;\n transition: opacity var(--transition-properties),\n width var(--transition-properties), visibility var(--transition-properties);\n}\n\n._3S1-91v2SYI- {\n visibility: visible;\n width: calc(100% - var(--button-offset));\n opacity: 1;\n}\n\n@media (min-width: 768px) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n._9GlBktsUALw- {\n display: block;\n}\n\n@media (min-width: 768px) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n/*\n * No Filters Styling\n *\n * When there are no filters, the search input is always visible.\n * ------------------------------------------------------------------------- */\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n position: static;\n visibility: visible;\n width: auto;\n opacity: 1;\n transition: none;\n}\n\n@media (min-width: 768px) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n._3Pjrt42x454- ._9GlBktsUALw- {\n display: none;\n}\n";
930
914
  var styles$4 = {"wrapper":"tj0MOMhLEEY-","searchInput":"SaPMOnvw-3c-","searchInputVisible":"_3S1-91v2SYI-","searchButton":"_9GlBktsUALw-","withNoFilters":"_3Pjrt42x454-"};
931
- styleInject_es.styleInject(css_248z$4);
932
915
 
933
916
  const DATA_LIST_SEARCH_TEST_ID = "ATL-DataList-Search-input-wrapper";
934
917
  // This component is meant to capture the props of the DataList.Search
@@ -976,9 +959,7 @@ function InternalDataListSearch() {
976
959
  }
977
960
  }
978
961
 
979
- var css_248z$3 = ".zg3w9nQga-M- {\n display: -ms-flexbox;\n display: flex;\n box-sizing: border-box;\n padding: calc(16px * 1);\n padding: var(--space-base);\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-direction: column;\n flex-direction: column;\n row-gap: calc(16px * 1);\n row-gap: var(--space-base);\n -ms-flex-align: center;\n align-items: center;\n -ms-flex: 1;\n flex: 1;\n}\n";
980
962
  var styles$3 = {"emptyStateWrapper":"zg3w9nQga-M-"};
981
- styleInject_es.styleInject(css_248z$3);
982
963
 
983
964
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
984
965
  function DataListEmptyState(_) {
@@ -1021,9 +1002,7 @@ function getEmptyStates(components) {
1021
1002
  return { defaultEmptyState, filteredEmptyState };
1022
1003
  }
1023
1004
 
1024
- var css_248z$2 = ".IC-Y9bTIVFo- {\n position: relative;\n -webkit-transform: translateY(calc((16px * 3) * -1));\n -webkit-transform: translateY(calc(calc(16px * 3) * -1));\n -webkit-transform: translateY(calc(var(--space-largest) * -1));\n transform: translateY(calc((16px * 3) * -1));\n transform: translateY(calc(calc(16px * 3) * -1));\n transform: translateY(calc(var(--space-largest) * -1));\n}\n\n.PbZLGpbI6ZM-,\n._6zA6B-jmz6o- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n padding: calc(16px / 2);\n padding: var(--space-small);\n}\n\n._6zA6B-jmz6o- {\n opacity: 0;\n -webkit-animation: gZ4DUv82g5I- 200ms ease 200ms forwards;\n -webkit-animation: gZ4DUv82g5I- var(--timing-base) ease var(--timing-base) forwards;\n animation: gZ4DUv82g5I- 200ms ease 200ms forwards;\n animation: gZ4DUv82g5I- var(--timing-base) ease var(--timing-base) forwards;\n}\n\n@-webkit-keyframes gZ4DUv82g5I- {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes gZ4DUv82g5I- {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n";
1025
1005
  var styles$2 = {"trigger":"IC-Y9bTIVFo-","loadingMore":"PbZLGpbI6ZM-","backToTop":"_6zA6B-jmz6o-","fadeIn":"gZ4DUv82g5I-"};
1026
- styleInject_es.styleInject(css_248z$2);
1027
1006
 
1028
1007
  function DataListLoadMoreTrigger() {
1029
1008
  const { onLoadMore } = useDataListContext();
@@ -1046,9 +1025,7 @@ function DataListLoadMore({ onBackToTop }) {
1046
1025
  React__default["default"].createElement(Button.Button, { label: "Back to top", onClick: onBackToTop, size: "small", variation: "subtle" })))));
1047
1026
  }
1048
1027
 
1049
- var css_248z$1 = ".iyg43v-S9yU- {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n min-height: 44px;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border: none;\n border-radius: 0;\n font-size: calc((16px * 1) * 0.875);\n font-size: calc(calc(16px * 1) * 0.875);\n font-size: var(--typography--fontSize-base);\n text-align: left;\n background: none;\n cursor: pointer;\n transition: background 200ms ease;\n transition: background var(--timing-base) ease;\n -webkit-appearance: none;\n appearance: none;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n.iyg43v-S9yU-:hover,\n.iyg43v-S9yU-:focus {\n background-color: rgb(244, 246, 250);\n background-color: var(--color-surface--hover);\n}\n\n.iyg43v-S9yU-:focus,\n.iyg43v-S9yU-:focus-visible {\n outline: none;\n}\n\n.iyg43v-S9yU-:focus-visible {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n\n.AUJNqz93ZDA- {\n font-weight: 500;\n}\n";
1050
1028
  var styles$1 = {"action":"iyg43v-S9yU-","label":"AUJNqz93ZDA-"};
1051
- styleInject_es.styleInject(css_248z$1);
1052
1029
 
1053
1030
  function DataListAction({ label, icon, destructive, visible = () => true, onClick, }) {
1054
1031
  const { activeItem } = useDataListLayoutActionsContext();
@@ -1079,9 +1056,7 @@ function DataListAction({ label, icon, destructive, visible = () => true, onClic
1079
1056
  }
1080
1057
  }
1081
1058
 
1082
- var css_248z = "._0m75bgCVBhk- {\n visibility: hidden;\n}\n";
1083
1059
  var styles = {"hidden":"_0m75bgCVBhk-"};
1084
- styleInject_es.styleInject(css_248z);
1085
1060
 
1086
1061
  function DataListLayoutActions() {
1087
1062
  const { itemActionComponent, loadingState } = useDataListContext();
@@ -54,4 +54,4 @@ export interface DataTableProps<T> {
54
54
  */
55
55
  readonly loading?: boolean;
56
56
  }
57
- export declare function DataTable<T extends object>({ data, columns, pagination, sorting, height, stickyHeader, pinFirstColumn, onRowClick, emptyState, loading, }: DataTableProps<T>): JSX.Element;
57
+ export declare function DataTable<T extends object>(props: DataTableProps<T>): JSX.Element;
@@ -6,23 +6,23 @@ var reactTable = require('@tanstack/react-table');
6
6
  var classnames = require('classnames');
7
7
  var React = require('react');
8
8
  var jobberHooks = require('@jobber/hooks/useResizeObserver');
9
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
10
- var Glimmer = require('../Glimmer-cfa92a88.js');
11
- var tslib_es6 = require('../tslib.es6-5b8768b7.js');
12
- var Option = require('../Option-469029b5.js');
13
- var Button = require('../Button-163a0641.js');
14
- var Text = require('../Text-4a2bc89f.js');
15
- require('../Content-2ca1ffe1.js');
16
- require('../FormField-dfc061ca.js');
17
- require('uuid');
9
+ var Glimmer = require('../Glimmer-f5c31401.js');
10
+ var tslib_es6 = require('../tslib.es6-a575af05.js');
11
+ var Option = require('../Option-c84f28a6.js');
12
+ var Button = require('../Button-8bde6560.js');
13
+ var Text = require('../Text-9f261dde.js');
14
+ var ClientOnly = require('../ClientOnly-4f3e136d.js');
15
+ require('../Content-80486307.js');
16
+ require('../FormField-18eda132.js');
18
17
  require('react-hook-form');
19
- require('../Icon-405a216c.js');
18
+ require('@jobber/hooks/useShowClear');
19
+ require('../Icon-361343e0.js');
20
20
  require('@jobber/design');
21
- require('../InputValidation-179f0926.js');
21
+ require('../InputValidation-fdc891af.js');
22
22
  require('framer-motion');
23
- require('../Spinner-9d8fc7ff.js');
23
+ require('../Spinner-cac356ee.js');
24
24
  require('react-router-dom');
25
- require('../Typography-973b122e.js');
25
+ require('../Typography-75f58b60.js');
26
26
 
27
27
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
28
28
 
@@ -48,9 +48,7 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
48
48
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
49
49
  var jobberHooks__namespace = /*#__PURE__*/_interopNamespace(jobberHooks);
50
50
 
51
- var css_248z$3 = ".m5A5oeRFaMs- {\n position: relative;\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n}\n\n.cY-5BrIIUg8- {\n overflow: auto;\n}\n\n.y8xnHe7fwrI- {\n width: 100%;\n border-collapse: collapse;\n text-align: left;\n}\n\n.y8xnHe7fwrI- thead tr th {\n padding: calc(16px * 1);\n padding: var(--space-base);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n color: rgb(1, 41, 57);\n color: var(--color-heading);\n white-space: nowrap;\n}\n\n.y8xnHe7fwrI- thead tr th :first-child {\n display: -ms-flexbox;\n display: flex;\n}\n\n.y8xnHe7fwrI- tbody tr {\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n}\n\n.y8xnHe7fwrI- tbody tr:last-child {\n border-bottom: none;\n}\n\n.y8xnHe7fwrI- tbody tr td {\n padding: calc(16px * 1);\n padding: var(--space-base);\n}\n\n.y8xnHe7fwrI- tfoot {\n position: sticky;\n z-index: 1;\n width: 100%;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n border-top: calc(16px / 8) solid rgb(217, 223, 225);\n border-top: var(--border-thick) solid var(--color-border);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n bottom: 0;\n}\n\n.y8xnHe7fwrI- tfoot tr th {\n padding: calc(16px * 1);\n padding: var(--space-base);\n}\n\n.t8QYvdtkQXQ- thead tr th:first-child,\n.t8QYvdtkQXQ- tbody tr td:first-child {\n position: sticky;\n left: 0;\n z-index: 1;\n height: calc((16px * 3) + (16px / 4));\n height: calc(calc(16px * 3) + calc(16px / 4));\n height: calc(var(--space-largest) + var(--space-smaller));\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.t8QYvdtkQXQ- th:first-child::after,\n.t8QYvdtkQXQ- td:first-child::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 0;\n right: calc(-1 * (16px / 2));\n right: calc(-1 * calc(16px / 2));\n right: calc(-1 * var(--space-small));\n width: calc(16px / 2);\n width: var(--space-small);\n height: 100%;\n background: linear-gradient(\n 90deg,\n rgba(0, 0, 0, 0.1) 0%,\n rgba(0, 0, 0, 0) 80%\n );\n background: linear-gradient(\n 90deg,\n rgba(var(--color-black--rgb), 0.1) 0%,\n rgba(var(--color-black--rgb), 0) 80%\n );\n}\n\n.Y21JuHX6fhk- {\n position: sticky;\n top: 0;\n right: 0;\n left: 0;\n z-index: 2;\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.PJEX8dlqCMA-:first-child:hover {\n background: rgb(244, 246, 250);\n background: var(--color-surface--hover);\n cursor: pointer;\n}\n\n._9ps4aWGs8W0-:hover {\n background: rgb(244, 246, 250);\n background: var(--color-surface--hover);\n cursor: pointer;\n}\n\n._59XEEB8l5pI-:hover,\n._59XEEB8l5pI-:hover :first-child {\n background: rgb(238, 240, 242);\n background: var(--color-surface--background);\n cursor: pointer;\n}\n\n.a2BGGBkY5J8- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n -ms-flex-direction: column;\n flex-direction: column;\n top: calc(16px * 3);\n top: var(--space-largest);\n right: 0;\n bottom: calc(16px * 3);\n bottom: var(--space-largest);\n left: 0;\n width: 100%;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n";
52
51
  var styles$3 = {"dataTableContainer":"m5A5oeRFaMs-","tableContainer":"cY-5BrIIUg8-","table":"y8xnHe7fwrI-","pinFirstColumn":"t8QYvdtkQXQ-","stickyHeader":"Y21JuHX6fhk-","pinFirstHeaderSortable":"PJEX8dlqCMA-","sortableColumn":"_9ps4aWGs8W0-","clickableRow":"_59XEEB8l5pI-","emptyState":"a2BGGBkY5J8-"};
53
- styleInject_es.styleInject(css_248z$3);
54
52
 
55
53
  function BodyLoading({ table }) {
56
54
  const loaderRows = table.getState().pagination.pageSize;
@@ -133,9 +131,7 @@ function getSortingSettings(sorting) {
133
131
  return sortingSettings;
134
132
  }
135
133
 
136
- var css_248z$2 = ".zn0VRVhObt0- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n min-height: calc((16px / 4) + (16px * 3));\n min-height: calc(calc(16px / 4) + calc(16px * 3));\n min-height: calc(var(--space-smaller) + var(--space-largest));\n padding: calc(16px / 2) calc(16px * 1);\n padding: var(--space-small) var(--space-base);\n border-top: calc(16px / 16) solid rgb(217, 223, 225);\n border-top: var(--border-base) solid var(--color-border);\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n._1d4uh90gfSI- {\n -ms-flex: 9999;\n flex: 9999;\n white-space: nowrap;\n}\n\n._5Hh01rJlUDs- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: justify;\n justify-content: space-between;\n gap: calc(16px * 1);\n gap: var(--space-base);\n -ms-flex: 1;\n flex: 1;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n min-width: -webkit-fit-content;\n min-width: -moz-fit-content;\n min-width: fit-content;\n}\n\n.N5rXFBBzPxk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n gap: calc(16px / 2);\n gap: var(--space-small);\n min-width: calc(3 * (16px * 3) + (16px / 2));\n min-width: calc(3 * calc(16px * 3) + calc(16px / 2));\n min-width: calc(3 * var(--space-largest) + var(--space-small));\n}\n\n.Uq2TUaf9ang- {\n min-width: calc((16px * 4) + (16px / 4));\n min-width: calc(calc(16px * 4) + calc(16px / 4));\n min-width: calc(var(--space-extravagant) + var(--space-smaller));\n}\n\n.PeLwUZ2wWPI- {\n display: -ms-flexbox;\n display: flex;\n gap: calc(16px * 1.5);\n gap: var(--space-large);\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n@media (max-width: 489px) {\n\n.PeLwUZ2wWPI- {\n gap: calc(16px * 1);\n gap: var(--space-base);\n}\n }\n\n@media (--small-screens-and-below) {\n\n.PeLwUZ2wWPI- {\n gap: calc(16px * 1);\n gap: var(--space-base);\n}\n }\n";
137
134
  var styles$2 = {"pagination":"zn0VRVhObt0-","paginationInfo":"_1d4uh90gfSI-","paginationNav":"_5Hh01rJlUDs-","paginationSelect":"N5rXFBBzPxk-","paginationSelectLabel":"Uq2TUaf9ang-","paginationButtons":"PeLwUZ2wWPI-"};
138
- styleInject_es.styleInject(css_248z$2);
139
135
 
140
136
  const defaultItemsPerPageOptions = ["10", "20", "30", "40", "50"];
141
137
  function Pagination({ table, itemsPerPage, totalItems, loading, onPageChange, }) {
@@ -164,9 +160,7 @@ function Pagination({ table, itemsPerPage, totalItems, loading, onPageChange, })
164
160
  }, disabled: !table.getCanNextPage() })))));
165
161
  }
166
162
 
167
- var css_248z$1 = "._0FexNr-lIgA- {\n padding: calc(16px * 1);\n padding: var(--space-base);\n border-top: calc(16px / 8) solid rgb(217, 223, 225);\n border-top: var(--border-thick) solid var(--color-border);\n}\n\n.PKlqQjoQ6DY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n font-weight: bold;\n}\n\n.PKlqQjoQ6DY- * {\n text-align: left;\n}\n\n.ItTcVYUbVNM-,\n.ItTcVYUbVNM- * {\n font-weight: normal;\n text-align: right;\n}\n\n.PKlqQjoQ6DY-:not(:last-child) {\n padding-bottom: calc(16px / 2);\n padding-bottom: var(--space-small);\n}\n";
168
163
  var styles$1 = {"mobileFooterContainer":"_0FexNr-lIgA-","mobileFooterRow":"PKlqQjoQ6DY-","mobileFooterRowData":"ItTcVYUbVNM-"};
169
- styleInject_es.styleInject(css_248z$1);
170
164
 
171
165
  const DesktopView = ({ table }) => (React__default["default"].createElement("tfoot", { "data-testid": "data-table-desktop-footer" }, table.getFooterGroups().map(footerGroup => (React__default["default"].createElement("tr", { key: footerGroup.id }, footerGroup.headers.map(header => (React__default["default"].createElement("th", { key: header.id, style: {
172
166
  width: header.getSize(),
@@ -188,9 +182,7 @@ const Footer = ({ table, viewType = "handheld", }) => {
188
182
  return null;
189
183
  };
190
184
 
191
- var css_248z = ".wtb8keLFxgc- {\n padding-right: calc(16px / 2);\n padding-right: var(--space-small);\n}\n.wtb8keLFxgc- path {\n fill: rgba(101, 120, 132, 1);\n fill: var(--color-greyBlue);\n}\n.wtb8keLFxgc- path.TUkZiGiR6hc- {\n fill: rgb(1, 41, 57);\n fill: var(--color-blue);\n}\n.wtb8keLFxgc- path.HkPlMeyz3rM- {\n fill: rgb(193, 201, 206);\n fill: var(--color-greyBlue--lighter);\n}\n";
192
185
  var styles = {"sortIcon":"wtb8keLFxgc-","active":"TUkZiGiR6hc-","inactive":"HkPlMeyz3rM-"};
193
- styleInject_es.styleInject(css_248z);
194
186
 
195
187
  var SortDirection;
196
188
  (function (SortDirection) {
@@ -250,7 +242,7 @@ function Header({ table, stickyHeader, sorting, onRowClick, }) {
250
242
  }))))));
251
243
  }
252
244
 
253
- function DataTable({ data, columns, pagination, sorting, height, stickyHeader, pinFirstColumn, onRowClick, emptyState, loading = false, }) {
245
+ function InternalDataTable({ data, columns, pagination, sorting, height, stickyHeader, pinFirstColumn, onRowClick, emptyState, loading = false, }) {
254
246
  const [ref, { exactWidth }] = jobberHooks.useResizeObserver();
255
247
  const tableSettings = createTableSettings(data, columns, {
256
248
  pagination,
@@ -275,6 +267,10 @@ function DataTable({ data, columns, pagination, sorting, height, stickyHeader, p
275
267
  ? pagination.totalItems
276
268
  : table.getCoreRowModel().rows.length, loading: loading, onPageChange: () => { var _a; return (_a = ref.current) === null || _a === void 0 ? void 0 : _a.scrollTo(0, 0); } }))));
277
269
  }
270
+ function DataTable(props) {
271
+ return (React__default["default"].createElement(ClientOnly.ClientOnly, null,
272
+ React__default["default"].createElement(InternalDataTable, Object.assign({}, props))));
273
+ }
278
274
 
279
275
  const mockContainerWidth = (exactWidth) => {
280
276
  jest.spyOn(jobberHooks__namespace, "useResizeObserver").mockReturnValue([
@@ -2,16 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var DatePicker = require('../DatePicker-c18f1739.js');
5
+ var DatePicker = require('../DatePicker-9399cc69.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('react-datepicker');
9
9
  require('@jobber/hooks/useRefocusOnActivator');
10
- require('../style-inject.es-9d2f5f4e.js');
11
- require('../Typography-973b122e.js');
12
- require('../Button-163a0641.js');
10
+ require('../Typography-75f58b60.js');
11
+ require('../Button-8bde6560.js');
13
12
  require('react-router-dom');
14
- require('../Icon-405a216c.js');
13
+ require('../Icon-361343e0.js');
15
14
  require('@jobber/design');
16
15
  require('lodash/omit');
17
16
 
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var classnames = require('classnames');
5
+ var ReactDatePicker = require('react-datepicker');
6
+ var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
7
+ var Typography = require('./Typography-75f58b60.js');
8
+ var Button = require('./Button-8bde6560.js');
9
+ var omit = require('lodash/omit');
10
+
11
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
+
13
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
15
+ var ReactDatePicker__default = /*#__PURE__*/_interopDefaultLegacy(ReactDatePicker);
16
+ var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
17
+
18
+ var styles = {"react-datepicker__month--selecting-range":"vl9aI3nIPIc-","datePickerWrapper":"jswNs4p7tII-","fullWidth":"WNVBy7I-Vv4-","datePicker":"_8kgzU28z2Eo-","inline":"_1Z7yDS-JQa0-","header":"G2Kz3asqaFQ-","month":"D3kDqTSFScU-"};
19
+
20
+ function DatePickerCustomHeader({ monthDate, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, }) {
21
+ return (React__default["default"].createElement("div", { className: styles.header },
22
+ React__default["default"].createElement(Button.Button, { onClick: decreaseMonth, disabled: prevMonthButtonDisabled, icon: "arrowLeft", ariaLabel: "Previous Month", variation: "work", type: "tertiary" }),
23
+ React__default["default"].createElement("div", { className: styles.month },
24
+ React__default["default"].createElement(Typography.Typography, { element: "span", fontFamily: "display", size: "large" }, monthDate.toLocaleString("en-US", {
25
+ month: "long",
26
+ year: "numeric",
27
+ }))),
28
+ React__default["default"].createElement(Button.Button, { onClick: increaseMonth, disabled: nextMonthButtonDisabled, icon: "arrowRight", ariaLabel: "Next Month", variation: "work", type: "tertiary" })));
29
+ }
30
+
31
+ const DatePickerActivator = React.forwardRef(InternalActivator);
32
+ function InternalActivator(props, ref) {
33
+ const { activator, fullWidth } = props;
34
+ const newActivatorProps = omit__default["default"](props, ["activator", "fullWidth"]);
35
+ if (activator) {
36
+ if (React.isValidElement(activator)) {
37
+ const isAComponent = typeof activator.type === "function";
38
+ return React.cloneElement(activator, Object.assign(Object.assign(Object.assign({}, newActivatorProps), (isAComponent && { fullWidth: fullWidth })), {
39
+ // @ts-expect-error - Issue with react types not including `ref` in
40
+ // cloneElement. https://github.com/DefinitelyTyped/DefinitelyTyped/issues/40888
41
+ ref }));
42
+ }
43
+ else {
44
+ return activator(props);
45
+ }
46
+ }
47
+ else {
48
+ return (React__default["default"].createElement(Button.Button, Object.assign({ variation: "work", type: "tertiary", icon: "calendar", ariaLabel: "Open Datepicker", fullWidth: fullWidth }, newActivatorProps)));
49
+ }
50
+ }
51
+
52
+ function useFocusOnSelectedDate() {
53
+ const ref = React.useRef();
54
+ function focusOnSelectedDate() {
55
+ var _a;
56
+ const selectedDateClass = ".react-datepicker__day--selected";
57
+ const selectedDate = (_a = ref.current) === null || _a === void 0 ? void 0 : _a.querySelector(selectedDateClass);
58
+ if (selectedDate instanceof HTMLDivElement) {
59
+ selectedDate.focus();
60
+ }
61
+ }
62
+ return { ref, focusOnSelectedDate };
63
+ }
64
+
65
+ function DatePicker({ onChange, onMonthChange, activator, inline, selected, readonly = false, disabled = false, fullWidth = false, smartAutofocus = true, maxDate, minDate, highlightDates, }) {
66
+ const { ref, focusOnSelectedDate } = useFocusOnSelectedDate();
67
+ const [open, setOpen] = React.useState(false);
68
+ const wrapperClassName = classnames__default["default"](styles.datePickerWrapper, {
69
+ // react-datepicker uses this class name to not close the date picker when
70
+ // the activator is clicked
71
+ // https://github.com/Hacker0x01/react-datepicker/blob/master/src/index.jsx#L905
72
+ //
73
+ // It uses react-onclickoutside package and declaring some elements to be
74
+ // ignored via said class name
75
+ // https://www.npmjs.com/package/react-onclickoutside#marking-elements-as-skip-over-this-one-during-the-event-loop
76
+ "react-datepicker-ignore-onclickoutside": !inline,
77
+ [styles.fullWidth]: fullWidth,
78
+ });
79
+ const datePickerClassNames = classnames__default["default"](styles.datePicker, {
80
+ [styles.inline]: inline,
81
+ });
82
+ const { pickerRef } = useEscapeKeyToCloseDatePicker(open, ref);
83
+ if (smartAutofocus) {
84
+ useRefocusOnActivator.useRefocusOnActivator(open);
85
+ React.useEffect(focusOnSelectedDate, [open]);
86
+ }
87
+ return (React__default["default"].createElement("div", { className: wrapperClassName, ref: ref },
88
+ React__default["default"].createElement(ReactDatePicker__default["default"], { ref: pickerRef, calendarClassName: datePickerClassNames, showPopperArrow: false, selected: selected, inline: inline, disabled: disabled, readOnly: readonly, onChange: handleChange, maxDate: maxDate, preventOpenOnFocus: true, minDate: minDate, useWeekdaysShort: true, customInput: React__default["default"].createElement(DatePickerActivator, { activator: activator, fullWidth: fullWidth }), renderCustomHeader: props => React__default["default"].createElement(DatePickerCustomHeader, Object.assign({}, props)), onCalendarOpen: handleCalendarOpen, onCalendarClose: handleCalendarClose, dateFormat: ["P", "PP", "PPP", "MMM dd yyyy", "MMMM dd yyyy"], highlightDates: highlightDates, onMonthChange: onMonthChange })));
89
+ /**
90
+ * The onChange callback on ReactDatePicker returns a Date and an Event, but
91
+ * the onChange in our interface only provides the Date. Simplifying the code
92
+ * by removing this function and passing it directly to the underlying
93
+ * component breaks tests both here and downstream (i.e. the pattern
94
+ * `expect(onChange).toHaveBeenCalledWith(date)` is commonly used and would
95
+ * fail).
96
+ */
97
+ function handleChange(value /* , event: React.SyntheticEvent */) {
98
+ onChange(value);
99
+ }
100
+ function handleCalendarOpen() {
101
+ setOpen(true);
102
+ }
103
+ function handleCalendarClose() {
104
+ setOpen(false);
105
+ }
106
+ }
107
+ function useEscapeKeyToCloseDatePicker(open, ref) {
108
+ const pickerRef = React.useRef(null);
109
+ const escFunction = (event) => {
110
+ var _a;
111
+ if (event.key === "Escape" && open) {
112
+ // Close the picker ourselves and prevent propagation so that ESC presses with the picker open
113
+ // do not close parent elements that may also be listening for ESC presses such as Modals
114
+ (_a = pickerRef.current) === null || _a === void 0 ? void 0 : _a.setOpen(false);
115
+ event.stopPropagation();
116
+ }
117
+ };
118
+ React.useEffect(() => {
119
+ var _a;
120
+ (_a = ref.current) === null || _a === void 0 ? void 0 : _a.addEventListener("keydown", escFunction);
121
+ return () => {
122
+ var _a;
123
+ (_a = ref.current) === null || _a === void 0 ? void 0 : _a.removeEventListener("keydown", escFunction);
124
+ };
125
+ }, [open, ref, pickerRef]);
126
+ return {
127
+ pickerRef,
128
+ };
129
+ }
130
+
131
+ exports.DatePicker = DatePicker;
@@ -3,17 +3,14 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
7
- var Typography = require('../Typography-973b122e.js');
6
+ var Typography = require('../Typography-75f58b60.js');
8
7
  require('classnames');
9
8
 
10
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
10
 
12
11
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
13
12
 
14
- var css_248z = ".EQDmgmJchDA- {\n margin: 0;\n}\n\n.DkzfClUGQlc- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n}\n\n.DkzfClUGQlc-:first-child {\n padding-top: 0;\n}\n\n.DkzfClUGQlc-:last-child {\n padding-bottom: 0;\n border-bottom: none;\n}\n\n.DkzfClUGQlc- dd {\n min-width: calc(16px * 7.5);\n min-width: calc(var(--base-unit) * 7.5);\n box-sizing: border-box;\n padding-right: calc(16px / 2);\n padding-right: var(--space-small);\n -webkit-margin-start: 0;\n margin-left: 0;\n -ms-flex: 1 1 60%;\n flex: 1 1 60%;\n}\n\n.DkzfClUGQlc- dt {\n -ms-flex: 1 1 40%;\n flex: 1 1 40%;\n}\n";
15
13
  var styles = {"descriptionList":"EQDmgmJchDA-","termGroup":"DkzfClUGQlc-"};
16
- styleInject_es.styleInject(css_248z);
17
14
 
18
15
  function DescriptionList({ data }) {
19
16
  return (React__default["default"].createElement("dl", { className: styles.descriptionList }, data.map(([term, description]) => (React__default["default"].createElement("div", { key: term, className: styles.termGroup },
@@ -4,9 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var jobberHooks = require('@jobber/hooks/useResizeObserver');
7
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
- var Icon = require('../Icon-405a216c.js');
9
- var Typography = require('../Typography-973b122e.js');
7
+ var Icon = require('../Icon-361343e0.js');
8
+ var Typography = require('../Typography-75f58b60.js');
10
9
  require('@jobber/design');
11
10
  require('classnames');
12
11
 
@@ -14,9 +13,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
14
13
 
15
14
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
16
15
 
17
- var css_248z = ".WcgASR88I1c- {\n -webkit-transform-origin: 50% 47.5% 0;\n transform-origin: 50% 47.5% 0;\n transition: -webkit-transform 100ms;\n transition: -webkit-transform var(--timing-quick);\n transition: transform 100ms;\n transition: transform var(--timing-quick);\n transition: transform 100ms, -webkit-transform 100ms;\n transition: transform var(--timing-quick), -webkit-transform var(--timing-quick);\n -ms-flex-preferred-size: 0;\n flex-basis: 0;\n}\n\n.N-W4pXaLGt4-[open] .WcgASR88I1c- {\n -webkit-transform: rotateX(180deg);\n transform: rotateX(180deg);\n}\n\n.PMjHZZhHiUY- {\n padding: calc(16px / 4) 0 calc(16px / 8) 0;\n padding: var(--space-smaller) 0 var(--space-smallest) 0;\n border: none;\n list-style: none;\n cursor: pointer;\n outline-color: none;\n transition: background 100ms, box-shadow 200ms;\n transition: background var(--timing-quick), box-shadow var(--timing-base);\n}\n\n.PMjHZZhHiUY-::-webkit-details-marker {\n display: none;\n}\n\n.PMjHZZhHiUY-:hover,\n.PMjHZZhHiUY-:focus {\n background: rgb(244, 246, 250);\n background: var(--color-surface--hover);\n}\n\n.PMjHZZhHiUY-:focus,\n.PMjHZZhHiUY-:active {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n border: none;\n outline: none;\n}\n\n.PMjHZZhHiUY- * {\n pointer-events: none;\n}\n\n.-E1lerklSHw- {\n -ms-flex-align: baseline;\n align-items: baseline;\n display: -ms-flexbox;\n display: flex;\n}\n\n.-E1lerklSHw- h4 {\n -ms-flex: 1 0 0px;\n flex: 1 0 0;\n}\n\n.CjRRsbZQp1Y- {\n display: block;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n}\n\n.N-W4pXaLGt4-[open] > .CjRRsbZQp1Y- {\n -webkit-animation: vWj6tOjTVYA- 200ms;\n -webkit-animation: vWj6tOjTVYA- var(--timing-base);\n animation: vWj6tOjTVYA- 200ms;\n animation: vWj6tOjTVYA- var(--timing-base);\n}\n\n@-webkit-keyframes vWj6tOjTVYA- {\n 0% {\n margin-top: calc((16px / 2) * -1);\n margin-top: calc(calc(16px / 2) * -1);\n margin-top: calc(var(--space-small) * -1);\n opacity: 0;\n }\n 100% {\n margin-top: 0px;\n opacity: 1;\n }\n}\n\n@keyframes vWj6tOjTVYA- {\n 0% {\n margin-top: calc((16px / 2) * -1);\n margin-top: calc(calc(16px / 2) * -1);\n margin-top: calc(var(--space-small) * -1);\n opacity: 0;\n }\n 100% {\n margin-top: 0px;\n opacity: 1;\n }\n}\n";
18
16
  var styles = {"arrowIconWrapper":"WcgASR88I1c-","details":"N-W4pXaLGt4-","summary":"PMjHZZhHiUY-","summaryWrap":"-E1lerklSHw-","content":"CjRRsbZQp1Y-","openAnimation":"vWj6tOjTVYA-"};
19
- styleInject_es.styleInject(css_248z);
20
17
 
21
18
  function Disclosure({ children, title, defaultOpen = false, }) {
22
19
  const [isOpen, setOpen] = React.useState(defaultOpen);
@@ -4,16 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var classnames = require('classnames');
7
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
7
 
9
8
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
9
 
11
10
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
11
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
13
12
 
14
- var css_248z = ".dH7SqeSo70A- {\n --divider-width: var(--border-base);\n --divider-color: var(--color-border);\n margin: 0;\n padding: 0;\n border: none;\n}\n\n._07xjw8ykfvg- {\n --divider-width: var(--border-thick);\n opacity: 0.875;\n}\n\n.TGD22T-KP78- {\n --divider-width: var(--border-thicker);\n opacity: 0.625;\n}\n\n.UUndaiRIryU- {\n --divider-width: var(--border-thickest);\n opacity: 0.375;\n}\n\n.HzWBc8FoucI- {\n height: calc(16px / 16);\n height: var(--space-minuscule);\n border-bottom: var(--divider-width) solid var(--divider-color);\n}\n\n.vu46ZKcGBWM- {\n width: var(--space-miniscule);\n height: auto;\n border-right: var(--divider-width) solid var(--divider-color);\n}\n";
15
13
  var styles = {"divider":"dH7SqeSo70A-","large":"_07xjw8ykfvg-","larger":"TGD22T-KP78-","largest":"UUndaiRIryU-","horizontal":"HzWBc8FoucI-","vertical":"vu46ZKcGBWM-"};
16
- styleInject_es.styleInject(css_248z);
17
14
 
18
15
  function Divider({ size = "base", direction = "horizontal", }) {
19
16
  const className = classnames__default["default"](styles.divider, {