@planningcenter/tapestry-react 2.1.2 → 2.2.0

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 (85) hide show
  1. package/dist/cjs/Badge/Badge.js +5 -1
  2. package/dist/cjs/Card/Card.js +5 -2
  3. package/dist/cjs/Combobox/Combobox.js +16 -43
  4. package/dist/cjs/Combobox/ComboboxInput.js +112 -146
  5. package/dist/cjs/Combobox/ComboboxItem.js +38 -53
  6. package/dist/cjs/Combobox/ComboboxItems.js +41 -58
  7. package/dist/cjs/Combobox/index.js +12 -0
  8. package/dist/cjs/DateField/DateField.js +109 -128
  9. package/dist/cjs/Field/Field.js +80 -106
  10. package/dist/cjs/Menu/Item.js +1 -0
  11. package/dist/cjs/Popover/utils.js +1 -0
  12. package/dist/cjs/SegmentedControl/SegmentedControl.js +89 -111
  13. package/dist/cjs/SegmentedTabs/SegmentedTabs.js +54 -84
  14. package/dist/cjs/Tabs/Tab.js +9 -6
  15. package/dist/cjs/Tabs/TabList.js +49 -64
  16. package/dist/cjs/Tabs/TabPanel.js +6 -2
  17. package/dist/cjs/Tabs/TabPanels.js +14 -27
  18. package/dist/cjs/Tabs/Tabs.js +72 -106
  19. package/dist/cjs/Tabs/index.js +12 -0
  20. package/dist/cjs/ThemeProvider/ThemeProvider.js +1 -1
  21. package/dist/cjs/Tooltip/Tooltip.js +158 -182
  22. package/dist/cjs/Wizard/Wizard.js +143 -193
  23. package/dist/cjs/Wizard/index.js +3 -0
  24. package/dist/esm/Badge/Badge.js +5 -1
  25. package/dist/esm/Card/Card.js +5 -2
  26. package/dist/esm/Combobox/Combobox.js +18 -43
  27. package/dist/esm/Combobox/ComboboxInput.js +111 -149
  28. package/dist/esm/Combobox/ComboboxItem.js +38 -52
  29. package/dist/esm/Combobox/ComboboxItems.js +38 -56
  30. package/dist/esm/Combobox/index.js +8 -0
  31. package/dist/esm/DateField/DateField.js +106 -133
  32. package/dist/esm/Field/Field.js +76 -103
  33. package/dist/esm/Menu/Item.js +1 -0
  34. package/dist/esm/Popover/utils.js +1 -0
  35. package/dist/esm/SegmentedControl/SegmentedControl.js +90 -114
  36. package/dist/esm/SegmentedTabs/SegmentedTabs.js +51 -83
  37. package/dist/esm/Tabs/Tab.js +8 -6
  38. package/dist/esm/Tabs/TabList.js +49 -66
  39. package/dist/esm/Tabs/TabPanel.js +4 -2
  40. package/dist/esm/Tabs/TabPanels.js +14 -28
  41. package/dist/esm/Tabs/Tabs.js +76 -120
  42. package/dist/esm/Tabs/index.js +8 -0
  43. package/dist/esm/ThemeProvider/ThemeProvider.js +1 -1
  44. package/dist/esm/Tooltip/Tooltip.js +154 -195
  45. package/dist/esm/Wizard/Wizard.js +144 -201
  46. package/dist/esm/Wizard/index.js +2 -0
  47. package/dist/types/Popover/utils.d.ts +3 -0
  48. package/package.json +1 -1
  49. package/src/.DS_Store +0 -0
  50. package/src/Badge/Badge.js +5 -0
  51. package/src/Card/Card.tsx +22 -1
  52. package/src/Combobox/Combobox.js +18 -32
  53. package/src/Combobox/Combobox.mdx +1 -0
  54. package/src/Combobox/Combobox.test.js +1 -1
  55. package/src/Combobox/ComboboxInput.js +111 -105
  56. package/src/Combobox/ComboboxItem.js +27 -27
  57. package/src/Combobox/ComboboxItems.js +38 -60
  58. package/src/Combobox/index.js +8 -0
  59. package/src/DateField/DateField.js +109 -105
  60. package/src/DateField/DateField.mdx +1 -0
  61. package/src/Field/Field.js +85 -93
  62. package/src/Field/Field.mdx +1 -0
  63. package/src/Menu/Heading.js +5 -1
  64. package/src/Menu/Heading.mdx +20 -0
  65. package/src/Menu/Item.js +13 -1
  66. package/src/Menu/Item.mdx +18 -0
  67. package/src/Menu/Menu.mdx +1 -0
  68. package/src/Popover/utils.ts +1 -0
  69. package/src/SegmentedControl/SegmentedControl.js +88 -92
  70. package/src/SegmentedControl/SegmentedControl.mdx +1 -0
  71. package/src/SegmentedTabs/SegmentedTabs.js +51 -71
  72. package/src/SegmentedTabs/SegmentedTabs.mdx +1 -0
  73. package/src/Tabs/Tab.js +3 -1
  74. package/src/Tabs/TabList.js +56 -62
  75. package/src/Tabs/TabPanel.js +2 -1
  76. package/src/Tabs/TabPanels.js +14 -15
  77. package/src/Tabs/Tabs.js +63 -84
  78. package/src/Tabs/Tabs.mdx +16 -17
  79. package/src/Tabs/index.js +8 -0
  80. package/src/ThemeProvider/ThemeProvider.tsx +1 -1
  81. package/src/Tooltip/Tooltip.js +142 -160
  82. package/src/Tooltip/Tooltip.mdx +1 -0
  83. package/src/Wizard/Wizard.js +141 -170
  84. package/src/Wizard/Wizard.mdx +3 -2
  85. package/src/Wizard/index.js +2 -0
