UNPKG

laif-ds

Version:

Design System di Laif con componenti React basati su principi di Atomic Design

56 lines (55 loc) 2.97 kB
"use client"; import { useLexicalComposerContext as N } from "./LexicalComposerContext.prod.js"; import { forwardRef as C, useState as p, useLayoutEffect as h, useEffect as F, useCallback as O, useMemo as P } from "react"; import { jsxs as U, Fragment as V, jsx as m } from "react/jsx-runtime"; import { $canShowPlaceholderCurry as $ } from "../text/LexicalText.prod.js"; import { mergeRegister as G } from "../utils/LexicalUtils.prod.js"; const L = typeof window < "u" && window.document !== void 0 && window.document.createElement !== void 0 ? h : F; function H({ editor: e, ariaActiveDescendant: t, ariaAutoComplete: l, ariaControls: d, ariaDescribedBy: n, ariaErrorMessage: o, ariaExpanded: a, ariaInvalid: u, ariaLabel: f, ariaLabelledBy: s, ariaMultiline: b, ariaOwns: k, ariaRequired: D, autoCapitalize: R, className: j, id: q, role: E = "textbox", spellCheck: z = !0, style: A, tabIndex: I, "data-testid": M, ...S }, v) { const [r, w] = p(e.isEditable()), x = O((i) => { i && i.ownerDocument && i.ownerDocument.defaultView ? e.setRootElement(i) : e.setRootElement(null); }, [e]), B = P(() => /* @__PURE__ */ function(...i) { return (g) => { i.forEach((c) => { typeof c == "function" ? c(g) : c != null && (c.current = g); }); }; }(v, x), [x, v]); return L(() => (w(e.isEditable()), e.registerEditableListener((i) => { w(i); })), [e]), m("div", { "aria-activedescendant": r ? t : void 0, "aria-autocomplete": r ? l : "none", "aria-controls": r ? d : void 0, "aria-describedby": n, ...o != null ? { "aria-errormessage": o } : {}, "aria-expanded": r && E === "combobox" ? !!a : void 0, ...u != null ? { "aria-invalid": u } : {}, "aria-label": f, "aria-labelledby": s, "aria-multiline": b, "aria-owns": r ? k : void 0, "aria-readonly": !r || void 0, "aria-required": D, autoCapitalize: R, className: j, contentEditable: r, "data-testid": M, id: q, ref: B, role: r ? E : void 0, spellCheck: z, style: A, tabIndex: I, ...S }); } const J = C(H); function y(e) { return e.getEditorState().read($(e.isComposing())); } const _ = C(K); function K(e, t) { const { placeholder: l, ...d } = e, [n] = N(); return U(V, { children: [m(J, { editor: n, ...d, ref: t }), l != null && m(Q, { editor: n, content: l })] }); } function Q({ content: e, editor: t }) { const l = function(a) { const [u, f] = p(() => y(a)); return L(() => { function s() { const b = y(a); f(b); } return s(), G(a.registerUpdateListener(() => { s(); }), a.registerEditableListener(() => { s(); })); }, [a]), u; }(t), [d, n] = p(t.isEditable()); if (h(() => (n(t.isEditable()), t.registerEditableListener((a) => { n(a); })), [t]), !l) return null; let o = null; return typeof e == "function" ? o = e(d) : e !== null && (o = e), o === null ? null : m("div", { "aria-hidden": !0, children: o }); } export { _ as ContentEditable, J as ContentEditableElement };