@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 +0 -0
- package/lib/Content.js.map +1 -0
- package/lib/Item.d.ts +0 -0
- package/lib/Item.js.map +1 -0
- package/lib/List.d.ts +0 -0
- package/lib/List.js.map +1 -0
- package/lib/TabPane.d.ts +0 -0
- package/lib/TabPane.js.map +1 -0
- package/lib/index.d.ts +0 -0
- package/lib/index.js.map +1 -0
- package/package.json +4 -5
- package/src/Content.tsx +0 -78
- package/src/Item.tsx +0 -86
- package/src/List.tsx +0 -157
- package/src/TabPane.tsx +0 -85
- package/src/__tests__/__snapshots__/index.tsx.snap +0 -93
- package/src/__tests__/index.tsx +0 -216
- package/src/index.tsx +0 -152
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
|
package/lib/Item.js.map
ADDED
|
@@ -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
|
package/lib/List.js.map
ADDED
|
@@ -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
|
package/lib/index.js.map
ADDED
|
@@ -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.
|
|
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.
|
|
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": "
|
|
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
|
-
`;
|
package/src/__tests__/index.tsx
DELETED
|
@@ -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;
|