@jobber/components 4.67.2-JOB-84126.13 → 4.67.2-pre.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AnimatedSwitcher/index.js +2 -2
- package/dist/{AnimatedSwitcher-d1e1ddcf.js → AnimatedSwitcher-879d0d6f.js} +1 -1
- package/dist/Autocomplete/index.js +0 -0
- package/dist/Avatar/index.js +2 -3
- package/dist/{Avatar-76a799fa.js → Avatar-765d6e45.js} +1 -4
- package/dist/Banner/index.js +4 -9
- package/dist/Button/index.js +3 -4
- package/dist/Button-8bde6560.js +54 -0
- package/dist/ButtonDismiss/index.js +4 -5
- package/dist/{ButtonDismiss-2b98d075.js → ButtonDismiss-af17d76d.js} +1 -1
- package/dist/Card/index.js +7 -8
- package/dist/Card-9dfc98d3.js +88 -0
- package/dist/Checkbox/index.js +5 -7
- package/dist/{Checkbox-ad7ec2e7.js → Checkbox-2d7c43d9.js} +5 -8
- package/dist/Chip/index.js +8 -7
- package/dist/Chip-dca6c22b.js +86 -0
- package/dist/Chips/index.js +12 -16
- package/dist/ClientOnly-4f3e136d.js +23 -0
- package/dist/Combobox/index.js +11 -10
- package/dist/{Combobox-b6053eb7.js → Combobox-35a3ea22.js} +9 -22
- package/dist/ConfirmationModal/index.js +14 -13
- package/dist/{ConfirmationModal-0f85d96c.js → ConfirmationModal-f6c0afc7.js} +3 -3
- package/dist/Content/index.js +1 -2
- package/dist/{Content-2ca1ffe1.js → Content-80486307.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-9399cc69.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-7a2893bb.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-18eda132.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-317b158a.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-f5c31401.js +68 -0
- package/dist/Grid/index.js +0 -7
- package/dist/Heading/index.js +2 -3
- package/dist/{Heading-0f4ecb0c.js → Heading-f066883a.js} +1 -1
- package/dist/Icon/index.js +1 -1
- package/dist/InlineLabel/index.js +2 -3
- package/dist/InlineLabel-4c2fec47.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-5c44f0b4.js} +8 -11
- package/dist/InputGroup/index.js +1 -2
- package/dist/InputGroup-88bec8c9.js +30 -0
- package/dist/InputNumber/index.js +0 -0
- package/dist/{InputNumber-ef949161.js → InputNumber-ed655bae.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/useSafeLayoutEffect.d.ts +2 -0
- package/dist/{InputText-9e159467.js → InputText-c68964ff.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-fdc891af.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-d5aea313.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-10fc9d3e.js +90 -0
- package/dist/Menu/Menu.d.ts +4 -4
- package/dist/Menu/index.js +5 -6
- package/dist/{Menu-d7ea093c.js → Menu-7b7aa325.js} +7 -10
- package/dist/Modal/Modal.d.ts +2 -2
- package/dist/Modal/index.js +7 -7
- package/dist/{Modal-70daa0e2.js → Modal-357fd1df.js} +6 -9
- package/dist/MultiSelect/index.js +5 -11
- package/dist/{Option-290b5594.js → Option-c84f28a6.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-5c577dc0.js +38 -0
- package/dist/RadioGroup/index.js +3 -5
- package/dist/RadioGroup-9dded55d.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-cac356ee.js +21 -0
- package/dist/StatusLabel/index.js +2 -5
- package/dist/SupportsTimePolyfill-466a30f9.js +21 -0
- package/dist/Switch/index.js +2 -3
- package/dist/Switch-588c5e70.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-9f261dde.js} +1 -1
- package/dist/TimeInputPolyfill.client-1dfc8ab1.js +687 -0
- package/dist/Toast/index.js +3 -6
- package/dist/Tooltip/index.js +3 -2
- package/dist/{Tooltip-6b12f1c2.js → Tooltip-99440954.js} +14 -12
- package/dist/Typography/index.js +1 -2
- package/dist/Typography-75f58b60.js +43 -0
- package/dist/styles.css +8107 -0
- package/dist/useSafeLayoutEffect-b63708b1.js +16 -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-6fc94218.js} +0 -0
- /package/dist/{Icon-405a216c.js → Icon-361343e0.js} +0 -0
- /package/dist/{tslib.es6-5b8768b7.js → tslib.es6-a575af05.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-879d0d6f.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('framer-motion');
|
|
8
|
-
require('../Icon-
|
|
8
|
+
require('../Icon-361343e0.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-361343e0.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-765d6e45.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-361343e0.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-361343e0.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-361343e0.js');
|
|
9
|
+
var Text = require('../Text-9f261dde.js');
|
|
10
|
+
var Button = require('../Button-8bde6560.js');
|
|
12
11
|
require('@jobber/design');
|
|
13
|
-
require('../Typography-
|
|
12
|
+
require('../Typography-75f58b60.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-8bde6560.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-361343e0.js');
|
|
11
10
|
require('@jobber/design');
|
|
12
|
-
require('../Typography-
|
|
11
|
+
require('../Typography-75f58b60.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-361343e0.js');
|
|
7
|
+
var Typography = require('./Typography-75f58b60.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-af17d76d.js');
|
|
6
6
|
require('react');
|
|
7
|
-
require('../Button-
|
|
7
|
+
require('../Button-8bde6560.js');
|
|
8
8
|
require('classnames');
|
|
9
9
|
require('react-router-dom');
|
|
10
|
-
require('../
|
|
11
|
-
require('../Icon-405a216c.js');
|
|
10
|
+
require('../Icon-361343e0.js');
|
|
12
11
|
require('@jobber/design');
|
|
13
|
-
require('../Typography-
|
|
12
|
+
require('../Typography-75f58b60.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-9dfc98d3.js');
|
|
6
6
|
require('react');
|
|
7
7
|
require('classnames');
|
|
8
|
-
require('../
|
|
9
|
-
require('../
|
|
10
|
-
require('../
|
|
11
|
-
require('../Button-163a0641.js');
|
|
8
|
+
require('../Heading-f066883a.js');
|
|
9
|
+
require('../Typography-75f58b60.js');
|
|
10
|
+
require('../Button-8bde6560.js');
|
|
12
11
|
require('react-router-dom');
|
|
13
|
-
require('../Icon-
|
|
12
|
+
require('../Icon-361343e0.js');
|
|
14
13
|
require('@jobber/design');
|
|
15
|
-
require('../Menu-
|
|
16
|
-
require('uuid');
|
|
14
|
+
require('../Menu-7b7aa325.js');
|
|
17
15
|
require('framer-motion');
|
|
18
16
|
require('@jobber/hooks/useOnKeyDown');
|
|
19
17
|
require('@jobber/hooks/useRefocusOnActivator');
|
|
18
|
+
require('../useSafeLayoutEffect-b63708b1.js');
|
|
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-f066883a.js');
|
|
6
|
+
var Button = require('./Button-8bde6560.js');
|
|
7
|
+
var Menu = require('./Menu-7b7aa325.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-2d7c43d9.js');
|
|
6
|
+
require('../tslib.es6-a575af05.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-361343e0.js');
|
|
13
11
|
require('@jobber/design');
|
|
14
|
-
require('../Text-
|
|
15
|
-
require('../Typography-
|
|
12
|
+
require('../Text-9f261dde.js');
|
|
13
|
+
require('../Typography-75f58b60.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-a575af05.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-361343e0.js');
|
|
8
|
+
var Text = require('./Text-9f261dde.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-dca6c22b.js');
|
|
6
|
+
var tslib_es6 = require('../tslib.es6-a575af05.js');
|
|
7
7
|
var React = require('react');
|
|
8
|
-
var Icon = require('../Icon-
|
|
8
|
+
var Icon = require('../Icon-361343e0.js');
|
|
9
9
|
require('classnames');
|
|
10
10
|
require('@jobber/hooks/useInView');
|
|
11
|
-
require('../
|
|
12
|
-
require('../Avatar-76a799fa.js');
|
|
11
|
+
require('../Avatar-765d6e45.js');
|
|
13
12
|
require('color');
|
|
14
|
-
require('../Typography-
|
|
15
|
-
require('../Tooltip-
|
|
13
|
+
require('../Typography-75f58b60.js');
|
|
14
|
+
require('../Tooltip-99440954.js');
|
|
16
15
|
require('react-dom');
|
|
17
16
|
require('framer-motion');
|
|
18
17
|
require('react-popper');
|
|
18
|
+
require('../ClientOnly-4f3e136d.js');
|
|
19
|
+
require('../useSafeLayoutEffect-b63708b1.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-765d6e45.js');
|
|
7
|
+
var Icon = require('./Icon-361343e0.js');
|
|
8
|
+
var Typography = require('./Typography-75f58b60.js');
|
|
9
|
+
var Tooltip = require('./Tooltip-99440954.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-361343e0.js');
|
|
9
|
+
var Avatar = require('../Avatar-765d6e45.js');
|
|
10
|
+
var Typography = require('../Typography-75f58b60.js');
|
|
11
|
+
var Tooltip = require('../Tooltip-99440954.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-9f261dde.js');
|
|
18
|
+
var Button = require('../Button-8bde6560.js');
|
|
19
|
+
var Spinner = require('../Spinner-cac356ee.js');
|
|
22
20
|
require('color');
|
|
23
21
|
require('react-dom');
|
|
24
22
|
require('framer-motion');
|
|
23
|
+
require('../ClientOnly-4f3e136d.js');
|
|
24
|
+
require('../useSafeLayoutEffect-b63708b1.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();
|
|
@@ -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);
|