UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

81 lines (79 loc) 2.02 kB
import { Button_default } from "./chunk-LAYB7IKW.mjs"; import { cn } from "./chunk-53ICLDGS.mjs"; // src/components/ToggleSwitch/ToggleSwitch.tsx import { jsx } from "react/jsx-runtime"; var SIZE_CLASSES = { small: { track: "h-5 w-9", thumb: "h-4 w-4", translate: "translate-x-4" }, medium: { track: "h-6 w-11", thumb: "h-5 w-5", translate: "translate-x-5" }, large: { track: "h-7 w-14", thumb: "h-6 w-6", translate: "translate-x-7" } }; var ToggleSwitch = ({ checked = false, onChange, size = "small", disabled = false, className = "", thumbClassName = "", checkedColor = "bg-success-500", uncheckedColor = "bg-border-300", ...props }) => { const sizeClasses = SIZE_CLASSES[size]; const trackClasses = cn( "relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent", "transition-colors duration-200 ease-in-out", "focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2", sizeClasses.track, checked ? checkedColor : uncheckedColor, disabled && "cursor-not-allowed opacity-40", className ); const thumbClasses = cn( "pointer-events-none inline-block transform rounded-full bg-white shadow ring-0", "transition duration-200 ease-in-out", sizeClasses.thumb, checked ? sizeClasses.translate : "translate-x-0", thumbClassName ); return /* @__PURE__ */ jsx( Button_default, { variant: "raw", type: "button", role: "switch", "aria-checked": checked, disabled, className: trackClasses, ...props, onClick: (e) => { props.onClick?.(e); if (!e.defaultPrevented) { onChange?.(); } }, children: /* @__PURE__ */ jsx("span", { className: thumbClasses }) } ); }; ToggleSwitch.displayName = "ToggleSwitch"; var ToggleSwitch_default = ToggleSwitch; export { ToggleSwitch_default }; //# sourceMappingURL=chunk-KVRGL75H.mjs.map