@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.
Files changed (76) hide show
  1. package/dist/cjs/Button/Button.js +8 -1
  2. package/dist/cjs/Button/Button.test.js +51 -8
  3. package/dist/cjs/DataTable/components/BodyRow.js +2 -2
  4. package/dist/cjs/DataTable/components/CheckboxCell.js +1 -1
  5. package/dist/cjs/DataTable/hooks/useCollapsibleRows.js +2 -2
  6. package/dist/cjs/DragDrop/DragDrop.js +7 -0
  7. package/dist/cjs/Dropdown/Dropdown.js +5 -3
  8. package/dist/cjs/Dropdown/Link.js +2 -4
  9. package/dist/cjs/Input/InputLabel.js +40 -63
  10. package/dist/cjs/Modal/Modal.js +15 -7
  11. package/dist/cjs/Popover/Popover.js +10 -2
  12. package/dist/cjs/Portal/Portal.js +2 -0
  13. package/dist/cjs/Scrim/Scrim.js +16 -4
  14. package/dist/cjs/ThemeProvider/ThemeProvider.js +24 -6
  15. package/dist/cjs/ThemeProvider/styles.js +1 -4
  16. package/dist/cjs/TimeField/TimeField.js +1 -1
  17. package/dist/cjs/Tooltip/Tooltip.js +17 -17
  18. package/dist/cjs/index.d.js +70 -25
  19. package/dist/cjs/system/split-styles.js +2 -2
  20. package/dist/esm/Button/Button.js +8 -1
  21. package/dist/esm/Button/Button.test.js +67 -9
  22. package/dist/esm/DataTable/components/BodyRow.js +2 -2
  23. package/dist/esm/DataTable/components/CheckboxCell.js +1 -1
  24. package/dist/esm/DataTable/hooks/useCollapsibleRows.js +1 -1
  25. package/dist/esm/DragDrop/DragDrop.js +5 -0
  26. package/dist/esm/Dropdown/Dropdown.js +6 -4
  27. package/dist/esm/Dropdown/Link.js +1 -2
  28. package/dist/esm/Input/InputLabel.js +40 -63
  29. package/dist/esm/Modal/Modal.js +13 -7
  30. package/dist/esm/Popover/Popover.js +8 -2
  31. package/dist/esm/Portal/Portal.js +2 -0
  32. package/dist/esm/Scrim/Scrim.js +15 -4
  33. package/dist/esm/ThemeProvider/ThemeProvider.js +21 -6
  34. package/dist/esm/ThemeProvider/styles.js +1 -4
  35. package/dist/esm/TimeField/TimeField.js +1 -1
  36. package/dist/esm/Tooltip/Tooltip.js +18 -18
  37. package/dist/esm/index.d.js +39 -6
  38. package/dist/esm/system/split-styles.js +1 -1
  39. package/dist/types/Button/Button.d.ts +4 -0
  40. package/dist/types/Divider/Divider.d.ts +2 -2
  41. package/dist/types/Spinner/Spinner.d.ts +3 -1
  42. package/dist/types/ThemeProvider/ThemeProvider.d.ts +4 -2
  43. package/dist/types/index.d.ts +74 -5
  44. package/package.json +4 -4
  45. package/src/Button/Button.test.tsx +30 -0
  46. package/src/Button/Button.tsx +14 -1
  47. package/src/DataTable/DataTable.js +1 -1
  48. package/src/DataTable/components/BodyRow.js +1 -1
  49. package/src/DataTable/components/BodyRows.js +4 -1
  50. package/src/DataTable/components/CheckboxCell.js +1 -2
  51. package/src/DataTable/hooks/useCollapsibleRows.js +1 -1
  52. package/src/Divider/Divider.tsx +2 -2
  53. package/src/DragDrop/DragDrop.js +5 -0
  54. package/src/Dropdown/Dropdown.js +7 -4
  55. package/src/Dropdown/Dropdown.mdx +3 -3
  56. package/src/Dropdown/Link.js +1 -7
  57. package/src/Icon/Icon.mdx +45 -47
  58. package/src/Input/InputLabel.js +39 -36
  59. package/src/Input/InputLabel.mdx +1 -0
  60. package/src/Modal/Modal.js +12 -4
  61. package/src/Modal/Modal.mdx +2 -1
  62. package/src/Popover/Popover.mdx +1 -0
  63. package/src/Popover/Popover.tsx +8 -2
  64. package/src/Portal/Portal.tsx +3 -0
  65. package/src/RangeSlider/RangeSlider.mdx +10 -12
  66. package/src/Scrim/Scrim.mdx +1 -0
  67. package/src/Scrim/Scrim.tsx +11 -6
  68. package/src/Sidebar/Sidebar.mdx +0 -1
  69. package/src/Spinner/Spinner.tsx +2 -1
  70. package/src/ThemeProvider/ThemeProvider.tsx +22 -10
  71. package/src/ThemeProvider/styles.ts +23 -12
  72. package/src/TimeField/TimeField.js +1 -1
  73. package/src/Tooltip/Tooltip.js +20 -18
  74. package/src/index.d.ts +74 -5
  75. package/src/system/split-styles.js +4 -2
  76. 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
  });
