@teton/smith-ui 0.2.197 → 0.2.198
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/index.d.ts +1 -1
- package/dist/index.js +304 -188
- package/dist/select.d.ts +22 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { BackLink, InfoRow, SideNav, type SideNavItem, type TabItem, TabNav, } f
|
|
|
7
7
|
export { type DropdownItem, DropdownMenu } from './dropdown';
|
|
8
8
|
export { PageContainer } from './page-container';
|
|
9
9
|
export { SearchInput } from './search-input';
|
|
10
|
-
export { Select } from './select';
|
|
10
|
+
export { Select, SelectMenu, type SelectMenuOption, } from './select';
|
|
11
11
|
export { StatCard } from './stat-card';
|
|
12
12
|
export { StateTimeline, type TimelineLane, type TimelineSpan, type TimelineTone, UptimeBars, type UptimeBucket, } from './state-timeline';
|
|
13
13
|
export { type IconComponent, SECTION_THEMES, type SectionTheme, type SectionThemeName, } from './theme';
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { jsx as e, jsxs as
|
|
2
|
-
import { X as
|
|
3
|
-
import { useState as
|
|
4
|
-
import { Link as
|
|
5
|
-
const
|
|
1
|
+
import { jsx as e, jsxs as l, Fragment as $ } from "react/jsx-runtime";
|
|
2
|
+
import { X as M, ChevronRight as T, MoreHorizontal as K, Loader2 as P, ArrowLeft as U, ChevronDown as B, Search as H, Check as I } from "lucide-react";
|
|
3
|
+
import { useState as N, useRef as C, useEffect as L } from "react";
|
|
4
|
+
import { Link as w } from "react-router";
|
|
5
|
+
const X = {
|
|
6
6
|
gray: "bg-gray-100 text-gray-700",
|
|
7
7
|
blue: "bg-blue-100 text-blue-700",
|
|
8
8
|
green: "bg-green-100 text-green-700",
|
|
@@ -20,7 +20,7 @@ function ne({
|
|
|
20
20
|
return /* @__PURE__ */ e(
|
|
21
21
|
"span",
|
|
22
22
|
{
|
|
23
|
-
className: `px-1.5 py-0.5 text-xs font-medium ${t ? "rounded-full" : "rounded"} ${
|
|
23
|
+
className: `px-1.5 py-0.5 text-xs font-medium ${t ? "rounded-full" : "rounded"} ${X[r]} ${n}`,
|
|
24
24
|
children: a
|
|
25
25
|
}
|
|
26
26
|
);
|
|
@@ -31,9 +31,9 @@ function ae({
|
|
|
31
31
|
onClick: n,
|
|
32
32
|
onRemove: a,
|
|
33
33
|
active: o = !1,
|
|
34
|
-
title:
|
|
34
|
+
title: h
|
|
35
35
|
}) {
|
|
36
|
-
const
|
|
36
|
+
const i = /* @__PURE__ */ l($, { children: [
|
|
37
37
|
/* @__PURE__ */ e(
|
|
38
38
|
"span",
|
|
39
39
|
{
|
|
@@ -49,17 +49,17 @@ function ae({
|
|
|
49
49
|
}
|
|
50
50
|
)
|
|
51
51
|
] }), c = `inline-flex items-center overflow-hidden rounded-md border text-xs ${o ? "border-blue-300" : "border-gray-200"}`;
|
|
52
|
-
return a ? /* @__PURE__ */
|
|
53
|
-
|
|
52
|
+
return a ? /* @__PURE__ */ l("span", { className: c, children: [
|
|
53
|
+
i,
|
|
54
54
|
/* @__PURE__ */ e(
|
|
55
55
|
"button",
|
|
56
56
|
{
|
|
57
57
|
type: "button",
|
|
58
58
|
onClick: a,
|
|
59
|
-
title:
|
|
59
|
+
title: h,
|
|
60
60
|
"aria-label": `Remove ${t !== void 0 ? `${r}=${t}` : r}`,
|
|
61
61
|
className: `flex items-center px-1.5 py-1 border-l cursor-pointer transition-colors ${o ? "bg-blue-100 border-blue-200 text-blue-500 hover:bg-blue-200 hover:text-blue-700" : "border-gray-200 text-gray-400 hover:bg-gray-100 hover:text-gray-600"}`,
|
|
62
|
-
children: /* @__PURE__ */ e(
|
|
62
|
+
children: /* @__PURE__ */ e(M, { className: "w-3 h-3" })
|
|
63
63
|
}
|
|
64
64
|
)
|
|
65
65
|
] }) : n ? /* @__PURE__ */ e(
|
|
@@ -67,11 +67,11 @@ function ae({
|
|
|
67
67
|
{
|
|
68
68
|
type: "button",
|
|
69
69
|
onClick: n,
|
|
70
|
-
title:
|
|
70
|
+
title: h,
|
|
71
71
|
className: `${c} cursor-pointer transition-colors ${o ? "" : "hover:border-gray-300"}`,
|
|
72
|
-
children:
|
|
72
|
+
children: i
|
|
73
73
|
}
|
|
74
|
-
) : /* @__PURE__ */ e("span", { className: c, children:
|
|
74
|
+
) : /* @__PURE__ */ e("span", { className: c, children: i });
|
|
75
75
|
}
|
|
76
76
|
function oe({
|
|
77
77
|
segments: r,
|
|
@@ -79,7 +79,7 @@ function oe({
|
|
|
79
79
|
maxVisible: n = 5,
|
|
80
80
|
className: a = ""
|
|
81
81
|
}) {
|
|
82
|
-
const [o,
|
|
82
|
+
const [o, h] = N(!1), i = !o && r.length > n, c = i ? r.slice(0, 1) : [], m = i ? r.length - n : 0, b = i ? r.slice(1 + m) : r, p = i ? 1 + m : 0, d = (s, u) => u === r.length - 1 ? /* @__PURE__ */ e(
|
|
83
83
|
"span",
|
|
84
84
|
{
|
|
85
85
|
"aria-current": "page",
|
|
@@ -91,40 +91,40 @@ function oe({
|
|
|
91
91
|
"button",
|
|
92
92
|
{
|
|
93
93
|
type: "button",
|
|
94
|
-
onClick: () => t(
|
|
94
|
+
onClick: () => t(u),
|
|
95
95
|
className: "px-1.5 py-0.5 rounded text-gray-500 hover:text-gray-900 hover:bg-gray-100 transition-colors cursor-pointer truncate max-w-[12rem]",
|
|
96
96
|
children: s.label
|
|
97
97
|
},
|
|
98
98
|
s.key
|
|
99
99
|
);
|
|
100
|
-
return /* @__PURE__ */
|
|
100
|
+
return /* @__PURE__ */ l(
|
|
101
101
|
"nav",
|
|
102
102
|
{
|
|
103
103
|
"aria-label": "Breadcrumb",
|
|
104
104
|
className: `flex items-center gap-0.5 text-sm min-w-0 overflow-hidden ${a}`,
|
|
105
105
|
children: [
|
|
106
|
-
c.map((s,
|
|
107
|
-
d(s,
|
|
108
|
-
/* @__PURE__ */ e(
|
|
106
|
+
c.map((s, u) => /* @__PURE__ */ l("span", { className: "flex items-center gap-0.5 min-w-0", children: [
|
|
107
|
+
d(s, u),
|
|
108
|
+
/* @__PURE__ */ e(T, { className: "w-3.5 h-3.5 text-gray-300 flex-shrink-0" })
|
|
109
109
|
] }, s.key)),
|
|
110
|
-
|
|
110
|
+
i && /* @__PURE__ */ l("span", { className: "flex items-center gap-0.5 flex-shrink-0", children: [
|
|
111
111
|
/* @__PURE__ */ e(
|
|
112
112
|
"button",
|
|
113
113
|
{
|
|
114
114
|
type: "button",
|
|
115
|
-
onClick: () =>
|
|
115
|
+
onClick: () => h(!0),
|
|
116
116
|
title: `Show ${m} hidden ${m === 1 ? "folder" : "folders"}`,
|
|
117
117
|
className: "px-1 py-0.5 rounded text-gray-400 hover:text-gray-700 hover:bg-gray-100 transition-colors cursor-pointer",
|
|
118
|
-
children: /* @__PURE__ */ e(
|
|
118
|
+
children: /* @__PURE__ */ e(K, { className: "w-4 h-4" })
|
|
119
119
|
}
|
|
120
120
|
),
|
|
121
|
-
/* @__PURE__ */ e(
|
|
121
|
+
/* @__PURE__ */ e(T, { className: "w-3.5 h-3.5 text-gray-300" })
|
|
122
122
|
] }),
|
|
123
|
-
b.map((s,
|
|
124
|
-
const
|
|
125
|
-
return /* @__PURE__ */
|
|
126
|
-
d(s,
|
|
127
|
-
|
|
123
|
+
b.map((s, u) => {
|
|
124
|
+
const x = p + u;
|
|
125
|
+
return /* @__PURE__ */ l("span", { className: "flex items-center gap-0.5 min-w-0", children: [
|
|
126
|
+
d(s, x),
|
|
127
|
+
x < r.length - 1 && /* @__PURE__ */ e(T, { className: "w-3.5 h-3.5 text-gray-300 flex-shrink-0" })
|
|
128
128
|
] }, s.key);
|
|
129
129
|
})
|
|
130
130
|
]
|
|
@@ -170,43 +170,43 @@ function Z({
|
|
|
170
170
|
size: n = "md",
|
|
171
171
|
icon: a,
|
|
172
172
|
loading: o = !1,
|
|
173
|
-
disabled:
|
|
174
|
-
type:
|
|
173
|
+
disabled: h = !1,
|
|
174
|
+
type: i = "button",
|
|
175
175
|
title: c,
|
|
176
176
|
onClick: m,
|
|
177
177
|
to: b,
|
|
178
|
-
href:
|
|
178
|
+
href: p,
|
|
179
179
|
target: d,
|
|
180
180
|
className: s = "",
|
|
181
|
-
children:
|
|
181
|
+
children: u
|
|
182
182
|
}) {
|
|
183
|
-
const
|
|
184
|
-
o ? /* @__PURE__ */ e(
|
|
185
|
-
|
|
183
|
+
const x = `inline-flex items-center justify-center font-medium rounded-lg transition-colors duration-100 cursor-pointer active:scale-[.98] ${Y[n]} ${G[r]} ${V[r][t]} ${s}`, f = /* @__PURE__ */ l($, { children: [
|
|
184
|
+
o ? /* @__PURE__ */ e(P, { className: "w-4 h-4 animate-spin" }) : a,
|
|
185
|
+
u
|
|
186
186
|
] });
|
|
187
|
-
return b ? /* @__PURE__ */ e(
|
|
187
|
+
return b ? /* @__PURE__ */ e(w, { to: b, className: x, title: c, children: f }) : p ? /* @__PURE__ */ e(
|
|
188
188
|
"a",
|
|
189
189
|
{
|
|
190
|
-
href:
|
|
190
|
+
href: p,
|
|
191
191
|
target: d,
|
|
192
192
|
rel: d === "_blank" ? "noopener noreferrer" : void 0,
|
|
193
|
-
className:
|
|
193
|
+
className: x,
|
|
194
194
|
title: c,
|
|
195
|
-
children:
|
|
195
|
+
children: f
|
|
196
196
|
}
|
|
197
197
|
) : /* @__PURE__ */ e(
|
|
198
198
|
"button",
|
|
199
199
|
{
|
|
200
|
-
type:
|
|
200
|
+
type: i,
|
|
201
201
|
onClick: m,
|
|
202
|
-
disabled:
|
|
202
|
+
disabled: h || o,
|
|
203
203
|
title: c,
|
|
204
|
-
className: `${
|
|
205
|
-
children:
|
|
204
|
+
className: `${x} disabled:opacity-50 disabled:cursor-not-allowed`,
|
|
205
|
+
children: f
|
|
206
206
|
}
|
|
207
207
|
);
|
|
208
208
|
}
|
|
209
|
-
function
|
|
209
|
+
function S({
|
|
210
210
|
className: r = "",
|
|
211
211
|
children: t
|
|
212
212
|
}) {
|
|
@@ -224,21 +224,21 @@ function se({
|
|
|
224
224
|
theme: n,
|
|
225
225
|
count: a,
|
|
226
226
|
actions: o,
|
|
227
|
-
bodyClassName:
|
|
228
|
-
className:
|
|
227
|
+
bodyClassName: h = "p-5",
|
|
228
|
+
className: i = "",
|
|
229
229
|
children: c
|
|
230
230
|
}) {
|
|
231
|
-
return /* @__PURE__ */
|
|
232
|
-
/* @__PURE__ */
|
|
231
|
+
return /* @__PURE__ */ l(S, { className: `overflow-hidden ${i}`, children: [
|
|
232
|
+
/* @__PURE__ */ l(
|
|
233
233
|
"div",
|
|
234
234
|
{
|
|
235
235
|
className: `px-4 py-3 flex items-center justify-between border-b border-black/5 ${n.header}`,
|
|
236
236
|
children: [
|
|
237
|
-
/* @__PURE__ */
|
|
237
|
+
/* @__PURE__ */ l("h4", { className: "text-sm font-semibold flex items-center", children: [
|
|
238
238
|
r && /* @__PURE__ */ e(r, { className: "w-4 h-4 mr-2" }),
|
|
239
239
|
t
|
|
240
240
|
] }),
|
|
241
|
-
(o || a !== void 0) && /* @__PURE__ */
|
|
241
|
+
(o || a !== void 0) && /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
|
|
242
242
|
o,
|
|
243
243
|
a !== void 0 && /* @__PURE__ */ e(
|
|
244
244
|
"span",
|
|
@@ -251,7 +251,7 @@ function se({
|
|
|
251
251
|
]
|
|
252
252
|
}
|
|
253
253
|
),
|
|
254
|
-
/* @__PURE__ */ e("div", { className:
|
|
254
|
+
/* @__PURE__ */ e("div", { className: h, children: c })
|
|
255
255
|
] });
|
|
256
256
|
}
|
|
257
257
|
const q = {
|
|
@@ -265,15 +265,15 @@ function le({
|
|
|
265
265
|
action: a,
|
|
266
266
|
children: o
|
|
267
267
|
}) {
|
|
268
|
-
const { accent:
|
|
269
|
-
return /* @__PURE__ */ e(
|
|
270
|
-
/* @__PURE__ */
|
|
271
|
-
/* @__PURE__ */
|
|
268
|
+
const { accent: h, chip: i } = q[r];
|
|
269
|
+
return /* @__PURE__ */ e(S, { className: `border-l-4 ${h} px-5 py-4`, children: /* @__PURE__ */ l("div", { className: "flex items-start justify-between gap-4", children: [
|
|
270
|
+
/* @__PURE__ */ l("div", { className: "min-w-0 flex-1", children: [
|
|
271
|
+
/* @__PURE__ */ l("div", { className: "flex items-center gap-2.5 flex-wrap", children: [
|
|
272
272
|
/* @__PURE__ */ e("h4", { className: "text-base font-semibold text-gray-900", children: t }),
|
|
273
273
|
n && /* @__PURE__ */ e(
|
|
274
274
|
"span",
|
|
275
275
|
{
|
|
276
|
-
className: `text-[11px] font-bold uppercase tracking-wide px-1.5 py-0.5 rounded ${
|
|
276
|
+
className: `text-[11px] font-bold uppercase tracking-wide px-1.5 py-0.5 rounded ${i}`,
|
|
277
277
|
children: n
|
|
278
278
|
}
|
|
279
279
|
)
|
|
@@ -289,20 +289,20 @@ function ie({
|
|
|
289
289
|
count: n,
|
|
290
290
|
theme: a,
|
|
291
291
|
actions: o,
|
|
292
|
-
footer:
|
|
293
|
-
children:
|
|
292
|
+
footer: h,
|
|
293
|
+
children: i
|
|
294
294
|
}) {
|
|
295
|
-
return /* @__PURE__ */
|
|
296
|
-
/* @__PURE__ */
|
|
295
|
+
return /* @__PURE__ */ l(S, { className: "overflow-hidden flex flex-col", children: [
|
|
296
|
+
/* @__PURE__ */ l(
|
|
297
297
|
"div",
|
|
298
298
|
{
|
|
299
299
|
className: `px-4 py-3 flex items-center justify-between border-b border-black/5 ${a.header}`,
|
|
300
300
|
children: [
|
|
301
|
-
/* @__PURE__ */
|
|
301
|
+
/* @__PURE__ */ l("h4", { className: "text-sm font-semibold flex items-center", children: [
|
|
302
302
|
r && /* @__PURE__ */ e(r, { className: "w-4 h-4 mr-2" }),
|
|
303
303
|
t
|
|
304
304
|
] }),
|
|
305
|
-
/* @__PURE__ */
|
|
305
|
+
/* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
|
|
306
306
|
o,
|
|
307
307
|
n !== void 0 && /* @__PURE__ */ e(
|
|
308
308
|
"span",
|
|
@@ -315,35 +315,35 @@ function ie({
|
|
|
315
315
|
]
|
|
316
316
|
}
|
|
317
317
|
),
|
|
318
|
-
/* @__PURE__ */ e("div", { className: "divide-y divide-gray-100", children:
|
|
319
|
-
|
|
318
|
+
/* @__PURE__ */ e("div", { className: "divide-y divide-gray-100", children: i }),
|
|
319
|
+
h
|
|
320
320
|
] });
|
|
321
321
|
}
|
|
322
|
-
function
|
|
322
|
+
function ce({
|
|
323
323
|
to: r,
|
|
324
324
|
onClick: t,
|
|
325
325
|
hover: n = "hover:bg-gray-50",
|
|
326
326
|
className: a = "",
|
|
327
327
|
children: o
|
|
328
328
|
}) {
|
|
329
|
-
const
|
|
330
|
-
return r ? /* @__PURE__ */ e(
|
|
329
|
+
const i = `flex items-center justify-between px-4 py-3 transition-colors ${n} ${!!(r || t) ? "cursor-pointer" : ""} ${a}`;
|
|
330
|
+
return r ? /* @__PURE__ */ e(w, { to: r, className: i, children: o }) : t ? /* @__PURE__ */ e(
|
|
331
331
|
"button",
|
|
332
332
|
{
|
|
333
333
|
type: "button",
|
|
334
334
|
onClick: t,
|
|
335
|
-
className: `w-full text-left ${
|
|
335
|
+
className: `w-full text-left ${i}`,
|
|
336
336
|
children: o
|
|
337
337
|
}
|
|
338
|
-
) : /* @__PURE__ */ e("div", { className:
|
|
338
|
+
) : /* @__PURE__ */ e("div", { className: i, children: o });
|
|
339
339
|
}
|
|
340
|
-
function
|
|
340
|
+
function de({
|
|
341
341
|
to: r,
|
|
342
342
|
count: t,
|
|
343
343
|
noun: n = "items"
|
|
344
344
|
}) {
|
|
345
|
-
return /* @__PURE__ */
|
|
346
|
-
|
|
345
|
+
return /* @__PURE__ */ l(
|
|
346
|
+
w,
|
|
347
347
|
{
|
|
348
348
|
to: r,
|
|
349
349
|
className: "block px-4 py-2.5 text-sm font-medium text-blue-600 hover:text-blue-700 hover:bg-gray-50 transition-colors",
|
|
@@ -379,21 +379,21 @@ function ue({
|
|
|
379
379
|
onClick: t,
|
|
380
380
|
children: n
|
|
381
381
|
}) {
|
|
382
|
-
const a = "inline-flex items-center gap-2 text-sm font-medium text-gray-600 hover:text-gray-900 transition-colors cursor-pointer", o = /* @__PURE__ */
|
|
383
|
-
/* @__PURE__ */ e(
|
|
382
|
+
const a = "inline-flex items-center gap-2 text-sm font-medium text-gray-600 hover:text-gray-900 transition-colors cursor-pointer", o = /* @__PURE__ */ l($, { children: [
|
|
383
|
+
/* @__PURE__ */ e(U, { className: "w-4 h-4" }),
|
|
384
384
|
/* @__PURE__ */ e("span", { children: n })
|
|
385
385
|
] });
|
|
386
|
-
return r ? /* @__PURE__ */ e(
|
|
386
|
+
return r ? /* @__PURE__ */ e(w, { to: r, className: a, children: o }) : /* @__PURE__ */ e("button", { type: "button", onClick: t, className: a, children: o });
|
|
387
387
|
}
|
|
388
388
|
function be({
|
|
389
389
|
items: r,
|
|
390
390
|
actions: t
|
|
391
391
|
}) {
|
|
392
|
-
return /* @__PURE__ */
|
|
392
|
+
return /* @__PURE__ */ l("div", { className: "border-b border-gray-200 flex items-end justify-between gap-4", children: [
|
|
393
393
|
/* @__PURE__ */ e("nav", { className: "-mb-px flex space-x-8", children: r.map((n) => {
|
|
394
394
|
const a = n.active ? "py-2 px-1 border-b-2 border-blue-500 text-blue-600 font-medium text-sm" : "py-2 px-1 border-b-2 border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300 font-medium text-sm transition-colors cursor-pointer";
|
|
395
395
|
return n.to && !n.active ? /* @__PURE__ */ e(
|
|
396
|
-
|
|
396
|
+
w,
|
|
397
397
|
{
|
|
398
398
|
to: n.to,
|
|
399
399
|
state: n.state,
|
|
@@ -408,7 +408,7 @@ function be({
|
|
|
408
408
|
}
|
|
409
409
|
function me({ items: r }) {
|
|
410
410
|
return /* @__PURE__ */ e("nav", { className: "space-y-1", children: r.map((t) => {
|
|
411
|
-
const n = t.icon, a = `group/side relative flex items-center gap-3 h-10 rounded-md px-3 text-sm transition-all duration-200 cursor-pointer ${t.active ? "bg-blue-50 text-blue-700 font-medium" : "text-gray-600 hover:bg-gray-100 hover:text-gray-900"}`, o = /* @__PURE__ */
|
|
411
|
+
const n = t.icon, a = `group/side relative flex items-center gap-3 h-10 rounded-md px-3 text-sm transition-all duration-200 cursor-pointer ${t.active ? "bg-blue-50 text-blue-700 font-medium" : "text-gray-600 hover:bg-gray-100 hover:text-gray-900"}`, o = /* @__PURE__ */ l($, { children: [
|
|
412
412
|
/* @__PURE__ */ e(
|
|
413
413
|
"span",
|
|
414
414
|
{
|
|
@@ -418,7 +418,7 @@ function me({ items: r }) {
|
|
|
418
418
|
n && /* @__PURE__ */ e(n, { className: "w-[18px] h-[18px] shrink-0 transition-transform duration-200 group-hover/side:scale-110" }),
|
|
419
419
|
/* @__PURE__ */ e("span", { className: "truncate", children: t.label })
|
|
420
420
|
] });
|
|
421
|
-
return t.active ? /* @__PURE__ */ e("span", { className: a, "aria-current": "page", children: o }, t.to) : /* @__PURE__ */ e(
|
|
421
|
+
return t.active ? /* @__PURE__ */ e("span", { className: a, "aria-current": "page", children: o }, t.to) : /* @__PURE__ */ e(w, { to: t.to, className: a, children: o }, t.to);
|
|
422
422
|
}) });
|
|
423
423
|
}
|
|
424
424
|
function he({
|
|
@@ -427,8 +427,8 @@ function he({
|
|
|
427
427
|
iconClassName: n = "text-gray-400",
|
|
428
428
|
children: a
|
|
429
429
|
}) {
|
|
430
|
-
return /* @__PURE__ */
|
|
431
|
-
/* @__PURE__ */
|
|
430
|
+
return /* @__PURE__ */ l("div", { className: "flex items-center justify-between gap-4", children: [
|
|
431
|
+
/* @__PURE__ */ l("span", { className: "text-gray-700 flex items-center flex-shrink-0", children: [
|
|
432
432
|
t && /* @__PURE__ */ e(t, { className: `w-4 h-4 mr-2 ${n}` }),
|
|
433
433
|
r
|
|
434
434
|
] }),
|
|
@@ -442,42 +442,42 @@ const Q = {
|
|
|
442
442
|
green: "text-green-600",
|
|
443
443
|
orange: "text-orange-600",
|
|
444
444
|
gray: "text-gray-500"
|
|
445
|
-
},
|
|
445
|
+
}, R = "w-full flex items-start gap-3 px-3 py-2 text-left transition-colors hover:bg-gray-50 cursor-pointer";
|
|
446
446
|
function pe({
|
|
447
447
|
label: r,
|
|
448
448
|
items: t,
|
|
449
449
|
icon: n,
|
|
450
450
|
variant: a = "soft",
|
|
451
451
|
tone: o = "gray",
|
|
452
|
-
size:
|
|
453
|
-
align:
|
|
452
|
+
size: h = "md",
|
|
453
|
+
align: i = "right",
|
|
454
454
|
className: c = ""
|
|
455
455
|
}) {
|
|
456
|
-
const [m, b] =
|
|
457
|
-
return
|
|
456
|
+
const [m, b] = N(!1), p = C(null);
|
|
457
|
+
return L(() => {
|
|
458
458
|
if (!m) return;
|
|
459
|
-
const d = (
|
|
460
|
-
var
|
|
461
|
-
(
|
|
462
|
-
}, s = (
|
|
463
|
-
|
|
459
|
+
const d = (u) => {
|
|
460
|
+
var x;
|
|
461
|
+
(x = p.current) != null && x.contains(u.target) || b(!1);
|
|
462
|
+
}, s = (u) => {
|
|
463
|
+
u.key === "Escape" && b(!1);
|
|
464
464
|
};
|
|
465
465
|
return document.addEventListener("mousedown", d), document.addEventListener("keydown", s), () => {
|
|
466
466
|
document.removeEventListener("mousedown", d), document.removeEventListener("keydown", s);
|
|
467
467
|
};
|
|
468
|
-
}, [m]), /* @__PURE__ */
|
|
469
|
-
/* @__PURE__ */
|
|
468
|
+
}, [m]), /* @__PURE__ */ l("div", { className: `relative ${c}`, ref: p, children: [
|
|
469
|
+
/* @__PURE__ */ l(
|
|
470
470
|
Z,
|
|
471
471
|
{
|
|
472
472
|
variant: a,
|
|
473
473
|
tone: o,
|
|
474
|
-
size:
|
|
474
|
+
size: h,
|
|
475
475
|
icon: n,
|
|
476
476
|
onClick: () => b((d) => !d),
|
|
477
477
|
children: [
|
|
478
478
|
r,
|
|
479
479
|
/* @__PURE__ */ e(
|
|
480
|
-
|
|
480
|
+
B,
|
|
481
481
|
{
|
|
482
482
|
className: `w-4 h-4 transition-transform duration-200 ${m ? "rotate-180" : ""}`
|
|
483
483
|
}
|
|
@@ -488,17 +488,17 @@ function pe({
|
|
|
488
488
|
m && /* @__PURE__ */ e(
|
|
489
489
|
"div",
|
|
490
490
|
{
|
|
491
|
-
className: `absolute ${
|
|
491
|
+
className: `absolute ${i === "right" ? "right-0" : "left-0"} mt-2 w-64 py-1 bg-white rounded-lg shadow-lg border border-gray-200 z-50 animate-dropdown-in`,
|
|
492
492
|
children: t.map((d, s) => {
|
|
493
|
-
const
|
|
493
|
+
const u = Q[d.tone ?? "gray"], x = /* @__PURE__ */ l($, { children: [
|
|
494
494
|
d.icon && /* @__PURE__ */ e(
|
|
495
495
|
"span",
|
|
496
496
|
{
|
|
497
|
-
className: `flex items-center gap-1 mt-0.5 flex-shrink-0 ${
|
|
497
|
+
className: `flex items-center gap-1 mt-0.5 flex-shrink-0 ${u}`,
|
|
498
498
|
children: d.icon
|
|
499
499
|
}
|
|
500
500
|
),
|
|
501
|
-
/* @__PURE__ */
|
|
501
|
+
/* @__PURE__ */ l("span", { className: "min-w-0", children: [
|
|
502
502
|
/* @__PURE__ */ e("span", { className: "block text-sm font-medium text-gray-900", children: d.label }),
|
|
503
503
|
d.description && /* @__PURE__ */ e("span", { className: "block text-xs text-gray-500 mt-0.5 break-all", children: d.description })
|
|
504
504
|
] })
|
|
@@ -509,9 +509,9 @@ function pe({
|
|
|
509
509
|
href: d.href,
|
|
510
510
|
target: d.target,
|
|
511
511
|
rel: d.target === "_blank" ? "noopener noreferrer" : void 0,
|
|
512
|
-
className:
|
|
512
|
+
className: R,
|
|
513
513
|
onClick: () => b(!1),
|
|
514
|
-
children:
|
|
514
|
+
children: x
|
|
515
515
|
},
|
|
516
516
|
s
|
|
517
517
|
) : /* @__PURE__ */ e(
|
|
@@ -520,11 +520,11 @@ function pe({
|
|
|
520
520
|
type: "button",
|
|
521
521
|
disabled: d.disabled,
|
|
522
522
|
onClick: () => {
|
|
523
|
-
var
|
|
524
|
-
d.keepOpen || b(!1), (
|
|
523
|
+
var f;
|
|
524
|
+
d.keepOpen || b(!1), (f = d.onClick) == null || f.call(d);
|
|
525
525
|
},
|
|
526
|
-
className: `${
|
|
527
|
-
children:
|
|
526
|
+
className: `${R} disabled:opacity-50 disabled:cursor-not-allowed`,
|
|
527
|
+
children: x
|
|
528
528
|
},
|
|
529
529
|
s
|
|
530
530
|
);
|
|
@@ -552,25 +552,25 @@ function fe({
|
|
|
552
552
|
className: a = "w-full",
|
|
553
553
|
slashToFocus: o = !1
|
|
554
554
|
}) {
|
|
555
|
-
const
|
|
556
|
-
return
|
|
555
|
+
const h = C(null);
|
|
556
|
+
return L(() => {
|
|
557
557
|
if (!o) return;
|
|
558
|
-
function
|
|
558
|
+
function i(c) {
|
|
559
559
|
var b;
|
|
560
560
|
if (c.key !== "/" || c.ctrlKey || c.metaKey || c.altKey) return;
|
|
561
561
|
const m = c.target;
|
|
562
|
-
m.tagName === "INPUT" || m.tagName === "TEXTAREA" || m.tagName === "SELECT" || m.isContentEditable || (c.preventDefault(), (b =
|
|
562
|
+
m.tagName === "INPUT" || m.tagName === "TEXTAREA" || m.tagName === "SELECT" || m.isContentEditable || (c.preventDefault(), (b = h.current) == null || b.focus());
|
|
563
563
|
}
|
|
564
|
-
return document.addEventListener("keydown",
|
|
565
|
-
}, [o]), /* @__PURE__ */
|
|
566
|
-
/* @__PURE__ */ e(
|
|
564
|
+
return document.addEventListener("keydown", i), () => document.removeEventListener("keydown", i);
|
|
565
|
+
}, [o]), /* @__PURE__ */ l("div", { className: `relative ${a}`, children: [
|
|
566
|
+
/* @__PURE__ */ e(H, { className: "absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 w-4 h-4 pointer-events-none" }),
|
|
567
567
|
/* @__PURE__ */ e(
|
|
568
568
|
"input",
|
|
569
569
|
{
|
|
570
|
-
ref:
|
|
570
|
+
ref: h,
|
|
571
571
|
type: "text",
|
|
572
572
|
value: r,
|
|
573
|
-
onChange: (
|
|
573
|
+
onChange: (i) => t(i.target.value),
|
|
574
574
|
placeholder: n,
|
|
575
575
|
className: "w-full pl-10 pr-10 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-sm text-gray-900 placeholder-gray-400"
|
|
576
576
|
}
|
|
@@ -584,20 +584,135 @@ function ye({
|
|
|
584
584
|
children: n,
|
|
585
585
|
id: a,
|
|
586
586
|
className: o = "w-auto",
|
|
587
|
-
disabled:
|
|
587
|
+
disabled: h = !1
|
|
588
588
|
}) {
|
|
589
589
|
return /* @__PURE__ */ e(
|
|
590
590
|
"select",
|
|
591
591
|
{
|
|
592
592
|
id: a,
|
|
593
593
|
value: r,
|
|
594
|
-
onChange: (
|
|
595
|
-
disabled:
|
|
594
|
+
onChange: (i) => t(i.target.value),
|
|
595
|
+
disabled: h,
|
|
596
596
|
className: `px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-gray-900 text-sm disabled:opacity-50 ${o}`,
|
|
597
597
|
children: n
|
|
598
598
|
}
|
|
599
599
|
);
|
|
600
600
|
}
|
|
601
|
+
function ve({
|
|
602
|
+
value: r,
|
|
603
|
+
onChange: t,
|
|
604
|
+
options: n,
|
|
605
|
+
ariaLabel: a,
|
|
606
|
+
align: o = "left",
|
|
607
|
+
className: h = "",
|
|
608
|
+
menuClassName: i = "w-56"
|
|
609
|
+
}) {
|
|
610
|
+
const [c, m] = N(!1), [b, p] = N(null), d = C(null), s = n.findIndex((g) => g.value === r), u = s >= 0 ? n[s] : void 0;
|
|
611
|
+
L(() => {
|
|
612
|
+
if (!c) return;
|
|
613
|
+
const g = (y) => {
|
|
614
|
+
var v;
|
|
615
|
+
(v = d.current) != null && v.contains(y.target) || m(!1);
|
|
616
|
+
};
|
|
617
|
+
return document.addEventListener("mousedown", g), () => document.removeEventListener("mousedown", g);
|
|
618
|
+
}, [c]);
|
|
619
|
+
function x(g) {
|
|
620
|
+
const y = n[g];
|
|
621
|
+
y && (t(y.value), m(!1));
|
|
622
|
+
}
|
|
623
|
+
function f(g) {
|
|
624
|
+
if (g.key === "Escape") {
|
|
625
|
+
m(!1);
|
|
626
|
+
return;
|
|
627
|
+
}
|
|
628
|
+
if (g.key === "ArrowDown" || g.key === "ArrowUp") {
|
|
629
|
+
if (g.preventDefault(), !c) {
|
|
630
|
+
m(!0), p(s >= 0 ? s : 0);
|
|
631
|
+
return;
|
|
632
|
+
}
|
|
633
|
+
p((y) => {
|
|
634
|
+
const k = (y ?? s) + (g.key === "ArrowDown" ? 1 : -1);
|
|
635
|
+
return Math.max(0, Math.min(k, n.length - 1));
|
|
636
|
+
});
|
|
637
|
+
return;
|
|
638
|
+
}
|
|
639
|
+
c && g.key === "Enter" && b != null && (g.preventDefault(), x(b));
|
|
640
|
+
}
|
|
641
|
+
return /* @__PURE__ */ l(
|
|
642
|
+
"div",
|
|
643
|
+
{
|
|
644
|
+
className: `relative ${h}`,
|
|
645
|
+
ref: d,
|
|
646
|
+
onKeyDown: f,
|
|
647
|
+
children: [
|
|
648
|
+
/* @__PURE__ */ l(
|
|
649
|
+
"button",
|
|
650
|
+
{
|
|
651
|
+
type: "button",
|
|
652
|
+
"aria-label": a,
|
|
653
|
+
"aria-haspopup": "listbox",
|
|
654
|
+
"aria-expanded": c,
|
|
655
|
+
onClick: () => {
|
|
656
|
+
m((g) => !g), p(s >= 0 ? s : 0);
|
|
657
|
+
},
|
|
658
|
+
className: "w-full inline-flex items-center justify-between gap-2 px-3 py-2 text-sm font-medium rounded-lg border border-gray-200 bg-gray-50 text-gray-700 shadow-sm transition-colors duration-100 cursor-pointer hover:bg-gray-100 hover:shadow",
|
|
659
|
+
children: [
|
|
660
|
+
/* @__PURE__ */ e("span", { className: "truncate", children: (u == null ? void 0 : u.label) ?? r }),
|
|
661
|
+
/* @__PURE__ */ e(
|
|
662
|
+
B,
|
|
663
|
+
{
|
|
664
|
+
className: `w-4 h-4 flex-shrink-0 text-gray-400 transition-transform duration-200 ${c ? "rotate-180" : ""}`
|
|
665
|
+
}
|
|
666
|
+
)
|
|
667
|
+
]
|
|
668
|
+
}
|
|
669
|
+
),
|
|
670
|
+
c && /* @__PURE__ */ e(
|
|
671
|
+
"div",
|
|
672
|
+
{
|
|
673
|
+
role: "listbox",
|
|
674
|
+
"aria-label": a,
|
|
675
|
+
tabIndex: -1,
|
|
676
|
+
className: `absolute ${o === "right" ? "right-0" : "left-0"} mt-2 ${i} max-h-72 overflow-y-auto py-1 bg-white rounded-lg shadow-lg border border-gray-200 z-50 animate-dropdown-in`,
|
|
677
|
+
children: n.map((g, y) => {
|
|
678
|
+
const v = g.value === r;
|
|
679
|
+
return /* @__PURE__ */ l(
|
|
680
|
+
"button",
|
|
681
|
+
{
|
|
682
|
+
type: "button",
|
|
683
|
+
role: "option",
|
|
684
|
+
"aria-selected": v,
|
|
685
|
+
onMouseEnter: () => p(y),
|
|
686
|
+
onClick: () => x(y),
|
|
687
|
+
className: `w-full flex items-start gap-2 px-3 py-2 text-left transition-colors cursor-pointer ${b === y ? "bg-gray-50" : ""}`,
|
|
688
|
+
children: [
|
|
689
|
+
/* @__PURE__ */ e(
|
|
690
|
+
I,
|
|
691
|
+
{
|
|
692
|
+
className: `w-4 h-4 mt-0.5 flex-shrink-0 text-blue-600 ${v ? "" : "invisible"}`
|
|
693
|
+
}
|
|
694
|
+
),
|
|
695
|
+
/* @__PURE__ */ l("span", { className: "min-w-0", children: [
|
|
696
|
+
/* @__PURE__ */ e(
|
|
697
|
+
"span",
|
|
698
|
+
{
|
|
699
|
+
className: `block text-sm ${v ? "font-medium text-gray-900" : "text-gray-700"}`,
|
|
700
|
+
children: g.label
|
|
701
|
+
}
|
|
702
|
+
),
|
|
703
|
+
g.description && /* @__PURE__ */ e("span", { className: "block text-xs text-gray-500 mt-0.5", children: g.description })
|
|
704
|
+
] })
|
|
705
|
+
]
|
|
706
|
+
},
|
|
707
|
+
g.value
|
|
708
|
+
);
|
|
709
|
+
})
|
|
710
|
+
}
|
|
711
|
+
)
|
|
712
|
+
]
|
|
713
|
+
}
|
|
714
|
+
);
|
|
715
|
+
}
|
|
601
716
|
const W = {
|
|
602
717
|
neutral: { badge: "bg-gray-100", icon: "text-gray-400" },
|
|
603
718
|
green: { badge: "bg-green-100", icon: "text-green-600" },
|
|
@@ -606,14 +721,14 @@ const W = {
|
|
|
606
721
|
red: { badge: "bg-red-100", icon: "text-red-600" },
|
|
607
722
|
purple: { badge: "bg-purple-100", icon: "text-purple-600" }
|
|
608
723
|
};
|
|
609
|
-
function
|
|
724
|
+
function we({
|
|
610
725
|
icon: r,
|
|
611
726
|
label: t,
|
|
612
727
|
value: n,
|
|
613
728
|
tone: a = "neutral"
|
|
614
729
|
}) {
|
|
615
730
|
const o = W[a];
|
|
616
|
-
return /* @__PURE__ */
|
|
731
|
+
return /* @__PURE__ */ l("div", { className: "flex items-center gap-4", children: [
|
|
617
732
|
/* @__PURE__ */ e(
|
|
618
733
|
"div",
|
|
619
734
|
{
|
|
@@ -621,117 +736,117 @@ function ve({
|
|
|
621
736
|
children: /* @__PURE__ */ e(r, { className: `w-6 h-6 ${o.icon}` })
|
|
622
737
|
}
|
|
623
738
|
),
|
|
624
|
-
/* @__PURE__ */
|
|
739
|
+
/* @__PURE__ */ l("div", { children: [
|
|
625
740
|
/* @__PURE__ */ e("p", { className: "text-sm font-medium text-gray-500", children: t }),
|
|
626
741
|
/* @__PURE__ */ e("p", { className: "text-3xl font-bold text-gray-900 tabular-nums", children: n })
|
|
627
742
|
] })
|
|
628
743
|
] });
|
|
629
744
|
}
|
|
630
|
-
const
|
|
745
|
+
const _ = {
|
|
631
746
|
ok: "bg-green-500",
|
|
632
747
|
down: "bg-red-500",
|
|
633
748
|
unknown: "bg-gray-300"
|
|
634
|
-
},
|
|
749
|
+
}, j = (r) => `${(r * 100).toFixed(4)}%`;
|
|
635
750
|
function Ne({
|
|
636
751
|
from: r,
|
|
637
752
|
to: t,
|
|
638
753
|
spans: n,
|
|
639
754
|
coverageFrom: a,
|
|
640
755
|
buckets: o = 48,
|
|
641
|
-
height:
|
|
642
|
-
renderTooltip:
|
|
756
|
+
height: h = "1.75rem",
|
|
757
|
+
renderTooltip: i
|
|
643
758
|
}) {
|
|
644
|
-
const [c, m] =
|
|
645
|
-
if (!(
|
|
646
|
-
const d = a == null ? void 0 : a.getTime(), s =
|
|
647
|
-
const y = b +
|
|
648
|
-
let
|
|
649
|
-
for (const
|
|
650
|
-
const
|
|
651
|
-
|
|
759
|
+
const [c, m] = N(null), b = r.getTime(), p = t.getTime() - b;
|
|
760
|
+
if (!(p > 0)) return null;
|
|
761
|
+
const d = a == null ? void 0 : a.getTime(), s = p / o, u = Array.from({ length: o }, (f, g) => {
|
|
762
|
+
const y = b + g * s, v = y + s, k = d !== void 0 ? Math.max(0, Math.min(v, d) - y) : 0;
|
|
763
|
+
let E = 0;
|
|
764
|
+
for (const D of n) {
|
|
765
|
+
const A = Math.max(D.start.getTime(), y), O = Math.min(D.end.getTime(), v);
|
|
766
|
+
O > A && (E += O - A);
|
|
652
767
|
}
|
|
653
|
-
const
|
|
768
|
+
const z = Math.max(1, s - k);
|
|
654
769
|
return {
|
|
655
770
|
start: new Date(y),
|
|
656
|
-
end: new Date(
|
|
657
|
-
downMs:
|
|
658
|
-
unknownMs:
|
|
659
|
-
ratio: 1 -
|
|
771
|
+
end: new Date(v),
|
|
772
|
+
downMs: E,
|
|
773
|
+
unknownMs: k,
|
|
774
|
+
ratio: 1 - E / z
|
|
660
775
|
};
|
|
661
776
|
});
|
|
662
|
-
return /* @__PURE__ */
|
|
663
|
-
c !== null &&
|
|
777
|
+
return /* @__PURE__ */ l("div", { className: "relative", children: [
|
|
778
|
+
c !== null && i && /* @__PURE__ */ e(
|
|
664
779
|
"div",
|
|
665
780
|
{
|
|
666
781
|
className: "pointer-events-none absolute bottom-full z-10 mb-2 whitespace-nowrap rounded-md bg-gray-900 px-2 py-1.5 text-[11px] leading-tight text-white shadow-lg",
|
|
667
|
-
style: ((
|
|
668
|
-
const
|
|
669
|
-
return
|
|
782
|
+
style: ((f) => {
|
|
783
|
+
const g = (f + 0.5) / o;
|
|
784
|
+
return g < 0.15 ? { left: 0 } : g > 0.85 ? { right: 0 } : { left: `${g * 100}%`, transform: "translateX(-50%)" };
|
|
670
785
|
})(c),
|
|
671
|
-
children:
|
|
786
|
+
children: i(u[c])
|
|
672
787
|
}
|
|
673
788
|
),
|
|
674
789
|
/* @__PURE__ */ e(
|
|
675
790
|
"div",
|
|
676
791
|
{
|
|
677
792
|
className: "flex items-stretch gap-[2px]",
|
|
678
|
-
style: { height:
|
|
793
|
+
style: { height: h },
|
|
679
794
|
onMouseLeave: () => m(null),
|
|
680
|
-
children:
|
|
795
|
+
children: u.map((f, g) => /* @__PURE__ */ l(
|
|
681
796
|
"div",
|
|
682
797
|
{
|
|
683
|
-
onMouseEnter: () => m(
|
|
684
|
-
className: `relative z-10 min-w-[2px] flex-1 cursor-pointer overflow-hidden rounded-[2px] bg-emerald-500 transition-opacity ${c ===
|
|
798
|
+
onMouseEnter: () => m(g),
|
|
799
|
+
className: `relative z-10 min-w-[2px] flex-1 cursor-pointer overflow-hidden rounded-[2px] bg-emerald-500 transition-opacity ${c === g ? "opacity-60" : ""}`,
|
|
685
800
|
children: [
|
|
686
|
-
|
|
801
|
+
f.unknownMs > 0 && /* @__PURE__ */ e(
|
|
687
802
|
"div",
|
|
688
803
|
{
|
|
689
804
|
className: "absolute inset-y-0 left-0 bg-gray-300",
|
|
690
|
-
style: { width: `${
|
|
805
|
+
style: { width: `${f.unknownMs / s * 100}%` }
|
|
691
806
|
}
|
|
692
807
|
),
|
|
693
|
-
|
|
808
|
+
f.downMs > 0 && /* @__PURE__ */ e(
|
|
694
809
|
"div",
|
|
695
810
|
{
|
|
696
811
|
className: "absolute inset-x-0 bottom-0 bg-red-500",
|
|
697
812
|
style: {
|
|
698
|
-
height: `max(3px, ${
|
|
813
|
+
height: `max(3px, ${f.downMs / s * 100}%)`
|
|
699
814
|
}
|
|
700
815
|
}
|
|
701
816
|
)
|
|
702
817
|
]
|
|
703
818
|
},
|
|
704
|
-
|
|
819
|
+
f.start.getTime()
|
|
705
820
|
))
|
|
706
821
|
}
|
|
707
822
|
)
|
|
708
823
|
] });
|
|
709
824
|
}
|
|
710
|
-
function
|
|
825
|
+
function $e({
|
|
711
826
|
from: r,
|
|
712
827
|
to: t,
|
|
713
828
|
lanes: n,
|
|
714
829
|
baseline: a = "ok",
|
|
715
830
|
ticks: o = 5,
|
|
716
|
-
formatTick:
|
|
717
|
-
labelWidth:
|
|
831
|
+
formatTick: h = (b) => b.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }),
|
|
832
|
+
labelWidth: i = "8rem",
|
|
718
833
|
rowHeight: c = "1.25rem",
|
|
719
834
|
emptyLabel: m = "No data"
|
|
720
835
|
}) {
|
|
721
|
-
const b = r.getTime(),
|
|
722
|
-
if (!(
|
|
836
|
+
const b = r.getTime(), p = t.getTime() - b;
|
|
837
|
+
if (!(p > 0) || n.length === 0)
|
|
723
838
|
return /* @__PURE__ */ e("div", { className: "py-8 text-center text-sm text-gray-500", children: m });
|
|
724
839
|
const d = Array.from(
|
|
725
840
|
{ length: Math.max(2, o) },
|
|
726
|
-
(s,
|
|
841
|
+
(s, u) => new Date(b + p * u / (Math.max(2, o) - 1))
|
|
727
842
|
);
|
|
728
|
-
return /* @__PURE__ */
|
|
729
|
-
n.map((s) => /* @__PURE__ */
|
|
843
|
+
return /* @__PURE__ */ l("div", { className: "space-y-1.5", children: [
|
|
844
|
+
n.map((s) => /* @__PURE__ */ l("div", { className: "flex items-center gap-3", children: [
|
|
730
845
|
/* @__PURE__ */ e(
|
|
731
846
|
"div",
|
|
732
847
|
{
|
|
733
848
|
className: "shrink-0 truncate font-mono text-xs text-gray-600",
|
|
734
|
-
style: { width:
|
|
849
|
+
style: { width: i },
|
|
735
850
|
title: s.name,
|
|
736
851
|
children: s.label ?? s.name
|
|
737
852
|
}
|
|
@@ -739,23 +854,23 @@ function we({
|
|
|
739
854
|
/* @__PURE__ */ e(
|
|
740
855
|
"div",
|
|
741
856
|
{
|
|
742
|
-
className: `relative flex-1 overflow-hidden rounded-sm ${
|
|
857
|
+
className: `relative flex-1 overflow-hidden rounded-sm ${_[a]}`,
|
|
743
858
|
style: { height: c },
|
|
744
|
-
children: s.spans.map((
|
|
745
|
-
const
|
|
746
|
-
if (
|
|
747
|
-
const
|
|
859
|
+
children: s.spans.map((u) => {
|
|
860
|
+
const x = Math.max(u.start.getTime(), b), f = Math.min(u.end.getTime(), b + p);
|
|
861
|
+
if (f <= x) return null;
|
|
862
|
+
const g = (x - b) / p, y = (f - x) / p;
|
|
748
863
|
return /* @__PURE__ */ e(
|
|
749
864
|
"div",
|
|
750
865
|
{
|
|
751
|
-
className: `absolute inset-y-0 ${
|
|
866
|
+
className: `absolute inset-y-0 ${_[u.tone]}`,
|
|
752
867
|
style: {
|
|
753
|
-
left:
|
|
754
|
-
width: `max(2px, ${
|
|
868
|
+
left: j(g),
|
|
869
|
+
width: `max(2px, ${j(y)})`
|
|
755
870
|
},
|
|
756
|
-
title:
|
|
871
|
+
title: u.label
|
|
757
872
|
},
|
|
758
|
-
`${
|
|
873
|
+
`${u.start.getTime()}-${u.end.getTime()}`
|
|
759
874
|
);
|
|
760
875
|
})
|
|
761
876
|
}
|
|
@@ -767,16 +882,16 @@ function we({
|
|
|
767
882
|
{
|
|
768
883
|
className: "flex justify-between pt-1 text-[11px] tabular-nums text-gray-400",
|
|
769
884
|
style: {
|
|
770
|
-
marginLeft:
|
|
885
|
+
marginLeft: i,
|
|
771
886
|
paddingLeft: "0.75rem",
|
|
772
887
|
marginRight: n.some((s) => s.trailing !== void 0) ? "4rem" : void 0
|
|
773
888
|
},
|
|
774
|
-
children: d.map((s) => /* @__PURE__ */ e("span", { children:
|
|
889
|
+
children: d.map((s) => /* @__PURE__ */ e("span", { children: h(s) }, s.getTime()))
|
|
775
890
|
}
|
|
776
891
|
)
|
|
777
892
|
] });
|
|
778
893
|
}
|
|
779
|
-
const
|
|
894
|
+
const ke = {
|
|
780
895
|
blue: {
|
|
781
896
|
header: "bg-blue-50 text-blue-800",
|
|
782
897
|
hover: "hover:bg-blue-50",
|
|
@@ -818,7 +933,7 @@ const $e = {
|
|
|
818
933
|
badge: "bg-gray-200 text-gray-700"
|
|
819
934
|
}
|
|
820
935
|
};
|
|
821
|
-
function
|
|
936
|
+
function Ee({
|
|
822
937
|
toast: r,
|
|
823
938
|
onClose: t
|
|
824
939
|
}) {
|
|
@@ -826,8 +941,8 @@ function ke({
|
|
|
826
941
|
"div",
|
|
827
942
|
{
|
|
828
943
|
className: `fixed top-4 right-4 z-50 p-4 rounded-lg shadow-lg border transition-all duration-300 ease-in-out ${r.type === "success" ? "bg-green-50 text-green-800 border-green-200" : "bg-red-50 text-red-800 border-red-200"}`,
|
|
829
|
-
children: /* @__PURE__ */
|
|
830
|
-
r.type === "success" ? /* @__PURE__ */ e(
|
|
944
|
+
children: /* @__PURE__ */ l("div", { className: "flex items-center space-x-2", children: [
|
|
945
|
+
r.type === "success" ? /* @__PURE__ */ e(I, { className: "w-5 h-5 text-green-600" }) : /* @__PURE__ */ e(M, { className: "w-5 h-5 text-red-600" }),
|
|
831
946
|
/* @__PURE__ */ e("span", { className: "text-sm font-medium", children: r.message }),
|
|
832
947
|
/* @__PURE__ */ e(
|
|
833
948
|
"button",
|
|
@@ -835,7 +950,7 @@ function ke({
|
|
|
835
950
|
type: "button",
|
|
836
951
|
onClick: t,
|
|
837
952
|
className: "ml-2 text-gray-400 hover:text-gray-600 cursor-pointer",
|
|
838
|
-
children: /* @__PURE__ */ e(
|
|
953
|
+
children: /* @__PURE__ */ e(M, { className: "w-4 h-4" })
|
|
839
954
|
}
|
|
840
955
|
)
|
|
841
956
|
] })
|
|
@@ -844,28 +959,29 @@ function ke({
|
|
|
844
959
|
}
|
|
845
960
|
export {
|
|
846
961
|
le as AlertBanner,
|
|
847
|
-
|
|
962
|
+
X as BADGE_COLORS,
|
|
848
963
|
ue as BackLink,
|
|
849
964
|
ne as Badge,
|
|
850
965
|
oe as Breadcrumbs,
|
|
851
966
|
Z as Button,
|
|
852
|
-
|
|
967
|
+
S as Card,
|
|
853
968
|
ge as CountryFlag,
|
|
854
969
|
pe as DropdownMenu,
|
|
855
970
|
he as InfoRow,
|
|
856
971
|
ae as LabelChip,
|
|
857
|
-
|
|
972
|
+
ce as ListRow,
|
|
858
973
|
xe as PageContainer,
|
|
859
974
|
se as Panel,
|
|
860
|
-
|
|
975
|
+
ke as SECTION_THEMES,
|
|
861
976
|
fe as SearchInput,
|
|
862
977
|
ie as SectionCard,
|
|
863
978
|
ye as Select,
|
|
979
|
+
ve as SelectMenu,
|
|
864
980
|
me as SideNav,
|
|
865
|
-
|
|
866
|
-
|
|
981
|
+
we as StatCard,
|
|
982
|
+
$e as StateTimeline,
|
|
867
983
|
be as TabNav,
|
|
868
|
-
|
|
984
|
+
Ee as Toast,
|
|
869
985
|
Ne as UptimeBars,
|
|
870
|
-
|
|
986
|
+
de as ViewAllFooter
|
|
871
987
|
};
|
package/dist/select.d.ts
CHANGED
|
@@ -10,3 +10,25 @@ export declare function Select({ value, onChange, children, id, className, disab
|
|
|
10
10
|
className?: string;
|
|
11
11
|
disabled?: boolean;
|
|
12
12
|
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export interface SelectMenuOption {
|
|
14
|
+
value: string;
|
|
15
|
+
label: string;
|
|
16
|
+
/** Secondary line under the label — for the detail a tooltip would carry. */
|
|
17
|
+
description?: ReactNode;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Value picker with `DropdownMenu`'s popover chrome. Use it instead of `Select`
|
|
21
|
+
* where a native `<select>`'s platform styling sits next to design-system
|
|
22
|
+
* buttons and inputs; the trigger shows the selected option's label. Closes on
|
|
23
|
+
* outside click, Escape, or selection; Arrow keys move the highlight.
|
|
24
|
+
*/
|
|
25
|
+
export declare function SelectMenu({ value, onChange, options, ariaLabel, align, className, menuClassName, }: {
|
|
26
|
+
value: string;
|
|
27
|
+
onChange: (value: string) => void;
|
|
28
|
+
options: SelectMenuOption[];
|
|
29
|
+
ariaLabel: string;
|
|
30
|
+
/** Which edge of the trigger the menu is anchored to. */
|
|
31
|
+
align?: "left" | "right";
|
|
32
|
+
className?: string;
|
|
33
|
+
menuClassName?: string;
|
|
34
|
+
}): import("react/jsx-runtime").JSX.Element;
|