@planningcenter/tapestry-react 2.1.2 → 2.3.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 (88) hide show
  1. package/dist/cjs/Badge/Badge.js +5 -1
  2. package/dist/cjs/Button/Button.js +6 -3
  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/Popover/utils.js +1 -0
  13. package/dist/cjs/SegmentedControl/SegmentedControl.js +89 -111
  14. package/dist/cjs/SegmentedTabs/SegmentedTabs.js +54 -84
  15. package/dist/cjs/Tabs/Tab.js +9 -6
  16. package/dist/cjs/Tabs/TabList.js +49 -64
  17. package/dist/cjs/Tabs/TabPanel.js +6 -2
  18. package/dist/cjs/Tabs/TabPanels.js +14 -27
  19. package/dist/cjs/Tabs/Tabs.js +72 -106
  20. package/dist/cjs/Tabs/index.js +12 -0
  21. package/dist/cjs/ThemeProvider/ThemeProvider.js +1 -1
  22. package/dist/cjs/Tooltip/Tooltip.js +158 -182
  23. package/dist/cjs/Wizard/Wizard.js +143 -193
  24. package/dist/cjs/Wizard/index.js +3 -0
  25. package/dist/esm/Badge/Badge.js +5 -1
  26. package/dist/esm/Button/Button.js +6 -3
  27. package/dist/esm/Card/Card.js +5 -2
  28. package/dist/esm/Combobox/Combobox.js +18 -43
  29. package/dist/esm/Combobox/ComboboxInput.js +111 -149
  30. package/dist/esm/Combobox/ComboboxItem.js +38 -52
  31. package/dist/esm/Combobox/ComboboxItems.js +38 -56
  32. package/dist/esm/Combobox/index.js +8 -0
  33. package/dist/esm/DateField/DateField.js +106 -133
  34. package/dist/esm/Field/Field.js +76 -103
  35. package/dist/esm/Menu/Item.js +1 -0
  36. package/dist/esm/Popover/utils.js +1 -0
  37. package/dist/esm/SegmentedControl/SegmentedControl.js +90 -114
  38. package/dist/esm/SegmentedTabs/SegmentedTabs.js +51 -83
  39. package/dist/esm/Tabs/Tab.js +8 -6
  40. package/dist/esm/Tabs/TabList.js +49 -66
  41. package/dist/esm/Tabs/TabPanel.js +4 -2
  42. package/dist/esm/Tabs/TabPanels.js +14 -28
  43. package/dist/esm/Tabs/Tabs.js +76 -120
  44. package/dist/esm/Tabs/index.js +8 -0
  45. package/dist/esm/ThemeProvider/ThemeProvider.js +1 -1
  46. package/dist/esm/Tooltip/Tooltip.js +154 -195
  47. package/dist/esm/Wizard/Wizard.js +144 -201
  48. package/dist/esm/Wizard/index.js +2 -0
  49. package/dist/types/Popover/utils.d.ts +3 -0
  50. package/package.json +1 -1
  51. package/src/.DS_Store +0 -0
  52. package/src/Badge/Badge.js +5 -0
  53. package/src/Button/Button.tsx +6 -3
  54. package/src/Card/Card.tsx +22 -1
  55. package/src/Combobox/Combobox.js +18 -32
  56. package/src/Combobox/Combobox.mdx +1 -0
  57. package/src/Combobox/Combobox.test.js +1 -1
  58. package/src/Combobox/ComboboxInput.js +111 -105
  59. package/src/Combobox/ComboboxItem.js +27 -27
  60. package/src/Combobox/ComboboxItems.js +38 -60
  61. package/src/Combobox/index.js +8 -0
  62. package/src/DateField/DateField.js +109 -105
  63. package/src/DateField/DateField.mdx +1 -0
  64. package/src/Field/Field.js +85 -93
  65. package/src/Field/Field.mdx +1 -0
  66. package/src/Menu/Heading.js +5 -1
  67. package/src/Menu/Heading.mdx +20 -0
  68. package/src/Menu/Item.js +13 -1
  69. package/src/Menu/Item.mdx +18 -0
  70. package/src/Menu/Menu.mdx +1 -0
  71. package/src/Popover/utils.ts +1 -0
  72. package/src/SegmentedControl/SegmentedControl.js +88 -92
  73. package/src/SegmentedControl/SegmentedControl.mdx +1 -0
  74. package/src/SegmentedTabs/SegmentedTabs.js +51 -71
  75. package/src/SegmentedTabs/SegmentedTabs.mdx +1 -0
  76. package/src/Tabs/Tab.js +3 -1
  77. package/src/Tabs/TabList.js +56 -62
  78. package/src/Tabs/TabPanel.js +2 -1
  79. package/src/Tabs/TabPanels.js +14 -15
  80. package/src/Tabs/Tabs.js +63 -84
  81. package/src/Tabs/Tabs.mdx +16 -17
  82. package/src/Tabs/index.js +8 -0
  83. package/src/ThemeProvider/ThemeProvider.tsx +1 -1
  84. package/src/Tooltip/Tooltip.js +142 -160
  85. package/src/Tooltip/Tooltip.mdx +1 -0
  86. package/src/Wizard/Wizard.js +141 -170
  87. package/src/Wizard/Wizard.mdx +3 -2
  88. package/src/Wizard/index.js +2 -0