@@ -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.Sortable = exports.Sidebar = exports.Select = exports.SegmentedTabs = exports.SegmentedControl = exports.HeadingUppercase = exports.Section = exports.ScreenReader = exports.RangeSlider = exports.Radio = exports.Progress = exports.Pagination = exports.PagerView = exports.NumberField = exports.Modal = exports.Menu = exports.Logo = exports.List = 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.Checkbox = exports.Calendar = exports.Badge = exports.Avatar = exports.utils = exports.server = exports.hooks = exports.designSystem = void 0;
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
- exports.Wizard = Wizard;
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"] = _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 _default(_ref) {
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 _render = render( /*#__PURE__*/React.createElement(Button, {
29
+ var _render3 = render( /*#__PURE__*/React.createElement(Button, {
8
30
  title: title
9
31
  })),
10
- getByText = _render.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 _render2 = render( /*#__PURE__*/React.createElement(Button, {
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 = _render2.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 _render3 = render( /*#__PURE__*/React.createElement(Button, {
90
+ var _render8 = render( /*#__PURE__*/React.createElement(Button, {
33
91
  onClick: onClick
34
92
  })),
35
- container = _render3.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 _ref = /*#__PURE__*/React.createElement(Button, null);
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 _render4 = render(_ref),
45
- container = _render4.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: onRowClick && function () {
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-Minus"
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, LINK_DATA } from './Link';
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 (data === LINK_DATA) {
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
- onClick = _this$props.onClick,
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: LINK_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 _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
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
- var InputLabel = /*#__PURE__*/function (_Component) {
12
- _inheritsLoose(InputLabel, _Component);
9
+ function InputLabel(_ref) {
10
+ var controls = _ref.controls,
11
+ state = _ref.state,
12
+ restProps = _objectWithoutPropertiesLoose(_ref, ["controls", "state"]);
13
13
 
14
- function InputLabel() {
15
- var _this;
14
+ var _useThemeProps = useThemeProps('inputLabel', restProps),
15
+ themeProps = _extends({}, _useThemeProps);
16
16
 
17
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
18
- args[_key] = arguments[_key];
19
- }
17
+ var input = useRef(null);
20
18
 
21
- _this = _Component.call.apply(_Component, [this].concat(args)) || this;
19
+ if (controls) {
20
+ themeProps.id = controls + "-label";
21
+ }
22
22
 
23
- _defineProperty(_assertThisInitialized(_this), "focusInput", function () {
24
- _this.input && _this.input.focus();
25
- });
23
+ if (state) {
24
+ themeProps.color = getColor(state);
25
+ }
26
26
 
27
- _defineProperty(_assertThisInitialized(_this), "handleMouseOver", function () {
28
- _this.input && _this.input.setState({
29
- isHovered: true
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
- _defineProperty(_assertThisInitialized(_this), "handleMouseOut", function () {
34
- _this.input && _this.input.setState({
35
- isHovered: false
36
- });
41
+ }, [input]);
42
+ var handleMouseOut = useCallback(function () {
43
+ input.current && input.current.setState({
44
+ isHovered: false
37
45
  });
38
-
39
- return _this;
40
- }
41
-
42
- var _proto = InputLabel.prototype;
43
-
44
- _proto.componentDidMount = function componentDidMount() {
45
- this.input = inputs[this.props.controls];
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;