@planningcenter/tapestry-react 2.6.0-rc.1 → 2.6.0-rc.12
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 +15 -7
- package/dist/cjs/Popover/Popover.js +10 -2
- package/dist/cjs/Portal/Portal.js +2 -0
- 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 +13 -7
- package/dist/esm/Popover/Popover.js +8 -2
- package/dist/esm/Portal/Portal.js +2 -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/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 +4 -4
- 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 +12 -4
- 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 +3 -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
|
@@ -60,8 +60,8 @@ function Tooltip(props, ref) {
|
|
|
60
60
|
var isPageInView = true;
|
|
61
61
|
var isFocused = false;
|
|
62
62
|
var isMouseDown = false;
|
|
63
|
-
var openTimeoutId = null;
|
|
64
|
-
var closeTimeoutId = null; // prevents tooltips showing when focused and navigating back to a page after leaving
|
|
63
|
+
var openTimeoutId = (0, _react.useRef)(null);
|
|
64
|
+
var closeTimeoutId = (0, _react.useRef)(null); // prevents tooltips showing when focused and navigating back to a page after leaving
|
|
65
65
|
|
|
66
66
|
var cleanupPageViewChange = (0, _react.useCallback)((0, _utils.pageViewChange)(function (inView) {
|
|
67
67
|
return setTimeout(function () {
|
|
@@ -77,21 +77,21 @@ function Tooltip(props, ref) {
|
|
|
77
77
|
emitter.on('CLOSE_OPEN_TOOLTIPS', close);
|
|
78
78
|
return function () {
|
|
79
79
|
emitter.off('CLOSE_OPEN_TOOLTIPS', close);
|
|
80
|
-
clearTimeout(openTimeoutId);
|
|
81
|
-
clearTimeout(closeTimeoutId);
|
|
80
|
+
clearTimeout(openTimeoutId.current);
|
|
81
|
+
clearTimeout(closeTimeoutId.current);
|
|
82
82
|
cleanupPageViewChange();
|
|
83
83
|
};
|
|
84
84
|
}, []);
|
|
85
85
|
|
|
86
86
|
var open = function open() {
|
|
87
|
-
clearTimeout(closeTimeoutId);
|
|
88
|
-
closeTimeoutId = null;
|
|
87
|
+
clearTimeout(closeTimeoutId.current);
|
|
88
|
+
closeTimeoutId.current = null;
|
|
89
89
|
setIsPopoverOpen(true);
|
|
90
90
|
};
|
|
91
91
|
|
|
92
92
|
var close = function close() {
|
|
93
|
-
clearTimeout(openTimeoutId);
|
|
94
|
-
openTimeoutId = null;
|
|
93
|
+
clearTimeout(openTimeoutId.current);
|
|
94
|
+
openTimeoutId.current = null;
|
|
95
95
|
setIsPopoverOpen(false);
|
|
96
96
|
};
|
|
97
97
|
|
|
@@ -119,13 +119,13 @@ function Tooltip(props, ref) {
|
|
|
119
119
|
var createOpenTimeout = (0, _react.useCallback)(function () {
|
|
120
120
|
clearGlobalTimeout();
|
|
121
121
|
|
|
122
|
-
if (openTimeoutId === null) {
|
|
123
|
-
clearTimeout(closeTimeoutId);
|
|
124
|
-
closeTimeoutId = null;
|
|
122
|
+
if (openTimeoutId.current === null) {
|
|
123
|
+
clearTimeout(closeTimeoutId.current);
|
|
124
|
+
closeTimeoutId.current = null;
|
|
125
125
|
|
|
126
126
|
if (isPopoverOpen === false) {
|
|
127
127
|
emitter.emit('CLOSE_OPEN_TOOLTIPS');
|
|
128
|
-
openTimeoutId = setTimeout(function () {
|
|
128
|
+
openTimeoutId.current = setTimeout(function () {
|
|
129
129
|
return open();
|
|
130
130
|
}, instantDelay ? 0 : openDelay);
|
|
131
131
|
}
|
|
@@ -134,11 +134,11 @@ function Tooltip(props, ref) {
|
|
|
134
134
|
var createCloseTimeout = (0, _react.useCallback)(function () {
|
|
135
135
|
startGlobalTimeout();
|
|
136
136
|
|
|
137
|
-
if (closeTimeoutId === null) {
|
|
138
|
-
clearTimeout(openTimeoutId);
|
|
139
|
-
openTimeoutId = null;
|
|
140
|
-
closeTimeoutId = setTimeout(function () {
|
|
141
|
-
close();
|
|
137
|
+
if (closeTimeoutId.current === null) {
|
|
138
|
+
clearTimeout(openTimeoutId.current);
|
|
139
|
+
openTimeoutId.current = null;
|
|
140
|
+
closeTimeoutId.current = setTimeout(function () {
|
|
141
|
+
return close();
|
|
142
142
|
}, closeDelay);
|
|
143
143
|
}
|
|
144
144
|
});
|
package/dist/cjs/index.d.js
CHANGED
|
@@ -9,7 +9,6 @@ var _exportNames = {
|
|
|
9
9
|
Avatar: true,
|
|
10
10
|
Badge: true,
|
|
11
11
|
Calendar: true,
|
|
12
|
-
Checkbox: true,
|
|
13
12
|
CheckboxCard: true,
|
|
14
13
|
CheckboxGroup: true,
|
|
15
14
|
ChurchCenterStatus: true,
|
|
@@ -31,11 +30,19 @@ var _exportNames = {
|
|
|
31
30
|
Icon: true,
|
|
32
31
|
Link: true,
|
|
33
32
|
LinkList: true,
|
|
34
|
-
List: true,
|
|
35
33
|
Logo: true,
|
|
36
34
|
Menu: true,
|
|
37
35
|
Modal: true,
|
|
38
36
|
NumberField: true,
|
|
37
|
+
PageActions: true,
|
|
38
|
+
PageBody: true,
|
|
39
|
+
PageButton: true,
|
|
40
|
+
PageDropdown: true,
|
|
41
|
+
PageHeader: true,
|
|
42
|
+
PageTab: true,
|
|
43
|
+
PageTabList: true,
|
|
44
|
+
PageTitle: true,
|
|
45
|
+
PageToolbar: true,
|
|
39
46
|
PagerView: true,
|
|
40
47
|
Pagination: true,
|
|
41
48
|
Progress: true,
|
|
@@ -46,9 +53,7 @@ var _exportNames = {
|
|
|
46
53
|
HeadingUppercase: true,
|
|
47
54
|
SegmentedControl: true,
|
|
48
55
|
SegmentedTabs: true,
|
|
49
|
-
Select: true,
|
|
50
56
|
Sidebar: true,
|
|
51
|
-
Sortable: true,
|
|
52
57
|
StepperField: true,
|
|
53
58
|
StepperProgress: true,
|
|
54
59
|
Summary: true,
|
|
@@ -60,9 +65,14 @@ var _exportNames = {
|
|
|
60
65
|
TokenInput: true,
|
|
61
66
|
Tooltip: true,
|
|
62
67
|
VariantProvider: true,
|
|
63
|
-
Wizard: true
|
|
68
|
+
Wizard: true,
|
|
69
|
+
Checkbox: true,
|
|
70
|
+
Input: true,
|
|
71
|
+
List: true,
|
|
72
|
+
Select: true,
|
|
73
|
+
Sortable: true
|
|
64
74
|
};
|
|
65
|
-
exports.Wizard = exports.VariantProvider = exports.Tooltip = exports.TokenInput = exports.Toolbar = exports.TimeField = exports.TextArea = exports.Tabs = exports.Table = exports.Summary = exports.StepperProgress = exports.StepperField = exports.
|
|
75
|
+
exports.Sortable = exports.Select = exports.List = exports.Input = exports.Checkbox = exports.Wizard = exports.VariantProvider = exports.Tooltip = exports.TokenInput = exports.Toolbar = exports.TimeField = exports.TextArea = exports.Tabs = exports.Table = exports.Summary = exports.StepperProgress = exports.StepperField = exports.Sidebar = exports.SegmentedTabs = exports.SegmentedControl = exports.HeadingUppercase = exports.Section = exports.ScreenReader = exports.RangeSlider = exports.Radio = exports.Progress = exports.Pagination = exports.PagerView = exports.PageToolbar = exports.PageTitle = exports.PageTabList = exports.PageTab = exports.PageHeader = exports.PageDropdown = exports.PageButton = exports.PageBody = exports.PageActions = exports.NumberField = exports.Modal = exports.Menu = exports.Logo = exports.LinkList = exports.Link = exports.Icon = exports.Highlight = exports.HelperDrawer = exports.Heading = exports.FieldSet = exports.Form = exports.Field = exports.EditActions = exports.Dropdown = exports.Drawer = exports.DragDrop = exports.DateField = exports.DataTable = exports.Combobox = exports.ColumnView = exports.Collapse = exports.ChurchCenterStatus = exports.CheckboxGroup = exports.CheckboxCard = exports.Calendar = exports.Badge = exports.Avatar = exports.utils = exports.server = exports.hooks = exports.designSystem = void 0;
|
|
66
76
|
|
|
67
77
|
var _Alert = require("./Alert");
|
|
68
78
|
|
|
@@ -136,15 +146,6 @@ Object.keys(_Group).forEach(function (key) {
|
|
|
136
146
|
exports[key] = _Group[key];
|
|
137
147
|
});
|
|
138
148
|
|
|
139
|
-
var _Input = require("./Input");
|
|
140
|
-
|
|
141
|
-
Object.keys(_Input).forEach(function (key) {
|
|
142
|
-
if (key === "default" || key === "__esModule") return;
|
|
143
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
144
|
-
if (key in exports && exports[key] === _Input[key]) return;
|
|
145
|
-
exports[key] = _Input[key];
|
|
146
|
-
});
|
|
147
|
-
|
|
148
149
|
var _Popover = require("./Popover");
|
|
149
150
|
|
|
150
151
|
Object.keys(_Popover).forEach(function (key) {
|
|
@@ -248,8 +249,6 @@ var Badge;
|
|
|
248
249
|
exports.Badge = Badge;
|
|
249
250
|
var Calendar;
|
|
250
251
|
exports.Calendar = Calendar;
|
|
251
|
-
var Checkbox;
|
|
252
|
-
exports.Checkbox = Checkbox;
|
|
253
252
|
var CheckboxCard;
|
|
254
253
|
exports.CheckboxCard = CheckboxCard;
|
|
255
254
|
var CheckboxGroup;
|
|
@@ -292,8 +291,6 @@ var Link;
|
|
|
292
291
|
exports.Link = Link;
|
|
293
292
|
var LinkList;
|
|
294
293
|
exports.LinkList = LinkList;
|
|
295
|
-
var List;
|
|
296
|
-
exports.List = List;
|
|
297
294
|
var Logo;
|
|
298
295
|
exports.Logo = Logo;
|
|
299
296
|
var Menu;
|
|
@@ -302,6 +299,24 @@ var Modal;
|
|
|
302
299
|
exports.Modal = Modal;
|
|
303
300
|
var NumberField;
|
|
304
301
|
exports.NumberField = NumberField;
|
|
302
|
+
var PageActions;
|
|
303
|
+
exports.PageActions = PageActions;
|
|
304
|
+
var PageBody;
|
|
305
|
+
exports.PageBody = PageBody;
|
|
306
|
+
var PageButton;
|
|
307
|
+
exports.PageButton = PageButton;
|
|
308
|
+
var PageDropdown;
|
|
309
|
+
exports.PageDropdown = PageDropdown;
|
|
310
|
+
var PageHeader;
|
|
311
|
+
exports.PageHeader = PageHeader;
|
|
312
|
+
var PageTab;
|
|
313
|
+
exports.PageTab = PageTab;
|
|
314
|
+
var PageTabList;
|
|
315
|
+
exports.PageTabList = PageTabList;
|
|
316
|
+
var PageTitle;
|
|
317
|
+
exports.PageTitle = PageTitle;
|
|
318
|
+
var PageToolbar;
|
|
319
|
+
exports.PageToolbar = PageToolbar;
|
|
305
320
|
var PagerView;
|
|
306
321
|
exports.PagerView = PagerView;
|
|
307
322
|
var Pagination;
|
|
@@ -322,12 +337,8 @@ var SegmentedControl;
|
|
|
322
337
|
exports.SegmentedControl = SegmentedControl;
|
|
323
338
|
var SegmentedTabs;
|
|
324
339
|
exports.SegmentedTabs = SegmentedTabs;
|
|
325
|
-
var Select;
|
|
326
|
-
exports.Select = Select;
|
|
327
340
|
var Sidebar;
|
|
328
341
|
exports.Sidebar = Sidebar;
|
|
329
|
-
var Sortable;
|
|
330
|
-
exports.Sortable = Sortable;
|
|
331
342
|
var StepperField;
|
|
332
343
|
exports.StepperField = StepperField;
|
|
333
344
|
var StepperProgress;
|
|
@@ -350,5 +361,39 @@ var Tooltip;
|
|
|
350
361
|
exports.Tooltip = Tooltip;
|
|
351
362
|
var VariantProvider;
|
|
352
363
|
exports.VariantProvider = VariantProvider;
|
|
353
|
-
var Wizard;
|
|
354
|
-
|
|
364
|
+
var Wizard; // ============
|
|
365
|
+
// Manual Types
|
|
366
|
+
// ===========
|
|
367
|
+
// These are components written in JS, where we can provide very small (one prop at a time) useful
|
|
368
|
+
// typings for consumers.
|
|
369
|
+
// ============
|
|
370
|
+
|
|
371
|
+
exports.Wizard = Wizard;
|
|
372
|
+
// ========
|
|
373
|
+
// Checkbox
|
|
374
|
+
// ========
|
|
375
|
+
var Checkbox; // =====
|
|
376
|
+
// Input
|
|
377
|
+
// =====
|
|
378
|
+
|
|
379
|
+
exports.Checkbox = Checkbox;
|
|
380
|
+
var Input; // ====
|
|
381
|
+
// List
|
|
382
|
+
// ====
|
|
383
|
+
|
|
384
|
+
exports.Input = Input;
|
|
385
|
+
var List; // ======
|
|
386
|
+
// Select
|
|
387
|
+
// ======
|
|
388
|
+
|
|
389
|
+
exports.List = List;
|
|
390
|
+
var Select; // ========
|
|
391
|
+
// Sortable
|
|
392
|
+
// ========
|
|
393
|
+
|
|
394
|
+
exports.Select = Select;
|
|
395
|
+
var Sortable; // =====================
|
|
396
|
+
// Typescript Components
|
|
397
|
+
// =====================
|
|
398
|
+
|
|
399
|
+
exports.Sortable = Sortable;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
5
|
exports.__esModule = true;
|
|
6
|
-
exports["default"] =
|
|
6
|
+
exports["default"] = SplitStyles;
|
|
7
7
|
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
9
|
|
|
@@ -17,7 +17,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
17
17
|
|
|
18
18
|
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; }
|
|
19
19
|
|
|
20
|
-
function
|
|
20
|
+
function SplitStyles(_ref) {
|
|
21
21
|
var className = _ref.className,
|
|
22
22
|
_ref$mediaQueries = _ref.mediaQueries,
|
|
23
23
|
mediaQueries = _ref$mediaQueries === void 0 ? {} : _ref$mediaQueries,
|
|
@@ -210,6 +210,13 @@ export function Button(_ref) {
|
|
|
210
210
|
|
|
211
211
|
if (to) {
|
|
212
212
|
restProps['href'] = to;
|
|
213
|
+
} // remove `type` if either `to` or `href` is specified
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
if (to || restProps.href) {
|
|
217
|
+
buttonProps = _objectSpread(_objectSpread({}, buttonProps), {}, {
|
|
218
|
+
type: null
|
|
219
|
+
});
|
|
213
220
|
} // apply stroke defaults and higher z-index when hovering to show outline in group properly
|
|
214
221
|
|
|
215
222
|
|
|
@@ -244,7 +251,7 @@ export function Button(_ref) {
|
|
|
244
251
|
restProps = mergeProps(restProps, wrapperProps);
|
|
245
252
|
}
|
|
246
253
|
|
|
247
|
-
if (type && restProps.as && restProps.as !== "button") {
|
|
254
|
+
if (buttonProps.type && restProps.as && restProps.as !== "button") {
|
|
248
255
|
console.log("Tapestry-React: <Button/> type prop is only supported by <button> and not <" + restProps.as + ">.");
|
|
249
256
|
}
|
|
250
257
|
}
|
|
@@ -1,25 +1,83 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render, fireEvent } from '@testing-library/react';
|
|
3
3
|
import { Button } from './Button';
|
|
4
|
+
|
|
5
|
+
var _ref = /*#__PURE__*/React.createElement(Button, null);
|
|
6
|
+
|
|
7
|
+
it("should render as <button> with type=\"button\" by default", function () {
|
|
8
|
+
var _render = render(_ref),
|
|
9
|
+
container = _render.container;
|
|
10
|
+
|
|
11
|
+
var button = container.querySelector('button');
|
|
12
|
+
expect(button.getAttribute('type')).toEqual('button');
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
var _ref2 = /*#__PURE__*/React.createElement(Button, {
|
|
16
|
+
type: "submit"
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("should render as <button> with type=\"submit\"", function () {
|
|
20
|
+
var _render2 = render(_ref2),
|
|
21
|
+
container = _render2.container;
|
|
22
|
+
|
|
23
|
+
var button = container.querySelector('button');
|
|
24
|
+
expect(button.getAttribute('type')).toEqual('submit');
|
|
25
|
+
});
|
|
4
26
|
it("should render title", function () {
|
|
5
27
|
var title = 'Hello';
|
|
6
28
|
|
|
7
|
-
var
|
|
29
|
+
var _render3 = render( /*#__PURE__*/React.createElement(Button, {
|
|
8
30
|
title: title
|
|
9
31
|
})),
|
|
10
|
-
getByText =
|
|
32
|
+
getByText = _render3.getByText;
|
|
11
33
|
|
|
12
34
|
getByText(title);
|
|
13
35
|
});
|
|
36
|
+
|
|
37
|
+
var _ref3 = /*#__PURE__*/React.createElement(Button, {
|
|
38
|
+
to: "#"
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("should render <a> without a type if \"to\" is provided", function () {
|
|
42
|
+
var _render4 = render(_ref3),
|
|
43
|
+
container = _render4.container;
|
|
44
|
+
|
|
45
|
+
var button = container.querySelector('a');
|
|
46
|
+
expect(button.getAttribute('type')).toBeNull();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
var _ref4 = /*#__PURE__*/React.createElement(Button, {
|
|
50
|
+
href: "#"
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it("should render <a> without a type if \"href\" is provided", function () {
|
|
54
|
+
var _render5 = render(_ref4),
|
|
55
|
+
container = _render5.container;
|
|
56
|
+
|
|
57
|
+
var button = container.querySelector('a');
|
|
58
|
+
expect(button.getAttribute('type')).toBeNull();
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
var _ref5 = /*#__PURE__*/React.createElement(Button, {
|
|
62
|
+
to: "#"
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it("should render <a> with \"href\" if \"to\" is specifed", function () {
|
|
66
|
+
var _render6 = render(_ref5),
|
|
67
|
+
container = _render6.container;
|
|
68
|
+
|
|
69
|
+
var button = container.querySelector('a');
|
|
70
|
+
expect(button.getAttribute('href')).toEqual('#');
|
|
71
|
+
});
|
|
14
72
|
it("should render href and external link values", function () {
|
|
15
73
|
var title = 'Hello';
|
|
16
74
|
|
|
17
|
-
var
|
|
75
|
+
var _render7 = render( /*#__PURE__*/React.createElement(Button, {
|
|
18
76
|
external: true,
|
|
19
77
|
title: title,
|
|
20
78
|
to: "https://www.planningcenter.com"
|
|
21
79
|
})),
|
|
22
|
-
getByText =
|
|
80
|
+
getByText = _render7.getByText;
|
|
23
81
|
|
|
24
82
|
var button = getByText(title);
|
|
25
83
|
expect(button.getAttribute('href')).toEqual('https://www.planningcenter.com');
|
|
@@ -29,20 +87,20 @@ it("should render href and external link values", function () {
|
|
|
29
87
|
it("should call onClick when clicked or Enter or Space key is pressed", function () {
|
|
30
88
|
var onClick = jest.fn();
|
|
31
89
|
|
|
32
|
-
var
|
|
90
|
+
var _render8 = render( /*#__PURE__*/React.createElement(Button, {
|
|
33
91
|
onClick: onClick
|
|
34
92
|
})),
|
|
35
|
-
container =
|
|
93
|
+
container = _render8.container;
|
|
36
94
|
|
|
37
95
|
fireEvent.click(container.firstChild);
|
|
38
96
|
expect(onClick).toHaveBeenCalledTimes(1);
|
|
39
97
|
});
|
|
40
98
|
|
|
41
|
-
var
|
|
99
|
+
var _ref6 = /*#__PURE__*/React.createElement(Button, null);
|
|
42
100
|
|
|
43
101
|
it("should not call onClick when Enter or Space key is pressed and onClick isn't present", function () {
|
|
44
|
-
var
|
|
45
|
-
container =
|
|
102
|
+
var _render9 = render(_ref6),
|
|
103
|
+
container = _render9.container;
|
|
46
104
|
|
|
47
105
|
fireEvent.keyDown(container.firstChild, {
|
|
48
106
|
key: 'Enter'
|
|
@@ -29,8 +29,8 @@ function BodyRow(_ref) {
|
|
|
29
29
|
|
|
30
30
|
var props = _objectSpread({
|
|
31
31
|
ref: innerRef,
|
|
32
|
-
onClick:
|
|
33
|
-
return onRowClick(rowData, rowIndex);
|
|
32
|
+
onClick: function onClick(event) {
|
|
33
|
+
return onRowClick && onRowClick(rowData, rowIndex, event);
|
|
34
34
|
},
|
|
35
35
|
onMouseEnter: bindKeyboardShortcuts,
|
|
36
36
|
onMouseLeave: unbindKeyboardShortcuts,
|
|
@@ -94,7 +94,7 @@ function CheckboxCell(_ref) {
|
|
|
94
94
|
stroke: checked || indeterminate ? 'primary' : 'separatorSecondary'
|
|
95
95
|
}), /*#__PURE__*/React.createElement(Icon.Path, {
|
|
96
96
|
name: iconPaths.minus,
|
|
97
|
-
className: "tapestry-react-reset tapestry-react-Checkbox-
|
|
97
|
+
className: "tapestry-react-reset tapestry-react-Checkbox-Fill"
|
|
98
98
|
}), /*#__PURE__*/React.createElement(Icon.Path, {
|
|
99
99
|
name: iconPaths.checked,
|
|
100
100
|
className: "tapestry-react-reset tapestry-react-Checkbox-Checked"
|
|
@@ -6,7 +6,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
6
6
|
|
|
7
7
|
import { createContext, useCallback, useContext, useEffect } from 'react';
|
|
8
8
|
import useConstant from '../../hooks/useConstant';
|
|
9
|
-
import create from 'zustand';
|
|
9
|
+
import { create } from 'zustand';
|
|
10
10
|
import { range } from '../../utils';
|
|
11
11
|
export var CollapsibleRowsContext = /*#__PURE__*/createContext(null);
|
|
12
12
|
export function useCollapsibleRowsStore(selector) {
|
|
@@ -10,6 +10,8 @@ import React, { Children, Fragment, createElement, createContext, useContext, us
|
|
|
10
10
|
import { createPortal } from 'react-dom';
|
|
11
11
|
import * as RBDND from '@planningcenter/react-beautiful-dnd';
|
|
12
12
|
import mitt from 'mitt';
|
|
13
|
+
import { getThemeDataAttribute } from '../ThemeProvider/styles';
|
|
14
|
+
import { useThemeValue } from '../system';
|
|
13
15
|
import StackView from '../StackView';
|
|
14
16
|
var DragDropContext = /*#__PURE__*/createContext(false);
|
|
15
17
|
var DroppableContext = /*#__PURE__*/createContext(false);
|
|
@@ -36,10 +38,13 @@ function Provider(_ref) {
|
|
|
36
38
|
props = _objectWithoutPropertiesLoose(_ref, ["onDragStart", "onDragEnd"]);
|
|
37
39
|
|
|
38
40
|
var hasParentDragDrop = useDragDrop();
|
|
41
|
+
var themeId = useThemeValue('id');
|
|
39
42
|
|
|
40
43
|
if (typeof document !== 'undefined' && portalNode === null) {
|
|
41
44
|
portalNode = document.createElement('div');
|
|
42
45
|
portalNode.id = 'rbd-portal';
|
|
46
|
+
portalNode.className = 'tapestry-react-reset';
|
|
47
|
+
portalNode.setAttribute(getThemeDataAttribute(themeId), 'true');
|
|
43
48
|
document.body.appendChild(portalNode);
|
|
44
49
|
}
|
|
45
50
|
|
|
@@ -16,7 +16,7 @@ import Menu from '../Menu';
|
|
|
16
16
|
import Popover from '../Popover';
|
|
17
17
|
import { cloneChildren, generateId } from '../utils';
|
|
18
18
|
import Item, { ITEM_DISPLAY_NAME } from './Item';
|
|
19
|
-
import Link, { LINK_DISPLAY_NAME
|
|
19
|
+
import Link, { LINK_DISPLAY_NAME } from './Link';
|
|
20
20
|
|
|
21
21
|
var Dropdown = /*#__PURE__*/function (_Component) {
|
|
22
22
|
_inheritsLoose(Dropdown, _Component);
|
|
@@ -67,7 +67,7 @@ var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
67
67
|
_this.popover.focusAnchor();
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
if (
|
|
70
|
+
if (node.tagName === 'A' && event.type !== 'click') {
|
|
71
71
|
node.click();
|
|
72
72
|
} else if (_this.props.onSelect) {
|
|
73
73
|
_this.props.onSelect(data);
|
|
@@ -96,7 +96,7 @@ var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
96
96
|
keepInView = _this$props.keepInView,
|
|
97
97
|
lockScrollWhileOpen = _this$props.lockScrollWhileOpen,
|
|
98
98
|
matchWidths = _this$props.matchWidths,
|
|
99
|
-
|
|
99
|
+
_onClick = _this$props.onClick,
|
|
100
100
|
onClose = _this$props.onClose,
|
|
101
101
|
onKeyDown = _this$props.onKeyDown,
|
|
102
102
|
onOpen = _this$props.onOpen,
|
|
@@ -179,12 +179,14 @@ var Dropdown = /*#__PURE__*/function (_Component) {
|
|
|
179
179
|
}, _objectSpread2[arrowIconOnly ? 'icon' : 'iconRight'] = {
|
|
180
180
|
name: isPopoverOpen ? 'general.upCaret' : 'general.downCaret',
|
|
181
181
|
size: 'sm'
|
|
182
|
-
}, _objectSpread2.title = arrowIconOnly ? 'arrow down' : restProps.title, _objectSpread2.tabIndex = 0, _objectSpread2.cursor = 'pointer', _objectSpread2.onBlur = requestBlur, _objectSpread2.onClick = function onClick() {
|
|
182
|
+
}, _objectSpread2.title = arrowIconOnly ? 'arrow down' : restProps.title, _objectSpread2.tabIndex = 0, _objectSpread2.cursor = 'pointer', _objectSpread2.onBlur = requestBlur, _objectSpread2.onClick = function onClick(event) {
|
|
183
183
|
_this2.togglePopover();
|
|
184
184
|
|
|
185
185
|
if (!isPopoverOpen) {
|
|
186
186
|
_this2.popover.focusAnchor();
|
|
187
187
|
}
|
|
188
|
+
|
|
189
|
+
_onClick && _onClick(event);
|
|
188
190
|
}, _objectSpread2.onKeyDown = function onKeyDown(event) {
|
|
189
191
|
anchorProps.onKeyDown(event);
|
|
190
192
|
|
|
@@ -6,7 +6,6 @@ import React, { Component } from 'react';
|
|
|
6
6
|
import { ItemListItem } from '../ItemList';
|
|
7
7
|
import Menu from '../Menu';
|
|
8
8
|
export var LINK_DISPLAY_NAME = 'Dropdown.Link';
|
|
9
|
-
export var LINK_DATA = 'link';
|
|
10
9
|
|
|
11
10
|
var Link = /*#__PURE__*/function (_Component) {
|
|
12
11
|
_inheritsLoose(Link, _Component);
|
|
@@ -33,7 +32,7 @@ var Link = /*#__PURE__*/function (_Component) {
|
|
|
33
32
|
}
|
|
34
33
|
|
|
35
34
|
return /*#__PURE__*/React.createElement(ItemListItem, {
|
|
36
|
-
data:
|
|
35
|
+
data: "link",
|
|
37
36
|
text: text,
|
|
38
37
|
disabled: disabled,
|
|
39
38
|
index: index
|
|
@@ -1,79 +1,56 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
import
|
|
4
|
-
import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
|
|
5
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
6
|
-
import React, { Component } from 'react';
|
|
3
|
+
import React, { useCallback, useRef, useEffect } from 'react';
|
|
7
4
|
import { getColor } from '../system';
|
|
8
5
|
import Text from '../Text';
|
|
6
|
+
import { useThemeProps } from '../system';
|
|
9
7
|
import { inputs, inputLabels } from './utils';
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
function InputLabel(_ref) {
|
|
10
|
+
var controls = _ref.controls,
|
|
11
|
+
state = _ref.state,
|
|
12
|
+
restProps = _objectWithoutPropertiesLoose(_ref, ["controls", "state"]);
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
var _useThemeProps = useThemeProps('inputLabel', restProps),
|
|
15
|
+
themeProps = _extends({}, _useThemeProps);
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
args[_key] = arguments[_key];
|
|
19
|
-
}
|
|
17
|
+
var input = useRef(null);
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
if (controls) {
|
|
20
|
+
themeProps.id = controls + "-label";
|
|
21
|
+
}
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
if (state) {
|
|
24
|
+
themeProps.color = getColor(state);
|
|
25
|
+
}
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
useEffect(function () {
|
|
28
|
+
input.current = inputs[controls];
|
|
29
|
+
inputLabels[controls] = true;
|
|
30
|
+
return function () {
|
|
31
|
+
delete inputLabels[controls];
|
|
32
|
+
};
|
|
33
|
+
}, []);
|
|
34
|
+
var focusInput = useCallback(function () {
|
|
35
|
+
input.current && input.current.focus();
|
|
36
|
+
}, [input]);
|
|
37
|
+
var handleMouseOver = useCallback(function () {
|
|
38
|
+
input.current && input.current.setState({
|
|
39
|
+
isHovered: true
|
|
31
40
|
});
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
});
|
|
41
|
+
}, [input]);
|
|
42
|
+
var handleMouseOut = useCallback(function () {
|
|
43
|
+
input.current && input.current.setState({
|
|
44
|
+
isHovered: false
|
|
37
45
|
});
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
inputLabels[this.props.controls] = true;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
50
|
-
delete inputLabels[this.props.controls];
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
_proto.render = function render() {
|
|
54
|
-
var _this$props = this.props,
|
|
55
|
-
controls = _this$props.controls,
|
|
56
|
-
state = _this$props.state,
|
|
57
|
-
restProps = _objectWithoutPropertiesLoose(_this$props, ["controls", "state"]);
|
|
58
|
-
|
|
59
|
-
if (controls) {
|
|
60
|
-
restProps.id = controls + "-label";
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (state) {
|
|
64
|
-
restProps.color = getColor(state);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return /*#__PURE__*/React.createElement(Text, _extends({
|
|
68
|
-
as: "label",
|
|
69
|
-
onMouseOver: this.handleMouseOver,
|
|
70
|
-
onMouseOut: this.handleMouseOut,
|
|
71
|
-
onClick: this.focusInput
|
|
72
|
-
}, restProps));
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
return InputLabel;
|
|
76
|
-
}(Component);
|
|
46
|
+
}, [input]);
|
|
47
|
+
return /*#__PURE__*/React.createElement(Text, _extends({
|
|
48
|
+
as: "label",
|
|
49
|
+
onMouseOver: handleMouseOver,
|
|
50
|
+
onMouseOut: handleMouseOut,
|
|
51
|
+
onClick: focusInput
|
|
52
|
+
}, themeProps));
|
|
53
|
+
}
|
|
77
54
|
|
|
78
55
|
InputLabel.displayName = 'Input.InputLabel';
|
|
79
56
|
export default InputLabel;
|