@@ -11,12 +11,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
13
 
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
17
-
18
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
-
20
14
  var _react = _interopRequireWildcard(require("react"));
21
15
 
22
16
  var _Button = _interopRequireDefault(require("../Button"));
@@ -25,116 +19,100 @@ var _InputBox = _interopRequireDefault(require("../Input/InputBox"));
25
19
 
26
20
  var _system = require("../system");
27
21
 
28
- var SegmentedControl = /*#__PURE__*/function (_Component) {
29
- (0, _inheritsLoose2["default"])(SegmentedControl, _Component);
30
-
31
- function SegmentedControl(_props) {
32
- var _this;
33
-
34
- _this = _Component.call(this, _props) || this;
35
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getActiveIndex", function (props) {
36
- return props.activeSegment === undefined ? 0 : props.segments.indexOf(props.activeSegment);
37
- });
38
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setInputBox", function (component) {
39
- _this.inputBox = component;
40
- });
41
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function (event) {
42
- if (_this.props.onChange && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {
43
- var amountToMove = event.key === 'ArrowLeft' ? -1 : 1;
44
- var nextIndex = _this.state.activeIndex + amountToMove;
45
- event.preventDefault();
46
-
47
- _this.changeSegment(nextIndex);
22
+ function SegmentedControl(props, ref) {
23
+ var getActiveIndex = (0, _react.useCallback)(function (props) {
24
+ return props.activeSegment === undefined ? 0 : props.segments.indexOf(props.activeSegment);
25
+ });
26
+ var inputBoxRef = (0, _react.useRef)(null);
27
+
28
+ var _useThemeProps = (0, _system.useThemeProps)('segmentedControl', props),
29
+ activeSegment = _useThemeProps.activeSegment,
30
+ _useThemeProps$color = _useThemeProps.color,
31
+ color = _useThemeProps$color === void 0 ? 'primary' : _useThemeProps$color,
32
+ disabled = _useThemeProps.disabled,
33
+ onChange = _useThemeProps.onChange,
34
+ segments = _useThemeProps.segments,
35
+ _useThemeProps$segmen = _useThemeProps.segmentBasis,
36
+ segmentBasis = _useThemeProps$segmen === void 0 ? 'auto' : _useThemeProps$segmen,
37
+ _useThemeProps$size = _useThemeProps.size,
38
+ size = _useThemeProps$size === void 0 ? 'md' : _useThemeProps$size,
39
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["activeSegment", "color", "disabled", "onChange", "segments", "segmentBasis", "size"]);
40
+
41
+ var _useState = (0, _react.useState)(getActiveIndex(props)),
42
+ activeIndex = _useState[0],
43
+ setActiveIndex = _useState[1];
44
+
45
+ var handleKeyDown = (0, _react.useCallback)(function (event) {
46
+ if (onChange && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {
47
+ var amountToMove = event.key === 'ArrowLeft' ? -1 : 1;
48
+ var nextIndex = activeIndex + amountToMove;
49
+ event.preventDefault();
50
+ changeSegment(nextIndex);
51
+ }
52
+ });
53
+ var changeSegment = (0, _react.useCallback)(function (index) {
54
+ var nextSegment = segments[index];
55
+
56
+ if (nextSegment) {
57
+ if (activeSegment === undefined) {
58
+ setActiveIndex(index);
48
59
  }
49
- });
50
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeSegment", function (index) {
51
- var nextSegment = _this.props.segments[index];
52
-
53
- if (nextSegment) {
54
- if (_this.props.activeSegment === undefined) {
55
- _this.setState({
56
- activeIndex: index
57
- });
58
- }
59
-
60
- if (_this.props.onChange) {
61
- _this.props.onChange(nextSegment.title || nextSegment);
62
- }
63
-
64
- _this.focus(index);
60
+
61
+ if (onChange) {
62
+ onChange(nextSegment.title || nextSegment);
65
63
  }
66
- });
67
- _this.state = {
68
- activeIndex: _this.getActiveIndex(_props)
69
- };
70
- return _this;
71
- }
72
64
 
73
- var _proto = SegmentedControl.prototype;
65
+ focus(index);
66
+ }
67
+ });
68
+ var focus = (0, _react.useCallback)(function (index) {
69
+ return inputBoxRef.current.focus(index);
70
+ });
71
+ var blur = (0, _react.useCallback)(function () {
72
+ return inputBoxRef.current.blur();
73
+ });
74
+ (0, _react.useImperativeHandle)(ref, function () {
75
+ return {
76
+ focus: focus,
77
+ blur: blur
78
+ };
79
+ });
80
+ (0, _react.useEffect)(function () {
81
+ var newActiveIndex = getActiveIndex(props);
74
82
 
75
- _proto.componentDidUpdate = function componentDidUpdate(lastProps) {
76
- if (lastProps.activeSegment !== this.props.activeSegment) {
77
- this.setState({
78
- activeIndex: this.getActiveIndex(this.props)
79
- });
83
+ if (activeIndex !== newActiveIndex) {
84
+ setActiveIndex(newActiveIndex);
80
85
  }
81
- };
82
-
83
- _proto.focus = function focus(index) {
84
- this.inputBox.focus(index);
85
- };
86
-
87
- _proto.blur = function blur() {
88
- this.inputBox.blur();
89
- };
90
-
91
- _proto.render = function render() {
92
- var _this2 = this;
93
-
94
- var _this$props = this.props,
95
- activeSegment = _this$props.activeSegment,
96
- _this$props$color = _this$props.color,
97
- color = _this$props$color === void 0 ? 'primary' : _this$props$color,
98
- disabled = _this$props.disabled,
99
- onChange = _this$props.onChange,
100
- segments = _this$props.segments,
101
- _this$props$segmentBa = _this$props.segmentBasis,
102
- segmentBasis = _this$props$segmentBa === void 0 ? 'auto' : _this$props$segmentBa,
103
- _this$props$size = _this$props.size,
104
- size = _this$props$size === void 0 ? 'md' : _this$props$size,
105
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, ["activeSegment", "color", "disabled", "onChange", "segments", "segmentBasis", "size"]);
106
- var activeIndex = this.state.activeIndex;
107
- return /*#__PURE__*/_react["default"].createElement(_InputBox["default"], (0, _extends2["default"])({
108
- ref: this.setInputBox,
109
- size: size,
110
- includeSpacing: true,
111
- evenPadding: true,
112
- role: "group",
113
- cursor: "initial",
114
- disabled: disabled
115
- }, restProps), segments.map(function (segment, segmentIndex) {
116
- var title = segment.title,
117
- restSegmentProps = (0, _objectWithoutPropertiesLoose2["default"])(segment, ["title"]);
118
- var buttonProps = title ? restSegmentProps : {};
119
- return /*#__PURE__*/_react["default"].createElement(_Button["default"], (0, _extends2["default"])({
120
- key: segmentIndex,
121
- grow: 1,
122
- size: (0, _system.navigateSize)(size, -1),
123
- basis: segmentBasis,
124
- theme: segmentIndex === activeIndex ? color : undefined,
125
- variant: segmentIndex === activeIndex ? 'fill' : 'naked',
126
- title: title || segment,
127
- disabled: disabled,
128
- onKeyDown: _this2.handleKeyDown,
129
- onClick: function onClick() {
130
- return segmentIndex !== activeIndex && _this2.changeSegment(segmentIndex);
131
- }
132
- }, buttonProps));
133
- }));
134
- };
135
-
136
- return SegmentedControl;
137
- }(_react.Component);
86
+ }, [activeSegment]);
87
+ return /*#__PURE__*/_react["default"].createElement(_InputBox["default"], (0, _extends2["default"])({
88
+ ref: inputBoxRef,
89
+ size: size,
90
+ includeSpacing: true,
91
+ evenPadding: true,
92
+ role: "group",
93
+ cursor: "initial",
94
+ disabled: disabled
95
+ }, restProps), segments.map(function (segment, segmentIndex) {
96
+ var title = segment.title,
97
+ restSegmentProps = (0, _objectWithoutPropertiesLoose2["default"])(segment, ["title"]);
98
+ var buttonProps = title ? restSegmentProps : {};
99
+ return /*#__PURE__*/_react["default"].createElement(_Button["default"], (0, _extends2["default"])({
100
+ key: segmentIndex,
101
+ grow: 1,
102
+ size: (0, _system.navigateSize)(size, -1),
103
+ basis: segmentBasis,
104
+ theme: segmentIndex === activeIndex ? color : undefined,
105
+ variant: segmentIndex === activeIndex ? 'fill' : 'naked',
106
+ title: title || segment,
107
+ disabled: disabled,
108
+ onKeyDown: handleKeyDown,
109
+ onClick: function onClick() {
110
+ return segmentIndex !== activeIndex && changeSegment(segmentIndex);
111
+ }
112
+ }, buttonProps));
113
+ }));
114
+ }
138
115
 
