@jobber/components 4.67.2-JOB-84126.13 → 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.
- package/dist/AnimatedSwitcher/index.js +2 -2
- package/dist/{AnimatedSwitcher-d1e1ddcf.js → AnimatedSwitcher-2eab103a.js} +1 -1
- package/dist/Autocomplete/index.js +0 -0
- package/dist/Avatar/index.js +2 -3
- package/dist/{Avatar-76a799fa.js → Avatar-8955a61e.js} +1 -4
- package/dist/Banner/index.js +4 -9
- package/dist/Button/index.js +3 -4
- package/dist/Button-ee40b8fd.js +54 -0
- package/dist/ButtonDismiss/index.js +4 -5
- package/dist/{ButtonDismiss-2b98d075.js → ButtonDismiss-f45a7786.js} +1 -1
- package/dist/Card/index.js +7 -8
- package/dist/Card-6fe158ad.js +88 -0
- package/dist/Checkbox/index.js +5 -7
- package/dist/{Checkbox-ad7ec2e7.js → Checkbox-f92901ad.js} +5 -8
- package/dist/Chip/index.js +8 -7
- package/dist/Chip-eafb9c3b.js +86 -0
- package/dist/Chips/index.js +14 -18
- package/dist/ClientOnly-0bc210d3.js +23 -0
- package/dist/Combobox/index.js +11 -10
- package/dist/{Combobox-b6053eb7.js → Combobox-9112d247.js} +10 -23
- package/dist/ConfirmationModal/index.js +14 -13
- package/dist/{ConfirmationModal-0f85d96c.js → ConfirmationModal-298393b6.js} +3 -3
- package/dist/Content/index.js +1 -2
- package/dist/{Content-2ca1ffe1.js → Content-62118acd.js} +0 -5
- package/dist/DataDump/index.js +9 -10
- package/dist/DataList/components/DataListHeader/DataListHeaderCheckbox.d.ts +1 -2
- package/dist/DataList/components/DataListHeaderTile/DataListSortingArrows.d.ts +1 -1
- package/dist/DataList/hooks/useMediaQuery.d.ts +3 -1
- package/dist/DataList/index.js +0 -0
- package/dist/DataTable/DataTable.d.ts +1 -1
- package/dist/DataTable/index.js +0 -0
- package/dist/DatePicker/index.js +4 -5
- package/dist/DatePicker-189137c2.js +131 -0
- package/dist/DescriptionList/index.js +1 -4
- package/dist/Disclosure/index.js +2 -5
- package/dist/Divider/index.js +0 -3
- package/dist/Drawer/index.js +5 -10
- package/dist/Emphasis/index.js +2 -3
- package/dist/{Emphasis-b2d1b3aa.js → Emphasis-bf448c54.js} +1 -1
- package/dist/FeatureSwitch/index.js +11 -13
- package/dist/Flex/index.js +6 -4
- package/dist/Form/index.js +1 -1
- package/dist/FormField/index.js +0 -0
- package/dist/FormField-2e1d797a.js +252 -0
- package/dist/FormatDate/index.js +1 -1
- package/dist/FormatEmail/index.js +0 -3
- package/dist/FormatFile/index.js +17 -17
- package/dist/FormatFile-88fbd5dc.js +116 -0
- package/dist/FormatTime/FormatTime.d.ts +1 -2
- package/dist/FormatTime/index.js +11 -6
- package/dist/Gallery/index.js +18 -20
- package/dist/Glimmer/index.js +3 -4
- package/dist/Glimmer-5a4272bb.js +68 -0
- package/dist/Grid/index.js +1 -8
- package/dist/Heading/index.js +2 -3
- package/dist/{Heading-0f4ecb0c.js → Heading-2923b3c4.js} +1 -1
- package/dist/Icon/index.js +1 -1
- package/dist/InlineLabel/index.js +2 -3
- package/dist/InlineLabel-e52b42ee.js +25 -0
- package/dist/InputAvatar/index.js +8 -12
- package/dist/InputDate/index.js +0 -0
- package/dist/InputEmail/index.js +0 -0
- package/dist/InputFile/InputFile.d.ts +5 -1
- package/dist/InputFile/index.js +6 -8
- package/dist/{InputFile-540c1657.js → InputFile-e6c5c9be.js} +8 -11
- package/dist/InputGroup/index.js +1 -2
- package/dist/InputGroup-669bff5c.js +30 -0
- package/dist/InputNumber/index.js +0 -0
- package/dist/{InputNumber-ef949161.js → InputNumber-8dfdeef5.js} +1 -1
- package/dist/InputPassword/index.js +0 -0
- package/dist/InputPhoneNumber/index.js +0 -0
- package/dist/InputText/index.js +0 -0
- package/dist/{InputText-9e159467.js → InputText-61149f85.js} +3 -2
- package/dist/InputTime/InputTime.d.ts +3 -1
- package/dist/InputTime/InputTime.disabledTest.d.ts +1 -0
- package/dist/InputTime/InternalInputTime.d.ts +3 -0
- package/dist/InputTime/SupportsTimePolyfill.d.ts +2 -0
- package/dist/InputTime/TimeInputPolyfill.client.d.ts +2 -0
- package/dist/InputTime/index.js +0 -0
- package/dist/InputValidation/index.js +4 -5
- package/dist/{InputValidation-179f0926.js → InputValidation-42a70050.js} +2 -5
- package/dist/LightBox/ClientOnly.d.ts +6 -0
- package/dist/LightBox/LightBox.d.ts +2 -2
- package/dist/LightBox/index.js +6 -6
- package/dist/{LightBox-3f4dbc33.js → LightBox-282586ce.js} +5 -6
- package/dist/List/index.js +9 -15
- package/dist/Markdown/Markdown.d.ts +1 -1
- package/dist/Markdown/index.js +8 -8
- package/dist/Markdown-4382f0a4.js +90 -0
- package/dist/Menu/Menu.d.ts +4 -4
- package/dist/Menu/index.js +5 -6
- package/dist/{Menu-d7ea093c.js → Menu-df3c9332.js} +7 -10
- package/dist/Modal/Modal.d.ts +2 -2
- package/dist/Modal/index.js +7 -7
- package/dist/{Modal-70daa0e2.js → Modal-bec0202d.js} +6 -9
- package/dist/MultiSelect/index.js +5 -11
- package/dist/{Option-290b5594.js → Option-cdcc4d56.js} +1 -1
- package/dist/Page/index.js +12 -14
- package/dist/Popover/Popover.d.ts +2 -2
- package/dist/Popover/index.js +8 -8
- package/dist/ProgressBar/index.js +1 -2
- package/dist/ProgressBar-127f34ac.js +38 -0
- package/dist/RadioGroup/index.js +3 -5
- package/dist/RadioGroup-b775a2fc.js +44 -0
- package/dist/RecurringSelect/components/DayOfMonthSelect.d.ts +2 -2
- package/dist/RecurringSelect/components/WeeklySelect.d.ts +2 -2
- package/dist/RecurringSelect/index.js +0 -0
- package/dist/Select/index.js +0 -0
- package/dist/Spinner/index.js +1 -2
- package/dist/Spinner-db214d76.js +21 -0
- package/dist/StatusLabel/index.js +2 -5
- package/dist/SupportsTimePolyfill-c6769c3b.js +21 -0
- package/dist/Switch/index.js +2 -3
- package/dist/Switch-fc9c9120.js +53 -0
- package/dist/Table/index.js +2 -7
- package/dist/Tabs/index.js +1 -4
- package/dist/Text/index.js +2 -3
- package/dist/{Text-4a2bc89f.js → Text-3644f58e.js} +1 -1
- package/dist/TimeInputPolyfill.client-348881a8.js +687 -0
- package/dist/Toast/index.js +3 -6
- package/dist/Tooltip/index.js +3 -2
- package/dist/{Tooltip-6b12f1c2.js → Tooltip-e4cfb9e0.js} +14 -12
- package/dist/Typography/index.js +1 -2
- package/dist/Typography-26964114.js +43 -0
- package/dist/styles.css +8107 -0
- package/package.json +4 -4
- package/rollup.config.js +3 -1
- package/dist/Button-163a0641.js +0 -57
- package/dist/Card-3178033c.js +0 -93
- package/dist/Chip-168acf3e.js +0 -89
- package/dist/DatePicker-c18f1739.js +0 -134
- package/dist/FormField-181efe29.js +0 -0
- package/dist/FormatFile-3b650d02.js +0 -121
- package/dist/Glimmer-cfa92a88.js +0 -77
- package/dist/InlineLabel-9a517c19.js +0 -28
- package/dist/InputGroup-8d4fd4eb.js +0 -33
- package/dist/Markdown-96070121.js +0 -62
- package/dist/ProgressBar-b68edc8f.js +0 -43
- package/dist/RadioGroup-ebaa4f87.js +0 -47
- package/dist/Spinner-9d8fc7ff.js +0 -24
- package/dist/Switch-b85272bf.js +0 -56
- package/dist/Typography-973b122e.js +0 -62
- package/dist/style-inject.es-9d2f5f4e.js +0 -30
- /package/dist/{FormatDate-70ea5b43.js → FormatDate-3fc882ac.js} +0 -0
- /package/dist/{Icon-405a216c.js → Icon-e0b68533.js} +0 -0
- /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-
|
|
5
|
+
var AnimatedSwitcher = require('../AnimatedSwitcher-2eab103a.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('framer-motion');
|
|
8
|
-
require('../Icon-
|
|
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-
|
|
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
|
|
|
Binary file
|
package/dist/Avatar/index.js
CHANGED
|
@@ -2,12 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Avatar = require('../Avatar-
|
|
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-
|
|
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-
|
|
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) {
|
package/dist/Banner/index.js
CHANGED
|
@@ -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
|
|
9
|
-
var
|
|
10
|
-
var
|
|
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-
|
|
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" });
|
package/dist/Button/index.js
CHANGED
|
@@ -2,14 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Button = require('../Button-
|
|
5
|
+
var Button = require('../Button-ee40b8fd.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('classnames');
|
|
8
8
|
require('react-router-dom');
|
|
9
|
-
require('../
|
|
10
|
-
require('../Icon-405a216c.js');
|
|
9
|
+
require('../Icon-e0b68533.js');
|
|
11
10
|
require('@jobber/design');
|
|
12
|
-
require('../Typography-
|
|
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-
|
|
5
|
+
var ButtonDismiss = require('../ButtonDismiss-f45a7786.js');
|
|
6
6
|
require('react');
|
|
7
|
-
require('../Button-
|
|
7
|
+
require('../Button-ee40b8fd.js');
|
|
8
8
|
require('classnames');
|
|
9
9
|
require('react-router-dom');
|
|
10
|
-
require('../
|
|
11
|
-
require('../Icon-405a216c.js');
|
|
10
|
+
require('../Icon-e0b68533.js');
|
|
12
11
|
require('@jobber/design');
|
|
13
|
-
require('../Typography-
|
|
12
|
+
require('../Typography-26964114.js');
|
|
14
13
|
|
|
15
14
|
|
|
16
15
|
|
package/dist/Card/index.js
CHANGED
|
@@ -2,21 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Card = require('../Card-
|
|
5
|
+
var Card = require('../Card-6fe158ad.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('classnames');
|
|
8
|
-
require('../
|
|
9
|
-
require('../
|
|
10
|
-
require('../
|
|
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-
|
|
12
|
+
require('../Icon-e0b68533.js');
|
|
14
13
|
require('@jobber/design');
|
|
15
|
-
require('../Menu-
|
|
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;
|
package/dist/Checkbox/index.js
CHANGED
|
@@ -2,17 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Checkbox = require('../Checkbox-
|
|
6
|
-
require('../tslib.es6-
|
|
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('../
|
|
12
|
-
require('../Icon-405a216c.js');
|
|
10
|
+
require('../Icon-e0b68533.js');
|
|
13
11
|
require('@jobber/design');
|
|
14
|
-
require('../Text-
|
|
15
|
-
require('../Typography-
|
|
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-
|
|
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
|
|
9
|
-
var
|
|
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(
|
|
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
|
package/dist/Chip/index.js
CHANGED
|
@@ -2,20 +2,21 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Chip = require('../Chip-
|
|
6
|
-
var tslib_es6 = require('../tslib.es6-
|
|
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-
|
|
8
|
+
var Icon = require('../Icon-e0b68533.js');
|
|
9
9
|
require('classnames');
|
|
10
10
|
require('@jobber/hooks/useInView');
|
|
11
|
-
require('../
|
|
12
|
-
require('../Avatar-76a799fa.js');
|
|
11
|
+
require('../Avatar-8955a61e.js');
|
|
13
12
|
require('color');
|
|
14
|
-
require('../Typography-
|
|
15
|
-
require('../Tooltip-
|
|
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;
|
package/dist/Chips/index.js
CHANGED
|
@@ -4,24 +4,24 @@ 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
|
var useAssert = require('@jobber/hooks/useAssert');
|
|
9
|
-
var Icon = require('../Icon-
|
|
10
|
-
var Avatar = require('../Avatar-
|
|
11
|
-
var Typography = require('../Typography-
|
|
12
|
-
var Tooltip = require('../Tooltip-
|
|
13
|
-
var uuid = require('uuid');
|
|
8
|
+
var Icon = require('../Icon-e0b68533.js');
|
|
9
|
+
var Avatar = require('../Avatar-8955a61e.js');
|
|
10
|
+
var Typography = require('../Typography-26964114.js');
|
|
11
|
+
var Tooltip = require('../Tooltip-e4cfb9e0.js');
|
|
14
12
|
var sortBy = require('lodash/sortBy');
|
|
15
13
|
var useLiveAnnounce = require('@jobber/hooks/useLiveAnnounce');
|
|
16
14
|
var debounce = require('lodash/debounce');
|
|
17
|
-
var reactPopper = require('react-popper');
|
|
18
|
-
var Text = require('../Text-4a2bc89f.js');
|
|
19
|
-
var Button = require('../Button-163a0641.js');
|
|
20
|
-
var Spinner = require('../Spinner-9d8fc7ff.js');
|
|
21
15
|
require('@jobber/design');
|
|
16
|
+
var reactPopper = require('react-popper');
|
|
17
|
+
var Text = require('../Text-3644f58e.js');
|
|
18
|
+
var Button = require('../Button-ee40b8fd.js');
|
|
19
|
+
var Spinner = require('../Spinner-db214d76.js');
|
|
22
20
|
require('color');
|
|
23
21
|
require('react-dom');
|
|
24
22
|
require('framer-motion');
|
|
23
|
+
require('@jobber/hooks/useSafeLayoutEffect');
|
|
24
|
+
require('../ClientOnly-0bc210d3.js');
|
|
25
25
|
require('react-router-dom');
|
|
26
26
|
|
|
27
27
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -31,9 +31,7 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
|
31
31
|
var sortBy__default = /*#__PURE__*/_interopDefaultLegacy(sortBy);
|
|
32
32
|
var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
33
33
|
|
|
34
|
-
var css_248z$1 = "/**\n * Used in the wrapping chips component:\n * - InternalChipSingleSelect\n * - InternalChipMultiSelect\n */\n\n.zn6onyiQVmA- {\n display: -ms-flexbox;\n display: flex;\n gap: calc(16px / 2);\n gap: var(--space-small);\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.PEnZzMEgbhU- {\n display: inline-grid;\n position: relative;\n max-width: 100%;\n box-sizing: border-box;\n padding: calc(16px / 2);\n padding: var(--space-small);\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 color: rgb(77, 105, 116);\n color: var(--color-text--secondary);\n text-align: left;\n vertical-align: middle;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n transition: 200ms ease-in-out;\n transition: var(--timing-base) ease-in-out;\n transition-property: background-color, box-shadow, color;\n grid-template-columns: -webkit-max-content;\n grid-template-columns: max-content;\n -ms-flex-align: center;\n align-items: center;\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n.dtysUhwYdG4-,\n.xGaMCAYsdwA- {\n padding: calc((16px / 4) + (16px / 8)) calc(16px / 2);\n padding: calc(calc(16px / 4) + calc(16px / 8)) calc(16px / 2);\n padding: calc(var(--space-smaller) + var(--space-smallest)) var(--space-small);\n}\n\n.dtysUhwYdG4- {\n grid-template-columns: -webkit-min-content 1fr;\n grid-template-columns: min-content 1fr;\n}\n\n.xGaMCAYsdwA- {\n grid-template-columns: 1fr -webkit-min-content;\n grid-template-columns: 1fr min-content;\n}\n\n.dtysUhwYdG4-.xGaMCAYsdwA- {\n grid-template-columns: -webkit-min-content 1fr -webkit-min-content;\n grid-template-columns: min-content 1fr min-content;\n}\n\n.SNT7gGV-h-o-,\n.W4D98cvEth4- ~ .PEnZzMEgbhU- {\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 cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n}\n\n/**\n * Interaction\n */\n\n.PEnZzMEgbhU-:focus,\n.W4D98cvEth4-:focus ~ .PEnZzMEgbhU- {\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.SNT7gGV-h-o-:hover,\n.W4D98cvEth4- ~ .PEnZzMEgbhU-:not(._0hEzaTXK9M0-):hover,\n.W4D98cvEth4-:focus ~ .PEnZzMEgbhU-:not(._0hEzaTXK9M0-) {\n background-color: rgb(244, 246, 250);\n background-color: var(--color-surface--hover);\n}\n\n/**\n * States\n */\n\n.PEnZzMEgbhU-._0hEzaTXK9M0- {\n border-color: rgb(1, 41, 57);\n border-color: var(--color-surface--reverse);\n color: rgba(255, 255, 255, 1);\n color: var(--color-text--reverse);\n background-color: rgb(1, 41, 57);\n background-color: var(--color-surface--reverse);\n}\n\n.PEnZzMEgbhU-.JApS2787BU8- {\n border-color: rgb(128, 25, 0);\n border-color: var(--color-critical--onSurface);\n color: rgb(128, 25, 0);\n color: var(--color-critical--onSurface);\n background-color: rgb(255, 226, 219);\n background-color: var(--color-critical--surface);\n}\n\n.PEnZzMEgbhU-.Kg0c8WVgMpg- {\n border-color: rgb(225, 225, 225);\n border-color: var(--color-disabled--secondary);\n color: rgb(181, 181, 181);\n color: var(--color-disabled);\n background-color: rgb(225, 225, 225);\n background-color: var(--color-disabled--secondary);\n}\n\n._0hEzaTXK9M0-.Kg0c8WVgMpg- {\n border-color: rgb(181, 181, 181);\n border-color: var(--color-disabled);\n color: rgba(255, 255, 255, 1);\n color: var(--color-white);\n background-color: rgb(181, 181, 181);\n background-color: var(--color-disabled);\n}\n\n.JApS2787BU8-.Kg0c8WVgMpg- {\n border-color: rgb(201, 66, 33);\n border-color: var(--color-critical);\n}\n\n/**\n * Input checkbox/radio\n *\n * Hide checkbox on UI but not screen readers and still allow focus state\n */\n\n.W4D98cvEth4- {\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/**\n * Button\n */\n\n._0-ZWexS4Gfg- {\n display: -ms-flexbox;\n display: flex;\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n cursor: pointer;\n transition: background-color 200ms ease;\n}\n\n._0-ZWexS4Gfg-:hover,\n._0-ZWexS4Gfg-:focus {\n background-color: rgb(244, 246, 250);\n background-color: var(--color-surface--hover);\n}\n\n._0-ZWexS4Gfg-:focus,\n.SNT7gGV-h-o- ._0-ZWexS4Gfg-:hover {\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/**\n * Override icon default colors.\n *\n * NOTE: This is a workaround since some icons have default colors that we don't\n * want to override until the component color prop overrides it.\n * DO NOT COPY!\n */\n\n.DQPnZP4UZpw- > svg {\n fill: rgba(101, 120, 132, 1);\n fill: var(--color-interactive--subtle);\n}\n\n.DQPnZP4UZpw- {\n display: -ms-flexbox;\n display: flex;\n}\n";
|
|
35
34
|
var styles$1 = {"wrapper":"zn6onyiQVmA-","chip":"PEnZzMEgbhU-","hasPrefix":"dtysUhwYdG4-","hasSuffix":"xGaMCAYsdwA-","clickable":"SNT7gGV-h-o-","input":"W4D98cvEth4-","active":"_0hEzaTXK9M0-","invalid":"JApS2787BU8-","disabled":"Kg0c8WVgMpg-","button":"_0-ZWexS4Gfg-","icon":"DQPnZP4UZpw-"};
|
|
36
|
-
styleInject_es.styleInject(css_248z$1);
|
|
37
35
|
|
|
38
36
|
function InternalChipButton({ icon, invalid, disabled, label, onClick, }) {
|
|
39
37
|
const buttonRef = React.useRef();
|
|
@@ -94,7 +92,7 @@ function InternalChipAffix({ affix, active, invalid, disabled, }) {
|
|
|
94
92
|
const isAvatar = (affix === null || affix === void 0 ? void 0 : affix.type) === Avatar.Avatar || false;
|
|
95
93
|
const isIcon = (affix === null || affix === void 0 ? void 0 : affix.type) === Icon.Icon || false;
|
|
96
94
|
const isChipButton = (affix === null || affix === void 0 ? void 0 : affix.type) === InternalChipButton || false;
|
|
97
|
-
useAssert.
|
|
95
|
+
useAssert.useSafeAssert(!!affix && !(isAvatar || isIcon || isChipButton), `Prefix prop only accepts "<Avatar />" or "<Icon />" component. You have "${affix === null || affix === void 0 ? void 0 : affix.type}".`);
|
|
98
96
|
}
|
|
99
97
|
}
|
|
100
98
|
|
|
@@ -129,7 +127,7 @@ function ChipDismissible({ label, disabled, invalid, prefix, onClick, onRequestR
|
|
|
129
127
|
return (React__default["default"].createElement(InternalChip, { label: label, disabled: disabled, invalid: invalid, prefix: prefix, onClick: onClick, suffix: React__default["default"].createElement(InternalChipButton, { icon: "remove", label: label, invalid: invalid, disabled: disabled, onClick: onRequestRemove }) }));
|
|
130
128
|
}
|
|
131
129
|
|
|
132
|
-
function InternalChipSingleSelect({ children, selected, name =
|
|
130
|
+
function InternalChipSingleSelect({ children, selected, name = React.useId(), onChange, onClick, }) {
|
|
133
131
|
return (React__default["default"].createElement("div", { className: styles$1.wrapper, "data-testid": "singleselect-chips" }, React__default["default"].Children.map(children, child => {
|
|
134
132
|
const isSelected = child.props.value === selected;
|
|
135
133
|
return (React__default["default"].createElement("label", null,
|
|
@@ -204,9 +202,7 @@ function InternalChipMultiSelect({ children, selected, onChange, onClick, }) {
|
|
|
204
202
|
}
|
|
205
203
|
}
|
|
206
204
|
|
|
207
|
-
var css_248z = ".sCNIjluCskc- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n box-sizing: border-box;\n border: calc(16px / 16) solid transparent;\n border: var(--border-base) solid transparent;\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n transition: all 200ms;\n transition: all var(--timing-base);\n gap: calc(16px / 2);\n gap: var(--space-small);\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.MFUlz1WQLdk- {\n -ms-flex: 1;\n flex: 1;\n min-width: 120px;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n border-radius: 0;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n font-size: calc(calc(16px * 1) * 0.875);\n font-size: var(--typography--fontSize-base);\n line-height: 1.25;\n line-height: var(--typography--lineHeight-base);\n background: transparent;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.MFUlz1WQLdk-:focus {\n outline: none;\n}\n\n.V9eYJdjPAeY- {\n position: relative;\n z-index: 6;\n z-index: var(--elevation-menu);\n width: 100%;\n}\n\n.LdytkOeCU9c- {\n max-height: 320px;\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 / 2) 0;\n padding: var(--space-small) 0;\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n overflow-y: scroll;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.y7Cz2u8BuNE-,\n._-7bmao8Q9As- {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n -ms-flex-align: center;\n align-items: center;\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n.y7Cz2u8BuNE-: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}\n\n.y7Cz2u8BuNE-:focus,\n.iCwWdcmtInc- {\n outline: none;\n background-color: rgb(244, 246, 250);\n background-color: var(--color-surface--hover);\n}\n\n._-7bmao8Q9As- {\n -ms-flex-pack: center;\n justify-content: center;\n}\n";
|
|
208
205
|
var styles = {"wrapper":"sCNIjluCskc-","input":"MFUlz1WQLdk-","menu":"V9eYJdjPAeY-","menuList":"LdytkOeCU9c-","menuListOption":"y7Cz2u8BuNE-","loadingIndicator":"_-7bmao8Q9As-","activeOption":"iCwWdcmtInc-"};
|
|
209
|
-
styleInject_es.styleInject(css_248z);
|
|
210
206
|
|
|
211
207
|
function useInternalChipDismissible({ children, selected, onChange, onClick, onCustomAdd, }) {
|
|
212
208
|
const ref = React.useRef(null);
|
|
@@ -269,9 +265,9 @@ function useInternalChipDismissible({ children, selected, onChange, onClick, onC
|
|
|
269
265
|
availableChipOptions });
|
|
270
266
|
}
|
|
271
267
|
|
|
272
|
-
const menuId = uuid.v1();
|
|
273
268
|
// eslint-disable-next-line max-statements
|
|
274
269
|
function useInternalChipDismissibleInput({ options, isLoadingMore = false, onCustomOptionSelect, onOptionSelect, onSearch, }) {
|
|
270
|
+
const menuId = React.useId();
|
|
275
271
|
const [allOptions, setAllOptions] = React.useState([]);
|
|
276
272
|
const [searchValue, setSearchValue] = React.useState("");
|
|
277
273
|
const [menuOpen, setMenuOpen] = React.useState(false);
|
|
@@ -515,7 +511,7 @@ function Chips(props) {
|
|
|
515
511
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
516
512
|
function Chip(props) {
|
|
517
513
|
// Throw error when <Chip /> gets used outside of the <Chips />
|
|
518
|
-
useAssert.
|
|
514
|
+
useAssert.useSafeAssert(true, "`<Chip>` component can only be used inside `<Chips>`");
|
|
519
515
|
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
520
516
|
}
|
|
521
517
|
|