@@ -89,7 +89,11 @@ function Badge(_ref) {
89
89
  }
90
90
 
91
91
  badgeProps.paddingLeft = renderLeft ? boxSize + 0.5 : badgeProps.radius === 'pill' ? paddingHorizontal : paddingHorizontalDense;
92
- badgeProps.paddingRight = renderRight ? boxSize + 0.5 : badgeProps.radius === 'pill' ? paddingHorizontal : paddingHorizontalDense;
92
+ badgeProps.paddingRight = renderRight ? boxSize + 0.5 : badgeProps.radius === 'pill' ? paddingHorizontal : paddingHorizontalDense; // The `square` prop is no longer needed and should not get
93
+ // passed to `<StackView>` since it's not one of its props
94
+ // or a standard HTML attribute.
95
+
96
+ delete badgeProps.square;
93
97
  return /*#__PURE__*/_react["default"].createElement(_StackView["default"], (0, _extends2["default"])({
94
98
  inline: true,
95
99
  axis: "horizontal",
@@ -27,7 +27,10 @@ function Card(_ref) {
27
27
  _ref$radius = _ref.radius,
28
28
  radius = _ref$radius === void 0 ? 3 : _ref$radius,
29
29
  restProps = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["children", "subdued", "radius"]);
30
- var cardTheme = (0, _system.useThemeValue)('card');
30
+ var cardTheme = (0, _system.useThemeValue)('card'); // List of component types to ignore when setting the radius
31
+ // for first & last child elements
32
+
33
+ var ignoreRadiusTypes = ['Avatar', 'Badge', 'Button', 'Calendar', 'ChurchCenterStatus', 'Group', 'Inline', 'Input', 'InputBox', 'Modal', 'Progress', 'Spinner', 'Status', 'Tab', 'Tooltip'];
31
34
  return /*#__PURE__*/React.createElement(_StackView.StackView, (0, _extends2["default"])({
32
35
  width: "100%",
33
36
  lineHeight: 2.5,
@@ -42,7 +45,7 @@ function Card(_ref) {
42
45
 
43
46
  var firstChild = _ref2.firstChild,
44
47
  lastChild = _ref2.lastChild;
45
- return child.props.radius === undefined ? firstChild ? (_ref3 = {}, _ref3["radius" + (restProps.axis === 'horizontal' ? 'Left' : 'Top')] = radius - 1, _ref3) : lastChild ? (_ref4 = {}, _ref4["radius" + (restProps.axis === 'horizontal' ? 'Right' : 'Bottom')] = radius - 1, _ref4) : {} : {};
48
+ return child.props.radius === undefined && !ignoreRadiusTypes.includes(child.type.name) ? firstChild ? (_ref3 = {}, _ref3["radius" + (restProps.axis === 'horizontal' ? 'Left' : 'Top')] = radius - 1, _ref3) : lastChild ? (_ref4 = {}, _ref4["radius" + (restProps.axis === 'horizontal' ? 'Right' : 'Bottom')] = radius - 1, _ref4) : {} : {};
46
49
  }) : children);
47
50
  }
48
51
 
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
7
5
  exports.__esModule = true;
@@ -9,54 +7,29 @@ exports["default"] = void 0;
9
7
 
10
8
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
9
 
12
- var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
10
+ var _react = _interopRequireDefault(require("react"));
17
11
 
18
12
  var _Box = _interopRequireDefault(require("../Box"));
19
13
 
20
14
  var _ItemList = require("../ItemList");
21
15
 
22
- var _ComboboxInput = _interopRequireDefault(require("./ComboboxInput"));
23
-
24
- var _ComboboxItem = _interopRequireDefault(require("./ComboboxItem"));
25
-
26
- var _ComboboxItems = _interopRequireDefault(require("./ComboboxItems"));
27
-
28
- var _ComboboxPopover = _interopRequireDefault(require("./ComboboxPopover"));
29
-
30
- var Combobox = /*#__PURE__*/function (_Component) {
31
- (0, _inheritsLoose2["default"])(Combobox, _Component);
32
-
33
- function Combobox() {
34
- return _Component.apply(this, arguments) || this;
35
- }
36
-
37
- var _proto = Combobox.prototype;
16
+ var _system = require("../system");
38
17
 
39
- _proto.render = function render() {
40
- var _this$props = this.props,
41
- children = _this$props.children,
42
- multiple = _this$props.multiple,
43
- onSelect = _this$props.onSelect,
44
- selectedValue = _this$props.selectedValue,
45
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, ["children", "multiple", "onSelect", "selectedValue"]);
46
- return /*#__PURE__*/_react["default"].createElement(_ItemList.ItemList, {
47
- selected: function selected(item) {
48
- return item.value === selectedValue;
49
- },
50
- onSelect: onSelect
51
- }, /*#__PURE__*/_react["default"].createElement(_Box["default"], restProps, children));
52
- };
18
+ function Combobox(props) {
19
+ var _useThemeProps = (0, _system.useThemeProps)('combobox', props),
20
+ children = _useThemeProps.children,
21
+ multiple = _useThemeProps.multiple,
22
+ onSelect = _useThemeProps.onSelect,
23
+ selectedValue = _useThemeProps.selectedValue,
24
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["children", "multiple", "onSelect", "selectedValue"]);
53
25
 
54
- return Combobox;
55
- }(_react.Component);
26
+ return /*#__PURE__*/_react["default"].createElement(_ItemList.ItemList, {
27
+ selected: function selected(item) {
28
+ return item.value === selectedValue;
29
+ },
30
+ onSelect: onSelect
31
+ }, /*#__PURE__*/_react["default"].createElement(_Box["default"], restProps, children));
32
+ }
56
33
 
57
- (0, _defineProperty2["default"])(Combobox, "Input", _ComboboxInput["default"]);
58
- (0, _defineProperty2["default"])(Combobox, "Item", _ComboboxItem["default"]);
59
- (0, _defineProperty2["default"])(Combobox, "Items", _ComboboxItems["default"]);
60
- (0, _defineProperty2["default"])(Combobox, "Popover", _ComboboxPopover["default"]);
61
34
  var _default = Combobox;
62
35
  exports["default"] = _default;
@@ -11,161 +11,127 @@ 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 _Input = _interopRequireDefault(require("../Input"));
23
17
 
24
- var _ItemList = require("../ItemList");
25
-
26
- var ComboboxInput = /*#__PURE__*/function (_Component) {
27
- (0, _inheritsLoose2["default"])(ComboboxInput, _Component);
28
-
29
- function ComboboxInput() {
30
- var _this;
31
-
32
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33
- args[_key] = arguments[_key];
34
- }
35
-
36
- _this = _Component.call.apply(_Component, [this].concat(args)) || this;
37
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setInputNode", function (node) {
38
- _this.inputNode = node;
18
+ var _ItemListContext = _interopRequireDefault(require("../ItemList/ItemListContext"));
19
+
20
+ var _system = require("../system");
21
+
22
+ function ComboboxInput(props, ref) {
23
+ var _useThemeProps = (0, _system.useThemeProps)('combobox.input', props),
24
+ autoFocus = _useThemeProps.autoFocus,
25
+ defaultValue = _useThemeProps.defaultValue,
26
+ disabled = _useThemeProps.disabled,
27
+ innerRef = _useThemeProps.innerRef,
28
+ isOpen = _useThemeProps.isOpen,
29
+ isLoading = _useThemeProps.isLoading,
30
+ name = _useThemeProps.name,
31
+ onBlur = _useThemeProps.onBlur,
32
+ onChange = _useThemeProps.onChange,
33
+ onFocus = _useThemeProps.onFocus,
34
+ onClear = _useThemeProps.onClear,
35
+ onClose = _useThemeProps.onClose,
36
+ onKeyDown = _useThemeProps.onKeyDown,
37
+ onKeyUp = _useThemeProps.onKeyUp,
38
+ placeholder = _useThemeProps.placeholder,
39
+ readOnly = _useThemeProps.readOnly,
40
+ size = _useThemeProps.size,
41
+ type = _useThemeProps.type,
42
+ value = _useThemeProps.value,
43
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["autoFocus", "defaultValue", "disabled", "innerRef", "isOpen", "isLoading", "name", "onBlur", "onChange", "onFocus", "onClear", "onClose", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "size", "type", "value"]);
44
+
45
+ var inputNode = (0, _react.useRef)(null);
46
+ var focus = (0, _react.useCallback)(function () {
47
+ inputNode.current.focus();
48
+ }, [inputNode]);
49
+ var blur = (0, _react.useCallback)(function () {
50
+ inputNode.current.blur();
51
+ }, [inputNode]);
52
+ (0, _react.useImperativeHandle)(ref, function () {
53
+ return {
54
+ focus: focus,
55
+ blur: blur
56
+ };
57
+ });
58
+ var itemList = (0, _react.useContext)(_ItemListContext["default"]);
59
+ var highlightedItemId = itemList.highlightedItemId,
60
+ id = itemList.id;
61
+ (0, _react.useEffect)(function () {
62
+ setTimeout(function () {
63
+ itemList.setHighlightedIndex(0);
39
64
  });
40
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (e) {
41
- if (e.key === 'ArrowUp') {
42
- e.preventDefault();
43
-
44
- _this.itemList.moveHighlightedIndex(-1, {
45
- contain: false
46
- });
47
- }
48
-
49
- if (e.key === 'ArrowDown') {
50
- e.preventDefault();
51
-
52
- _this.itemList.moveHighlightedIndex(1, {
53
- contain: false
54
- });
55
- }
56
-
57
- if (e.key === 'Enter') {
58
- e.preventDefault();
59
-
60
- _this.itemList.selectHighlightedItem();
61
- }
62
-
63
- if (_this.props.onKeyDown) {
64
- _this.props.onKeyDown(e);
65
- }
66
-
67
- if (_this.props.onClose && e.key === 'Tab') {
68
- _this.props.onClose();
69
- }
70
- });
71
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleDocumentKeyDown", function (e) {
72
- if (_this.props.onClear && e.key === 'Escape') {
73
- _this.props.onClear();
74
- }
75
- });
76
- return _this;
77
- }
78
-
79
- var _proto = ComboboxInput.prototype;
80
-
81
- _proto.componentDidUpdate = function componentDidUpdate(lastProps) {
82
- var _this2 = this;
65
+ }, [itemList.items]);
66
+ var handleKeyDown = (0, _react.useCallback)(function (e) {
67
+ if (e.key === 'ArrowUp') {
68
+ e.preventDefault();
69
+ itemList.moveHighlightedIndex(-1, {
70
+ contain: false
71
+ });
72
+ }
83
73
 
84
- if (lastProps.value !== this.props.value) {
85
- // needs to be called after items have been sorted, there's probably a better way to fix this
86
- setTimeout(function () {
87
- _this2.itemList.setHighlightedIndex(0);
74
+ if (e.key === 'ArrowDown') {
75
+ e.preventDefault();
76
+ itemList.moveHighlightedIndex(1, {
77
+ contain: false
88
78
  });
89
79
  }
90
- };
91
-
92
- _proto.focus = function focus() {
93
- this.inputNode.focus();
94
- };
95
-
96
- _proto.blur = function blur() {
97
- this.inputNode.blur();
98
- };
99
-
100
- _proto.render = function render() {
101
- var _this3 = this;
102
-
103
- var _this$props = this.props,
104
- autoFocus = _this$props.autoFocus,
105
- defaultValue = _this$props.defaultValue,
106
- disabled = _this$props.disabled,
107
- innerRef = _this$props.innerRef,
108
- isOpen = _this$props.isOpen,
109
- isLoading = _this$props.isLoading,
110
- name = _this$props.name,
111
- onBlur = _this$props.onBlur,
112
- onChange = _this$props.onChange,
113
- onFocus = _this$props.onFocus,
114
- onClear = _this$props.onClear,
115
- onClose = _this$props.onClose,
116
- onKeyDown = _this$props.onKeyDown,
117
- onKeyUp = _this$props.onKeyUp,
118
- placeholder = _this$props.placeholder,
119
- readOnly = _this$props.readOnly,
120
- size = _this$props.size,
121
- type = _this$props.type,
122
- value = _this$props.value,
123
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, ["autoFocus", "defaultValue", "disabled", "innerRef", "isOpen", "isLoading", "name", "onBlur", "onChange", "onFocus", "onClear", "onClose", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "size", "type", "value"]);
124
- return /*#__PURE__*/_react["default"].createElement(_ItemList.ItemListController, null, function (itemList) {
125
- var highlightedItemId = itemList.highlightedItemId,
126
- id = itemList.id;
127
-
128
- if (!_this3.itemList) {
129
- _this3.itemList = itemList;
130
- }
131
-
132
- return /*#__PURE__*/_react["default"].createElement(_Input["default"].InputBox, (0, _extends2["default"])({
133
- innerRef: innerRef,
134
- size: size,
135
- disabled: disabled,
136
- isLoading: isLoading,
137
- onClear: onClear
138
- }, restProps, {
139
- grow: 1
140
- }), /*#__PURE__*/_react["default"].createElement(_Input["default"].InputField, {
141
- innerRef: _this3.setInputNode,
142
- grow: 1,
143
- role: "combobox",
144
- autoComplete: "off",
145
- "aria-autocomplete": "list",
146
- "aria-controls": id,
147
- "aria-expanded": isOpen,
148
- "aria-activedescendant": highlightedItemId,
149
- autoFocus: autoFocus,
150
- type: type,
151
- name: name,
152
- disabled: disabled,
153
- readOnly: readOnly,
154
- placeholder: placeholder,
155
- defaultValue: defaultValue,
156
- value: value,
157
- onChange: onChange,
158
- onFocus: onFocus,
159
- onBlur: onBlur,
160
- onKeyDown: _this3.handleKeyDown,
161
- onKeyUp: onKeyUp
162
- }));
163
- });
164
- };
165
80
 
166
- return ComboboxInput;
167
- }(_react.Component);
81
+ if (e.key === 'Enter') {
82
+ e.preventDefault();
83
+ itemList.selectHighlightedItem();
84
+ }
85
+
86
+ if (onKeyDown) {
87
+ onKeyDown(e);
88
+ }
168
89
 
169
- (0, _defineProperty2["default"])(ComboboxInput, "displayName", 'Combobox.Input');
90
+ if (onClose && e.key === 'Tab') {
91
+ onClose();
92
+ }
93
+ });
94
+ var handleDocumentKeyDown = (0, _react.useCallback)(function (e) {
95
+ if (onClear && e.key === 'Escape') {
96
+ onClear();
97
+ }
98
+ });
99
+ return /*#__PURE__*/_react["default"].createElement(_Input["default"].InputBox, (0, _extends2["default"])({
100
+ innerRef: innerRef,
101
+ size: size,
102
+ disabled: disabled,
103
+ isLoading: isLoading,
104
+ onClear: onClear
105
+ }, restProps, {
106
+ grow: 1
107
+ }), /*#__PURE__*/_react["default"].createElement(_Input["default"].InputField, {
108
+ innerRef: function innerRef(node) {
109
+ inputNode.current = node;
110
+ },
111
+ grow: 1,
112
+ role: "combobox",
113
+ autoComplete: "off",
114
+ "aria-autocomplete": "list",
115
+ "aria-controls": id,
116
+ "aria-expanded": isOpen,
117
+ "aria-activedescendant": highlightedItemId,
118
+ autoFocus: autoFocus,
119
+ type: type,
120
+ name: name,
121
+ disabled: disabled,
122
+ readOnly: readOnly,
123
+ placeholder: placeholder,
124
+ defaultValue: defaultValue,
125
+ value: value,
126
+ onChange: onChange,
127
+ onFocus: onFocus,
128
+ onBlur: onBlur,
129
+ onKeyDown: handleKeyDown,
130
+ onKeyUp: onKeyUp
131
+ }));
132
+ }
133
+
134
+ ComboboxInput = /*#__PURE__*/(0, _react.forwardRef)(ComboboxInput);
135
+ ComboboxInput.displayName = 'Combobox.Input';
170
136
  var _default = ComboboxInput;