116
+ SegmentedControl = /*#__PURE__*/(0, _react.forwardRef)(SegmentedControl);
139
117
  var _default = SegmentedControl;
140
118
  exports["default"] = _default;
@@ -7,12 +7,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
7
7
  exports.__esModule = true;
8
8
  exports["default"] = void 0;
9
9
 
10
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
-
12
- var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
17
11
 
18
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
@@ -23,6 +17,8 @@ var _Text = _interopRequireDefault(require("../Text"));
23
17
 
24
18
  var _StackView = _interopRequireDefault(require("../StackView"));
25
19
 
20
+ var _system = require("../system");
21
+
26
22
  function Tab(_ref) {
27
23
  var isSelected = _ref.isSelected,
28
24
  selectedColor = _ref.selectedColor,
@@ -47,46 +43,21 @@ function Tab(_ref) {
47
43
  }, restProps));
48
44
  }
49
45
 
50
- var SegmentedTabs = /*#__PURE__*/function (_Component) {
51
- (0, _inheritsLoose2["default"])(SegmentedTabs, _Component);
52
-
53
- function SegmentedTabs(props) {
54
- var _this;
55
-
56
- _this = _Component.call(this, props) || this;
57
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "setIndex", function (index) {
58
- if (_this.props.activeTab === undefined) {
59
- _this.setState({
60
- activeIndex: index
61
- });
62
- }
63
-
64
- if (_this.props.onChange) {
65
- _this.props.onChange(_this.props.tabs[index]);
66
- }
67
- });
68
- _this.state = {
69
- activeIndex: _this.getActiveIndex(props)
70
- };
71
- return _this;
72
- }
73
-
74
- var _proto = SegmentedTabs.prototype;
75
-
76
- _proto.componentDidUpdate = function componentDidUpdate(lastProps) {
77
- if (this.props.activeTab) {
78
- var lastActiveIndex = this.getActiveIndex(lastProps);
79
- var nextActiveIndex = this.getActiveIndex(this.props);
80
-
81
- if (lastActiveIndex !== nextActiveIndex || this.state.activeIndex !== nextActiveIndex) {
82
- this.setState({
83
- activeIndex: nextActiveIndex
84
- });
85
- }
86
- }
87
- };
46
+ function SegmentedTabs(props) {
47
+ var _useThemeProps = (0, _system.useThemeProps)('segmentedTabs', props),
48
+ activeTab = _useThemeProps.activeTab,
49
+ _useThemeProps$color = _useThemeProps.color,
50
+ color = _useThemeProps$color === void 0 ? 'primary' : _useThemeProps$color,
51
+ _useThemeProps$getTab = _useThemeProps.getTabLabel,
52
+ getTabLabel = _useThemeProps$getTab === void 0 ? function (tab) {
53
+ return tab;
54
+ } : _useThemeProps$getTab,
55
+ onChange = _useThemeProps.onChange,
56
+ tabs = _useThemeProps.tabs,
57
+ tabProps = _useThemeProps.tabProps,
58
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["activeTab", "color", "getTabLabel", "onChange", "tabs", "tabProps"]);
88
59
 
