import { jsx as a } from "../../../external/.pnpm/preact@10.28.2/node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js";
import { useCallback as h, useMemo as u } from "../../../external/.pnpm/preact@10.28.2/node_modules/preact/hooks/dist/hooks.module.js";
import { classes as e } from "./constants.js";
import c from "classnames";
/* empty css                  */
import { fixedForwardRef as g } from "../../../utils/preact/fixedForwardRef.js";
import { Fragment as d } from "../../../external/.pnpm/preact@10.28.2/node_modules/preact/dist/preact.module.js";
import { Icon as k } from "../Icon/Icon.js";
const T = g(
  ({ className: n, children: o, labelBeforeSwitch: s, onClick: t, readOnly: r, ...i }, p) => {
    const f = h(
      (m) => {
        r ? m.preventDefault() : t?.(m);
      },
      [r, t]
    ), l = u(
      () => /* @__PURE__ */ a("div", { className: c(e.label, { [e.labelBefore]: s }), children: o }),
      [o, s]
    );
    return /* @__PURE__ */ a(
      "label",
      {
        "data-testid": "toggle-switch",
        className: c(n, e.root, { [e.disabled]: i.disabled, [e.readonly]: r }),
        children: [
          s && /* @__PURE__ */ a(d, { children: l }),
          /* @__PURE__ */ a("div", { "data-testid": "toggle-switch-control", className: e.switch, children: [
            /* @__PURE__ */ a("input", { ...i, ref: p, type: "checkbox", className: "adyen-pe-visually-hidden", "aria-readonly": r, onClick: f }),
            /* @__PURE__ */ a("span", { className: e.slider, children: /* @__PURE__ */ a(k, { className: e.mark, name: "checkmark" }) })
          ] }),
          !s && /* @__PURE__ */ a(d, { children: l })
        ]
      }
    );
  }
);
export {
  T as default
};
