@jobber/components 4.67.2-JOB-84261.6 → 4.67.2-JOB-85844.26

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 (152) hide show
  1. package/dist/AnimatedSwitcher/index.js +2 -2
  2. package/dist/{AnimatedSwitcher-d1e1ddcf.js → AnimatedSwitcher-2eab103a.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-8955a61e.js} +1 -4
  6. package/dist/Banner/index.js +4 -9
  7. package/dist/Button/index.js +3 -4
  8. package/dist/Button-ee40b8fd.js +54 -0
  9. package/dist/ButtonDismiss/index.js +4 -5
  10. package/dist/{ButtonDismiss-2b98d075.js → ButtonDismiss-f45a7786.js} +1 -1
  11. package/dist/Card/index.js +7 -8
  12. package/dist/Card-6fe158ad.js +88 -0
  13. package/dist/Checkbox/index.js +5 -7
  14. package/dist/{Checkbox-ad7ec2e7.js → Checkbox-f92901ad.js} +5 -8
  15. package/dist/Chip/index.js +8 -7
  16. package/dist/Chip-eafb9c3b.js +86 -0
  17. package/dist/Chips/index.js +14 -18
  18. package/dist/ClientOnly-0bc210d3.js +23 -0
  19. package/dist/Combobox/index.js +11 -10
  20. package/dist/{Combobox-eb1e5817.js → Combobox-9112d247.js} +44 -25
  21. package/dist/ConfirmationModal/index.js +14 -13
  22. package/dist/{ConfirmationModal-0f85d96c.js → ConfirmationModal-298393b6.js} +3 -3
  23. package/dist/Content/index.js +1 -2
  24. package/dist/{Content-2ca1ffe1.js → Content-62118acd.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-189137c2.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-bf448c54.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-2e1d797a.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-88fbd5dc.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-5a4272bb.js +68 -0
  57. package/dist/Grid/index.js +1 -8
  58. package/dist/Heading/index.js +2 -3
  59. package/dist/{Heading-0f4ecb0c.js → Heading-2923b3c4.js} +1 -1
  60. package/dist/Icon/index.js +1 -1
  61. package/dist/InlineLabel/index.js +2 -3
  62. package/dist/InlineLabel-e52b42ee.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-e6c5c9be.js} +8 -11
  70. package/dist/InputGroup/index.js +1 -2
  71. package/dist/InputGroup-669bff5c.js +30 -0
  72. package/dist/InputNumber/index.js +10 -11
  73. package/dist/{InputNumber-d9ebabaa.js → InputNumber-8dfdeef5.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-f7c45ee5.js → InputText-61149f85.js} +3 -2
  79. package/dist/InputTime/InputTime.d.ts +3 -1
  80. package/dist/InputTime/InputTime.disabledTest.d.ts +1 -0
  81. package/dist/InputTime/InputTimeProps.d.ts +1 -1
  82. package/dist/InputTime/InternalInputTime.d.ts +3 -0
  83. package/dist/InputTime/SupportsTimePolyfill.d.ts +2 -0
  84. package/dist/InputTime/TimeInputPolyfill.client.d.ts +2 -0
  85. package/dist/InputTime/index.js +58 -724
  86. package/dist/InputValidation/index.js +4 -5
  87. package/dist/{InputValidation-179f0926.js → InputValidation-42a70050.js} +2 -5
  88. package/dist/LightBox/ClientOnly.d.ts +6 -0
  89. package/dist/LightBox/LightBox.d.ts +2 -2
  90. package/dist/LightBox/index.js +6 -6
  91. package/dist/{LightBox-3f4dbc33.js → LightBox-282586ce.js} +5 -6
  92. package/dist/List/index.js +9 -15
  93. package/dist/Markdown/Markdown.d.ts +1 -1
  94. package/dist/Markdown/index.js +8 -8
  95. package/dist/Markdown-4382f0a4.js +90 -0
  96. package/dist/Menu/Menu.d.ts +4 -4
  97. package/dist/Menu/index.js +5 -6
  98. package/dist/{Menu-d7ea093c.js → Menu-df3c9332.js} +7 -10
  99. package/dist/Modal/Modal.d.ts +2 -2
  100. package/dist/Modal/index.js +7 -7
  101. package/dist/{Modal-70daa0e2.js → Modal-bec0202d.js} +6 -9
  102. package/dist/MultiSelect/index.js +5 -11
  103. package/dist/{Option-469029b5.js → Option-cdcc4d56.js} +1 -1
  104. package/dist/Page/index.js +12 -14
  105. package/dist/Popover/Popover.d.ts +2 -2
  106. package/dist/Popover/index.js +8 -8
  107. package/dist/ProgressBar/index.js +1 -2
  108. package/dist/ProgressBar-127f34ac.js +38 -0
  109. package/dist/RadioGroup/index.js +3 -5
  110. package/dist/RadioGroup-b775a2fc.js +44 -0
  111. package/dist/RecurringSelect/components/DayOfMonthSelect.d.ts +2 -2
  112. package/dist/RecurringSelect/components/WeeklySelect.d.ts +2 -2
  113. package/dist/RecurringSelect/index.js +16 -29
  114. package/dist/Select/index.js +10 -11
  115. package/dist/Spinner/index.js +1 -2
  116. package/dist/Spinner-db214d76.js +21 -0
  117. package/dist/StatusLabel/index.js +2 -5
  118. package/dist/SupportsTimePolyfill-c6769c3b.js +21 -0
  119. package/dist/Switch/index.js +2 -3
  120. package/dist/Switch-fc9c9120.js +53 -0
  121. package/dist/Table/index.js +0 -5
  122. package/dist/Tabs/index.js +1 -4
  123. package/dist/Text/index.js +2 -3
  124. package/dist/{Text-4a2bc89f.js → Text-3644f58e.js} +1 -1
  125. package/dist/TimeInputPolyfill.client-348881a8.js +687 -0
  126. package/dist/Toast/index.js +3 -6
  127. package/dist/Tooltip/index.js +3 -2
  128. package/dist/{Tooltip-6b12f1c2.js → Tooltip-e4cfb9e0.js} +14 -12
  129. package/dist/Typography/index.js +1 -2
  130. package/dist/Typography-26964114.js +43 -0
  131. package/dist/styles.css +8107 -0
  132. package/package.json +4 -4
  133. package/rollup.config.js +3 -1
  134. package/dist/Button-163a0641.js +0 -57
  135. package/dist/Card-3178033c.js +0 -93
  136. package/dist/Chip-168acf3e.js +0 -89
  137. package/dist/DatePicker-c18f1739.js +0 -134
  138. package/dist/FormField-dfc061ca.js +0 -227
  139. package/dist/FormatFile-3b650d02.js +0 -121
  140. package/dist/Glimmer-cfa92a88.js +0 -77
  141. package/dist/InlineLabel-9a517c19.js +0 -28
  142. package/dist/InputGroup-8d4fd4eb.js +0 -33
  143. package/dist/Markdown-96070121.js +0 -62
  144. package/dist/ProgressBar-b68edc8f.js +0 -43
  145. package/dist/RadioGroup-ebaa4f87.js +0 -47
  146. package/dist/Spinner-9d8fc7ff.js +0 -24
  147. package/dist/Switch-b85272bf.js +0 -56
  148. package/dist/Typography-973b122e.js +0 -62
  149. package/dist/style-inject.es-9d2f5f4e.js +0 -30
  150. /package/dist/{FormatDate-70ea5b43.js → FormatDate-3fc882ac.js} +0 -0
  151. /package/dist/{Icon-405a216c.js → Icon-e0b68533.js} +0 -0
  152. /package/dist/{tslib.es6-5b8768b7.js → tslib.es6-cb76b215.js} +0 -0
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var AnimatedSwitcher = require('../AnimatedSwitcher-d1e1ddcf.js');
5
+ var AnimatedSwitcher = require('../AnimatedSwitcher-2eab103a.js');
6
6
  require('react');
