{"version":3,"file":"index16.mjs","sources":["../src/components/selection-control/toggle-switch/index.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport styles from \"./ToggleSwitch.module.css\";\nimport { useFocusHandling } from \"../../../hooks\";\n\ninterface ToggleSwitchProps {\n  selected?: \"off\" | \"on\";\n  state?: \"default\" | \"disabled\";\n  onChange?: (selected: \"off\" | \"on\") => void;\n  className?: string;\n}\n\nexport const ToggleSwitch = ({\n  className = \"\",\n  selected: externalSelected = \"off\",\n  state = \"default\",\n  onChange,\n}: ToggleSwitchProps) => {\n  const [selected, setSelected] = useState(externalSelected);\n  const [isFocused, setIsFocused] = useState(false);\n\n  const handleClick = () => {\n    if (state === \"disabled\") return;\n    setSelected(selected === \"off\" ? \"on\" : \"off\");\n    onChange?.(selected);\n  };\n\n  const { handleFocus, handleBlur } = useFocusHandling({\n    isDisabled: state === \"disabled\",\n    setHighlight: setIsFocused,\n    onEnter: handleClick,\n  });\n\n  useEffect(() => {\n    setSelected(externalSelected);\n  }, [externalSelected]);\n\n  return (\n    <div\n      className={[styles.root, className, \"quill-ui-next-component\"].join(\" \")}\n      data-selected={selected}\n      data-state={state}\n      onClick={handleClick}\n      onFocus={handleFocus}\n      onBlur={handleBlur}\n      tabIndex={state !== \"disabled\" ? 0 : -1}\n    >\n      <div className={styles.knob}></div>\n      {isFocused && <div className={styles.bgFocus}></div>}\n    </div>\n  );\n};\n"],"names":[],"mappings":";;;;AAWO,MAAM,eAAe,CAAC;AAAA,EAC3B,YAAY;AAAA,EACZ,UAAU,mBAAmB;AAAA,EAC7B,QAAQ;AAAA,EACR;AACF,MAAyB;AACvB,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,gBAAgB;AACzD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,KAAK;AAEhD,QAAM,cAAc,MAAM;AACxB,QAAI,UAAU,WAAY;AACd,gBAAA,aAAa,QAAQ,OAAO,KAAK;AAC7C,yCAAW;AAAA,EACb;AAEA,QAAM,EAAE,aAAa,WAAW,IAAI,iBAAiB;AAAA,IACnD,YAAY,UAAU;AAAA,IACtB,cAAc;AAAA,IACd,SAAS;AAAA,EAAA,CACV;AAED,YAAU,MAAM;AACd,gBAAY,gBAAgB;AAAA,EAAA,GAC3B,CAAC,gBAAgB,CAAC;AAGnB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,CAAC,OAAO,MAAM,WAAW,yBAAyB,EAAE,KAAK,GAAG;AAAA,MACvE,iBAAe;AAAA,MACf,cAAY;AAAA,MACZ,SAAS;AAAA,MACT,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,UAAU,UAAU,aAAa,IAAI;AAAA,MAErC,UAAA;AAAA,QAAC,oBAAA,OAAA,EAAI,WAAW,OAAO,KAAM,CAAA;AAAA,QAC5B,aAAa,oBAAC,OAAI,EAAA,WAAW,OAAO,QAAS,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAChD;AAEJ;"}