171
137
  exports["default"] = _default;
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
7
5
  exports.__esModule = true;
@@ -11,62 +9,49 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
9
 
12
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
11
 
14
- var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
15
-
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
- var _react = _interopRequireWildcard(require("react"));
12
+ var _react = _interopRequireDefault(require("react"));
19
13
 
20
14
  var _ItemList = require("../ItemList");
21
15
 
22
16
  var _Menu = _interopRequireDefault(require("../Menu"));
23
17
 
24
- var ComboboxItem = /*#__PURE__*/function (_Component) {
25
- (0, _inheritsLoose2["default"])(ComboboxItem, _Component);
26
-
27
- function ComboboxItem() {
28
- return _Component.apply(this, arguments) || this;
29
- }
30
-
31
- var _proto = ComboboxItem.prototype;
32
-
33
- _proto.render = function render() {
34
- var _this$props = this.props,
35
- value = _this$props.value,
36
- index = _this$props.index,
37
- text = _this$props.text,
38
- _this$props$disabled = _this$props.disabled,
39
- disabled = _this$props$disabled === void 0 ? false : _this$props$disabled,
40
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, ["value", "index", "text", "disabled"]);
41
- return /*#__PURE__*/_react["default"].createElement(_ItemList.ItemListItem, {
42
- data: value,
18
+ var _system = require("../system");
19
+
20
+ function ComboboxItem(props) {
21
+ var _useThemeProps = (0, _system.useThemeProps)('combobox.item', props),
22
+ value = _useThemeProps.value,
23
+ index = _useThemeProps.index,
24
+ text = _useThemeProps.text,
25
+ _useThemeProps$disabl = _useThemeProps.disabled,
26
+ disabled = _useThemeProps$disabl === void 0 ? false : _useThemeProps$disabl,
27
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["value", "index", "text", "disabled"]);
28
+
29
+ return /*#__PURE__*/_react["default"].createElement(_ItemList.ItemListItem, {
30
+ data: value,
31
+ disabled: disabled,
32
+ index: index,
33
+ text: text
34
+ }, function (_ref) {
35
+ var id = _ref.id,
36
+ highlight = _ref.highlight,
37
+ highlighted = _ref.highlighted,
38
+ clearHighlight = _ref.clearHighlight,
39
+ select = _ref.select;
40
+ return /*#__PURE__*/_react["default"].createElement(_Menu["default"].Item, (0, _extends2["default"])({
43
41
  disabled: disabled,
44
- index: index,
45
- text: text
46
- }, function (_ref) {
47
- var id = _ref.id,
48
- highlight = _ref.highlight,
49
- highlighted = _ref.highlighted,
50
- clearHighlight = _ref.clearHighlight,
51
- select = _ref.select;
52
- return /*#__PURE__*/_react["default"].createElement(_Menu["default"].Item, (0, _extends2["default"])({
53
- disabled: disabled,
54
- id: id,
55
- isHighlighted: highlighted,
56
- onMouseOver: highlight,
57
- onMouseOut: clearHighlight,
58
- onClick: function onClick(event) {
59
- event.stopPropagation();
60
- event.nativeEvent.stopImmediatePropagation();
61
- select();
62
- }
63
- }, restProps));
64
- });
65
- };
66
-
67
- return ComboboxItem;
68
- }(_react.Component);
69
-
70
- (0, _defineProperty2["default"])(ComboboxItem, "displayName", 'Combobox.Item');
42
+ id: id,
43
+ isHighlighted: highlighted,
44
+ onMouseOver: highlight,
45
+ onMouseOut: clearHighlight,
46
+ onClick: function onClick(event) {
47
+ event.stopPropagation();
48
+ event.nativeEvent.stopImmediatePropagation();
49
+ select();
50
+ }
51
+ }, restProps));
52
+ });
53
+ }
54
+
55
+ ComboboxItem.displayName = 'Combobox.Item';
71
56
  var _default = ComboboxItem;
