@jobber/components 4.84.1 → 4.85.1

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.
@@ -0,0 +1 @@
1
+ export * from "./dist/StatusIndicator";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+
7
+ var StatusIndicator = require("./dist/StatusIndicator");
8
+
9
+ Object.keys(StatusIndicator).forEach(function(key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ Object.defineProperty(exports, key, {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return StatusIndicator[key];
15
+ },
16
+ });
17
+ });
@@ -62,6 +62,10 @@ export interface ComboboxOption {
62
62
  * The value to be visually displayed in the Combobox options list.
63
63
  */
64
64
  label: string;
65
+ /**
66
+ * An optional component to be displayed before the label.
67
+ */
68
+ prefix?: React.ReactElement;
65
69
  }
66
70
  export interface ComboboxContentProps {
67
71
  /**
@@ -1,6 +1,7 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  export interface ComboboxOptionProps {
3
3
  readonly id: string | number;
4
4
  readonly label: string;
5
+ readonly prefix?: React.ReactNode;
5
6
  }
6
7
  export declare function ComboboxOption(props: ComboboxOptionProps): JSX.Element;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Combobox = require('../Combobox-df332d89.js');
5
+ var Combobox = require('../Combobox-a24c8241.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('react-dom');
@@ -17,6 +17,7 @@ require('../Content-e3f7b6fc.js');
17
17
  require('../Spinner-9d8fc7ff.js');
18
18
  require('../AnimatedPresence-20a02aaa.js');
19
19
  require('framer-motion');
20
+ require('../Flex-d490c4db.js');
20
21
  require('@jobber/hooks/useInView');
21
22
  require('../Button-b73a5e01.js');
22
23
  require('react-router-dom');
@@ -9,6 +9,7 @@ var Text = require('./Text-259af966.js');
9
9
  var Glimmer = require('./Glimmer-84dee1ed.js');
10
10
  var Spinner = require('./Spinner-9d8fc7ff.js');
11
11
  var AnimatedPresence = require('./AnimatedPresence-20a02aaa.js');
12
+ var Flex = require('./Flex-d490c4db.js');
12
13
  var tslib_es6 = require('./tslib.es6-754e2961.js');
13
14
  var useInView = require('@jobber/hooks/useInView');
14
15
  var Typography = require('./Typography-c45bf216.js');
@@ -84,7 +85,9 @@ function ComboboxOption(props) {
84
85
  const isSelected = selected.some(selection => selection.id.toString() === props.id.toString());
85
86
  return (React__default["default"].createElement("li", { key: props.id, tabIndex: -1, "data-selected": isSelected, role: "option", "aria-selected": isSelected, onClick: () => selectionHandler &&
86
87
  selectionHandler({ id: props.id, label: props.label }), className: classnames__default["default"](styles$4.option) },
87
- props.label,
88
+ React__default["default"].createElement(Flex.Flex, { template: props.prefix ? ["shrink", "grow"] : ["grow"] },
89
+ props.prefix,
90
+ props.label),
88
91
  React__default["default"].createElement("div", null, isSelected && React__default["default"].createElement(Icon.Icon, { name: "checkmark", color: "blue" }))));
89
92
  }
90
93
 
@@ -107,7 +110,7 @@ function ComboboxContentList(props) {
107
110
  return (React__default["default"].createElement("div", { className: classnames__default["default"](styles$5.container, styles$5[listScrollState]) },
108
111
  optionsExist && (React__default["default"].createElement("ul", { className: styles$5.optionsList, role: "listbox", "aria-multiselectable": props.multiselect, ref: props.optionsListRef },
109
112
  props.options.map(option => {
110
- return (React__default["default"].createElement(ComboboxOption, { key: option.id, id: option.id, label: option.label }));
113
+ return (React__default["default"].createElement(ComboboxOption, { key: option.id, id: option.id, label: option.label, prefix: option.prefix }));
111
114
  }),
112
115
  React__default["default"].createElement("div", { className: classnames__default["default"]([styles$5.loadingContainer, styles$5.hasOptions]) },
113
116
  React__default["default"].createElement(AnimatedPresence.AnimatedPresence, { transition: "fromBottom" }, Boolean(props.loading && optionsExist) && (React__default["default"].createElement(Spinner.Spinner, { size: "small" })))),
@@ -459,6 +462,7 @@ function Combobox(props) {
459
462
  const options = React.useMemo(() => (optionElements === null || optionElements === void 0 ? void 0 : optionElements.map(option => ({
460
463
  id: option.props.id,
461
464
  label: option.props.label,
465
+ prefix: option.props.prefix,
462
466
  }))) || [], [optionElements]);
463
467
  const { selectedOptions, selectedStateSetter, shouldScroll, wrapperRef, searchValue, setSearchValue, open, setOpen, handleClose, handleSelection, internalFilteredOptions, handleSearchChange, } = useCombobox(props.selected, props.onSelect, options, props.onClose, props.multiSelect, props.onSearch, props.onSearchDebounce);
464
468
  return (React__default["default"].createElement(ComboboxContextProvider, { selected: selectedOptions, selectionHandler: handleSelection, open: open, setOpen: setOpen, handleClose: handleClose, shouldScroll: shouldScroll, searchValue: searchValue },
@@ -2,10 +2,10 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var ConfirmationModal = require('../ConfirmationModal-f1a049fb.js');
5
+ var ConfirmationModal = require('../ConfirmationModal-52e16873.js');
6
6
  require('react');
7
7
  require('@jobber/hooks/useOnKeyDown');
8
- require('../Modal-a0627c92.js');
8
+ require('../Modal-c336cac6.js');
9
9
  require('react-dom');
10
10
  require('classnames');
11
11
  require('framer-motion');
@@ -2,7 +2,7 @@
2
2
 
3
3
  var React = require('react');
4
4
  var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
5
- var Modal = require('./Modal-a0627c92.js');
5
+ var Modal = require('./Modal-c336cac6.js');
6
6
  var Content = require('./Content-e3f7b6fc.js');
7
7
  var Markdown = require('./Markdown-f7c55304.js');
8
8
 
@@ -26,7 +26,7 @@ var ReactDOM = require('react-dom');
26
26
  var Checkbox = require('../Checkbox-787e2e47.js');
27
27
  var reactRouterDom = require('react-router-dom');
28
28
  var AnimatedSwitcher = require('../AnimatedSwitcher-3d45ec5d.js');
29
- var Combobox = require('../Combobox-df332d89.js');
29
+ var Combobox = require('../Combobox-a24c8241.js');
30
30
  var Chip = require('../Chip-3d1bfddc.js');
31
31
  var debounce = require('lodash/debounce');
32
32
  var InputText = require('../InputText-55b6cb65.js');
@@ -38,6 +38,7 @@ require('react-popper');
38
38
  require('../getAtlantisConfig-0f3e8af2.js');
39
39
  require('react-hook-form');
40
40
  require('../AnimatedPresence-20a02aaa.js');
41
+ require('../Flex-d490c4db.js');
41
42
  require('@jobber/hooks/useAssert');
42
43
  require('../Avatar-76a799fa.js');
43
44
  require('color');
@@ -2,39 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var React = require('react');
6
- var classnames = require('classnames');
7
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
5
+ var Flex = require('../Flex-d490c4db.js');
6
+ require('react');
7
+ require('classnames');
8
+ require('../style-inject.es-9d2f5f4e.js');
8
9
 
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
10
 
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
13
11
 
14
- var css_248z = "._8VpnrMKmsqQ- {\n display: grid;\n /* If this gets wrapped in a flex container, it should take the remaining space */\n -ms-flex: 1;\n flex: 1;\n}\n\n.ooF1YfV4Usc- {\n gap: calc(16px / 8);\n gap: var(--space-smallest);\n}\n\n.ppCZfXq-Kqc- {\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n.tElkBalXH3g- {\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n._4u3OwUKxxbg- {\n gap: calc(16px * 1);\n gap: var(--space-base);\n}\n\n.RL7CJla0AAI- {\n gap: calc(16px * 1.5);\n gap: var(--space-large);\n}\n\n.fV4cvFYkhgo- {\n gap: 0;\n}\n\n._04xVVjZgr-0- {\n -ms-flex-align: start;\n align-items: start;\n}\n\n.Nc3zrqHHYSg- {\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qA-v50wBX1U- {\n -ms-flex-align: end;\n align-items: end;\n}\n";
15
- var styles = {"flexible":"_8VpnrMKmsqQ-","smallestGap":"ooF1YfV4Usc-","smallerGap":"ppCZfXq-Kqc-","smallGap":"tElkBalXH3g-","baseGap":"_4u3OwUKxxbg-","largeGap":"RL7CJla0AAI-","noneGap":"fV4cvFYkhgo-","startAlign":"_04xVVjZgr-0-","centerAlign":"Nc3zrqHHYSg-","endAlign":"qA-v50wBX1U-"};
16
- styleInject_es.styleInject(css_248z);
17
-
18
- function Flex({ align = "center", children, direction = "row", gap = "base", template, }) {
19
- return (React__default["default"].createElement("div", { className: classnames__default["default"](styles.flexible, {
20
- [styles[`${gap}Gap`]]: Boolean(gap),
21
- [styles[`${align}Align`]]: Boolean(align),
22
- }), style: generateGridStylesFromTemplate(direction, template) }, children));
23
- }
24
- function generateGridStylesFromTemplate(direction, layoutTemplate) {
25
- const containerStyles = {};
26
- const templateKeys = {
27
- row: "gridTemplateColumns",
28
- column: "gridTemplateRows",
29
- };
30
- const templateValues = {
31
- grow: "1fr",
32
- shrink: "max-content",
33
- };
34
- containerStyles[templateKeys[direction]] = layoutTemplate
35
- .map(key => templateValues[key])
36
- .join(" ");
37
- return containerStyles;
38
- }
39
-
40
- exports.Flex = Flex;
12
+ exports.Flex = Flex.Flex;
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var classnames = require('classnames');
5
+ var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
+ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
11
+
12
+ var css_248z = "._8VpnrMKmsqQ- {\n display: grid;\n /* If this gets wrapped in a flex container, it should take the remaining space */\n -ms-flex: 1;\n flex: 1;\n}\n\n.ooF1YfV4Usc- {\n gap: calc(16px / 8);\n gap: var(--space-smallest);\n}\n\n.ppCZfXq-Kqc- {\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n.tElkBalXH3g- {\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n._4u3OwUKxxbg- {\n gap: calc(16px * 1);\n gap: var(--space-base);\n}\n\n.RL7CJla0AAI- {\n gap: calc(16px * 1.5);\n gap: var(--space-large);\n}\n\n.fV4cvFYkhgo- {\n gap: 0;\n}\n\n._04xVVjZgr-0- {\n -ms-flex-align: start;\n align-items: start;\n}\n\n.Nc3zrqHHYSg- {\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qA-v50wBX1U- {\n -ms-flex-align: end;\n align-items: end;\n}\n";
13
+ var styles = {"flexible":"_8VpnrMKmsqQ-","smallestGap":"ooF1YfV4Usc-","smallerGap":"ppCZfXq-Kqc-","smallGap":"tElkBalXH3g-","baseGap":"_4u3OwUKxxbg-","largeGap":"RL7CJla0AAI-","noneGap":"fV4cvFYkhgo-","startAlign":"_04xVVjZgr-0-","centerAlign":"Nc3zrqHHYSg-","endAlign":"qA-v50wBX1U-"};
14
+ styleInject_es.styleInject(css_248z);
15
+
16
+ function Flex({ align = "center", children, direction = "row", gap = "base", template, }) {
17
+ return (React__default["default"].createElement("div", { className: classnames__default["default"](styles.flexible, {
18
+ [styles[`${gap}Gap`]]: Boolean(gap),
19
+ [styles[`${align}Align`]]: Boolean(align),
20
+ }), style: generateGridStylesFromTemplate(direction, template) }, children));
21
+ }
22
+ function generateGridStylesFromTemplate(direction, layoutTemplate) {
23
+ const containerStyles = {};
24
+ const templateKeys = {
25
+ row: "gridTemplateColumns",
26
+ column: "gridTemplateRows",
27
+ };
28
+ const templateValues = {
29
+ grow: "1fr",
30
+ shrink: "max-content",
31
+ };
32
+ containerStyles[templateKeys[direction]] = layoutTemplate
33
+ .map(key => templateValues[key])
34
+ .join(" ");
35
+ return containerStyles;
36
+ }
37
+
38
+ exports.Flex = Flex;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var FormatFile = require('../FormatFile-f10799f5.js');
5
+ var FormatFile = require('../FormatFile-f036902d.js');
6
6
  require('react');
7
7
  require('classnames');
8
8
  require('filesize');
@@ -12,9 +12,9 @@ require('react-router-dom');
12
12
  require('../Icon-405a216c.js');
13
13
  require('@jobber/design');
14
14
  require('../Typography-c45bf216.js');
15
- require('../ConfirmationModal-f1a049fb.js');
15
+ require('../ConfirmationModal-52e16873.js');
16
16
  require('@jobber/hooks/useOnKeyDown');
17
- require('../Modal-a0627c92.js');
17
+ require('../Modal-c336cac6.js');
18
18
  require('react-dom');
19
19
  require('framer-motion');
20
20
  require('@jobber/hooks/useRefocusOnActivator');
@@ -5,7 +5,7 @@ var classnames = require('classnames');
5
5
  var getHumanReadableFileSize = require('filesize');
6
6
  var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
7
7
  var Button = require('./Button-b73a5e01.js');
8
- var ConfirmationModal = require('./ConfirmationModal-f1a049fb.js');
8
+ var ConfirmationModal = require('./ConfirmationModal-52e16873.js');
9
9
  var Glimmer = require('./Glimmer-84dee1ed.js');
10
10
  var Icon = require('./Icon-405a216c.js');
11
11
  var Typography = require('./Typography-c45bf216.js');
@@ -6,7 +6,7 @@ var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
8
  var LightBox = require('../LightBox-a89d8863.js');
9
- var FormatFile = require('../FormatFile-f10799f5.js');
9
+ var FormatFile = require('../FormatFile-f036902d.js');
10
10
  var Button = require('../Button-b73a5e01.js');
11
11
  require('framer-motion');
12
12
  require('react-dom');
@@ -16,8 +16,8 @@ require('@jobber/hooks/useOnKeyDown');
16
16
  require('@jobber/hooks/useFocusTrap');
17
17
  require('../ButtonDismiss-350af163.js');
18
18
  require('filesize');
19
- require('../ConfirmationModal-f1a049fb.js');
20
- require('../Modal-a0627c92.js');
19
+ require('../ConfirmationModal-52e16873.js');
20
+ require('../Modal-c336cac6.js');
21
21
  require('../Heading-1e8e4bd3.js');
22
22
  require('../Typography-c45bf216.js');
23
23
  require('../getAtlantisConfig-0f3e8af2.js');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Modal = require('../Modal-a0627c92.js');
5
+ var Modal = require('../Modal-c336cac6.js');
6
6
  require('react');
7
7
  require('react-dom');
8
8
  require('classnames');
@@ -18,7 +18,7 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
18
  var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
19
19
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
20
20
 
21
- var css_248z$1 = ":root {\n --modal--width: calc(var(--base-unit) * 37.5);\n --modal--padding-horizontal: var(--space-base);\n --modal--padding-vertical: var(--space-base);\n --modal--padding: var(--modal--padding-vertical)\n var(--modal--padding-horizontal);\n}\n\n@media (min-width: 768px) {\n\n:root {\n --modal--padding-horizontal: var(--space-large);\n}\n }\n\n@media (--medium-screens-and-up) {\n\n:root {\n --modal--padding-horizontal: var(--space-large);\n}\n }\n\n:root .jobber-retheme {\n --modal--shadow: var(--shadow-base);\n}\n\n@media (min-width: 768px) {\n\n:root .jobber-retheme {\n --modal--padding-horizontal: var(--space-large);\n --modal--padding-vertical: var(--space-large);\n --modal--padding: var(--modal--padding-vertical)\n var(--modal--padding-horizontal);\n}\n }\n\n@media (--medium-screens-and-up) {\n\n:root .jobber-retheme {\n --modal--padding-horizontal: var(--space-large);\n --modal--padding-vertical: var(--space-large);\n --modal--padding: var(--modal--padding-vertical)\n var(--modal--padding-horizontal);\n}\n }\n\n.QGRLFHPoV5E- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n z-index: 1001;\n z-index: var(--elevation-modal);\n padding: calc(16px / 2);\n padding: var(--space-small);\n overflow: auto;\n}\n\n.QGRLFHPoV5E-,\n._4WzGOMUGj5I- {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n._4WzGOMUGj5I- {\n background-color: rgba(0, 0, 0, 0.32);\n background-color: var(--color-overlay);\n}\n\n.WLId2NJBQcQ- {\n position: relative;\n width: 100%;\n max-width: calc(16px * 37.5);\n max-width: var(--modal--width);\n box-shadow: var(--modal--shadow);\n margin: auto;\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n outline-color: rgb(147, 161, 169);\n outline-color: var(--color-focus);\n}\n\n/* Adjust `Content` and `Tab` components public padding to match the modal */\n\n.WLId2NJBQcQ- > * {\n --public-content--padding: var(--modal--padding);\n --public-tab--inset: var(--modal--padding-horizontal);\n}\n\n/* Remove the nested `Content` components public padding */\n\n.WLId2NJBQcQ- > * > * {\n --public-content--padding: 0;\n}\n\n.wjrPpIUNNrk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n padding: calc(16px * 1)\n calc(16px * 1);\n padding: var(--modal--padding);\n background-color: rgb(238, 240, 242);\n background-color: var(--color-surface--background);\n}\n\n.jobber-retheme .wjrPpIUNNrk- {\n background-color: transparent;\n}\n\n.jobber-retheme .wjrPpIUNNrk- h3 {\n font-family: \"Inter\", Helvetica, Arial, sans-serif;\n font-family: var(--typography--fontFamily-normal);\n font-size: calc((16px * 1) * 1.5);\n font-size: calc(calc(16px * 1) * 1.5);\n font-size: var(--typography--fontSize-largest);\n}\n\n/**\n * Ensure there's no extra padding top on the next element. This mostly negates\n * the <Content /> padding\n */\n\n.jobber-retheme .wjrPpIUNNrk- + * {\n padding-top: 0;\n}\n\n.rKvigUnOyYE- {\n padding: 0;\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n}\n\n._62c8HLZFwvs- {\n display: -ms-flexbox;\n display: flex;\n padding: calc(16px * 1)\n calc(16px * 1);\n padding: var(--modal--padding);\n padding-top: 0;\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n\n/**\n * 1. Use CSS `order` to adjust the buttons position on the UI\n */\n\n.Xl1Ptn-P9Ew- {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n -ms-flex-order: 1;\n order: 1; /* 1 */\n}\n\n.p2s7GtpoZz0- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-order: 2;\n order: 2; /* 1 */\n}\n\n/* This is in a correct position and order */\n\n/* stylelint-disable-next-line no-descending-specificity */\n\n.p2s7GtpoZz0- > * {\n margin-left: calc(16px / 2);\n margin-left: var(--space-small);\n}\n\n.p2s7GtpoZz0- *:first-child {\n -ms-flex-order: 2;\n order: 2; /* 1 */\n}\n\n.p2s7GtpoZz0- *:nth-child(2) {\n -ms-flex-order: 1;\n order: 1; /* 1 */\n}\n";
21
+ var css_248z$1 = ":root {\n --modal--width: calc(var(--base-unit) * 37.5);\n --modal--padding-horizontal: var(--space-base);\n --modal--padding-vertical: var(--space-base);\n --modal--padding: var(--modal--padding-vertical)\n var(--modal--padding-horizontal);\n}\n\n@media (min-width: 768px) {\n\n:root {\n --modal--padding-horizontal: var(--space-large);\n}\n }\n\n@media (--medium-screens-and-up) {\n\n:root {\n --modal--padding-horizontal: var(--space-large);\n}\n }\n\n:root .jobber-retheme {\n --modal--shadow: var(--shadow-base);\n}\n\n@media (min-width: 768px) {\n\n:root .jobber-retheme {\n --modal--padding-horizontal: var(--space-large);\n --modal--padding-vertical: var(--space-large);\n --modal--padding: var(--modal--padding-vertical)\n var(--modal--padding-horizontal);\n}\n }\n\n@media (--medium-screens-and-up) {\n\n:root .jobber-retheme {\n --modal--padding-horizontal: var(--space-large);\n --modal--padding-vertical: var(--space-large);\n --modal--padding: var(--modal--padding-vertical)\n var(--modal--padding-horizontal);\n}\n }\n\n.QGRLFHPoV5E- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n z-index: 1001;\n z-index: var(--elevation-modal);\n padding: calc(16px / 2);\n padding: var(--space-small);\n overflow: auto;\n}\n\n.QGRLFHPoV5E-,\n._4WzGOMUGj5I- {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n._4WzGOMUGj5I- {\n background-color: rgba(0, 0, 0, 0.32);\n background-color: var(--color-overlay);\n}\n\n.WLId2NJBQcQ- {\n position: relative;\n width: 100%;\n max-width: calc(16px * 37.5);\n max-width: var(--modal--width);\n box-shadow: var(--modal--shadow);\n margin: auto;\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n outline-color: rgb(147, 161, 169);\n outline-color: var(--color-focus);\n}\n\n/* Adjust `Content` and `Tab` components public padding to match the modal */\n\n.WLId2NJBQcQ- > * {\n --public-content--padding: var(--modal--padding);\n --public-tab--inset: var(--modal--padding-horizontal);\n}\n\n/* Remove the nested `Content` components public padding */\n\n.WLId2NJBQcQ- > * > * {\n --public-content--padding: 0;\n}\n\n.wjrPpIUNNrk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n padding: calc(16px * 1)\n calc(16px * 1);\n padding: var(--modal--padding);\n background-color: rgb(238, 240, 242);\n background-color: var(--color-surface--background);\n}\n\n.jobber-retheme .wjrPpIUNNrk- {\n background-color: transparent;\n}\n\n.jobber-retheme .wjrPpIUNNrk- h3 {\n font-family: \"Inter\", Helvetica, Arial, sans-serif;\n font-family: var(--typography--fontFamily-normal);\n font-size: calc((16px * 1) * 1.5);\n font-size: calc(calc(16px * 1) * 1.5);\n font-size: var(--typography--fontSize-largest);\n}\n\n/**\n * Ensure there's no extra padding top on the next element. This mostly negates\n * the <Content /> padding\n */\n\n.jobber-retheme .wjrPpIUNNrk- + * {\n padding-top: 0;\n}\n\n.rKvigUnOyYE- {\n padding: 0;\n border: none;\n background-color: transparent;\n cursor: pointer;\n -webkit-appearance: none;\n appearance: none;\n}\n\n._62c8HLZFwvs- {\n display: -ms-flexbox;\n display: flex;\n padding: calc(16px * 1)\n calc(16px * 1);\n padding: var(--modal--padding);\n padding-top: 0;\n -ms-flex: 1 1 100%;\n flex: 1 1 100%;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n\n/**\n * 1. Use CSS `order` to adjust the buttons position on the UI\n */\n\n.Xl1Ptn-P9Ew- {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n -ms-flex-order: 1;\n order: 1; /* 1 */\n}\n\n.p2s7GtpoZz0- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-order: 2;\n order: 2; /* 1 */\n}\n\n/* This is in a correct position and order */\n\n/* stylelint-disable-next-line no-descending-specificity */\n\n.p2s7GtpoZz0- > * {\n margin-left: calc(16px / 2);\n margin-left: var(--space-small);\n}\n\n.p2s7GtpoZz0- > *:first-child {\n -ms-flex-order: 2;\n order: 2; /* 1 */\n}\n\n.p2s7GtpoZz0- > *:nth-child(2) {\n -ms-flex-order: 1;\n order: 1; /* 1 */\n}\n";
22
22
  var styles = {"container":"QGRLFHPoV5E-","overlay":"_4WzGOMUGj5I-","modal":"WLId2NJBQcQ-","header":"wjrPpIUNNrk-","closeButton":"rKvigUnOyYE-","actionBar":"_62c8HLZFwvs-","leftAction":"Xl1Ptn-P9Ew-","rightAction":"p2s7GtpoZz0-"};
23
23
  styleInject_es.styleInject(css_248z$1);
24
24
 
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { StatusIndicatorType } from "./StatusIndicator.type";
3
+ interface StatusIndicatorProps {
4
+ readonly status: StatusIndicatorType;
5
+ }
6
+ export declare function StatusIndicator({ status }: StatusIndicatorProps): JSX.Element;
7
+ export {};
@@ -0,0 +1 @@
1
+ export type StatusIndicatorType = "success" | "warning" | "critical" | "inactive" | "informative";
@@ -0,0 +1,2 @@
1
+ export { StatusIndicator } from "./StatusIndicator";
2
+ export type { StatusIndicatorType } from "./StatusIndicator.type";
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var StatusIndicator = require('../StatusIndicator-b179d06e.js');
6
+ require('react');
7
+ require('../style-inject.es-9d2f5f4e.js');
8
+
9
+
10
+
11
+ exports.StatusIndicator = StatusIndicator.StatusIndicator;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
5
+
6
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
+
8
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
9
+
10
+ var css_248z = ".ob7nhx1U-HQ- {\n display: inline-block;\n width: var(--statusLabel-icon-diameter);\n height: var(--statusLabel-icon-diameter);\n border-radius: 3px;\n background-color: rgb(125, 176, 14);\n background-color: var(--color-success);\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n";
11
+ var styles = {"statusIndicator":"ob7nhx1U-HQ-"};
12
+ styleInject_es.styleInject(css_248z);
13
+
14
+ function StatusIndicator({ status }) {
15
+ return (React__default["default"].createElement("span", { style: { backgroundColor: `var(--color-${status})` }, className: styles.statusIndicator, "data-testid": `ATL-Status-Indicator-${status}` }));
16
+ }
17
+
18
+ exports.StatusIndicator = StatusIndicator;
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
- export type StatusType = "success" | "warning" | "critical" | "inactive" | "informative";
2
+ import { StatusIndicatorType } from "../StatusIndicator/StatusIndicator.type";
3
3
  export interface StatusLabelType {
4
4
  readonly statusLabel: string;
5
- readonly statusType?: StatusType;
5
+ readonly statusType?: StatusIndicatorType;
6
6
  }
7
7
  interface StatusLabelProps {
8
8
  /**
@@ -20,7 +20,7 @@ interface StatusLabelProps {
20
20
  *
21
21
  * @default "inactive"
22
22
  */
23
- readonly status: StatusType;
23
+ readonly status: StatusIndicatorType;
24
24
  }
25
25
  export declare function StatusLabel({ label, alignment, status, }: StatusLabelProps): JSX.Element;
26
26
  export {};
@@ -6,6 +6,7 @@ var React = require('react');
6
6
  var classnames = require('classnames');
7
7
  var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
8
  var Text = require('../Text-259af966.js');
9
+ var StatusIndicator = require('../StatusIndicator-b179d06e.js');
9
10
  require('../Typography-c45bf216.js');
10
11
 
11
12
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -13,18 +14,16 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
13
14
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
14
15
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
15
16
 
16
- var css_248z = ":root {\n --statusLabel-icon-diameter: 10px;\n}\n\n.MB0ycTR4PHg- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n gap: calc(16px / 2);\n gap: var(--space-small);\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n}\n\n.fNl6zDhsox0- {\n width: 10px;\n width: var(--statusLabel-icon-diameter);\n height: 10px;\n height: var(--statusLabel-icon-diameter);\n margin-top: calc(16px / 16);\n margin-top: var(--space-minuscule);\n border-radius: 3px;\n background-color: rgb(125, 176, 14);\n background-color: var(--color-success);\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n._0kNfkSPBETw- {\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n}\n";
17
- var styles = {"statusLabelRow":"MB0ycTR4PHg-","statusIndicator":"fNl6zDhsox0-","labelTextEndAligned":"_0kNfkSPBETw-"};
17
+ var css_248z = ":root {\n --statusLabel-icon-diameter: 10px;\n}\n\n.MB0ycTR4PHg- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: row;\n flex-direction: row;\n -ms-flex-wrap: nowrap;\n flex-wrap: nowrap;\n gap: calc(16px / 2);\n gap: var(--space-small);\n width: -webkit-fit-content;\n width: -moz-fit-content;\n width: fit-content;\n}\n\n._0kNfkSPBETw- {\n -ms-flex-direction: row-reverse;\n flex-direction: row-reverse;\n}\n\n.fNl6zDhsox0- {\n display: -ms-inline-flexbox;\n display: inline-flex;\n padding-top: calc(16px / 16);\n padding-top: var(--space-minuscule);\n}\n";
18
+ var styles = {"statusLabelRow":"MB0ycTR4PHg-","labelTextEndAligned":"_0kNfkSPBETw-","statusIndicator":"fNl6zDhsox0-"};
18
19
  styleInject_es.styleInject(css_248z);
19
20
 
20
21
  function StatusLabel({ label, alignment = "start", status = "inactive", }) {
21
22
  const containerClassNames = classnames__default["default"](styles.statusLabelRow, alignment === "end" && styles.labelTextEndAligned);
22
23
  return (React__default["default"].createElement("div", { role: "status", className: containerClassNames },
23
- React__default["default"].createElement(StatusLabelIcon, { status: status }),
24
+ React__default["default"].createElement("div", { className: styles.statusIndicator },
25
+ React__default["default"].createElement(StatusIndicator.StatusIndicator, { status: status })),
24
26
  React__default["default"].createElement(Text.Text, { size: "small", align: alignment }, label)));
25
27
  }
26
- function StatusLabelIcon({ status }) {
27
- return (React__default["default"].createElement("div", { style: { backgroundColor: `var(--color-${status}` }, className: styles.statusIndicator }));
28
- }
29
28
 
30
29
  exports.StatusLabel = StatusLabel;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "4.84.1",
3
+ "version": "4.85.1",
4
4
  "license": "MIT",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,7 +19,7 @@
19
19
  "dist/*"
20
20
  ],
21
21
  "dependencies": {
22
- "@jobber/design": "^0.54.0",
22
+ "@jobber/design": "^0.55.0",
23
23
  "@jobber/formatters": "*",
24
24
  "@jobber/hooks": "^2.9.0",
25
25
  "@popperjs/core": "^2.0.6",
@@ -80,5 +80,5 @@
80
80
  "> 1%",
81
81
  "IE 10"
82
82
  ],
83
- "gitHead": "825421391c3feb7c30550303949e6f6f0c36535a"
83
+ "gitHead": "fd44ee4f11c0b05153b60502ef3cbae384f9430e"
84
84
  }