@planningcenter/tapestry-react 2.1.1 → 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 (96) hide show
  1. package/dist/cjs/Avatar/Avatar.js +11 -9
  2. package/dist/cjs/Badge/Badge.js +5 -1
  3. package/dist/cjs/Card/Card.js +5 -2
  4. package/dist/cjs/Combobox/Combobox.js +16 -43
  5. package/dist/cjs/Combobox/ComboboxInput.js +112 -146
  6. package/dist/cjs/Combobox/ComboboxItem.js +38 -53
  7. package/dist/cjs/Combobox/ComboboxItems.js +41 -58
  8. package/dist/cjs/Combobox/index.js +12 -0
  9. package/dist/cjs/DateField/DateField.js +109 -128
  10. package/dist/cjs/Field/Field.js +80 -106
  11. package/dist/cjs/Menu/Item.js +1 -0
  12. package/dist/cjs/Pagination/Pagination.js +17 -11
  13. package/dist/cjs/Popover/utils.js +1 -0
  14. package/dist/cjs/SegmentedControl/SegmentedControl.js +89 -111
  15. package/dist/cjs/SegmentedTabs/SegmentedTabs.js +54 -84
  16. package/dist/cjs/Tabs/Tab.js +9 -6
  17. package/dist/cjs/Tabs/TabList.js +49 -64
  18. package/dist/cjs/Tabs/TabPanel.js +6 -2
  19. package/dist/cjs/Tabs/TabPanels.js +14 -27
  20. package/dist/cjs/Tabs/Tabs.js +72 -106
  21. package/dist/cjs/Tabs/index.js +12 -0
  22. package/dist/cjs/ThemeProvider/ThemeProvider.js +1 -1
  23. package/dist/cjs/Tooltip/Tooltip.js +158 -182
  24. package/dist/cjs/Wizard/Wizard.js +143 -193
  25. package/dist/cjs/Wizard/index.js +3 -0
  26. package/dist/cjs/system/box-sizes.js +3 -3
  27. package/dist/esm/Avatar/Avatar.js +11 -7
  28. package/dist/esm/Badge/Badge.js +5 -1
  29. package/dist/esm/Card/Card.js +5 -2
  30. package/dist/esm/Combobox/Combobox.js +18 -43
  31. package/dist/esm/Combobox/ComboboxInput.js +111 -149
  32. package/dist/esm/Combobox/ComboboxItem.js +38 -52
  33. package/dist/esm/Combobox/ComboboxItems.js +38 -56
  34. package/dist/esm/Combobox/index.js +8 -0
  35. package/dist/esm/DateField/DateField.js +106 -133
  36. package/dist/esm/Field/Field.js +76 -103
  37. package/dist/esm/Menu/Item.js +1 -0
  38. package/dist/esm/Pagination/Pagination.js +16 -11
  39. package/dist/esm/Popover/utils.js +1 -0
  40. package/dist/esm/SegmentedControl/SegmentedControl.js +90 -114
  41. package/dist/esm/SegmentedTabs/SegmentedTabs.js +51 -83
  42. package/dist/esm/Tabs/Tab.js +8 -6
  43. package/dist/esm/Tabs/TabList.js +49 -66
  44. package/dist/esm/Tabs/TabPanel.js +4 -2
  45. package/dist/esm/Tabs/TabPanels.js +14 -28
  46. package/dist/esm/Tabs/Tabs.js +76 -120
  47. package/dist/esm/Tabs/index.js +8 -0
  48. package/dist/esm/ThemeProvider/ThemeProvider.js +1 -1
  49. package/dist/esm/Tooltip/Tooltip.js +154 -195
  50. package/dist/esm/Wizard/Wizard.js +144 -201
  51. package/dist/esm/Wizard/index.js +2 -0
  52. package/dist/esm/system/box-sizes.js +3 -3
  53. package/dist/types/Button/Button.d.ts +4 -0
  54. package/dist/types/Popover/utils.d.ts +3 -0
  55. package/package.json +1 -1
  56. package/src/.DS_Store +0 -0
  57. package/src/Avatar/Avatar.tsx +15 -8
  58. package/src/Badge/Badge.js +5 -0
  59. package/src/Button/Button.tsx +5 -0
  60. package/src/Card/Card.tsx +22 -1
  61. package/src/Combobox/Combobox.js +18 -32
  62. package/src/Combobox/Combobox.mdx +1 -0
  63. package/src/Combobox/Combobox.test.js +1 -1
  64. package/src/Combobox/ComboboxInput.js +111 -105
  65. package/src/Combobox/ComboboxItem.js +27 -27
  66. package/src/Combobox/ComboboxItems.js +38 -60
  67. package/src/Combobox/index.js +8 -0
  68. package/src/DateField/DateField.js +109 -105
  69. package/src/DateField/DateField.mdx +1 -0
  70. package/src/Field/Field.js +85 -93
  71. package/src/Field/Field.mdx +1 -0
  72. package/src/Menu/Heading.js +5 -1
  73. package/src/Menu/Heading.mdx +20 -0
  74. package/src/Menu/Item.js +13 -1
  75. package/src/Menu/Item.mdx +18 -0
  76. package/src/Menu/Menu.mdx +1 -0
  77. package/src/Pagination/Pagination.tsx +22 -12
  78. package/src/Popover/utils.ts +1 -0
  79. package/src/SegmentedControl/SegmentedControl.js +88 -92
  80. package/src/SegmentedControl/SegmentedControl.mdx +1 -0
  81. package/src/SegmentedTabs/SegmentedTabs.js +51 -71
  82. package/src/SegmentedTabs/SegmentedTabs.mdx +1 -0
  83. package/src/Tabs/Tab.js +3 -1
  84. package/src/Tabs/TabList.js +56 -62
  85. package/src/Tabs/TabPanel.js +2 -1
  86. package/src/Tabs/TabPanels.js +14 -15
  87. package/src/Tabs/Tabs.js +63 -84
  88. package/src/Tabs/Tabs.mdx +16 -17
  89. package/src/Tabs/index.js +8 -0
  90. package/src/ThemeProvider/ThemeProvider.tsx +1 -1
  91. package/src/Tooltip/Tooltip.js +142 -160
  92. package/src/Tooltip/Tooltip.mdx +1 -0
  93. package/src/Wizard/Wizard.js +141 -170
  94. package/src/Wizard/Wizard.mdx +3 -2
  95. package/src/Wizard/index.js +2 -0
  96. package/src/system/box-sizes.js +3 -3
