@clayui/tabs 3.141.2-alpha.0 → 3.142.2

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.
@@ -0,0 +1,30 @@
1
+ /**
2
+ * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
+ * SPDX-License-Identifier: BSD-3-Clause
4
+ */
5
+ import React from 'react';
6
+ export interface IProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ /**
8
+ * @ignore
9
+ */
10
+ active?: React.Key;
11
+ /**
12
+ * Receives a number that indicates the `tabkey` to be rendered.
13
+ * @deprecated since v3.78.2 - No longer needed in new composition.
14
+ */
15
+ activeIndex?: number;
16
+ /**
17
+ * Children elements received from ClayTabs.Content component.
18
+ */
19
+ children: React.ReactNode;
20
+ /**
21
+ * Flag to indicate if `fade` classname that applies an fading animation should be applied.
22
+ */
23
+ fade?: boolean;
24
+ /**
25
+ * @ignore
26
+ */
27
+ tabsId?: string;
28
+ }
29
+ declare const Content: React.ForwardRefExoticComponent<IProps & React.RefAttributes<HTMLDivElement>>;
30
+ export default Content;
package/lib/Content.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _excluded = ["active", "activeIndex", "children", "className", "fade", "tabsId"];
11
+ /**
12
+ * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
13
+ * SPDX-License-Identifier: BSD-3-Clause
14
+ */
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
17
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
18
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
19
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
20
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
21
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
22
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
23
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
24
+ var Content = /*#__PURE__*/_react.default.forwardRef(function Content(_ref, ref) {
25
+ var active = _ref.active,
26
+ _ref$activeIndex = _ref.activeIndex,
27
+ activeIndex = _ref$activeIndex === void 0 ? 0 : _ref$activeIndex,
28
+ children = _ref.children,
29
+ className = _ref.className,
30
+ _ref$fade = _ref.fade,
31
+ fade = _ref$fade === void 0 ? false : _ref$fade,
32
+ tabsId = _ref.tabsId,
33
+ otherProps = _objectWithoutProperties(_ref, _excluded);
34
+ return /*#__PURE__*/_react.default.createElement("div", _extends({
35
+ className: (0, _classnames.default)('tab-content', className)
36
+ }, otherProps, {
37
+ ref: ref
38
+ }), _react.default.Children.map(children, function (child, index) {
39
+ if (! /*#__PURE__*/_react.default.isValidElement(child)) {
40
+ return child;
41
+ }
42
+ return /*#__PURE__*/_react.default.cloneElement(child, _objectSpread(_objectSpread({}, child.props), {}, {
43
+ active: typeof active === 'number' ? active === index : activeIndex === index,
44
+ 'aria-labelledby': tabsId ? "".concat(tabsId, "-tab-").concat(index) : child.props['aria-labelledby'],
45
+ fade: fade,
46
+ id: tabsId ? "".concat(tabsId, "-tabpanel-").concat(index) : child.props.id,
47
+ key: index
48
+ }));
49
+ }));
50
+ });
51
+ var _default = exports.default = Content;
package/lib/Item.d.ts ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
+ * SPDX-License-Identifier: BSD-3-Clause
4
+ */
5
+ import React from 'react';
6
+ export interface IProps extends Omit<React.HTMLAttributes<HTMLLIElement>, 'onClick'> {
7
+ /**
8
+ * Flag to indicate if the component is active or not.
9
+ *
10
+ * OBS: The `active` API in the new pattern has uncontrolled behavior,
11
+ * working just like `defaultActive` as in the prop declared in the
12
+ * root component.
13
+ */
14
+ active?: boolean;
15
+ /**
16
+ * Flag to indicate if the TabPane is disabled.
17
+ */
18
+ disabled?: boolean;
19
+ /**
20
+ * This value is used to be the target of the link.
21
+ */
22
+ href?: string;
23
+ /**
24
+ * Props to be added to the item element that can be an anchor or a button.
25
+ */
26
+ innerProps?: React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>;
27
+ /**
28
+ * Callback to be used when clicking to a Tab Item.
29
+ */
30
+ onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
31
+ }
32
+ declare const Item: React.ForwardRefExoticComponent<IProps & React.RefAttributes<any>>;
33
+ export default Item;
package/lib/Item.js ADDED
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _shared = require("@clayui/shared");
8
+ var _classnames = _interopRequireDefault(require("classnames"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _excluded = ["active", "children", "className", "disabled", "href", "innerProps", "onClick"];
11
+ /**
12
+ * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
13
+ * SPDX-License-Identifier: BSD-3-Clause
14
+ */
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
17
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
18
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
19
+ var Item = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
20
+ var _ref$active = _ref.active,
21
+ active = _ref$active === void 0 ? false : _ref$active,
22
+ children = _ref.children,
23
+ className = _ref.className,
24
+ _ref$disabled = _ref.disabled,
25
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
26
+ href = _ref.href,
27
+ _ref$innerProps = _ref.innerProps,
28
+ innerProps = _ref$innerProps === void 0 ? {} : _ref$innerProps,
29
+ onClick = _ref.onClick,
30
+ otherProps = _objectWithoutProperties(_ref, _excluded);
31
+ return /*#__PURE__*/_react.default.createElement("li", _extends({}, otherProps, {
32
+ className: (0, _classnames.default)('nav-item', className),
33
+ role: "none"
34
+ }), /*#__PURE__*/_react.default.createElement(_shared.LinkOrButton, _extends({}, innerProps, {
35
+ "aria-selected": active,
36
+ buttonDisplayType: "unstyled",
37
+ buttonType: "button",
38
+ className: (0, _classnames.default)('nav-link', {
39
+ active: active,
40
+ disabled: disabled
41
+ }),
42
+ disabled: disabled,
43
+ href: href,
44
+ onClick: onClick,
45
+ ref: ref,
46
+ role: "tab",
47
+ tabIndex: !active ? -1 : 0
48
+ }), children));
49
+ });
50
+ Item.displayName = 'ClayTabsItem';
51
+ var _default = exports.default = Item;
package/lib/List.d.ts ADDED
@@ -0,0 +1,49 @@
1
+ /**
2
+ * SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>
3
+ * SPDX-License-Identifier: BSD-3-Clause
4
+ */
5
+ import { InternalDispatch } from '@clayui/shared';
6
+ import React from 'react';
7
+ export interface IProps extends React.HTMLAttributes<HTMLUListElement> {
8
+ /**
9
+ * @ignore
10
+ */
11
+ activation?: 'manual' | 'automatic';
12
+ /**
13
+ * @ignore
14
+ */
15
+ active?: React.Key;
16
+ /**
17
+ * The tabs content.
18
+ */
19
+ children: React.ReactNode;
20
+ /**
21
+ * The custom class.
22
+ */
23
+ className?: string;
24
+ /**
25
+ * @ignore
26
+ */
27
+ displayType?: null | 'basic' | 'light' | 'underline';
28
+ /**
29
+ * @ignore
30
+ */
31
+ justified?: boolean;
32
+ /**
33
+ * @ignore
34
+ */
35
+ modern?: boolean;
36
+ /**
37
+ * @ignore
38
+ */
39
+ onActiveChange?: InternalDispatch<number>;
40
+ /**
41
+ * @ignore
42
+ */
43
+ shouldUseActive?: boolean;
44
+ /**
45
+ * @ignore
46
+ */
47
+ tabsId?: string;
48
+ }
49
+ export declare const List: React.ForwardRefExoticComponent<IProps & React.RefAttributes<HTMLUListElement>>;
package/lib/List.js ADDED
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.List = void 0;
8
+ var _shared = require("@clayui/shared");
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _excluded = ["activation", "active", "children", "className", "displayType", "justified", "modern", "onActiveChange", "shouldUseActive", "tabsId"];
12
+ /**
13
+ * SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>
14
+ * SPDX-License-Identifier: BSD-3-Clause
15
+ */
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) { if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } } return n.default = e, t && t.set(e, n), n; }
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
20
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
23
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
24
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
25
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
26
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
27
+ var List = exports.List = /*#__PURE__*/_react.default.forwardRef(function List(_ref, ref) {
28
+ var activation = _ref.activation,
29
+ active = _ref.active,
30
+ children = _ref.children,
31
+ className = _ref.className,
32
+ _ref$displayType = _ref.displayType,
33
+ displayType = _ref$displayType === void 0 ? null : _ref$displayType,
34
+ justified = _ref.justified,
35
+ __ = _ref.modern,
36
+ onActiveChange = _ref.onActiveChange,
37
+ _ref$shouldUseActive = _ref.shouldUseActive,
38
+ shouldUseActive = _ref$shouldUseActive === void 0 ? false : _ref$shouldUseActive,
39
+ tabsId = _ref.tabsId,
40
+ otherProps = _objectWithoutProperties(_ref, _excluded);
41
+ var tabsRef = (0, _react.useRef)(null);
42
+ var _useNavigation = (0, _shared.useNavigation)({
43
+ activation: activation,
44
+ containerRef: tabsRef,
45
+ orientation: 'horizontal'
46
+ }),
47
+ navigationProps = _useNavigation.navigationProps;
48
+ (0, _react.useImperativeHandle)(ref, function () {
49
+ return tabsRef.current;
50
+ }, [tabsRef]);
51
+ (0, _react.useEffect)(function () {
52
+ // Internal API to maintain compatibility with the old Tabs pattern and to
53
+ // only update the initial state when the component is in
54
+ // uncontrolled mode.
55
+ if (!shouldUseActive) {
56
+ return;
57
+ }
58
+ var childrenArray = _react.default.Children.toArray(children);
59
+
60
+ // The `active` API in the new pattern has uncontrolled behavior, working
61
+ // just like defaultActive as in the prop declared in the root component.
62
+ for (var index = 0; index < childrenArray.length; index++) {
63
+ var child = childrenArray[index];
64
+ if (/*#__PURE__*/_react.default.isValidElement(child) && child.props.active) {
65
+ onActiveChange(index);
66
+ break;
67
+ }
68
+ }
69
+ }, []);
70
+ return /*#__PURE__*/_react.default.createElement("ul", _extends({}, otherProps, navigationProps, {
71
+ className: (0, _classnames.default)('nav nav-tabs', {
72
+ 'nav-justified': justified
73
+ }, _defineProperty({}, "nav-tabs-".concat(displayType), displayType === 'light'), className),
74
+ ref: tabsRef,
75
+ role: "tablist"
76
+ }), _react.default.Children.map(children, function (child, index) {
77
+ var _child$props$innerPro;
78
+ if (! /*#__PURE__*/_react.default.isValidElement(child)) {
79
+ return child;
80
+ }
81
+ return /*#__PURE__*/_react.default.cloneElement(child, {
82
+ active: !shouldUseActive && child.props.active !== undefined ? child.props.active : active === index,
83
+ innerProps: _objectSpread({
84
+ 'aria-controls': tabsId && "".concat(tabsId, "-tabpanel-").concat(index),
85
+ id: tabsId && "".concat(tabsId, "-tab-").concat(index)
86
+ }, (_child$props$innerPro = child.props.innerProps) !== null && _child$props$innerPro !== void 0 ? _child$props$innerPro : {}),
87
+ onClick: function onClick(event) {
88
+ var onClick = child.props.onClick;
89
+ if (onClick) {
90
+ onClick(event);
91
+ } else {
92
+ onActiveChange(index);
93
+ }
94
+ }
95
+ });
96
+ }));
97
+ });
98
+ List.displayName = 'ClayTabsList';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
+ * SPDX-License-Identifier: BSD-3-Clause
4
+ */
5
+ import React from 'react';
6
+ export interface ITabPaneProps extends React.HTMLAttributes<HTMLDivElement> {
7
+ /**
8
+ * Flag to indicate if `active` classname should be applied
9
+ */
10
+ active?: boolean;
11
+ /**
12
+ * Flag to indicate if `fade` classname that applies a fading animation should be applied.
13
+ */
14
+ fade?: boolean;
15
+ }
16
+ declare const TabPane: React.ForwardRefExoticComponent<ITabPaneProps & React.RefAttributes<HTMLDivElement>>;
17
+ export default TabPane;
package/lib/TabPane.js ADDED
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _classnames = _interopRequireDefault(require("classnames"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _excluded = ["active", "children", "className", "fade", "tabIndex"];
10
+ /**
11
+ * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
12
+ * SPDX-License-Identifier: BSD-3-Clause
13
+ */
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
16
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
17
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
19
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) { n[e] = r[e]; } return n; }
20
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) { ; } } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
21
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
22
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
23
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
24
+ var delay = function delay(fn) {
25
+ var val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;
26
+ return setTimeout(function () {
27
+ fn();
28
+ }, val);
29
+ };
30
+ var TabPane = /*#__PURE__*/_react.default.forwardRef(function TabPane(_ref, ref) {
31
+ var _ref$active = _ref.active,
32
+ active = _ref$active === void 0 ? false : _ref$active,
33
+ children = _ref.children,
34
+ className = _ref.className,
35
+ fade = _ref.fade,
36
+ _ref$tabIndex = _ref.tabIndex,
37
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
38
+ otherProps = _objectWithoutProperties(_ref, _excluded);
39
+ var _React$useState = _react.default.useState(active),
40
+ _React$useState2 = _slicedToArray(_React$useState, 2),
41
+ internalActive = _React$useState2[0],
42
+ setInternalActive = _React$useState2[1];
43
+ var _React$useState3 = _react.default.useState(active),
44
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
45
+ internalShow = _React$useState4[0],
46
+ setInternalShow = _React$useState4[1];
47
+ _react.default.useEffect(function () {
48
+ var delayFn = function delayFn() {
49
+ setInternalActive(true);
50
+ delay(function () {
51
+ return setInternalShow(true);
52
+ }, 50);
53
+ };
54
+ if (!active) {
55
+ setInternalShow(false);
56
+ delayFn = function delayFn() {
57
+ return setInternalActive(false);
58
+ };
59
+ }
60
+ var timer = delay(delayFn);
61
+ return function () {
62
+ clearTimeout(timer);
63
+ setInternalShow(false);
64
+ };
65
+ }, [active]);
66
+ return /*#__PURE__*/_react.default.createElement("div", _extends({}, otherProps, {
67
+ className: (0, _classnames.default)('tab-pane', {
68
+ active: internalActive,
69
+ fade: fade,
70
+ show: internalShow
71
+ }, className),
72
+ ref: ref,
73
+ role: "tabpanel",
74
+ tabIndex: tabIndex
75
+ }), children);
76
+ });
77
+ var _default = exports.default = TabPane;
package/lib/index.d.ts ADDED
@@ -0,0 +1,58 @@
1
+ /**
2
+ * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
+ * SPDX-License-Identifier: BSD-3-Clause
4
+ */
5
+ import { InternalDispatch } from '@clayui/shared';
6
+ import React from 'react';
7
+ export declare type DisplayType = null | 'basic' | 'underline';
8
+ export interface IProps extends React.HTMLAttributes<HTMLUListElement> {
9
+ /**
10
+ * Flag to indicate the navigation behavior in the tab.
11
+ *
12
+ * - manual - it will just move the focus and tab activation is done just
13
+ * by pressing space or enter.
14
+ * - automatic - moves the focus to the tab and activates the tab.
15
+ */
16
+ activation?: 'manual' | 'automatic';
17
+ /**
18
+ * The current tab active (controlled).
19
+ */
20
+ active?: number;
21
+ /**
22
+ * Initial active tab when rendering component (uncontrolled).
23
+ */
24
+ defaultActive?: number;
25
+ /**
26
+ * Determines how tab is displayed.
27
+ * @deprecated since v3.89.0 with no replacement.
28
+ */
29
+ displayType?: null | 'basic' | 'underline';
30
+ /**
31
+ * Flag to indicate if `fade` classname that applies an fading animation
32
+ * should be applied.
33
+ */
34
+ fade?: boolean;
35
+ /**
36
+ * Justify the nav items according the tab content.
37
+ */
38
+ justified?: boolean;
39
+ /**
40
+ * Applies a modern style to the tab.
41
+ * @deprecated since v3.89.0 with no replacement.
42
+ */
43
+ modern?: boolean;
44
+ /**
45
+ * Callback is called when the active tab changes (controlled).
46
+ */
47
+ onActiveChange?: InternalDispatch<number>;
48
+ }
49
+ declare function Tabs({ activation, active: externalActive, children, className, defaultActive, displayType, fade, justified, modern, onActiveChange, ...otherProps }: IProps): JSX.Element;
50
+ declare namespace Tabs {
51
+ var Content: React.ForwardRefExoticComponent<import("./Content").IProps & React.RefAttributes<HTMLDivElement>>;
52
+ var Panels: React.ForwardRefExoticComponent<import("./Content").IProps & React.RefAttributes<HTMLDivElement>>;
53
+ var Item: React.ForwardRefExoticComponent<import("./Item").IProps & React.RefAttributes<any>>;
54
+ var List: React.ForwardRefExoticComponent<import("./List").IProps & React.RefAttributes<HTMLUListElement>>;
55
+ var TabPane: React.ForwardRefExoticComponent<import("./TabPane").ITabPaneProps & React.RefAttributes<HTMLDivElement>>;
56
+ var TabPanel: React.ForwardRefExoticComponent<import("./TabPane").ITabPaneProps & React.RefAttributes<HTMLDivElement>>;
57
+ }
58
+ export default Tabs;
package/lib/index.js ADDED
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _shared = require("@clayui/shared");
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _Content = _interopRequireDefault(require("./Content"));
10
+ var _Item = _interopRequireDefault(require("./Item"));
11
+ var _List = require("./List");
12
+ var _TabPane = _interopRequireDefault(require("./TabPane"));
13
+ var _excluded = ["activation", "active", "children", "className", "defaultActive", "displayType", "fade", "justified", "modern", "onActiveChange"];
14
+ /**
15
+ * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
16
+ * SPDX-License-Identifier: BSD-3-Clause
17
+ */
18
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) { ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } } return n; }, _extends.apply(null, arguments); }
20
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
21
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
22
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
23
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) { n[e] = r[e]; } return n; }
24
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0) { ; } } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
25
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
26
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) { o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } } return i; }
27
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) { if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } } return t; }
28
+ function Tabs(_ref) {
29
+ var _left$type;
30
+ var _ref$activation = _ref.activation,
31
+ activation = _ref$activation === void 0 ? 'manual' : _ref$activation,
32
+ externalActive = _ref.active,
33
+ children = _ref.children,
34
+ className = _ref.className,
35
+ _ref$defaultActive = _ref.defaultActive,
36
+ defaultActive = _ref$defaultActive === void 0 ? 0 : _ref$defaultActive,
37
+ displayType = _ref.displayType,
38
+ _ref$fade = _ref.fade,
39
+ fade = _ref$fade === void 0 ? false : _ref$fade,
40
+ justified = _ref.justified,
41
+ _ref$modern = _ref.modern,
42
+ modern = _ref$modern === void 0 ? false : _ref$modern,
43
+ onActiveChange = _ref.onActiveChange,
44
+ otherProps = _objectWithoutProperties(_ref, _excluded);
45
+ var _useControlledState = (0, _shared.useControlledState)({
46
+ defaultName: 'defaultActive',
47
+ defaultValue: defaultActive,
48
+ handleName: 'onActiveChange',
49
+ name: 'active',
50
+ onChange: onActiveChange,
51
+ value: externalActive
52
+ }),
53
+ _useControlledState2 = _slicedToArray(_useControlledState, 3),
54
+ active = _useControlledState2[0],
55
+ setActive = _useControlledState2[1],
56
+ isUncontrolled = _useControlledState2[2];
57
+ var _React$Children$toArr = _react.default.Children.toArray(children),
58
+ _React$Children$toArr2 = _slicedToArray(_React$Children$toArr, 2),
59
+ left = _React$Children$toArr2[0],
60
+ right = _React$Children$toArr2[1];
61
+ var tabsId = (0, _shared.useId)();
62
+
63
+ // @ts-ignore
64
+ if ((left === null || left === void 0 ? void 0 : (_left$type = left.type) === null || _left$type === void 0 ? void 0 : _left$type.displayName) === 'ClayTabsList') {
65
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.cloneElement(left, {
66
+ activation: activation,
67
+ active: active,
68
+ displayType: displayType,
69
+ justified: justified,
70
+ modern: modern,
71
+ onActiveChange: setActive,
72
+ shouldUseActive: isUncontrolled,
73
+ tabsId: tabsId
74
+ }), /*#__PURE__*/_react.default.isValidElement(right) && /*#__PURE__*/_react.default.cloneElement(right, {
75
+ active: active,
76
+ fade: fade,
77
+ tabsId: tabsId
78
+ }));
79
+ }
80
+ return /*#__PURE__*/_react.default.createElement(_List.List, _extends({}, otherProps, {
81
+ activation: activation,
82
+ active: active,
83
+ className: className,
84
+ displayType: displayType,
85
+ justified: justified,
86
+ modern: modern,
87
+ onActiveChange: setActive
88
+ }), children);
89
+ }
90
+
91
+ /**
92
+ * @deprecated since v3.78.2 - Use new composition with Tabs.List and Tabs.Panels.
93
+ */
94
+ Tabs.Content = _Content.default;
95
+ Tabs.Panels = _Content.default;
96
+ Tabs.Item = _Item.default;
97
+ Tabs.List = _List.List;
98
+ Tabs.TabPane = _TabPane.default;
99
+ Tabs.TabPanel = _TabPane.default;
100
+ var _default = exports.default = Tabs;
package/package.json CHANGED
@@ -1,24 +1,21 @@
1
1
  {
2
2
  "name": "@clayui/tabs",
3
- "version": "3.141.2-alpha.0",
3
+ "version": "3.142.2",
4
4
  "description": "ClayTabs component",
5
5
  "license": "BSD-3-Clause",
6
6
  "repository": "https://github.com/liferay/clay",
7
- "main": "lib/cjs/index.js",
8
- "module": "lib/esm/index.js",
9
- "exports": {
10
- "import": "./lib/esm/index.js",
11
- "require": "./lib/cjs/index.js"
7
+ "engines": {
8
+ "node": ">=0.12.0",
9
+ "npm": ">=3.0.0"
12
10
  },
11
+ "main": "lib/index.js",
13
12
  "types": "lib/index.d.ts",
14
13
  "ts:main": "src/index.tsx",
15
14
  "files": [
16
15
  "lib"
17
16
  ],
18
17
  "scripts": {
19
- "build": "yarn build:cjs && yarn build:esm",
20
- "build:cjs": "cross-env NODE_ENV=production babel src --root-mode upward --out-dir lib/cjs --extensions .ts,.tsx",
21
- "build:esm": "cross-env NODE_ENV=production babel src --root-mode upward --out-dir lib/esm --extensions .ts,.tsx --env-name esm",
18
+ "build": "cross-env NODE_ENV=production babel src --root-mode upward --out-dir lib --extensions .ts,.tsx",
22
19
  "buildTypes": "cross-env NODE_ENV=production tsc --project ./tsconfig.declarations.json",
23
20
  "format": "prettier --write \"**/*.{js,ts,tsx,md,mdx,json,scss}\"",
24
21
  "test": "jest --config ../../jest.config.js"
@@ -28,16 +25,16 @@
28
25
  "react"
29
26
  ],
30
27
  "dependencies": {
31
- "@clayui/shared": "^3.141.2-alpha.0",
28
+ "@clayui/shared": "^3.142.0",
32
29
  "classnames": "^2.2.6"
33
30
  },
34
31
  "peerDependencies": {
35
32
  "@clayui/css": "3.x",
36
- "react": "^16.12.0",
37
- "react-dom": "^16.12.0"
33
+ "react": "^18.2.0",
34
+ "react-dom": "^18.2.0"
38
35
  },
39
36
  "browserslist": [
40
37
  "extends browserslist-config-clay"
41
38
  ],
42
- "gitHead": "aea6ecdaee62ccc374009982f934e1b193785668"
39
+ "gitHead": "23c8fd8ea81ae12b41cca8191a47c1f69ea8d1e2"
43
40
  }
@@ -1,42 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _classnames = _interopRequireDefault(require("classnames"));
8
- var _react = _interopRequireDefault(require("react"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
11
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
12
- * SPDX-License-Identifier: BSD-3-Clause
13
- */
14
- const Content = /*#__PURE__*/_react.default.forwardRef(function Content(_ref, ref) {
15
- let {
16
- active,
17
- activeIndex = 0,
18
- children,
19
- className,
20
- fade = false,
21
- tabsId,
22
- ...otherProps
23
- } = _ref;
24
- return /*#__PURE__*/_react.default.createElement("div", _extends({
25
- className: (0, _classnames.default)('tab-content', className)
26
- }, otherProps, {
27
- ref: ref
28
- }), _react.default.Children.map(children, (child, index) => {
29
- if (! /*#__PURE__*/_react.default.isValidElement(child)) {
30
- return child;
31
- }
32
- return /*#__PURE__*/_react.default.cloneElement(child, {
33
- ...child.props,
34
- active: typeof active === 'number' ? active === index : activeIndex === index,
35
- 'aria-labelledby': tabsId ? `${tabsId}-tab-${index}` : child.props['aria-labelledby'],
36
- fade,
37
- id: tabsId ? `${tabsId}-tabpanel-${index}` : child.props.id,
38
- key: index
39
- });
40
- }));
41
- });
42
- var _default = exports.default = Content;
package/lib/cjs/Item.js DELETED
@@ -1,46 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _shared = require("@clayui/shared");
8
- var _classnames = _interopRequireDefault(require("classnames"));
9
- var _react = _interopRequireDefault(require("react"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
12
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
13
- * SPDX-License-Identifier: BSD-3-Clause
14
- */
15
- const Item = /*#__PURE__*/_react.default.forwardRef((_ref, ref) => {
16
- let {
17
- active = false,
18
- children,
19
- className,
20
- disabled = false,
21
- href,
22
- innerProps = {},
23
- onClick,
24
- ...otherProps
25
- } = _ref;
26
- return /*#__PURE__*/_react.default.createElement("li", _extends({}, otherProps, {
27
- className: (0, _classnames.default)('nav-item', className),
28
- role: "none"
29
- }), /*#__PURE__*/_react.default.createElement(_shared.LinkOrButton, _extends({}, innerProps, {
30
- "aria-selected": active,
31
- buttonDisplayType: "unstyled",
32
- buttonType: "button",
33
- className: (0, _classnames.default)('nav-link', {
34
- active,
35
- disabled
36
- }),
37
- disabled: disabled,
38
- href: href,
39
- onClick: onClick,
40
- ref: ref,
41
- role: "tab",
42
- tabIndex: !active ? -1 : 0
43
- }), children));
44
- });
45
- Item.displayName = 'ClayTabsItem';
46
- var _default = exports.default = Item;
package/lib/cjs/List.js DELETED
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.List = void 0;
7
- var _shared = require("@clayui/shared");
8
- var _classnames = _interopRequireDefault(require("classnames"));
9
- var _react = _interopRequireWildcard(require("react"));
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
14
- * SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>
15
- * SPDX-License-Identifier: BSD-3-Clause
16
- */
17
- const List = exports.List = /*#__PURE__*/_react.default.forwardRef(function List(_ref, ref) {
18
- let {
19
- activation,
20
- active,
21
- children,
22
- className,
23
- displayType = null,
24
- justified,
25
- modern: __,
26
- onActiveChange,
27
- shouldUseActive = false,
28
- tabsId,
29
- ...otherProps
30
- } = _ref;
31
- const tabsRef = (0, _react.useRef)(null);
32
- const {
33
- navigationProps
34
- } = (0, _shared.useNavigation)({
35
- activation,
36
- containerRef: tabsRef,
37
- orientation: 'horizontal'
38
- });
39
- (0, _react.useImperativeHandle)(ref, () => tabsRef.current, [tabsRef]);
40
- (0, _react.useEffect)(() => {
41
- // Internal API to maintain compatibility with the old Tabs pattern and to
42
- // only update the initial state when the component is in
43
- // uncontrolled mode.
44
- if (!shouldUseActive) {
45
- return;
46
- }
47
- const childrenArray = _react.default.Children.toArray(children);
48
-
49
- // The `active` API in the new pattern has uncontrolled behavior, working
50
- // just like defaultActive as in the prop declared in the root component.
51
- for (let index = 0; index < childrenArray.length; index++) {
52
- const child = childrenArray[index];
53
- if (/*#__PURE__*/_react.default.isValidElement(child) && child.props.active) {
54
- onActiveChange(index);
55
- break;
56
- }
57
- }
58
- }, []);
59
- return /*#__PURE__*/_react.default.createElement("ul", _extends({}, otherProps, navigationProps, {
60
- className: (0, _classnames.default)('nav nav-tabs', {
61
- 'nav-justified': justified
62
- }, {
63
- [`nav-tabs-${displayType}`]: displayType === 'light'
64
- }, className),
65
- ref: tabsRef,
66
- role: "tablist"
67
- }), _react.default.Children.map(children, (child, index) => {
68
- if (! /*#__PURE__*/_react.default.isValidElement(child)) {
69
- return child;
70
- }
71
- return /*#__PURE__*/_react.default.cloneElement(child, {
72
- active: !shouldUseActive && child.props.active !== undefined ? child.props.active : active === index,
73
- innerProps: {
74
- 'aria-controls': tabsId && `${tabsId}-tabpanel-${index}`,
75
- id: tabsId && `${tabsId}-tab-${index}`,
76
- ...(child.props.innerProps ?? {})
77
- },
78
- onClick: event => {
79
- const {
80
- onClick
81
- } = child.props;
82
- if (onClick) {
83
- onClick(event);
84
- } else {
85
- onActiveChange(index);
86
- }
87
- }
88
- });
89
- }));
90
- });
91
- List.displayName = 'ClayTabsList';
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _classnames = _interopRequireDefault(require("classnames"));
8
- var _react = _interopRequireDefault(require("react"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
11
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
12
- * SPDX-License-Identifier: BSD-3-Clause
13
- */
14
- const delay = function (fn) {
15
- let val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;
16
- return setTimeout(() => {
17
- fn();
18
- }, val);
19
- };
20
- const TabPane = /*#__PURE__*/_react.default.forwardRef(function TabPane(_ref, ref) {
21
- let {
22
- active = false,
23
- children,
24
- className,
25
- fade,
26
- tabIndex = 0,
27
- ...otherProps
28
- } = _ref;
29
- const [internalActive, setInternalActive] = _react.default.useState(active);
30
- const [internalShow, setInternalShow] = _react.default.useState(active);
31
- _react.default.useEffect(() => {
32
- let delayFn = () => {
33
- setInternalActive(true);
34
- delay(() => setInternalShow(true), 50);
35
- };
36
- if (!active) {
37
- setInternalShow(false);
38
- delayFn = () => setInternalActive(false);
39
- }
40
- const timer = delay(delayFn);
41
- return () => {
42
- clearTimeout(timer);
43
- setInternalShow(false);
44
- };
45
- }, [active]);
46
- return /*#__PURE__*/_react.default.createElement("div", _extends({}, otherProps, {
47
- className: (0, _classnames.default)('tab-pane', {
48
- active: internalActive,
49
- fade,
50
- show: internalShow
51
- }, className),
52
- ref: ref,
53
- role: "tabpanel",
54
- tabIndex: tabIndex
55
- }), children);
56
- });
57
- var _default = exports.default = TabPane;
package/lib/cjs/index.js DELETED
@@ -1,80 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _shared = require("@clayui/shared");
8
- var _react = _interopRequireDefault(require("react"));
9
- var _Content = _interopRequireDefault(require("./Content"));
10
- var _Item = _interopRequireDefault(require("./Item"));
11
- var _List = require("./List");
12
- var _TabPane = _interopRequireDefault(require("./TabPane"));
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } /**
15
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
16
- * SPDX-License-Identifier: BSD-3-Clause
17
- */
18
- function Tabs(_ref) {
19
- let {
20
- activation = 'manual',
21
- active: externalActive,
22
- children,
23
- className,
24
- defaultActive = 0,
25
- displayType,
26
- fade = false,
27
- justified,
28
- modern = false,
29
- onActiveChange,
30
- ...otherProps
31
- } = _ref;
32
- const [active, setActive, isUncontrolled] = (0, _shared.useControlledState)({
33
- defaultName: 'defaultActive',
34
- defaultValue: defaultActive,
35
- handleName: 'onActiveChange',
36
- name: 'active',
37
- onChange: onActiveChange,
38
- value: externalActive
39
- });
40
- const [left, right] = _react.default.Children.toArray(children);
41
- const tabsId = (0, _shared.useId)();
42
-
43
- // @ts-ignore
44
- if (left?.type?.displayName === 'ClayTabsList') {
45
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.cloneElement(left, {
46
- activation,
47
- active,
48
- displayType,
49
- justified,
50
- modern,
51
- onActiveChange: setActive,
52
- shouldUseActive: isUncontrolled,
53
- tabsId
54
- }), /*#__PURE__*/_react.default.isValidElement(right) && /*#__PURE__*/_react.default.cloneElement(right, {
55
- active,
56
- fade,
57
- tabsId
58
- }));
59
- }
60
- return /*#__PURE__*/_react.default.createElement(_List.List, _extends({}, otherProps, {
61
- activation: activation,
62
- active: active,
63
- className: className,
64
- displayType: displayType,
65
- justified: justified,
66
- modern: modern,
67
- onActiveChange: setActive
68
- }), children);
69
- }
70
-
71
- /**
72
- * @deprecated since v3.78.2 - Use new composition with Tabs.List and Tabs.Panels.
73
- */
74
- Tabs.Content = _Content.default;
75
- Tabs.Panels = _Content.default;
76
- Tabs.Item = _Item.default;
77
- Tabs.List = _List.List;
78
- Tabs.TabPane = _TabPane.default;
79
- Tabs.TabPanel = _TabPane.default;
80
- var _default = exports.default = Tabs;
@@ -1,37 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- /**
3
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
-
7
- import classNames from 'classnames';
8
- import React from 'react';
9
- const Content = /*#__PURE__*/React.forwardRef(function Content(_ref, ref) {
10
- let {
11
- active,
12
- activeIndex = 0,
13
- children,
14
- className,
15
- fade = false,
16
- tabsId,
17
- ...otherProps
18
- } = _ref;
19
- return /*#__PURE__*/React.createElement("div", _extends({
20
- className: classNames('tab-content', className)
21
- }, otherProps, {
22
- ref: ref
23
- }), React.Children.map(children, (child, index) => {
24
- if (! /*#__PURE__*/React.isValidElement(child)) {
25
- return child;
26
- }
27
- return /*#__PURE__*/React.cloneElement(child, {
28
- ...child.props,
29
- active: typeof active === 'number' ? active === index : activeIndex === index,
30
- 'aria-labelledby': tabsId ? `${tabsId}-tab-${index}` : child.props['aria-labelledby'],
31
- fade,
32
- id: tabsId ? `${tabsId}-tabpanel-${index}` : child.props.id,
33
- key: index
34
- });
35
- }));
36
- });
37
- export default Content;
package/lib/esm/Item.js DELETED
@@ -1,41 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- /**
3
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
-
7
- import { LinkOrButton } from '@clayui/shared';
8
- import classNames from 'classnames';
9
- import React from 'react';
10
- const Item = /*#__PURE__*/React.forwardRef((_ref, ref) => {
11
- let {
12
- active = false,
13
- children,
14
- className,
15
- disabled = false,
16
- href,
17
- innerProps = {},
18
- onClick,
19
- ...otherProps
20
- } = _ref;
21
- return /*#__PURE__*/React.createElement("li", _extends({}, otherProps, {
22
- className: classNames('nav-item', className),
23
- role: "none"
24
- }), /*#__PURE__*/React.createElement(LinkOrButton, _extends({}, innerProps, {
25
- "aria-selected": active,
26
- buttonDisplayType: "unstyled",
27
- buttonType: "button",
28
- className: classNames('nav-link', {
29
- active,
30
- disabled
31
- }),
32
- disabled: disabled,
33
- href: href,
34
- onClick: onClick,
35
- ref: ref,
36
- role: "tab",
37
- tabIndex: !active ? -1 : 0
38
- }), children));
39
- });
40
- Item.displayName = 'ClayTabsItem';
41
- export default Item;
package/lib/esm/List.js DELETED
@@ -1,84 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- /**
3
- * SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
-
7
- import { useNavigation } from '@clayui/shared';
8
- import classNames from 'classnames';
9
- import React, { useEffect, useImperativeHandle, useRef } from 'react';
10
- export const List = /*#__PURE__*/React.forwardRef(function List(_ref, ref) {
11
- let {
12
- activation,
13
- active,
14
- children,
15
- className,
16
- displayType = null,
17
- justified,
18
- modern: __,
19
- onActiveChange,
20
- shouldUseActive = false,
21
- tabsId,
22
- ...otherProps
23
- } = _ref;
24
- const tabsRef = useRef(null);
25
- const {
26
- navigationProps
27
- } = useNavigation({
28
- activation,
29
- containerRef: tabsRef,
30
- orientation: 'horizontal'
31
- });
32
- useImperativeHandle(ref, () => tabsRef.current, [tabsRef]);
33
- useEffect(() => {
34
- // Internal API to maintain compatibility with the old Tabs pattern and to
35
- // only update the initial state when the component is in
36
- // uncontrolled mode.
37
- if (!shouldUseActive) {
38
- return;
39
- }
40
- const childrenArray = React.Children.toArray(children);
41
-
42
- // The `active` API in the new pattern has uncontrolled behavior, working
43
- // just like defaultActive as in the prop declared in the root component.
44
- for (let index = 0; index < childrenArray.length; index++) {
45
- const child = childrenArray[index];
46
- if (/*#__PURE__*/React.isValidElement(child) && child.props.active) {
47
- onActiveChange(index);
48
- break;
49
- }
50
- }
51
- }, []);
52
- return /*#__PURE__*/React.createElement("ul", _extends({}, otherProps, navigationProps, {
53
- className: classNames('nav nav-tabs', {
54
- 'nav-justified': justified
55
- }, {
56
- [`nav-tabs-${displayType}`]: displayType === 'light'
57
- }, className),
58
- ref: tabsRef,
59
- role: "tablist"
60
- }), React.Children.map(children, (child, index) => {
61
- if (! /*#__PURE__*/React.isValidElement(child)) {
62
- return child;
63
- }
64
- return /*#__PURE__*/React.cloneElement(child, {
65
- active: !shouldUseActive && child.props.active !== undefined ? child.props.active : active === index,
66
- innerProps: {
67
- 'aria-controls': tabsId && `${tabsId}-tabpanel-${index}`,
68
- id: tabsId && `${tabsId}-tab-${index}`,
69
- ...(child.props.innerProps ?? {})
70
- },
71
- onClick: event => {
72
- const {
73
- onClick
74
- } = child.props;
75
- if (onClick) {
76
- onClick(event);
77
- } else {
78
- onActiveChange(index);
79
- }
80
- }
81
- });
82
- }));
83
- });
84
- List.displayName = 'ClayTabsList';
@@ -1,52 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- /**
3
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
-
7
- import classNames from 'classnames';
8
- import React from 'react';
9
- const delay = function (fn) {
10
- let val = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 150;
11
- return setTimeout(() => {
12
- fn();
13
- }, val);
14
- };
15
- const TabPane = /*#__PURE__*/React.forwardRef(function TabPane(_ref, ref) {
16
- let {
17
- active = false,
18
- children,
19
- className,
20
- fade,
21
- tabIndex = 0,
22
- ...otherProps
23
- } = _ref;
24
- const [internalActive, setInternalActive] = React.useState(active);
25
- const [internalShow, setInternalShow] = React.useState(active);
26
- React.useEffect(() => {
27
- let delayFn = () => {
28
- setInternalActive(true);
29
- delay(() => setInternalShow(true), 50);
30
- };
31
- if (!active) {
32
- setInternalShow(false);
33
- delayFn = () => setInternalActive(false);
34
- }
35
- const timer = delay(delayFn);
36
- return () => {
37
- clearTimeout(timer);
38
- setInternalShow(false);
39
- };
40
- }, [active]);
41
- return /*#__PURE__*/React.createElement("div", _extends({}, otherProps, {
42
- className: classNames('tab-pane', {
43
- active: internalActive,
44
- fade,
45
- show: internalShow
46
- }, className),
47
- ref: ref,
48
- role: "tabpanel",
49
- tabIndex: tabIndex
50
- }), children);
51
- });
52
- export default TabPane;
package/lib/esm/index.js DELETED
@@ -1,75 +0,0 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- /**
3
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
4
- * SPDX-License-Identifier: BSD-3-Clause
5
- */
6
-
7
- import { useControlledState, useId } from '@clayui/shared';
8
- import React from 'react';
9
- import Content from "./Content.js";
10
- import Item from "./Item.js";
11
- import { List } from "./List.js";
12
- import TabPane from "./TabPane.js";
13
- function Tabs(_ref) {
14
- let {
15
- activation = 'manual',
16
- active: externalActive,
17
- children,
18
- className,
19
- defaultActive = 0,
20
- displayType,
21
- fade = false,
22
- justified,
23
- modern = false,
24
- onActiveChange,
25
- ...otherProps
26
- } = _ref;
27
- const [active, setActive, isUncontrolled] = useControlledState({
28
- defaultName: 'defaultActive',
29
- defaultValue: defaultActive,
30
- handleName: 'onActiveChange',
31
- name: 'active',
32
- onChange: onActiveChange,
33
- value: externalActive
34
- });
35
- const [left, right] = React.Children.toArray(children);
36
- const tabsId = useId();
37
-
38
- // @ts-ignore
39
- if (left?.type?.displayName === 'ClayTabsList') {
40
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.cloneElement(left, {
41
- activation,
42
- active,
43
- displayType,
44
- justified,
45
- modern,
46
- onActiveChange: setActive,
47
- shouldUseActive: isUncontrolled,
48
- tabsId
49
- }), /*#__PURE__*/React.isValidElement(right) && /*#__PURE__*/React.cloneElement(right, {
50
- active,
51
- fade,
52
- tabsId
53
- }));
54
- }
55
- return /*#__PURE__*/React.createElement(List, _extends({}, otherProps, {
56
- activation: activation,
57
- active: active,
58
- className: className,
59
- displayType: displayType,
60
- justified: justified,
61
- modern: modern,
62
- onActiveChange: setActive
63
- }), children);
64
- }
65
-
66
- /**
67
- * @deprecated since v3.78.2 - Use new composition with Tabs.List and Tabs.Panels.
68
- */
69
- Tabs.Content = Content;
70
- Tabs.Panels = Content;
71
- Tabs.Item = Item;
72
- Tabs.List = List;
73
- Tabs.TabPane = TabPane;
74
- Tabs.TabPanel = TabPane;
75
- export default Tabs;