UNPKG

@react-spectrum/s2

Version:
667 lines (648 loc) 28.8 kB
require("./Tabs.css"); var $e991cbcdf82ced71$exports = require("./CenterBaseline.cjs"); var $bde97c91243ed164$exports = require("../icons/Icon.cjs"); var $9d2c38978395d44a$exports = require("./TabsPicker.cjs"); var $6367bc87eb7d24ad$exports = require("./Content.cjs"); var $ac757a4c2bd72aee$exports = require("../icons/useSpectrumContextProps.cjs"); var $5oxdw$reactjsxruntime = require("react/jsx-runtime"); var $5oxdw$react = require("react"); var $5oxdw$reactariacomponents = require("react-aria-components"); var $5oxdw$reactariacollections = require("@react-aria/collections"); var $5oxdw$reactariautils = require("@react-aria/utils"); var $5oxdw$reactstatelyutils = require("@react-stately/utils"); var $5oxdw$reactspectrumutils = require("@react-spectrum/utils"); var $5oxdw$reactariafocus = require("@react-aria/focus"); var $5oxdw$reactariai18n = require("@react-aria/i18n"); function $parcel$export(e, n, v, s) { Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); } $parcel$export(module.exports, "TabsContext", () => $b27519d6a701105b$export$cfa7aa87c26e7d1f); $parcel$export(module.exports, "Tabs", () => $b27519d6a701105b$export$b2539bed5023c21c); $parcel$export(module.exports, "TabList", () => $b27519d6a701105b$export$e51a686c67fdaa2d); $parcel$export(module.exports, "Tab", () => $b27519d6a701105b$export$3e41faf802a29e71); $parcel$export(module.exports, "TabPanel", () => $b27519d6a701105b$export$3d96ec278d3efce4); /* * Copyright 2024 Adobe. All rights reserved. * This file is licensed to you under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. You may obtain a copy * of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS * OF ANY KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ const $b27519d6a701105b$export$cfa7aa87c26e7d1f = /*#__PURE__*/ (0, $5oxdw$react.createContext)(null); const $b27519d6a701105b$var$InternalTabsContext = /*#__PURE__*/ (0, $5oxdw$react.createContext)({}); const $b27519d6a701105b$var$CollapseContext = /*#__PURE__*/ (0, $5oxdw$react.createContext)({ showTabs: true, menuId: '', valueId: '' }); const $b27519d6a701105b$var$tabs = function anonymous(props, overrides) { let rules = " "; let position = false; let flexShrink = false; let matches = (overrides || '').matchAll(/(?:^|\s)(J|G|I|H|_u|_v|_s|__A|_d|_J|z|y|B|A|_P|_9|W|_l|_A|_z|Z|N|L|F|M|K)[^\s]+/g); for (let p of matches){ if (p[1] === "_P") position = true; if (p[1] === "_v") flexShrink = true; rules += p[0]; } if (!position) rules += ' _Pc91'; rules += ' sd91'; if (!flexShrink) rules += ' _va91'; rules += ' ug91'; rules += ' uch91'; rules += ' udi91'; rules += ' uea91'; rules += ' ugb91'; rules += ' uhd91'; rules += ' uje91'; rules += ' uic91'; rules += ' vd91'; rules += ' vsf91'; rules += ' wb91'; rules += ' xb91'; rules += ' _xa91'; rules += ' _Fa91'; rules += ' _Ffb91'; rules += ' pt91'; if (props.orientation === "horizontal") rules += ' _ta91'; return rules; }; const $b27519d6a701105b$export$b2539bed5023c21c = /*#__PURE__*/ (0, $5oxdw$react.forwardRef)(function Tabs(props, ref) { [props, ref] = (0, $ac757a4c2bd72aee$exports.useSpectrumContextProps)(props, ref, $b27519d6a701105b$export$cfa7aa87c26e7d1f); let { density: density = 'regular', isDisabled: isDisabled, disabledKeys: disabledKeys, orientation: orientation = 'horizontal', labelBehavior: labelBehavior = 'show' } = props; let domRef = (0, $5oxdw$reactspectrumutils.useDOMRef)(ref); let [value, setValue] = (0, $5oxdw$reactstatelyutils.useControlledState)(props.selectedKey, props.defaultSelectedKey ?? null, props.onSelectionChange); if (!props['aria-label'] && !props['aria-labelledby']) throw new Error('An aria-label or aria-labelledby prop is required on Tabs for accessibility.'); return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponents.Provider), { values: [ [ $b27519d6a701105b$var$InternalTabsContext, { density: density, isDisabled: isDisabled, orientation: orientation, disabledKeys: disabledKeys, selectedKey: value, onSelectionChange: setValue, labelBehavior: labelBehavior, 'aria-label': props['aria-label'], 'aria-labelledby': props['aria-labelledby'] } ] ], children: /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacollections.CollectionBuilder), { content: props.children, children: (collection)=>/*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$CollapsingTabs, { ...props, selectedKey: value, onSelectionChange: setValue, collection: collection, containerRef: domRef }) }) }); }); const $b27519d6a701105b$var$tablist = function anonymous(props) { let rules = " "; rules += ' sd91'; if (props.orientation === "horizontal") { if (props.labelBehavior === "hide") { if (props.density === "regular") rules += ' Uj91'; else if (props.density === "compact") rules += ' Ul91'; } else if (props.density === "regular") rules += ' Up91'; else if (props.density === "compact") rules += ' Uj91'; } if (props.orientation === "horizontal") { if (props.labelBehavior === "hide") { if (props.density === "regular") rules += ' qj91'; else if (props.density === "compact") rules += ' ql91'; } else if (props.density === "regular") rules += ' qp91'; else if (props.density === "compact") rules += ' qj91'; } if (props.orientation === "vertical") rules += ' _ta91'; if (props.orientation === "vertical") rules += ' Hz91'; if (props.orientation === "vertical") rules += ' Ix91'; rules += ' _va91'; rules += ' _sa91'; return rules; }; function $b27519d6a701105b$export$e51a686c67fdaa2d(props) { let { showTabs: showTabs } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$CollapseContext) ?? {}; if (showTabs) return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$TabListInner, { ...props }); return null; } function $b27519d6a701105b$var$TabListInner(props1) { let { density: density, isDisabled: isDisabled, disabledKeys: disabledKeys, orientation: orientation, labelBehavior: labelBehavior, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$InternalTabsContext) ?? {}; let state = (0, $5oxdw$react.useContext)((0, $5oxdw$reactariacomponents.TabListStateContext)); let [selectedTab, setSelectedTab] = (0, $5oxdw$react.useState)(undefined); let tablistRef = (0, $5oxdw$react.useRef)(null); (0, $5oxdw$reactariautils.useLayoutEffect)(()=>{ if (tablistRef?.current) { let tab = tablistRef.current.querySelector('[role=tab][data-selected=true]'); if (tab != null) setSelectedTab(tab); } }, [ tablistRef, state?.selectedItem?.key ]); return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsxs)("div", { style: props1.UNSAFE_style, className: (props1.UNSAFE_className || '') + function anonymous(props, overrides) { let rules = " "; let position = false; let matches = (overrides || '').matchAll(/(?:^|\s)(J|G|I|H|_u|_v|_s|__A|_d|_J|z|y|B|A|_P|_9|W|_l|_A|_z|Z|N|L)[^\s]+/g); for (let p of matches){ if (p[1] === "_P") position = true; rules += p[0]; } if (!position) rules += ' _Pc91'; return rules; }(null, props1.styles), children: [ orientation === 'vertical' && /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$TabLine, { disabledKeys: disabledKeys, isDisabled: isDisabled, selectedTab: selectedTab, orientation: orientation, tabList: props1, density: density }), /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponents.TabList), { ...props1, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ref: tablistRef, className: (renderProps)=>$b27519d6a701105b$var$tablist({ ...renderProps, labelBehavior: labelBehavior, density: density }) }), orientation === 'horizontal' && /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$TabLine, { disabledKeys: disabledKeys, isDisabled: isDisabled, selectedTab: selectedTab, orientation: orientation, tabList: props1, density: density }) ] }); } const $b27519d6a701105b$var$selectedIndicator = function anonymous(props) { let rules = " "; rules += ' _Pa91'; if (props.isDisabled) rules += ' gH91'; else rules += ' g091'; if (props.isDisabled) rules += ' gld91'; else rules += ' gle91'; if (props.orientation === "horizontal") rules += ' FLvNfn91'; if (props.orientation === "vertical") rules += ' ZLvNfn91'; if (props.orientation === "horizontal") rules += ' _lr91'; rules += ' _je91'; rules += ' og91'; rules += ' ng91'; rules += ' kg91'; rules += ' jg91'; rules += ' Xa91'; rules += ' _2b91'; return rules; }; function $b27519d6a701105b$var$TabLine(props) { let { disabledKeys: disabledKeys, isDisabled: isTabsDisabled, selectedTab: selectedTab, orientation: orientation, tabList: tabList, density: density } = props; let { direction: direction } = (0, $5oxdw$reactariai18n.useLocale)(); let state = (0, $5oxdw$react.useContext)((0, $5oxdw$reactariacomponents.TabListStateContext)); // We want to add disabled styling to the selection indicator only if all the Tabs are disabled let [isDisabled, setIsDisabled] = (0, $5oxdw$react.useState)(false); (0, $5oxdw$react.useEffect)(()=>{ let isDisabled = isTabsDisabled || $b27519d6a701105b$var$isAllTabsDisabled(state?.collection, disabledKeys ? new Set(disabledKeys) : new Set(null)); setIsDisabled(isDisabled); }, [ state?.collection, disabledKeys, isTabsDisabled, setIsDisabled ]); let [style, setStyle] = (0, $5oxdw$react.useState)({ transform: undefined, width: undefined, height: undefined }); let onResize = (0, $5oxdw$react.useCallback)(()=>{ if (selectedTab) { let styleObj = { transform: undefined, width: undefined, height: undefined }; // In RTL, calculate the transform from the right edge of the tablist so that resizing the window doesn't break the Tabline position due to offsetLeft changes let offset = direction === 'rtl' ? -1 * (selectedTab.offsetParent?.offsetWidth - selectedTab.offsetWidth - selectedTab.offsetLeft) : selectedTab.offsetLeft; styleObj.transform = orientation === 'vertical' ? `translateY(${selectedTab.offsetTop}px)` : `translateX(${offset}px)`; if (orientation === 'horizontal') styleObj.width = `${selectedTab.offsetWidth}px`; else styleObj.height = `${selectedTab.offsetHeight}px`; setStyle(styleObj); } }, [ direction, setStyle, selectedTab, orientation ]); (0, $5oxdw$reactariautils.useLayoutEffect)(()=>{ onResize(); }, [ onResize, state?.selectedItem?.key, density, direction, orientation, tabList ]); return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)("div", { style: { ...style }, className: $b27519d6a701105b$var$selectedIndicator({ isDisabled: isDisabled, orientation: orientation }) }); } const $b27519d6a701105b$var$tab = function anonymous(props, overrides) { let rules = " "; let position = false; let flexShrink = false; let matches = (overrides || '').matchAll(/(?:^|\s)(J|G|I|H|_u|_v|_s|__A|_d|_J|z|y|B|A|_P|_9|W|_l|_A|_z|Z|N|L)[^\s]+/g); for (let p of matches){ if (p[1] === "_P") position = true; if (p[1] === "_v") flexShrink = true; rules += p[0]; } if (props.isFocusVisible) rules += ' _Lf91'; else rules += ' _Le91'; rules += ' Oh91'; rules += ' _Mc91'; rules += ' _Kd91'; rules += ' sd91'; if (props.isDisabled) rules += ' pp91'; else if (props.isSelected) { if (props.isPressed) rules += ' po91'; else if (props.isFocusVisible) rules += ' po91'; else if (props.isHovered) rules += ' po91'; else rules += ' pt91'; } else { if (props.isPressed) rules += ' pt91'; else if (props.isFocusVisible) rules += ' pt91'; else if (props.isHovered) rules += ' pt91'; else rules += ' pv91'; } if (props.isDisabled) rules += ' plc91'; else if (props.isSelected) rules += ' pld91'; rules += ' oa91'; rules += ' na91'; rules += ' ka91'; rules += ' ja91'; rules += ' Uc91'; rules += ' Usd91'; rules += ' qc91'; rules += ' qsd91'; if (props.density === "regular") rules += ' Fz91'; else if (props.density === "compact") rules += ' Fx91'; rules += ' eb91'; if (!position) rules += ' _Pc91'; rules += ' ri91'; if (!flexShrink) rules += ' _va91'; rules += ' Yd91'; rules += ' Xb91'; rules += ' _2b91'; if (props.labelBehavior === "hide") rules += ' SssxDec91'; if (props.labelBehavior === "hide") rules += ' RssxDec91'; rules += ' __ca91'; return rules; }; const $b27519d6a701105b$var$icon = " sb91 _va91 -_8sjo0b-t5ZbAob91"; function $b27519d6a701105b$export$3e41faf802a29e71(props1) { let { density: density, labelBehavior: labelBehavior } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$InternalTabsContext) ?? {}; let contentId = (0, $5oxdw$reactariautils.useId)(); let ariaLabelledBy = props1['aria-labelledby'] || ''; return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponents.Tab), { ...props1, // @ts-ignore originalProps: props1, "aria-labelledby": `${labelBehavior === 'hide' ? contentId : ''} ${ariaLabelledBy}`, style: props1.UNSAFE_style, className: (renderProps)=>(props1.UNSAFE_className || '') + $b27519d6a701105b$var$tab({ ...renderProps, density: density, labelBehavior: labelBehavior }, props1.styles), children: ({ isMenu: // @ts-ignore isMenu })=>{ if (isMenu) return props1.children; else return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponents.Provider), { values: [ [ (0, $6367bc87eb7d24ad$exports.TextContext), { id: contentId, styles: function anonymous(props) { let rules = " "; rules += ' _Jb91'; if (props.labelBehavior === "hide") rules += ' sk91'; return rules; }({ labelBehavior: labelBehavior }) } ], [ (0, $bde97c91243ed164$exports.IconContext), { render: (0, $e991cbcdf82ced71$exports.centerBaseline)({ slot: 'icon', styles: " _Ja91" }), styles: $b27519d6a701105b$var$icon } ] ], children: typeof props1.children === 'string' ? /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $6367bc87eb7d24ad$exports.Text), { children: props1.children }) : props1.children }); } }); } const $b27519d6a701105b$var$tabPanel = function anonymous(props, overrides) { let rules = " "; let marginTop = false; let flexGrow = false; let flexBasis = false; let minHeight = false; let minWidth = false; let matches = (overrides || '').matchAll(/(?:^|\s)(J|G|I|H|_u|_v|_s|__A|_d|_J|z|y|B|A|_P|_9|W|_l|_A|_z|Z|N|L|F|M|K)[^\s]+/g); for (let p of matches){ if (p[1] === "J") marginTop = true; if (p[1] === "_u") flexGrow = true; if (p[1] === "_s") flexBasis = true; if (p[1] === "M") minHeight = true; if (p[1] === "N") minWidth = true; rules += p[0]; } if (props.isFocusVisible) rules += ' _Lf91'; else rules += ' _Le91'; rules += ' Oh91'; rules += ' _Mc91'; rules += ' _Kd91'; if (!marginTop) rules += ' Js91'; rules += ' pt91'; if (!flexGrow) rules += ' _ub91'; if (!flexBasis) rules += ' _sa91'; if (!minHeight) rules += ' Ma91'; if (!minWidth) rules += ' Na91'; return rules; }; function $b27519d6a701105b$export$3d96ec278d3efce4(props) { let { showTabs: showTabs } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$CollapseContext); let { selectedKey: selectedKey } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$InternalTabsContext); if (showTabs) return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponents.TabPanel), { ...props, style: props.UNSAFE_style, className: (renderProps)=>(props.UNSAFE_className ?? '') + $b27519d6a701105b$var$tabPanel(renderProps, props.styles) }); if (props.id !== selectedKey) return null; return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$CollapsedTabPanel, { ...props }); } function $b27519d6a701105b$var$CollapsedTabPanel(props) { let { UNSAFE_style: UNSAFE_style, UNSAFE_className: UNSAFE_className = '', ...otherProps } = props; let { menuId: menuId, valueId: valueId } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$CollapseContext); let ref = (0, $5oxdw$react.useRef)(null); let tabIndex = (0, $5oxdw$reactariafocus.useHasTabbableChild)(ref) ? undefined : 0; return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponents.Group), { ...otherProps, ref: ref, "aria-labelledby": menuId + ' ' + valueId, tabIndex: tabIndex, style: UNSAFE_style, className: (renderProps)=>UNSAFE_className + $b27519d6a701105b$var$tabPanel(renderProps, props.styles) }); } function $b27519d6a701105b$var$isAllTabsDisabled(collection, disabledKeys) { let testKey = null; if (collection && collection.size > 0) { testKey = collection.getFirstKey(); let index = 0; while(testKey && index < collection.size){ // We have to check if the item in the collection has a key in disabledKeys or has the isDisabled prop set directly on it if (!disabledKeys.has(testKey) && !collection.getItem(testKey)?.props?.isDisabled) return false; testKey = collection.getKeyAfter(testKey); index++; } return true; } return false; } let $b27519d6a701105b$var$HiddenTabs = function(props) { let { listRef: listRef, items: items, size: size, density: density } = props; return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)("div", { // @ts-ignore inert: (0, $5oxdw$reactariautils.inertValue)(true), ref: listRef, className: " s40ub4c91 _t40ub4c91 U40ub4c91 q40ub4c91 _w40ub4c91 _Pa91 Wr91 _lr91 _Ar91 _zr91 _6b91 _Nc91 Pc91 _Ia91", children: items.map((item)=>{ // pull off individual props as an allow list, don't want refs or other props getting through return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)("div", { "data-hidden-tab": true, style: item.props.UNSAFE_style, className: item.props.className({ size: size, density: density }), children: item.props.children({ size: size, density: density }) }, item.key); }) }); }; let $b27519d6a701105b$var$TabsMenu = (props1)=>{ let { id: id, items: items, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, valueId: valueId } = props1; let { density: density, onSelectionChange: _onSelectionChange, selectedKey: selectedKey, isDisabled: isDisabled, disabledKeys: disabledKeys, labelBehavior: labelBehavior } = (0, $5oxdw$react.useContext)($b27519d6a701105b$var$InternalTabsContext); let onSelectionChange = (0, $5oxdw$react.useCallback)((key)=>{ if (key != null) _onSelectionChange?.(key); }, [ _onSelectionChange ]); let state = (0, $5oxdw$react.useContext)((0, $5oxdw$reactariacomponents.TabListStateContext)); let allKeysDisabled = (0, $5oxdw$react.useMemo)(()=>{ return $b27519d6a701105b$var$isAllTabsDisabled(state?.collection, disabledKeys ? new Set(disabledKeys) : new Set()); }, [ state?.collection, disabledKeys ]); let labelProps = (0, $5oxdw$reactariautils.useLabels)({ id: id, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy }); return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)("div", { className: function anonymous(props) { let rules = " "; rules += ' sd91'; rules += ' _va91'; rules += ' eb91'; if (props.density === "regular") rules += ' Fz91'; else if (props.density === "compact") rules += ' Fx91'; return rules; }({ density: density }), children: /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $9d2c38978395d44a$exports.Picker), { id: id, valueId: valueId, ...labelProps, "aria-describedby": props1['aria-describedby'], "aria-details": props1['aria-details'], isDisabled: isDisabled || allKeysDisabled, density: density, labelBehavior: labelBehavior, items: items, disabledKeys: disabledKeys, selectedKey: selectedKey, onSelectionChange: onSelectionChange, children: (item)=>{ return /*#__PURE__*/ (0, $5oxdw$react.createElement)((0, $9d2c38978395d44a$exports.PickerItem), { ...item.props.originalProps, isDisabled: isDisabled || allKeysDisabled, key: item.key }, item.props.children({ density: density, isMenu: true })); } }) }); }; let $b27519d6a701105b$var$CollapsingTabs = ({ collection: collection, containerRef: containerRef, ...props })=>{ let { density: density = 'regular', orientation: orientation = 'horizontal', labelBehavior: labelBehavior = 'show', onSelectionChange: onSelectionChange } = props; let [showItems, _setShowItems] = (0, $5oxdw$react.useState)(true); showItems = orientation === 'vertical' ? true : showItems; let setShowItems = (0, $5oxdw$react.useCallback)((value)=>{ if (orientation === 'vertical') // if orientation is vertical, we always show the items _setShowItems(true); else _setShowItems(value); }, [ orientation ]); let { direction: direction } = (0, $5oxdw$reactariai18n.useLocale)(); let children = (0, $5oxdw$react.useMemo)(()=>[ ...collection ], [ collection ]); let listRef = (0, $5oxdw$react.useRef)(null); let updateOverflow = (0, $5oxdw$reactariautils.useEffectEvent)(()=>{ if (orientation === 'vertical' || !listRef.current || !containerRef?.current) return; let container = listRef.current; let containerRect = container.getBoundingClientRect(); let tabs = container.querySelectorAll('[data-hidden-tab]'); let lastTab = tabs[tabs.length - 1]; let lastTabRect = lastTab.getBoundingClientRect(); if (direction === 'ltr') setShowItems?.(lastTabRect.right <= containerRect.right); else setShowItems?.(lastTabRect.left >= containerRect.left); }); (0, $5oxdw$reactariautils.useResizeObserver)({ ref: containerRef, onResize: updateOverflow }); (0, $5oxdw$reactariautils.useLayoutEffect)(()=>{ if (collection.size > 0) queueMicrotask(updateOverflow); }, [ collection.size, updateOverflow ]); // start with null so that the first render won't have a flicker let prevOrientation = (0, $5oxdw$react.useRef)(null); (0, $5oxdw$reactariautils.useLayoutEffect)(()=>{ if (collection.size > 0 && prevOrientation.current !== orientation) updateOverflow(); prevOrientation.current = orientation; }, [ collection.size, updateOverflow, orientation ]); (0, $5oxdw$react.useEffect)(()=>{ // Recalculate visible tags when fonts are loaded. document.fonts?.ready.then(()=>updateOverflow()); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); let menuId = (0, $5oxdw$reactariautils.useId)(); let valueId = (0, $5oxdw$reactariautils.useId)(); let contents; if (showItems) contents = /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)((0, $5oxdw$reactariacomponents.Tabs), { ...props, style: { display: 'contents' }, children: props.children }); else contents = /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsxs)((0, $5oxdw$reactjsxruntime.Fragment), { children: [ /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$TabsMenu, { id: menuId, valueId: valueId, items: children, onSelectionChange: onSelectionChange, "aria-label": props['aria-label'], "aria-describedby": props['aria-labelledby'] }), /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$CollapseContext.Provider, { value: { showTabs: false, menuId: menuId, valueId: valueId }, children: props.children }) ] }); return /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsxs)("div", { style: props.UNSAFE_style, className: (props.UNSAFE_className || '') + $b27519d6a701105b$var$tabs({ orientation: orientation }, props.styles), ref: containerRef, children: [ /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)("div", { className: $b27519d6a701105b$var$tablist({ orientation: orientation, labelBehavior: labelBehavior, density: density }), children: /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$HiddenTabs, { items: children, density: density, listRef: listRef }) }), /*#__PURE__*/ (0, $5oxdw$reactjsxruntime.jsx)($b27519d6a701105b$var$CollapseContext.Provider, { value: { showTabs: true, menuId: menuId, valueId: valueId }, children: contents }) ] }); }; //# sourceMappingURL=Tabs.cjs.map