UNPKG

@easy-shadcn/react

Version:

Use shadcn/ui easy&enhance like component library

81 lines (75 loc) 2.71 kB
'use strict'; var chunk4RFGFQC6_js = require('./chunk-4RFGFQC6.js'); var React = require('react'); var utils = require('@easy-shadcn/utils'); var SwitchPrimitives = require('@radix-ui/react-switch'); var jsxRuntime = require('react/jsx-runtime'); function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n.default = e; return Object.freeze(n); } var React__namespace = /*#__PURE__*/_interopNamespace(React); var SwitchPrimitives__namespace = /*#__PURE__*/_interopNamespace(SwitchPrimitives); var Switch = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx( SwitchPrimitives__namespace.Root, { className: utils.cn( "peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className ), ...props, ref, children: /* @__PURE__ */ jsxRuntime.jsx( SwitchPrimitives__namespace.Thumb, { className: utils.cn( "pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0" ) } ) } )); Switch.displayName = SwitchPrimitives__namespace.Root.displayName; var Switch2 = ({ label, labelProps, wrapperClassName, checked, defaultChecked, onCheckedChange, ...restProps }) => { const [internalChecked, setInternalChecked] = React.useState(defaultChecked); const isChecked = checked ?? internalChecked; const handleChange = (checked2) => { onCheckedChange?.(checked2); setInternalChecked(checked2); }; return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: utils.cn("flex items-center space-x-2", wrapperClassName), children: [ /* @__PURE__ */ jsxRuntime.jsx(Switch, { checked: isChecked, onCheckedChange: handleChange, ...restProps }), label && /* @__PURE__ */ jsxRuntime.jsx( chunk4RFGFQC6_js.Label, { onClick: () => { handleChange(!isChecked); }, ...labelProps, children: label } ) ] }); }; exports.Switch = Switch2;