7
7
  require('framer-motion');
8
- require('../Icon-405a216c.js');
8
+ require('../Icon-e0b68533.js');
9
9
  require('@jobber/design');
10
10
 
11
11
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var framerMotion = require('framer-motion');
5
- var Icon = require('./Icon-405a216c.js');
5
+ var Icon = require('./Icon-e0b68533.js');
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
@@ -2,28 +2,28 @@
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-cb76b215.js');
6
6
  var React = require('react');
7
7
  var debounce = require('lodash/debounce');
8
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
9
8
  var classnames = require('classnames');
10
9
  var ReactDOM = require('react-dom');
11
10
  var reactPopper = require('react-popper');
12
11
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
13
- var Text = require('../Text-4a2bc89f.js');
14
- var Icon = require('../Icon-405a216c.js');
15
- var Heading = require('../Heading-0f4ecb0c.js');
16
- var InputText = require('../InputText-f7c45ee5.js');
17
- require('../Typography-973b122e.js');
12
+ var useSafeLayoutEffect = require('@jobber/hooks/useSafeLayoutEffect');
13
+ var Text = require('../Text-3644f58e.js');
14
+ var Icon = require('../Icon-e0b68533.js');
15
+ var Heading = require('../Heading-2923b3c4.js');
16
+ var InputText = require('../InputText-61149f85.js');
17
+ require('../Typography-26964114.js');
18
18
  require('@jobber/design');
19
- require('../FormField-dfc061ca.js');
20
- require('uuid');
19
+ require('../FormField-2e1d797a.js');
21
20
  require('react-hook-form');
22
- require('../Button-163a0641.js');
21
+ require('@jobber/hooks/useShowClear');
22
+ require('../Button-ee40b8fd.js');
23
23
  require('react-router-dom');
24
- require('../InputValidation-179f0926.js');
24
+ require('../InputValidation-42a70050.js');
25
25
  require('framer-motion');
26
- require('../Spinner-9d8fc7ff.js');
26
+ require('../Spinner-db214d76.js');
27
27
 
28
28
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
29
29
 
@@ -31,9 +31,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
31
  var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
32
32
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
33
33
 
34
- var css_248z = ".v0Cys9vQ-NE- {\n position: relative;\n width: 100%;\n}\n\n.CX-N-e0e6og- {\n display: none;\n position: absolute;\n z-index: calc(6 + 1001);\n z-index: calc(var(--elevation-menu) + var(--elevation-modal));\n width: 100%;\n /* Unfortunately this is how we define our line item picker height in jobber online.\n This is a concession to maintain visual parity. */\n max-height: 300px;\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 box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: calc(16px / 16) solid var(--color-color-border);\n border: var(--border-base) solid var(--color-color-border);\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n overflow: auto;\n scroll-behavior: smooth;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.CX-N-e0e6og- h5 {\n padding: calc(16px / 2) 0 calc(16px / 4) calc(16px / 2);\n padding: var(--space-small) 0 var(--space-smaller) var(--space-small);\n border-bottom: calc(16px / 16) solid rgb(1, 41, 57);\n border-bottom: var(--border-base) solid var(--color-border--section);\n}\n\n.CX-N-e0e6og-._4PlUaegVpkk- {\n display: block;\n}\n\n.CX-N-e0e6og-._4PlUaegVpkk-:empty {\n display: none;\n}\n\n.ucQtG0iwqbo- {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -ms-flex-pack: start;\n justify-content: flex-start;\n -ms-flex-line-pack: stretch;\n align-content: stretch;\n -ms-flex-align: center;\n align-items: center;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border: none;\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n text-align: left;\n list-style: none;\n background-color: transparent;\n cursor: pointer;\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.ucQtG0iwqbo-:hover,\n.ucQtG0iwqbo-:focus,\n.ucQtG0iwqbo-.r8HS-ma79QE- {\n background-color: rgb(244, 246, 250);\n background-color: var(--color-surface--hover);\n outline-color: rgb(147, 161, 169);\n outline-color: var(--color-focus);\n}\n\n.ucQtG0iwqbo-.ydwLX44YFZc-:not(:last-child) {\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n}\n\n.CX-N-e0e6og-:hover .ucQtG0iwqbo-.r8HS-ma79QE-:not(:hover) {\n background-color: transparent;\n outline-color: transparent;\n}\n\n.v0Cys9vQ-NE- .PvUgNoAUG7A-:not(:first-child) {\n padding-top: calc(16px / 2);\n padding-top: var(--space-small);\n}\n\n.ucQtG0iwqbo- .DAOOFUZ1BRM- {\n -ms-flex: 0 1 auto;\n flex: 0 1 auto;\n -ms-flex-item-align: auto;\n align-self: auto;\n width: calc(16px * 1.5);\n width: var(--space-large);\n}\n\n.ucQtG0iwqbo- .cjKJFup6hGY- {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex: 1 100%;\n flex: 1 100%;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n\n.ucQtG0iwqbo- .hG5zNBuI2wA- {\n -ms-flex: 2;\n flex: 2;\n}\n\n.ucQtG0iwqbo- ._3CwjFCbhqi4- {\n -ms-flex: 1;\n flex: 1;\n -ms-flex-item-align: end;\n align-self: flex-end;\n text-align: right;\n}\n";
35
34
  var styles = {"autocomplete":"v0Cys9vQ-NE-","options":"CX-N-e0e6og-","visible":"_4PlUaegVpkk-","option":"ucQtG0iwqbo-","active":"r8HS-ma79QE-","separator":"ydwLX44YFZc-","heading":"PvUgNoAUG7A-","icon":"DAOOFUZ1BRM-","text":"cjKJFup6hGY-","label":"hG5zNBuI2wA-","details":"_3CwjFCbhqi4-"};
