UNPKG

@brightsoftware/date-np

Version:

Simple & minimal Nepali date picker that just works.

38 lines (37 loc) 1.38 kB
import { jsx as i, jsxs as u } from "react/jsx-runtime"; import { useRef as a, useEffect as l } from "react"; import { cn as f } from "../../utils/clsx.js"; import { TimePickerProvider as p, useTimePicker as k } from "./hooks/useTimePicker.js"; import { TimePickerInput as P } from "./components/time-picker-input.js"; import { TimePickerBody as v } from "./components/time-picker-body.js"; const T = ({ className: r, shouldShowInput: t = !0, inputProps: s, onTimeChange: m }) => { const { timePickerState: e, setVisibility: c } = k(), o = a(null); return l(() => { const n = (d) => { o.current && !o.current.contains(d.target) && c(!1); }; return e.isVisible && document.addEventListener("mousedown", n), () => { document.removeEventListener("mousedown", n); }; }, [e.isVisible, c]), l(() => { m && m(e.selectedTime); }, [e.selectedTime, m]), /* @__PURE__ */ u("div", { className: f("relative", r), ref: o, children: [ t && /* @__PURE__ */ i(P, { ...s }), e.isVisible && /* @__PURE__ */ i("div", { className: f( "absolute z-50 mt-2", t ? "top-full left-0" : "top-0 left-0" ), children: /* @__PURE__ */ i(v, {}) }) ] }); }, L = ({ format: r = "am/pm", defaultTime: t, ...s }) => /* @__PURE__ */ i(p, { format: r, defaultTime: t, children: /* @__PURE__ */ i(T, { ...s }) }); export { L as TimePicker };