UNPKG

@jay-js/ui

Version:

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

152 lines (151 loc) 4.79 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 { Box } from "../Box/Box.js"; import { Input } from "../Input/Input.js"; import { Base } from "../Base/index.js"; import { Typography } from "../Typography/Typography.js"; import { mergeClasses } from "../../utils/mergeClasses.js"; import "./FileInput.style.css"; export function FileInput(_param = { tag: "div" }) { var { label, labelAlt, helpers, bordered, ghost, color, inputSize } = _param, props = _object_without_properties(_param, [ "label", "labelAlt", "helpers", "bordered", "ghost", "color", "inputSize" ]); const className = mergeClasses([ "file-input", bordered ? "file-input-bordered" : "", ghost ? "file-input-ghost" : "", color, inputSize, props.className, "file-input-placeholder" ]); const inputElement = Input(_object_spread_props(_object_spread({}, props), { tag: "input", type: "file", placeholder: " ", className })); const inputId = inputElement.id; const formControl = Box({ className: "form-control relative" }); if (label) { const labelElement = Base({ tag: "label", className: "label" }); const labelText = Typography({ tag: "span", className: "label-text", children: label }); labelElement.append(labelText); if (labelAlt) { const labelTextAlt = Typography({ tag: "span", className: "label-text-alt", children: labelAlt }); labelElement.append(labelTextAlt); } formControl.append(labelElement); } formControl.append(inputElement); if (helpers) { const helperElement = Base({ tag: "label", className: "label", dataset: { helper: inputId } }); helperElement.append(...helpers); formControl.append(helperElement); } return formControl; }