36
- styleInject_es.styleInject(css_248z);
37
35
 
38
36
  var IndexChange;
39
37
  (function (IndexChange) {
@@ -125,7 +123,7 @@ function useRepositionMenu(attachTo, visible = false) {
125
123
  { name: "flip", options: { fallbackPlacements: ["top"] } },
126
124
  ],
127
125
  });
128
- React.useLayoutEffect(() => {
126
+ useSafeLayoutEffect.useSafeLayoutEffect(() => {
129
127
  var _a;
130
128
  (_a = popper === null || popper === void 0 ? void 0 : popper.update) === null || _a === void 0 ? void 0 : _a.call(popper);
131
129
  }, [visible]);
@@ -2,12 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Avatar = require('../Avatar-76a799fa.js');
5
+ var Avatar = require('../Avatar-8955a61e.js');
6
6
  require('react');
7
7
  require('classnames');
8
- require('../style-inject.es-9d2f5f4e.js');
9
8
  require('color');
10
- require('../Icon-405a216c.js');
9
+ require('../Icon-e0b68533.js');
11
10
  require('@jobber/design');
12
11
 
13
12
 
@@ -2,9 +2,8 @@
2
2
 
3
3
  var React = require('react');
4
4
  var classnames = require('classnames');
5
- var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
6
5
  var Color = require('color');
7
- var Icon = require('./Icon-405a216c.js');
6
+ var Icon = require('./Icon-e0b68533.js');
8
7
 
9
8
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
9
 
@@ -12,9 +11,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
11
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
13
12
  var Color__default = /*#__PURE__*/_interopDefaultLegacy(Color);
14
13
 
15
- var css_248z = ":root {\n --avatar-size: calc(var(--base-unit) * 2);\n --avatar-border-size: var(--border-base);\n}\n\n.WniTNadEyPk- {\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 width: calc(16px * 2);\n width: var(--avatar-size);\n height: calc(16px * 2);\n height: var(--avatar-size);\n min-width: calc(16px * 2);\n min-width: var(--avatar-size);\n min-height: calc(16px * 2);\n min-height: var(--avatar-size);\n border-radius: 100%;\n border-radius: var(--radius-circle);\n color: rgb(1, 41, 57);\n color: var(--color-heading);\n font-size: calc(16px * 2);\n font-size: var(--avatar-size);\n -webkit-font-smoothing: antialiased;\n background: no-repeat center center rgba(101, 120, 132, 1);\n background: no-repeat center center var(--color-greyBlue);\n background-size: cover;\n}\n\n.WniTNadEyPk-:focus {\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 outline: none;\n}\n\n._8Pqn2uZpaZg- {\n --avatar-size: calc(var(--base-unit) * 4.5);\n --avatar-border-size: var(--border-thick);\n}\n\n.S-edTXYA-7E- {\n --avatar-size: calc(var(--base-unit) * 1.5);\n}\n\n.S1iBGElfOUA- {\n color: rgba(255, 255, 255, 1);\n color: var(--color-text--reverse);\n}\n\n.ErPhpHHpiBQ- {\n font-size: calc((16px * 2) / 2);\n font-size: calc(calc(16px * 2) / 2);\n font-size: calc(var(--avatar-size) / 2);\n text-transform: uppercase;\n}\n\n.aC-d-mngrIc- {\n font-size: calc((16px * 2) / 2.25);\n font-size: calc(calc(16px * 2) / 2.25);\n font-size: calc(var(--avatar-size) / 2.25);\n}\n\n.nR0S-GzjDnQ- {\n width: calc((16px * 2) - (calc(16px / 16) * 2));\n width: calc(calc(16px * 2) - (calc(16px / 16) * 2));\n width: calc(var(--avatar-size) - (var(--avatar-border-size) * 2));\n height: calc((16px * 2) - (calc(16px / 16) * 2));\n height: calc(calc(16px * 2) - (calc(16px / 16) * 2));\n height: calc(var(--avatar-size) - (var(--avatar-border-size) * 2));\n box-shadow: 0 0 0 calc(16px / 8) rgba(255, 255, 255, 1) inset;\n box-shadow: 0 0 0 var(--border-thick) var(--color-white) inset;\n border-style: solid;\n border-width: calc(16px / 16);\n border-width: var(--avatar-border-size);\n}\n";
16
14
  var styles = {"avatar":"WniTNadEyPk-","large":"_8Pqn2uZpaZg-","small":"S-edTXYA-7E-","isDark":"S1iBGElfOUA-","initials":"ErPhpHHpiBQ-","smallInitials":"aC-d-mngrIc-","hasBorder":"nR0S-GzjDnQ-"};
17
- styleInject_es.styleInject(css_248z);
18
15
 
19
16
  function isDark(colorToCheck) {
20
17
  if (colorToCheck == undefined) {
@@ -5,12 +5,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var jobberHooks = require('@jobber/hooks/useResizeObserver');
8
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
9
- var Icon = require('../Icon-405a216c.js');
10
- var Text = require('../Text-4a2bc89f.js');
11
- var Button = require('../Button-163a0641.js');
8
+ var Icon = require('../Icon-e0b68533.js');
9
+ var Text = require('../Text-3644f58e.js');
10
+ var Button = require('../Button-ee40b8fd.js');
12
11
  require('@jobber/design');
13
- require('../Typography-973b122e.js');
12
+ require('../Typography-26964114.js');
14
13
  require('react-router-dom');
15
14
 
16
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -18,13 +17,9 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
18
17
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
18
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
20
19
 
21
- var css_248z$1 = ".meuT8gYQPJU- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\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 * 1);\n padding: var(--space-base);\n color: rgb(66, 78, 86);\n color: var(--color-text);\n background-color: rgb(238, 240, 242);\n background-color: var(--color-surface--background);\n gap: calc(16px / 2);\n gap: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.y4BapyZr-fo- > a {\n color: rgb(66, 78, 86);\n color: var(--color-text);\n}\n\n.y4BapyZr-fo- > a:hover {\n color: rgb(1, 41, 57);\n color: var(--color-blue);\n}\n\n._6v1woNSLEvc- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n gap: calc(16px / 2);\n gap: var(--space-small);\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (max-width: 489px) {\n\n._6v1woNSLEvc- {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n }\n\n@media (--small-screens-and-below) {\n\n._6v1woNSLEvc- {\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n}\n }\n\n.y4BapyZr-fo- {\n -ms-flex: 1;\n flex: 1;\n -ms-flex-item-align: center;\n align-self: center;\n}\n\n._6v1woNSLEvc- > *:last-child {\n margin-bottom: 0;\n}\n\n.bocgLmEhcTU- .y4BapyZr-fo- {\n -ms-flex: 1;\n flex: 1;\n}\n\n.rtNjEzmABX4- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n\n@media (max-width: 489px) {\n\n.rtNjEzmABX4- {\n width: 100%;\n margin-top: calc(16px / 2);\n margin-top: var(--space-small);\n}\n }\n\n@media (--small-screens-and-below) {\n\n.rtNjEzmABX4- {\n width: 100%;\n margin-top: calc(16px / 2);\n margin-top: var(--space-small);\n}\n }\n\n.lunQ5SOfyLg- {\n margin: calc((16px / 8) * -1) 0;\n margin: calc(calc(16px / 8) * -1) 0;\n margin: calc(var(--space-smallest) * -1) 0;\n padding: calc(16px / 8);\n padding: var(--space-smallest);\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n -ms-flex: 0;\n flex: 0;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n\n.lunQ5SOfyLg-:hover {\n background: rgba(0, 0, 0, 0.025);\n}\n\n.lunQ5SOfyLg-:focus {\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 outline: none;\n background: rgba(0, 0, 0, 0.05);\n}\n";
22
20
  var styles = {"banner":"meuT8gYQPJU-","bannerChildren":"y4BapyZr-fo-","bannerContent":"_6v1woNSLEvc-","medium":"bocgLmEhcTU-","bannerAction":"rtNjEzmABX4-","closeButton":"lunQ5SOfyLg-"};
23
- styleInject_es.styleInject(css_248z$1);
24
21
 
25
- var css_248z = ".wWW-2T7rCV0- {\n background-color: rgb(226, 241, 250);\n background-color: var(--color-informative--surface);\n}\n\n/* Our Banner \"surface\" colors should be lighter than they are so we're leaving the following alone for now */\n\n._7h8FUHIkVjg- {\n background-color: rgb(203, 223, 159);\n background-color: var(--color-green--lighter);\n}\n\n.d5fXcE1L0lc- {\n background-color: rgb(241, 231, 159);\n background-color: var(--color-yellow--lighter);\n}\n\n.oYaw-T3c0IU- {\n background-color: rgb(255, 206, 194);\n background-color: var(--color-red--lighter);\n}\n";
26
22
  var types = {"notice":"wWW-2T7rCV0-","success":"_7h8FUHIkVjg-","warning":"d5fXcE1L0lc-","error":"oYaw-T3c0IU-"};
27
- styleInject_es.styleInject(css_248z);
28
23
 
29
24
  function BannerIcon({ icon }) {
30
25
  return React__default["default"].createElement(Icon.Icon, { name: icon, color: "greyBlueDark" });
@@ -2,14 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Button = require('../Button-163a0641.js');
5
+ var Button = require('../Button-ee40b8fd.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('react-router-dom');
9
- require('../style-inject.es-9d2f5f4e.js');
10
- require('../Icon-405a216c.js');
9
+ require('../Icon-e0b68533.js');
11
10
  require('@jobber/design');
12
- require('../Typography-973b122e.js');
11
+ require('../Typography-26964114.js');
13
12
 
14
13
 
15
14
 
@@ -0,0 +1,54 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var classnames = require('classnames');
5
+ var reactRouterDom = require('react-router-dom');
6
+ var Icon = require('./Icon-e0b68533.js');
7
+ var Typography = require('./Typography-26964114.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 styles = {"button":"U9VsquOtk2I-","work":"qkFQwI0PKfw-","learning":"jsKQEOBdJ0k-","destructive":"_4W8X0dxZDK4-","subtle":"vDKO-cmh8vY-","primary":"FXqN12jWtPo-","disabled":"bg-l22drjd0-","secondary":"pf6G840lKdA-","tertiary":"m7DbwRZWcNk-","small":"STSDgSRREx4-","base":"amIh7vPETfo-","large":"ON6ezOojFVo-","onlyIcon":"Qq-idRLJTCk-","hasIconAndLabel":"EWh1gvgPJQg-","iconOnRight":"pfzTUMgNb3o-","fullWidth":"ZCHqCEyLBw0-","loading":"VVFKEv1ksMA-","animateStripes":"a8Q-0lnKH5M-"};
15
+
16
+ function Button(props) {
17
+ const { ariaControls, ariaHaspopup, ariaExpanded, ariaLabel, disabled = false, external, fullWidth, icon, label, iconOnRight, id, loading, onClick, onMouseDown, role, size = "base", type = "primary", url, to, variation = "work", submit, } = props;
18
+ const buttonClassNames = classnames__default["default"](styles.button, styles[size], {
19
+ [styles.onlyIcon]: icon && !label,
20
+ [styles.hasIconAndLabel]: icon && label,
21
+ [styles.iconOnRight]: iconOnRight,
22
+ [styles[variation]]: variation,
23
+ [styles[type]]: type,
24
+ [styles.disabled]: disabled,
25
+ [styles.fullWidth]: fullWidth,
26
+ [styles.loading]: loading,
27
+ });
28
+ const buttonType = submit ? "submit" : "button";
29
+ const tagProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ className: buttonClassNames, disabled,
30
+ id }, (!disabled && { href: url })), (!disabled && { onClick: onClick })), (!disabled && { onMouseDown: onMouseDown })), (external && { target: "_blank" })), (url === undefined && to === undefined && { type: buttonType })), { "aria-controls": ariaControls, "aria-haspopup": ariaHaspopup, "aria-expanded": ariaExpanded, "aria-label": ariaLabel, role: role });
31
+ const buttonInternals = React__default["default"].createElement(ButtonInternals, Object.assign({}, props));
32
+ if (to) {
33
+ return (React__default["default"].createElement(reactRouterDom.Link, Object.assign({}, tagProps, { to: to }), buttonInternals));
34
+ }
35
+ const Tag = url ? "a" : "button";
36
+ return React__default["default"].createElement(Tag, Object.assign({}, tagProps), buttonInternals);
37
+ }
38
+ function ButtonInternals({ label, icon, size = "base" }) {
39
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
40
+ icon && React__default["default"].createElement(Icon.Icon, { name: icon, size: size }),
41
+ React__default["default"].createElement(Typography.Typography, { element: "span", fontWeight: "extraBold", fontFamily: "base", size: getTypeSizes(size) }, label)));
42
+ }
43
+ function getTypeSizes(size) {
44
+ switch (size) {
45
+ case "small":
46
+ return "small";
47
+ case "large":
48
+ return "large";
49
+ default:
50
+ return "base";
51
+ }
52
+ }
53
+
54
+ exports.Button = Button;
@@ -2,15 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ButtonDismiss = require('../ButtonDismiss-2b98d075.js');
5
+ var ButtonDismiss = require('../ButtonDismiss-f45a7786.js');
6
6
  require('react');
