@planningcenter/tapestry-react 2.6.0-rc.0 → 2.6.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Button/Button.js +8 -1
- package/dist/cjs/Button/Button.test.js +51 -8
- package/dist/cjs/DataTable/components/BodyRow.js +2 -2
- package/dist/cjs/DataTable/components/CheckboxCell.js +1 -1
- package/dist/cjs/DataTable/hooks/useCollapsibleRows.js +2 -2
- package/dist/cjs/DragDrop/DragDrop.js +7 -0
- package/dist/cjs/Dropdown/Dropdown.js +5 -3
- package/dist/cjs/Dropdown/Link.js +2 -4
- package/dist/cjs/Input/InputLabel.js +40 -63
- package/dist/cjs/Modal/Modal.js +18 -8
- package/dist/cjs/Popover/Popover.js +10 -2
- package/dist/cjs/Portal/Portal.js +11 -1
- package/dist/cjs/Scrim/Scrim.js +16 -4
- package/dist/cjs/ThemeProvider/ThemeProvider.js +24 -6
- package/dist/cjs/ThemeProvider/styles.js +1 -4
- package/dist/cjs/TimeField/TimeField.js +1 -1
- package/dist/cjs/Tooltip/Tooltip.js +17 -17
- package/dist/cjs/index.d.js +70 -25
- package/dist/cjs/system/split-styles.js +2 -2
- package/dist/esm/Button/Button.js +8 -1
- package/dist/esm/Button/Button.test.js +67 -9
- package/dist/esm/DataTable/components/BodyRow.js +2 -2
- package/dist/esm/DataTable/components/CheckboxCell.js +1 -1
- package/dist/esm/DataTable/hooks/useCollapsibleRows.js +1 -1
- package/dist/esm/DragDrop/DragDrop.js +5 -0
- package/dist/esm/Dropdown/Dropdown.js +6 -4
- package/dist/esm/Dropdown/Link.js +1 -2
- package/dist/esm/Input/InputLabel.js +40 -63
- package/dist/esm/Modal/Modal.js +16 -8
- package/dist/esm/Popover/Popover.js +8 -2
- package/dist/esm/Portal/Portal.js +10 -0
- package/dist/esm/Scrim/Scrim.js +15 -4
- package/dist/esm/ThemeProvider/ThemeProvider.js +21 -6
- package/dist/esm/ThemeProvider/styles.js +1 -4
- package/dist/esm/TimeField/TimeField.js +1 -1
- package/dist/esm/Tooltip/Tooltip.js +18 -18
- package/dist/esm/index.d.js +39 -6
- package/dist/esm/system/split-styles.js +1 -1
- package/dist/types/Button/Button.d.ts +4 -0
- package/dist/types/Divider/Divider.d.ts +2 -2
- package/dist/types/Portal/Portal.d.ts +3 -0
- package/dist/types/Spinner/Spinner.d.ts +3 -1
- package/dist/types/ThemeProvider/ThemeProvider.d.ts +4 -2
- package/dist/types/index.d.ts +74 -5
- package/package.json +3 -3
- package/src/Button/Button.test.tsx +30 -0
- package/src/Button/Button.tsx +14 -1
- package/src/DataTable/DataTable.js +1 -1
- package/src/DataTable/components/BodyRow.js +1 -1
- package/src/DataTable/components/BodyRows.js +4 -1
- package/src/DataTable/components/CheckboxCell.js +1 -2
- package/src/DataTable/hooks/useCollapsibleRows.js +1 -1
- package/src/Divider/Divider.tsx +2 -2
- package/src/DragDrop/DragDrop.js +5 -0
- package/src/Dropdown/Dropdown.js +7 -4
- package/src/Dropdown/Dropdown.mdx +3 -3
- package/src/Dropdown/Link.js +1 -7
- package/src/Icon/Icon.mdx +45 -47
- package/src/Input/InputLabel.js +39 -36
- package/src/Input/InputLabel.mdx +1 -0
- package/src/Modal/Modal.js +16 -6
- package/src/Modal/Modal.mdx +2 -1
- package/src/Popover/Popover.mdx +1 -0
- package/src/Popover/Popover.tsx +8 -2
- package/src/Portal/Portal.tsx +14 -0
- package/src/RangeSlider/RangeSlider.mdx +10 -12
- package/src/Scrim/Scrim.mdx +1 -0
- package/src/Scrim/Scrim.tsx +11 -6
- package/src/Sidebar/Sidebar.mdx +0 -1
- package/src/Spinner/Spinner.tsx +2 -1
- package/src/ThemeProvider/ThemeProvider.tsx +22 -10
- package/src/ThemeProvider/styles.ts +23 -12
- package/src/TimeField/TimeField.js +1 -1
- package/src/Tooltip/Tooltip.js +20 -18
- package/src/index.d.ts +74 -5
- package/src/system/split-styles.js +4 -2
- package/src/.DS_Store +0 -0
|
@@ -217,6 +217,13 @@ function Button(_ref) {
|
|
|
217
217
|
|
|
218
218
|
if (to) {
|
|
219
219
|
restProps['href'] = to;
|
|
220
|
+
} // remove `type` if either `to` or `href` is specified
|
|
221
|
+
|
|
222
|
+
|
|
223
|
+
if (to || restProps.href) {
|
|
224
|
+
buttonProps = _objectSpread(_objectSpread({}, buttonProps), {}, {
|
|
225
|
+
type: null
|
|
226
|
+
});
|
|
220
227
|
} // apply stroke defaults and higher z-index when hovering to show outline in group properly
|
|
221
228
|
|
|
222
229
|
|
|
@@ -259,7 +266,7 @@ function Button(_ref) {
|
|
|
259
266
|
restProps = (0, _utils.mergeProps)(restProps, wrapperProps);
|
|
260
267
|
}
|
|
261
268
|
|
|
262
|
-
if (type && restProps.as && restProps.as !== "button") {
|
|
269
|
+
if (buttonProps.type && restProps.as && restProps.as !== "button") {
|
|
263
270
|
console.log("Tapestry-React: <Button/> type prop is only supported by <button> and not <" + restProps.as + ">.");
|
|
264
271
|
}
|
|
265
272
|
}
|
|
@@ -8,25 +8,68 @@ var _react2 = require("@testing-library/react");
|
|
|
8
8
|
|
|
9
9
|
var _Button = require("./Button");
|
|
10
10
|
|
|
11
|
+
it("should render as <button> with type=\"button\" by default", function () {
|
|
12
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, null)),
|
|
13
|
+
container = _render.container;
|
|
14
|
+
|
|
15
|
+
var button = container.querySelector('button');
|
|
16
|
+
expect(button.getAttribute('type')).toEqual('button');
|
|
17
|
+
});
|
|
18
|
+
it("should render as <button> with type=\"submit\"", function () {
|
|
19
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, {
|
|
20
|
+
type: "submit"
|
|
21
|
+
})),
|
|
22
|
+
container = _render2.container;
|
|
23
|
+
|
|
24
|
+
var button = container.querySelector('button');
|
|
25
|
+
expect(button.getAttribute('type')).toEqual('submit');
|
|
26
|
+
});
|
|
11
27
|
it("should render title", function () {
|
|
12
28
|
var title = 'Hello';
|
|
13
29
|
|
|
14
|
-
var
|
|
30
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, {
|
|
15
31
|
title: title
|
|
16
32
|
})),
|
|
17
|
-
getByText =
|
|
33
|
+
getByText = _render3.getByText;
|
|
18
34
|
|
|
19
35
|
getByText(title);
|
|
20
36
|
});
|
|
37
|
+
it("should render <a> without a type if \"to\" is provided", function () {
|
|
38
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, {
|
|
39
|
+
to: "#"
|
|
40
|
+
})),
|
|
41
|
+
container = _render4.container;
|
|
42
|
+
|
|
43
|
+
var button = container.querySelector('a');
|
|
44
|
+
expect(button.getAttribute('type')).toBeNull();
|
|
45
|
+
});
|
|
46
|
+
it("should render <a> without a type if \"href\" is provided", function () {
|
|
47
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, {
|
|
48
|
+
href: "#"
|
|
49
|
+
})),
|
|
50
|
+
container = _render5.container;
|
|
51
|
+
|
|
52
|
+
var button = container.querySelector('a');
|
|
53
|
+
expect(button.getAttribute('type')).toBeNull();
|
|
54
|
+
});
|
|
55
|
+
it("should render <a> with \"href\" if \"to\" is specifed", function () {
|
|
56
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, {
|
|
57
|
+
to: "#"
|
|
58
|
+
})),
|
|
59
|
+
container = _render6.container;
|
|
60
|
+
|
|
61
|
+
var button = container.querySelector('a');
|
|
62
|
+
expect(button.getAttribute('href')).toEqual('#');
|
|
63
|
+
});
|
|
21
64
|
it("should render href and external link values", function () {
|
|
22
65
|
var title = 'Hello';
|
|
23
66
|
|
|
24
|
-
var
|
|
67
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, {
|
|
25
68
|
external: true,
|
|
26
69
|
title: title,
|
|
27
70
|
to: "https://www.planningcenter.com"
|
|
28
71
|
})),
|
|
29
|
-
getByText =
|
|
72
|
+
getByText = _render7.getByText;
|
|
30
73
|
|
|
31
74
|
var button = getByText(title);
|
|
32
75
|
expect(button.getAttribute('href')).toEqual('https://www.planningcenter.com');
|
|
@@ -36,18 +79,18 @@ it("should render href and external link values", function () {
|
|
|
36
79
|
it("should call onClick when clicked or Enter or Space key is pressed", function () {
|
|
37
80
|
var onClick = jest.fn();
|
|
38
81
|
|
|
39
|
-
var
|
|
82
|
+
var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, {
|
|
40
83
|
onClick: onClick
|
|
41
84
|
})),
|
|
42
|
-
container =
|
|
85
|
+
container = _render8.container;
|
|
43
86
|
|
|
44
87
|
_react2.fireEvent.click(container.firstChild);
|
|
45
88
|
|
|
46
89
|
expect(onClick).toHaveBeenCalledTimes(1);
|
|
47
90
|
});
|
|
48
91
|
it("should not call onClick when Enter or Space key is pressed and onClick isn't present", function () {
|
|
49
|
-
var
|
|
50
|
-
container =
|
|
92
|
+
var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button.Button, null)),
|
|
93
|
+
container = _render9.container;
|
|
51
94
|
|
|
52
95
|
_react2.fireEvent.keyDown(container.firstChild, {
|
|
53
96
|
key: 'Enter'
|
|
@@ -37,8 +37,8 @@ function BodyRow(_ref) {
|
|
|
37
37
|
|
|
38
38
|
var props = _objectSpread({
|
|
39
39
|
ref: innerRef,
|
|
40
|
-
onClick:
|
|
41
|
-
return onRowClick(rowData, rowIndex);
|
|
40
|
+
onClick: function onClick(event) {
|
|
41
|
+
return onRowClick && onRowClick(rowData, rowIndex, event);
|
|
42
42
|
},
|
|
43
43
|
onMouseEnter: bindKeyboardShortcuts,
|
|
44
44
|
onMouseLeave: unbindKeyboardShortcuts,
|
|
@@ -105,7 +105,7 @@ function CheckboxCell(_ref) {
|
|
|
105
105
|
stroke: checked || indeterminate ? 'primary' : 'separatorSecondary'
|
|
106
106
|
}), /*#__PURE__*/_react["default"].createElement(_Icon["default"].Path, {
|
|
107
107
|
name: iconPaths.minus,
|
|
108
|
-
className: "tapestry-react-reset tapestry-react-Checkbox-
|
|
108
|
+
className: "tapestry-react-reset tapestry-react-Checkbox-Fill"
|
|
109
109
|
}), /*#__PURE__*/_react["default"].createElement(_Icon["default"].Path, {
|
|
110
110
|
name: iconPaths.checked,
|
|
111
111
|
className: "tapestry-react-reset tapestry-react-Checkbox-Checked"
|
|
@@ -15,7 +15,7 @@ var _react = require("react");
|
|
|
15
15
|
|
|
16
16
|
var _useConstant = _interopRequireDefault(require("../../hooks/useConstant"));
|
|
17
17
|
|
|
18
|
-
var _zustand =
|
|
18
|
+
var _zustand = require("zustand");
|
|
19
19
|
|
|
20
20
|
var _utils = require("../../utils");
|
|
21
21
|
|
|
@@ -51,7 +51,7 @@ function useCollapsibleRows(data, defaultAllSubRowsOpen) {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
var useStore = (0, _useConstant["default"])(function () {
|
|
54
|
-
return (0, _zustand
|
|
54
|
+
return (0, _zustand.create)(function (set) {
|
|
55
55
|
return {
|
|
56
56
|
instant: false,
|
|
57
57
|
allSubRowsOpen: defaultAllSubRowsOpen,
|
|
@@ -21,6 +21,10 @@ var RBDND = _interopRequireWildcard(require("@planningcenter/react-beautiful-dnd
|
|
|
21
21
|
|
|
22
22
|
var _mitt = _interopRequireDefault(require("mitt"));
|
|
23
23
|
|
|
24
|
+
var _styles = require("../ThemeProvider/styles");
|
|
25
|
+
|
|
26
|
+
var _system = require("../system");
|
|
27
|
+
|
|
24
28
|
var _StackView = _interopRequireDefault(require("../StackView"));
|
|
25
29
|
|
|
26
30
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
@@ -51,10 +55,13 @@ function Provider(_ref) {
|
|
|
51
55
|
_onDragEnd = _ref.onDragEnd,
|
|
52
56
|
props = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["onDragStart", "onDragEnd"]);
|
|
53
57
|
var hasParentDragDrop = useDragDrop();
|
|
58
|
+
var themeId = (0, _system.useThemeValue)('id');
|
|
54
59
|
|
|
55
60
|
if (typeof document !== 'undefined' && portalNode === null) {
|
|
56
61
|
portalNode = document.createElement('div');
|
|
57
62
|
portalNode.id = 'rbd-portal';
|
|
63
|
+
portalNode.className = 'tapestry-react-reset';
|
|
64
|
+
portalNode.setAttribute((0, _styles.getThemeDataAttribute)(themeId), 'true');
|
|
58
65
|
document.body.appendChild(portalNode);
|
|
59
66
|
}
|
|
60
67
|
|
|
@@ -84,7 +84,7 @@ var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
84
84
|
_this.popover.focusAnchor();
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
if (
|
|
87
|
+
if (node.tagName === 'A' && event.type !== 'click') {
|
|
88
88
|
node.click();
|
|
89
89
|
} else if (_this.props.onSelect) {
|
|
90
90
|
_this.props.onSelect(data);
|
|
@@ -112,7 +112,7 @@ var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
112
112
|
keepInView = _this$props.keepInView,
|
|
113
113
|
lockScrollWhileOpen = _this$props.lockScrollWhileOpen,
|
|
114
114
|
matchWidths = _this$props.matchWidths,
|
|
115
|
-
|
|
115
|
+
_onClick = _this$props.onClick,
|
|
116
116
|
onClose = _this$props.onClose,
|
|
117
117
|
onKeyDown = _this$props.onKeyDown,
|
|
118
118
|
onOpen = _this$props.onOpen,
|
|
@@ -194,12 +194,14 @@ var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
194
194
|
}, _objectSpread2[arrowIconOnly ? 'icon' : 'iconRight'] = {
|
|
195
195
|
name: isPopoverOpen ? 'general.upCaret' : 'general.downCaret',
|
|
196
196
|
size: 'sm'
|
|
197
|
-
}, _objectSpread2.title = arrowIconOnly ? 'arrow down' : restProps.title, _objectSpread2.tabIndex = 0, _objectSpread2.cursor = 'pointer', _objectSpread2.onBlur = requestBlur, _objectSpread2.onClick = function onClick() {
|
|
197
|
+
}, _objectSpread2.title = arrowIconOnly ? 'arrow down' : restProps.title, _objectSpread2.tabIndex = 0, _objectSpread2.cursor = 'pointer', _objectSpread2.onBlur = requestBlur, _objectSpread2.onClick = function onClick(event) {
|
|
198
198
|
_this2.togglePopover();
|
|
199
199
|
|
|
200
200
|
if (!isPopoverOpen) {
|
|
201
201
|
_this2.popover.focusAnchor();
|
|
202
202
|
}
|
|
203
|
+
|
|
204
|
+
_onClick && _onClick(event);
|
|
203
205
|
}, _objectSpread2.onKeyDown = function onKeyDown(event) {
|
|
204
206
|
anchorProps.onKeyDown(event);
|
|
205
207
|
|
|
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
5
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
6
|
|
|
7
7
|
exports.__esModule = true;
|
|
8
|
-
exports["default"] = exports.
|
|
8
|
+
exports["default"] = exports.LINK_DISPLAY_NAME = void 0;
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
@@ -23,8 +23,6 @@ var _Menu = _interopRequireDefault(require("../Menu"));
|
|
|
23
23
|
|
|
24
24
|
var LINK_DISPLAY_NAME = 'Dropdown.Link';
|
|
25
25
|
exports.LINK_DISPLAY_NAME = LINK_DISPLAY_NAME;
|
|
26
|
-
var LINK_DATA = 'link';
|
|
27
|
-
exports.LINK_DATA = LINK_DATA;
|
|
28
26
|
|
|
29
27
|
var Link = /*#__PURE__*/function (_Component) {
|
|
30
28
|
(0, _inheritsLoose2["default"])(Link, _Component);
|
|
@@ -51,7 +49,7 @@ var Link = /*#__PURE__*/function (_Component) {
|
|
|
51
49
|
}
|
|
52
50
|
|
|
53
51
|
return /*#__PURE__*/_react["default"].createElement(_ItemList.ItemListItem, {
|
|
54
|
-
data:
|
|
52
|
+
data: "link",
|
|
55
53
|
text: text,
|
|
56
54
|
disabled: disabled,
|
|
57
55
|
index: index
|
|
@@ -11,12 +11,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
13
13
|
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
|
-
var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
|
|
17
|
-
|
|
18
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
-
|
|
20
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
15
|
|
|
22
16
|
var _system = require("../system");
|
|
@@ -25,68 +19,51 @@ var _Text = _interopRequireDefault(require("../Text"));
|
|
|
25
19
|
|
|
26
20
|
var _utils = require("./utils");
|
|
27
21
|
|
|
28
|
-
|
|
29
|
-
|
|
22
|
+
function InputLabel(_ref) {
|
|
23
|
+
var controls = _ref.controls,
|
|
24
|
+
state = _ref.state,
|
|
25
|
+
restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["controls", "state"]);
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
var _useThemeProps = (0, _system.useThemeProps)('inputLabel', restProps),
|
|
28
|
+
themeProps = (0, _extends2["default"])({}, _useThemeProps);
|
|
33
29
|
|
|
34
|
-
|
|
35
|
-
args[_key] = arguments[_key];
|
|
36
|
-
}
|
|
30
|
+
var input = (0, _react.useRef)(null);
|
|
37
31
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
isHovered: true
|
|
45
|
-
});
|
|
46
|
-
});
|
|
47
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleMouseOut", function () {
|
|
48
|
-
_this.input && _this.input.setState({
|
|
49
|
-
isHovered: false
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
return _this;
|
|
32
|
+
if (controls) {
|
|
33
|
+
themeProps.id = controls + "-label";
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (state) {
|
|
37
|
+
themeProps.color = (0, _system.getColor)(state);
|
|
53
38
|
}
|
|
54
39
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
onMouseOver: this.handleMouseOver,
|
|
83
|
-
onMouseOut: this.handleMouseOut,
|
|
84
|
-
onClick: this.focusInput
|
|
85
|
-
}, restProps));
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
return InputLabel;
|
|
89
|
-
}(_react.Component);
|
|
40
|
+
(0, _react.useEffect)(function () {
|
|
41
|
+
input.current = _utils.inputs[controls];
|
|
42
|
+
_utils.inputLabels[controls] = true;
|
|
43
|
+
return function () {
|
|
44
|
+
delete _utils.inputLabels[controls];
|
|
45
|
+
};
|
|
46
|
+
}, []);
|
|
47
|
+
var focusInput = (0, _react.useCallback)(function () {
|
|
48
|
+
input.current && input.current.focus();
|
|
49
|
+
}, [input]);
|
|
50
|
+
var handleMouseOver = (0, _react.useCallback)(function () {
|
|
51
|
+
input.current && input.current.setState({
|
|
52
|
+
isHovered: true
|
|
53
|
+
});
|
|
54
|
+
}, [input]);
|
|
55
|
+
var handleMouseOut = (0, _react.useCallback)(function () {
|
|
56
|
+
input.current && input.current.setState({
|
|
57
|
+
isHovered: false
|
|
58
|
+
});
|
|
59
|
+
}, [input]);
|
|
60
|
+
return /*#__PURE__*/_react["default"].createElement(_Text["default"], (0, _extends2["default"])({
|
|
61
|
+
as: "label",
|
|
62
|
+
onMouseOver: handleMouseOver,
|
|
63
|
+
onMouseOut: handleMouseOut,
|
|
64
|
+
onClick: focusInput
|
|
65
|
+
}, themeProps));
|
|
66
|
+
}
|
|
90
67
|
|
|
91
68
|
InputLabel.displayName = 'Input.InputLabel';
|
|
92
69
|
var _default = InputLabel;
|
package/dist/cjs/Modal/Modal.js
CHANGED
|
@@ -21,12 +21,20 @@ var _hooks = require("../hooks");
|
|
|
21
21
|
|
|
22
22
|
var _utils = require("../utils");
|
|
23
23
|
|
|
24
|
+
var _system = require("../system");
|
|
25
|
+
|
|
24
26
|
function Modal(_ref) {
|
|
25
27
|
var children = _ref.children,
|
|
26
28
|
closeOnOutsideClick = _ref.closeOnOutsideClick,
|
|
27
29
|
onRequestClose = _ref.onRequestClose,
|
|
28
30
|
open = _ref.open,
|
|
29
31
|
restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["children", "closeOnOutsideClick", "onRequestClose", "open"]);
|
|
32
|
+
|
|
33
|
+
var _useThemeProps = (0, _system.useThemeProps)('modal', restProps),
|
|
34
|
+
_useThemeProps$scrimP = _useThemeProps.scrimProps,
|
|
35
|
+
scrimProps = _useThemeProps$scrimP === void 0 ? {} : _useThemeProps$scrimP,
|
|
36
|
+
themeProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["scrimProps"]);
|
|
37
|
+
|
|
30
38
|
var modalRef = (0, _react.useRef)(null);
|
|
31
39
|
(0, _react.useLayoutEffect)(function () {
|
|
32
40
|
if (open) {
|
|
@@ -43,22 +51,24 @@ function Modal(_ref) {
|
|
|
43
51
|
return null;
|
|
44
52
|
}
|
|
45
53
|
|
|
46
|
-
return /*#__PURE__*/_react["default"].createElement(_Scrim["default"], {
|
|
54
|
+
return /*#__PURE__*/_react["default"].createElement(_Scrim["default"], (0, _extends2["default"])({
|
|
47
55
|
alignment: "center",
|
|
48
56
|
onMouseDown: function onMouseDown(event) {
|
|
49
57
|
if (closeOnOutsideClick && event.currentTarget === event.target) {
|
|
50
58
|
onRequestClose();
|
|
51
59
|
}
|
|
52
60
|
}
|
|
53
|
-
}, /*#__PURE__*/_react["default"].createElement(_Box["default"], (0, _extends2["default"])({
|
|
61
|
+
}, scrimProps), /*#__PURE__*/_react["default"].createElement(_Box["default"], (0, _extends2["default"])({
|
|
62
|
+
backgroundColor: "surface",
|
|
63
|
+
boxShadow: "0 0 20px rgba(0, 0, 0, 0.15)",
|
|
54
64
|
innerRef: modalRef,
|
|
55
|
-
width: "100%",
|
|
56
|
-
maxWidth: 60,
|
|
57
|
-
padding: 2,
|
|
58
65
|
margin: 4,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
maxWidth: 60,
|
|
67
|
+
padding: 4,
|
|
68
|
+
paddingBottom: 3,
|
|
69
|
+
radius: 8,
|
|
70
|
+
width: "100%"
|
|
71
|
+
}, themeProps), children));
|
|
62
72
|
}
|
|
63
73
|
|
|
64
74
|
var _default = Modal;
|
|
@@ -25,6 +25,8 @@ var _rewireTabOrder = _interopRequireDefault(require("./rewireTabOrder"));
|
|
|
25
25
|
|
|
26
26
|
var _utils2 = require("./utils");
|
|
27
27
|
|
|
28
|
+
var _system = require("../system");
|
|
29
|
+
|
|
28
30
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
29
31
|
|
|
30
32
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
@@ -50,6 +52,12 @@ var Popover = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
50
52
|
_ref$shouldFlip = _ref.shouldFlip,
|
|
51
53
|
shouldFlip = _ref$shouldFlip === void 0 ? false : _ref$shouldFlip,
|
|
52
54
|
restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["anchorElement", "as", "innerRef", "keepInView", "lockScrollWhileOpen", "matchWidths", "offset", "open", "onKeyDown", "onRequestClose", "placement", "relativeTo", "renderTo", "shouldFlip"]);
|
|
55
|
+
|
|
56
|
+
var _useThemeProps = (0, _system.useThemeProps)('popover', restProps),
|
|
57
|
+
_useThemeProps$zIndex = _useThemeProps.zIndex,
|
|
58
|
+
zIndex = _useThemeProps$zIndex === void 0 ? 10000 : _useThemeProps$zIndex,
|
|
59
|
+
themeProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["zIndex"]);
|
|
60
|
+
|
|
53
61
|
var anchorRef = React.useRef(null);
|
|
54
62
|
var popperRef = React.useRef(null);
|
|
55
63
|
var unlockScroll = React.useRef(null);
|
|
@@ -210,9 +218,9 @@ var Popover = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
210
218
|
}),
|
|
211
219
|
// ideally this should be pulled out to something like ThemeProvider for predictable z indices
|
|
212
220
|
style: {
|
|
213
|
-
zIndex:
|
|
221
|
+
zIndex: zIndex
|
|
214
222
|
}
|
|
215
|
-
},
|
|
223
|
+
}, themeProps)) : null);
|
|
216
224
|
});
|
|
217
225
|
exports.Popover = Popover;
|
|
218
226
|
Popover.displayName = 'Popover';
|
|
@@ -19,6 +19,10 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _reactDom = require("react-dom");
|
|
21
21
|
|
|
22
|
+
var _styles = require("../ThemeProvider/styles");
|
|
23
|
+
|
|
24
|
+
var _react2 = require("@emotion/react");
|
|
25
|
+
|
|
22
26
|
/** Accepts any additional HTML attributes. */
|
|
23
27
|
var Portal = /*#__PURE__*/function (_React$Component) {
|
|
24
28
|
(0, _inheritsLoose2["default"])(Portal, _React$Component);
|
|
@@ -31,6 +35,7 @@ var Portal = /*#__PURE__*/function (_React$Component) {
|
|
|
31
35
|
}
|
|
32
36
|
|
|
33
37
|
_this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
|
|
38
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "context", void 0);
|
|
34
39
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_portalNode", null);
|
|
35
40
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_needsUpdate", false);
|
|
36
41
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_updated", false);
|
|
@@ -125,6 +130,10 @@ var Portal = /*#__PURE__*/function (_React$Component) {
|
|
|
125
130
|
_this2._portalNode.setAttribute(key, restProps[key]);
|
|
126
131
|
});
|
|
127
132
|
|
|
133
|
+
this._portalNode.classList.add('tapestry-react-reset');
|
|
134
|
+
|
|
135
|
+
this._portalNode.setAttribute((0, _styles.getThemeDataAttribute)(this.context.id), 'true');
|
|
136
|
+
|
|
128
137
|
if (style) {
|
|
129
138
|
Object.keys(style).forEach(function (key) {
|
|
130
139
|
_this2._portalNode.style[key] = style[key];
|
|
@@ -163,4 +172,5 @@ exports.Portal = Portal;
|
|
|
163
172
|
(0, _defineProperty2["default"])(Portal, "defaultProps", {
|
|
164
173
|
renderTag: 'div',
|
|
165
174
|
renderTo: null
|
|
166
|
-
});
|
|
175
|
+
});
|
|
176
|
+
(0, _defineProperty2["default"])(Portal, "contextType", _react2.ThemeContext);
|
package/dist/cjs/Scrim/Scrim.js
CHANGED
|
@@ -9,28 +9,40 @@ exports.Scrim = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
12
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
13
|
+
|
|
12
14
|
var React = _interopRequireWildcard(require("react"));
|
|
13
15
|
|
|
14
16
|
var _StackView = _interopRequireDefault(require("../StackView"));
|
|
15
17
|
|
|
16
|
-
var
|
|
18
|
+
var _system = require("../system");
|
|
19
|
+
|
|
20
|
+
var Scrim = /*#__PURE__*/React.forwardRef(function (_ref2, _ref) {
|
|
21
|
+
var ref = _ref2.ref,
|
|
22
|
+
restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, ["ref"]);
|
|
17
23
|
React.useLayoutEffect(function () {
|
|
18
24
|
document.body.style.overflow = 'hidden';
|
|
19
25
|
return function () {
|
|
20
26
|
document.body.style.overflow = '';
|
|
21
27
|
};
|
|
22
28
|
}, []);
|
|
29
|
+
|
|
30
|
+
var _useThemeProps = (0, _system.useThemeProps)('scrim', restProps),
|
|
31
|
+
_useThemeProps$zIndex = _useThemeProps.zIndex,
|
|
32
|
+
zIndex = _useThemeProps$zIndex === void 0 ? 10000 : _useThemeProps$zIndex,
|
|
33
|
+
themeProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["zIndex"]);
|
|
34
|
+
|
|
23
35
|
return /*#__PURE__*/React.createElement(_StackView["default"], (0, _extends2["default"])({
|
|
24
|
-
innerRef:
|
|
36
|
+
innerRef: ref,
|
|
25
37
|
position: "fixed",
|
|
26
38
|
top: 0,
|
|
27
39
|
right: 0,
|
|
28
40
|
bottom: 0,
|
|
29
41
|
left: 0,
|
|
30
|
-
zIndex:
|
|
42
|
+
zIndex: zIndex,
|
|
31
43
|
overflow: "auto" // @ts-ignore
|
|
32
44
|
,
|
|
33
45
|
backgroundColor: "hsla(0,0%,0%,0.4)"
|
|
34
|
-
},
|
|
46
|
+
}, themeProps));
|
|
35
47
|
});
|
|
36
48
|
exports.Scrim = Scrim;
|
|
@@ -8,6 +8,10 @@ exports.__esModule = true;
|
|
|
8
8
|
exports.ThemeProvider = ThemeProvider;
|
|
9
9
|
exports.themeInitializerScript = exports.themeStorage = exports.cache = void 0;
|
|
10
10
|
|
|
11
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
|
+
|
|
13
|
+
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
14
|
+
|
|
11
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
16
|
|
|
13
17
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -18,6 +22,8 @@ var _cache = _interopRequireDefault(require("@emotion/cache"));
|
|
|
18
22
|
|
|
19
23
|
var _lodash = require("lodash");
|
|
20
24
|
|
|
25
|
+
var _Box = require("../Box");
|
|
26
|
+
|
|
21
27
|
var _defaultTheme = _interopRequireDefault(require("../system/default-theme"));
|
|
22
28
|
|
|
23
29
|
var _system = require("../system");
|
|
@@ -38,6 +44,15 @@ var cache = (0, _cache["default"])({
|
|
|
38
44
|
key: 'tapestry-react'
|
|
39
45
|
});
|
|
40
46
|
exports.cache = cache;
|
|
47
|
+
|
|
48
|
+
function mergeIntoNewObject() {
|
|
49
|
+
for (var _len = arguments.length, merges = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
50
|
+
merges[_key] = arguments[_key];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return _lodash.merge.apply(void 0, [{}].concat(merges));
|
|
54
|
+
}
|
|
55
|
+
|
|
41
56
|
var themeStorage = {
|
|
42
57
|
get: function get() {
|
|
43
58
|
return window.localStorage.getItem(STORAGE_KEY);
|
|
@@ -64,12 +79,12 @@ function mergeThemes(a, b) {
|
|
|
64
79
|
|
|
65
80
|
return _objectSpread(_objectSpread(_objectSpread({}, a), b), {}, {
|
|
66
81
|
button: _objectSpread(_objectSpread(_objectSpread({}, a.button), b.button), {}, {
|
|
67
|
-
themes: (
|
|
82
|
+
themes: mergeIntoNewObject(((_a$button = a.button) == null ? void 0 : _a$button.themes) || {}, ((_b$button = b.button) == null ? void 0 : _b$button.themes) || {})
|
|
68
83
|
}),
|
|
69
|
-
colors: (
|
|
84
|
+
colors: mergeIntoNewObject((0, _system.flattenPalette)(a.colors || {}), (0, _system.flattenPalette)(b.colors || {})),
|
|
70
85
|
spinner: _objectSpread(_objectSpread(_objectSpread({}, a.spinner), b.spinner), {}, {
|
|
71
|
-
sizes: (
|
|
72
|
-
thickness: (
|
|
86
|
+
sizes: mergeIntoNewObject(((_a$spinner = a.spinner) == null ? void 0 : _a$spinner.sizes) || {}, ((_b$spinner = b.spinner) == null ? void 0 : _b$spinner.sizes) || {}),
|
|
87
|
+
thickness: mergeIntoNewObject(((_a$spinner2 = a.spinner) == null ? void 0 : _a$spinner2.thickness) || {}, ((_b$spinner2 = b.spinner) == null ? void 0 : _b$spinner2.thickness) || {})
|
|
73
88
|
})
|
|
74
89
|
});
|
|
75
90
|
}
|
|
@@ -79,7 +94,8 @@ function ThemeProvider(_ref) {
|
|
|
79
94
|
|
|
80
95
|
var _ref$theme = _ref.theme,
|
|
81
96
|
theme = _ref$theme === void 0 ? emptyTheme : _ref$theme,
|
|
82
|
-
children = _ref.children
|
|
97
|
+
children = _ref.children,
|
|
98
|
+
boxProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["theme", "children"]);
|
|
83
99
|
|
|
84
100
|
var _useState = (0, _react.useState)(function () {
|
|
85
101
|
return mergeThemes(_defaultTheme["default"], theme);
|
|
@@ -99,7 +115,9 @@ function ThemeProvider(_ref) {
|
|
|
99
115
|
value: cache
|
|
100
116
|
}, /*#__PURE__*/_react["default"].createElement(_react2.ThemeProvider, {
|
|
101
117
|
theme: mergedTheme
|
|
102
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
118
|
+
}, /*#__PURE__*/_react["default"].createElement(_Box.Box, (0, _extends2["default"])({
|
|
119
|
+
className: "tapestry-react-reset"
|
|
120
|
+
}, boxProps, (_ref2 = {}, _ref2["" + (0, _styles.getThemeDataAttribute)(mergedTheme.id)] = true, _ref2)), children)));
|
|
103
121
|
}
|
|
104
122
|
|
|
105
123
|
ThemeProvider.cache = cache;
|
|
@@ -35,7 +35,7 @@ var setRootStyles = function setRootStyles(themeId, styles) {
|
|
|
35
35
|
exports.setRootStyles = setRootStyles;
|
|
36
36
|
var defaultColorProperties = (0, _utils.objectToCSSProperties)('colors', (0, _system.flattenPalette)(_system.defaultTheme.colors));
|
|
37
37
|
exports.defaultColorProperties = defaultColorProperties;
|
|
38
|
-
var styleReset = ("\n" + getRootStyles(null, defaultColorProperties) + "\n\n.tapestry-react-reset {\n appearance: none;\n box-sizing: border-box;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n font-weight: 400;\n
|
|
38
|
+
var styleReset = ("\n" + getRootStyles(null, defaultColorProperties) + "\n\n.tapestry-react-reset {\n appearance: none;\n background-color: transparent;\n border-width: 0px;\n border-style: solid;\n border-color: transparent;\n box-sizing: border-box;\n color: inherit;\n box-sizing: border-box;\n flex-grow: 0;\n flex-shrink: 0;\n flex-basis: auto;\n font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';\n font-weight: 400;\n margin-top: 0;\n margin-right: 0;\n margin-bottom: 0;\n margin-left: 0;\n min-width: 0px;\n min-height: 0px;\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n text-decoration: none;\n}\n\n.tapestry-react-reset::-moz-focus-inner {\n padding-top: 0;\n padding-right: 0;\n padding-bottom: 0;\n padding-left: 0;\n border: none;\n}\n\n.tapestry-react-reset:focus:not(.focus-visible) {\n outline: 0px;\n}\n" // minify string
|
|
39
39
|
).replace(/\n/g, '').replace(/\s\s+/g, ' '); // we use our own global style implementation in place of Emotion Global
|
|
40
40
|
// so we can have more control over when styles are injected since multiple
|
|
41
41
|
// Providers can be used on a page
|
|
@@ -43,9 +43,6 @@ var styleReset = ("\n" + getRootStyles(null, defaultColorProperties) + "\n\n.tap
|
|
|
43
43
|
exports.styleReset = styleReset;
|
|
44
44
|
|
|
45
45
|
function ensureStyleElement(themeId) {
|
|
46
|
-
// we use our own global style implementation in place of Emotion Global
|
|
47
|
-
// so we can have more control over when styles are injected since multiple
|
|
48
|
-
// Providers can be used on a page
|
|
49
46
|
if (typeof window !== 'undefined' && !document.getElementById("tapestry-react-style-" + themeId)) {
|
|
50
47
|
var styleElement = document.createElement('style');
|
|
51
48
|
styleElement.id = "tapestry-react-style-" + themeId;
|
|
@@ -214,7 +214,7 @@ var TimeField = /*#__PURE__*/function (_Component) {
|
|
|
214
214
|
highlightOnInteraction: true,
|
|
215
215
|
value: this.state.meridiem,
|
|
216
216
|
grow: 0,
|
|
217
|
-
width:
|
|
217
|
+
width: "2em",
|
|
218
218
|
textAlign: "center",
|
|
219
219
|
"aria-label": "AM/PM",
|
|
220
220
|
onChange: _utils.noop // prevent React warnings
|