89
- _proto.getActiveIndex = function getActiveIndex(_ref2) {
60
+ var getActiveIndex = (0, _react.useCallback)(function (_ref2) {
90
61
  var activeTab = _ref2.activeTab,
91
62
  tabs = _ref2.tabs;
92
63
  var index;
@@ -104,46 +75,45 @@ var SegmentedTabs = /*#__PURE__*/function (_Component) {
104
75
  }
105
76
 
106
77
  return index;
107
- };
108
-
109
- _proto.render = function render() {
110
- var _this2 = this;
111
-
112
- var _this$props = this.props,
113
- activeTab = _this$props.activeTab,
114
- color = _this$props.color,
115
- getTabLabel = _this$props.getTabLabel,
116
- onChange = _this$props.onChange,
117
- tabs = _this$props.tabs,
118
- tabProps = _this$props.tabProps,
119
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, ["activeTab", "color", "getTabLabel", "onChange", "tabs", "tabProps"]);
120
- var activeIndex = this.state.activeIndex;
121
- return /*#__PURE__*/_react["default"].createElement(_StackView["default"], (0, _extends2["default"])({
122
- role: "group",
123
- axis: "horizontal",
124
- distribution: "fill",
125
- position: "relative"
126
- }, restProps), tabs.map(function (tab, index) {
127
- return /*#__PURE__*/_react["default"].createElement(Tab, (0, _extends2["default"])({
128
- key: index,
129
- index: index,
130
- isSelected: index === activeIndex,
131
- selectedColor: color,
132
- onSelect: function onSelect() {
133
- return _this2.setIndex(index);
134
- }
135
- }, tabProps), getTabLabel(tab));
136
- }));
137
- };
78
+ });
138
79
 
