@skiddph/prui 0.8.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/combobox.js +123 -113
- package/dist/core/date-picker.d.ts +26 -5
- package/dist/core/date-picker.js +245 -133
- package/dist/core/dialog.d.ts +7 -0
- package/dist/core/dialog.js +63 -44
- package/dist/core/index.d.ts +3 -2
- package/dist/core/modal.js +133 -126
- package/dist/core/select.js +136 -128
- package/dist/core/time-picker.d.ts +68 -0
- package/dist/core/time-picker.js +305 -0
- package/dist/core/toast.js +73 -64
- package/dist/core.js +113 -105
- package/dist/i18n/index.d.ts +6 -0
- package/dist/i18n.js +17 -11
- package/dist/index.js +210 -202
- package/dist/prui-utilities.css +1 -1
- package/dist/prui.css +1 -1
- package/package.json +1 -1
package/dist/core/select.js
CHANGED
|
@@ -1,152 +1,155 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import * as
|
|
3
|
-
import { ChevronDown as
|
|
1
|
+
import { jsxs as D, jsx as y, Fragment as W } from "react/jsx-runtime";
|
|
2
|
+
import * as a from "react";
|
|
3
|
+
import { ChevronDown as q, Check as H } from "lucide-react";
|
|
4
4
|
import { cn as A } from "./cn.js";
|
|
5
|
-
import { useOverlayStack as
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
import { useOverlayStack as B, useEscapeKey as G, Portal as J } from "./overlay.js";
|
|
6
|
+
import { useAnchoredPosition as Q } from "./anchor.js";
|
|
7
|
+
import { typeaheadIndex as X, endIndex as Y, homeIndex as Z, moveIndex as F } from "./list-nav.js";
|
|
8
|
+
const L = a.createContext(null);
|
|
9
|
+
function E() {
|
|
10
|
+
const i = a.useContext(L);
|
|
11
|
+
if (!i) throw new Error("Select parts must be used inside <Select>");
|
|
12
|
+
return i;
|
|
12
13
|
}
|
|
13
|
-
const
|
|
14
|
-
options:
|
|
15
|
-
value:
|
|
16
|
-
defaultValue:
|
|
17
|
-
placeholder:
|
|
18
|
-
disabled:
|
|
14
|
+
const _ = ({
|
|
15
|
+
options: i,
|
|
16
|
+
value: u,
|
|
17
|
+
defaultValue: b,
|
|
18
|
+
placeholder: d = "Select...",
|
|
19
|
+
disabled: f,
|
|
19
20
|
name: l,
|
|
20
21
|
id: v,
|
|
21
|
-
onChange:
|
|
22
|
-
onOpenChange:
|
|
23
|
-
children:
|
|
22
|
+
onChange: n,
|
|
23
|
+
onOpenChange: p,
|
|
24
|
+
children: w,
|
|
24
25
|
...g
|
|
25
26
|
}) => {
|
|
26
|
-
var
|
|
27
|
-
const [
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
if (!(
|
|
31
|
-
const
|
|
32
|
-
return delete
|
|
27
|
+
var o;
|
|
28
|
+
const [m, h] = a.useState(b ?? ""), [x, S] = a.useState(!1), [e, V] = a.useState(null), [O, P] = a.useState({}), T = u !== void 0 ? u : m, I = a.useCallback((r, c) => {
|
|
29
|
+
P((s) => {
|
|
30
|
+
if (c === null) {
|
|
31
|
+
if (!(r in s)) return s;
|
|
32
|
+
const R = { ...s };
|
|
33
|
+
return delete R[r], R;
|
|
33
34
|
}
|
|
34
|
-
return
|
|
35
|
+
return s[r] === c ? s : { ...s, [r]: c };
|
|
35
36
|
});
|
|
36
|
-
}, []),
|
|
37
|
-
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
},
|
|
41
|
-
return /* @__PURE__ */
|
|
42
|
-
|
|
37
|
+
}, []), N = (r) => {
|
|
38
|
+
u === void 0 && h(r), n == null || n(r);
|
|
39
|
+
}, k = (r) => {
|
|
40
|
+
S(r), p == null || p(r);
|
|
41
|
+
}, j = () => e == null ? void 0 : e.focus(), t = O[T] ?? ((o = i == null ? void 0 : i.find((r) => r.value === T)) == null ? void 0 : o.label);
|
|
42
|
+
return /* @__PURE__ */ D(
|
|
43
|
+
L.Provider,
|
|
43
44
|
{
|
|
44
|
-
value: { value:
|
|
45
|
+
value: { value: T, displayValue: t, open: x, triggerEl: e, triggerId: (e == null ? void 0 : e.id) || void 0, setValue: N, setOpen: k, registerTrigger: V, returnFocusToTrigger: j, registerLabel: I },
|
|
45
46
|
children: [
|
|
46
|
-
l ? /* @__PURE__ */
|
|
47
|
-
|
|
48
|
-
/* @__PURE__ */
|
|
49
|
-
/* @__PURE__ */
|
|
47
|
+
l ? /* @__PURE__ */ y("input", { type: "hidden", name: l, value: T }) : null,
|
|
48
|
+
w ?? /* @__PURE__ */ D(W, { children: [
|
|
49
|
+
/* @__PURE__ */ y(U, { disabled: f, id: v, ...g, children: /* @__PURE__ */ y($, { placeholder: d }) }),
|
|
50
|
+
/* @__PURE__ */ y(z, { children: (i ?? []).map((r) => /* @__PURE__ */ y(M, { value: r.value, disabled: r.disabled, children: r.label }, r.value)) })
|
|
50
51
|
] })
|
|
51
52
|
]
|
|
52
53
|
}
|
|
53
54
|
);
|
|
54
55
|
};
|
|
55
|
-
|
|
56
|
-
const U =
|
|
57
|
-
({ className:
|
|
58
|
-
const { open:
|
|
59
|
-
|
|
60
|
-
const
|
|
61
|
-
return /* @__PURE__ */
|
|
56
|
+
_.displayName = "Select";
|
|
57
|
+
const U = a.forwardRef(
|
|
58
|
+
({ className: i, children: u, onClick: b, onKeyDown: d, disabled: f, id: l, ...v }, n) => {
|
|
59
|
+
const { open: p, setOpen: w, registerTrigger: g } = E(), m = a.useRef(null), h = a.useId(), x = l ?? `prui-select-${h}`;
|
|
60
|
+
a.useEffect(() => (g(m.current), () => g(null)), [g]);
|
|
61
|
+
const S = `${x}-listbox`;
|
|
62
|
+
return /* @__PURE__ */ D(
|
|
62
63
|
"button",
|
|
63
64
|
{
|
|
64
|
-
ref: (
|
|
65
|
-
|
|
65
|
+
ref: (e) => {
|
|
66
|
+
m.current = e, typeof n == "function" ? n(e) : n && (n.current = e);
|
|
66
67
|
},
|
|
67
68
|
id: x,
|
|
68
69
|
type: "button",
|
|
69
70
|
role: "combobox",
|
|
70
|
-
"aria-expanded":
|
|
71
|
+
"aria-expanded": p,
|
|
71
72
|
"aria-haspopup": "listbox",
|
|
72
|
-
"aria-controls":
|
|
73
|
-
disabled:
|
|
74
|
-
"data-state":
|
|
73
|
+
"aria-controls": p ? S : void 0,
|
|
74
|
+
disabled: f,
|
|
75
|
+
"data-state": p ? "open" : "closed",
|
|
75
76
|
className: A(
|
|
76
77
|
"prui-select-trigger flex h-9 w-full items-center justify-between gap-2 border border-[var(--prui-line)]",
|
|
77
78
|
"bg-[var(--prui-background)] rounded-[var(--prui-radius)] px-3 text-sm text-[var(--prui-fg)]",
|
|
78
79
|
"outline-none transition-colors focus:border-[var(--prui-brand)] focus:ring-2 focus:ring-[var(--prui-brand)]/30",
|
|
79
80
|
"disabled:opacity-50 disabled:cursor-not-allowed cursor-pointer",
|
|
80
|
-
|
|
81
|
+
i
|
|
81
82
|
),
|
|
82
|
-
onClick: (
|
|
83
|
-
|
|
83
|
+
onClick: (e) => {
|
|
84
|
+
b == null || b(e), e.defaultPrevented || w(!p);
|
|
84
85
|
},
|
|
85
|
-
onKeyDown: (
|
|
86
|
-
|
|
86
|
+
onKeyDown: (e) => {
|
|
87
|
+
d == null || d(e), !e.defaultPrevented && !p && (e.key === "ArrowDown" || e.key === "ArrowUp" || e.key === "Enter" || e.key === " ") && (e.preventDefault(), w(!0));
|
|
87
88
|
},
|
|
88
89
|
...v,
|
|
89
90
|
children: [
|
|
90
|
-
|
|
91
|
-
/* @__PURE__ */
|
|
91
|
+
u,
|
|
92
|
+
/* @__PURE__ */ y(q, { className: A("h-4 w-4 shrink-0 text-[var(--prui-dim)] transition-transform", p && "rotate-180"), "aria-hidden": !0 })
|
|
92
93
|
]
|
|
93
94
|
}
|
|
94
95
|
);
|
|
95
96
|
}
|
|
96
97
|
);
|
|
97
98
|
U.displayName = "SelectTrigger";
|
|
98
|
-
const $ =
|
|
99
|
-
({ className:
|
|
100
|
-
const { value: l, displayValue: v } =
|
|
101
|
-
return /* @__PURE__ */
|
|
99
|
+
const $ = a.forwardRef(
|
|
100
|
+
({ className: i, placeholder: u, children: b, ...d }, f) => {
|
|
101
|
+
const { value: l, displayValue: v } = E();
|
|
102
|
+
return /* @__PURE__ */ y("span", { ref: f, className: A("truncate", i), ...d, children: b ?? v ?? (l || /* @__PURE__ */ y("span", { className: "text-[var(--prui-dim)]", children: u })) });
|
|
102
103
|
}
|
|
103
104
|
);
|
|
104
105
|
$.displayName = "SelectValue";
|
|
105
|
-
const z =
|
|
106
|
-
({ className:
|
|
107
|
-
const { open: l, setOpen: v,
|
|
108
|
-
|
|
109
|
-
|
|
106
|
+
const z = a.forwardRef(
|
|
107
|
+
({ className: i, children: u, id: b, ...d }, f) => {
|
|
108
|
+
const { open: l, setOpen: v, triggerEl: n, setValue: p, returnFocusToTrigger: w } = E(), g = a.useRef(null), [m, h] = a.useState(-1), x = a.useRef({ buffer: "", at: 0 }), S = a.useRef(null);
|
|
109
|
+
S.current = n;
|
|
110
|
+
const [e, V] = a.useState(null), { setElement: O, isTop: P } = B(l);
|
|
111
|
+
G(l, P, () => {
|
|
112
|
+
v(!1), w();
|
|
110
113
|
});
|
|
111
|
-
const N =
|
|
112
|
-
const
|
|
113
|
-
return
|
|
114
|
-
}, []), k = (
|
|
114
|
+
const { ref: T, position: I } = Q({ active: l, anchorRef: S, side: "bottom", align: "start" }), N = a.useCallback(() => {
|
|
115
|
+
const t = g.current;
|
|
116
|
+
return t ? Array.from(t.querySelectorAll("[role='option']")) : [];
|
|
117
|
+
}, []), k = (t) => {
|
|
115
118
|
var o;
|
|
116
|
-
|
|
119
|
+
h(t), (o = N()[t]) == null || o.focus();
|
|
117
120
|
};
|
|
118
|
-
if (
|
|
119
|
-
var
|
|
120
|
-
if (!l) return;
|
|
121
|
-
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
}, [l, N]), !l) return null;
|
|
125
|
-
const
|
|
126
|
-
const o = N(),
|
|
127
|
-
var
|
|
128
|
-
return ((
|
|
121
|
+
if (a.useEffect(() => {
|
|
122
|
+
var s;
|
|
123
|
+
if (!l || !e) return;
|
|
124
|
+
h(-1);
|
|
125
|
+
const t = N(), o = t.findIndex((R) => R.getAttribute("aria-selected") === "true"), r = t.findIndex((R) => R.getAttribute("aria-disabled") !== "true"), c = o >= 0 ? o : r;
|
|
126
|
+
c >= 0 && (h(c), (s = t[c]) == null || s.focus());
|
|
127
|
+
}, [l, e, N]), !l) return null;
|
|
128
|
+
const j = (t) => {
|
|
129
|
+
const o = N(), r = (c) => {
|
|
130
|
+
var s;
|
|
131
|
+
return ((s = o[c]) == null ? void 0 : s.getAttribute("aria-disabled")) !== "true";
|
|
129
132
|
};
|
|
130
|
-
switch (
|
|
133
|
+
switch (t.key) {
|
|
131
134
|
case "ArrowDown":
|
|
132
|
-
|
|
135
|
+
t.preventDefault(), k(F(m, 1, o.length, { enabled: r }));
|
|
133
136
|
break;
|
|
134
137
|
case "ArrowUp":
|
|
135
|
-
|
|
138
|
+
t.preventDefault(), k(F(m, -1, o.length, { enabled: r }));
|
|
136
139
|
break;
|
|
137
140
|
case "Home":
|
|
138
|
-
|
|
141
|
+
t.preventDefault(), k(Z(o.length, r));
|
|
139
142
|
break;
|
|
140
143
|
case "End":
|
|
141
|
-
|
|
144
|
+
t.preventDefault(), k(Y(o.length, r));
|
|
142
145
|
break;
|
|
143
146
|
case "Enter":
|
|
144
147
|
case " ": {
|
|
145
|
-
|
|
146
|
-
const
|
|
147
|
-
if (
|
|
148
|
-
const
|
|
149
|
-
|
|
148
|
+
t.preventDefault();
|
|
149
|
+
const c = o[m];
|
|
150
|
+
if (c && r(m)) {
|
|
151
|
+
const s = c.dataset.value;
|
|
152
|
+
s !== void 0 ? (p(s), v(!1), w()) : c.click();
|
|
150
153
|
}
|
|
151
154
|
break;
|
|
152
155
|
}
|
|
@@ -154,72 +157,77 @@ const z = r.forwardRef(
|
|
|
154
157
|
v(!1);
|
|
155
158
|
break;
|
|
156
159
|
default:
|
|
157
|
-
if (
|
|
158
|
-
const
|
|
159
|
-
|
|
160
|
+
if (t.key.length === 1) {
|
|
161
|
+
const c = () => o.map((R) => R.textContent ?? ""), { index: s } = X(c, x.current, t.key, m);
|
|
162
|
+
s >= 0 && s !== m && (t.preventDefault(), k(s));
|
|
160
163
|
}
|
|
161
164
|
}
|
|
162
165
|
};
|
|
163
|
-
return /* @__PURE__ */
|
|
166
|
+
return /* @__PURE__ */ y(J, { children: /* @__PURE__ */ y(
|
|
164
167
|
"div",
|
|
165
168
|
{
|
|
166
|
-
ref: (
|
|
167
|
-
g.current =
|
|
169
|
+
ref: (t) => {
|
|
170
|
+
g.current = t, V(t), T(t), O(t), typeof f == "function" ? f(t) : f && (f.current = t);
|
|
168
171
|
},
|
|
169
|
-
id:
|
|
172
|
+
id: b ?? (n != null && n.id ? `${n.id}-listbox` : void 0),
|
|
170
173
|
role: "listbox",
|
|
171
|
-
"aria-labelledby":
|
|
174
|
+
"aria-labelledby": (n == null ? void 0 : n.id) || void 0,
|
|
172
175
|
tabIndex: -1,
|
|
173
176
|
"data-state": l ? "open" : "closed",
|
|
174
|
-
onKeyDown:
|
|
177
|
+
onKeyDown: j,
|
|
175
178
|
className: A(
|
|
176
|
-
"prui-select-content
|
|
179
|
+
"prui-select-content fixed z-[var(--prui-z-overlay)] max-h-60 overflow-auto p-1",
|
|
177
180
|
"bg-[var(--prui-surface)] border border-[var(--prui-line)] rounded-[var(--prui-radius)] shadow-[var(--prui-shadow-md)] outline-none",
|
|
178
|
-
|
|
181
|
+
i
|
|
179
182
|
),
|
|
180
|
-
|
|
181
|
-
|
|
183
|
+
style: {
|
|
184
|
+
top: (I == null ? void 0 : I.top) ?? -9999,
|
|
185
|
+
left: (I == null ? void 0 : I.left) ?? -9999,
|
|
186
|
+
minWidth: n ? Math.max(n.offsetWidth, 160) : 160
|
|
187
|
+
},
|
|
188
|
+
...d,
|
|
189
|
+
children: u
|
|
182
190
|
}
|
|
183
|
-
);
|
|
191
|
+
) });
|
|
184
192
|
}
|
|
185
193
|
);
|
|
186
194
|
z.displayName = "SelectContent";
|
|
187
|
-
const
|
|
188
|
-
({ className:
|
|
189
|
-
const { value:
|
|
190
|
-
return
|
|
191
|
-
|
|
192
|
-
}, [
|
|
195
|
+
const M = a.forwardRef(
|
|
196
|
+
({ className: i, value: u, disabled: b, children: d, onClick: f, tabIndex: l = -1, ...v }, n) => {
|
|
197
|
+
const { value: p, setValue: w, setOpen: g, returnFocusToTrigger: m, registerLabel: h } = E(), x = p === u, S = typeof d == "string" || typeof d == "number" ? String(d) : void 0;
|
|
198
|
+
return a.useEffect(() => {
|
|
199
|
+
S !== void 0 && h(u, S);
|
|
200
|
+
}, [u, S, h]), /* @__PURE__ */ D(
|
|
193
201
|
"div",
|
|
194
202
|
{
|
|
195
|
-
ref:
|
|
203
|
+
ref: n,
|
|
196
204
|
role: "option",
|
|
197
205
|
"aria-selected": x,
|
|
198
|
-
"aria-disabled":
|
|
206
|
+
"aria-disabled": b,
|
|
199
207
|
"data-selected": x || void 0,
|
|
200
|
-
"data-value":
|
|
208
|
+
"data-value": u,
|
|
201
209
|
tabIndex: l,
|
|
202
210
|
className: A(
|
|
203
211
|
"prui-select-item relative flex cursor-pointer items-center gap-2 rounded-[calc(var(--prui-radius)-1px)]",
|
|
204
212
|
"py-1.5 pl-3 pr-8 text-sm text-[var(--prui-fg)] hover:bg-[var(--prui-raise)] focus-visible:bg-[var(--prui-raise)] outline-none",
|
|
205
213
|
x && "font-medium",
|
|
206
|
-
|
|
207
|
-
|
|
214
|
+
b && "opacity-50 pointer-events-none",
|
|
215
|
+
i
|
|
208
216
|
),
|
|
209
|
-
onClick: (
|
|
210
|
-
|
|
217
|
+
onClick: (e) => {
|
|
218
|
+
f == null || f(e), !(e.defaultPrevented || b) && (w(u), g(!1), m());
|
|
211
219
|
},
|
|
212
220
|
...v,
|
|
213
221
|
children: [
|
|
214
|
-
|
|
215
|
-
x ? /* @__PURE__ */
|
|
222
|
+
d,
|
|
223
|
+
x ? /* @__PURE__ */ y(H, { className: "absolute right-2 h-4 w-4 text-[var(--prui-brand)]", "aria-hidden": !0 }) : null
|
|
216
224
|
]
|
|
217
225
|
}
|
|
218
226
|
);
|
|
219
227
|
}
|
|
220
228
|
);
|
|
221
|
-
|
|
222
|
-
const
|
|
229
|
+
M.displayName = "SelectItem";
|
|
230
|
+
const ne = {
|
|
223
231
|
name: "Select",
|
|
224
232
|
props: [
|
|
225
233
|
{ name: "options", type: "SelectOption[]", default: "[]", control: "object" },
|
|
@@ -231,10 +239,10 @@ const te = {
|
|
|
231
239
|
]
|
|
232
240
|
};
|
|
233
241
|
export {
|
|
234
|
-
|
|
242
|
+
_ as Select,
|
|
235
243
|
z as SelectContent,
|
|
236
|
-
|
|
244
|
+
M as SelectItem,
|
|
237
245
|
U as SelectTrigger,
|
|
238
246
|
$ as SelectValue,
|
|
239
|
-
|
|
247
|
+
ne as selectPropsMeta
|
|
240
248
|
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { PropsMeta } from './props-meta';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
/**
|
|
4
|
+
* TimePicker / TimeRangePicker: time selection without a date library.
|
|
5
|
+
* Values are plain "HH:mm" strings (or "HH:mm:ss" with seconds). The
|
|
6
|
+
* picker is a popover with column grids (hours / minutes / seconds) using
|
|
7
|
+
* listbox semantics; arrows move within a column, Enter/Space pick,
|
|
8
|
+
* Escape (topmost) closes, and outside clicks dismiss. TimePanel is the
|
|
9
|
+
* inline grid pair (no popover) that DatePicker composes when
|
|
10
|
+
* timepicker is on.
|
|
11
|
+
*/
|
|
12
|
+
export interface TimePickerProps {
|
|
13
|
+
/** "HH:mm" or "HH:mm:ss" when seconds is set. */
|
|
14
|
+
value?: string;
|
|
15
|
+
defaultValue?: string;
|
|
16
|
+
onChange?: (time: string) => void;
|
|
17
|
+
/** Step between minute options, in minutes. Default 1. */
|
|
18
|
+
minuteStep?: number;
|
|
19
|
+
/** Include a seconds column ("HH:mm:ss" values). */
|
|
20
|
+
seconds?: boolean;
|
|
21
|
+
/** Earliest selectable time, inclusive. */
|
|
22
|
+
min?: string;
|
|
23
|
+
/** Latest selectable time, inclusive. */
|
|
24
|
+
max?: string;
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
placeholder?: string;
|
|
27
|
+
ariaLabel?: string;
|
|
28
|
+
className?: string;
|
|
29
|
+
}
|
|
30
|
+
export type TimeRange = {
|
|
31
|
+
from?: string;
|
|
32
|
+
to?: string;
|
|
33
|
+
};
|
|
34
|
+
export interface TimeRangePickerProps {
|
|
35
|
+
value?: TimeRange;
|
|
36
|
+
defaultValue?: TimeRange;
|
|
37
|
+
onChange?: (range: TimeRange) => void;
|
|
38
|
+
minuteStep?: number;
|
|
39
|
+
seconds?: boolean;
|
|
40
|
+
min?: string;
|
|
41
|
+
max?: string;
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
placeholder?: string;
|
|
44
|
+
ariaLabel?: string;
|
|
45
|
+
className?: string;
|
|
46
|
+
}
|
|
47
|
+
interface TimePanelProps {
|
|
48
|
+
value?: string;
|
|
49
|
+
onSelect: (time: string) => void;
|
|
50
|
+
minuteStep?: number;
|
|
51
|
+
seconds?: boolean;
|
|
52
|
+
min?: string;
|
|
53
|
+
max?: string;
|
|
54
|
+
/** Hide the column headers (used by the range picker's side-by-side pair). */
|
|
55
|
+
compact?: boolean;
|
|
56
|
+
className?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* TimePanel: the inline hour/minute(/second) grids. TimePicker renders it
|
|
60
|
+
* in a popover; DatePicker composes it directly; it is exported for
|
|
61
|
+
* custom compositions.
|
|
62
|
+
*/
|
|
63
|
+
export declare function TimePanel({ value, onSelect, minuteStep, seconds, min, max, compact, className }: TimePanelProps): React.JSX.Element;
|
|
64
|
+
export declare const TimePicker: React.ForwardRefExoticComponent<TimePickerProps & React.RefAttributes<HTMLInputElement>>;
|
|
65
|
+
export declare const TimeRangePicker: React.ForwardRefExoticComponent<TimeRangePickerProps & React.RefAttributes<HTMLInputElement>>;
|
|
66
|
+
export declare const timePickerPropsMeta: PropsMeta;
|
|
67
|
+
export declare const timeRangePickerPropsMeta: PropsMeta;
|
|
68
|
+
export {};
|