@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
27 lines (26 loc) • 3.38 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { brand, system } from '@workday/canvas-tokens-web';
import { BaseButton, buttonStencil } from '@workday/canvas-kit-react/button';
import { calc, createStencil, handleCsProp, px2rem } from '@workday/canvas-kit-styling';
import { createComponent } from '@workday/canvas-kit-react/common';
import { systemIconStencil } from '@workday/canvas-kit-react/icon';
const segmentedControlButtonStencil = createStencil({
extends: buttonStencil,
base: { name: "22cwrc", styles: "box-sizing:border-box;border-inline-start:none;min-width:auto;--background-button-85bf0e:var(--cnvs-sys-color-bg-alt-soft);--border-button-85bf0e:var(--cnvs-sys-color-border-container);--borderRadius-button-85bf0e:var(--cnvs-sys-shape-zero);--color-system-icon-3a4847:var(--cnvs-sys-color-fg-muted-soft);&:hover, &.hover{--background-button-85bf0e:var(--cnvs-sys-color-bg-alt-default);--color-system-icon-3a4847:var(--cnvs-sys-color-icon-strong);}&:active, &.active{--background-button-85bf0e:var(--cnvs-sys-color-bg-alt-stronger);}&:disabled, &.disabled{--background-button-85bf0e:var(--cnvs-sys-color-bg-alt-softer);--border-button-85bf0e:var(--cnvs-sys-color-border-container);--color-system-icon-3a4847:var(--cnvs-sys-color-icon-soft);}&:first-of-type{border-radius:var(--cnvs-sys-shape-x1) 0 0 var(--cnvs-sys-shape-x1);border-inline-start:0.0625rem solid var(--cnvs-sys-color-border-container);}&:last-of-type{border-radius:0 var(--cnvs-sys-shape-x1) var(--cnvs-sys-shape-x1) 0;}&[aria-pressed=\"true\"]{--background-button-85bf0e:var(--cnvs-brand-primary-base);--border-button-85bf0e:var(--cnvs-brand-primary-base);--color-system-icon-3a4847:var(--cnvs-sys-color-fg-inverse);&:first-of-type{border-inline-start-color:var(--cnvs-brand-primary-base);}&:disabled, &.disabled{--background-button-85bf0e:var(--cnvs-sys-color-bg-alt-softer);--border-button-85bf0e:var(--cnvs-sys-color-border-container);--color-system-icon-3a4847:var(--cnvs-sys-color-icon-soft);}}&:focus-visible, &.focus{border-radius:var(--cnvs-sys-shape-x1);z-index:1;animation:none;transition:all 120ms border-radius 1ms;}" },
modifiers: {
segmentedControlButtonSize: {
small: { name: "4f87sy", styles: "width:var(--cnvs-sys-space-x8);height:var(--cnvs-sys-space-x8);" },
medium: { name: "3m85bi", styles: "width:var(--cnvs-sys-space-x10);height:var(--cnvs-sys-space-x10);" },
large: { name: "4mm1m", styles: "width:calc(var(--cnvs-sys-space-x10) + var(--cnvs-sys-space-x2));height:calc(var(--cnvs-sys-space-x10) + var(--cnvs-sys-space-x2));" }
}
}
}, "segmented-control-button-c9fec8");
/**
* @deprecated ⚠️ `SegmentedControlButton` in Main has been deprecated and will be removed in a future major version. Please use [`SegmentedControl` in Preview](https://workday.github.io/canvas-kit/?path=/docs/preview-segmented-control--docs) instead.
*/
export const SegmentedControlButton = createComponent('button')({
displayName: 'Button',
Component: ({ value, icon, toggled, ...props }, ref, Element) => {
return (_jsx(BaseButton, { as: Element, ref: ref, "aria-pressed": toggled, value: value, ...handleCsProp(props, segmentedControlButtonStencil({ segmentedControlButtonSize: props.size || 'medium' })), children: _jsx(BaseButton.Icon, { size: props.size || 'large', icon: icon }) }));
},
});