analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
81 lines (74 loc) • 2.88 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
var _chunk34ST3MKOjs = require('./chunk-34ST3MKO.js');
var _chunkTN3AYOMVjs = require('./chunk-TN3AYOMV.js');
// src/components/ToggleSwitch/ToggleSwitch.tsx
var _jsxruntime = require('react/jsx-runtime');
var SIZE_CLASSES = {
small: {
track: "h-5 w-9",
thumb: "h-4 w-4",
translate: "translate-x-4"
},
medium: {
track: "h-6 w-11",
thumb: "h-5 w-5",
translate: "translate-x-5"
},
large: {
track: "h-7 w-14",
thumb: "h-6 w-6",
translate: "translate-x-7"
}
};
var ToggleSwitch = ({
checked = false,
onChange,
size = "small",
disabled = false,
className = "",
thumbClassName = "",
checkedColor = "bg-success-500",
uncheckedColor = "bg-border-300",
...props
}) => {
const sizeClasses = SIZE_CLASSES[size];
const trackClasses = _chunkTN3AYOMVjs.cn.call(void 0,
"relative inline-flex shrink-0 cursor-pointer rounded-full border-2 border-transparent",
"transition-colors duration-200 ease-in-out",
"focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2",
sizeClasses.track,
checked ? checkedColor : uncheckedColor,
disabled && "cursor-not-allowed opacity-40",
className
);
const thumbClasses = _chunkTN3AYOMVjs.cn.call(void 0,
"pointer-events-none inline-block transform rounded-full bg-white shadow ring-0",
"transition duration-200 ease-in-out",
sizeClasses.thumb,
checked ? sizeClasses.translate : "translate-x-0",
thumbClassName
);
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
_chunk34ST3MKOjs.Button_default,
{
variant: "raw",
type: "button",
role: "switch",
"aria-checked": checked,
disabled,
className: trackClasses,
...props,
onClick: (e) => {
_optionalChain([props, 'access', _ => _.onClick, 'optionalCall', _2 => _2(e)]);
if (!e.defaultPrevented) {
_optionalChain([onChange, 'optionalCall', _3 => _3()]);
}
},
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: thumbClasses })
}
);
};
ToggleSwitch.displayName = "ToggleSwitch";
var ToggleSwitch_default = ToggleSwitch;
exports.ToggleSwitch_default = ToggleSwitch_default;
//# sourceMappingURL=chunk-K74LIVOM.js.map