UNPKG

alinea

Version:

[![npm](https://img.shields.io/npm/v/alinea.svg)](https://npmjs.org/package/alinea) [![install size](https://packagephobia.com/badge?p=alinea)](https://packagephobia.com/result?p=alinea)

76 lines (72 loc) 2.19 kB
import "../../chunks/chunk-U5RRZUYZ.js"; // src/input/text/TextField.browser.tsx import { Field } from "alinea/core"; import { useField } from "alinea/dashboard/editor/UseField"; import { InputLabel } from "alinea/dashboard/view/InputLabel"; import { HStack, fromModule } from "alinea/ui"; import { IcRoundTextFields } from "alinea/ui/icons/IcRoundTextFields"; import { TextareaAutosize } from "alinea/ui/util/TextareaAutosize"; import { useState } from "react"; import { text as createText } from "./TextField.js"; // src/input/text/TextInput.module.scss var TextInput_module_default = { "root-input": "alinea-TextInput-input", "rootInput": "alinea-TextInput-input" }; // src/input/text/TextField.browser.tsx export * from "./TextField.js"; import { jsx, jsxs } from "react/jsx-runtime"; var text = Field.provideView(TextInput, createText); var styles = fromModule(TextInput_module_default); function TextInput({ field }) { const { value, mutator, label, options } = useField(field); const [focus, setFocus] = useState(false); const { width, multiline, inline, optional, help, iconLeft: IconLeft, iconRight: IconRight, autoFocus } = options; const Input = multiline ? TextareaAutosize : "input"; const placeholder = inline ? String(label) : ""; const empty = value === ""; return /* @__PURE__ */ jsx( InputLabel, { asLabel: true, label, help, optional, inline, width, focused: focus, icon: IcRoundTextFields, empty, children: /* @__PURE__ */ jsxs(HStack, { center: true, gap: 8, children: [ IconLeft && /* @__PURE__ */ jsx(IconLeft, {}), /* @__PURE__ */ jsx( Input, { className: styles.root.input(), type: "text", value: value || "", onChange: (e) => mutator(e.currentTarget.value), onFocus: () => setFocus(true), onBlur: () => setFocus(false), placeholder, autoFocus, disabled: options.readOnly } ), IconRight && /* @__PURE__ */ jsx(IconRight, {}) ] }) } ); } export { text };