7
- require('../Button-163a0641.js');
7
+ require('../Button-ee40b8fd.js');
8
8
  require('classnames');
9
9
  require('react-router-dom');
10
- require('../style-inject.es-9d2f5f4e.js');
11
- require('../Icon-405a216c.js');
10
+ require('../Icon-e0b68533.js');
12
11
  require('@jobber/design');
13
- require('../Typography-973b122e.js');
12
+ require('../Typography-26964114.js');
14
13
 
15
14
 
16
15
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
- var Button = require('./Button-163a0641.js');
4
+ var Button = require('./Button-ee40b8fd.js');
5
5
 
6
6
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
7
 
@@ -2,21 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Card = require('../Card-3178033c.js');
5
+ var Card = require('../Card-6fe158ad.js');
6
6
  require('react');
7
7
  require('classnames');
8
- require('../style-inject.es-9d2f5f4e.js');
9
- require('../Heading-0f4ecb0c.js');
10
- require('../Typography-973b122e.js');
11
- require('../Button-163a0641.js');
8
+ require('../Heading-2923b3c4.js');
9
+ require('../Typography-26964114.js');
10
+ require('../Button-ee40b8fd.js');
12
11
  require('react-router-dom');
13
- require('../Icon-405a216c.js');
12
+ require('../Icon-e0b68533.js');
14
13
  require('@jobber/design');