139
- return SegmentedTabs;
140
- }(_react.Component);
80
+ var _useState = (0, _react.useState)(getActiveIndex(props)),
81
+ activeIndex = _useState[0],
82
+ setActiveIndex = _useState[1];
83
+
84
+ var setIndex = (0, _react.useCallback)(function (index) {
85
+ if (activeTab === undefined) {
86
+ setActiveIndex(index);
87
+ }
88
+
89
+ if (onChange) {
90
+ onChange(tabs[index]);
91
+ }
92
+ });
93
+ (0, _react.useEffect)(function () {
94
+ var newActiveIndex = getActiveIndex(props);
95
+
96
+ if (activeIndex !== newActiveIndex) {
97
+ setActiveIndex(newActiveIndex);
98
+ }
99
+ }, [activeTab]);
100
+ return /*#__PURE__*/_react["default"].createElement(_StackView["default"], (0, _extends2["default"])({
101
+ role: "group",
102
+ axis: "horizontal",
103
+ distribution: "fill",
104
+ position: "relative"
105
+ }, restProps), tabs.map(function (tab, index) {
106
+ return /*#__PURE__*/_react["default"].createElement(Tab, (0, _extends2["default"])({
107
+ key: index,
108
+ index: index,
109
+ isSelected: index === activeIndex,
110
+ selectedColor: color,
111
+ onSelect: function onSelect() {
112
+ return setIndex(index);
113
+ }
114
+ }, tabProps), getTabLabel(tab));
115
+ }));
116
+ }
141
117
 
142
- (0, _defineProperty2["default"])(SegmentedTabs, "defaultProps", {
143
- color: 'primary',
144
- getTabLabel: function getTabLabel(tab) {
145
- return tab;
146
- }
147
- });
148
118
  var _default = SegmentedTabs;
149
119
  exports["default"] = _default;
@@ -15,13 +15,16 @@ var _StackView = _interopRequireDefault(require("../StackView"));
15
15
 
16
16
  var _hooks = require("../hooks");
17
17
 
18
+ var _system = require("../system");
19
+
18
20
  function Tab(props) {
19
- var axis = props.axis,
20
- children = props.children,
21
- disabled = props.disabled,
22
- id = props.id,
23
- isActive = props.isActive,
24
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(props, ["axis", "children", "disabled", "id", "isActive"]);
21
+ var _useThemeProps = (0, _system.useThemeProps)('tabs.tab', props),
22
+ axis = _useThemeProps.axis,
23
+ children = _useThemeProps.children,
24
+ disabled = _useThemeProps.disabled,
25
+ id = _useThemeProps.id,
26
+ isActive = _useThemeProps.isActive,
27
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["axis", "children", "disabled", "id", "isActive"]);
25
28
 
