@jobber/components 4.23.39 → 4.23.41

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/RecurringSelect";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true,
5
+ });
6
+
7
+ var RecurringSelect = require("./dist/RecurringSelect");
8
+
9
+ Object.keys(RecurringSelect).forEach(function(key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ Object.defineProperty(exports, key, {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return RecurringSelect[key];
15
+ },
16
+ });
17
+ });
@@ -2,34 +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 InputGroup = require('../InputGroup-34e64048.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 = "._4bvHwa3-qBA- > *:not(:last-child) {\n margin-bottom: -1px !important;\n}\n\n.bHm4WuX8ToY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n\n.bHm4WuX8ToY- > *:not(:last-child) {\n margin-bottom: auto;\n margin-right: -1px;\n}\n\n/* Border corners are rounded on the outside edges of the group */\n\n.nmDPgrXofeE- {\n --public-field--top-left-radius: 0;\n --public-field--top-right-radius: 0;\n --public-field--bottom-left-radius: 0;\n --public-field--bottom-right-radius: 0;\n}\n\n._4bvHwa3-qBA- > :first-child:not(.bHm4WuX8ToY-) {\n --public-field--top-left-radius: var(--radius-base);\n --public-field--top-right-radius: var(--radius-base);\n}\n\n._4bvHwa3-qBA- > :last-child:not(.bHm4WuX8ToY-) {\n --public-field--bottom-left-radius: var(--radius-base);\n --public-field--bottom-right-radius: var(--radius-base);\n}\n\n/* First Horizontal Input Group */\n\n.bHm4WuX8ToY-:first-child > :first-child {\n --public-field--top-left-radius: var(--radius-base);\n}\n\n.bHm4WuX8ToY-:first-child > :last-child {\n --public-field--top-right-radius: var(--radius-base);\n}\n\n/* Last Horizontal Input Group */\n\n.bHm4WuX8ToY-:last-child > :first-child {\n --public-field--bottom-left-radius: var(--radius-base);\n}\n\n.bHm4WuX8ToY-:last-child > :last-child {\n --public-field--bottom-right-radius: var(--radius-base);\n}\n";
15
- var styles = {"vertical":"_4bvHwa3-qBA-","horizontal":"bHm4WuX8ToY-","inputGroup":"nmDPgrXofeE-"};
16
- styleInject_es.styleInject(css_248z);
17
-
18
- function InputGroup({ children, flowDirection = "vertical", }) {
19
- if (isInvalidGroupNesting(children))
20
- return React__default["default"].createElement(React__default["default"].Fragment, null);
21
- const className = classnames__default["default"](styles.inputGroup, styles[flowDirection]);
22
- return React__default["default"].createElement("div", { className: className }, children);
23
- }
24
- function isInvalidGroupNesting(childs) {
25
- return React__default["default"].Children.toArray(childs).some(child => {
26
- if (child.type === InputGroup &&
27
- child.props.flowDirection != "horizontal") {
28
- console.error(`ERROR: InputGroup not rendered: nesting 'flowDirection="vertical"' columns not supported.`, `https://atlantis.getjobber.com/components/input-group#nested-example`);
29
- return true;
30
- }
31
- return false;
32
- });
33
- }
34
-
35
- exports.InputGroup = InputGroup;
12
+ exports.InputGroup = InputGroup.InputGroup;
@@ -0,0 +1,33 @@
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 = "._4bvHwa3-qBA- > *:not(:last-child) {\n margin-bottom: -1px !important;\n}\n\n.bHm4WuX8ToY- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: end;\n align-items: flex-end;\n}\n\n.bHm4WuX8ToY- > *:not(:last-child) {\n margin-bottom: auto;\n margin-right: -1px;\n}\n\n/* Border corners are rounded on the outside edges of the group */\n\n.nmDPgrXofeE- {\n --public-field--top-left-radius: 0;\n --public-field--top-right-radius: 0;\n --public-field--bottom-left-radius: 0;\n --public-field--bottom-right-radius: 0;\n}\n\n._4bvHwa3-qBA- > :first-child:not(.bHm4WuX8ToY-) {\n --public-field--top-left-radius: var(--radius-base);\n --public-field--top-right-radius: var(--radius-base);\n}\n\n._4bvHwa3-qBA- > :last-child:not(.bHm4WuX8ToY-) {\n --public-field--bottom-left-radius: var(--radius-base);\n --public-field--bottom-right-radius: var(--radius-base);\n}\n\n/* First Horizontal Input Group */\n\n.bHm4WuX8ToY-:first-child > :first-child {\n --public-field--top-left-radius: var(--radius-base);\n}\n\n.bHm4WuX8ToY-:first-child > :last-child {\n --public-field--top-right-radius: var(--radius-base);\n}\n\n/* Last Horizontal Input Group */\n\n.bHm4WuX8ToY-:last-child > :first-child {\n --public-field--bottom-left-radius: var(--radius-base);\n}\n\n.bHm4WuX8ToY-:last-child > :last-child {\n --public-field--bottom-right-radius: var(--radius-base);\n}\n";
13
+ var styles = {"vertical":"_4bvHwa3-qBA-","horizontal":"bHm4WuX8ToY-","inputGroup":"nmDPgrXofeE-"};
14
+ styleInject_es.styleInject(css_248z);
15
+
16
+ function InputGroup({ children, flowDirection = "vertical", }) {
17
+ if (isInvalidGroupNesting(children))
18
+ return React__default["default"].createElement(React__default["default"].Fragment, null);
19
+ const className = classnames__default["default"](styles.inputGroup, styles[flowDirection]);
20
+ return React__default["default"].createElement("div", { className: className }, children);
21
+ }
22
+ function isInvalidGroupNesting(childs) {
23
+ return React__default["default"].Children.toArray(childs).some(child => {
24
+ if (child.type === InputGroup &&
25
+ child.props.flowDirection != "horizontal") {
26
+ console.error(`ERROR: InputGroup not rendered: nesting 'flowDirection="vertical"' columns not supported.`, `https://atlantis.getjobber.com/components/input-group#nested-example`);
27
+ return true;
28
+ }
29
+ return false;
30
+ });
31
+ }
32
+
33
+ exports.InputGroup = InputGroup;
@@ -2,8 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var React = require('react');
6
- var FormField = require('../FormField-090113ec.js');
5
+ var InputNumber = require('../InputNumber-80a381e9.js');
6
+ require('react');
7
+ require('../FormField-090113ec.js');
7
8
  require('../tslib.es6-5b8768b7.js');
8
9
  require('uuid');
9
10
  require('react-hook-form');
@@ -19,60 +20,6 @@ require('../InputValidation-b5a3d92c.js');
19
20
  require('framer-motion');
20
21
  require('../Spinner-9d8fc7ff.js');
21
22
 
22
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
23
 
24
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
25
24
 
26
- function InputNumberInternal(props, ref) {
27
- var _a;
28
- const inputRef = React.createRef();
29
- React.useImperativeHandle(ref, () => ({
30
- blur: () => {
31
- const input = inputRef.current;
32
- if (input) {
33
- input.blur();
34
- }
35
- },
36
- focus: () => {
37
- const input = inputRef.current;
38
- if (input) {
39
- input.focus();
40
- }
41
- },
42
- }));
43
- return (React__default["default"].createElement(FormField.FormField, Object.assign({}, props, { type: "number", inputRef: inputRef, onChange: handleChange, validations: Object.assign(Object.assign({}, props.validations), { validate: customValidators((_a = props.validations) === null || _a === void 0 ? void 0 : _a.validate) }) })));
44
- function customValidators(validators) {
45
- if (validators == null) {
46
- return getOverLimitMessage;
47
- }
48
- else if (typeof validators === "function") {
49
- return {
50
- customValidation: validators,
51
- getOverLimitMessage,
52
- };
53
- }
54
- return Object.assign(Object.assign({}, validators), { getOverLimitMessage });
55
- }
56
- function handleChange(newValue) {
57
- props.onChange && props.onChange(newValue);
58
- }
59
- function getOverLimitMessage(value) {
60
- const isOverMax = props.max != undefined && value && value > props.max;
61
- const isUnderMin = props.min != undefined && value && value < props.min;
62
- if (isOverMax || isUnderMin || (value && value.toString() === "")) {
63
- if (props.min != undefined && props.max === undefined) {
64
- return `Enter a number that is greater than or equal to ${props.min}`;
65
- }
66
- else if (props.max != undefined && props.min === undefined) {
67
- return `Enter a number that is less than or equal to ${props.max}`;
68
- }
69
- else if (props.min != undefined && props.max != undefined) {
70
- return `Enter a number between ${props.min} and ${props.max}`;
71
- }
72
- }
73
- return true;
74
- }
75
- }
76
- const InputNumber = React.forwardRef(InputNumberInternal);
77
-
78
- exports.InputNumber = InputNumber;
25
+ exports.InputNumber = InputNumber.InputNumber;
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var FormField = require('./FormField-090113ec.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
+ function InputNumberInternal(props, ref) {
11
+ var _a;
12
+ const inputRef = React.createRef();
13
+ React.useImperativeHandle(ref, () => ({
14
+ blur: () => {
15
+ const input = inputRef.current;
16
+ if (input) {
17
+ input.blur();
18
+ }
19
+ },
20
+ focus: () => {
21
+ const input = inputRef.current;
22
+ if (input) {
23
+ input.focus();
24
+ }
25
+ },
26
+ }));
27
+ return (React__default["default"].createElement(FormField.FormField, Object.assign({}, props, { type: "number", inputRef: inputRef, onChange: handleChange, validations: Object.assign(Object.assign({}, props.validations), { validate: customValidators((_a = props.validations) === null || _a === void 0 ? void 0 : _a.validate) }) })));
28
+ function customValidators(validators) {
29
+ if (validators == null) {
30
+ return getOverLimitMessage;
31
+ }
32
+ else if (typeof validators === "function") {
33
+ return {
34
+ customValidation: validators,
35
+ getOverLimitMessage,
36
+ };
37
+ }
38
+ return Object.assign(Object.assign({}, validators), { getOverLimitMessage });
39
+ }
40
+ function handleChange(newValue) {
41
+ props.onChange && props.onChange(newValue);
42
+ }
43
+ function getOverLimitMessage(value) {
44
+ const isOverMax = props.max != undefined && value && value > props.max;
45
+ const isUnderMin = props.min != undefined && value && value < props.min;
46
+ if (isOverMax || isUnderMin || (value && value.toString() === "")) {
47
+ if (props.min != undefined && props.max === undefined) {
48
+ return `Enter a number that is greater than or equal to ${props.min}`;
49
+ }
50
+ else if (props.max != undefined && props.min === undefined) {
51
+ return `Enter a number that is less than or equal to ${props.max}`;
52
+ }
53
+ else if (props.min != undefined && props.max != undefined) {
54
+ return `Enter a number between ${props.min} and ${props.max}`;
55
+ }
56
+ }
57
+ return true;
58
+ }
59
+ }
60
+ const InputNumber = React.forwardRef(InputNumberInternal);
61
+
62
+ exports.InputNumber = InputNumber;
@@ -2,48 +2,15 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var React = require('react');
6
- var uuid = require('uuid');
7
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
- var Text = require('../Text-e7ed0974.js');
5
+ var RadioGroup = require('../RadioGroup-67a5f560.js');
6
+ require('react');
7
+ require('uuid');
8
+ require('../style-inject.es-9d2f5f4e.js');
9
+ require('../Text-e7ed0974.js');
9
10
  require('../Typography-fd6f932a.js');
10
11
  require('classnames');
11
12
 
12
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
13
 
14
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
15
14
 
16
- var css_248z = "._5P8wEHDUdKY- {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n._08ZPdlE98Ko- {\n /* Hide checkbox on UI but not screen readers and still allow focus state */\n position: absolute;\n left: -999vw;\n}\n\n.-PUoLXltVlQ- {\n display: -ms-inline-flexbox;\n display: inline-flex;\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 cursor: pointer;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n._08ZPdlE98Ko- + .-PUoLXltVlQ-::before {\n content: \"\";\n display: block;\n width: calc(16px * 1);\n width: var(--space-base);\n height: calc(16px * 1);\n height: var(--space-base);\n box-sizing: border-box;\n margin: calc(16px / 8) calc(16px / 2) 0 0;\n margin: var(--space-smallest) var(--space-small) 0 0;\n border: calc(16px / 8) solid rgb(125, 176, 14);\n border: var(--border-thick) solid var(--color-interactive);\n border-radius: 100%;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n transition: all 200ms;\n transition: all var(--timing-base);\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n._08ZPdlE98Ko-:focus + .-PUoLXltVlQ-:before {\n box-shadow: 0px 0px calc(16px / 4) calc(16px / 8)\n rgb(231, 213, 87);\n box-shadow: var(--shadow-focus);\n}\n\n._08ZPdlE98Ko-:focus:checked + .-PUoLXltVlQ-:before {\n box-shadow: 0px 0px 0px calc(16px / 16) rgb(81, 114, 9),\n 0px 0px calc(16px / 4) calc(16px / 8)\n rgb(231, 213, 87);\n box-shadow: 0px 0px 0px var(--space-minuscule) var(--color-interactive--hover),\n var(--shadow-focus);\n}\n\n._08ZPdlE98Ko-:checked + .-PUoLXltVlQ-::before {\n box-shadow: 0px 0px 0px calc(16px / 16) rgb(81, 114, 9);\n box-shadow: 0px 0px 0px var(--space-minuscule) var(--color-interactive--hover);\n border-color: rgb(81, 114, 9);\n border-color: var(--color-interactive--hover);\n border-width: calc(16px / 4);\n border-width: var(--border-thicker);\n background-color: rgb(125, 176, 14);\n background-color: var(--color-interactive);\n}\n\n._08ZPdlE98Ko-[disabled] + .-PUoLXltVlQ- {\n color: rgb(181, 181, 181);\n color: var(--color-disabled);\n cursor: not-allowed;\n}\n\n._08ZPdlE98Ko-[disabled] + .-PUoLXltVlQ-::before {\n border-color: rgb(225, 225, 225);\n border-color: var(--color-disabled--secondary);\n}\n\n._08ZPdlE98Ko-[disabled]:checked + .-PUoLXltVlQ-::before {\n box-shadow: 0px 0px 0px calc(16px / 16) rgb(181, 181, 181);\n box-shadow: 0px 0px 0px var(--space-minuscule) var(--color-disabled);\n border-color: rgb(181, 181, 181);\n border-color: var(--color-grey);\n background-color: rgb(225, 225, 225);\n background-color: var(--color-disabled--secondary);\n}\n\n._8r6qT-6S9EI- {\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n padding-left: calc(16px * 1.5);\n padding-left: var(--space-large);\n}\n\n._08ZPdlE98Ko-[disabled] + .-PUoLXltVlQ- + ._8r6qT-6S9EI- > p {\n color: rgb(181, 181, 181);\n color: var(--color-disabled);\n}\n";
17
- var styles = {"radioGroup":"_5P8wEHDUdKY-","input":"_08ZPdlE98Ko-","label":"-PUoLXltVlQ-","description":"_8r6qT-6S9EI-"};
18
- styleInject_es.styleInject(css_248z);
19
-
20
- /**
21
- * For rendering props only. To make updates to
22
- * the real RadioOption, look at InternalRadioOption
23
- */
24
- function RadioOption({ children }) {
25
- return React__default["default"].createElement(React__default["default"].Fragment, null, children);
26
- }
27
- function InternalRadioOption({ value, name, label, description, disabled, checked, children, onChange, }) {
28
- const inputId = `${value.toString()}_${uuid.v1()}`;
29
- return (React__default["default"].createElement("div", null,
30
- React__default["default"].createElement("input", { onChange: handleChange, type: "radio", name: name, value: value, disabled: disabled, checked: checked, id: inputId, className: styles.input, "aria-describedby": description ? `${inputId}_description` : undefined }),
31
- React__default["default"].createElement("label", { className: styles.label, htmlFor: inputId }, label ? label : children),
32
- description && (React__default["default"].createElement("div", { className: styles.description, id: `${inputId}_description` },
33
- React__default["default"].createElement(Text.Text, { variation: "subdued", size: "small" }, description)))));
34
- function handleChange() {
35
- onChange(value);
36
- }
37
- }
38
-
39
- function RadioGroup({ children, value, ariaLabel, onChange, name = uuid.v1(), }) {
40
- return (React__default["default"].createElement("div", { role: "radiogroup", "aria-label": ariaLabel, className: styles.radioGroup }, React__default["default"].Children.map(children, option => (React__default["default"].createElement(InternalRadioOption, Object.assign({ checked: value === option.props.value, name: name, onChange: handleChange }, option.props), option.props.children)))));
41
- function handleChange(newValue) {
42
- if (newValue !== value) {
43
- onChange(newValue);
44
- }
45
- }
46
- }
47
-
48
- exports.RadioGroup = RadioGroup;
49
- exports.RadioOption = RadioOption;
15
+ exports.RadioGroup = RadioGroup.RadioGroup;
16
+ exports.RadioOption = RadioGroup.RadioOption;
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var uuid = require('uuid');
5
+ var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
6
+ var Text = require('./Text-e7ed0974.js');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
11
+
12
+ var css_248z = "._5P8wEHDUdKY- {\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n._08ZPdlE98Ko- {\n /* Hide checkbox on UI but not screen readers and still allow focus state */\n position: absolute;\n left: -999vw;\n}\n\n.-PUoLXltVlQ- {\n display: -ms-inline-flexbox;\n display: inline-flex;\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 cursor: pointer;\n -ms-flex-align: start;\n align-items: flex-start;\n}\n\n._08ZPdlE98Ko- + .-PUoLXltVlQ-::before {\n content: \"\";\n display: block;\n width: calc(16px * 1);\n width: var(--space-base);\n height: calc(16px * 1);\n height: var(--space-base);\n box-sizing: border-box;\n margin: calc(16px / 8) calc(16px / 2) 0 0;\n margin: var(--space-smallest) var(--space-small) 0 0;\n border: calc(16px / 8) solid rgb(125, 176, 14);\n border: var(--border-thick) solid var(--color-interactive);\n border-radius: 100%;\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n transition: all 200ms;\n transition: all var(--timing-base);\n -ms-flex-negative: 0;\n flex-shrink: 0;\n}\n\n._08ZPdlE98Ko-:focus + .-PUoLXltVlQ-:before {\n box-shadow: 0px 0px calc(16px / 4) calc(16px / 8)\n rgb(231, 213, 87);\n box-shadow: var(--shadow-focus);\n}\n\n._08ZPdlE98Ko-:focus:checked + .-PUoLXltVlQ-:before {\n box-shadow: 0px 0px 0px calc(16px / 16) rgb(81, 114, 9),\n 0px 0px calc(16px / 4) calc(16px / 8)\n rgb(231, 213, 87);\n box-shadow: 0px 0px 0px var(--space-minuscule) var(--color-interactive--hover),\n var(--shadow-focus);\n}\n\n._08ZPdlE98Ko-:checked + .-PUoLXltVlQ-::before {\n box-shadow: 0px 0px 0px calc(16px / 16) rgb(81, 114, 9);\n box-shadow: 0px 0px 0px var(--space-minuscule) var(--color-interactive--hover);\n border-color: rgb(81, 114, 9);\n border-color: var(--color-interactive--hover);\n border-width: calc(16px / 4);\n border-width: var(--border-thicker);\n background-color: rgb(125, 176, 14);\n background-color: var(--color-interactive);\n}\n\n._08ZPdlE98Ko-[disabled] + .-PUoLXltVlQ- {\n color: rgb(181, 181, 181);\n color: var(--color-disabled);\n cursor: not-allowed;\n}\n\n._08ZPdlE98Ko-[disabled] + .-PUoLXltVlQ-::before {\n border-color: rgb(225, 225, 225);\n border-color: var(--color-disabled--secondary);\n}\n\n._08ZPdlE98Ko-[disabled]:checked + .-PUoLXltVlQ-::before {\n box-shadow: 0px 0px 0px calc(16px / 16) rgb(181, 181, 181);\n box-shadow: 0px 0px 0px var(--space-minuscule) var(--color-disabled);\n border-color: rgb(181, 181, 181);\n border-color: var(--color-grey);\n background-color: rgb(225, 225, 225);\n background-color: var(--color-disabled--secondary);\n}\n\n._8r6qT-6S9EI- {\n margin-bottom: calc(16px / 2);\n margin-bottom: var(--space-small);\n padding-left: calc(16px * 1.5);\n padding-left: var(--space-large);\n}\n\n._08ZPdlE98Ko-[disabled] + .-PUoLXltVlQ- + ._8r6qT-6S9EI- > p {\n color: rgb(181, 181, 181);\n color: var(--color-disabled);\n}\n";
13
+ var styles = {"radioGroup":"_5P8wEHDUdKY-","input":"_08ZPdlE98Ko-","label":"-PUoLXltVlQ-","description":"_8r6qT-6S9EI-"};
14
+ styleInject_es.styleInject(css_248z);
15
+
16
+ /**
17
+ * For rendering props only. To make updates to
18
+ * the real RadioOption, look at InternalRadioOption
19
+ */
20
+ function RadioOption({ children }) {
21
+ return React__default["default"].createElement(React__default["default"].Fragment, null, children);
22
+ }
23
+ function InternalRadioOption({ value, name, label, description, disabled, checked, children, onChange, }) {
24
+ const inputId = `${value.toString()}_${uuid.v1()}`;
25
+ return (React__default["default"].createElement("div", null,
26
+ React__default["default"].createElement("input", { onChange: handleChange, type: "radio", name: name, value: value, disabled: disabled, checked: checked, id: inputId, className: styles.input, "aria-describedby": description ? `${inputId}_description` : undefined }),
27
+ React__default["default"].createElement("label", { className: styles.label, htmlFor: inputId }, label ? label : children),
28
+ description && (React__default["default"].createElement("div", { className: styles.description, id: `${inputId}_description` },
29
+ React__default["default"].createElement(Text.Text, { variation: "subdued", size: "small" }, description)))));
30
+ function handleChange() {
31
+ onChange(value);
32
+ }
33
+ }
34
+
35
+ function RadioGroup({ children, value, ariaLabel, onChange, name = uuid.v1(), }) {
36
+ return (React__default["default"].createElement("div", { role: "radiogroup", "aria-label": ariaLabel, className: styles.radioGroup }, React__default["default"].Children.map(children, option => (React__default["default"].createElement(InternalRadioOption, Object.assign({ checked: value === option.props.value, name: name, onChange: handleChange }, option.props), option.props.children)))));
37
+ function handleChange(newValue) {
38
+ if (newValue !== value) {
39
+ onChange(newValue);
40
+ }
41
+ }
42
+ }
43
+
44
+ exports.RadioGroup = RadioGroup;
45
+ exports.RadioOption = RadioOption;
@@ -0,0 +1,227 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var React = require('react');
6
+ var uuid = require('uuid');
7
+ var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
+ var RadioGroup = require('../RadioGroup-67a5f560.js');
9
+ var Text = require('../Text-e7ed0974.js');
10
+ require('classnames');
11
+ require('../Typography-fd6f932a.js');
12
+ var Option = require('../Option-8277f540.js');
13
+ var InputNumber = require('../InputNumber-80a381e9.js');
14
+ var InputGroup = require('../InputGroup-34e64048.js');
15
+ var Content = require('../Content-a6590328.js');
16
+ require('../FormField-090113ec.js');
17
+ require('../tslib.es6-5b8768b7.js');
18
+ require('react-hook-form');
19
+ require('../Button-7698424c.js');
20
+ require('react-router-dom');
21
+ require('../Icon-405a216c.js');
22
+ require('@jobber/design');
23
+ require('../InputValidation-b5a3d92c.js');
24
+ require('framer-motion');
25
+ require('../Spinner-9d8fc7ff.js');
26
+
27
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
28
+
29
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
30
+
31
+ var css_248z$5 = ".NfsRidfuJts- {\n display: grid;\n width: 100%;\n padding: calc(16px / 4);\n padding: var(--space-smaller);\n border: calc(16px / 16) solid rgb(225, 225, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 4);\n border-radius: var(--radius-large);\n grid-template-columns: repeat(7, 1fr);\n row-gap: calc(16px / 4);\n grid-row-gap: calc(16px / 4);\n grid-row-gap: var(--space-smaller);\n row-gap: var(--space-smaller);\n -webkit-column-gap: calc(16px / 4);\n -webkit-column-gap: var(--space-smaller);\n -moz-column-gap: calc(16px / 4);\n -moz-column-gap: var(--space-smaller);\n column-gap: calc(16px / 4);\n grid-column-gap: calc(16px / 4);\n grid-column-gap: var(--space-smaller);\n column-gap: var(--space-smaller);\n}\n";
32
+ var styles$4 = {"container":"NfsRidfuJts-"};
33
+ styleInject_es.styleInject(css_248z$5);
34
+
35
+ var css_248z$4 = ".GXNuQVAsUqs- {\n position: relative;\n}\n\n/* kept present but hidden for accessibility */\n\n.PtlN3SI-Atc- {\n clip: rect(1px, 1px, 1px, 1px);\n -webkit-clip-path: inset(50%);\n clip-path: inset(50%);\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n}\n\n.VPZ0Os9TY5k- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n padding: calc(16px / 4);\n padding: var(--space-smaller);\n border-radius: calc(16px / 4);\n border-radius: var(--radius-large);\n text-align: center;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n background: rgba(255, 255, 255, 1);\n background: var(--color-surface);\n transition: 200ms;\n transition: var(--timing-base);\n}\n\n@supports (aspect-ratio: 1/1) {\n .VPZ0Os9TY5k- {\n /*\n * disabling property-no-unknown here as this is a real property\n * that stylelint just doesn't know about. We may be able to remove\n * this when we update our stylelint to not care about IE11.\n */\n /* stylelint-disable-next-line property-no-unknown */\n aspect-ratio: 1/1;\n }\n}\n\n.VPZ0Os9TY5k-:hover {\n background: rgb(250, 246, 219);\n background: var(--color-surface--hover);\n}\n\n.PtlN3SI-Atc-:focus + .VPZ0Os9TY5k- {\n box-shadow: 0px 0px calc(16px / 4) calc(16px / 8)\n rgb(231, 213, 87);\n box-shadow: var(--shadow-focus);\n background: rgb(250, 246, 219);\n background: var(--color-surface--hover);\n}\n\n.PtlN3SI-Atc-:checked + .VPZ0Os9TY5k- {\n color: rgba(255, 255, 255, 1);\n color: var(--color-text--reverse);\n background: rgb(125, 176, 14);\n background: var(--color-interactive);\n}\n\n.PtlN3SI-Atc-:disabled + .VPZ0Os9TY5k- {\n color: rgb(181, 181, 181);\n color: var(--color-disabled);\n background: rgb(244, 244, 244);\n background: var(--color-surface--background);\n cursor: default;\n}\n\n.PtlN3SI-Atc-:enabled + .VPZ0Os9TY5k- {\n cursor: pointer;\n}\n\n.PtlN3SI-Atc-:checked:focus + .VPZ0Os9TY5k- {\n background: rgb(81, 114, 9);\n background: var(--color-interactive--hover);\n}\n\n.PtlN3SI-Atc-:checked + .VPZ0Os9TY5k-:hover {\n background: rgb(81, 114, 9);\n background: var(--color-interactive--hover);\n}\n\n.PtlN3SI-Atc-:disabled:checked + .VPZ0Os9TY5k- {\n color: rgb(225, 225, 225);\n color: var(--color-disabled--secondary);\n background: rgb(181, 181, 181);\n background: var(--color-disabled);\n}\n";
36
+ var checkboxStyles = {"checkboxWrapper":"GXNuQVAsUqs-","dayCheckboxInput":"PtlN3SI-Atc-","dayCheckbox":"VPZ0Os9TY5k-"};
37
+ styleInject_es.styleInject(css_248z$4);
38
+
39
+ exports.WeekDay = void 0;
40
+ (function (WeekDay) {
41
+ WeekDay[WeekDay["Sunday"] = 0] = "Sunday";
42
+ WeekDay[WeekDay["Monday"] = 1] = "Monday";
43
+ WeekDay[WeekDay["Tuesday"] = 2] = "Tuesday";
44
+ WeekDay[WeekDay["Wednesday"] = 3] = "Wednesday";
45
+ WeekDay[WeekDay["Thursday"] = 4] = "Thursday";
46
+ WeekDay[WeekDay["Friday"] = 5] = "Friday";
47
+ WeekDay[WeekDay["Saturday"] = 6] = "Saturday";
48
+ })(exports.WeekDay || (exports.WeekDay = {}));
49
+ exports.DurationPeriod = void 0;
50
+ (function (DurationPeriod) {
51
+ DurationPeriod["Day"] = "Day";
52
+ DurationPeriod["Week"] = "Week";
53
+ DurationPeriod["DayOfMonth"] = "DayOfMonth";
54
+ DurationPeriod["WeekDayOfMonth"] = "WeekDayOfMonth";
55
+ DurationPeriod["Year"] = "Year";
56
+ DurationPeriod["Visit"] = "Visit";
57
+ })(exports.DurationPeriod || (exports.DurationPeriod = {}));
58
+ const typeInitialStateMap = {
59
+ [exports.DurationPeriod.Day]: {
60
+ type: exports.DurationPeriod.Day,
61
+ },
62
+ [exports.DurationPeriod.Week]: {
63
+ type: exports.DurationPeriod.Week,
64
+ weekDays: new Set(),
65
+ },
66
+ [exports.DurationPeriod.DayOfMonth]: {
67
+ type: exports.DurationPeriod.DayOfMonth,
68
+ date: new Set(),
69
+ },
70
+ [exports.DurationPeriod.WeekDayOfMonth]: {
71
+ type: exports.DurationPeriod.WeekDayOfMonth,
72
+ dayOfWeek: [
73
+ new Set(),
74
+ new Set(),
75
+ new Set(),
76
+ new Set(),
77
+ ],
78
+ },
79
+ [exports.DurationPeriod.Year]: {
80
+ type: exports.DurationPeriod.Year,
81
+ },
82
+ };
83
+ const isMonthly = (rule) => rule.type === exports.DurationPeriod.WeekDayOfMonth ||
84
+ rule.type === exports.DurationPeriod.DayOfMonth;
85
+
86
+ const weekDays = [0, 1, 2, 3, 4, 5, 6];
87
+ function WeeklySelect({ onChange, selectedDays, disabled, }) {
88
+ const onChangeWeekDays = (event) => {
89
+ const day = Number(event.currentTarget.value);
90
+ const next = new Set(Array.from(selectedDays));
91
+ if (selectedDays.has(day)) {
92
+ next.delete(day);
93
+ }
94
+ else {
95
+ next.add(day);
96
+ }
97
+ onChange(next);
98
+ };
99
+ return (React__default["default"].createElement("div", { className: styles$4.container }, weekDays.map(weekDay => {
100
+ const isSelected = selectedDays.has(weekDay);
101
+ const inputId = uuid.v1();
102
+ return (React__default["default"].createElement("div", { key: `${weekDay}`, className: checkboxStyles.checkboxWrapper },
103
+ React__default["default"].createElement("input", { className: checkboxStyles.dayCheckboxInput, disabled: disabled, type: "checkbox", onChange: onChangeWeekDays, id: `weekly-select-${weekDay}${inputId}`, "aria-checked": isSelected, checked: isSelected, value: weekDay }),
104
+ React__default["default"].createElement("label", { className: checkboxStyles.dayCheckbox, htmlFor: `weekly-select-${weekDay}${inputId}` }, `${exports.WeekDay[weekDay].substr(0, 1).toUpperCase()}`)));
105
+ })));
106
+ }
107
+
108
+ var css_248z$3 = ".PW6L4PJe5TY- div[role=\"radiogroup\"] {\n -ms-flex-direction: row;\n flex-direction: row;\n}\n\n.PW6L4PJe5TY- label {\n margin-right: calc(16px * 1);\n margin-right: var(--space-base);\n}\n";
109
+ var styles$3 = {"radioContainer":"PW6L4PJe5TY-"};
110
+ styleInject_es.styleInject(css_248z$3);
111
+
112
+ function MonthlySelect({ disabled, onChange, selectedMonthOption, }) {
113
+ return (React__default["default"].createElement("div", { className: styles$3.radioContainer },
114
+ React__default["default"].createElement(RadioGroup.RadioGroup, { ariaLabel: "Monthly Frequency Selector", onChange: onChange, value: selectedMonthOption },
115
+ React__default["default"].createElement(RadioGroup.RadioOption, { disabled: disabled, value: exports.DurationPeriod.DayOfMonth, label: "Day of month" }),
116
+ React__default["default"].createElement(RadioGroup.RadioOption, { disabled: disabled, value: exports.DurationPeriod.WeekDayOfMonth, label: "Day of week" }))));
117
+ }
118
+
119
+ var css_248z$2 = ".pqYw6oCVwO8- {\n display: grid;\n grid-template-columns: calc(16px * 3) 1fr;\n grid-template-columns: var(--space-largest) 1fr;\n -ms-flex-align: center;\n align-items: center;\n gap: calc(16px / 2);\n grid-gap: calc(16px / 2);\n grid-gap: var(--space-small);\n gap: var(--space-small);\n margin-bottom: calc(-1 * (16px / 16));\n margin-bottom: calc(-1 * calc(16px / 16));\n margin-bottom: calc(-1 * var(--border-base));\n}\n\n.xtCFaHyTmfI- div:nth-of-type(1) :last-child {\n border-top-right-radius: calc(16px / 4);\n border-top-right-radius: var(--radius-large);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n border-top-left-radius: calc(16px / 4);\n border-top-left-radius: var(--radius-large);\n}\n\n.xtCFaHyTmfI- div:nth-of-type(2) :last-child {\n border-radius: 0;\n}\n\n.xtCFaHyTmfI- div:nth-of-type(3) :last-child {\n border-radius: 0;\n}\n\n.xtCFaHyTmfI- div:nth-of-type(4) :last-child {\n border-top-right-radius: 0;\n border-bottom-right-radius: calc(16px / 4);\n border-bottom-right-radius: var(--radius-large);\n border-bottom-left-radius: calc(16px / 4);\n border-bottom-left-radius: var(--radius-large);\n border-top-left-radius: 0;\n}\n";
120
+ var styles$2 = {"container":"pqYw6oCVwO8-","parentContainer":"xtCFaHyTmfI-"};
121
+ styleInject_es.styleInject(css_248z$2);
122
+
123
+ function MonthlyDayOfWeekSelect({ disabled, selectedWeeks, onChange, }) {
124
+ const orderString = ["1st", "2nd", "3rd", "4th"];
125
+ return (React__default["default"].createElement("div", { className: styles$2.parentContainer }, selectedWeeks.map((week, index) => {
126
+ const onChangeWeek = (weekDay) => {
127
+ const next = [...selectedWeeks];
128
+ next.splice(index, 1, weekDay);
129
+ onChange(next);
130
+ };
131
+ return (React__default["default"].createElement("div", { className: styles$2.container, key: `${index}${week}` },
132
+ React__default["default"].createElement(Text.Text, null, `${orderString[index]}`),
133
+ React__default["default"].createElement("div", null,
134
+ React__default["default"].createElement(WeeklySelect, { disabled: disabled, selectedDays: week, onChange: onChangeWeek }))));
135
+ })));
136
+ }
137
+
138
+ var css_248z$1 = ".dBbFx0Vu16U- {\n display: grid;\n width: 100%;\n padding: calc(16px / 4);\n padding: var(--space-smaller);\n border: calc(16px / 16) solid rgb(225, 225, 225);\n border: var(--border-base) solid var(--color-border);\n border-radius: calc(16px / 4);\n border-radius: var(--radius-large);\n grid-template-areas:\n \". . . . . . .\"\n \". . . . . . .\"\n \". . . . . . .\"\n \". . . . . . .\"\n \". . . lastday lastday lastday lastday\";\n row-gap: calc(16px / 4);\n grid-row-gap: calc(16px / 4);\n grid-row-gap: var(--space-smaller);\n row-gap: var(--space-smaller);\n -webkit-column-gap: calc(16px / 4);\n -webkit-column-gap: var(--space-smaller);\n -moz-column-gap: calc(16px / 4);\n -moz-column-gap: var(--space-smaller);\n column-gap: calc(16px / 4);\n grid-column-gap: calc(16px / 4);\n grid-column-gap: var(--space-smaller);\n column-gap: var(--space-smaller);\n}\n\n.dBbFx0Vu16U- :last-child {\n grid-area: lastday;\n}\n\n.dBbFx0Vu16U- div:nth-child(n + 1):nth-last-child(-n + 1) label {\n height: 100%;\n}\n\n@supports (aspect-ratio: unset) {\n .dBbFx0Vu16U- div:nth-child(n + 1):nth-last-child(-n + 1) label {\n /*\n * disabling property-no-unknown here as this is a real property\n * that stylelint just doesn't know about. We may be able to remove\n * this when we update our stylelint to not care about IE11.\n */\n /* stylelint-disable-next-line property-no-unknown */\n aspect-ratio: unset;\n }\n}\n";
139
+ var styles$1 = {"container":"dBbFx0Vu16U-"};
140
+ styleInject_es.styleInject(css_248z$1);
141
+
142
+ const daysInMonth = [...Array.from({ length: 31 }, (_, i) => i + 1), "LAST"];
143
+ function DayOfMonthSelect({ selectedDays, disabled, onChange, }) {
144
+ return (React__default["default"].createElement("div", { className: styles$1.container }, daysInMonth.map(day => {
145
+ const isSelected = selectedDays.has(day);
146
+ const inputId = uuid.v1();
147
+ return (React__default["default"].createElement("div", { key: `${day}`, className: checkboxStyles.checkboxWrapper },
148
+ React__default["default"].createElement("input", { className: checkboxStyles.dayCheckboxInput, disabled: disabled, type: "checkbox", id: `${day}-${inputId}`, onChange: handleChangeDayOfMonth, "aria-checked": isSelected, checked: isSelected, value: day }),
149
+ React__default["default"].createElement("label", { className: checkboxStyles.dayCheckbox, htmlFor: `${day}-${inputId}` }, `${day === "LAST" ? "Last day" : day}`)));
150
+ })));
151
+ function handleChangeDayOfMonth(event) {
152
+ const day = event.currentTarget.value === "LAST"
153
+ ? event.currentTarget.value
154
+ : +event.currentTarget.value;
155
+ const next = new Set(selectedDays);
156
+ if (selectedDays.has(day)) {
157
+ next.delete(day);
158
+ }
159
+ else {
160
+ next.add(day);
161
+ }
162
+ onChange(next);
163
+ }
164
+ }
165
+
166
+ function CurrentRecurrenceComponent({ recurrenceRule, disabled = false, onChange, }) {
167
+ switch (recurrenceRule.type) {
168
+ case exports.DurationPeriod.Week: {
169
+ const onChangeWeekDays = (next) => {
170
+ onChange(Object.assign(Object.assign({}, recurrenceRule), { weekDays: next }));
171
+ };
172
+ return (React__default["default"].createElement(WeeklySelect, { disabled: disabled, selectedDays: recurrenceRule.weekDays, onChange: onChangeWeekDays }));
173
+ }
174
+ case exports.DurationPeriod.WeekDayOfMonth: {
175
+ const onChangeWeekDayOfMonth = (next) => {
176
+ onChange(Object.assign(Object.assign({}, recurrenceRule), { dayOfWeek: next }));
177
+ };
178
+ return (React__default["default"].createElement(MonthlyDayOfWeekSelect, { disabled: disabled, onChange: onChangeWeekDayOfMonth, selectedWeeks: recurrenceRule.dayOfWeek }));
179
+ }
180
+ case exports.DurationPeriod.DayOfMonth: {
181
+ const onChangeDayOfMonth = (next) => {
182
+ onChange(Object.assign(Object.assign({}, recurrenceRule), { date: next }));
183
+ };
184
+ return (React__default["default"].createElement(DayOfMonthSelect, { disabled: disabled, selectedDays: recurrenceRule.date, onChange: onChangeDayOfMonth }));
185
+ }
186
+ default:
187
+ return React__default["default"].createElement(React__default["default"].Fragment, null);
188
+ }
189
+ }
190
+
191
+ var css_248z = ".ANBCH37jH0k- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n gap: calc(16px * 1);\n gap: var(--space-base);\n}\n\n.ZV0GgII8eWQ- {\n width: 100%;\n}\n";
192
+ var styles = {"container":"ANBCH37jH0k-","fullWidthWrapper":"ZV0GgII8eWQ-"};
193
+ styleInject_es.styleInject(css_248z);
194
+
195
+ function RecurringSelect({ value, disabled = false, onChange, }) {
196
+ const disabledTextVariation = disabled ? "disabled" : undefined;
197
+ // we must dynamically populate the select option based on which is selected
198
+ // because there is no single "month" option, it must always be one of these two
199
+ const monthlySelectOptionValue = value.type === exports.DurationPeriod.WeekDayOfMonth
200
+ ? exports.DurationPeriod.WeekDayOfMonth
201
+ : exports.DurationPeriod.DayOfMonth;
202
+ const hasExtraFrequencyDescriptor = value.type === exports.DurationPeriod.WeekDayOfMonth ||
203
+ value.type === exports.DurationPeriod.DayOfMonth ||
204
+ value.type === exports.DurationPeriod.Week;
205
+ return (React__default["default"].createElement(Content.Content, null,
206
+ React__default["default"].createElement("div", { className: styles.container },
207
+ React__default["default"].createElement(Text.Text, { variation: disabledTextVariation }, "Every"),
208
+ React__default["default"].createElement("div", { className: styles.fullWidthWrapper },
209
+ React__default["default"].createElement(InputGroup.InputGroup, { flowDirection: "horizontal" },
210
+ React__default["default"].createElement(InputNumber.InputNumber, { disabled: disabled, name: "schedule-recurrence-interval", value: value.interval, min: 1, maxLength: 3, onChange: onChangeInterval }),
211
+ React__default["default"].createElement(Option.Select, { disabled: disabled, value: value.type, onChange: onChangeType, name: "schedule-recurrence-type" },
212
+ React__default["default"].createElement(Option.SelectOption, { value: exports.DurationPeriod.Day }, "Day(s)"),
213
+ React__default["default"].createElement(Option.SelectOption, { value: exports.DurationPeriod.Week }, "Week(s)"),
214
+ React__default["default"].createElement(Option.SelectOption, { value: monthlySelectOptionValue }, "Month(s)"),
215
+ React__default["default"].createElement(Option.SelectOption, { value: exports.DurationPeriod.Year }, "Year(s)")))),
216
+ hasExtraFrequencyDescriptor && (React__default["default"].createElement(Text.Text, { variation: disabledTextVariation }, "on"))),
217
+ isMonthly(value) && (React__default["default"].createElement(MonthlySelect, { disabled: disabled, onChange: onChangeType, selectedMonthOption: value.type })),
218
+ React__default["default"].createElement(CurrentRecurrenceComponent, { disabled: disabled, recurrenceRule: value, onChange: onChange })));
219
+ function onChangeInterval(interval) {
220
+ onChange(Object.assign(Object.assign({}, value), { interval }));
221
+ }
222
+ function onChangeType(type) {
223
+ onChange(Object.assign({ interval: value.interval }, typeInitialStateMap[type]));
224
+ }
225
+ }
226
+
227
+ exports.RecurringSelect = RecurringSelect;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "4.23.39",
3
+ "version": "4.23.41",
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.44.0",
22
+ "@jobber/design": "^0.44.1",
23
23
  "@jobber/formatters": "*",
24
24
  "@jobber/hooks": "^2.1.5",
25
25
  "@popperjs/core": "^2.0.6",
@@ -83,5 +83,5 @@
83
83
  "> 1%",
84
84
  "IE 10"
85
85
  ],
86
- "gitHead": "ebc79a3b2ac7a7c6d89d958634a13737a9751266"
86
+ "gitHead": "81f616816e1abe7c4300b3dba685844547433a78"
87
87
  }
package/rollup.config.js CHANGED
@@ -5,7 +5,7 @@ import postcss from "rollup-plugin-postcss";
5
5
  import commonjs from "@rollup/plugin-commonjs";
6
6
 
7
7
  export default {
8
- input: `src/*/index.ts`,
8
+ input: `src/*/index.{ts,tsx}`,
9
9
  plugins: [
10
10
  multiInput(),
11
11
  typescript({