UNPKG

react-box-tools

Version:

Box tools react components, utils and hooks

2 lines (1 loc) 707 B
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),m=require("./ripple-D6xcqa4c.cjs"),a=require("./clsx-CeOg4f1g.cjs"),i=require("react"),y=require("./useUpdateEffect-DyqkA7tm.cjs"),b=o=>{const c=i.useId(),{on:u=!1,flat:d=!1,className:p,ripple:f,disabled:n,onChange:r}=o,[e,l]=i.useState(u),h=t=>{n||f&&m.createRipple(t)},x=t=>{n||t.key==="Enter"&&l(!e)};return y.useUpdateEffect(()=>{r&&r(e)},[e]),s.jsxs("label",{className:a.clsx(`switch ${p}`),htmlFor:c,onClick:h,onKeyDown:x,children:[s.jsx("input",{type:"checkbox",id:c,checked:e,onChange:()=>l(!e)}),s.jsx("span",{className:a.clsx(`slider ${d?"flat":"round"}`)})]})};exports.Switch=b;