26
29
  var _useHover = (0, _hooks.useHover)(),
27
30
  hover = _useHover.hover,
@@ -11,82 +11,67 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
11
11
 
12
12
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
13
13
 
14
- var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
15
-
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
14
  var _react = _interopRequireWildcard(require("react"));
19
15
 
20
16
  var _StackView = _interopRequireDefault(require("../StackView"));
21
17
 
18
+ var _system = require("../system");
19
+
22
20
  var TABLIST_DISPLAY_NAME = 'TabList';
23
21
  exports.TABLIST_DISPLAY_NAME = TABLIST_DISPLAY_NAME;
24
22
 
25
- var TabList = /*#__PURE__*/function (_Component) {
26
- (0, _inheritsLoose2["default"])(TabList, _Component);
27
-
28
- function TabList() {
29
- return _Component.apply(this, arguments) || this;
30
- }
31
-
32
- var _proto = TabList.prototype;
33
-
34
- _proto.render = function render() {
35
- var _this$props = this.props,
36
- activeIndex = _this$props.activeIndex,
37
- axis = _this$props.axis,
38
- children = _this$props.children,
39
- id = _this$props.id,
40
- moveTabFocus = _this$props.moveTabFocus,
41
- setActiveIndex = _this$props.setActiveIndex,
42
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, ["activeIndex", "axis", "children", "id", "moveTabFocus", "setActiveIndex"]);
43
- var backwardKey = axis === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';
44
- var forwardKey = axis === 'horizontal' ? 'ArrowRight' : 'ArrowDown';
45
- return /*#__PURE__*/_react["default"].createElement(_StackView["default"], (0, _extends2["default"])({
46
- role: "tablist",
47
- "aria-orientation": axis,
23
+ function TabList(props) {
24
+ var _useThemeProps = (0, _system.useThemeProps)('tabs.tabList', props),
25
+ activeIndex = _useThemeProps.activeIndex,
26
+ _useThemeProps$axis = _useThemeProps.axis,
27
+ axis = _useThemeProps$axis === void 0 ? 'horizontal' : _useThemeProps$axis,
28
+ children = _useThemeProps.children,
29
+ id = _useThemeProps.id,
30
+ moveTabFocus = _useThemeProps.moveTabFocus,
31
+ setActiveIndex = _useThemeProps.setActiveIndex,
32
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["activeIndex", "axis", "children", "id", "moveTabFocus", "setActiveIndex"]);
33
+
34
+ var backwardKey = axis === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';
35
+ var forwardKey = axis === 'horizontal' ? 'ArrowRight' : 'ArrowDown';
36
+ return /*#__PURE__*/_react["default"].createElement(_StackView["default"], (0, _extends2["default"])({
37
+ role: "tablist",
38
+ "aria-orientation": axis,
39
+ axis: axis,
40
+ distribution: "fill"
41
+ }, restProps), _react.Children.map(children, function (child, index) {
42
+ return /*#__PURE__*/(0, _react.cloneElement)(child, {
48
43
  axis: axis,
49
- distribution: "fill"
50
- }, restProps), _react.Children.map(children, function (child, index) {
51
- return /*#__PURE__*/(0, _react.cloneElement)(child, {
52
- axis: axis,
53
- id: id + "-" + index,
54
- isActive: index === activeIndex,
55
- tabIndex: child.props.disabled ? undefined : index !== activeIndex ? -1 : 0,
56
- onFocus: function onFocus() {
57
- return setActiveIndex(index);
58
- },
59
- onKeyDown: function onKeyDown(event) {
60
- if (event.key === backwardKey) {
61
- event.preventDefault();
62
- moveTabFocus(-1);
63
- }
64
-
65
- if (event.key === forwardKey) {
66
- event.preventDefault();
67
- moveTabFocus(1);
68
- }
44
+ id: id + "-" + index,
45
+ isActive: index === activeIndex,
46
+ tabIndex: child.props.disabled ? undefined : index !== activeIndex ? -1 : 0,
47
+ onFocus: function onFocus() {
48
+ return setActiveIndex(index);
49
+ },
50
+ onKeyDown: function onKeyDown(event) {
51
+ if (event.key === backwardKey) {
52
+ event.preventDefault();
53
+ moveTabFocus(-1);
54
+ }
69
55
 
70
- if (event.key === 'Home') {
71
- event.preventDefault();
72
- moveTabFocus(0);
73
- }
56
+ if (event.key === forwardKey) {
57
+ event.preventDefault();
58
+ moveTabFocus(1);
59
+ }
74
60
 
75
- if (event.key === 'End') {
76
- event.preventDefault();
77
- moveTabFocus(_react.Children.count(children) - 1);
78
- }
61
+ if (event.key === 'Home') {
62
+ event.preventDefault();
63
+ moveTabFocus(0);
79
64
  }
80
- });
81
- }));
82
- };
83
65
 
84
- return TabList;
85
- }(_react.Component);
66
+ if (event.key === 'End') {
67
+ event.preventDefault();
68
+ moveTabFocus(_react.Children.count(children) - 1);
69
+ }
70
+ }
71
+ });
72
+ }));
73
+ }
86
74
 
