@jobber/components 4.77.4 → 4.77.6-JOB-84042.2
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/AnimatedPresence.d.ts +1 -0
- package/AnimatedPresence.js +17 -0
- package/dist/AnimatedPresence/AnimatedPresence.d.ts +24 -0
- package/dist/AnimatedPresence/AnimatedPresence.transitions.d.ts +11 -0
- package/dist/AnimatedPresence/hooks/usePreviousValue.d.ts +2 -0
- package/dist/AnimatedPresence/index.d.ts +1 -0
- package/dist/AnimatedPresence/index.js +12 -0
- package/dist/AnimatedPresence-20a02aaa.js +104 -0
- package/dist/AnimatedSwitcher/index.js +1 -1
- package/dist/{AnimatedSwitcher-d1e1ddcf.js → AnimatedSwitcher-3d45ec5d.js} +1 -1
- package/dist/Autocomplete/index.js +6 -5
- package/dist/Card/index.js +3 -2
- package/dist/{Card-426a68a8.js → Card-0a6f3a28.js} +1 -1
- package/dist/Checkbox/index.js +2 -2
- package/dist/{Checkbox-1cdd5cf6.js → Checkbox-99f6297f.js} +1 -1
- package/dist/Chip/index.js +4 -3
- package/dist/{Chip-c91fd6c8.js → Chip-3d1bfddc.js} +1 -1
- package/dist/Chips/index.js +2 -1
- package/dist/Combobox/Combobox.types.d.ts +12 -0
- package/dist/Combobox/components/ComboboxContent/ComboboxLoadMore/ComboboxLoadMore.d.ts +6 -0
- package/dist/Combobox/components/ComboboxContent/ComboboxLoadMore/index.d.ts +1 -0
- package/dist/Combobox/hooks/useMakeComboboxHandlers.d.ts +1 -1
- package/dist/Combobox/index.js +10 -7
- package/dist/{Combobox-d85ce78c.js → Combobox-d24f1fec.js} +58 -41
- package/dist/DataDump/index.js +3 -2
- package/dist/DataList/DataList.const.d.ts +1 -0
- package/dist/DataList/DataList.types.d.ts +5 -4
- package/dist/DataList/index.d.ts +1 -1
- package/dist/DataList/index.js +33 -31
- package/dist/DataTable/index.js +5 -5
- package/dist/Form/index.js +1 -1
- package/dist/FormField/index.js +3 -3
- package/dist/{FormField-b0e74d32.js → FormField-b4e6c549.js} +2 -2
- package/dist/FormatFile/index.js +3 -3
- package/dist/{FormatFile-9f8e4996.js → FormatFile-652edda8.js} +1 -1
- package/dist/Gallery/index.js +3 -3
- package/dist/Glimmer/index.js +2 -2
- package/dist/{Glimmer-f40d5ea5.js → Glimmer-7c317864.js} +1 -1
- package/dist/InputAvatar/index.js +3 -3
- package/dist/InputDate/index.js +3 -3
- package/dist/InputEmail/index.js +3 -3
- package/dist/InputFile/index.js +3 -3
- package/dist/{InputFile-d080dec5.js → InputFile-c9eeb04b.js} +2 -2
- package/dist/InputNumber/index.js +4 -4
- package/dist/{InputNumber-79da1cdc.js → InputNumber-ceae3872.js} +1 -1
- package/dist/InputPassword/index.js +3 -3
- package/dist/InputPhoneNumber/index.js +3 -3
- package/dist/InputText/index.js +5 -4
- package/dist/{InputText-9e61365c.js → InputText-6c71361e.js} +3 -2
- package/dist/InputTime/index.js +3 -3
- package/dist/InputValidation/InputValidation.d.ts +1 -1
- package/dist/InputValidation/index.js +1 -1
- package/dist/{InputValidation-a7a737f9.js → InputValidation-05e839fa.js} +1 -1
- package/dist/Menu/Menu.d.ts +4 -4
- package/dist/Menu/index.js +2 -1
- package/dist/{Menu-81b12936.js → Menu-5fc613a1.js} +2 -1
- package/dist/MultiSelect/index.js +2 -2
- package/dist/{Option-b715f6b4.js → Option-8565da71.js} +1 -1
- package/dist/Page/index.js +2 -1
- package/dist/RecurringSelect/index.js +5 -5
- package/dist/Select/index.js +4 -4
- package/dist/Tooltip/index.js +2 -1
- package/dist/{Tooltip-27771182.js → Tooltip-ef3d6ef4.js} +2 -1
- package/dist/{tslib.es6-5b8768b7.js → tslib.es6-754e2961.js} +7 -2
- package/package.json +6 -6
|
@@ -6,15 +6,18 @@ var ReactDOM = require('react-dom');
|
|
|
6
6
|
var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
|
|
7
7
|
var Icon = require('./Icon-405a216c.js');
|
|
8
8
|
var Text = require('./Text-259af966.js');
|
|
9
|
-
var Glimmer = require('./Glimmer-
|
|
10
|
-
var
|
|
9
|
+
var Glimmer = require('./Glimmer-7c317864.js');
|
|
10
|
+
var Spinner = require('./Spinner-9d8fc7ff.js');
|
|
11
|
+
var AnimatedPresence = require('./AnimatedPresence-20a02aaa.js');
|
|
12
|
+
var tslib_es6 = require('./tslib.es6-754e2961.js');
|
|
13
|
+
var useInView = require('@jobber/hooks/useInView');
|
|
11
14
|
var Typography = require('./Typography-c45bf216.js');
|
|
12
15
|
var Button = require('./Button-b73a5e01.js');
|
|
13
16
|
var useRefocusOnActivator = require('@jobber/hooks/useRefocusOnActivator');
|
|
14
17
|
var useFocusTrap = require('@jobber/hooks/useFocusTrap');
|
|
15
18
|
var reactPopper = require('react-popper');
|
|
16
19
|
var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
|
|
17
|
-
var Chip = require('./Chip-
|
|
20
|
+
var Chip = require('./Chip-3d1bfddc.js');
|
|
18
21
|
var debounce = require('lodash/debounce');
|
|
19
22
|
var noop = require('lodash/noop');
|
|
20
23
|
require('@jobber/design');
|
|
@@ -28,13 +31,13 @@ var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
|
28
31
|
var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
29
32
|
var noop__default = /*#__PURE__*/_interopDefaultLegacy(noop);
|
|
30
33
|
|
|
31
|
-
var css_248z$
|
|
32
|
-
var styles$
|
|
33
|
-
styleInject_es.styleInject(css_248z$
|
|
34
|
+
var css_248z$7 = ".m1w5vdUZ6rQ- {\n z-index: 1002;\n z-index: var(--elevation-tooltip);\n width: calc((16px * 4) * 3.75);\n width: calc(calc(16px * 4) * 3.75);\n width: calc(var(--space-extravagant) * 3.75);\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 margin-top: calc(16px / 2);\n margin-top: 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 overflow: auto;\n background: rgba(255, 255, 255, 1);\n background: var(--color-surface);\n}\n\n.jobber-retheme .m1w5vdUZ6rQ- {\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n}\n\n/* CAUTION: Tests for content visibility assume this class' presence hides the content\n* so please be careful if you change this class name, or the css rules within.\n*/\n\n.m1w5vdUZ6rQ-.Zlkv2HA096A- {\n display: none;\n visibility: hidden;\n}\n\n.m1w5vdUZ6rQ-:focus,\n.m1w5vdUZ6rQ-:focus-visible {\n outline: none;\n}\n\n.m1w5vdUZ6rQ-:focus-visible {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n\n.YQry-Rd6zfQ- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: sticky;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n bottom: 0;\n width: 100%;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n}\n\n.TcpqL34s4lI- {\n padding-bottom: calc(16px / 2);\n padding-bottom: var(--space-small);\n}\n";
|
|
35
|
+
var styles$7 = {"content":"m1w5vdUZ6rQ-","hidden":"Zlkv2HA096A-","actions":"YQry-Rd6zfQ-","actionPadding":"TcpqL34s4lI-"};
|
|
36
|
+
styleInject_es.styleInject(css_248z$7);
|
|
34
37
|
|
|
35
|
-
var css_248z$
|
|
36
|
-
var styles$
|
|
37
|
-
styleInject_es.styleInject(css_248z$
|
|
38
|
+
var css_248z$6 = ".MIyb-oFZg9w- {\n position: relative;\n}\n\n.WZPK91I4aJs- {\n width: 100%;\n padding: calc(16px * 1);\n padding: var(--space-base);\n padding-right: calc((16px * 1.5) * 2.25);\n padding-right: calc(calc(16px * 1.5) * 2.25);\n padding-right: calc(var(--space-large) * 2.25);\n border: none;\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n font-family: \"Inter\", Helvetica, Arial, sans-serif;\n font-family: var(--typography--fontFamily-normal);\n font-size: calc((16px * 1) * 0.875);\n font-size: calc(calc(16px * 1) * 0.875);\n font-size: var(--typography--fontSize-base);\n}\n\n.WZPK91I4aJs-::-webkit-search-decoration,\n.WZPK91I4aJs-::-webkit-search-cancel-button,\n.WZPK91I4aJs-::-webkit-search-results-button,\n.WZPK91I4aJs-::-webkit-search-results-decoration {\n -webkit-appearance: none;\n}\n\n.WZPK91I4aJs-:focus {\n outline: none;\n}\n\n._7loHrVUe-Rk- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 50%;\n right: calc(16px * 1);\n right: var(--space-base);\n z-index: 1002;\n z-index: var(--elevation-tooltip);\n width: calc(16px * 1.5);\n width: var(--space-large);\n height: calc(16px * 1.5);\n height: var(--space-large);\n padding: 0;\n border: none;\n border-radius: 100%;\n border-radius: var(--radius-circle);\n background-color: rgb(238, 240, 242);\n background-color: var(--color-surface--background);\n cursor: pointer;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n._7loHrVUe-Rk-:focus {\n outline: transparent;\n}\n\n._7loHrVUe-Rk-:focus-visible {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n";
|
|
39
|
+
var styles$6 = {"search":"MIyb-oFZg9w-","searchInput":"WZPK91I4aJs-","clearSearch":"_7loHrVUe-Rk-"};
|
|
40
|
+
styleInject_es.styleInject(css_248z$6);
|
|
38
41
|
|
|
39
42
|
function ComboboxContentSearch(props) {
|
|
40
43
|
const searchRef = React.useRef(null);
|
|
@@ -46,9 +49,9 @@ function ComboboxContentSearch(props) {
|
|
|
46
49
|
}, 0);
|
|
47
50
|
}
|
|
48
51
|
}, [props.open]);
|
|
49
|
-
return (React__default["default"].createElement("div", { className: styles$
|
|
50
|
-
React__default["default"].createElement("input", { type: "search", ref: searchRef, className: styles$
|
|
51
|
-
props.searchValue && (React__default["default"].createElement("button", { className: styles$
|
|
52
|
+
return (React__default["default"].createElement("div", { className: styles$6.search },
|
|
53
|
+
React__default["default"].createElement("input", { type: "search", ref: searchRef, className: styles$6.searchInput, placeholder: props.placeholder ? `Search ${props.placeholder}` : "Search", onChange: (event) => handleSearch(event), value: props.searchValue }),
|
|
54
|
+
props.searchValue && (React__default["default"].createElement("button", { className: styles$6.clearSearch, onClick: clearSearch, type: "button", "data-testid": "ATL-Combobox-Content-Search-Clear", "aria-label": "Clear search" },
|
|
52
55
|
React__default["default"].createElement(Icon.Icon, { name: "remove", size: "small" })))));
|
|
53
56
|
function clearSearch() {
|
|
54
57
|
var _a;
|
|
@@ -62,13 +65,13 @@ function ComboboxContentSearch(props) {
|
|
|
62
65
|
}
|
|
63
66
|
}
|
|
64
67
|
|
|
65
|
-
var css_248z$
|
|
66
|
-
var styles$
|
|
67
|
-
styleInject_es.styleInject(css_248z$
|
|
68
|
+
var css_248z$5 = ".SgMzjOcdE-E- {\n position: relative;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n}\n\n.TwoTCjgcssc- {\n display: -ms-flexbox;\n display: flex;\n\n max-height: calc((16px / 2) * 33.33);\n\n max-height: calc(calc(16px / 2) * 33.33);\n\n max-height: calc(var(--space-small) * 33.33);\n margin: 0;\n padding: 0;\n overflow: auto;\n list-style: none;\n -ms-flex-direction: column;\n flex-direction: column;\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n._8T5M7MGwCRE-,\n._4y5NXkNeIQM- {\n padding: calc(16px / 2) calc(16px * 1);\n padding: var(--space-small) var(--space-base);\n}\n\n.SgMzjOcdE-E-::before,\n.SgMzjOcdE-E-::after {\n content: \"\";\n display: block;\n position: absolute;\n right: 0;\n left: 0;\n height: calc(16px * 1);\n height: var(--space-base);\n pointer-events: none;\n transition: opacity 0.3s ease-in-out;\n}\n\n.SgMzjOcdE-E-::after {\n bottom: calc(16px / 2);\n bottom: var(--space-small);\n background: linear-gradient(\n 180deg,\n rgba(255, 255, 255, 0) 0%,\n rgb(255, 255, 255) 100%\n );\n}\n\n.SgMzjOcdE-E-::before {\n top: calc(16px / 2);\n top: var(--space-small);\n background: linear-gradient(\n to bottom,\n rgba(255, 255, 255, 1),\n rgba(255, 255, 255, 0)\n );\n}\n\n.T6E3VwBGoQM-::before,\n._6HQzxMQkXnE-::before {\n opacity: 0;\n}\n\n._5YsJZyMDkbA-::after,\n._6HQzxMQkXnE-::after {\n opacity: 0;\n}\n\n.A6z4OI58xoE- {\n padding: calc(16px * 1) calc(16px * 1);\n padding: var(--space-base) var(--space-base);\n}\n\n.A6z4OI58xoE-.QqHBSf52fPk- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n position: sticky;\n bottom: 0;\n padding: calc(16px * 1) 0;\n padding: var(--space-base) 0;\n}\n\n.A6z4OI58xoE-.QqHBSf52fPk-:empty {\n display: none;\n}\n";
|
|
69
|
+
var styles$5 = {"container":"SgMzjOcdE-E-","optionsList":"TwoTCjgcssc-","filterMessage":"_8T5M7MGwCRE-","emptyStateMessage":"_4y5NXkNeIQM-","scrollTop":"T6E3VwBGoQM-","scrollNone":"_6HQzxMQkXnE-","scrollBottom":"_5YsJZyMDkbA-","loadingContainer":"A6z4OI58xoE-","hasOptions":"QqHBSf52fPk-"};
|
|
70
|
+
styleInject_es.styleInject(css_248z$5);
|
|
68
71
|
|
|
69
|
-
var css_248z$
|
|
70
|
-
var styles$
|
|
71
|
-
styleInject_es.styleInject(css_248z$
|
|
72
|
+
var css_248z$4 = "._5QdRGmaNHvc- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n min-height: calc((calc(16px * 3) - calc(16px / 4)));\n min-height: calc((var(--space-largest) - var(--space-smaller)));\n box-sizing: border-box;\n margin: 0 calc(16px / 2);\n margin: 0 var(--space-small);\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-radius: calc(16px / 4);\n border-radius: var(--radius-large);\n color: rgb(1, 41, 57);\n color: var(--color-heading);\n font-weight: 500;\n cursor: pointer;\n transition: all 200ms;\n transition: all var(--timing-base);\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.jobber-retheme ._5QdRGmaNHvc- {\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n}\n\n._5QdRGmaNHvc-:hover,\n._5QdRGmaNHvc-:focus-visible {\n background-color: rgb(244, 246, 250);\n background-color: var(--color-surface--hover);\n}\n\n._5QdRGmaNHvc-:focus,\n._5QdRGmaNHvc-:focus-visible {\n outline: none;\n}\n\n._5QdRGmaNHvc-:focus-visible {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n";
|
|
73
|
+
var styles$4 = {"option":"_5QdRGmaNHvc-"};
|
|
74
|
+
styleInject_es.styleInject(css_248z$4);
|
|
72
75
|
|
|
73
76
|
const ComboboxContext = React__default["default"].createContext({});
|
|
74
77
|
function ComboboxContextProvider(_a) {
|
|
@@ -80,29 +83,42 @@ function ComboboxOption(props) {
|
|
|
80
83
|
const { selected, selectionHandler } = React.useContext(ComboboxContext);
|
|
81
84
|
const isSelected = selected.some(selection => selection.id.toString() === props.id.toString());
|
|
82
85
|
return (React__default["default"].createElement("li", { key: props.id, tabIndex: -1, "data-selected": isSelected, role: "option", "aria-selected": isSelected, onClick: () => selectionHandler &&
|
|
83
|
-
selectionHandler({ id: props.id, label: props.label }), className: classnames__default["default"](styles$
|
|
86
|
+
selectionHandler({ id: props.id, label: props.label }), className: classnames__default["default"](styles$4.option) },
|
|
84
87
|
props.label,
|
|
85
|
-
isSelected && React__default["default"].createElement(Icon.Icon, { name: "checkmark", color: "blue" })));
|
|
88
|
+
React__default["default"].createElement("div", null, isSelected && React__default["default"].createElement(Icon.Icon, { name: "checkmark", color: "blue" }))));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
var css_248z$3 = "._3s8-RC5Ky3s- {\n -webkit-transform: translateY(calc((16px * 3) * -1));\n -webkit-transform: translateY(calc(calc(16px * 3) * -1));\n -webkit-transform: translateY(calc(var(--space-largest) * -1));\n transform: translateY(calc((16px * 3) * -1));\n transform: translateY(calc(calc(16px * 3) * -1));\n transform: translateY(calc(var(--space-largest) * -1));\n}\n";
|
|
92
|
+
var styles$3 = {"trigger":"_3s8-RC5Ky3s-"};
|
|
93
|
+
styleInject_es.styleInject(css_248z$3);
|
|
94
|
+
|
|
95
|
+
function ComboboxLoadMore({ onLoadMore }) {
|
|
96
|
+
const [inViewRef, isInView] = useInView.useInView();
|
|
97
|
+
React.useEffect(() => {
|
|
98
|
+
isInView && onLoadMore();
|
|
99
|
+
}, [isInView]);
|
|
100
|
+
return (React__default["default"].createElement("div", { "data-testid": "ATL-Combobox-Loadmore-Trigger", ref: inViewRef, className: styles$3.trigger }));
|
|
86
101
|
}
|
|
87
102
|
|
|
88
103
|
function ComboboxContentList(props) {
|
|
89
104
|
const optionsExist = props.options.length > 0;
|
|
90
|
-
const showOptions = optionsExist && !props.loading;
|
|
91
105
|
const hasSearchTerm = props.searchValue.length > 0;
|
|
92
106
|
const { listScrollState } = useScrollState(props.optionsListRef, props.options);
|
|
93
|
-
return (React__default["default"].createElement("div", { className: classnames__default["default"](styles$
|
|
94
|
-
optionsExist && (React__default["default"].createElement("ul", { className: styles$
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
107
|
+
return (React__default["default"].createElement("div", { className: classnames__default["default"](styles$5.container, styles$5[listScrollState]) },
|
|
108
|
+
optionsExist && (React__default["default"].createElement("ul", { className: styles$5.optionsList, role: "listbox", "aria-multiselectable": props.multiselect, ref: props.optionsListRef },
|
|
109
|
+
props.options.map(option => {
|
|
110
|
+
return (React__default["default"].createElement(ComboboxOption, { key: option.id, id: option.id, label: option.label }));
|
|
111
|
+
}),
|
|
112
|
+
React__default["default"].createElement("div", { className: classnames__default["default"]([styles$5.loadingContainer, styles$5.hasOptions]) },
|
|
113
|
+
React__default["default"].createElement(AnimatedPresence.AnimatedPresence, { transition: "fromBottom" }, Boolean(props.loading && optionsExist) && (React__default["default"].createElement(Spinner.Spinner, { size: "small" })))),
|
|
114
|
+
props.onLoadMore && (React__default["default"].createElement(ComboboxLoadMore, { onLoadMore: props.onLoadMore })))),
|
|
115
|
+
props.loading && !optionsExist && (React__default["default"].createElement(React__default["default"].Fragment, null, Array.from({ length: 5 }).map((_, index) => (React__default["default"].createElement("div", { className: styles$5.loadingContainer, key: index },
|
|
116
|
+
React__default["default"].createElement(Glimmer.Glimmer, { shape: "rectangle", size: "small" })))))),
|
|
117
|
+
hasSearchTerm && !props.loading && !optionsExist && (React__default["default"].createElement("div", { className: styles$5.filterMessage },
|
|
102
118
|
React__default["default"].createElement(Text.Text, { variation: "subdued" },
|
|
103
119
|
"No results for ",
|
|
104
120
|
`“${props.searchValue}”`))),
|
|
105
|
-
!hasSearchTerm && !optionsExist && (React__default["default"].createElement("div", { className: styles$
|
|
121
|
+
!hasSearchTerm && !props.loading && !optionsExist && (React__default["default"].createElement("div", { className: styles$5.emptyStateMessage },
|
|
106
122
|
React__default["default"].createElement(Text.Text, { variation: "subdued" }, getZeroIndexStateText(props.subjectNoun))))));
|
|
107
123
|
}
|
|
108
124
|
function getZeroIndexStateText(subjectNoun) {
|
|
@@ -123,7 +139,7 @@ function useScrollState(optionsListRef, options) {
|
|
|
123
139
|
else if (scrollTop === 0) {
|
|
124
140
|
setlistScrollState("scrollTop");
|
|
125
141
|
}
|
|
126
|
-
else if (scrollTop + clientHeight
|
|
142
|
+
else if (scrollTop + clientHeight >= scrollHeight) {
|
|
127
143
|
setlistScrollState("scrollBottom");
|
|
128
144
|
}
|
|
129
145
|
else {
|
|
@@ -283,16 +299,16 @@ function ComboboxContent(props) {
|
|
|
283
299
|
const optionsExist = props.options.length > 0;
|
|
284
300
|
const { optionsListRef } = useComboboxContent(props.open, props.selected);
|
|
285
301
|
const { popperRef, popperStyles, attributes } = useComboboxAccessibility(props.handleSelection, props.options, optionsListRef, props.open, props.wrapperRef);
|
|
286
|
-
const template = (React__default["default"].createElement("div", Object.assign({ ref: popperRef, id: "ATL-Combobox-Content", "data-testid": "ATL-Combobox-Content", tabIndex: 0, className: classnames__default["default"](styles$
|
|
302
|
+
const template = (React__default["default"].createElement("div", Object.assign({ ref: popperRef, id: "ATL-Combobox-Content", "data-testid": "ATL-Combobox-Content", tabIndex: 0, className: classnames__default["default"](styles$7.content, { [styles$7.hidden]: !props.open }), style: popperStyles.popper }, attributes.popper),
|
|
287
303
|
React__default["default"].createElement(ComboboxContentSearch, { open: props.open, placeholder: props.subjectNoun, searchValue: props.searchValue, setSearchValue: props.setSearchValue, handleSearchChange: props.handleSearchChange }),
|
|
288
|
-
props.multiselect && optionsExist && (React__default["default"].createElement(ComboboxContentHeader, { hasOptionsVisible: optionsExist, subjectNoun: props.subjectNoun, selectedCount: props.selected.length, onClearAll: () => {
|
|
304
|
+
props.multiselect && (optionsExist || props.selected.length > 0) && (React__default["default"].createElement(ComboboxContentHeader, { hasOptionsVisible: optionsExist, subjectNoun: props.subjectNoun, selectedCount: props.selected.length, onClearAll: () => {
|
|
289
305
|
props.selectedStateSetter([]);
|
|
290
306
|
}, onSelectAll: () => {
|
|
291
307
|
props.selectedStateSetter(props.options);
|
|
292
308
|
} })),
|
|
293
|
-
React__default["default"].createElement(ComboboxContentList, { multiselect: props.multiselect, options: props.options, selected: props.selected, optionsListRef: optionsListRef, searchValue: props.searchValue, subjectNoun: props.subjectNoun, loading: props.loading }),
|
|
294
|
-
props.actionElements && (React__default["default"].createElement("div", { className: styles$
|
|
295
|
-
[styles$
|
|
309
|
+
React__default["default"].createElement(ComboboxContentList, { multiselect: props.multiselect, options: props.options, selected: props.selected, optionsListRef: optionsListRef, searchValue: props.searchValue, subjectNoun: props.subjectNoun, loading: props.loading, onLoadMore: props.onLoadMore }),
|
|
310
|
+
props.actionElements && (React__default["default"].createElement("div", { className: styles$7.actions, role: "group" }, props.actionElements.map((child, index, childrenArray) => (React__default["default"].createElement("div", { key: index, className: classnames__default["default"]({
|
|
311
|
+
[styles$7.actionPadding]: index === childrenArray.length - 1,
|
|
296
312
|
}) }, child)))))));
|
|
297
313
|
return ReactDOM__default["default"].createPortal(template, document.body);
|
|
298
314
|
}
|
|
@@ -335,15 +351,16 @@ var css_248z = ".W8qMZnORYxI- {\n position: fixed;\n top: 0;\n right: 0;\n b
|
|
|
335
351
|
var styles = {"overlay":"W8qMZnORYxI-","wrapper":"_-0dkolvLF-Y-"};
|
|
336
352
|
styleInject_es.styleInject(css_248z);
|
|
337
353
|
|
|
338
|
-
function useMakeComboboxHandlers(setOpen, setSearchValue, selectedOptions, shouldScroll, selectedStateSetter, multiSelect, onClose) {
|
|
354
|
+
function useMakeComboboxHandlers(setOpen, setSearchValue, selectedOptions, shouldScroll, selectedStateSetter, multiSelect, onClose, onSearch) {
|
|
339
355
|
const handleClose = React.useCallback(() => {
|
|
340
356
|
setOpen(false);
|
|
341
357
|
setSearchValue("");
|
|
358
|
+
onSearch && onSearch("");
|
|
342
359
|
onClose && onClose();
|
|
343
360
|
if (selectedOptions.length > 0) {
|
|
344
361
|
shouldScroll.current = true;
|
|
345
362
|
}
|
|
346
|
-
}, [setOpen, setSearchValue, onClose, selectedOptions.length]);
|
|
363
|
+
}, [setOpen, setSearchValue, onClose, onSearch, selectedOptions.length]);
|
|
347
364
|
const handleSelection = React.useCallback((selection) => {
|
|
348
365
|
if (multiSelect) {
|
|
349
366
|
handleMultiSelect(selectedStateSetter, selectedOptions, selection);
|
|
@@ -376,7 +393,7 @@ function useCombobox(selected, onSelect, options, onClose, multiSelect, onSearch
|
|
|
376
393
|
const [open, setOpen] = React.useState(false);
|
|
377
394
|
const [searchValue, setSearchValue] = React.useState("");
|
|
378
395
|
const searchCallback = React.useCallback(debounce__default["default"]((value) => onSearch === null || onSearch === void 0 ? void 0 : onSearch(value), debounceTime), [onSearch, debounceTime]);
|
|
379
|
-
const { handleClose, handleSelection } = useMakeComboboxHandlers(setOpen, setSearchValue, selected, shouldScroll, onSelect, multiSelect, onClose);
|
|
396
|
+
const { handleClose, handleSelection } = useMakeComboboxHandlers(setOpen, setSearchValue, selected, shouldScroll, onSelect, multiSelect, onClose, onSearch);
|
|
380
397
|
const internalFilteredOptions = options.filter(option => option.label.toLowerCase().includes(searchValue.toLowerCase()));
|
|
381
398
|
return {
|
|
382
399
|
wrapperRef,
|
|
@@ -448,7 +465,7 @@ function Combobox(props) {
|
|
|
448
465
|
React__default["default"].createElement("div", { ref: wrapperRef, className: styles.wrapper },
|
|
449
466
|
open && (React__default["default"].createElement("div", { className: styles.overlay, onClick: () => handleClose(), "data-testid": "ATL-Combobox-Overlay" })),
|
|
450
467
|
triggerElement || (React__default["default"].createElement(ComboboxTrigger, { label: props.label, selected: props.selected })),
|
|
451
|
-
React__default["default"].createElement(ComboboxContent, { multiselect: props.multiSelect, subjectNoun: props.subjectNoun, selected: selectedOptions, actionElements: actionElements, selectedStateSetter: selectedStateSetter, handleSelection: handleSelection, searchValue: searchValue, setSearchValue: setSearchValue, wrapperRef: wrapperRef, open: open, setOpen: setOpen, options: props.onSearch ? options : internalFilteredOptions, loading: props.loading, handleSearchChange: handleSearchChange }))));
|
|
468
|
+
React__default["default"].createElement(ComboboxContent, { multiselect: props.multiSelect, subjectNoun: props.subjectNoun, selected: selectedOptions, actionElements: actionElements, selectedStateSetter: selectedStateSetter, handleSelection: handleSelection, searchValue: searchValue, setSearchValue: setSearchValue, wrapperRef: wrapperRef, open: open, setOpen: setOpen, options: props.onSearch ? options : internalFilteredOptions, loading: props.loading, handleSearchChange: handleSearchChange, onLoadMore: props.onLoadMore }))));
|
|
452
469
|
}
|
|
453
470
|
Combobox.Activator = ComboboxActivator;
|
|
454
471
|
Combobox.Action = ComboboxAction;
|
package/dist/DataDump/index.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var Card = require('../Card-
|
|
6
|
+
var Card = require('../Card-0a6f3a28.js');
|
|
7
7
|
var Content = require('../Content-e3f7b6fc.js');
|
|
8
8
|
var Emphasis = require('../Emphasis-bda56d3b.js');
|
|
9
9
|
require('classnames');
|
|
@@ -15,11 +15,12 @@ require('../Button-b73a5e01.js');
|
|
|
15
15
|
require('react-router-dom');
|
|
16
16
|
require('../Icon-405a216c.js');
|
|
17
17
|
require('@jobber/design');
|
|
18
|
-
require('../Menu-
|
|
18
|
+
require('../Menu-5fc613a1.js');
|
|
19
19
|
require('uuid');
|
|
20
20
|
require('framer-motion');
|
|
21
21
|
require('@jobber/hooks/useOnKeyDown');
|
|
22
22
|
require('@jobber/hooks/useRefocusOnActivator');
|
|
23
|
+
require('@jobber/hooks/useSafeLayoutEffect');
|
|
23
24
|
|
|
24
25
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
25
26
|
|
|
@@ -15,6 +15,7 @@ export declare const SEARCH_DEBOUNCE_DELAY: number;
|
|
|
15
15
|
export declare const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
|
|
16
16
|
export declare const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
|
|
17
17
|
export declare const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
|
|
18
|
+
export declare const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
|
|
18
19
|
export declare const TRANSITION_DURATION_IN_SECONDS: number;
|
|
19
20
|
export declare const TRANSITION_DELAY_IN_SECONDS: number;
|
|
20
21
|
export {};
|
|
@@ -39,6 +39,10 @@ export interface SortableOptions {
|
|
|
39
39
|
readonly label: string;
|
|
40
40
|
readonly order: "asc" | "desc";
|
|
41
41
|
}
|
|
42
|
+
export interface DataListSortable {
|
|
43
|
+
readonly key: string;
|
|
44
|
+
readonly options?: SortableOptions[];
|
|
45
|
+
}
|
|
42
46
|
export interface DataListProps<T extends DataListObject> {
|
|
43
47
|
/**
|
|
44
48
|
* The data to render in the DataList.
|
|
@@ -92,10 +96,7 @@ export interface DataListProps<T extends DataListObject> {
|
|
|
92
96
|
* `onSort`: The callback function when the user sorting a column.
|
|
93
97
|
*/
|
|
94
98
|
readonly sorting?: {
|
|
95
|
-
readonly sortable:
|
|
96
|
-
key: string;
|
|
97
|
-
options?: SortableOptions[];
|
|
98
|
-
}[];
|
|
99
|
+
readonly sortable: DataListSortable[];
|
|
99
100
|
readonly state: DataListSorting | undefined;
|
|
100
101
|
readonly onSort: (sorting?: DataListSorting) => void;
|
|
101
102
|
};
|
package/dist/DataList/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from "./DataList";
|
|
2
|
-
export { DataListItemType, DataListSorting, DataListSelectedType, DataListSelectedAllType, } from "./DataList.types";
|
|
2
|
+
export { DataListItemType, DataListSorting, DataListSortable, DataListSelectedType, DataListSelectedAllType, } from "./DataList.types";
|
package/dist/DataList/index.js
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var tslib_es6 = require('../tslib.es6-
|
|
5
|
+
var tslib_es6 = require('../tslib.es6-754e2961.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
|
|
8
8
|
var Text = require('../Text-259af966.js');
|
|
9
|
-
var Glimmer = require('../Glimmer-
|
|
9
|
+
var Glimmer = require('../Glimmer-7c317864.js');
|
|
10
10
|
var noop = require('lodash/noop');
|
|
11
11
|
var design = require('@jobber/design');
|
|
12
12
|
var framerMotion = require('framer-motion');
|
|
13
13
|
var classnames = require('classnames');
|
|
14
|
-
var Tooltip = require('../Tooltip-
|
|
14
|
+
var Tooltip = require('../Tooltip-ef3d6ef4.js');
|
|
15
15
|
var Button = require('../Button-b73a5e01.js');
|
|
16
16
|
var useInView = require('@jobber/hooks/useInView');
|
|
17
17
|
var isEmpty = require('lodash/isEmpty');
|
|
@@ -23,26 +23,28 @@ var Icon = require('../Icon-405a216c.js');
|
|
|
23
23
|
var FormatDate = require('../FormatDate-70ea5b43.js');
|
|
24
24
|
var Heading = require('../Heading-1e8e4bd3.js');
|
|
25
25
|
var ReactDOM = require('react-dom');
|
|
26
|
-
var Checkbox = require('../Checkbox-
|
|
26
|
+
var Checkbox = require('../Checkbox-99f6297f.js');
|
|
27
27
|
var reactRouterDom = require('react-router-dom');
|
|
28
|
-
var AnimatedSwitcher = require('../AnimatedSwitcher-
|
|
29
|
-
var Combobox = require('../Combobox-
|
|
30
|
-
var Chip = require('../Chip-
|
|
28
|
+
var AnimatedSwitcher = require('../AnimatedSwitcher-3d45ec5d.js');
|
|
29
|
+
var Combobox = require('../Combobox-d24f1fec.js');
|
|
30
|
+
var Chip = require('../Chip-3d1bfddc.js');
|
|
31
31
|
var debounce = require('lodash/debounce');
|
|
32
|
-
var InputText = require('../InputText-
|
|
32
|
+
var InputText = require('../InputText-6c71361e.js');
|
|
33
33
|
var Spinner = require('../Spinner-9d8fc7ff.js');
|
|
34
34
|
var Typography = require('../Typography-c45bf216.js');
|
|
35
35
|
require('../Content-e3f7b6fc.js');
|
|
36
|
+
require('@jobber/hooks/useSafeLayoutEffect');
|
|
36
37
|
require('react-popper');
|
|
37
38
|
require('../getAtlantisConfig-0f3e8af2.js');
|
|
38
39
|
require('uuid');
|
|
39
40
|
require('react-hook-form');
|
|
41
|
+
require('../AnimatedPresence-20a02aaa.js');
|
|
40
42
|
require('@jobber/hooks/useAssert');
|
|
41
43
|
require('../Avatar-76a799fa.js');
|
|
42
44
|
require('color');
|
|
43
|
-
require('../FormField-
|
|
45
|
+
require('../FormField-b4e6c549.js');
|
|
44
46
|
require('@jobber/hooks/useShowClear');
|
|
45
|
-
require('../InputValidation-
|
|
47
|
+
require('../InputValidation-05e839fa.js');
|
|
46
48
|
|
|
47
49
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
48
50
|
|
|
@@ -52,7 +54,7 @@ var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
|
52
54
|
var isEmpty__default = /*#__PURE__*/_interopDefaultLegacy(isEmpty);
|
|
53
55
|
var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
54
56
|
|
|
55
|
-
var css_248z$g = ".TkdrExYnvcY-,\n.TkdrExYnvcY- * {\n box-sizing: border-box;\n}\n\n.TkdrExYnvcY- {\n --data-list--minimum-item-height: calc(var(--base-unit) * 3.5);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n z-index: 0;\n z-index: var(--elevation-default);\n -ms-flex: 1;\n flex: 1;\n}\n\n/*\n * Header\n */\n\n.IcAlZHoB4LI- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n z-index: 1;\n z-index: var(--elevation-base);\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.TFO76ysivmg- {\n display: grid;\n padding: calc((16px / 2) + (16px / 4)) 0;\n padding: calc(calc(16px / 2) + calc(16px / 4)) 0;\n padding: calc(var(--space-small) + var(--space-smaller)) 0;\n gap: calc(16px / 2);\n grid-gap: calc(16px / 2);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n grid-template-columns: auto fit-content(calc(16px * 14));\n grid-template-columns: auto fit-content(calc(var(--base-unit) * 14));\n}\n\n.jGHZZYZm1ZY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: calc(16px * 3);\n min-height: var(--space-largest);\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 8) solid rgb(217, 223, 225);\n border-bottom: var(--border-thick) solid var(--color-border);\n}\n\n.GiD7MjZJbcw- {\n --data-list--header-actions-gap: var(--space-small);\n display: -ms-flexbox;\n display: flex;\n gap: calc(16px / 2);\n gap: var(--data-list--header-actions-gap);\n}\n\n@media (max-width: 489px) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n@media (--small-screens-and-below) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n.jMSVGIAr5tk- > p {\n font-weight: 500;\n white-space: nowrap;\n}\n\n.jMSVGIAr5tk- {\n display: -ms-flexbox;\n display: flex;\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n -ms-flex-align: center;\n align-items: center;\n gap: var(--data-list--header-actions-gap);\n}\n\n/*\n * List Item\n */\n\n.ise8kHCfhCY- {\n position: relative;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.ise8kHCfhCY-,\n.Tq6e0BGwcSM- {\n display: grid;\n grid-template-columns: minmax(0px, auto);\n min-height: var(--data-list--minimum-item-height);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.ise8kHCfhCY-.Pc0JGX6jCD4-,\n.ise8kHCfhCY-:hover,\n.ise8kHCfhCY-:focus-within {\n --data-list-item-active-color: var(--color-surface--hover);\n background-color: rgb(244, 246, 250);\n background-color: var(--data-list-item-active-color);\n}\n\n.Tq6e0BGwcSM- {\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n text-align: left;\n -webkit-text-decoration: none;\n text-decoration: none;\n background-color: transparent;\n cursor: pointer;\n}\n\n/**\n * Reset CSS properties on focus to ensure we only have the focus state on the\n * parent .listItem\n */\n\n.Tq6e0BGwcSM-:focus {\n outline: none;\n background-color: transparent;\n}\n\n/**\n * Enable a better hover and focus experience when :has() is supported.\n * This is a workaround for Firefox where the :has() selector is not supported.\n */\n\n@supports selector(*:has(*)) {\n .ise8kHCfhCY-:hover,\n .ise8kHCfhCY-:focus-within {\n background-color: transparent;\n }\n\n .ise8kHCfhCY-:has(.Tq6e0BGwcSM-:hover, .Tq6e0BGwcSM-:focus) {\n background-color: var(--data-list-item-active-color);\n }\n}\n\n/*\n * List Item Selection\n */\n\n.d-79rkMqufg- {\n display: grid;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (min-width: 768px) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n.d-79rkMqufg-,\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n grid-template-columns: -webkit-max-content minmax(0px, auto);\n grid-template-columns: max-content minmax(0px, auto);\n -webkit-column-gap: calc(16px / 2);\n -webkit-column-gap: var(--space-small);\n -moz-column-gap: calc(16px / 2);\n -moz-column-gap: var(--space-small);\n column-gap: calc(16px / 2);\n column-gap: var(--space-small);\n}\n\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n display: grid;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qm-SSuWTXkI- {\n display: -ms-flexbox;\n display: flex;\n visibility: hidden;\n\n /* To compensate the Checkbox's label margin that we are using for screen-readers */\n margin-right: calc((16px * 1) * -1);\n margin-right: calc(calc(16px * 1) * -1);\n margin-right: calc(var(--space-base) * -1);\n}\n\n.qm-SSuWTXkI-.VA9RnQp6nbI- {\n visibility: visible;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :first-child {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n -ms-flex-order: 1;\n order: 1;\n padding-top: calc(16px / 4);\n padding-top: var(--space-smaller);\n opacity: 1;\n transition: opacity 100ms ease-in-out;\n transition: opacity var(--transition-properties);\n --transition-properties: var(--timing-quick) ease-in-out;\n}\n\n@media (min-width: 768px) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n.ise8kHCfhCY-:hover .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY-:focus-within .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY- .d-79rkMqufg-._4L7iXXzLr5k- > :last-child {\n opacity: 1;\n}\n\n/*\n * Filters\n */\n\n.Kkp-IYmwq-s- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(255, 255, 255, 0.6);\n background-color: var(--color-overlay--dimmed);\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.m-eCShL7TU4- {\n position: sticky;\n top: 50vh;\n}\n\n/* This hides the text from the UI but not from the screen readers */\n\n.esUiRgWabYw- {\n position: absolute;\n top: auto;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n text-indent: -10000px;\n}\n";
|
|
57
|
+
var css_248z$g = ".TkdrExYnvcY-,\n.TkdrExYnvcY- * {\n box-sizing: border-box;\n}\n\n.TkdrExYnvcY- {\n --data-list--minimum-item-height: calc(var(--base-unit) * 3.5);\n\n display: -ms-flexbox;\n\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n position: relative;\n z-index: 0;\n z-index: var(--elevation-default);\n -ms-flex: 1;\n flex: 1;\n}\n\n/*\n * Header\n */\n\n.IcAlZHoB4LI- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n z-index: 1;\n z-index: var(--elevation-base);\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.TFO76ysivmg- {\n display: grid;\n padding: calc((16px / 2) + (16px / 4)) 0;\n padding: calc(calc(16px / 2) + calc(16px / 4)) 0;\n padding: calc(var(--space-small) + var(--space-smaller)) 0;\n gap: calc(16px / 2);\n grid-gap: calc(16px / 2);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n grid-template-columns: auto fit-content(calc(16px * 14));\n grid-template-columns: auto fit-content(calc(var(--base-unit) * 14));\n}\n\n.TFO76ysivmg-:empty {\n display: none;\n}\n\n.jGHZZYZm1ZY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-pack: center;\n justify-content: center;\n min-height: calc(16px * 3);\n min-height: var(--space-largest);\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 8) solid rgb(217, 223, 225);\n border-bottom: var(--border-thick) solid var(--color-border);\n}\n\n.GiD7MjZJbcw- {\n --data-list--header-actions-gap: var(--space-small);\n display: -ms-flexbox;\n display: flex;\n gap: calc(16px / 2);\n gap: var(--data-list--header-actions-gap);\n}\n\n@media (max-width: 489px) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n@media (--small-screens-and-below) {\n\n.GiD7MjZJbcw- {\n -ms-flex-pack: justify;\n justify-content: space-between;\n width: 100%;\n}\n }\n\n.jMSVGIAr5tk- > p {\n font-weight: 500;\n white-space: nowrap;\n}\n\n.jMSVGIAr5tk- {\n display: -ms-flexbox;\n display: flex;\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n -ms-flex-align: center;\n align-items: center;\n gap: var(--data-list--header-actions-gap);\n}\n\n/*\n * List Item\n */\n\n.ise8kHCfhCY- {\n position: relative;\n padding: calc(16px / 2);\n padding: var(--space-small);\n border-bottom: calc(16px / 16) solid rgb(217, 223, 225);\n border-bottom: var(--border-base) solid var(--color-border);\n transition: all 200ms;\n transition: all var(--timing-base);\n}\n\n.ise8kHCfhCY-,\n.Tq6e0BGwcSM- {\n display: grid;\n grid-template-columns: minmax(0px, auto);\n min-height: var(--data-list--minimum-item-height);\n -ms-flex-align: center;\n align-items: center;\n}\n\n.ise8kHCfhCY-.Pc0JGX6jCD4-,\n.ise8kHCfhCY-:hover,\n.ise8kHCfhCY-:focus-within {\n --data-list-item-active-color: var(--color-surface--hover);\n background-color: rgb(244, 246, 250);\n background-color: var(--data-list-item-active-color);\n}\n\n.Tq6e0BGwcSM- {\n margin: calc((16px / 2) * -1) 0;\n margin: calc(calc(16px / 2) * -1) 0;\n margin: calc(var(--space-small) * -1) 0;\n padding: calc(16px / 2) 0;\n padding: var(--space-small) 0;\n border: none;\n text-align: left;\n -webkit-text-decoration: none;\n text-decoration: none;\n background-color: transparent;\n cursor: pointer;\n}\n\n/**\n * Reset CSS properties on focus to ensure we only have the focus state on the\n * parent .listItem\n */\n\n.Tq6e0BGwcSM-:focus {\n outline: none;\n background-color: transparent;\n}\n\n/**\n * Enable a better hover and focus experience when :has() is supported.\n * This is a workaround for Firefox where the :has() selector is not supported.\n */\n\n@supports selector(*:has(*)) {\n .ise8kHCfhCY-:hover,\n .ise8kHCfhCY-:focus-within {\n background-color: transparent;\n }\n\n .ise8kHCfhCY-:has(.Tq6e0BGwcSM-:hover, .Tq6e0BGwcSM-:focus) {\n background-color: var(--data-list-item-active-color);\n }\n}\n\n/*\n * List Item Selection\n */\n\n.d-79rkMqufg- {\n display: grid;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n@media (min-width: 768px) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.d-79rkMqufg- {\n -ms-flex-align: center;\n align-items: center;\n}\n }\n\n.d-79rkMqufg-,\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n grid-template-columns: -webkit-max-content minmax(0px, auto);\n grid-template-columns: max-content minmax(0px, auto);\n -webkit-column-gap: calc(16px / 2);\n -webkit-column-gap: var(--space-small);\n -moz-column-gap: calc(16px / 2);\n -moz-column-gap: var(--space-small);\n column-gap: calc(16px / 2);\n column-gap: var(--space-small);\n}\n\n.jGHZZYZm1ZY- .d-79rkMqufg- {\n display: grid;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qm-SSuWTXkI- {\n display: -ms-flexbox;\n display: flex;\n visibility: hidden;\n\n /* To compensate the Checkbox's label margin that we are using for screen-readers */\n margin-right: calc((16px * 1) * -1);\n margin-right: calc(calc(16px * 1) * -1);\n margin-right: calc(var(--space-base) * -1);\n}\n\n.qm-SSuWTXkI-.VA9RnQp6nbI- {\n visibility: visible;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :first-child {\n -ms-flex-order: 2;\n order: 2;\n}\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n -ms-flex-order: 1;\n order: 1;\n padding-top: calc(16px / 4);\n padding-top: var(--space-smaller);\n opacity: 1;\n transition: opacity 100ms ease-in-out;\n transition: opacity var(--transition-properties);\n --transition-properties: var(--timing-quick) ease-in-out;\n}\n\n@media (min-width: 768px) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.ise8kHCfhCY- .d-79rkMqufg- > :last-child {\n padding-top: 0;\n opacity: 0;\n}\n }\n\n.ise8kHCfhCY-:hover .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY-:focus-within .d-79rkMqufg- > :last-child,\n.ise8kHCfhCY- .d-79rkMqufg-._4L7iXXzLr5k- > :last-child {\n opacity: 1;\n}\n\n/*\n * Filters\n */\n\n.Kkp-IYmwq-s- {\n display: -ms-flexbox;\n display: flex;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(255, 255, 255, 0.6);\n background-color: var(--color-overlay--dimmed);\n -ms-flex-align: start;\n align-items: flex-start;\n -ms-flex-pack: center;\n justify-content: center;\n}\n\n.m-eCShL7TU4- {\n position: sticky;\n top: 50vh;\n}\n\n/* This hides the text from the UI but not from the screen readers */\n\n.esUiRgWabYw- {\n position: absolute;\n top: auto;\n left: -10000px;\n width: 1px;\n height: 1px;\n overflow: hidden;\n text-indent: -10000px;\n}\n";
|
|
56
58
|
var styles$g = {"wrapper":"TkdrExYnvcY-","titleContainer":"IcAlZHoB4LI-","headerFilters":"TFO76ysivmg-","headerTitles":"jGHZZYZm1ZY-","batchSelectContainer":"GiD7MjZJbcw-","headerBatchSelect":"jMSVGIAr5tk-","listItem":"ise8kHCfhCY-","listItemClickable":"Tq6e0BGwcSM-","active":"Pc0JGX6jCD4-","selectable":"d-79rkMqufg-","selectAllCheckbox":"qm-SSuWTXkI-","visible":"VA9RnQp6nbI-","selected":"_4L7iXXzLr5k-","filtering":"Kkp-IYmwq-s-","filteringSpinner":"m-eCShL7TU4-","srOnly":"esUiRgWabYw-"};
|
|
57
59
|
styleInject_es.styleInject(css_248z$g);
|
|
58
60
|
|
|
@@ -144,6 +146,7 @@ const SEARCH_DEBOUNCE_DELAY = design.tokens["timing-slowest"];
|
|
|
144
146
|
const DATA_LIST_FILTERING_SPINNER_TEST_ID = "ATL-DataList-filteringSpinner";
|
|
145
147
|
const DATA_LIST_LOADING_MORE_SPINNER_TEST_ID = "ATL-DataList-loadingMoreSpinner";
|
|
146
148
|
const DATA_LOAD_MORE_TEST_ID = "ATL-DataList-LoadMore-trigger";
|
|
149
|
+
const DATA_LIST_STICKY_HEADER_TEST_ID = "ATL-DataList-stickyHeader";
|
|
147
150
|
const TRANSITION_DURATION_IN_SECONDS = design.tokens["timing-base"] / 1000;
|
|
148
151
|
const TRANSITION_DELAY_IN_SECONDS = design.tokens["timing-quick"] / 1000;
|
|
149
152
|
|
|
@@ -304,13 +307,13 @@ styleInject_es.styleInject(css_248z$8);
|
|
|
304
307
|
function DataListSortingOptions({ options, selectedOption, onSelectChange, onClose, optionsListRef, dataListHeaderTileRef, }) {
|
|
305
308
|
useRefocusOnActivator.useRefocusOnActivator(!optionsListRef.current);
|
|
306
309
|
useOnKeyDown.useOnKeyDown(() => onClose(), "Escape");
|
|
307
|
-
|
|
310
|
+
React.useEffect(() => {
|
|
308
311
|
document.addEventListener("mousedown", handleClickOutside);
|
|
309
312
|
return () => {
|
|
310
313
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
311
314
|
};
|
|
312
315
|
}, [optionsListRef, dataListHeaderTileRef, onClose]);
|
|
313
|
-
return (React__default["default"].createElement("ul", { className: styles$8.optionsList, ref: optionsListRef }, options.map(
|
|
316
|
+
return (React__default["default"].createElement("ul", { className: styles$8.optionsList, ref: optionsListRef }, options.map(option => (React__default["default"].createElement("li", { className: styles$8.option, key: option.id, onClick: () => onSelectChange(option), onKeyDown: event => handleKeyDown(event, option), tabIndex: 0, "data-value": option.id },
|
|
314
317
|
option.label,
|
|
315
318
|
option.label === (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) && (React__default["default"].createElement(Icon.Icon, { name: "checkmark", color: "blue" })))))));
|
|
316
319
|
function handleKeyDown(event, option) {
|
|
@@ -320,9 +323,9 @@ function DataListSortingOptions({ options, selectedOption, onSelectChange, onClo
|
|
|
320
323
|
}
|
|
321
324
|
function handleClickOutside(event) {
|
|
322
325
|
var _a, _b;
|
|
323
|
-
const
|
|
324
|
-
|
|
325
|
-
if (!
|
|
326
|
+
const isClickInside = ((_a = optionsListRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.target)) ||
|
|
327
|
+
((_b = dataListHeaderTileRef.current) === null || _b === void 0 ? void 0 : _b.contains(event.target));
|
|
328
|
+
if (!isClickInside) {
|
|
326
329
|
onClose();
|
|
327
330
|
}
|
|
328
331
|
}
|
|
@@ -332,9 +335,9 @@ function DataListSortingOptions({ options, selectedOption, onSelectChange, onClo
|
|
|
332
335
|
function DataListHeaderTile({ headers, headerKey, visible = false, }) {
|
|
333
336
|
useRefocusOnActivator.useRefocusOnActivator(visible);
|
|
334
337
|
const { sorting } = useDataListContext();
|
|
335
|
-
const [isDropDownOpen, setIsDropDownOpen] =
|
|
338
|
+
const [isDropDownOpen, setIsDropDownOpen] = React.useState(false);
|
|
336
339
|
const optionsListRef = useFocusTrap.useFocusTrap(isDropDownOpen);
|
|
337
|
-
const dataListHeaderTileRef =
|
|
340
|
+
const dataListHeaderTileRef = React.useRef(null);
|
|
338
341
|
const sortableItem = sorting === null || sorting === void 0 ? void 0 : sorting.sortable.find(item => item.key === headerKey);
|
|
339
342
|
const isSortable = Boolean(sortableItem);
|
|
340
343
|
const sortingState = sorting === null || sorting === void 0 ? void 0 : sorting.state;
|
|
@@ -344,15 +347,15 @@ function DataListHeaderTile({ headers, headerKey, visible = false, }) {
|
|
|
344
347
|
}), onClick: handleOnClick, ref: dataListHeaderTileRef },
|
|
345
348
|
React__default["default"].createElement(Text.Text, { maxLines: "single" }, headers[headerKey]),
|
|
346
349
|
isSortable && (sortableItem === null || sortableItem === void 0 ? void 0 : sortableItem.options) && isDropDownOpen && (React__default["default"].createElement(DataListSortingOptions, { options: sortableItem.options, selectedOption: (sorting === null || sorting === void 0 ? void 0 : sorting.state) || null, onSelectChange: handleSelectChange, onClose: () => setIsDropDownOpen(false), optionsListRef: optionsListRef, dataListHeaderTileRef: dataListHeaderTileRef })),
|
|
347
|
-
|
|
348
|
-
function toggleSorting(newSortingKey, newId, newLabel
|
|
350
|
+
isSortable && (React__default["default"].createElement(DataListSortingArrows, { order: (sortingState === null || sortingState === void 0 ? void 0 : sortingState.key) === headerKey ? sortingState.order : "none" }))));
|
|
351
|
+
function toggleSorting(newSortingKey, newId, newLabel) {
|
|
349
352
|
const isSameKey = newSortingKey === (sortingState === null || sortingState === void 0 ? void 0 : sortingState.key);
|
|
350
353
|
const isDescending = (sortingState === null || sortingState === void 0 ? void 0 : sortingState.order) === "desc";
|
|
351
|
-
if (isSameKey && isDescending
|
|
354
|
+
if (isSameKey && isDescending) {
|
|
352
355
|
sorting === null || sorting === void 0 ? void 0 : sorting.onSort(undefined);
|
|
353
356
|
return;
|
|
354
357
|
}
|
|
355
|
-
const sortingOrder =
|
|
358
|
+
const sortingOrder = isSameKey ? "desc" : "asc";
|
|
356
359
|
setSorting(newSortingKey, newId, newLabel, sortingOrder);
|
|
357
360
|
}
|
|
358
361
|
function setSorting(newSortingKey, newId, newLabel, newOrder) {
|
|
@@ -371,11 +374,8 @@ function DataListHeaderTile({ headers, headerKey, visible = false, }) {
|
|
|
371
374
|
setIsDropDownOpen(!isDropDownOpen);
|
|
372
375
|
}
|
|
373
376
|
else {
|
|
374
|
-
const headerValue = headers[headerKey];
|
|
375
377
|
const id = ((_b = (_a = sortableItem === null || sortableItem === void 0 ? void 0 : sortableItem.options) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id) || headerKey;
|
|
376
|
-
|
|
377
|
-
toggleSorting(id, headerKey, headerValue);
|
|
378
|
-
}
|
|
378
|
+
toggleSorting(id, headerKey, headers[headerKey]);
|
|
379
379
|
}
|
|
380
380
|
}
|
|
381
381
|
function handleSelectChange(newSortOption) {
|
|
@@ -1019,7 +1019,7 @@ function DataListStickyHeader({ children }) {
|
|
|
1019
1019
|
ref.current && observer.unobserve(ref.current);
|
|
1020
1020
|
};
|
|
1021
1021
|
}, [handleObserver, ref.current]);
|
|
1022
|
-
return (React__default["default"].createElement("div", { ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
|
|
1022
|
+
return (React__default["default"].createElement("div", { "data-testid": DATA_LIST_STICKY_HEADER_TEST_ID, ref: ref, className: classnames__default["default"](styles$5.header, { [styles$5.stuck]: isStuck }) }, children));
|
|
1023
1023
|
}
|
|
1024
1024
|
|
|
1025
1025
|
var css_248z$4 = ".tj0MOMhLEEY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.SaPMOnvw-3c- {\n --transition-properties: var(--timing-base) ease-in-out;\n --button-offset: calc(var(--space-largest) - var(--space-smaller));\n\n position: absolute;\n top: 50%;\n right: calc((16px * 3) - (16px / 4));\n right: calc(calc(16px * 3) - calc(16px / 4));\n right: var(--button-offset);\n visibility: hidden;\n width: 0;\n padding: calc(16px / 4) 0;\n padding: var(--space-smaller) 0;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n opacity: 0;\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n transition: opacity 200ms ease-in-out,\n width 200ms ease-in-out, visibility 200ms ease-in-out;\n transition: opacity var(--transition-properties),\n width var(--transition-properties), visibility var(--transition-properties);\n}\n\n._3S1-91v2SYI- {\n visibility: visible;\n width: calc(100% - var(--button-offset));\n opacity: 1;\n}\n\n@media (min-width: 768px) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n.SaPMOnvw-3c-,\n._3S1-91v2SYI- {\n position: static;\n visibility: visible;\n width: auto;\n padding: 0;\n background-color: transparent;\n opacity: 1;\n -webkit-transform: none;\n transform: none;\n transition: none;\n}\n }\n\n._9GlBktsUALw- {\n display: block;\n}\n\n@media (min-width: 768px) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._9GlBktsUALw- {\n display: none;\n}\n }\n\n/*\n * No Filters Styling\n *\n * When there are no filters, the search input is always visible.\n * ------------------------------------------------------------------------- */\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n position: static;\n visibility: visible;\n width: auto;\n opacity: 1;\n transition: none;\n}\n\n@media (min-width: 768px) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n@media (--medium-screens-and-up) {\n\n._3Pjrt42x454- .SaPMOnvw-3c- {\n max-width: 30%;\n}\n }\n\n._3Pjrt42x454- ._9GlBktsUALw- {\n display: none;\n}\n";
|
|
@@ -1233,6 +1233,8 @@ function DataList(_a) {
|
|
|
1233
1233
|
const emptyStateComponents = getCompoundComponents(props.children, DataListEmptyState);
|
|
1234
1234
|
const itemActionComponent = getCompoundComponent(props.children, DataListItemActions);
|
|
1235
1235
|
const bulkActionsComponent = getCompoundComponent(props.children, DataListBulkActions);
|
|
1236
|
+
const headerCount = Object.keys(props.headers).length;
|
|
1237
|
+
const shouldRenderStickyHeader = !!filterComponent || !!searchComponent || headerCount > 0;
|
|
1236
1238
|
return (React__default["default"].createElement(DataListContext.Provider, { value: Object.assign(Object.assign({ searchComponent,
|
|
1237
1239
|
filterComponent,
|
|
1238
1240
|
layoutComponents,
|
|
@@ -1245,7 +1247,7 @@ function DataList(_a) {
|
|
|
1245
1247
|
registerLayout }, props), { selected,
|
|
1246
1248
|
// T !== DataListObject
|
|
1247
1249
|
sorting: sorting }) },
|
|
1248
|
-
React__default["default"].createElement(InternalDataList,
|
|
1250
|
+
React__default["default"].createElement(InternalDataList, { shouldRenderStickyHeader: shouldRenderStickyHeader })));
|
|
1249
1251
|
function registerLayoutBreakpoints(size) {
|
|
1250
1252
|
setLayoutBreakpoints(prev => sortBreakpoints([...prev, size]));
|
|
1251
1253
|
}
|
|
@@ -1253,7 +1255,7 @@ function DataList(_a) {
|
|
|
1253
1255
|
setLayouts(prev => (Object.assign(Object.assign({}, prev), { [size]: children })));
|
|
1254
1256
|
}
|
|
1255
1257
|
}
|
|
1256
|
-
function InternalDataList() {
|
|
1258
|
+
function InternalDataList({ shouldRenderStickyHeader, }) {
|
|
1257
1259
|
const { data, title, totalCount, loadingState = "none", layoutComponents, } = useDataListContext();
|
|
1258
1260
|
const backToTopRef = React.useRef(null);
|
|
1259
1261
|
const initialLoading = loadingState === "initial";
|
|
@@ -1264,12 +1266,12 @@ function InternalDataList() {
|
|
|
1264
1266
|
title && React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
|
|
1265
1267
|
React__default["default"].createElement(DataListTotalCount, { totalCount: totalCount, loading: initialLoading })),
|
|
1266
1268
|
React__default["default"].createElement("div", { ref: backToTopRef }),
|
|
1267
|
-
React__default["default"].createElement(DataListStickyHeader, null,
|
|
1269
|
+
shouldRenderStickyHeader && (React__default["default"].createElement(DataListStickyHeader, null,
|
|
1268
1270
|
React__default["default"].createElement("div", { className: styles$g.headerFilters },
|
|
1269
1271
|
React__default["default"].createElement(InternalDataListFilters, null),
|
|
1270
1272
|
React__default["default"].createElement(InternalDataListSearch, null)),
|
|
1271
1273
|
React__default["default"].createElement(InternalDataListStatusBar, null),
|
|
1272
|
-
React__default["default"].createElement(DataListHeader, null)),
|
|
1274
|
+
React__default["default"].createElement(DataListHeader, null))),
|
|
1273
1275
|
initialLoading && React__default["default"].createElement(DataListLoadingState, null),
|
|
1274
1276
|
showEmptyState && React__default["default"].createElement(InternalDataListEmptyState, null),
|
|
1275
1277
|
layoutComponents,
|
package/dist/DataTable/index.js
CHANGED
|
@@ -7,19 +7,19 @@ var classnames = require('classnames');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var jobberHooks = require('@jobber/hooks/useResizeObserver');
|
|
9
9
|
var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
|
|
10
|
-
var Glimmer = require('../Glimmer-
|
|
11
|
-
var tslib_es6 = require('../tslib.es6-
|
|
12
|
-
var Option = require('../Option-
|
|
10
|
+
var Glimmer = require('../Glimmer-7c317864.js');
|
|
11
|
+
var tslib_es6 = require('../tslib.es6-754e2961.js');
|
|
12
|
+
var Option = require('../Option-8565da71.js');
|
|
13
13
|
var Button = require('../Button-b73a5e01.js');
|
|
14
14
|
var Text = require('../Text-259af966.js');
|
|
15
15
|
require('../Content-e3f7b6fc.js');
|
|
16
|
-
require('../FormField-
|
|
16
|
+
require('../FormField-b4e6c549.js');
|
|
17
17
|
require('uuid');
|
|
18
18
|
require('react-hook-form');
|
|
19
19
|
require('@jobber/hooks/useShowClear');
|
|
20
20
|
require('../Icon-405a216c.js');
|
|
21
21
|
require('@jobber/design');
|
|
22
|
-
require('../InputValidation-
|
|
22
|
+
require('../InputValidation-05e839fa.js');
|
|
23
23
|
require('framer-motion');
|
|
24
24
|
require('../Spinner-9d8fc7ff.js');
|
|
25
25
|
require('react-router-dom');
|
package/dist/Form/index.js
CHANGED
package/dist/FormField/index.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var FormField = require('../FormField-
|
|
6
|
-
require('../tslib.es6-
|
|
5
|
+
var FormField = require('../FormField-b4e6c549.js');
|
|
6
|
+
require('../tslib.es6-754e2961.js');
|
|
7
7
|
require('react');
|
|
8
8
|
require('uuid');
|
|
9
9
|
require('react-hook-form');
|
|
@@ -16,7 +16,7 @@ require('../Icon-405a216c.js');
|
|
|
16
16
|
require('@jobber/design');
|
|
17
17
|
require('../Typography-c45bf216.js');
|
|
18
18
|
require('../Text-259af966.js');
|
|
19
|
-
require('../InputValidation-
|
|
19
|
+
require('../InputValidation-05e839fa.js');
|
|
20
20
|
require('framer-motion');
|
|
21
21
|
require('../Spinner-9d8fc7ff.js');
|
|
22
22
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var tslib_es6 = require('./tslib.es6-
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-754e2961.js');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var uuid = require('uuid');
|
|
6
6
|
var reactHookForm = require('react-hook-form');
|
|
@@ -10,7 +10,7 @@ var useShowClear = require('@jobber/hooks/useShowClear');
|
|
|
10
10
|
var Button = require('./Button-b73a5e01.js');
|
|
11
11
|
var Icon = require('./Icon-405a216c.js');
|
|
12
12
|
var Text = require('./Text-259af966.js');
|
|
13
|
-
var InputValidation = require('./InputValidation-
|
|
13
|
+
var InputValidation = require('./InputValidation-05e839fa.js');
|
|
14
14
|
var Spinner = require('./Spinner-9d8fc7ff.js');
|
|
15
15
|
|
|
16
16
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|