Files
Basilosaurusrex f027651f9b main repo
2025-11-24 18:09:40 +01:00

41 lines
1.1 KiB
JavaScript

"use client";
// packages/react/toggle/src/Toggle.tsx
import * as React from "react";
import { composeEventHandlers } from "@radix-ui/primitive";
import { useControllableState } from "@radix-ui/react-use-controllable-state";
import { Primitive } from "@radix-ui/react-primitive";
import { jsx } from "react/jsx-runtime";
var NAME = "Toggle";
var Toggle = React.forwardRef((props, forwardedRef) => {
const { pressed: pressedProp, defaultPressed = false, onPressedChange, ...buttonProps } = props;
const [pressed = false, setPressed] = useControllableState({
prop: pressedProp,
onChange: onPressedChange,
defaultProp: defaultPressed
});
return /* @__PURE__ */ jsx(
Primitive.button,
{
type: "button",
"aria-pressed": pressed,
"data-state": pressed ? "on" : "off",
"data-disabled": props.disabled ? "" : void 0,
...buttonProps,
ref: forwardedRef,
onClick: composeEventHandlers(props.onClick, () => {
if (!props.disabled) {
setPressed(!pressed);
}
})
}
);
});
Toggle.displayName = NAME;
var Root = Toggle;
export {
Root,
Toggle
};
//# sourceMappingURL=index.mjs.map