87
- (0, _defineProperty2["default"])(TabList, "displayName", TABLIST_DISPLAY_NAME);
88
- (0, _defineProperty2["default"])(TabList, "defaultProps", {
89
- axis: 'horizontal'
90
- });
75
+ TabList.displayName = TABLIST_DISPLAY_NAME;
91
76
  var _default = TabList;
92
77
  exports["default"] = _default;
@@ -13,9 +13,13 @@ var _react = _interopRequireDefault(require("react"));
13
13
 
14
14
  var _Box = _interopRequireDefault(require("../Box"));
15
15
 
16
+ var _system = require("../system");
17
+
16
18
  function TabPanel(props) {
17
- var activeId = props.activeId,
18
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(props, ["activeId"]);
19
+ var _useThemeProps = (0, _system.useThemeProps)('tabs.tabPanel', props),
20
+ activeId = _useThemeProps.activeId,
21
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["activeId"]);
22
+
19
23
  return /*#__PURE__*/_react["default"].createElement(_Box["default"], (0, _extends2["default"])({
20
24
  role: "tabpanel",
21
25
  id: activeId + "-panel",
@@ -9,41 +9,28 @@ exports["default"] = exports.TABPANELS_DISPLAY_NAME = 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 _Box = _interopRequireDefault(require("../Box"));
19
15
 
16
+ var _system = require("../system");
17
+
20
18
  var TABPANELS_DISPLAY_NAME = 'TabPanels';
21
19
  exports.TABPANELS_DISPLAY_NAME = TABPANELS_DISPLAY_NAME;
22
20
 
23
- var TabPanels = /*#__PURE__*/function (_Component) {
24
- (0, _inheritsLoose2["default"])(TabPanels, _Component);
25
-
26
- function TabPanels() {
27
- return _Component.apply(this, arguments) || this;
28
- }
29
-
30
- var _proto = TabPanels.prototype;
31
-
32
- _proto.render = function render() {
33
- var _this$props = this.props,
34
- activeIndex = _this$props.activeIndex,
35
- children = _this$props.children,
36
- id = _this$props.id,
37
- restProps = (0, _objectWithoutPropertiesLoose2["default"])(_this$props, ["activeIndex", "children", "id"]);
38
- var child = children[activeIndex];
39
- return /*#__PURE__*/_react["default"].createElement(_Box["default"], restProps, child ? /*#__PURE__*/(0, _react.cloneElement)(child, {
40
- activeId: id + "-" + activeIndex
41
- }) : null);
42
- };
21
+ function TabPanels(props) {
22
+ var _useThemeProps = (0, _system.useThemeProps)('tabs.tabPanels', props),
23
+ activeIndex = _useThemeProps.activeIndex,
24
+ children = _useThemeProps.children,
25
+ id = _useThemeProps.id,
26
+ restProps = (0, _objectWithoutPropertiesLoose2["default"])(_useThemeProps, ["activeIndex", "children", "id"]);
43
27
 
44
- return TabPanels;
45
- }(_react.Component);
28
+ var child = children[activeIndex];
29
+ return /*#__PURE__*/_react["default"].createElement(_Box["default"], restProps, child ? /*#__PURE__*/(0, _react.cloneElement)(child, {
30
+ activeId: id + "-" + activeIndex
31
+ }) : null);
32
+ }
46
33
 
47
- (0, _defineProperty2["default"])(TabPanels, "displayName", TABPANELS_DISPLAY_NAME);
34
+ TabPanels.displayName = TABPANELS_DISPLAY_NAME;
48
35
  var _default = TabPanels;
49
36
  exports["default"] = _default;