@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
27 lines (26 loc) • 1.72 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { chevronDownSmallIcon } from '@workday/canvas-system-icons-web';
import { createElemPropsHook, composeHooks, createSubModelElemPropsHook, createSubcomponent, } from '@workday/canvas-kit-react/common';
import { SystemIcon } from '@workday/canvas-kit-react/icon';
import { useOverflowListTarget } from '@workday/canvas-kit-react/collection';
import { useMenuTarget } from '@workday/canvas-kit-react/menu';
import { useTabsModel } from './useTabsModel';
import { StyledTabItem } from './TabsItem';
import { createStencil } from '@workday/canvas-kit-styling';
import { system } from '@workday/canvas-tokens-web';
import { mergeStyles } from '@workday/canvas-kit-react/layout';
const tabsOverflowButtonStencil = createStencil({
base: { name: "13ejev", styles: "box-sizing:border-box;&:has([data-part=\"tabs-overflow-button-icon\"]){display:flex;gap:var(--cnvs-sys-space-zero);}" }
}, "tabs-overflow-button-4425ed");
export const useTabsOverflowButton = composeHooks(createElemPropsHook(useTabsModel)(() => {
return {
'aria-haspopup': true,
};
}), useOverflowListTarget, createSubModelElemPropsHook(useTabsModel)(m => m.menu, useMenuTarget));
export const TabsOverflowButton = createSubcomponent('button')({
displayName: 'Tabs.OverflowButton',
modelHook: useTabsModel,
elemPropsHook: useTabsOverflowButton,
})(({ children, ...elemProps }, Element) => {
return (_jsxs(StyledTabItem, { type: "button", as: Element, ...mergeStyles(elemProps, tabsOverflowButtonStencil()), children: [_jsx("span", { children: children }), _jsx(SystemIcon, { "data-part": "tabs-overflow-button-icon", icon: chevronDownSmallIcon })] }));
});