15
- require('../Menu-d7ea093c.js');
16
- require('uuid');
14
+ require('../Menu-df3c9332.js');
17
15
  require('framer-motion');
18
16
  require('@jobber/hooks/useOnKeyDown');
19
17
  require('@jobber/hooks/useRefocusOnActivator');
18
+ require('@jobber/hooks/useSafeLayoutEffect');
20
19
 
21
20
 
22
21
 
@@ -0,0 +1,88 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var classnames = require('classnames');
5
+ var Heading = require('./Heading-2923b3c4.js');
6
+ var Button = require('./Button-ee40b8fd.js');
7
+ var Menu = require('./Menu-df3c9332.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 styles = {"card":"_2wxPdv7kELk-","accent":"_5LfUFF9DYsk-","clickable":"tRfpysqqk8s-","header":"fAPeD1InvAI-"};
15
+
16
+ var colors = {"requestColor":"vvT4WQQNm1A-","quoteColor":"ewWSA-AqPBs-","jobColor":"ZuQFWmcM-38-","invoiceColor":"b9aB-DbfSI8-","blue":"_6tFyd9Op3QY-","blueLight":"uFlsik1sMf8-","blueLighter":"_2dO0zCHWU48-","blueLightest":"RR-XaNyu23U-","blueDark":"HLricrV5TRM-","green":"fvMAXzbYjVo-","greenLight":"vppB-fszJ7M-","greenLighter":"EH4yrRyVrog-","greenLightest":"jfuIATPvpzw-","greenDark":"mDgzdSzCmlw-","lime":"OWeyNXobrek-","limeLight":"gBd-jW7hc2A-","limeLighter":"PZ3p2kISQl8-","limeLightest":"wk56Avrf5u8-","limeDark":"BpxVs0ESZZQ-","yellowGreen":"W1Plus-w90s-","yellowGreenLight":"MBvezPZf2r0-","yellowGreenLighter":"HpMA-8L7gEQ-","yellowGreenLightest":"Z7K3xhC6jU8-","yellowGreenDark":"qYud5BgZVDQ-","yellow":"UmKFuhj-odE-","yellowLight":"urbYXsHvb-o-","yellowLighter":"J5f4ygfEe1M-","yellowLightest":"f0YOqNTXr2c-","yellowDark":"zYMhMXskG-o-","red":"xMW5G3bcZ-U-","redLight":"-O8T8zi0AkQ-","redLighter":"WNaOw-wPD40-","redLightest":"_3jne5angZmM-","redDark":"Ce3FxZAnXks-","grey":"Ubx9QHfbYVg-","greyLight":"_9orHaOxo3ew-","greyLighter":"gvgk4-Qr7G8-","greyLightest":"_6dk6hwjKwz8-","greyDark":"LFsxlyhhXWE-","greyBlue":"MNze-s50Qx0-","greyBlueLight":"_1O6fbjtLDXE-","greyBlueLighter":"_3coHcfDM3VA-","greyBlueLightest":"_1GwEUK3RMmk-","greyBlueDark":"_03qQDU55XhA-","lightBlue":"XrONNgApzcY-","lightBlueLight":"axCpC15OAsQ-","lightBlueLighter":"l7-ZKiT7ECs-","lightBlueLightest":"R-d7ifPGd-U-","lightBlueDark":"tjGcvlfZNo0-","purple":"_6yFi1QGzU-0-","purpleLight":"s5B034ADstg-","purpleLighter":"XvHFMKO2QkA-","purpleLightest":"z1yqV2h-X0o-","purpleDark":"ShqfQED9t1k-","pink":"TSAuQcS9guw-","pinkLight":"GwUX04DtVTg-","pinkLighter":"OOxzzrT-Kyg-","pinkLightest":"_9iIg4vnXMPQ-","pinkDark":"_3VTCutRlbfQ-","teal":"fG-k53wCdy8-","tealLight":"GMNha2EEVYg-","tealLighter":"_8mCqw-pGqc8-","tealLightest":"XHd3g6apCv8-","tealDark":"XadpYA5oNNU-","orange":"yOjNuw4uX2M-","orangeLight":"CFBZb6YwS8U-","orangeLighter":"dj0X5xsNtZA-","orangeLightest":"bSU2KCid1GE-","orangeDark":"dPKWRPFuIko-","brown":"i90uzcHXLBQ-","brownLight":"Q1g5O8oxNQ8-","brownLighter":"UimWc99bIs0-","brownLightest":"AUWBtBoPSB4-","brownDark":"_7xEA4hCoooA-","navy":"IqAniikSo1A-","navyLight":"NTbn2du5U28-","navyLighter":"RbY7pJetOU0-","navyLightest":"TAlHuH8GUaY-","navyDark":"Pm1CuBHrg0Q-","indigo":"_-4HRcMjMcTg-","indigoLight":"frP-WGi4cig-","indigoLighter":"GzJbf-nczMU-","indigoLightest":"LFsNJs2wsGY-","indigoDark":"KRBIaqOA1G4-","white":"OXOOKDn6V-M-"};
17
+
18
+ const ENTER_KEY = "Enter";
19
+ const SPACEBAR_KEY = " ";
20
+ /**
21
+ * This is only intended to be used in the Card component.
22
+ * Please use `<Card onClick={onClick} />` component instead.
23
+ */
24
+ function CardClickable({ className, onClick, children, }) {
25
+ const cardRef = React.useRef();
26
+ return (React__default["default"].createElement("div", { ref: cardRef, "data-testid": "clickable-card", className: className, onClick: onClick, onKeyUp: handleKeyup, onKeyDown: handleKeyDown, role: "button", tabIndex: 0 }, children));
27
+ function isCardFocused() {
28
+ return document.activeElement === cardRef.current;
29
+ }
30
+ function handleKeyup(event) {
31
+ var _a;
32
+ const shouldClick = event.key === ENTER_KEY || event.key === SPACEBAR_KEY;
33
+ if (shouldClick && isCardFocused()) {
34
+ (_a = cardRef.current) === null || _a === void 0 ? void 0 : _a.click();
35
+ }
36
+ }
37
+ function handleKeyDown(event) {
38
+ // Prevent page scroll when hitting spacebar while focused on a card
39
+ if (event.key === SPACEBAR_KEY && isCardFocused()) {
40
+ event.preventDefault();
41
+ }
42
+ }
43
+ }
44
+
45
+ /**
46
+ * Intended to be used in the Card component.
47
+ * Use `<Card header={header} />` component instead.
48
+ */
49
+ function CardHeader({ title, header, }) {
50
+ const heading = title || header;
51
+ if (React__default["default"].isValidElement(heading))
52
+ return React__default["default"].createElement(React__default["default"].Fragment, null, heading);
53
+ if (heading) {
54
+ const titleString = typeof heading === "string" ? heading : heading.title;
55
+ return (React__default["default"].createElement("div", { className: styles.header },
56
+ titleString && React__default["default"].createElement(Heading.Heading, { level: 3 }, titleString),
57
+ typeof heading === "object" && renderHeaderAction(heading === null || heading === void 0 ? void 0 : heading.action)));
58
+ }
59
+ return React__default["default"].createElement(React__default["default"].Fragment, null);
60
+ }
61
+ function renderHeaderAction(action) {
62
+ if ((action === null || action === void 0 ? void 0 : action.type) === Button.Button) {
63
+ const props = Object.assign(Object.assign({ type: "tertiary" }, action.props), { size: "small" });
64
+ return action && React__default["default"].createElement(Button.Button, Object.assign({}, props));
65
+ }
66
+ if ((action === null || action === void 0 ? void 0 : action.type) === Menu.Menu) {
67
+ return action && React__default["default"].createElement(Menu.Menu, Object.assign({}, action.props));
68
+ }
69
+ return React__default["default"].createElement(React__default["default"].Fragment, null);
70
+ }
71
+
72
+ function Card({ accent, header, children, onClick, title, url, external = false, }) {
73
+ const className = classnames__default["default"](styles.card, accent && styles.accent, (url || onClick) && styles.clickable, accent && colors[accent]);
74
+ const cardContent = (React__default["default"].createElement(React__default["default"].Fragment, null,
75
+ React__default["default"].createElement(CardHeader, { title: title, header: header }),
76
+ children));
77
+ if (onClick) {
78
+ return (React__default["default"].createElement(CardClickable, { className: className, onClick: onClick }, cardContent));
79
+ }
80
+ else if (url) {
81
+ return (React__default["default"].createElement("a", Object.assign({ className: className, href: url }, (external && { target: "_blank", rel: "noopener noreferrer" })), cardContent));
82
+ }
83
+ else {
84
+ return React__default["default"].createElement("div", { className: className }, cardContent);
85
+ }
86
+ }
87
+
88
+ exports.Card = Card;
@@ -2,17 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Checkbox = require('../Checkbox-ad7ec2e7.js');
6
- require('../tslib.es6-5b8768b7.js');
5
+ var Checkbox = require('../Checkbox-f92901ad.js');
6
+ require('../tslib.es6-cb76b215.js');
7
7
  require('react');
8
- require('uuid');
9
8
  require('classnames');
10
9
  require('react-hook-form');
11
- require('../style-inject.es-9d2f5f4e.js');
12
- require('../Icon-405a216c.js');
10
+ require('../Icon-e0b68533.js');
13
11
  require('@jobber/design');
14
- require('../Text-4a2bc89f.js');
15
- require('../Typography-973b122e.js');
12
+ require('../Text-3644f58e.js');
13
+ require('../Typography-26964114.js');
16
14
 
17
15
 
18
16
 
@@ -1,29 +1,26 @@
1
1
  'use strict';
2
2
 
3
- var tslib_es6 = require('./tslib.es6-5b8768b7.js');
3
+ var tslib_es6 = require('./tslib.es6-cb76b215.js');
4
4
  var React = require('react');
5
- var uuid = require('uuid');
6
5
  var classnames = require('classnames');
7
6
  var reactHookForm = require('react-hook-form');
8
- var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
9
- var Icon = require('./Icon-405a216c.js');
10
- var Text = require('./Text-4a2bc89f.js');
7
+ var Icon = require('./Icon-e0b68533.js');
8
+ var Text = require('./Text-3644f58e.js');
11
9
 
12
10
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
11
 
14
12
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
13
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
16
14
 
17
- var css_248z = ".d-2MyyzKGN0- {\n display: inline-block;\n}\n\n.OFHQaLxY8zI- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: pointer;\n}\n\n.HRrf3AZlpHc- {\n cursor: not-allowed;\n}\n\n.kMH5B1jwh-Y- {\n position: relative;\n}\n\n.rup0RBe4DNU- {\n /* Hide checkbox on UI but not screen readers and still allow focus state */\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0 0 0 0);\n -webkit-clip-path: inset(100%);\n clip-path: inset(100%);\n white-space: nowrap;\n}\n\n.lOQVnJA7zPM- {\n display: -ms-flexbox;\n display: flex;\n width: calc(16px * 1);\n width: var(--space-base);\n height: calc(16px * 1);\n height: var(--space-base);\n box-sizing: border-box;\n border: calc(16px / 8) solid rgb(125, 176, 14);\n border: var(--border-thick) solid var(--color-interactive);\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n transition: all 200ms;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.HRrf3AZlpHc- .lOQVnJA7zPM- {\n border-color: rgb(225, 225, 225);\n border-color: var(--color-disabled--secondary);\n}\n\n.HRrf3AZlpHc- p {\n color: rgb(181, 181, 181);\n color: var(--color-disabled);\n}\n\n.HRrf3AZlpHc- .lOQVnJA7zPM- > * {\n opacity: 0;\n}\n\n.rup0RBe4DNU-.Njn2CQDXwVA- + .lOQVnJA7zPM-,\n.rup0RBe4DNU-:checked + .lOQVnJA7zPM- {\n border-color: rgb(125, 176, 14);\n border-color: var(--color-interactive);\n background-color: rgb(125, 176, 14);\n background-color: var(--color-interactive);\n}\n\n.rup0RBe4DNU-:focus + .lOQVnJA7zPM- {\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.HRrf3AZlpHc- .rup0RBe4DNU-.Njn2CQDXwVA- + .lOQVnJA7zPM-,\n.HRrf3AZlpHc- .rup0RBe4DNU-:checked + .lOQVnJA7zPM- {\n border-color: rgb(225, 225, 225);\n border-color: var(--color-disabled--secondary);\n background-color: rgb(225, 225, 225);\n background-color: var(--color-disabled--secondary);\n}\n\n.HRrf3AZlpHc- .rup0RBe4DNU-.Njn2CQDXwVA- + .lOQVnJA7zPM- > *,\n.HRrf3AZlpHc- .rup0RBe4DNU-:checked + .lOQVnJA7zPM- > * {\n opacity: 1;\n}\n\n.eHENKCs5umc- {\n margin: 0 calc(16px / 2);\n margin: 0 var(--space-small);\n}\n\n.fSEH0cAO9cI- {\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n padding-left: calc(16px * 1.5);\n padding-left: var(--space-large);\n}\n";
18
15
  var styles = {"checkbox":"d-2MyyzKGN0-","wrapper":"OFHQaLxY8zI-","disabled":"HRrf3AZlpHc-","checkHolder":"kMH5B1jwh-Y-","input":"rup0RBe4DNU-","checkBox":"lOQVnJA7zPM-","indeterminate":"Njn2CQDXwVA-","label":"eHENKCs5umc-","description":"fSEH0cAO9cI-"};
19
- styleInject_es.styleInject(css_248z);
20
16
 
21
17
  function Checkbox({ checked, defaultChecked, disabled, label, name, value, indeterminate = false, description, children, onChange, onFocus, }) {
18
+ const id = React.useId();
22
19
  const { control, setValue, watch } = reactHookForm.useFormContext() != undefined
23
20
  ? reactHookForm.useFormContext()
24
21
  : // If there isn't a Form Context being provided, get a form for this field.
25
22
  reactHookForm.useForm({ mode: "onTouched" });
26
- const [identifier] = React.useState(uuid.v1());
23
+ const [identifier] = React.useState(id);
27
24
  /**
28
25
  * Generate a name if one is not supplied, this is the name
29
26
  * that will be used for react-hook-form and not neccessarily
@@ -2,20 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Chip = require('../Chip-168acf3e.js');
6
- var tslib_es6 = require('../tslib.es6-5b8768b7.js');
5
+ var Chip = require('../Chip-eafb9c3b.js');
6
+ var tslib_es6 = require('../tslib.es6-cb76b215.js');
7
7
  var React = require('react');
8
- var Icon = require('../Icon-405a216c.js');
8
+ var Icon = require('../Icon-e0b68533.js');
9
9
  require('classnames');
10
10
  require('@jobber/hooks/useInView');
11
- require('../style-inject.es-9d2f5f4e.js');
12
- require('../Avatar-76a799fa.js');
11
+ require('../Avatar-8955a61e.js');
13
12
  require('color');
14
- require('../Typography-973b122e.js');
15
- require('../Tooltip-6b12f1c2.js');
13
+ require('../Typography-26964114.js');
14
+ require('../Tooltip-e4cfb9e0.js');
16
15
  require('react-dom');
17
16
  require('framer-motion');
17
+ require('@jobber/hooks/useSafeLayoutEffect');
18
18
  require('react-popper');
19
+ require('../ClientOnly-0bc210d3.js');
19
20
  require('@jobber/design');
20
21
 
21
22
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -0,0 +1,86 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var classnames = require('classnames');
5
+ var useInView = require('@jobber/hooks/useInView');
6
+ var Avatar = require('./Avatar-8955a61e.js');
7
+ var Icon = require('./Icon-e0b68533.js');
8
+ var Typography = require('./Typography-26964114.js');
9
+ var Tooltip = require('./Tooltip-e4cfb9e0.js');
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
+
16
+ var styles = {"chip":"af7U8MvcbHE-","prefix":"e905AYK4SCc-","suffix":"ySADfZ0FckM-","empty":"usdkmQ9Sxbk-","chipBar":"dg1-Izy1eQA-","selected":"-lz0EYLTDgg-","base":"wSI5L-5rODg-","invalid":"SmUxkzpIC84-","subtle":"Mux23dmZSuw-","disabled":"MbRItb9vKhc-","chipContent":"tJhURjR2Vec-","truncateGradient":"G3QXY0rNcK0-","chipLabelRef":"MUKEW6c2nNA-"};
17
+
18
+ /**
19
+ * Returns the first React Child that receives `true` from isCorrectComponent
20
+ * @param children React Children
21
+ * @param isCorrectComponent a function that accepts a JSX Element and returns a boolean.
22
+ * @returns The first child component that returns true on isCorrectComponent
23
+ */
24
+ function useChildComponent(children, isCorrectComponent) {
25
+ return React.useMemo(() => {
26
+ return React__default["default"].Children.toArray(children).find(d => React.isValidElement(d) && isCorrectComponent(d));
27
+ }, [children]);
28
+ }
29
+
30
+ function ChipPrefix({ children }) {
31
+ const singleChild = useChildComponent(children, d => d.type === Avatar.Avatar || d.type === Icon.Icon);
32
+ return (React__default["default"].createElement("span", { className: classnames__default["default"](styles.prefix, !singleChild && styles.empty) }, singleChild));
33
+ }
34
+
35
+ function ChipSuffix({ children, className }) {
36
+ var _a;
37
+ let singleChild = useChildComponent(children, d => d.type === Icon.Icon);
38
+ if (!allowedSuffixIcons.includes((_a = singleChild === null || singleChild === void 0 ? void 0 : singleChild.props) === null || _a === void 0 ? void 0 : _a.name)) {
39
+ singleChild = undefined;
40
+ }
41
+ return (React__default["default"].createElement("span", { className: classnames__default["default"](styles.suffix, className, !singleChild && styles.empty) }, singleChild));
42
+ }
43
+ const allowedSuffixIcons = ["cross", "add", "checkmark", "arrowDown"];
44
+
45
+ const Chip = ({ ariaLabel, disabled, heading, invalid, label, value, onClick, onKeyDown, children, role = "button", tabIndex = 0, variation = "base", }) => {
46
+ const classes = classnames__default["default"](styles.chip, {
47
+ [styles.invalid]: invalid,
48
+ [styles.base]: variation === "base",
49
+ [styles.subtle]: variation === "subtle",
50
+ [styles.disabled]: disabled,
51
+ });
52
+ const prefix = useChildComponent(children, d => d.type === Chip.Prefix);
53
+ const suffix = useChildComponent(children, d => d.type === Chip.Suffix);
54
+ const [labelRef, labelFullyVisible] = useInView.useInView();
55
+ const [headingRef, headingFullyVisible] = useInView.useInView();
56
+ const tooltipMessage = getTooltipMessage(labelFullyVisible, headingFullyVisible, label, heading);
57
+ return (React__default["default"].createElement(Tooltip.Tooltip, { message: tooltipMessage },
58
+ React__default["default"].createElement("button", { className: classes, onClick: (ev) => onClick && onClick(value, ev), tabIndex: tabIndex, onKeyDown: onKeyDown, "aria-label": ariaLabel || label, disabled: disabled, role: role, type: "button" },
59
+ prefix,
60
+ React__default["default"].createElement("div", { className: styles.chipContent },
61
+ heading && (React__default["default"].createElement(React__default["default"].Fragment, null,
62
+ React__default["default"].createElement(Typography.Typography, { size: "base", fontWeight: "medium" },
63
+ heading,
64
+ React__default["default"].createElement("span", { ref: headingRef, className: styles.chipLabelRef })),
65
+ label && React__default["default"].createElement("span", { className: styles.chipBar }))),
66
+ React__default["default"].createElement(Typography.Typography, { size: "base" },
67
+ label,
68
+ React__default["default"].createElement("span", { ref: labelRef, className: styles.chipLabelRef })),
69
+ !labelFullyVisible && (React__default["default"].createElement("div", { className: styles.truncateGradient, "data-testid": "ATL-Chip-Truncation-Gradient" }))),
70
+ suffix)));
71
+ };
72
+ function getTooltipMessage(labelFullyVisible, headingFullyVisible, label, heading) {
73
+ let message = "";
74
+ if (heading && !headingFullyVisible) {
75
+ message = `${heading} | ${label}`;
76
+ }
77
+ else if (!labelFullyVisible) {
78
+ message = label;
79
+ }
80
+ return message;
81
+ }
82
+ Chip.Prefix = ChipPrefix;
83
+ Chip.Suffix = ChipSuffix;
84
+
85
+ exports.Chip = Chip;
86
+ exports.styles = styles;