72
57
  exports["default"] = _default;
@@ -9,10 +9,6 @@ exports["default"] = void 0;
9
9
 
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
 
12
- var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
12
  var _react = _interopRequireWildcard(require("react"));
17
13
 
18
14
  var _matchSorter = require("match-sorter");
@@ -27,7 +23,7 @@ var _StackView = _interopRequireDefault(require("../StackView"));
27
23
 
28
24
  var _Text = _interopRequireDefault(require("../Text"));
29
25
 
30
- var _utils = require("../utils");
26
+ var _system = require("../system");
31
27
 
32
28
  var _ComboboxItem = _interopRequireDefault(require("./ComboboxItem"));
33
29
 
@@ -46,62 +42,49 @@ var defaultRenderItem = function defaultRenderItem(item) {
46
42
  });
47
43
  };
48
44
 
49
- var ComboboxItems = /*#__PURE__*/function (_Component) {
50
- (0, _inheritsLoose2["default"])(ComboboxItems, _Component);
51
-
52
- function ComboboxItems(props) {
53
- var _this;
54
-
55
- _this = _Component.call(this, props) || this;
56
- _this.state = {
57
- sortedItems: _this.getSortedItems(props)
58
- };
59
- return _this;
60
- }
61
-
62
- var _proto = ComboboxItems.prototype;
63
-
64
- _proto.componentDidUpdate = function componentDidUpdate(lastProps) {
65
- if (lastProps.value !== this.props.value || !(0, _utils.shallowEqual)(lastProps.items, this.props.items) || !(0, _utils.shallowEqual)(lastProps.filter, this.props.filter)) {
66
- this.setState({
67
- sortedItems: this.getSortedItems(this.props)
68
- });
69
- }
70
- };
71
-
72
- _proto.getSortedItems = function getSortedItems(_ref) {
45
+ function ComboboxItems(props) {
46
+ var _useThemeProps = (0, _system.useThemeProps)('combobox.items', props),
47
+ filter = _useThemeProps.filter,
48
+ items = _useThemeProps.items,
49
+ _useThemeProps$render = _useThemeProps.renderEmpty,
50
+ renderEmpty = _useThemeProps$render === void 0 ? defaultRenderEmpty : _useThemeProps$render,
51
+ _useThemeProps$render2 = _useThemeProps.renderItem,
52
+ renderItem = _useThemeProps$render2 === void 0 ? defaultRenderItem : _useThemeProps$render2,
53
+ title = _useThemeProps.title,
54
+ _useThemeProps$value = _useThemeProps.value,
55
+ value = _useThemeProps$value === void 0 ? '' : _useThemeProps$value,
56
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["filter", "items", "renderEmpty", "renderItem", "title", "value"]);
57
+
58
+ var _useState = (0, _react.useState)(getSortedItems({
59
+ items: items,
60
+ value: value,
61
+ filter: filter
62
+ })),
63
+ sortedItems = _useState[0],
64
+ setSortedItems = _useState[1];
65
+
66
+ function getSortedItems(_ref) {
73
67
  var items = _ref.items,
74
68
  value = _ref.value,
75
69
  filter = _ref.filter;
76
70
  return (0, _matchSorter.matchSorter)(items, value.length > 0 ? value : '', filter);
77
- };
78
-
79
- _proto.render = function render() {
80
- var _this$props = this.props,
81
- filter = _this$props.filter,
82
- items = _this$props.items,
83
- renderEmpty = _this$props.renderEmpty,
84
- renderItem = _this$props.renderItem,
85
- title = _this$props.title,
86
- value = _this$props.value,
87
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, ["filter", "items", "renderEmpty", "renderItem", "title", "value"]);
88
- var sortedItems = this.state.sortedItems;
89
- return /*#__PURE__*/_react["default"].createElement(_Box["default"], restProps, title && /*#__PURE__*/_react["default"].createElement(_StackView["default"], {
90
- paddingHorizontal: 1,
91
- paddingVertical: 0.5
92
- }, /*#__PURE__*/_react["default"].createElement(_HeadingUppercase["default"], null, title)), _react.Children.toArray(sortedItems.length > 0 ? sortedItems.map(function (item, index) {
93
- return renderItem(item, index);
94
- }) : typeof renderEmpty === 'function' ? renderEmpty(value) : renderEmpty));
95
- };
96
-
97
- return ComboboxItems;
98
- }(_react.Component);
99
-
100
- (0, _defineProperty2["default"])(ComboboxItems, "displayName", 'Combobox.Items');
101
- (0, _defineProperty2["default"])(ComboboxItems, "defaultProps", {
102
- value: '',
103
- renderEmpty: defaultRenderEmpty,
104
- renderItem: defaultRenderItem
105
- });
71
+ }
72
+
73
+ (0, _react.useEffect)(function () {
74
+ setSortedItems(getSortedItems({
75
+ items: items,
76
+ value: value,
77
+ filter: filter
78
+ }));
79
+ }, [items, value, filter]);
80
+ return /*#__PURE__*/_react["default"].createElement(_Box["default"], restProps, title && /*#__PURE__*/_react["default"].createElement(_StackView["default"], {
81
+ paddingHorizontal: 1,
82
+ paddingVertical: 0.5
83
+ }, /*#__PURE__*/_react["default"].createElement(_HeadingUppercase["default"], null, title)), _react.Children.toArray(sortedItems.length > 0 ? sortedItems.map(function (item, index) {
84
+ return renderItem(item, index);
85
+ }) : typeof renderEmpty === 'function' ? renderEmpty(value) : renderEmpty));
86
+ }
87
+
88
+ ComboboxItems.displayName = 'Combobox.Items';
106
89
  var _default = ComboboxItems;
107
90
  exports["default"] = _default;
@@ -7,5 +7,17 @@ exports["default"] = void 0;
7
7
 
8
8
  var _Combobox = _interopRequireDefault(require("./Combobox"));
9
9
 
10
+ var _ComboboxInput = _interopRequireDefault(require("./ComboboxInput"));
11
+
12
+ var _ComboboxItem = _interopRequireDefault(require("./ComboboxItem"));
13
+
14
+ var _ComboboxItems = _interopRequireDefault(require("./ComboboxItems"));
15
+
16
+ var _ComboboxPopover = _interopRequireDefault(require("./ComboboxPopover"));
17
+
18
+ _Combobox["default"].Input = _ComboboxInput["default"];
19
+ _Combobox["default"].Item = _ComboboxItem["default"];
20
+ _Combobox["default"].Items = _ComboboxItems["default"];
21
+ _Combobox["default"].Popover = _ComboboxPopover["default"];
10
22
  var _default = _Combobox["default"];
11
23
  exports["default"] = _default;