UNPKG

@jay-js/ui

Version:

A library of UI components for Jay JS with Tailwind CSS and daisyUI.

122 lines (121 loc) 4.15 kB
function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _object_spread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _define_property(target, key, source[key]); }); } return target; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _object_without_properties(source, excluded) { if (source == null) return {}; var target = _object_without_properties_loose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for(i = 0; i < sourceSymbolKeys.length; i++){ key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _object_without_properties_loose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for(i = 0; i < sourceKeys.length; i++){ key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import { Base, Input, Typography } from "@jay-js/elements"; import { cn } from "../../utils/cn.js"; export function Toggle(_param = { tag: "div" }) { var { label, color, size, position = "toggle-after", formControl } = _param, props = _object_without_properties(_param, [ "label", "color", "size", "position", "formControl" ]); const className = cn("toggle", color, size, props.className); const toggleElement = Input(_object_spread_props(_object_spread({}, props), { tag: "input", type: "checkbox", className })); if (label) { const labelElement = Base({ tag: "label", className: "label cursor-pointer justify-start gap-2" }); const labelText = Typography({ tag: "span", className: "label-text", children: label }); labelElement.append(labelText); if (position === "toggle-before") { labelElement.append(toggleElement); } else { labelElement.prepend(toggleElement); } const formControlContainer = Base(_object_spread_props(_object_spread({}, formControl), { className: cn("form-control", formControl === null || formControl === void 0 ? void 0 : formControl.className), children: labelElement })); return formControlContainer; } return toggleElement; }