{"version":3,"file":"Toggle.cjs","sources":["../../../../src/components/actions/toggle/Toggle.tsx"],"sourcesContent":["import { Toggle as BaseToggle } from '@base-ui/react/toggle'\r\n\r\nimport { BUTTON_SHARED_STYLES } from '@components/actions/_shared/buttons/styles/buttonShared.css.ts'\r\nimport { buttonSizeToIconSize } from '@components/actions/_shared/buttons/constants'\r\nimport { getButtonLayoutClassName } from '@components/actions/_shared/buttons/utils/buttonLayout.utils.ts'\r\nimport { Icon } from '@components/foundation/icon'\r\nimport { Typography } from '@components/foundation/typography'\r\nimport { TOGGLE_SIZE_TO_FONT_SIZE } from '@components/actions/toggle/constants/toggleSizes.const.ts'\r\nimport { TOGGLE_STYLES } from '@components/actions/toggle/styles/Toggle.css.ts'\r\nimport type { ToggleProps } from '@components/actions/toggle/types/Toggle.props.ts'\r\nimport { cn } from '@utils/cn.ts'\r\nimport type { FC } from 'react'\r\n\r\n/**\r\n * Two-state toggle button backed by Base UI Toggle. Supports text mode\r\n * (requires `label`) and icon-only mode (pass `icon`). Accepts\r\n * `variant` (outlined|ghost), semantic `color`, `size`, and the full\r\n * Base UI controlled/uncontrolled state contract.\r\n */\r\nconst Toggle: FC<ToggleProps> = ({\r\n    variant,\r\n    subtle,\r\n    color,\r\n    size = 'md',\r\n    radius,\r\n    className,\r\n    label,\r\n    icon,\r\n    startIcon,\r\n    endIcon,\r\n    margin,\r\n    marginTop,\r\n    marginRight,\r\n    marginBottom,\r\n    marginLeft,\r\n    width,\r\n    alignSelf,\r\n    style,\r\n    ref,\r\n    ...props\r\n}) => {\r\n    const iconSize = buttonSizeToIconSize[size]\r\n    const fontSize = TOGGLE_SIZE_TO_FONT_SIZE[size]\r\n\r\n    return (\r\n        <BaseToggle\r\n            ref={ref}\r\n            data-icon-only={icon ? '' : undefined}\r\n            className={cn(\r\n                TOGGLE_STYLES.recipe({ variant, color, size, radius, subtle }),\r\n                getButtonLayoutClassName({ margin, marginTop, marginRight, marginBottom, marginLeft, width, alignSelf }),\r\n                className,\r\n            )}\r\n            style={{ width, alignSelf, ...style }}\r\n            {...props}\r\n        >\r\n            {icon ? (\r\n                <Icon\r\n                    icon={icon}\r\n                    size={iconSize}\r\n                    className={BUTTON_SHARED_STYLES.icon}\r\n                />\r\n            ) : (\r\n                <>\r\n                    {startIcon && (\r\n                        <Icon\r\n                            icon={startIcon}\r\n                            size={iconSize}\r\n                            className={BUTTON_SHARED_STYLES.icon}\r\n                        />\r\n                    )}\r\n                    <Typography\r\n                        as={'span'}\r\n                        fontSize={fontSize}\r\n                        fontWeight={'medium'}\r\n                    >\r\n                        {label}\r\n                    </Typography>\r\n                    {endIcon && (\r\n                        <Icon\r\n                            icon={endIcon}\r\n                            size={iconSize}\r\n                            className={BUTTON_SHARED_STYLES.icon}\r\n                        />\r\n                    )}\r\n                </>\r\n            )}\r\n        </BaseToggle>\r\n    )\r\n}\r\n\r\nToggle.displayName = 'Toggle'\r\n\r\nexport default Toggle\r\n"],"names":["Toggle","variant","subtle","color","size","radius","className","label","icon","startIcon","endIcon","margin","marginTop","marginRight","marginBottom","marginLeft","width","alignSelf","style","ref","props","iconSize","buttonSizeToIconSize","fontSize","TOGGLE_SIZE_TO_FONT_SIZE","jsx","BaseToggle","cn","TOGGLE_STYLES","getButtonLayoutClassName","Icon","BUTTON_SHARED_STYLES","jsxs","Fragment","Typography"],"mappings":"+lBAmBMA,EAA0B,CAAC,CAC7B,QAAAC,EACA,OAAAC,EACA,MAAAC,EACA,KAAAC,EAAO,KACP,OAAAC,EACA,UAAAC,EACA,MAAAC,EACA,KAAAC,EACA,UAAAC,EACA,QAAAC,EACA,OAAAC,EACA,UAAAC,EACA,YAAAC,EACA,aAAAC,EACA,WAAAC,EACA,MAAAC,EACA,UAAAC,EACA,MAAAC,EACA,IAAAC,EACA,GAAGC,CACP,IAAM,CACF,MAAMC,EAAWC,EAAAA,qBAAqBlB,CAAI,EACpCmB,EAAWC,EAAAA,yBAAyBpB,CAAI,EAE9C,OACIqB,EAAAA,IAACC,EAAAA,OAAA,CACG,IAAAP,EACA,iBAAgBX,EAAO,GAAK,OAC5B,UAAWmB,EAAAA,GACPC,EAAAA,cAAc,OAAO,CAAE,QAAA3B,EAAS,MAAAE,EAAO,KAAAC,EAAM,OAAAC,EAAQ,OAAAH,EAAQ,EAC7D2B,EAAAA,yBAAyB,CAAE,OAAAlB,EAAQ,UAAAC,EAAW,YAAAC,EAAa,aAAAC,EAAc,WAAAC,CAA6B,CAAC,EACvGT,CAAA,EAEJ,MAAO,CAAE,MAAAU,EAAO,UAAAC,EAAW,GAAGC,CAAA,EAC7B,GAAGE,EAEH,SAAAZ,EACGiB,EAAAA,IAACK,EAAA,CACG,KAAAtB,EACA,KAAMa,EACN,UAAWU,EAAAA,qBAAqB,IAAA,CAAA,EAGpCC,EAAAA,KAAAC,WAAA,CACK,SAAA,CAAAxB,GACGgB,EAAAA,IAACK,EAAA,CACG,KAAMrB,EACN,KAAMY,EACN,UAAWU,EAAAA,qBAAqB,IAAA,CAAA,EAGxCN,EAAAA,IAACS,EAAA,CACG,GAAI,OACJ,SAAAX,EACA,WAAY,SAEX,SAAAhB,CAAA,CAAA,EAEJG,GACGe,EAAAA,IAACK,EAAA,CACG,KAAMpB,EACN,KAAMW,EACN,UAAWU,EAAAA,qBAAqB,IAAA,CAAA,CACpC,CAAA,CAER,CAAA,CAAA,CAIhB,EAEA/B,EAAO,YAAc"}