@@ -1,160 +1,122 @@
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, { forwardRef, useCallback, useImperativeHandle, useRef, useContext, useEffect } from 'react';
7
4
  import Input from '../Input';
8
- import { ItemListController } from '../ItemList';
9
-
10
- var ComboboxInput = /*#__PURE__*/function (_Component) {
11
- _inheritsLoose(ComboboxInput, _Component);
12
-
13
- function ComboboxInput() {
14
- var _this;
15
-
16
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
17
- args[_key] = arguments[_key];
18
- }
19
-
20
- _this = _Component.call.apply(_Component, [this].concat(args)) || this;
21
-
22
- _defineProperty(_assertThisInitialized(_this), "setInputNode", function (node) {
23
- _this.inputNode = node;
24
- });
25
-
26
- _defineProperty(_assertThisInitialized(_this), "handleKeyDown", function (e) {
27
- if (e.key === 'ArrowUp') {
28
- e.preventDefault();
29
-
30
- _this.itemList.moveHighlightedIndex(-1, {
31
- contain: false
32
- });
33
- }
34
-
35
- if (e.key === 'ArrowDown') {
36
- e.preventDefault();
37
-
38
- _this.itemList.moveHighlightedIndex(1, {
39
- contain: false
40
- });
41
- }
42
-
43
- if (e.key === 'Enter') {
44
- e.preventDefault();
45
-
46
- _this.itemList.selectHighlightedItem();
47
- }
48
-
49
- if (_this.props.onKeyDown) {
50
- _this.props.onKeyDown(e);
51
- }
52
-
53
- if (_this.props.onClose && e.key === 'Tab') {
54
- _this.props.onClose();
55
- }
56
- });
57
-
58
- _defineProperty(_assertThisInitialized(_this), "handleDocumentKeyDown", function (e) {
59
- if (_this.props.onClear && e.key === 'Escape') {
60
- _this.props.onClear();
61
- }
5
+ import ItemListContext from '../ItemList/ItemListContext';
6
+ import { useThemeProps } from '../system';
7
+
8
+ function ComboboxInput(props, ref) {
9
+ var _useThemeProps = useThemeProps('combobox.input', props),
10
+ autoFocus = _useThemeProps.autoFocus,
11
+ defaultValue = _useThemeProps.defaultValue,
12
+ disabled = _useThemeProps.disabled,
13
+ innerRef = _useThemeProps.innerRef,
14
+ isOpen = _useThemeProps.isOpen,
15
+ isLoading = _useThemeProps.isLoading,
16
+ name = _useThemeProps.name,
17
+ onBlur = _useThemeProps.onBlur,
18
+ onChange = _useThemeProps.onChange,
19
+ onFocus = _useThemeProps.onFocus,
20
+ onClear = _useThemeProps.onClear,
21
+ onClose = _useThemeProps.onClose,
22
+ onKeyDown = _useThemeProps.onKeyDown,
23
+ onKeyUp = _useThemeProps.onKeyUp,
24
+ placeholder = _useThemeProps.placeholder,
25
+ readOnly = _useThemeProps.readOnly,
26
+ size = _useThemeProps.size,
27
+ type = _useThemeProps.type,
28
+ value = _useThemeProps.value,
29
+ restProps = _objectWithoutPropertiesLoose(_useThemeProps, ["autoFocus", "defaultValue", "disabled", "innerRef", "isOpen", "isLoading", "name", "onBlur", "onChange", "onFocus", "onClear", "onClose", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "size", "type", "value"]);
30
+
31
+ var inputNode = useRef(null);
32
+ var focus = useCallback(function () {
33
+ inputNode.current.focus();
34
+ }, [inputNode]);
35
+ var blur = useCallback(function () {
36
+ inputNode.current.blur();
37
+ }, [inputNode]);
38
+ useImperativeHandle(ref, function () {
39
+ return {
40
+ focus: focus,
41
+ blur: blur
42
+ };
43
+ });
44
+ var itemList = useContext(ItemListContext);
45
+ var highlightedItemId = itemList.highlightedItemId,
46
+ id = itemList.id;
47
+ useEffect(function () {
48
+ setTimeout(function () {
49
+ itemList.setHighlightedIndex(0);
62
50
  });
63
-
64
- return _this;
65
- }
66
-
67
- var _proto = ComboboxInput.prototype;
68
-
69
- _proto.componentDidUpdate = function componentDidUpdate(lastProps) {
70
- var _this2 = this;
71
-
72
- if (lastProps.value !== this.props.value) {
73
- // needs to be called after items have been sorted, there's probably a better way to fix this
74
- setTimeout(function () {
75
- _this2.itemList.setHighlightedIndex(0);
51
+ }, [itemList.items]);
52
+ var handleKeyDown = useCallback(function (e) {
53
+ if (e.key === 'ArrowUp') {
54
+ e.preventDefault();
55
+ itemList.moveHighlightedIndex(-1, {
56
+ contain: false
76
57
  });
77
58
  }
78
- };
79
-
80
- _proto.focus = function focus() {
81
- this.inputNode.focus();
82
- };
83
-
84
- _proto.blur = function blur() {
85
- this.inputNode.blur();
86
- };
87
-
88
- _proto.render = function render() {
89
- var _this3 = this;
90
-
91
- var _this$props = this.props,
92
- autoFocus = _this$props.autoFocus,
93
- defaultValue = _this$props.defaultValue,
94
- disabled = _this$props.disabled,
95
- innerRef = _this$props.innerRef,
96
- isOpen = _this$props.isOpen,
97
- isLoading = _this$props.isLoading,
98
- name = _this$props.name,
99
- onBlur = _this$props.onBlur,
100
- onChange = _this$props.onChange,
101
- onFocus = _this$props.onFocus,
102
- onClear = _this$props.onClear,
103
- onClose = _this$props.onClose,
104
- onKeyDown = _this$props.onKeyDown,
105
- onKeyUp = _this$props.onKeyUp,
106
- placeholder = _this$props.placeholder,
107
- readOnly = _this$props.readOnly,
108
- size = _this$props.size,
109
- type = _this$props.type,
110
- value = _this$props.value,
111
- restProps = _objectWithoutPropertiesLoose(_this$props, ["autoFocus", "defaultValue", "disabled", "innerRef", "isOpen", "isLoading", "name", "onBlur", "onChange", "onFocus", "onClear", "onClose", "onKeyDown", "onKeyUp", "placeholder", "readOnly", "size", "type", "value"]);
112
-
113
- return /*#__PURE__*/React.createElement(ItemListController, null, function (itemList) {
114
- var highlightedItemId = itemList.highlightedItemId,
115
- id = itemList.id;
116
59
 
117
- if (!_this3.itemList) {
118
- _this3.itemList = itemList;
119
- }
120
-
121
- return /*#__PURE__*/React.createElement(Input.InputBox, _extends({
122
- innerRef: innerRef,
123
- size: size,
124
- disabled: disabled,
125
- isLoading: isLoading,
126
- onClear: onClear
127
- }, restProps, {
128
- grow: 1
129
- }), /*#__PURE__*/React.createElement(Input.InputField, {
130
- innerRef: _this3.setInputNode,
131
- grow: 1,
132
- role: "combobox",
133
- autoComplete: "off",
134
- "aria-autocomplete": "list",
135
- "aria-controls": id,
136
- "aria-expanded": isOpen,
137
- "aria-activedescendant": highlightedItemId,
138
- autoFocus: autoFocus,
139
- type: type,
140
- name: name,
141
- disabled: disabled,
142
- readOnly: readOnly,
143
- placeholder: placeholder,
144
- defaultValue: defaultValue,
145
- value: value,
146
- onChange: onChange,
147
- onFocus: onFocus,
148
- onBlur: onBlur,
149
- onKeyDown: _this3.handleKeyDown,
150
- onKeyUp: onKeyUp
151
- }));
152
- });
153
- };
60
+ if (e.key === 'ArrowDown') {
61
+ e.preventDefault();
62
+ itemList.moveHighlightedIndex(1, {
63
+ contain: false
64
+ });
65
+ }
154
66
 
155
- return ComboboxInput;
156
- }(Component);
67
+ if (e.key === 'Enter') {
68
+ e.preventDefault();
69
+ itemList.selectHighlightedItem();
70
+ }
157
71
 
158
- _defineProperty(ComboboxInput, "displayName", 'Combobox.Input');
72
+ if (onKeyDown) {
73
+ onKeyDown(e);
74
+ }
159
75
 
76
+ if (onClose && e.key === 'Tab') {
77
+ onClose();
78
+ }
79
+ });
80
+ var handleDocumentKeyDown = useCallback(function (e) {
81
+ if (onClear && e.key === 'Escape') {
82
+ onClear();
83
+ }
84
+ });
85
+ return /*#__PURE__*/React.createElement(Input.InputBox, _extends({
86
+ innerRef: innerRef,
87
+ size: size,
88
+ disabled: disabled,
89
+ isLoading: isLoading,
90
+ onClear: onClear
91
+ }, restProps, {
92
+ grow: 1
93
+ }), /*#__PURE__*/React.createElement(Input.InputField, {
94
+ innerRef: function innerRef(node) {
95
+ inputNode.current = node;
96
+ },
97
+ grow: 1,
98
+ role: "combobox",
99
+ autoComplete: "off",
100
+ "aria-autocomplete": "list",
101
+ "aria-controls": id,
102
+ "aria-expanded": isOpen,
103
+ "aria-activedescendant": highlightedItemId,
104
+ autoFocus: autoFocus,
105
+ type: type,
106
+ name: name,
107
+ disabled: disabled,
108
+ readOnly: readOnly,
109
+ placeholder: placeholder,
110
+ defaultValue: defaultValue,
111
+ value: value,
112
+ onChange: onChange,
113
+ onFocus: onFocus,
114
+ onBlur: onBlur,
115
+ onKeyDown: handleKeyDown,
116
+ onKeyUp: onKeyUp
117
+ }));
118
+ }
119
+
120
+ ComboboxInput = /*#__PURE__*/forwardRef(ComboboxInput);
121
+ ComboboxInput.displayName = 'Combobox.Input';
160
122
  export default ComboboxInput;
@@ -1,58 +1,44 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
4
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
- import React, { Component } from 'react';
3
+ import React from 'react';
6
4
  import { ItemListItem } from '../ItemList';
7
5
  import Menu from '../Menu';
8
-
9
- var ComboboxItem = /*#__PURE__*/function (_Component) {
10
- _inheritsLoose(ComboboxItem, _Component);
11
-
12
- function ComboboxItem() {
13
- return _Component.apply(this, arguments) || this;
14
- }
15
-
16
- var _proto = ComboboxItem.prototype;
17
-
18
- _proto.render = function render() {
19
- var _this$props = this.props,
20
- value = _this$props.value,
21
- index = _this$props.index,
22
- text = _this$props.text,
23
- _this$props$disabled = _this$props.disabled,
24
- disabled = _this$props$disabled === void 0 ? false : _this$props$disabled,
25
- restProps = _objectWithoutPropertiesLoose(_this$props, ["value", "index", "text", "disabled"]);
26
-
27
- return /*#__PURE__*/React.createElement(ItemListItem, {
28
- data: value,
6
+ import { useThemeProps } from '../system';
7
+
8
+ function ComboboxItem(props) {
9
+ var _useThemeProps = useThemeProps('combobox.item', props),
10
+ value = _useThemeProps.value,
11
+ index = _useThemeProps.index,
12
+ text = _useThemeProps.text,
13
+ _useThemeProps$disabl = _useThemeProps.disabled,
14
+ disabled = _useThemeProps$disabl === void 0 ? false : _useThemeProps$disabl,
15
+ restProps = _objectWithoutPropertiesLoose(_useThemeProps, ["value", "index", "text", "disabled"]);
16
+
17
+ return /*#__PURE__*/React.createElement(ItemListItem, {
18
+ data: value,
19
+ disabled: disabled,
20
+ index: index,
21
+ text: text
22
+ }, function (_ref) {
23
+ var id = _ref.id,
24
+ highlight = _ref.highlight,
25
+ highlighted = _ref.highlighted,
26
+ clearHighlight = _ref.clearHighlight,
27
+ select = _ref.select;
28
+ return /*#__PURE__*/React.createElement(Menu.Item, _extends({
29
29
  disabled: disabled,
30
- index: index,
31
- text: text
32
- }, function (_ref) {
33
- var id = _ref.id,
34
- highlight = _ref.highlight,
35
- highlighted = _ref.highlighted,
36
- clearHighlight = _ref.clearHighlight,
37
- select = _ref.select;
38
- return /*#__PURE__*/React.createElement(Menu.Item, _extends({
39
- disabled: disabled,
40
- id: id,
41
- isHighlighted: highlighted,
42
- onMouseOver: highlight,
43
- onMouseOut: clearHighlight,
44
- onClick: function onClick(event) {
45
- event.stopPropagation();
46
- event.nativeEvent.stopImmediatePropagation();
47
- select();
48
- }
49
- }, restProps));
50
- });
51
- };
52
-
53
- return ComboboxItem;
54
- }(Component);
55
-
56
- _defineProperty(ComboboxItem, "displayName", 'Combobox.Item');
57
-
30
+ id: id,
31
+ isHighlighted: highlighted,
32
+ onMouseOver: highlight,
33
+ onMouseOut: clearHighlight,
34
+ onClick: function onClick(event) {
35
+ event.stopPropagation();
36
+ event.nativeEvent.stopImmediatePropagation();
37
+ select();
38
+ }
39
+ }, restProps));
40
+ });
41
+ }
42
+
43
+ ComboboxItem.displayName = 'Combobox.Item';
58
44
  export default ComboboxItem;
@@ -1,14 +1,12 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- import _inheritsLoose from "@babel/runtime/helpers/esm/inheritsLoose";
3
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- import React, { Component, Children } from 'react';
2
+ import React, { useState, Children, useEffect } from 'react';
5
3
  import { matchSorter } from 'match-sorter';
6
4
  import Box from '../Box';
7
5
  import Menu from '../Menu';
8
6
  import HeadingUppercase from '../HeadingUppercase';
9
7
  import StackView from '../StackView';
10
8
  import Text from '../Text';
11
- import { shallowEqual } from '../utils';
9
+ import { useThemeProps } from '../system';
12
10
  import ComboboxItem from './ComboboxItem';
13
11
 
14
12
  var defaultRenderEmpty = function defaultRenderEmpty(value) {
@@ -26,64 +24,48 @@ var defaultRenderItem = function defaultRenderItem(item) {
26
24
  });
27
25
  };
28
26
 
29
- var ComboboxItems = /*#__PURE__*/function (_Component) {
30
- _inheritsLoose(ComboboxItems, _Component);
27
+ function ComboboxItems(props) {
28
+ var _useThemeProps = useThemeProps('combobox.items', props),
29
+ filter = _useThemeProps.filter,
30
+ items = _useThemeProps.items,
31
+ _useThemeProps$render = _useThemeProps.renderEmpty,
32
+ renderEmpty = _useThemeProps$render === void 0 ? defaultRenderEmpty : _useThemeProps$render,
33
+ _useThemeProps$render2 = _useThemeProps.renderItem,
34
+ renderItem = _useThemeProps$render2 === void 0 ? defaultRenderItem : _useThemeProps$render2,
35
+ title = _useThemeProps.title,
36
+ _useThemeProps$value = _useThemeProps.value,
37
+ value = _useThemeProps$value === void 0 ? '' : _useThemeProps$value,
38
+ restProps = _objectWithoutPropertiesLoose(_useThemeProps, ["filter", "items", "renderEmpty", "renderItem", "title", "value"]);
31
39
 
32
- function ComboboxItems(props) {
33
- var _this;
40
+ var _useState = useState(getSortedItems({
41
+ items: items,
42
+ value: value,
43
+ filter: filter
44
+ })),
45
+ sortedItems = _useState[0],
46
+ setSortedItems = _useState[1];
34
47
 
35
- _this = _Component.call(this, props) || this;
36
- _this.state = {
37
- sortedItems: _this.getSortedItems(props)
38
- };
39
- return _this;
40
- }
41
-
42
- var _proto = ComboboxItems.prototype;
43
-
44
- _proto.componentDidUpdate = function componentDidUpdate(lastProps) {
45
- if (lastProps.value !== this.props.value || !shallowEqual(lastProps.items, this.props.items) || !shallowEqual(lastProps.filter, this.props.filter)) {
46
- this.setState({
47
- sortedItems: this.getSortedItems(this.props)
48
- });
49
- }
50
- };
51
-
52
- _proto.getSortedItems = function getSortedItems(_ref) {
48
+ function getSortedItems(_ref) {
53
49
  var items = _ref.items,
54
50
  value = _ref.value,
55
51
  filter = _ref.filter;
56
52
  return matchSorter(items, value.length > 0 ? value : '', filter);
57
- };
58
-
59
- _proto.render = function render() {
60
- var _this$props = this.props,
61
- filter = _this$props.filter,
62
- items = _this$props.items,
63
- renderEmpty = _this$props.renderEmpty,
64
- renderItem = _this$props.renderItem,
65
- title = _this$props.title,
66
- value = _this$props.value,
67
- restProps = _objectWithoutPropertiesLoose(_this$props, ["filter", "items", "renderEmpty", "renderItem", "title", "value"]);
68
-
69
- var sortedItems = this.state.sortedItems;
70
- return /*#__PURE__*/React.createElement(Box, restProps, title && /*#__PURE__*/React.createElement(StackView, {
71
- paddingHorizontal: 1,
72
- paddingVertical: 0.5
73
- }, /*#__PURE__*/React.createElement(HeadingUppercase, null, title)), Children.toArray(sortedItems.length > 0 ? sortedItems.map(function (item, index) {
74
- return renderItem(item, index);
75
- }) : typeof renderEmpty === 'function' ? renderEmpty(value) : renderEmpty));
76
- };
77
-
78
- return ComboboxItems;
79
- }(Component);
80
-
81
- _defineProperty(ComboboxItems, "displayName", 'Combobox.Items');
53
+ }
82
54
 
83
- _defineProperty(ComboboxItems, "defaultProps", {
84
- value: '',
85
- renderEmpty: defaultRenderEmpty,
86
- renderItem: defaultRenderItem
87
- });
55
+ useEffect(function () {
56
+ setSortedItems(getSortedItems({
57
+ items: items,
58
+ value: value,
59
+ filter: filter
60
+ }));
61
+ }, [items, value, filter]);
62
+ return /*#__PURE__*/React.createElement(Box, restProps, title && /*#__PURE__*/React.createElement(StackView, {
63
+ paddingHorizontal: 1,
64
+ paddingVertical: 0.5
65
+ }, /*#__PURE__*/React.createElement(HeadingUppercase, null, title)), Children.toArray(sortedItems.length > 0 ? sortedItems.map(function (item, index) {
66
+ return renderItem(item, index);
67
+ }) : typeof renderEmpty === 'function' ? renderEmpty(value) : renderEmpty));
68
+ }
88
69
 
70
+ ComboboxItems.displayName = 'Combobox.Items';
89
71
  export default ComboboxItems;
@@ -1,2 +1,10 @@
1
1
  import Combobox from './Combobox';
2
+ import ComboboxInput from './ComboboxInput';
3
+ import ComboboxItem from './ComboboxItem';
4
+ import ComboboxItems from './ComboboxItems';
5
+ import ComboboxPopover from './ComboboxPopover';
6
+ Combobox.Input = ComboboxInput;
7
+ Combobox.Item = ComboboxItem;
8
+ Combobox.Items = ComboboxItems;
9
+ Combobox.Popover = ComboboxPopover;
2
10
  export default Combobox;