@clayui/tabs 3.103.1 → 3.105.1-alpha.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.
package/lib/Content.d.ts CHANGED
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Content.js","names":["_classnames","_interopRequireDefault","require","_react","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","_typeof","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","Content","React","forwardRef","_ref","ref","active","_ref$activeIndex","activeIndex","children","className","_ref$fade","fade","tabsId","otherProps","createElement","classNames","Children","map","child","index","isValidElement","cloneElement","props","concat","id","_default","exports"],"sources":["../src/Content.tsx"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport classNames from 'classnames';\nimport React from 'react';\n\nexport interface IProps extends React.HTMLAttributes<HTMLDivElement> {\n\t/**\n\t * @ignore\n\t */\n\tactive?: React.Key;\n\n\t/**\n\t * Receives a number that indicates the `tabkey` to be rendered.\n\t * @deprecated since v3.78.2 - No longer needed in new composition.\n\t */\n\tactiveIndex?: number;\n\n\t/**\n\t * Children elements received from ClayTabs.Content component.\n\t */\n\tchildren: React.ReactNode;\n\n\t/**\n\t * Flag to indicate if `fade` classname that applies an fading animation should be applied.\n\t */\n\tfade?: boolean;\n\n\t/**\n\t * @ignore\n\t */\n\ttabsId?: string;\n}\n\nconst Content = React.forwardRef<HTMLDivElement, IProps>(function Content(\n\t{\n\t\tactive,\n\t\tactiveIndex = 0,\n\t\tchildren,\n\t\tclassName,\n\t\tfade = false,\n\t\ttabsId,\n\t\t...otherProps\n\t},\n\tref\n) {\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames('tab-content', className)}\n\t\t\t{...otherProps}\n\t\t\tref={ref}\n\t\t>\n\t\t\t{React.Children.map(children, (child, index) => {\n\t\t\t\tif (!React.isValidElement(child)) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\n\t\t\t\treturn React.cloneElement(child, {\n\t\t\t\t\t...child.props,\n\t\t\t\t\tactive:\n\t\t\t\t\t\ttypeof active === 'number'\n\t\t\t\t\t\t\t? active === index\n\t\t\t\t\t\t\t: activeIndex === index,\n\t\t\t\t\t'aria-labelledby': tabsId\n\t\t\t\t\t\t? `${tabsId}-tab-${index}`\n\t\t\t\t\t\t: child.props['aria-labelledby'],\n\t\t\t\t\tfade,\n\t\t\t\t\tid: tabsId ? `${tabsId}-tabpanel-${index}` : child.props.id,\n\t\t\t\t\tkey: index,\n\t\t\t\t});\n\t\t\t})}\n\t\t</div>\n\t);\n});\n\nexport default Content;\n"],"mappings":"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"}
package/lib/Item.d.ts CHANGED
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Item.js","names":["_shared","require","_classnames","_interopRequireDefault","_react","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","Item","React","forwardRef","_ref","ref","_ref$active","active","children","className","_ref$disabled","disabled","href","_ref$innerProps","innerProps","onClick","otherProps","createElement","classNames","role","LinkOrButton","buttonDisplayType","buttonType","tabIndex","displayName","_default","exports"],"sources":["../src/Item.tsx"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {LinkOrButton} from '@clayui/shared';\nimport classNames from 'classnames';\nimport React from 'react';\n\nexport interface IProps\n\textends Omit<React.HTMLAttributes<HTMLLIElement>, 'onClick'> {\n\t/**\n\t * Flag to indicate if the component is active or not.\n\t *\n\t * OBS: The `active` API in the new pattern has uncontrolled behavior,\n\t * working just like `defaultActive` as in the prop declared in the\n\t * root component.\n\t */\n\tactive?: boolean;\n\n\t/**\n\t * Flag to indicate if the TabPane is disabled.\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * This value is used to be the target of the link.\n\t */\n\thref?: string;\n\n\t/**\n\t * Props to be added to the item element that can be an anchor or a button.\n\t */\n\tinnerProps?: React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>;\n\n\t/**\n\t * Callback to be used when clicking to a Tab Item.\n\t */\n\tonClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}\n\nconst Item = React.forwardRef<any, IProps>(\n\t(\n\t\t{\n\t\t\tactive = false,\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tdisabled = false,\n\t\t\thref,\n\t\t\tinnerProps = {},\n\t\t\tonClick,\n\t\t\t...otherProps\n\t\t}: IProps,\n\t\tref\n\t) => (\n\t\t<li\n\t\t\t{...otherProps}\n\t\t\tclassName={classNames('nav-item', className)}\n\t\t\trole=\"none\"\n\t\t>\n\t\t\t<LinkOrButton\n\t\t\t\t{...innerProps}\n\t\t\t\taria-selected={active}\n\t\t\t\tbuttonDisplayType=\"unstyled\"\n\t\t\t\tbuttonType=\"button\"\n\t\t\t\tclassName={classNames('nav-link', {\n\t\t\t\t\tactive,\n\t\t\t\t\tdisabled,\n\t\t\t\t})}\n\t\t\t\tdata-testid=\"tabItem\"\n\t\t\t\tdisabled={disabled}\n\t\t\t\thref={href}\n\t\t\t\tonClick={onClick}\n\t\t\t\tref={ref}\n\t\t\t\trole=\"tab\"\n\t\t\t\ttabIndex={!active ? -1 : 0}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</LinkOrButton>\n\t\t</li>\n\t)\n);\n\nItem.displayName = 'ClayTabsItem';\n\nexport default Item;\n"],"mappings":"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"}
package/lib/List.d.ts CHANGED
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"List.js","names":["_shared","require","_classnames","_interopRequireDefault","_react","_interopRequireWildcard","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","_extends","assign","bind","target","i","arguments","length","source","apply","ownKeys","e","r","t","keys","getOwnPropertySymbols","o","filter","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","List","React","forwardRef","_ref","ref","activation","active","children","className","_ref$displayType","displayType","justified","__","modern","onActiveChange","_ref$shouldUseActive","shouldUseActive","tabsId","otherProps","tabsRef","useRef","_useNavigation","useNavigation","containerRef","orientation","navigationProps","useImperativeHandle","current","useEffect","childrenArray","Children","toArray","index","child","isValidElement","props","createElement","classNames","concat","role","map","_child$props$innerPro","cloneElement","innerProps","id","onClick","event","exports","displayName"],"sources":["../src/List.tsx"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {InternalDispatch, useNavigation} from '@clayui/shared';\nimport classNames from 'classnames';\nimport React, {useEffect, useImperativeHandle, useRef} from 'react';\n\nexport interface IProps extends React.HTMLAttributes<HTMLUListElement> {\n\t/**\n\t * @ignore\n\t */\n\tactivation?: 'manual' | 'automatic';\n\n\t/**\n\t * @ignore\n\t */\n\tactive?: React.Key;\n\n\t/**\n\t * The tabs content.\n\t */\n\tchildren: React.ReactNode;\n\n\t/**\n\t * The custom class.\n\t */\n\tclassName?: string;\n\n\t/**\n\t * @ignore\n\t */\n\tdisplayType?: null | 'basic' | 'light' | 'underline';\n\n\t/**\n\t * @ignore\n\t */\n\tjustified?: boolean;\n\n\t/**\n\t * @ignore\n\t */\n\tmodern?: boolean;\n\n\t/**\n\t * @ignore\n\t */\n\tonActiveChange?: InternalDispatch<number>;\n\n\t/**\n\t * @ignore\n\t */\n\tshouldUseActive?: boolean;\n\n\t/**\n\t * @ignore\n\t */\n\ttabsId?: string;\n}\n\nexport const List = React.forwardRef<HTMLUListElement, IProps>(function List(\n\t{\n\t\tactivation,\n\t\tactive,\n\t\tchildren,\n\t\tclassName,\n\t\tdisplayType = null,\n\t\tjustified,\n\t\tmodern: __,\n\t\tonActiveChange,\n\t\tshouldUseActive = false,\n\t\ttabsId,\n\t\t...otherProps\n\t},\n\tref\n) {\n\tconst tabsRef = useRef<HTMLUListElement>(null);\n\n\tconst {navigationProps} = useNavigation({\n\t\tactivation,\n\t\tcontainerRef: tabsRef,\n\t\torientation: 'horizontal',\n\t});\n\n\tuseImperativeHandle(ref, () => tabsRef.current!, [tabsRef]);\n\n\tuseEffect(() => {\n\t\t// Internal API to maintain compatibility with the old Tabs pattern and to\n\t\t// only update the initial state when the component is in\n\t\t// uncontrolled mode.\n\t\tif (!shouldUseActive) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst childrenArray = React.Children.toArray(children);\n\n\t\t// The `active` API in the new pattern has uncontrolled behavior, working\n\t\t// just like defaultActive as in the prop declared in the root component.\n\t\tfor (let index = 0; index < childrenArray.length; index++) {\n\t\t\tconst child = childrenArray[index];\n\n\t\t\tif (React.isValidElement(child) && child.props.active) {\n\t\t\t\tonActiveChange!(index);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}, []);\n\n\treturn (\n\t\t<ul\n\t\t\t{...otherProps}\n\t\t\t{...navigationProps}\n\t\t\tclassName={classNames(\n\t\t\t\t'nav nav-tabs',\n\t\t\t\t{'nav-justified': justified},\n\t\t\t\t{[`nav-tabs-${displayType}`]: displayType === 'light'},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tref={tabsRef}\n\t\t\trole=\"tablist\"\n\t\t>\n\t\t\t{React.Children.map(children, (child, index) => {\n\t\t\t\tif (!React.isValidElement(child)) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\n\t\t\t\treturn React.cloneElement(child as React.ReactElement, {\n\t\t\t\t\tactive:\n\t\t\t\t\t\t!shouldUseActive &&\n\t\t\t\t\t\t(child as React.ReactElement).props.active !== undefined\n\t\t\t\t\t\t\t? (child as React.ReactElement).props.active\n\t\t\t\t\t\t\t: active === index,\n\t\t\t\t\tinnerProps: {\n\t\t\t\t\t\t'aria-controls':\n\t\t\t\t\t\t\ttabsId && `${tabsId}-tabpanel-${index}`,\n\t\t\t\t\t\tid: tabsId && `${tabsId}-tab-${index}`,\n\t\t\t\t\t\t...(child.props.innerProps ?? {}),\n\t\t\t\t\t},\n\t\t\t\t\tonClick: (\n\t\t\t\t\t\tevent: React.MouseEvent<HTMLButtonElement, MouseEvent>\n\t\t\t\t\t) => {\n\t\t\t\t\t\tconst {onClick} = (child as React.ReactElement).props;\n\n\t\t\t\t\t\tif (onClick) {\n\t\t\t\t\t\t\tonClick(event);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tonActiveChange!(index);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t})}\n\t\t</ul>\n\t);\n});\n\nList.displayName = 'ClayTabsList';\n"],"mappings":"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"}
package/lib/TabPane.d.ts CHANGED
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabPane.js","names":["_classnames","_interopRequireDefault","require","_react","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","delay","fn","val","undefined","setTimeout","TabPane","React","forwardRef","_ref","ref","_ref$active","active","children","className","fade","_ref$tabIndex","tabIndex","otherProps","_React$useState","useState","_React$useState2","internalActive","setInternalActive","_React$useState3","_React$useState4","internalShow","setInternalShow","useEffect","delayFn","timer","clearTimeout","createElement","classNames","show","role","_default","exports"],"sources":["../src/TabPane.tsx"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport classNames from 'classnames';\nimport React from 'react';\n\nexport interface ITabPaneProps extends React.HTMLAttributes<HTMLDivElement> {\n\t/**\n\t * Flag to indicate if `active` classname should be applied\n\t */\n\tactive?: boolean;\n\n\t/**\n\t * Flag to indicate if `fade` classname that applies a fading animation should be applied.\n\t */\n\tfade?: boolean;\n}\n\nconst delay = (fn: Function, val: number = 150) =>\n\tsetTimeout(() => {\n\t\tfn();\n\t}, val);\n\nconst TabPane = React.forwardRef<HTMLDivElement, ITabPaneProps>(\n\tfunction TabPane(\n\t\t{\n\t\t\tactive = false,\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tfade,\n\t\t\ttabIndex = 0,\n\t\t\t...otherProps\n\t\t},\n\t\tref\n\t) {\n\t\tconst [internalActive, setInternalActive] = React.useState(active);\n\t\tconst [internalShow, setInternalShow] = React.useState(active);\n\n\t\tReact.useEffect(() => {\n\t\t\tlet delayFn = () => {\n\t\t\t\tsetInternalActive(true);\n\n\t\t\t\tdelay(() => setInternalShow(true), 50);\n\t\t\t};\n\n\t\t\tif (!active) {\n\t\t\t\tsetInternalShow(false);\n\n\t\t\t\tdelayFn = () => setInternalActive(false);\n\t\t\t}\n\n\t\t\tconst timer = delay(delayFn);\n\n\t\t\treturn () => {\n\t\t\t\tclearTimeout(timer);\n\n\t\t\t\tsetInternalShow(false);\n\t\t\t};\n\t\t}, [active]);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\t{...otherProps}\n\t\t\t\tclassName={classNames(\n\t\t\t\t\t'tab-pane',\n\t\t\t\t\t{\n\t\t\t\t\t\tactive: internalActive,\n\t\t\t\t\t\tfade,\n\t\t\t\t\t\tshow: internalShow,\n\t\t\t\t\t},\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\tref={ref}\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\ttabIndex={tabIndex}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nexport default TabPane;\n"],"mappings":"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"}
package/lib/index.d.ts CHANGED
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_shared","require","_react","_interopRequireDefault","_Content","_Item","_List","_TabPane","_excluded","obj","__esModule","default","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","toString","slice","constructor","name","Array","from","test","len","arr2","r","l","t","Symbol","iterator","e","u","a","f","next","done","push","value","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","ClayTabs","_ref","_left$type","_ref$activation","activation","externalActive","active","children","className","_ref$defaultActive","defaultActive","displayType","_ref$fade","fade","justified","_ref$modern","modern","onActiveChange","otherProps","_useControlledState","useControlledState","defaultName","defaultValue","handleName","onChange","_useControlledState2","setActive","isUncontrolled","_React$Children$toArr","React","Children","toArray","_React$Children$toArr2","left","right","tabsId","useId","type","displayName","createElement","Fragment","cloneElement","shouldUseActive","isValidElement","List","Content","Panels","Item","TabPane","TabPanel","_default","exports"],"sources":["../src/index.tsx"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nimport {InternalDispatch, useControlledState, useId} from '@clayui/shared';\nimport React from 'react';\n\nimport Content from './Content';\nimport Item from './Item';\nimport {List} from './List';\nimport TabPane from './TabPane';\n\nexport type DisplayType = null | 'basic' | 'underline';\n\nexport interface IProps extends React.HTMLAttributes<HTMLUListElement> {\n\t/**\n\t * Flag to indicate the navigation behavior in the tab.\n\t *\n\t * - manual - it will just move the focus and tab activation is done just\n\t * by pressing space or enter.\n\t * - automatic - moves the focus to the tab and activates the tab.\n\t */\n\tactivation?: 'manual' | 'automatic';\n\n\t/**\n\t * The current tab active (controlled).\n\t */\n\tactive?: number;\n\n\t/**\n\t * Initial active tab when rendering component (uncontrolled).\n\t */\n\tdefaultActive?: number;\n\n\t/**\n\t * Determines how tab is displayed.\n\t * @deprecated since v3.89.0 with no replacement.\n\t */\n\tdisplayType?: DisplayType;\n\n\t/**\n\t * Flag to indicate if `fade` classname that applies an fading animation\n\t * should be applied.\n\t */\n\tfade?: boolean;\n\n\t/**\n\t * Justify the nav items according the tab content.\n\t */\n\tjustified?: boolean;\n\n\t/**\n\t * Applies a modern style to the tab.\n\t * @deprecated since v3.89.0 with no replacement.\n\t */\n\tmodern?: boolean;\n\n\t/**\n\t * Callback is called when the active tab changes (controlled).\n\t */\n\tonActiveChange?: InternalDispatch<number>;\n}\n\nfunction ClayTabs(props: IProps): JSX.Element & {\n\tContent: typeof Content;\n\tItem: typeof Item;\n\tList: typeof List;\n\tPanels: typeof Content;\n\tTabPane: typeof TabPane;\n\tTabPanel: typeof TabPane;\n};\n\nfunction ClayTabs({\n\tactivation = 'manual',\n\tactive: externalActive,\n\tchildren,\n\tclassName,\n\tdefaultActive = 0,\n\tdisplayType,\n\tfade = false,\n\tjustified,\n\tmodern = false,\n\tonActiveChange,\n\t...otherProps\n}: IProps) {\n\tconst [active, setActive, isUncontrolled] = useControlledState({\n\t\tdefaultName: 'defaultActive',\n\t\tdefaultValue: defaultActive,\n\t\thandleName: 'onActiveChange',\n\t\tname: 'active',\n\t\tonChange: onActiveChange,\n\t\tvalue: externalActive,\n\t});\n\n\tconst [left, right] = React.Children.toArray(children);\n\n\tconst tabsId = useId();\n\n\t// @ts-ignore\n\tif (left?.type?.displayName === 'ClayTabsList') {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{React.cloneElement(left as React.ReactElement, {\n\t\t\t\t\tactivation,\n\t\t\t\t\tactive,\n\t\t\t\t\tdisplayType,\n\t\t\t\t\tjustified,\n\t\t\t\t\tmodern,\n\t\t\t\t\tonActiveChange: setActive,\n\t\t\t\t\tshouldUseActive: isUncontrolled,\n\t\t\t\t\ttabsId,\n\t\t\t\t})}\n\n\t\t\t\t{React.isValidElement(right) &&\n\t\t\t\t\tReact.cloneElement(right as React.ReactElement, {\n\t\t\t\t\t\tactive,\n\t\t\t\t\t\tfade,\n\t\t\t\t\t\ttabsId,\n\t\t\t\t\t})}\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<List\n\t\t\t{...otherProps}\n\t\t\tactivation={activation}\n\t\t\tactive={active}\n\t\t\tclassName={className}\n\t\t\tdisplayType={displayType}\n\t\t\tjustified={justified}\n\t\t\tmodern={modern}\n\t\t\tonActiveChange={setActive}\n\t\t>\n\t\t\t{children}\n\t\t</List>\n\t);\n}\n\n/**\n * @deprecated since v3.78.2 - Use new composition with Tabs.List and Tabs.Panels.\n */\nClayTabs.Content = Content;\n\nClayTabs.Panels = Content;\nClayTabs.Item = Item;\nClayTabs.List = List;\nClayTabs.TabPane = TabPane;\nClayTabs.TabPanel = TabPane;\n\nexport default ClayTabs;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clayui/tabs",
3
- "version": "3.103.1",
3
+ "version": "3.105.1-alpha.0",
4
4
  "description": "ClayTabs component",
5
5
  "license": "BSD-3-Clause",
6
6
  "repository": "https://github.com/liferay/clay",
@@ -12,8 +12,7 @@
12
12
  "types": "lib/index.d.ts",
13
13
  "ts:main": "src/index.tsx",
14
14
  "files": [
15
- "lib",
16
- "src"
15
+ "lib"
17
16
  ],
18
17
  "scripts": {
19
18
  "build": "cross-env NODE_ENV=production babel src --root-mode upward --out-dir lib --extensions .ts,.tsx",
@@ -26,7 +25,7 @@
26
25
  "react"
27
26
  ],
28
27
  "dependencies": {
29
- "@clayui/shared": "^3.103.1",
28
+ "@clayui/shared": "^3.105.1-alpha.0",
30
29
  "classnames": "^2.2.6"
31
30
  },
32
31
  "peerDependencies": {
@@ -37,5 +36,5 @@
37
36
  "browserslist": [
38
37
  "extends browserslist-config-clay"
39
38
  ],
40
- "gitHead": "cd95e9b9561858fb6832a524a2a0b0304a500d3f"
39
+ "gitHead": "0a2003a935bf5c37ffc4c07618552bbebabe13b9"
41
40
  }
package/src/Content.tsx DELETED
@@ -1,78 +0,0 @@
1
- /**
2
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
- * SPDX-License-Identifier: BSD-3-Clause
4
- */
5
-
6
- import classNames from 'classnames';
7
- import React from 'react';
8
-
9
- export interface IProps extends React.HTMLAttributes<HTMLDivElement> {
10
- /**
11
- * @ignore
12
- */
13
- active?: React.Key;
14
-
15
- /**
16
- * Receives a number that indicates the `tabkey` to be rendered.
17
- * @deprecated since v3.78.2 - No longer needed in new composition.
18
- */
19
- activeIndex?: number;
20
-
21
- /**
22
- * Children elements received from ClayTabs.Content component.
23
- */
24
- children: React.ReactNode;
25
-
26
- /**
27
- * Flag to indicate if `fade` classname that applies an fading animation should be applied.
28
- */
29
- fade?: boolean;
30
-
31
- /**
32
- * @ignore
33
- */
34
- tabsId?: string;
35
- }
36
-
37
- const Content = React.forwardRef<HTMLDivElement, IProps>(function Content(
38
- {
39
- active,
40
- activeIndex = 0,
41
- children,
42
- className,
43
- fade = false,
44
- tabsId,
45
- ...otherProps
46
- },
47
- ref
48
- ) {
49
- return (
50
- <div
51
- className={classNames('tab-content', className)}
52
- {...otherProps}
53
- ref={ref}
54
- >
55
- {React.Children.map(children, (child, index) => {
56
- if (!React.isValidElement(child)) {
57
- return child;
58
- }
59
-
60
- return React.cloneElement(child, {
61
- ...child.props,
62
- active:
63
- typeof active === 'number'
64
- ? active === index
65
- : activeIndex === index,
66
- 'aria-labelledby': tabsId
67
- ? `${tabsId}-tab-${index}`
68
- : child.props['aria-labelledby'],
69
- fade,
70
- id: tabsId ? `${tabsId}-tabpanel-${index}` : child.props.id,
71
- key: index,
72
- });
73
- })}
74
- </div>
75
- );
76
- });
77
-
78
- export default Content;
package/src/Item.tsx DELETED
@@ -1,86 +0,0 @@
1
- /**
2
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
- * SPDX-License-Identifier: BSD-3-Clause
4
- */
5
-
6
- import {LinkOrButton} from '@clayui/shared';
7
- import classNames from 'classnames';
8
- import React from 'react';
9
-
10
- export interface IProps
11
- extends Omit<React.HTMLAttributes<HTMLLIElement>, 'onClick'> {
12
- /**
13
- * Flag to indicate if the component is active or not.
14
- *
15
- * OBS: The `active` API in the new pattern has uncontrolled behavior,
16
- * working just like `defaultActive` as in the prop declared in the
17
- * root component.
18
- */
19
- active?: boolean;
20
-
21
- /**
22
- * Flag to indicate if the TabPane is disabled.
23
- */
24
- disabled?: boolean;
25
-
26
- /**
27
- * This value is used to be the target of the link.
28
- */
29
- href?: string;
30
-
31
- /**
32
- * Props to be added to the item element that can be an anchor or a button.
33
- */
34
- innerProps?: React.HTMLAttributes<HTMLAnchorElement | HTMLButtonElement>;
35
-
36
- /**
37
- * Callback to be used when clicking to a Tab Item.
38
- */
39
- onClick?: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
40
- }
41
-
42
- const Item = React.forwardRef<any, IProps>(
43
- (
44
- {
45
- active = false,
46
- children,
47
- className,
48
- disabled = false,
49
- href,
50
- innerProps = {},
51
- onClick,
52
- ...otherProps
53
- }: IProps,
54
- ref
55
- ) => (
56
- <li
57
- {...otherProps}
58
- className={classNames('nav-item', className)}
59
- role="none"
60
- >
61
- <LinkOrButton
62
- {...innerProps}
63
- aria-selected={active}
64
- buttonDisplayType="unstyled"
65
- buttonType="button"
66
- className={classNames('nav-link', {
67
- active,
68
- disabled,
69
- })}
70
- data-testid="tabItem"
71
- disabled={disabled}
72
- href={href}
73
- onClick={onClick}
74
- ref={ref}
75
- role="tab"
76
- tabIndex={!active ? -1 : 0}
77
- >
78
- {children}
79
- </LinkOrButton>
80
- </li>
81
- )
82
- );
83
-
84
- Item.displayName = 'ClayTabsItem';
85
-
86
- export default Item;
package/src/List.tsx DELETED
@@ -1,157 +0,0 @@
1
- /**
2
- * SPDX-FileCopyrightText: © 2022 Liferay, Inc. <https://liferay.com>
3
- * SPDX-License-Identifier: BSD-3-Clause
4
- */
5
-
6
- import {InternalDispatch, useNavigation} from '@clayui/shared';
7
- import classNames from 'classnames';
8
- import React, {useEffect, useImperativeHandle, useRef} from 'react';
9
-
10
- export interface IProps extends React.HTMLAttributes<HTMLUListElement> {
11
- /**
12
- * @ignore
13
- */
14
- activation?: 'manual' | 'automatic';
15
-
16
- /**
17
- * @ignore
18
- */
19
- active?: React.Key;
20
-
21
- /**
22
- * The tabs content.
23
- */
24
- children: React.ReactNode;
25
-
26
- /**
27
- * The custom class.
28
- */
29
- className?: string;
30
-
31
- /**
32
- * @ignore
33
- */
34
- displayType?: null | 'basic' | 'light' | 'underline';
35
-
36
- /**
37
- * @ignore
38
- */
39
- justified?: boolean;
40
-
41
- /**
42
- * @ignore
43
- */
44
- modern?: boolean;
45
-
46
- /**
47
- * @ignore
48
- */
49
- onActiveChange?: InternalDispatch<number>;
50
-
51
- /**
52
- * @ignore
53
- */
54
- shouldUseActive?: boolean;
55
-
56
- /**
57
- * @ignore
58
- */
59
- tabsId?: string;
60
- }
61
-
62
- export const List = React.forwardRef<HTMLUListElement, IProps>(function List(
63
- {
64
- activation,
65
- active,
66
- children,
67
- className,
68
- displayType = null,
69
- justified,
70
- modern: __,
71
- onActiveChange,
72
- shouldUseActive = false,
73
- tabsId,
74
- ...otherProps
75
- },
76
- ref
77
- ) {
78
- const tabsRef = useRef<HTMLUListElement>(null);
79
-
80
- const {navigationProps} = useNavigation({
81
- activation,
82
- containerRef: tabsRef,
83
- orientation: 'horizontal',
84
- });
85
-
86
- useImperativeHandle(ref, () => tabsRef.current!, [tabsRef]);
87
-
88
- useEffect(() => {
89
- // Internal API to maintain compatibility with the old Tabs pattern and to
90
- // only update the initial state when the component is in
91
- // uncontrolled mode.
92
- if (!shouldUseActive) {
93
- return;
94
- }
95
-
96
- const childrenArray = React.Children.toArray(children);
97
-
98
- // The `active` API in the new pattern has uncontrolled behavior, working
99
- // just like defaultActive as in the prop declared in the root component.
100
- for (let index = 0; index < childrenArray.length; index++) {
101
- const child = childrenArray[index];
102
-
103
- if (React.isValidElement(child) && child.props.active) {
104
- onActiveChange!(index);
105
- break;
106
- }
107
- }
108
- }, []);
109
-
110
- return (
111
- <ul
112
- {...otherProps}
113
- {...navigationProps}
114
- className={classNames(
115
- 'nav nav-tabs',
116
- {'nav-justified': justified},
117
- {[`nav-tabs-${displayType}`]: displayType === 'light'},
118
- className
119
- )}
120
- ref={tabsRef}
121
- role="tablist"
122
- >
123
- {React.Children.map(children, (child, index) => {
124
- if (!React.isValidElement(child)) {
125
- return child;
126
- }
127
-
128
- return React.cloneElement(child as React.ReactElement, {
129
- active:
130
- !shouldUseActive &&
131
- (child as React.ReactElement).props.active !== undefined
132
- ? (child as React.ReactElement).props.active
133
- : active === index,
134
- innerProps: {
135
- 'aria-controls':
136
- tabsId && `${tabsId}-tabpanel-${index}`,
137
- id: tabsId && `${tabsId}-tab-${index}`,
138
- ...(child.props.innerProps ?? {}),
139
- },
140
- onClick: (
141
- event: React.MouseEvent<HTMLButtonElement, MouseEvent>
142
- ) => {
143
- const {onClick} = (child as React.ReactElement).props;
144
-
145
- if (onClick) {
146
- onClick(event);
147
- } else {
148
- onActiveChange!(index);
149
- }
150
- },
151
- });
152
- })}
153
- </ul>
154
- );
155
- });
156
-
157
- List.displayName = 'ClayTabsList';
package/src/TabPane.tsx DELETED
@@ -1,85 +0,0 @@
1
- /**
2
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
- * SPDX-License-Identifier: BSD-3-Clause
4
- */
5
-
6
- import classNames from 'classnames';
7
- import React from 'react';
8
-
9
- export interface ITabPaneProps extends React.HTMLAttributes<HTMLDivElement> {
10
- /**
11
- * Flag to indicate if `active` classname should be applied
12
- */
13
- active?: boolean;
14
-
15
- /**
16
- * Flag to indicate if `fade` classname that applies a fading animation should be applied.
17
- */
18
- fade?: boolean;
19
- }
20
-
21
- const delay = (fn: Function, val: number = 150) =>
22
- setTimeout(() => {
23
- fn();
24
- }, val);
25
-
26
- const TabPane = React.forwardRef<HTMLDivElement, ITabPaneProps>(
27
- function TabPane(
28
- {
29
- active = false,
30
- children,
31
- className,
32
- fade,
33
- tabIndex = 0,
34
- ...otherProps
35
- },
36
- ref
37
- ) {
38
- const [internalActive, setInternalActive] = React.useState(active);
39
- const [internalShow, setInternalShow] = React.useState(active);
40
-
41
- React.useEffect(() => {
42
- let delayFn = () => {
43
- setInternalActive(true);
44
-
45
- delay(() => setInternalShow(true), 50);
46
- };
47
-
48
- if (!active) {
49
- setInternalShow(false);
50
-
51
- delayFn = () => setInternalActive(false);
52
- }
53
-
54
- const timer = delay(delayFn);
55
-
56
- return () => {
57
- clearTimeout(timer);
58
-
59
- setInternalShow(false);
60
- };
61
- }, [active]);
62
-
63
- return (
64
- <div
65
- {...otherProps}
66
- className={classNames(
67
- 'tab-pane',
68
- {
69
- active: internalActive,
70
- fade,
71
- show: internalShow,
72
- },
73
- className
74
- )}
75
- ref={ref}
76
- role="tabpanel"
77
- tabIndex={tabIndex}
78
- >
79
- {children}
80
- </div>
81
- );
82
- }
83
- );
84
-
85
- export default TabPane;
@@ -1,93 +0,0 @@
1
- // Jest Snapshot v1, https://goo.gl/fbAQLP
2
-
3
- exports[`ClayTabs renders 1`] = `
4
- <div>
5
- <ul
6
- class="nav nav-tabs"
7
- role="tablist"
8
- />
9
- </div>
10
- `;
11
-
12
- exports[`ClayTabs renders with items 1`] = `
13
- <div>
14
- <ul
15
- class="nav nav-tabs"
16
- role="tablist"
17
- >
18
- <li
19
- class="nav-item"
20
- role="none"
21
- >
22
- <button
23
- aria-selected="true"
24
- class="nav-link active btn btn-unstyled"
25
- data-testid="tabItem"
26
- role="tab"
27
- tabindex="0"
28
- type="button"
29
- >
30
- Dummy1
31
- </button>
32
- </li>
33
- <li
34
- class="nav-item"
35
- data-testid="tabItem2"
36
- role="none"
37
- >
38
- <button
39
- aria-selected="false"
40
- class="nav-link btn btn-unstyled"
41
- data-testid="tabItem"
42
- role="tab"
43
- tabindex="-1"
44
- type="button"
45
- >
46
- Dummy2
47
- </button>
48
- </li>
49
- <li
50
- class="nav-item"
51
- role="none"
52
- >
53
- <button
54
- aria-selected="false"
55
- class="nav-link btn btn-unstyled"
56
- data-testid="tabItem"
57
- role="tab"
58
- tabindex="-1"
59
- type="button"
60
- >
61
- Dummy3
62
- </button>
63
- </li>
64
- </ul>
65
- <div
66
- class="tab-content"
67
- >
68
- <div
69
- class="tab-pane active show"
70
- data-testid="tabPane1"
71
- role="tabpanel"
72
- tabindex="0"
73
- >
74
- Tab Content 1
75
- </div>
76
- <div
77
- class="tab-pane"
78
- data-testid="tabPane2"
79
- role="tabpanel"
80
- tabindex="0"
81
- >
82
- Tab Content 2
83
- </div>
84
- <div
85
- class="tab-pane"
86
- role="tabpanel"
87
- tabindex="0"
88
- >
89
- Tab Content 3
90
- </div>
91
- </div>
92
- </div>
93
- `;
@@ -1,216 +0,0 @@
1
- /**
2
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
- * SPDX-License-Identifier: BSD-3-Clause
4
- */
5
-
6
- import '@testing-library/jest-dom/extend-expect';
7
- import ClayTabs from '..';
8
- import {cleanup, fireEvent, render} from '@testing-library/react';
9
- import React from 'react';
10
-
11
- const ClayTabsWithItems = () => {
12
- const [active, setActive] = React.useState<number>(0);
13
-
14
- return (
15
- <>
16
- <ClayTabs active={active} onActiveChange={setActive}>
17
- <ClayTabs.Item>Dummy1</ClayTabs.Item>
18
- <ClayTabs.Item data-testid="tabItem2">Dummy2</ClayTabs.Item>
19
- <ClayTabs.Item>Dummy3</ClayTabs.Item>
20
- </ClayTabs>
21
- <ClayTabs.Content activeIndex={active}>
22
- <ClayTabs.TabPane data-testid="tabPane1">
23
- Tab Content 1
24
- </ClayTabs.TabPane>
25
- <ClayTabs.TabPane data-testid="tabPane2">
26
- Tab Content 2
27
- </ClayTabs.TabPane>
28
- <ClayTabs.TabPane>Tab Content 3</ClayTabs.TabPane>
29
- </ClayTabs.Content>
30
- </>
31
- );
32
- };
33
-
34
- describe('ClayTabs', () => {
35
- afterEach(cleanup);
36
-
37
- it('renders', () => {
38
- const {container} = render(<ClayTabs />);
39
-
40
- expect(container).toMatchSnapshot();
41
- });
42
-
43
- it('renders justifying nav items', () => {
44
- const {container} = render(<ClayTabs justified />);
45
-
46
- expect(container.querySelector('.nav.nav-justified')).toBeTruthy();
47
- });
48
-
49
- xit('renders with displayType prop nav items', () => {
50
- const {container} = render(<ClayTabs displayType="underline" />);
51
-
52
- expect(container.querySelector('.nav.nav-underline')).toBeTruthy();
53
- });
54
-
55
- xit('renders with modern style', () => {
56
- const {container} = render(<ClayTabs modern />);
57
-
58
- expect(container.querySelector('.nav.nav-underline')).toBeTruthy();
59
- });
60
-
61
- xit('renders with modern style and displayType prop as null', () => {
62
- const {container} = render(<ClayTabs displayType={null} modern />);
63
-
64
- expect(container.querySelector('.nav.nav-underline')).toBeTruthy();
65
- });
66
-
67
- it('renders with tab style using displayType prop and overrides modern prop', () => {
68
- const {container} = render(<ClayTabs displayType="basic" modern />);
69
-
70
- expect(container.querySelector('.nav.nav-tabs')).toBeTruthy();
71
- });
72
-
73
- it('renders with items', () => {
74
- const {container} = render(<ClayTabsWithItems />);
75
-
76
- expect(container).toMatchSnapshot();
77
- });
78
-
79
- it('renders nav items as anchors', () => {
80
- const {getAllByTestId} = render(
81
- <>
82
- <ClayTabs>
83
- <ClayTabs.Item active href="https://clay.dev/foo">
84
- One
85
- </ClayTabs.Item>
86
- <ClayTabs.Item href="https://clay.dev/bar">
87
- Two
88
- </ClayTabs.Item>
89
- </ClayTabs>
90
- <ClayTabs.Content activeIndex={1}>
91
- <ClayTabs.TabPane>Content One</ClayTabs.TabPane>
92
- <ClayTabs.TabPane>Content Two</ClayTabs.TabPane>
93
- </ClayTabs.Content>
94
- </>
95
- );
96
-
97
- const tabItems = getAllByTestId('tabItem');
98
-
99
- expect(tabItems[0]!.nodeName).toBe('A');
100
- expect(tabItems[1]!.nodeName).toBe('A');
101
- });
102
-
103
- it('renders disabled nav items', () => {
104
- const {getAllByTestId} = render(
105
- <>
106
- <ClayTabs>
107
- <ClayTabs.Item active>One</ClayTabs.Item>
108
- <ClayTabs.Item>Two</ClayTabs.Item>
109
- <ClayTabs.Item disabled>Three</ClayTabs.Item>
110
- </ClayTabs>
111
- <ClayTabs.Content activeIndex={1}>
112
- <ClayTabs.TabPane>Content One</ClayTabs.TabPane>
113
- <ClayTabs.TabPane>Content Two</ClayTabs.TabPane>
114
- <ClayTabs.TabPane>Content Three</ClayTabs.TabPane>
115
- </ClayTabs.Content>
116
- </>
117
- );
118
-
119
- const tabItems = getAllByTestId('tabItem');
120
-
121
- expect(tabItems[2]!.classList).toContain('disabled');
122
- expect(tabItems[2]!.attributes.getNamedItem('disabled')).toBeTruthy();
123
- });
124
-
125
- it('emits a number when clicking an item', () => {
126
- const onClick = jest.fn();
127
-
128
- const {getAllByTestId} = render(
129
- <>
130
- <ClayTabs>
131
- <ClayTabs.Item active onClick={onClick}>
132
- One
133
- </ClayTabs.Item>
134
- <ClayTabs.Item onClick={onClick}>Two</ClayTabs.Item>
135
- </ClayTabs>
136
- <ClayTabs.Content activeIndex={1}>
137
- <ClayTabs.TabPane>Content One</ClayTabs.TabPane>
138
- <ClayTabs.TabPane>Content Two</ClayTabs.TabPane>
139
- </ClayTabs.Content>
140
- </>
141
- );
142
-
143
- const tabItems = getAllByTestId('tabItem');
144
-
145
- fireEvent.click(tabItems[0]!);
146
- expect(onClick).toBeCalled();
147
-
148
- fireEvent.click(tabItems[1]!);
149
- expect(onClick).toBeCalled();
150
- });
151
-
152
- it('renders elements not valid tabs should continue to work', () => {
153
- const {getAllByRole} = render(
154
- <>
155
- <ClayTabs>
156
- {false && <ClayTabs.Item active>One</ClayTabs.Item>}
157
- <ClayTabs.Item>Two</ClayTabs.Item>
158
- </ClayTabs>
159
- <ClayTabs.Content activeIndex={1}>
160
- {false && <ClayTabs.TabPane>Content One</ClayTabs.TabPane>}
161
- <ClayTabs.TabPane>Content Two</ClayTabs.TabPane>
162
- </ClayTabs.Content>
163
- </>
164
- );
165
-
166
- const tabItems = getAllByRole('tab');
167
- const tabPanels = getAllByRole('tabpanel');
168
-
169
- expect(tabItems[0]!.innerHTML).toBe('Two');
170
- expect(tabItems.length).toBe(1);
171
-
172
- expect(tabPanels[0]!.innerHTML).toBe('Content Two');
173
- expect(tabPanels.length).toBe(1);
174
- });
175
-
176
- it('renders the new default composition', () => {
177
- const {getAllByRole} = render(
178
- <ClayTabs>
179
- <ClayTabs.List>
180
- <ClayTabs.Item>Tab 1</ClayTabs.Item>
181
- <ClayTabs.Item>Tab 2</ClayTabs.Item>
182
- <ClayTabs.Item>Tab 3</ClayTabs.Item>
183
- </ClayTabs.List>
184
- <ClayTabs.Panels>
185
- <ClayTabs.TabPanel>Tab Content 1</ClayTabs.TabPanel>
186
- <ClayTabs.TabPanel>Tab Content 2</ClayTabs.TabPanel>
187
- <ClayTabs.TabPanel>Tab Content 3</ClayTabs.TabPanel>
188
- </ClayTabs.Panels>
189
- </ClayTabs>
190
- );
191
-
192
- expect(getAllByRole('tab').length).toBe(3);
193
- expect(getAllByRole('tabpanel').length).toBe(3);
194
- });
195
-
196
- it('renders the tab item active when `active` is set on uncontrolled state', () => {
197
- const {getByRole} = render(
198
- <ClayTabs>
199
- <ClayTabs.List>
200
- <ClayTabs.Item>Tab 1</ClayTabs.Item>
201
- <ClayTabs.Item active>Tab 2</ClayTabs.Item>
202
- <ClayTabs.Item>Tab 3</ClayTabs.Item>
203
- </ClayTabs.List>
204
- <ClayTabs.Panels>
205
- <ClayTabs.TabPanel>Tab Content 1</ClayTabs.TabPanel>
206
- <ClayTabs.TabPanel>Tab Content 2</ClayTabs.TabPanel>
207
- <ClayTabs.TabPanel>Tab Content 3</ClayTabs.TabPanel>
208
- </ClayTabs.Panels>
209
- </ClayTabs>
210
- );
211
-
212
- const activeTab = getByRole('tab', {selected: true});
213
-
214
- expect(activeTab.innerHTML).toBe('Tab 2');
215
- });
216
- });
package/src/index.tsx DELETED
@@ -1,152 +0,0 @@
1
- /**
2
- * SPDX-FileCopyrightText: © 2019 Liferay, Inc. <https://liferay.com>
3
- * SPDX-License-Identifier: BSD-3-Clause
4
- */
5
-
6
- import {InternalDispatch, useControlledState, useId} from '@clayui/shared';
7
- import React from 'react';
8
-
9
- import Content from './Content';
10
- import Item from './Item';
11
- import {List} from './List';
12
- import TabPane from './TabPane';
13
-
14
- export type DisplayType = null | 'basic' | 'underline';
15
-
16
- export interface IProps extends React.HTMLAttributes<HTMLUListElement> {
17
- /**
18
- * Flag to indicate the navigation behavior in the tab.
19
- *
20
- * - manual - it will just move the focus and tab activation is done just
21
- * by pressing space or enter.
22
- * - automatic - moves the focus to the tab and activates the tab.
23
- */
24
- activation?: 'manual' | 'automatic';
25
-
26
- /**
27
- * The current tab active (controlled).
28
- */
29
- active?: number;
30
-
31
- /**
32
- * Initial active tab when rendering component (uncontrolled).
33
- */
34
- defaultActive?: number;
35
-
36
- /**
37
- * Determines how tab is displayed.
38
- * @deprecated since v3.89.0 with no replacement.
39
- */
40
- displayType?: DisplayType;
41
-
42
- /**
43
- * Flag to indicate if `fade` classname that applies an fading animation
44
- * should be applied.
45
- */
46
- fade?: boolean;
47
-
48
- /**
49
- * Justify the nav items according the tab content.
50
- */
51
- justified?: boolean;
52
-
53
- /**
54
- * Applies a modern style to the tab.
55
- * @deprecated since v3.89.0 with no replacement.
56
- */
57
- modern?: boolean;
58
-
59
- /**
60
- * Callback is called when the active tab changes (controlled).
61
- */
62
- onActiveChange?: InternalDispatch<number>;
63
- }
64
-
65
- function ClayTabs(props: IProps): JSX.Element & {
66
- Content: typeof Content;
67
- Item: typeof Item;
68
- List: typeof List;
69
- Panels: typeof Content;
70
- TabPane: typeof TabPane;
71
- TabPanel: typeof TabPane;
72
- };
73
-
74
- function ClayTabs({
75
- activation = 'manual',
76
- active: externalActive,
77
- children,
78
- className,
79
- defaultActive = 0,
80
- displayType,
81
- fade = false,
82
- justified,
83
- modern = false,
84
- onActiveChange,
85
- ...otherProps
86
- }: IProps) {
87
- const [active, setActive, isUncontrolled] = useControlledState({
88
- defaultName: 'defaultActive',
89
- defaultValue: defaultActive,
90
- handleName: 'onActiveChange',
91
- name: 'active',
92
- onChange: onActiveChange,
93
- value: externalActive,
94
- });
95
-
96
- const [left, right] = React.Children.toArray(children);
97
-
98
- const tabsId = useId();
99
-
100
- // @ts-ignore
101
- if (left?.type?.displayName === 'ClayTabsList') {
102
- return (
103
- <>
104
- {React.cloneElement(left as React.ReactElement, {
105
- activation,
106
- active,
107
- displayType,
108
- justified,
109
- modern,
110
- onActiveChange: setActive,
111
- shouldUseActive: isUncontrolled,
112
- tabsId,
113
- })}
114
-
115
- {React.isValidElement(right) &&
116
- React.cloneElement(right as React.ReactElement, {
117
- active,
118
- fade,
119
- tabsId,
120
- })}
121
- </>
122
- );
123
- }
124
-
125
- return (
126
- <List
127
- {...otherProps}
128
- activation={activation}
129
- active={active}
130
- className={className}
131
- displayType={displayType}
132
- justified={justified}
133
- modern={modern}
134
- onActiveChange={setActive}
135
- >
136
- {children}
137
- </List>
138
- );
139
- }
140
-
141
- /**
142
- * @deprecated since v3.78.2 - Use new composition with Tabs.List and Tabs.Panels.
143
- */
144
- ClayTabs.Content = Content;
145
-
146
- ClayTabs.Panels = Content;
147
- ClayTabs.Item = Item;
148
- ClayTabs.List = List;
149
- ClayTabs.TabPane = TabPane;
150
- ClayTabs.TabPanel = TabPane;
151
-
152
- export default ClayTabs;