durable-actors-observer 0.7.2 → 0.7.3

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.js CHANGED
@@ -1,83 +1,84 @@
1
1
  import * as e from "react";
2
2
  import { useEffect as t, useId as n, useMemo as r, useRef as i, useState as a } from "react";
3
- import { Activity as o, ArrowRight as s, Box as c, Cable as l, Calendar as u, ChartNoAxesGantt as d, ChevronDown as f, ChevronDownIcon as p, ChevronLeftIcon as m, ChevronRightIcon as h, CircleHelp as g, Download as _, Hash as v, LayoutGrid as y, List as ee, Pause as b, Play as x, RefreshCw as te, Search as S, SearchIcon as C, SunMoon as w, Unplug as T, X as E } from "lucide-react";
4
- import { Command as D } from "cmdk";
5
- import { clsx as O } from "clsx";
6
- import { extendTailwindMerge as k } from "tailwind-merge";
7
- import { Fragment as A, jsx as j, jsxs as M } from "react/jsx-runtime";
8
- import { Slot as N } from "@radix-ui/react-slot";
9
- import { cva as P } from "class-variance-authority";
10
- import { DayPicker as F, getDefaultClassNames as I } from "react-day-picker";
11
- import * as ne from "@radix-ui/react-popover";
12
- import * as L from "@radix-ui/react-dialog";
3
+ import { Activity as o, ArrowRight as s, Box as c, Cable as l, Calendar as u, ChartNoAxesGantt as d, ChevronDown as f, ChevronDownIcon as p, ChevronLeftIcon as m, ChevronRightIcon as h, CircleHelp as g, Download as _, Hash as v, LayoutGrid as y, List as ee, Pause as b, Play as te, RefreshCw as ne, Search as x, SearchIcon as S, SunMoon as C, Unplug as w, X as T } from "lucide-react";
4
+ import { Command as E } from "cmdk";
5
+ import { clsx as D } from "clsx";
6
+ import { extendTailwindMerge as O } from "tailwind-merge";
7
+ import { Fragment as k, jsx as A, jsxs as j } from "react/jsx-runtime";
8
+ import { Slot as M } from "@radix-ui/react-slot";
9
+ import { cva as N } from "class-variance-authority";
10
+ import { DayPicker as P, getDefaultClassNames as F } from "react-day-picker";
11
+ import * as I from "@radix-ui/react-popover";
12
+ import { Drawer as L } from "vaul";
13
13
  import { JsonView as re } from "react-json-view-lite";
14
14
  import { create as ie } from "jsondiffpatch";
15
15
  import { format as ae } from "jsondiffpatch/formatters/html";
16
+ import * as R from "@radix-ui/react-dialog";
16
17
  import { createParser as oe } from "eventsource-parser";
17
18
  //#region src/lib/utils.ts
18
- var se = k({ prefix: "la" });
19
- function R(...e) {
20
- return se(O(e));
19
+ var se = O({ prefix: "la" });
20
+ function z(...e) {
21
+ return se(D(e));
21
22
  }
22
23
  //#endregion
23
24
  //#region src/components/ui/command.tsx
24
25
  function ce({ className: e, ...t }) {
25
- return /* @__PURE__ */ j(D, {
26
+ return /* @__PURE__ */ A(E, {
26
27
  "data-slot": "command",
27
- className: R("la:flex la:h-full la:w-full la:flex-col la:overflow-hidden la:rounded-md la:bg-popover la:text-popover-foreground", e),
28
+ className: z("la:flex la:h-full la:w-full la:flex-col la:overflow-hidden la:rounded-md la:bg-popover la:text-popover-foreground", e),
28
29
  ...t
29
30
  });
30
31
  }
31
32
  function le({ className: e, ...t }) {
32
- return /* @__PURE__ */ M("div", {
33
+ return /* @__PURE__ */ j("div", {
33
34
  "data-slot": "command-input-wrapper",
34
35
  className: "la:flex la:h-9 la:items-center la:gap-2 la:border-b la:px-3",
35
- children: [/* @__PURE__ */ j(C, { className: "la:size-4 la:shrink-0 la:opacity-50" }), /* @__PURE__ */ j(D.Input, {
36
+ children: [/* @__PURE__ */ A(S, { className: "la:size-4 la:shrink-0 la:opacity-50" }), /* @__PURE__ */ A(E.Input, {
36
37
  "data-slot": "command-input",
37
- className: R("la:flex la:h-10 la:w-full la:rounded-md la:bg-transparent la:py-3 la:text-sm la:outline-hidden la:placeholder:text-muted-foreground la:disabled:cursor-not-allowed la:disabled:opacity-50", e),
38
+ className: z("la:flex la:h-10 la:w-full la:rounded-md la:bg-transparent la:py-3 la:text-sm la:outline-hidden la:placeholder:text-muted-foreground la:disabled:cursor-not-allowed la:disabled:opacity-50", e),
38
39
  ...t
39
40
  })]
40
41
  });
41
42
  }
42
43
  function ue({ className: e, ...t }) {
43
- return /* @__PURE__ */ j(D.List, {
44
+ return /* @__PURE__ */ A(E.List, {
44
45
  "data-slot": "command-list",
45
- className: R("la:max-h-[300px] la:scroll-py-1 la:overflow-x-hidden la:overflow-y-auto", e),
46
+ className: z("la:max-h-[300px] la:scroll-py-1 la:overflow-x-hidden la:overflow-y-auto", e),
46
47
  ...t
47
48
  });
48
49
  }
49
50
  function de({ ...e }) {
50
- return /* @__PURE__ */ j(D.Empty, {
51
+ return /* @__PURE__ */ A(E.Empty, {
51
52
  "data-slot": "command-empty",
52
53
  className: "la:py-6 la:text-center la:text-sm",
53
54
  ...e
54
55
  });
55
56
  }
56
57
  function fe({ className: e, ...t }) {
57
- return /* @__PURE__ */ j(D.Group, {
58
+ return /* @__PURE__ */ A(E.Group, {
58
59
  "data-slot": "command-group",
59
- className: R("la:overflow-hidden la:p-1 la:text-foreground la:[&_[cmdk-group-heading]]:px-2 la:[&_[cmdk-group-heading]]:py-1.5 la:[&_[cmdk-group-heading]]:text-xs la:[&_[cmdk-group-heading]]:font-medium la:[&_[cmdk-group-heading]]:text-muted-foreground", e),
60
+ className: z("la:overflow-hidden la:p-1 la:text-foreground la:[&_[cmdk-group-heading]]:px-2 la:[&_[cmdk-group-heading]]:py-1.5 la:[&_[cmdk-group-heading]]:text-xs la:[&_[cmdk-group-heading]]:font-medium la:[&_[cmdk-group-heading]]:text-muted-foreground", e),
60
61
  ...t
61
62
  });
62
63
  }
63
64
  function pe({ className: e, ...t }) {
64
- return /* @__PURE__ */ j(D.Separator, {
65
+ return /* @__PURE__ */ A(E.Separator, {
65
66
  "data-slot": "command-separator",
66
- className: R("la:-mx-1 la:h-px la:bg-border", e),
67
+ className: z("la:-mx-1 la:h-px la:bg-border", e),
67
68
  ...t
68
69
  });
69
70
  }
70
71
  function me({ className: e, ...t }) {
71
- return /* @__PURE__ */ j(D.Item, {
72
+ return /* @__PURE__ */ A(E.Item, {
72
73
  "data-slot": "command-item",
73
- className: R("la:relative la:flex la:cursor-default la:items-center la:gap-2 la:rounded-sm la:px-2 la:py-1.5 la:text-sm la:outline-hidden la:select-none la:data-[disabled=true]:pointer-events-none la:data-[disabled=true]:opacity-50 la:data-[selected=true]:bg-accent la:data-[selected=true]:text-accent-foreground la:[&_svg]:pointer-events-none la:[&_svg]:shrink-0 la:[&_svg:not([class*='size-'])]:size-4 la:[&_svg:not([class*='text-'])]:text-muted-foreground", e),
74
+ className: z("la:relative la:flex la:cursor-default la:items-center la:gap-2 la:rounded-sm la:px-2 la:py-1.5 la:text-sm la:outline-hidden la:select-none la:data-[disabled=true]:pointer-events-none la:data-[disabled=true]:opacity-50 la:data-[selected=true]:bg-accent la:data-[selected=true]:text-accent-foreground la:[&_svg]:pointer-events-none la:[&_svg]:shrink-0 la:[&_svg:not([class*='size-'])]:size-4 la:[&_svg:not([class*='text-'])]:text-muted-foreground", e),
74
75
  ...t
75
76
  });
76
77
  }
77
78
  function he({ className: e, ...t }) {
78
- return /* @__PURE__ */ j("span", {
79
+ return /* @__PURE__ */ A("span", {
79
80
  "data-slot": "command-shortcut",
80
- className: R("la:ml-auto la:text-xs la:tracking-widest la:text-muted-foreground", e),
81
+ className: z("la:ml-auto la:text-xs la:tracking-widest la:text-muted-foreground", e),
81
82
  ...t
82
83
  });
83
84
  }
@@ -85,15 +86,15 @@ function he({ className: e, ...t }) {
85
86
  //#region src/FilterCombobox.tsx
86
87
  function ge({ label: e, placeholder: t, value: n, onChange: r, onSelectSuggestion: i, suggestions: o, limit: s = 8, className: c }) {
87
88
  let [l, u] = a(!1), d = _e(o, n, s, !!i), f = d.reduce((e, t) => e.set(t.group, [...e.get(t.group) ?? [], t]), /* @__PURE__ */ new Map()), p = l && d.length > 0;
88
- return /* @__PURE__ */ M(ce, {
89
+ return /* @__PURE__ */ j(ce, {
89
90
  label: e,
90
91
  shouldFilter: !1,
91
92
  loop: !0,
92
- className: R("la-combobox la:relative la:overflow-visible la:bg-transparent", c),
93
+ className: z("la-combobox la:relative la:overflow-visible la:bg-transparent", c),
93
94
  onKeyDown: (e) => {
94
95
  e.key === "Escape" && u(!1), e.key === "ArrowDown" && u(!0);
95
96
  },
96
- children: [/* @__PURE__ */ j(le, {
97
+ children: [/* @__PURE__ */ A(le, {
97
98
  placeholder: t,
98
99
  value: n,
99
100
  onValueChange: (e) => {
@@ -101,21 +102,21 @@ function ge({ label: e, placeholder: t, value: n, onChange: r, onSelectSuggestio
101
102
  },
102
103
  onFocus: () => u(!0),
103
104
  onBlur: () => u(!1)
104
- }), p && /* @__PURE__ */ j(ue, {
105
+ }), p && /* @__PURE__ */ A(ue, {
105
106
  label: `${e} suggestions`,
106
107
  className: "la:absolute la:top-full la:right-0 la:left-0 la:z-20 la:mt-1.5 la:rounded-md la:border la:bg-popover la:text-popover-foreground la:shadow-md",
107
108
  onMouseDown: (e) => e.preventDefault(),
108
- children: [...f].map(([e, t]) => /* @__PURE__ */ j(fe, {
109
+ children: [...f].map(([e, t]) => /* @__PURE__ */ A(fe, {
109
110
  heading: e,
110
- children: t.map((t) => /* @__PURE__ */ M(me, {
111
+ children: t.map((t) => /* @__PURE__ */ j(me, {
111
112
  value: t.id ?? `${e}:${t.value}`,
112
113
  onSelect: () => {
113
114
  i ? i(t) : r(t.value), u(!1);
114
115
  },
115
- children: [/* @__PURE__ */ j("span", {
116
+ children: [/* @__PURE__ */ A("span", {
116
117
  className: "la:truncate la:font-mono la:text-xs",
117
118
  children: t.value
118
- }), t.hint && /* @__PURE__ */ j("span", {
119
+ }), t.hint && /* @__PURE__ */ A("span", {
119
120
  className: "la:ml-auto la:text-xs la:text-muted-foreground",
120
121
  children: t.hint
121
122
  })]
@@ -150,144 +151,175 @@ function ve(e) {
150
151
  return {
151
152
  start: n,
152
153
  span: r - n,
153
- rows: a
154
+ calls: a,
155
+ rows: ye(a)
154
156
  };
155
157
  }
156
- function z(e) {
158
+ function ye(e) {
159
+ let t = /* @__PURE__ */ new Map();
160
+ for (let n of e) {
161
+ let { record: e } = n, r = JSON.stringify([
162
+ e.projectId,
163
+ e.actorName,
164
+ e.actorId,
165
+ e.kind,
166
+ e.operation
167
+ ]), i = t.get(r);
168
+ i || (i = {
169
+ key: r,
170
+ record: e,
171
+ calls: []
172
+ }, t.set(r, i)), i.calls.push(n);
173
+ }
174
+ return [...t.values()];
175
+ }
176
+ function B(e) {
157
177
  return e >= 6e4 ? `${(e / 6e4).toLocaleString(void 0, { maximumFractionDigits: 2 })} min` : e >= 1e3 ? `${(e / 1e3).toLocaleString(void 0, { maximumFractionDigits: 2 })} s` : `${e.toLocaleString(void 0, { maximumFractionDigits: 1 })} ms`;
158
178
  }
159
- function ye(e) {
160
- return e === null ? "First in view" : e < 0 ? "Overlapping" : e === 0 ? "No gap" : `${z(e)} gap`;
179
+ function be(e) {
180
+ return e === null ? "First in view" : e < 0 ? "Overlapping" : e === 0 ? "No gap" : `${B(e)} gap`;
161
181
  }
162
182
  //#endregion
163
183
  //#region src/RequestTimeline.tsx
164
- var be = [
184
+ var xe = [
165
185
  0,
166
186
  .25,
167
187
  .5,
168
188
  .75,
169
189
  1
170
190
  ];
171
- function xe({ records: e, selected: t, onSelect: n }) {
191
+ function Se({ records: e, selected: t, onSelect: n }) {
172
192
  let { start: r, span: i, rows: a } = ve(e), o = Math.max(1, i);
173
- return /* @__PURE__ */ M("div", {
193
+ return /* @__PURE__ */ j("div", {
174
194
  className: "request-waterfall",
175
195
  role: "group",
176
196
  "aria-label": "Invocation waterfall",
177
197
  children: [
178
- /* @__PURE__ */ j(Se, {
198
+ /* @__PURE__ */ A(Ce, {
179
199
  count: e.length,
180
200
  span: i
181
201
  }),
182
- /* @__PURE__ */ M("div", {
202
+ /* @__PURE__ */ j("div", {
183
203
  className: "request-waterfall-scroll",
184
204
  tabIndex: 0,
185
205
  "aria-label": "Invocation timeline, scroll for more calls",
186
- children: [/* @__PURE__ */ M("div", {
206
+ children: [/* @__PURE__ */ j("div", {
187
207
  className: "request-waterfall-axis",
188
208
  "aria-hidden": "true",
189
209
  children: [
190
- /* @__PURE__ */ j("span", { children: "Operation / instance" }),
191
- /* @__PURE__ */ j("div", { children: be.map((e) => /* @__PURE__ */ j("span", {
210
+ /* @__PURE__ */ A("span", { children: "Operation / instance" }),
211
+ /* @__PURE__ */ A("div", { children: xe.map((e) => /* @__PURE__ */ A("span", {
192
212
  style: { left: `${e * 100}%` },
193
- children: z(o * e)
213
+ children: B(o * e)
194
214
  }, e)) }),
195
- /* @__PURE__ */ j("span", { children: "Total / gap" })
215
+ /* @__PURE__ */ A("span", { children: "Calls / total" })
196
216
  ]
197
- }), a.map((e) => /* @__PURE__ */ j(Ce, {
217
+ }), a.map((e) => /* @__PURE__ */ A(we, {
198
218
  row: e,
199
219
  scale: o,
200
- selected: t === e.record,
220
+ selected: t,
201
221
  onSelect: n
202
- }, e.record.eventId ?? e.record.sequence))]
222
+ }, e.key))]
203
223
  }),
204
- /* @__PURE__ */ M("div", {
224
+ /* @__PURE__ */ j("div", {
205
225
  className: "request-waterfall-caption",
206
- children: [/* @__PURE__ */ M("span", { children: ["Relative to ", /* @__PURE__ */ j("time", {
226
+ children: [/* @__PURE__ */ j("span", { children: ["Relative to ", /* @__PURE__ */ A("time", {
207
227
  dateTime: new Date(r).toISOString(),
208
228
  children: new Date(r).toLocaleString([], { hour12: !1 })
209
- })] }), /* @__PURE__ */ j("span", { children: "Gaps use preceding calls on the same instance in this view." })]
229
+ })] }), /* @__PURE__ */ A("span", { children: "Gaps use preceding calls on the same instance in this view." })]
210
230
  })
211
231
  ]
212
232
  });
213
233
  }
214
- function Se({ count: e, span: t }) {
215
- return /* @__PURE__ */ M("div", {
234
+ function Ce({ count: e, span: t }) {
235
+ return /* @__PURE__ */ j("div", {
216
236
  className: "request-waterfall-heading",
217
- children: [/* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("strong", { children: "Invocation waterfall" }), /* @__PURE__ */ M("span", { children: [
237
+ children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("strong", { children: "Invocation waterfall" }), /* @__PURE__ */ j("span", { children: [
218
238
  e.toLocaleString(),
219
239
  " calls · ",
220
- z(t),
240
+ B(t),
221
241
  " elapsed"
222
- ] })] }), /* @__PURE__ */ M("ul", {
242
+ ] })] }), /* @__PURE__ */ j("ul", {
223
243
  className: "request-waterfall-legend",
224
244
  "aria-label": "Timing legend",
225
245
  children: [
226
- /* @__PURE__ */ M("li", { children: [/* @__PURE__ */ j("i", { className: "request-waterfall-method" }), "Method"] }),
227
- /* @__PURE__ */ M("li", { children: [/* @__PURE__ */ j("i", { className: "request-waterfall-websocket" }), "WebSocket"] }),
228
- /* @__PURE__ */ M("li", { children: [/* @__PURE__ */ j("i", { className: "request-waterfall-queue" }), "Queue wait"] }),
229
- /* @__PURE__ */ M("li", { children: [/* @__PURE__ */ j("i", { className: "request-waterfall-failed" }), "Failed / rejected"] }),
230
- /* @__PURE__ */ M("li", { children: [/* @__PURE__ */ j("i", { className: "request-waterfall-interrupted" }), "Interrupted / rerouted"] })
246
+ /* @__PURE__ */ j("li", { children: [/* @__PURE__ */ A("i", { className: "request-waterfall-method" }), "Method"] }),
247
+ /* @__PURE__ */ j("li", { children: [/* @__PURE__ */ A("i", { className: "request-waterfall-websocket" }), "WebSocket"] }),
248
+ /* @__PURE__ */ j("li", { children: [/* @__PURE__ */ A("i", { className: "request-waterfall-queue" }), "Queue wait"] }),
249
+ /* @__PURE__ */ j("li", { children: [/* @__PURE__ */ A("i", { className: "request-waterfall-failed" }), "Failed / rejected"] }),
250
+ /* @__PURE__ */ j("li", { children: [/* @__PURE__ */ A("i", { className: "request-waterfall-interrupted" }), "Interrupted / rerouted"] })
231
251
  ]
232
252
  })]
233
253
  });
234
254
  }
235
- function Ce({ row: { record: e, offsetMs: t, gapMs: n }, scale: r, selected: i, onSelect: a }) {
236
- return /* @__PURE__ */ M("button", {
237
- type: "button",
255
+ function we({ row: { record: e, calls: t }, scale: n, selected: r, onSelect: i }) {
256
+ return /* @__PURE__ */ j("div", {
238
257
  className: "request-waterfall-row",
239
- "data-state": i ? "selected" : void 0,
240
- "aria-label": `Inspect ${e.operation} request on ${e.actorName} / ${e.actorId}, ${e.outcome}, ${z(e.durationMs)}, starts +${z(t)}, ${ye(n)}`,
241
- "aria-haspopup": "dialog",
242
- title: `${e.actorName} / ${e.actorId}\n${e.operation} · ${e.outcome}\nStart: ${new Date(e.startedAtMs).toLocaleString()} (+${z(t)})\nTotal: ${z(e.durationMs)}\nQueue wait: ${e.queueWaitMs === null ? "Did not begin processing" : z(e.queueWaitMs)}\n${ye(n)}${n === null ? "" : " relative to preceding calls on this instance"}`,
243
- onClick: (t) => a(e, t.currentTarget),
258
+ role: "group",
259
+ "aria-label": `${e.operation} ${e.kind} calls on ${e.actorName} / ${e.actorId}`,
260
+ "data-state": t.some((e) => e.record === r) ? "selected" : void 0,
244
261
  children: [
245
- /* @__PURE__ */ M("span", {
262
+ /* @__PURE__ */ j("span", {
246
263
  className: "request-waterfall-label",
247
- children: [/* @__PURE__ */ j("strong", { children: e.operation }), /* @__PURE__ */ M("span", { children: [
264
+ children: [/* @__PURE__ */ A("strong", { children: e.operation }), /* @__PURE__ */ j("span", { children: [
248
265
  e.actorName,
249
266
  " / ",
250
267
  e.actorId
251
268
  ] })]
252
269
  }),
253
- /* @__PURE__ */ M("span", {
270
+ /* @__PURE__ */ j("span", {
254
271
  className: "request-waterfall-track",
255
- "aria-hidden": "true",
256
- children: [
257
- be.map((e) => /* @__PURE__ */ j("i", {
258
- className: "request-waterfall-gridline",
259
- style: { left: `${e * 100}%` }
260
- }, e)),
261
- n !== null && n > 0 && /* @__PURE__ */ j("span", {
262
- className: "request-waterfall-gap",
263
- style: {
264
- left: `${(t - n) / r * 100}%`,
265
- width: `${n / r * 100}%`
266
- }
267
- }),
268
- /* @__PURE__ */ j("span", {
269
- className: `request-waterfall-bar request-waterfall-${e.kind} request-waterfall-${e.outcome}`,
270
- style: {
271
- left: `${t / r * 100}%`,
272
- width: `${e.durationMs / r * 100}%`
273
- },
274
- children: e.queueWaitMs !== null && e.queueWaitMs > 0 && /* @__PURE__ */ j("span", {
275
- className: "request-waterfall-queue",
276
- style: { width: `${e.queueWaitMs / e.durationMs * 100}%` }
277
- })
278
- })
279
- ]
272
+ children: [xe.map((e) => /* @__PURE__ */ A("i", {
273
+ className: "request-waterfall-gridline",
274
+ "aria-hidden": "true",
275
+ style: { left: `${e * 100}%` }
276
+ }, e)), t.map((e) => /* @__PURE__ */ A(Te, {
277
+ call: e,
278
+ scale: n,
279
+ selected: r === e.record,
280
+ onSelect: i
281
+ }, e.record.eventId ?? e.record.sequence))]
280
282
  }),
281
- /* @__PURE__ */ M("span", {
283
+ /* @__PURE__ */ j("span", {
282
284
  className: "request-waterfall-timing",
283
- children: [/* @__PURE__ */ j("strong", { children: z(e.durationMs) }), /* @__PURE__ */ j("span", { children: ye(n) })]
285
+ children: [/* @__PURE__ */ j("strong", { children: [
286
+ t.length.toLocaleString(),
287
+ " ",
288
+ t.length === 1 ? "call" : "calls"
289
+ ] }), /* @__PURE__ */ j("span", { children: [B(t.reduce((e, t) => e + t.record.durationMs, 0)), " total"] })]
284
290
  })
285
291
  ]
286
292
  });
287
293
  }
294
+ function Te({ call: { record: e, offsetMs: t, gapMs: n }, scale: r, selected: i, onSelect: a }) {
295
+ return /* @__PURE__ */ j(k, { children: [n !== null && n > 0 && /* @__PURE__ */ A("span", {
296
+ className: "request-waterfall-gap",
297
+ "aria-hidden": "true",
298
+ style: {
299
+ left: `${(t - n) / r * 100}%`,
300
+ width: `${n / r * 100}%`
301
+ }
302
+ }), /* @__PURE__ */ A("button", {
303
+ type: "button",
304
+ className: `request-waterfall-bar request-waterfall-${e.kind} request-waterfall-${e.outcome}`,
305
+ style: {
306
+ left: `${t / r * 100}%`,
307
+ width: `${e.durationMs / r * 100}%`
308
+ },
309
+ "data-state": i ? "selected" : void 0,
310
+ "aria-label": `Inspect ${e.operation} request on ${e.actorName} / ${e.actorId}, ${e.outcome}, ${B(e.durationMs)}, starts +${B(t)}, ${be(n)}`,
311
+ "aria-haspopup": "dialog",
312
+ title: `${e.actorName} / ${e.actorId}\n${e.operation} · ${e.outcome}\nStart: ${new Date(e.startedAtMs).toLocaleString()} (+${B(t)})\nTotal: ${B(e.durationMs)}\nQueue wait: ${e.queueWaitMs === null ? "Did not begin processing" : B(e.queueWaitMs)}\n${be(n)}${n === null ? "" : " relative to preceding calls on this instance"}`,
313
+ onClick: (t) => a(e, t.currentTarget),
314
+ children: e.queueWaitMs !== null && e.queueWaitMs > 0 && /* @__PURE__ */ A("span", {
315
+ className: "request-waterfall-queue",
316
+ style: { width: `${e.queueWaitMs / e.durationMs * 100}%` }
317
+ })
318
+ })] });
319
+ }
288
320
  //#endregion
289
321
  //#region src/components/ui/button.tsx
290
- var we = P("la:inline-flex la:shrink-0 la:items-center la:justify-center la:gap-2 la:whitespace-nowrap la:rounded-md la:text-sm la:font-medium la:outline-none la:transition-[background-color,border-color,color,box-shadow,transform] la:duration-150 la:ease-out la:active:translate-y-px la:disabled:pointer-events-none la:disabled:translate-y-0 la:disabled:opacity-45 la:focus-visible:ring-2 la:focus-visible:ring-ring la:focus-visible:ring-offset-2 la:focus-visible:ring-offset-background la:aria-invalid:border-destructive la:aria-invalid:ring-destructive/25 la:[&_svg]:pointer-events-none la:[&_svg]:shrink-0 la:[&_svg:not([class*='size-'])]:size-4", {
322
+ var Ee = N("la:inline-flex la:shrink-0 la:items-center la:justify-center la:gap-2 la:whitespace-nowrap la:rounded-md la:text-sm la:font-medium la:outline-none la:transition-[background-color,border-color,color,box-shadow,transform] la:duration-150 la:ease-out la:active:translate-y-px la:disabled:pointer-events-none la:disabled:translate-y-0 la:disabled:opacity-45 la:focus-visible:ring-2 la:focus-visible:ring-ring la:focus-visible:ring-offset-2 la:focus-visible:ring-offset-background la:aria-invalid:border-destructive la:aria-invalid:ring-destructive/25 la:[&_svg]:pointer-events-none la:[&_svg]:shrink-0 la:[&_svg:not([class*='size-'])]:size-4", {
291
323
  variants: {
292
324
  variant: {
293
325
  default: "la:bg-primary la:text-primary-foreground la:shadow-[var(--shadow-control)] la:hover:bg-primary/88",
@@ -311,10 +343,10 @@ var we = P("la:inline-flex la:shrink-0 la:items-center la:justify-center la:gap-
311
343
  size: "default"
312
344
  }
313
345
  });
314
- function B({ className: e, variant: t, size: n, asChild: r = !1, ...i }) {
315
- return /* @__PURE__ */ j(r ? N : "button", {
346
+ function V({ className: e, variant: t, size: n, asChild: r = !1, ...i }) {
347
+ return /* @__PURE__ */ A(r ? M : "button", {
316
348
  "data-slot": "button",
317
- className: R(we({
349
+ className: z(Ee({
318
350
  variant: t,
319
351
  size: n,
320
352
  className: e
@@ -324,59 +356,59 @@ function B({ className: e, variant: t, size: n, asChild: r = !1, ...i }) {
324
356
  }
325
357
  //#endregion
326
358
  //#region src/components/ui/calendar.tsx
327
- function Te({ className: e, classNames: t, showOutsideDays: n = !0, captionLayout: r = "label", buttonVariant: i = "ghost", formatters: a, components: o, ...s }) {
328
- let c = I();
329
- return /* @__PURE__ */ j(F, {
359
+ function De({ className: e, classNames: t, showOutsideDays: n = !0, captionLayout: r = "label", buttonVariant: i = "ghost", formatters: a, components: o, ...s }) {
360
+ let c = F();
361
+ return /* @__PURE__ */ A(P, {
330
362
  showOutsideDays: n,
331
- className: R("la:group/calendar la:bg-background la:p-3 la:[--cell-size:--spacing(8)] la:[[data-slot=card-content]_&]:bg-transparent la:[[data-slot=popover-content]_&]:bg-transparent", e),
363
+ className: z("la:group/calendar la:bg-background la:p-3 la:[--cell-size:--spacing(8)] la:[[data-slot=card-content]_&]:bg-transparent la:[[data-slot=popover-content]_&]:bg-transparent", e),
332
364
  captionLayout: r,
333
365
  formatters: {
334
366
  formatMonthDropdown: (e) => e.toLocaleString("default", { month: "short" }),
335
367
  ...a
336
368
  },
337
369
  classNames: {
338
- root: R("la:w-fit", c.root),
339
- months: R("la:relative la:flex la:flex-col la:gap-4 la:md:flex-row", c.months),
340
- month: R("la:flex la:w-full la:flex-col la:gap-4", c.month),
341
- nav: R("la:absolute la:inset-x-0 la:top-0 la:flex la:w-full la:items-center la:justify-between la:gap-1", c.nav),
342
- button_previous: R(we({ variant: i }), "la:size-(--cell-size) la:p-0 la:select-none la:aria-disabled:opacity-50", c.button_previous),
343
- button_next: R(we({ variant: i }), "la:size-(--cell-size) la:p-0 la:select-none la:aria-disabled:opacity-50", c.button_next),
344
- month_caption: R("la:flex la:h-(--cell-size) la:w-full la:items-center la:justify-center la:px-(--cell-size)", c.month_caption),
345
- dropdowns: R("la:flex la:h-(--cell-size) la:w-full la:items-center la:justify-center la:gap-1.5 la:text-sm la:font-medium", c.dropdowns),
346
- dropdown_root: R("la:relative la:rounded-md la:border la:border-input la:shadow-xs la:has-focus:border-ring la:has-focus:ring-[3px] la:has-focus:ring-ring/50", c.dropdown_root),
347
- dropdown: R("la:absolute la:inset-0 la:bg-popover la:opacity-0", c.dropdown),
348
- caption_label: R("la:font-medium la:select-none", r === "label" ? "la:text-sm" : "la:flex la:h-8 la:items-center la:gap-1 la:rounded-md la:pr-1 la:pl-2 la:text-sm la:[&>svg]:size-3.5 la:[&>svg]:text-muted-foreground", c.caption_label),
349
- month_grid: R("la:w-full la:border-collapse", c.month_grid),
350
- weekdays: R("la:flex", c.weekdays),
351
- weekday: R("la:flex-1 la:rounded-md la:text-[0.8rem] la:font-normal la:text-muted-foreground la:select-none", c.weekday),
352
- week: R("la:mt-2 la:flex la:w-full", c.week),
353
- week_number_header: R("la:w-(--cell-size) la:select-none", c.week_number_header),
354
- week_number: R("la:text-[0.8rem] la:text-muted-foreground la:select-none", c.week_number),
355
- day: R("la:group/day la:relative la:aspect-square la:h-full la:w-full la:p-0 la:text-center la:select-none la:[&:last-child[data-selected=true]_button]:rounded-r-md", s.showWeekNumber ? "la:[&:nth-child(2)[data-selected=true]_button]:rounded-l-md" : "la:[&:first-child[data-selected=true]_button]:rounded-l-md", c.day),
356
- range_start: R("la:rounded-l-md la:bg-accent", c.range_start),
357
- range_middle: R("la:rounded-none", c.range_middle),
358
- range_end: R("la:rounded-r-md la:bg-accent", c.range_end),
359
- today: R("la:rounded-md la:bg-accent la:text-accent-foreground la:data-[selected=true]:rounded-none", c.today),
360
- outside: R("la:text-muted-foreground la:aria-selected:text-muted-foreground", c.outside),
361
- disabled: R("la:text-muted-foreground la:opacity-50", c.disabled),
362
- hidden: R("la:invisible", c.hidden),
370
+ root: z("la:w-fit", c.root),
371
+ months: z("la:relative la:flex la:flex-col la:gap-4 la:md:flex-row", c.months),
372
+ month: z("la:flex la:w-full la:flex-col la:gap-4", c.month),
373
+ nav: z("la:absolute la:inset-x-0 la:top-0 la:flex la:w-full la:items-center la:justify-between la:gap-1", c.nav),
374
+ button_previous: z(Ee({ variant: i }), "la:size-(--cell-size) la:p-0 la:select-none la:aria-disabled:opacity-50", c.button_previous),
375
+ button_next: z(Ee({ variant: i }), "la:size-(--cell-size) la:p-0 la:select-none la:aria-disabled:opacity-50", c.button_next),
376
+ month_caption: z("la:flex la:h-(--cell-size) la:w-full la:items-center la:justify-center la:px-(--cell-size)", c.month_caption),
377
+ dropdowns: z("la:flex la:h-(--cell-size) la:w-full la:items-center la:justify-center la:gap-1.5 la:text-sm la:font-medium", c.dropdowns),
378
+ dropdown_root: z("la:relative la:rounded-md la:border la:border-input la:shadow-xs la:has-focus:border-ring la:has-focus:ring-[3px] la:has-focus:ring-ring/50", c.dropdown_root),
379
+ dropdown: z("la:absolute la:inset-0 la:bg-popover la:opacity-0", c.dropdown),
380
+ caption_label: z("la:font-medium la:select-none", r === "label" ? "la:text-sm" : "la:flex la:h-8 la:items-center la:gap-1 la:rounded-md la:pr-1 la:pl-2 la:text-sm la:[&>svg]:size-3.5 la:[&>svg]:text-muted-foreground", c.caption_label),
381
+ month_grid: z("la:w-full la:border-collapse", c.month_grid),
382
+ weekdays: z("la:flex", c.weekdays),
383
+ weekday: z("la:flex-1 la:rounded-md la:text-[0.8rem] la:font-normal la:text-muted-foreground la:select-none", c.weekday),
384
+ week: z("la:mt-2 la:flex la:w-full", c.week),
385
+ week_number_header: z("la:w-(--cell-size) la:select-none", c.week_number_header),
386
+ week_number: z("la:text-[0.8rem] la:text-muted-foreground la:select-none", c.week_number),
387
+ day: z("la:group/day la:relative la:aspect-square la:h-full la:w-full la:p-0 la:text-center la:select-none la:[&:last-child[data-selected=true]_button]:rounded-r-md", s.showWeekNumber ? "la:[&:nth-child(2)[data-selected=true]_button]:rounded-l-md" : "la:[&:first-child[data-selected=true]_button]:rounded-l-md", c.day),
388
+ range_start: z("la:rounded-l-md la:bg-accent", c.range_start),
389
+ range_middle: z("la:rounded-none", c.range_middle),
390
+ range_end: z("la:rounded-r-md la:bg-accent", c.range_end),
391
+ today: z("la:rounded-md la:bg-accent la:text-accent-foreground la:data-[selected=true]:rounded-none", c.today),
392
+ outside: z("la:text-muted-foreground la:aria-selected:text-muted-foreground", c.outside),
393
+ disabled: z("la:text-muted-foreground la:opacity-50", c.disabled),
394
+ hidden: z("la:invisible", c.hidden),
363
395
  ...t
364
396
  },
365
397
  components: {
366
- Root: ({ className: e, rootRef: t, ...n }) => /* @__PURE__ */ j("div", {
398
+ Root: ({ className: e, rootRef: t, ...n }) => /* @__PURE__ */ A("div", {
367
399
  "data-slot": "calendar",
368
400
  ref: t,
369
- className: R(e),
401
+ className: z(e),
370
402
  ...n
371
403
  }),
372
- Chevron: ({ className: e, orientation: t, ...n }) => j(t === "left" ? m : t === "right" ? h : p, {
373
- className: R("la:size-4", e),
404
+ Chevron: ({ className: e, orientation: t, ...n }) => A(t === "left" ? m : t === "right" ? h : p, {
405
+ className: z("la:size-4", e),
374
406
  ...n
375
407
  }),
376
- DayButton: Ee,
377
- WeekNumber: ({ children: e, ...t }) => /* @__PURE__ */ j("td", {
408
+ DayButton: Oe,
409
+ WeekNumber: ({ children: e, ...t }) => /* @__PURE__ */ A("td", {
378
410
  ...t,
379
- children: /* @__PURE__ */ j("div", {
411
+ children: /* @__PURE__ */ A("div", {
380
412
  className: "la:flex la:size-(--cell-size) la:items-center la:justify-center la:text-center",
381
413
  children: e
382
414
  })
@@ -386,11 +418,11 @@ function Te({ className: e, classNames: t, showOutsideDays: n = !0, captionLayou
386
418
  ...s
387
419
  });
388
420
  }
389
- function Ee({ className: t, day: n, modifiers: r, ...i }) {
390
- let a = I(), o = e.useRef(null);
421
+ function Oe({ className: t, day: n, modifiers: r, ...i }) {
422
+ let a = F(), o = e.useRef(null);
391
423
  return e.useEffect(() => {
392
424
  r.focused && o.current?.focus();
393
- }, [r.focused]), /* @__PURE__ */ j(B, {
425
+ }, [r.focused]), /* @__PURE__ */ A(V, {
394
426
  ref: o,
395
427
  variant: "ghost",
396
428
  size: "icon",
@@ -399,73 +431,73 @@ function Ee({ className: t, day: n, modifiers: r, ...i }) {
399
431
  "data-range-start": r.range_start,
400
432
  "data-range-end": r.range_end,
401
433
  "data-range-middle": r.range_middle,
402
- className: R("la:flex la:aspect-square la:size-auto la:w-full la:min-w-(--cell-size) la:flex-col la:gap-1 la:leading-none la:font-normal la:group-data-[focused=true]/day:relative la:group-data-[focused=true]/day:z-10 la:group-data-[focused=true]/day:border-ring la:group-data-[focused=true]/day:ring-[3px] la:group-data-[focused=true]/day:ring-ring/50 la:data-[range-end=true]:rounded-md la:data-[range-end=true]:rounded-r-md la:data-[range-end=true]:bg-primary la:data-[range-end=true]:text-primary-foreground la:data-[range-middle=true]:rounded-none la:data-[range-middle=true]:bg-accent la:data-[range-middle=true]:text-accent-foreground la:data-[range-start=true]:rounded-md la:data-[range-start=true]:rounded-l-md la:data-[range-start=true]:bg-primary la:data-[range-start=true]:text-primary-foreground la:data-[selected-single=true]:bg-primary la:data-[selected-single=true]:text-primary-foreground la:dark:hover:text-accent-foreground la:[&>span]:text-xs la:[&>span]:opacity-70", a.day, t),
434
+ className: z("la:flex la:aspect-square la:size-auto la:w-full la:min-w-(--cell-size) la:flex-col la:gap-1 la:leading-none la:font-normal la:group-data-[focused=true]/day:relative la:group-data-[focused=true]/day:z-10 la:group-data-[focused=true]/day:border-ring la:group-data-[focused=true]/day:ring-[3px] la:group-data-[focused=true]/day:ring-ring/50 la:data-[range-end=true]:rounded-md la:data-[range-end=true]:rounded-r-md la:data-[range-end=true]:bg-primary la:data-[range-end=true]:text-primary-foreground la:data-[range-middle=true]:rounded-none la:data-[range-middle=true]:bg-accent la:data-[range-middle=true]:text-accent-foreground la:data-[range-start=true]:rounded-md la:data-[range-start=true]:rounded-l-md la:data-[range-start=true]:bg-primary la:data-[range-start=true]:text-primary-foreground la:data-[selected-single=true]:bg-primary la:data-[selected-single=true]:text-primary-foreground la:dark:hover:text-accent-foreground la:[&>span]:text-xs la:[&>span]:opacity-70", a.day, t),
403
435
  ...i
404
436
  });
405
437
  }
406
438
  //#endregion
407
439
  //#region src/components/ui/input.tsx
408
- function V({ className: e, type: t, ...n }) {
409
- return /* @__PURE__ */ j("input", {
440
+ function H({ className: e, type: t, ...n }) {
441
+ return /* @__PURE__ */ A("input", {
410
442
  type: t,
411
443
  "data-slot": "input",
412
- className: R("la:flex la:h-9 la:w-full la:min-w-0 la:rounded-md la:border la:border-input la:bg-card la:px-3 la:py-1 la:text-sm la:text-foreground la:outline-none la:transition-colors la:placeholder:text-muted-foreground la:focus-visible:border-ring la:focus-visible:ring-2 la:focus-visible:ring-ring/20 la:disabled:cursor-not-allowed la:disabled:opacity-50 la:max-md:min-h-11", e),
444
+ className: z("la:flex la:h-9 la:w-full la:min-w-0 la:rounded-md la:border la:border-input la:bg-card la:px-3 la:py-1 la:text-sm la:text-foreground la:outline-none la:transition-colors la:placeholder:text-muted-foreground la:focus-visible:border-ring la:focus-visible:ring-2 la:focus-visible:ring-ring/20 la:disabled:cursor-not-allowed la:disabled:opacity-50 la:max-md:min-h-11", e),
413
445
  ...n
414
446
  });
415
447
  }
416
448
  //#endregion
417
449
  //#region src/components/ui/popover.tsx
418
- function De({ ...e }) {
419
- return /* @__PURE__ */ j(ne.Root, {
450
+ function ke({ ...e }) {
451
+ return /* @__PURE__ */ A(I.Root, {
420
452
  "data-slot": "popover",
421
453
  ...e
422
454
  });
423
455
  }
424
- function Oe({ ...e }) {
425
- return /* @__PURE__ */ j(ne.Trigger, {
456
+ function Ae({ ...e }) {
457
+ return /* @__PURE__ */ A(I.Trigger, {
426
458
  "data-slot": "popover-trigger",
427
459
  ...e
428
460
  });
429
461
  }
430
- function ke({ className: e, align: t = "center", sideOffset: n = 4, ...r }) {
431
- return /* @__PURE__ */ j(ne.Portal, { children: /* @__PURE__ */ j(ne.Content, {
462
+ function je({ className: e, align: t = "center", sideOffset: n = 4, ...r }) {
463
+ return /* @__PURE__ */ A(I.Portal, { children: /* @__PURE__ */ A(I.Content, {
432
464
  "data-slot": "popover-content",
433
465
  align: t,
434
466
  sideOffset: n,
435
- className: R("la:z-50 la:w-72 la:origin-(--radix-popover-content-transform-origin) la:rounded-md la:border la:bg-popover la:p-4 la:text-popover-foreground la:shadow-md la:outline-hidden", e),
467
+ className: z("la:z-50 la:w-72 la:origin-(--radix-popover-content-transform-origin) la:rounded-md la:border la:bg-popover la:p-4 la:text-popover-foreground la:shadow-md la:outline-hidden", e),
436
468
  ...r
437
469
  }) });
438
470
  }
439
- function Ae({ ...e }) {
440
- return /* @__PURE__ */ j(ne.Anchor, {
471
+ function Me({ ...e }) {
472
+ return /* @__PURE__ */ A(I.Anchor, {
441
473
  "data-slot": "popover-anchor",
442
474
  ...e
443
475
  });
444
476
  }
445
- function je({ className: e, ...t }) {
446
- return /* @__PURE__ */ j("div", {
477
+ function Ne({ className: e, ...t }) {
478
+ return /* @__PURE__ */ A("div", {
447
479
  "data-slot": "popover-header",
448
- className: R("la:flex la:flex-col la:gap-1 la:text-sm", e),
480
+ className: z("la:flex la:flex-col la:gap-1 la:text-sm", e),
449
481
  ...t
450
482
  });
451
483
  }
452
- function Me({ className: e, ...t }) {
453
- return /* @__PURE__ */ j("div", {
484
+ function Pe({ className: e, ...t }) {
485
+ return /* @__PURE__ */ A("div", {
454
486
  "data-slot": "popover-title",
455
- className: R("la:font-medium", e),
487
+ className: z("la:font-medium", e),
456
488
  ...t
457
489
  });
458
490
  }
459
- function Ne({ className: e, ...t }) {
460
- return /* @__PURE__ */ j("p", {
491
+ function Fe({ className: e, ...t }) {
492
+ return /* @__PURE__ */ A("p", {
461
493
  "data-slot": "popover-description",
462
- className: R("la:text-muted-foreground", e),
494
+ className: z("la:text-muted-foreground", e),
463
495
  ...t
464
496
  });
465
497
  }
466
498
  //#endregion
467
499
  //#region src/time-range.ts
468
- var Pe = [
500
+ var Ie = [
469
501
  {
470
502
  minutes: 5,
471
503
  label: "Last 5 minutes"
@@ -490,11 +522,11 @@ var Pe = [
490
522
  minutes: 10080,
491
523
  label: "Last 7 days"
492
524
  }
493
- ], Fe = {
525
+ ], Le = {
494
526
  kind: "relative",
495
527
  minutes: 60
496
528
  };
497
- function Ie(e, t) {
529
+ function Re(e, t) {
498
530
  switch (e.kind) {
499
531
  case "relative": return { fromMs: Math.floor((t - e.minutes * 6e4) / 6e4) * 6e4 };
500
532
  case "absolute": return {
@@ -504,24 +536,24 @@ function Ie(e, t) {
504
536
  case "all": return {};
505
537
  }
506
538
  }
507
- function Le(e) {
539
+ function ze(e) {
508
540
  switch (e.kind) {
509
- case "relative": return Pe.find((t) => t.minutes === e.minutes)?.label ?? `Last ${e.minutes} minutes`;
510
- case "absolute": return `${ze(e.fromMs, e.toMs)} – ${ze(e.toMs, e.fromMs)}`;
541
+ case "relative": return Ie.find((t) => t.minutes === e.minutes)?.label ?? `Last ${e.minutes} minutes`;
542
+ case "absolute": return `${Ve(e.fromMs, e.toMs)} – ${Ve(e.toMs, e.fromMs)}`;
511
543
  case "all": return "All retained";
512
544
  }
513
545
  }
514
- function H(e) {
546
+ function U(e) {
515
547
  switch (e.kind) {
516
- case "relative": return `in the ${Le(e).toLocaleLowerCase()}`;
517
- case "absolute": return `between ${Le(e)}`;
548
+ case "relative": return `in the ${ze(e).toLocaleLowerCase()}`;
549
+ case "absolute": return `between ${ze(e)}`;
518
550
  case "all": return "in retained history";
519
551
  }
520
552
  }
521
- function Re(e, t) {
553
+ function Be(e, t) {
522
554
  return e.kind === t.kind && (e.kind !== "relative" || e.minutes === t.minutes) && (e.kind !== "absolute" || e.fromMs === t.fromMs && e.toMs === t.toMs);
523
555
  }
524
- function ze(e, t) {
556
+ function Ve(e, t) {
525
557
  let n = new Date(e), r = n.toDateString() === new Date(t).toDateString(), i = n.toLocaleTimeString([], {
526
558
  hour: "2-digit",
527
559
  minute: "2-digit",
@@ -534,45 +566,45 @@ function ze(e, t) {
534
566
  }
535
567
  //#endregion
536
568
  //#region src/TimeRangePicker.tsx
537
- function Be({ value: e, onChange: t, allowAll: n = !0, className: r, align: i = "end" }) {
538
- let [o, s] = a(!1), [c, l] = a(() => He(e)), [d, p] = a(!1), m = (e) => {
569
+ function He({ value: e, onChange: t, allowAll: n = !0, className: r, align: i = "end" }) {
570
+ let [o, s] = a(!1), [c, l] = a(() => We(e)), [d, p] = a(!1), m = (e) => {
539
571
  t(e), s(!1);
540
572
  };
541
- return /* @__PURE__ */ M(De, {
573
+ return /* @__PURE__ */ j(ke, {
542
574
  open: o,
543
575
  onOpenChange: (t) => {
544
- t && (l(He(e)), p(!1)), s(t);
576
+ t && (l(We(e)), p(!1)), s(t);
545
577
  },
546
- children: [/* @__PURE__ */ j(Oe, {
578
+ children: [/* @__PURE__ */ A(Ae, {
547
579
  asChild: !0,
548
- children: /* @__PURE__ */ M(B, {
580
+ children: /* @__PURE__ */ j(V, {
549
581
  type: "button",
550
582
  variant: "outline",
551
583
  className: r,
552
- "aria-label": `Time range: ${Le(e)}`,
584
+ "aria-label": `Time range: ${ze(e)}`,
553
585
  children: [
554
- /* @__PURE__ */ j(u, { "aria-hidden": "true" }),
555
- /* @__PURE__ */ j("span", {
586
+ /* @__PURE__ */ A(u, { "aria-hidden": "true" }),
587
+ /* @__PURE__ */ A("span", {
556
588
  className: "la:truncate la:tabular-nums",
557
- children: Le(e)
589
+ children: ze(e)
558
590
  }),
559
- /* @__PURE__ */ j(f, {
591
+ /* @__PURE__ */ A(f, {
560
592
  "aria-hidden": "true",
561
593
  className: "la:text-muted-foreground"
562
594
  })
563
595
  ]
564
596
  })
565
- }), /* @__PURE__ */ M(ke, {
597
+ }), /* @__PURE__ */ j(je, {
566
598
  align: i,
567
599
  "aria-label": "Time range",
568
600
  className: "la:flex la:w-auto la:p-0 la:text-sm",
569
- children: [/* @__PURE__ */ M("div", {
601
+ children: [/* @__PURE__ */ j("div", {
570
602
  className: "la:flex la:flex-col la:gap-0.5 la:border-r la:p-2",
571
603
  role: "group",
572
604
  "aria-label": "Preset ranges",
573
- children: [Pe.map((t) => /* @__PURE__ */ j(Ve, {
605
+ children: [Ie.map((t) => /* @__PURE__ */ A(Ue, {
574
606
  label: t.label,
575
- selected: Re(e, {
607
+ selected: Be(e, {
576
608
  kind: "relative",
577
609
  minutes: t.minutes
578
610
  }),
@@ -580,17 +612,17 @@ function Be({ value: e, onChange: t, allowAll: n = !0, className: r, align: i =
580
612
  kind: "relative",
581
613
  minutes: t.minutes
582
614
  })
583
- }, t.minutes)), n && /* @__PURE__ */ j(Ve, {
615
+ }, t.minutes)), n && /* @__PURE__ */ A(Ue, {
584
616
  label: "All retained",
585
617
  selected: e.kind === "all",
586
618
  onSelect: () => m({ kind: "all" })
587
619
  })]
588
- }), /* @__PURE__ */ M("form", {
620
+ }), /* @__PURE__ */ j("form", {
589
621
  className: "la:flex la:w-[22rem] la:flex-col",
590
622
  "aria-label": "Custom range",
591
623
  onSubmit: (e) => {
592
624
  e.preventDefault();
593
- let t = Ue(c);
625
+ let t = Ge(c);
594
626
  if (!t) {
595
627
  p(!0);
596
628
  return;
@@ -598,7 +630,7 @@ function Be({ value: e, onChange: t, allowAll: n = !0, className: r, align: i =
598
630
  p(!1), m(t);
599
631
  },
600
632
  children: [
601
- /* @__PURE__ */ j(Te, {
633
+ /* @__PURE__ */ A(De, {
602
634
  mode: "range",
603
635
  numberOfMonths: 1,
604
636
  defaultMonth: c.dates?.to ?? c.dates?.from,
@@ -609,12 +641,12 @@ function Be({ value: e, onChange: t, allowAll: n = !0, className: r, align: i =
609
641
  })),
610
642
  disabled: { after: /* @__PURE__ */ new Date() }
611
643
  }),
612
- /* @__PURE__ */ M("div", {
644
+ /* @__PURE__ */ j("div", {
613
645
  className: "la:flex la:items-end la:gap-2 la:border-t la:px-3 la:py-3",
614
646
  children: [
615
- /* @__PURE__ */ M("label", {
647
+ /* @__PURE__ */ j("label", {
616
648
  className: "la:grid la:gap-1 la:text-xs la:text-muted-foreground",
617
- children: ["From", /* @__PURE__ */ j(V, {
649
+ children: ["From", /* @__PURE__ */ A(H, {
618
650
  type: "time",
619
651
  name: "from",
620
652
  required: !0,
@@ -627,9 +659,9 @@ function Be({ value: e, onChange: t, allowAll: n = !0, className: r, align: i =
627
659
  "aria-invalid": d || void 0
628
660
  })]
629
661
  }),
630
- /* @__PURE__ */ M("label", {
662
+ /* @__PURE__ */ j("label", {
631
663
  className: "la:grid la:gap-1 la:text-xs la:text-muted-foreground",
632
- children: ["To", /* @__PURE__ */ j(V, {
664
+ children: ["To", /* @__PURE__ */ A(H, {
633
665
  type: "time",
634
666
  name: "to",
635
667
  required: !0,
@@ -642,7 +674,7 @@ function Be({ value: e, onChange: t, allowAll: n = !0, className: r, align: i =
642
674
  "aria-invalid": d || void 0
643
675
  })]
644
676
  }),
645
- /* @__PURE__ */ j(B, {
677
+ /* @__PURE__ */ A(V, {
646
678
  type: "submit",
647
679
  variant: "outline",
648
680
  size: "sm",
@@ -652,7 +684,7 @@ function Be({ value: e, onChange: t, allowAll: n = !0, className: r, align: i =
652
684
  })
653
685
  ]
654
686
  }),
655
- d && /* @__PURE__ */ j("p", {
687
+ d && /* @__PURE__ */ A("p", {
656
688
  className: "la:px-3 la:pb-3 la:text-xs la:text-danger",
657
689
  role: "alert",
658
690
  children: "From must be before To."
@@ -662,8 +694,8 @@ function Be({ value: e, onChange: t, allowAll: n = !0, className: r, align: i =
662
694
  })]
663
695
  });
664
696
  }
665
- function Ve({ label: e, selected: t, onSelect: n }) {
666
- return /* @__PURE__ */ j(B, {
697
+ function Ue({ label: e, selected: t, onSelect: n }) {
698
+ return /* @__PURE__ */ A(V, {
667
699
  type: "button",
668
700
  variant: t ? "secondary" : "ghost",
669
701
  size: "sm",
@@ -673,167 +705,216 @@ function Ve({ label: e, selected: t, onSelect: n }) {
673
705
  children: e
674
706
  });
675
707
  }
676
- function He(e) {
677
- let t = Date.now(), n = Ie(e, t), r = new Date(n.fromMs ?? t - 36e5), i = new Date(n.toMs ?? t);
708
+ function We(e) {
709
+ let t = Date.now(), n = Re(e, t), r = new Date(n.fromMs ?? t - 36e5), i = new Date(n.toMs ?? t);
678
710
  return {
679
711
  dates: {
680
- from: We(r),
681
- to: We(i)
712
+ from: Ke(r),
713
+ to: Ke(i)
682
714
  },
683
- fromTime: Ge(r),
684
- toTime: Ge(i)
715
+ fromTime: qe(r),
716
+ toTime: qe(i)
685
717
  };
686
718
  }
687
- function Ue(e) {
719
+ function Ge(e) {
688
720
  let t = e.dates?.from, n = e.dates?.to ?? t;
689
721
  if (!t || !n) return null;
690
- let r = Ke(t, e.fromTime), i = Ke(n, e.toTime);
722
+ let r = Je(t, e.fromTime), i = Je(n, e.toTime);
691
723
  return Number.isFinite(r) && Number.isFinite(i) && r < i ? {
692
724
  kind: "absolute",
693
725
  fromMs: r,
694
726
  toMs: i
695
727
  } : null;
696
728
  }
697
- function We(e) {
729
+ function Ke(e) {
698
730
  return new Date(e.getFullYear(), e.getMonth(), e.getDate());
699
731
  }
700
- function Ge(e) {
732
+ function qe(e) {
701
733
  return `${String(e.getHours()).padStart(2, "0")}:${String(e.getMinutes()).padStart(2, "0")}`;
702
734
  }
703
- function Ke(e, t) {
735
+ function Je(e, t) {
704
736
  let [n, r] = t.split(":").map(Number);
705
737
  return new Date(e.getFullYear(), e.getMonth(), e.getDate(), n ?? 0, r ?? 0).getTime();
706
738
  }
707
739
  //#endregion
708
740
  //#region src/components/ui/badge.tsx
709
- var qe = P("la:inline-flex la:items-center la:justify-center la:gap-1.5 la:rounded-md la:border la:px-2 la:py-0.5 la:text-xs la:font-medium la:whitespace-nowrap", {
741
+ var Ye = N("la:inline-flex la:items-center la:justify-center la:gap-1.5 la:rounded-md la:border la:px-2 la:py-0.5 la:text-xs la:font-medium la:whitespace-nowrap", {
710
742
  variants: { variant: {
711
743
  default: "la:border-transparent la:bg-muted la:text-muted-foreground",
712
744
  outline: "la:border-border la:text-muted-foreground"
713
745
  } },
714
746
  defaultVariants: { variant: "default" }
715
747
  });
716
- function U({ className: e, variant: t, ...n }) {
717
- return /* @__PURE__ */ j("span", {
748
+ function W({ className: e, variant: t, ...n }) {
749
+ return /* @__PURE__ */ A("span", {
718
750
  "data-slot": "badge",
719
- className: R(qe({ variant: t }), e),
751
+ className: z(Ye({ variant: t }), e),
720
752
  ...n
721
753
  });
722
754
  }
723
755
  //#endregion
756
+ //#region src/components/ui/drawer.tsx
757
+ function Xe({ ...e }) {
758
+ return /* @__PURE__ */ A(L.Root, {
759
+ "data-slot": "drawer",
760
+ ...e
761
+ });
762
+ }
763
+ function Ze({ ...e }) {
764
+ return /* @__PURE__ */ A(L.Trigger, {
765
+ "data-slot": "drawer-trigger",
766
+ ...e
767
+ });
768
+ }
769
+ function Qe({ ...e }) {
770
+ return /* @__PURE__ */ A(L.Portal, {
771
+ "data-slot": "drawer-portal",
772
+ ...e
773
+ });
774
+ }
775
+ function $e({ ...e }) {
776
+ return /* @__PURE__ */ A(L.Close, {
777
+ "data-slot": "drawer-close",
778
+ ...e
779
+ });
780
+ }
781
+ function et({ className: e, ...t }) {
782
+ return /* @__PURE__ */ A(L.Overlay, {
783
+ "data-slot": "drawer-overlay",
784
+ className: z("la:fixed la:inset-0 la:z-50 la:bg-black/50 la:data-[state=closed]:animate-out la:data-[state=closed]:fade-out-0 la:data-[state=open]:animate-in la:data-[state=open]:fade-in-0", e),
785
+ ...t
786
+ });
787
+ }
788
+ function tt({ className: e, children: t, container: n, ...r }) {
789
+ return /* @__PURE__ */ j(Qe, {
790
+ container: n,
791
+ children: [/* @__PURE__ */ A(et, {}), /* @__PURE__ */ j(L.Content, {
792
+ "data-slot": "drawer-content",
793
+ className: z("la-observer la:group/drawer-content la:fixed la:z-50 la:flex la:h-auto la:flex-col la:bg-background", "la:data-[vaul-drawer-direction=top]:inset-x-0 la:data-[vaul-drawer-direction=top]:top-0 la:data-[vaul-drawer-direction=top]:mb-24 la:data-[vaul-drawer-direction=top]:max-h-[80vh] la:data-[vaul-drawer-direction=top]:rounded-b-lg la:data-[vaul-drawer-direction=top]:border-b", "la:data-[vaul-drawer-direction=bottom]:inset-x-0 la:data-[vaul-drawer-direction=bottom]:bottom-0 la:data-[vaul-drawer-direction=bottom]:mt-24 la:data-[vaul-drawer-direction=bottom]:max-h-[80vh] la:data-[vaul-drawer-direction=bottom]:rounded-t-lg la:data-[vaul-drawer-direction=bottom]:border-t", "la:data-[vaul-drawer-direction=right]:inset-y-0 la:data-[vaul-drawer-direction=right]:right-0 la:data-[vaul-drawer-direction=right]:w-3/4 la:data-[vaul-drawer-direction=right]:border-l la:data-[vaul-drawer-direction=right]:sm:max-w-sm", "la:data-[vaul-drawer-direction=left]:inset-y-0 la:data-[vaul-drawer-direction=left]:left-0 la:data-[vaul-drawer-direction=left]:w-3/4 la:data-[vaul-drawer-direction=left]:border-r la:data-[vaul-drawer-direction=left]:sm:max-w-sm", e),
794
+ ...r,
795
+ children: [/* @__PURE__ */ A("div", { className: "la:mx-auto la:mt-4 la:hidden la:h-2 la:w-[100px] la:shrink-0 la:rounded-full la:bg-muted la:group-data-[vaul-drawer-direction=bottom]/drawer-content:block" }), t]
796
+ })]
797
+ });
798
+ }
799
+ function nt({ className: e, ...t }) {
800
+ return /* @__PURE__ */ A("div", {
801
+ "data-slot": "drawer-header",
802
+ className: z("la:flex la:flex-col la:gap-0.5 la:p-4 la:group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center la:group-data-[vaul-drawer-direction=top]/drawer-content:text-center la:md:gap-1.5 la:md:text-left", e),
803
+ ...t
804
+ });
805
+ }
806
+ function rt({ className: e, ...t }) {
807
+ return /* @__PURE__ */ A("div", {
808
+ "data-slot": "drawer-footer",
809
+ className: z("la:mt-auto la:flex la:flex-col la:gap-2 la:p-4", e),
810
+ ...t
811
+ });
812
+ }
813
+ function it({ className: e, ...t }) {
814
+ return /* @__PURE__ */ A(L.Title, {
815
+ "data-slot": "drawer-title",
816
+ className: z("la:font-semibold la:text-foreground", e),
817
+ ...t
818
+ });
819
+ }
820
+ function at({ className: e, ...t }) {
821
+ return /* @__PURE__ */ A(L.Description, {
822
+ "data-slot": "drawer-description",
823
+ className: z("la:text-sm la:text-muted-foreground", e),
824
+ ...t
825
+ });
826
+ }
827
+ //#endregion
724
828
  //#region src/components/ui/native-select.tsx
725
- function Je({ className: e, size: t = "default", ...n }) {
726
- return /* @__PURE__ */ M("div", {
829
+ function ot({ className: e, size: t = "default", ...n }) {
830
+ return /* @__PURE__ */ j("div", {
727
831
  className: "la:group/native-select la:relative la:w-fit la:has-[select:disabled]:opacity-50",
728
832
  "data-slot": "native-select-wrapper",
729
- children: [/* @__PURE__ */ j("select", {
833
+ children: [/* @__PURE__ */ A("select", {
730
834
  "data-slot": "native-select",
731
835
  "data-size": t,
732
- className: R("la:h-9 la:w-full la:min-w-0 la:appearance-none la:rounded-md la:border la:border-input la:bg-transparent la:px-3 la:py-2 la:pr-9 la:text-sm la:shadow-xs la:outline-none la:transition-[color,box-shadow] la:selection:bg-primary la:selection:text-primary-foreground la:disabled:pointer-events-none la:disabled:cursor-not-allowed la:data-[size=sm]:h-8 la:data-[size=sm]:py-1 la:focus-visible:border-ring la:focus-visible:ring-[3px] la:focus-visible:ring-ring/50 la:aria-invalid:border-destructive la:aria-invalid:ring-destructive/20 la:dark:bg-input/30 la:dark:hover:bg-input/50 la:dark:aria-invalid:ring-destructive/40", e),
836
+ className: z("la:h-9 la:w-full la:min-w-0 la:appearance-none la:rounded-md la:border la:border-input la:bg-transparent la:px-3 la:py-2 la:pr-9 la:text-sm la:shadow-xs la:outline-none la:transition-[color,box-shadow] la:selection:bg-primary la:selection:text-primary-foreground la:disabled:pointer-events-none la:disabled:cursor-not-allowed la:data-[size=sm]:h-8 la:data-[size=sm]:py-1 la:focus-visible:border-ring la:focus-visible:ring-[3px] la:focus-visible:ring-ring/50 la:aria-invalid:border-destructive la:aria-invalid:ring-destructive/20 la:dark:bg-input/30 la:dark:hover:bg-input/50 la:dark:aria-invalid:ring-destructive/40", e),
733
837
  ...n
734
- }), /* @__PURE__ */ j(p, {
838
+ }), /* @__PURE__ */ A(p, {
735
839
  className: "la:pointer-events-none la:absolute la:top-1/2 la:right-3.5 la:size-4 la:-translate-y-1/2 la:text-muted-foreground la:opacity-50 la:select-none",
736
840
  "aria-hidden": "true",
737
841
  "data-slot": "native-select-icon"
738
842
  })]
739
843
  });
740
844
  }
741
- function W({ className: e, ...t }) {
742
- return /* @__PURE__ */ j("option", {
845
+ function G({ className: e, ...t }) {
846
+ return /* @__PURE__ */ A("option", {
743
847
  "data-slot": "native-select-option",
744
- className: R("la:bg-[Canvas] la:text-[CanvasText]", e),
848
+ className: z("la:bg-[Canvas] la:text-[CanvasText]", e),
745
849
  ...t
746
850
  });
747
851
  }
748
852
  //#endregion
749
- //#region src/components/ui/sheet.tsx
750
- var Ye = L.Root, Xe = L.Title, Ze = L.Description;
751
- function Qe({ className: e, children: t, container: n, ...r }) {
752
- return /* @__PURE__ */ M(L.Portal, {
753
- container: n,
754
- children: [/* @__PURE__ */ j(L.Overlay, { className: "la-sheet-overlay" }), /* @__PURE__ */ M(L.Content, {
755
- "data-slot": "sheet-content",
756
- className: R("la-observer la-sheet", e),
757
- ...r,
758
- children: [t, /* @__PURE__ */ j(L.Close, {
759
- asChild: !0,
760
- children: /* @__PURE__ */ j(B, {
761
- className: "la-sheet-close",
762
- variant: "ghost",
763
- size: "icon",
764
- "aria-label": "Close",
765
- children: /* @__PURE__ */ j(E, { "aria-hidden": "true" })
766
- })
767
- })]
768
- })]
769
- });
770
- }
771
- //#endregion
772
853
  //#region src/components/ui/table.tsx
773
- function G({ className: e, containerProps: t, ...n }) {
774
- return /* @__PURE__ */ j("div", {
854
+ function K({ className: e, containerProps: t, ...n }) {
855
+ return /* @__PURE__ */ A("div", {
775
856
  ...t,
776
857
  "data-slot": "table-container",
777
- className: R("la:relative la:w-full la:overflow-x-auto", t?.className),
778
- children: /* @__PURE__ */ j("table", {
858
+ className: z("la:relative la:w-full la:overflow-x-auto", t?.className),
859
+ children: /* @__PURE__ */ A("table", {
779
860
  "data-slot": "table",
780
- className: R("la:w-full la:caption-bottom la:text-sm la:tabular-nums", e),
861
+ className: z("la:w-full la:caption-bottom la:text-sm la:tabular-nums", e),
781
862
  ...n
782
863
  })
783
864
  });
784
865
  }
785
- function K({ className: e, ...t }) {
786
- return /* @__PURE__ */ j("thead", {
866
+ function q({ className: e, ...t }) {
867
+ return /* @__PURE__ */ A("thead", {
787
868
  "data-slot": "table-header",
788
- className: R("la:[&_tr]:border-b", e),
869
+ className: z("la:[&_tr]:border-b", e),
789
870
  ...t
790
871
  });
791
872
  }
792
- function q({ className: e, ...t }) {
793
- return /* @__PURE__ */ j("tbody", {
873
+ function J({ className: e, ...t }) {
874
+ return /* @__PURE__ */ A("tbody", {
794
875
  "data-slot": "table-body",
795
- className: R("la:[&_tr:last-child]:border-0", e),
876
+ className: z("la:[&_tr:last-child]:border-0", e),
796
877
  ...t
797
878
  });
798
879
  }
799
- function $e({ className: e, ...t }) {
800
- return /* @__PURE__ */ j("tfoot", {
880
+ function st({ className: e, ...t }) {
881
+ return /* @__PURE__ */ A("tfoot", {
801
882
  "data-slot": "table-footer",
802
- className: R("la:bg-muted/50 la:border-t la:font-medium la:[&>tr]:last:border-b-0", e),
883
+ className: z("la:bg-muted/50 la:border-t la:font-medium la:[&>tr]:last:border-b-0", e),
803
884
  ...t
804
885
  });
805
886
  }
806
- function J({ className: e, ...t }) {
807
- return /* @__PURE__ */ j("tr", {
887
+ function Y({ className: e, ...t }) {
888
+ return /* @__PURE__ */ A("tr", {
808
889
  "data-slot": "table-row",
809
- className: R("la:border-b la:transition-colors la:duration-150 la:hover:bg-muted/60 la:data-[state=selected]:bg-muted", e),
890
+ className: z("la:border-b la:transition-colors la:duration-150 la:hover:bg-muted/60 la:data-[state=selected]:bg-muted", e),
810
891
  ...t
811
892
  });
812
893
  }
813
- function Y({ className: e, ...t }) {
814
- return /* @__PURE__ */ j("th", {
894
+ function X({ className: e, ...t }) {
895
+ return /* @__PURE__ */ A("th", {
815
896
  "data-slot": "table-head",
816
- className: R("la:h-10 la:whitespace-nowrap la:px-3 la:text-left la:align-middle la:text-xs la:font-medium la:text-muted-foreground la:[&:has([role=checkbox])]:pr-0 la:[&>[role=checkbox]]:translate-y-[2px]", e),
897
+ className: z("la:h-10 la:whitespace-nowrap la:px-3 la:text-left la:align-middle la:text-xs la:font-medium la:text-muted-foreground la:[&:has([role=checkbox])]:pr-0 la:[&>[role=checkbox]]:translate-y-[2px]", e),
817
898
  ...t
818
899
  });
819
900
  }
820
- function X({ className: e, ...t }) {
821
- return /* @__PURE__ */ j("td", {
901
+ function Z({ className: e, ...t }) {
902
+ return /* @__PURE__ */ A("td", {
822
903
  "data-slot": "table-cell",
823
- className: R("la:whitespace-nowrap la:px-3 la:py-2.5 la:align-middle la:[&:has([role=checkbox])]:pr-0 la:[&>[role=checkbox]]:translate-y-[2px]", e),
904
+ className: z("la:whitespace-nowrap la:px-3 la:py-2.5 la:align-middle la:[&:has([role=checkbox])]:pr-0 la:[&>[role=checkbox]]:translate-y-[2px]", e),
824
905
  ...t
825
906
  });
826
907
  }
827
- function et({ className: e, ...t }) {
828
- return /* @__PURE__ */ j("caption", {
908
+ function ct({ className: e, ...t }) {
909
+ return /* @__PURE__ */ A("caption", {
829
910
  "data-slot": "table-caption",
830
- className: R("la:text-muted-foreground la:mt-4 la:text-sm", e),
911
+ className: z("la:text-muted-foreground la:mt-4 la:text-sm", e),
831
912
  ...t
832
913
  });
833
914
  }
834
915
  //#endregion
835
916
  //#region src/observer-hooks.ts
836
- function tt(e) {
917
+ function lt(e) {
837
918
  let [n, r] = a(0), [i, o] = a(), [s, c] = a(!0), [l, u] = a(!1);
838
919
  return t(() => {
839
920
  let t = new AbortController(), n, r = 1e3;
@@ -866,7 +947,7 @@ function tt(e) {
866
947
  retry: () => r((e) => e + 1)
867
948
  };
868
949
  }
869
- function nt(e, n = !0) {
950
+ function ut(e, n = !0) {
870
951
  let [r, i] = a(), [o, s] = a(!1), [c, l] = a(0);
871
952
  return t(() => i(void 0), [e]), t(() => {
872
953
  if (!n) return;
@@ -875,7 +956,7 @@ function nt(e, n = !0) {
875
956
  try {
876
957
  if (!e.watchRequests) throw Error("Request traces unavailable");
877
958
  if (await e.watchRequests((e) => {
878
- r.signal.aborted || (t = e.resumeCursor, i((t) => rt(t, e)), s(!1), o = 1e3);
959
+ r.signal.aborted || (t = e.resumeCursor, i((t) => dt(t, e)), s(!1), o = 1e3);
879
960
  }, r.signal, t), !r.signal.aborted) throw Error("Request stream disconnected");
880
961
  } catch {
881
962
  r.signal.aborted || s(!0);
@@ -896,7 +977,7 @@ function nt(e, n = !0) {
896
977
  retry: () => l((e) => e + 1)
897
978
  };
898
979
  }
899
- function rt(e, t) {
980
+ function dt(e, t) {
900
981
  let n = new Map((e?.epoch === t.epoch && !t.reset ? e.records : []).map((e) => [e.eventId ?? e.sequence, e]));
901
982
  for (let e of t.records) n.set(e.eventId ?? e.sequence, e);
902
983
  return {
@@ -905,7 +986,7 @@ function rt(e, t) {
905
986
  records: [...n.values()].sort((e, t) => t.sequence - e.sequence).slice(0, t.capacity)
906
987
  };
907
988
  }
908
- function it(e, n, r, i = 1e4) {
989
+ function ft(e, n, r, i = 1e4) {
909
990
  let o = r ? JSON.stringify(n) : void 0, [s, c] = a(0), [l, u] = a(), [d, f] = a(!1), [p, m] = a(!1);
910
991
  t(() => {
911
992
  if (!o) return;
@@ -948,7 +1029,7 @@ function it(e, n, r, i = 1e4) {
948
1029
  }
949
1030
  //#endregion
950
1031
  //#region src/request-history.ts
951
- function at(e, n) {
1032
+ function pt(e, n) {
952
1033
  let [r, o] = a(), [s, c] = a(!1), [l, u] = a(!1), d = i(() => {});
953
1034
  return t(() => {
954
1035
  if (o(void 0), u(!1), c(!1), !n) return;
@@ -991,78 +1072,78 @@ function at(e, n) {
991
1072
  }
992
1073
  //#endregion
993
1074
  //#region src/RequestObserver.tsx
994
- function ot({ client: e, actor: n, timeRange: o, onTimeRangeChange: s, focus: c }) {
995
- let [l, u] = a(), [f, p] = a(Fe), m = o ?? f, h = s ?? p, g = at(e, r(() => l ? {
1075
+ function mt({ client: e, actor: n, timeRange: o, onTimeRangeChange: s, focus: c }) {
1076
+ let [l, u] = a(), [f, p] = a(Le), m = o ?? f, h = s ?? p, g = pt(e, r(() => l ? {
996
1077
  ...l,
997
1078
  ...n,
998
- ...l.requestId || l.connectionId ? {} : Ie(m, Date.now())
1079
+ ...l.requestId || l.connectionId ? {} : Re(m, Date.now())
999
1080
  } : void 0, [
1000
1081
  l,
1001
1082
  n?.actorName,
1002
1083
  n?.actorId,
1003
1084
  m
1004
- ])), { page: _, failed: v, retry: y } = nt(e), [S, C] = a(), [w, T] = a(), [E, D] = a("waterfall"), O = i(null), k = i(null), N = n ? "h3" : "h1", P = l ? g.page : S ?? _, F = _ ?? g.page, I = (P?.records ?? []).filter((e) => !n || e.actorName === n.actorName && e.actorId === n.actorId);
1085
+ ])), { page: _, failed: v, retry: y } = ut(e), [x, S] = a(), [C, w] = a(), [E, D] = a("waterfall"), O = i(null), M = i(null), N = n ? "h3" : "h1", P = l ? g.page : x ?? _, F = _ ?? g.page, I = (P?.records ?? []).filter((e) => !n || e.actorName === n.actorName && e.actorId === n.actorId);
1005
1086
  return t(() => {
1006
- C(void 0), u(void 0);
1087
+ S(void 0), u(void 0);
1007
1088
  }, [
1008
1089
  e,
1009
1090
  n?.actorName,
1010
1091
  n?.actorId
1011
1092
  ]), t(() => {
1012
1093
  c && u(c);
1013
- }, [c]), t(() => T(void 0), [
1094
+ }, [c]), t(() => w(void 0), [
1014
1095
  e,
1015
1096
  _?.epoch,
1016
1097
  l,
1017
1098
  n?.actorName,
1018
1099
  n?.actorId
1019
- ]), /* @__PURE__ */ M("section", {
1100
+ ]), /* @__PURE__ */ j("section", {
1020
1101
  ref: O,
1021
1102
  className: "la-observer la-requests",
1022
1103
  "aria-label": "Request observer",
1023
1104
  children: [
1024
- (l?.requestId || l?.connectionId) && /* @__PURE__ */ M("p", { children: [
1105
+ (l?.requestId || l?.connectionId) && /* @__PURE__ */ j("p", { children: [
1025
1106
  "Showing ",
1026
1107
  l.requestId ? `request ${l.requestId}` : `connection ${l?.connectionId}`,
1027
1108
  " ",
1028
- /* @__PURE__ */ j(B, {
1109
+ /* @__PURE__ */ A(V, {
1029
1110
  variant: "link",
1030
1111
  onClick: () => u(void 0),
1031
1112
  children: "Clear filter"
1032
1113
  })
1033
1114
  ] }),
1034
- /* @__PURE__ */ M("div", {
1115
+ /* @__PURE__ */ j("div", {
1035
1116
  className: "la-observer-toolbar",
1036
- children: [/* @__PURE__ */ M("div", {
1117
+ children: [/* @__PURE__ */ j("div", {
1037
1118
  className: n ? "la:sr-only" : void 0,
1038
- children: [/* @__PURE__ */ j(N, { children: "Requests" }), /* @__PURE__ */ j("p", { children: n ? "Method calls and WebSocket events for this instance." : "Method calls and WebSocket events, with time spent waiting and processing." })]
1039
- }), /* @__PURE__ */ M("div", {
1119
+ children: [/* @__PURE__ */ A(N, { children: "Requests" }), /* @__PURE__ */ A("p", { children: n ? "Method calls and WebSocket events for this instance." : "Method calls and WebSocket events, with time spent waiting and processing." })]
1120
+ }), /* @__PURE__ */ j("div", {
1040
1121
  className: "la-request-actions",
1041
1122
  children: [
1042
- /* @__PURE__ */ M("div", {
1123
+ /* @__PURE__ */ j("div", {
1043
1124
  className: "request-view-toggle",
1044
1125
  role: "group",
1045
1126
  "aria-label": "Request view",
1046
- children: [/* @__PURE__ */ M(B, {
1127
+ children: [/* @__PURE__ */ j(V, {
1047
1128
  variant: E === "waterfall" ? "secondary" : "ghost",
1048
1129
  "aria-pressed": E === "waterfall",
1049
1130
  onClick: () => D("waterfall"),
1050
- children: [/* @__PURE__ */ j(d, { "aria-hidden": "true" }), "Waterfall"]
1051
- }), /* @__PURE__ */ M(B, {
1131
+ children: [/* @__PURE__ */ A(d, { "aria-hidden": "true" }), "Waterfall"]
1132
+ }), /* @__PURE__ */ j(V, {
1052
1133
  variant: E === "table" ? "secondary" : "ghost",
1053
1134
  "aria-pressed": E === "table",
1054
1135
  onClick: () => D("table"),
1055
- children: [/* @__PURE__ */ j(ee, { "aria-hidden": "true" }), "Table"]
1136
+ children: [/* @__PURE__ */ A(ee, { "aria-hidden": "true" }), "Table"]
1056
1137
  })]
1057
1138
  }),
1058
- e.listRequests && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j(B, {
1139
+ e.listRequests && /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A(V, {
1059
1140
  variant: l ? "outline" : "secondary",
1060
1141
  "aria-pressed": !l,
1061
1142
  onClick: () => {
1062
- u(void 0), C(void 0);
1143
+ u(void 0), S(void 0);
1063
1144
  },
1064
1145
  children: "Live"
1065
- }), /* @__PURE__ */ j(B, {
1146
+ }), /* @__PURE__ */ A(V, {
1066
1147
  variant: l ? "secondary" : "outline",
1067
1148
  "aria-pressed": !!l,
1068
1149
  onClick: () => {
@@ -1070,20 +1151,20 @@ function ot({ client: e, actor: n, timeRange: o, onTimeRangeChange: s, focus: c
1070
1151
  },
1071
1152
  children: "History"
1072
1153
  })] }),
1073
- !l && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ M(B, {
1154
+ !l && /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ j(V, {
1074
1155
  variant: "outline",
1075
1156
  disabled: !P,
1076
- onClick: () => C(S ? void 0 : _),
1077
- children: [j(S ? x : b, { "aria-hidden": "true" }), S ? "Resume" : "Pause"]
1078
- }), v && /* @__PURE__ */ M(B, {
1157
+ onClick: () => S(x ? void 0 : _),
1158
+ children: [A(x ? te : b, { "aria-hidden": "true" }), x ? "Resume" : "Pause"]
1159
+ }), v && /* @__PURE__ */ j(V, {
1079
1160
  variant: "outline",
1080
1161
  onClick: y,
1081
- children: [/* @__PURE__ */ j(te, { "aria-hidden": "true" }), "Retry"]
1162
+ children: [/* @__PURE__ */ A(ne, { "aria-hidden": "true" }), "Retry"]
1082
1163
  })] })
1083
1164
  ]
1084
1165
  })]
1085
1166
  }),
1086
- l && /* @__PURE__ */ j(st, {
1167
+ l && /* @__PURE__ */ A(ht, {
1087
1168
  query: l,
1088
1169
  range: m,
1089
1170
  onRangeChange: h,
@@ -1091,105 +1172,105 @@ function ot({ client: e, actor: n, timeRange: o, onTimeRangeChange: s, focus: c
1091
1172
  onSearch: u,
1092
1173
  scoped: !!n
1093
1174
  }),
1094
- l && g.failed && /* @__PURE__ */ M("div", {
1175
+ l && g.failed && /* @__PURE__ */ j("div", {
1095
1176
  className: "la-observer-error",
1096
1177
  role: "alert",
1097
1178
  children: [
1098
1179
  "Request history unavailable.",
1099
1180
  " ",
1100
- /* @__PURE__ */ j(B, {
1181
+ /* @__PURE__ */ A(V, {
1101
1182
  variant: "outline",
1102
1183
  onClick: g.retry,
1103
1184
  children: "Retry history"
1104
1185
  })
1105
1186
  ]
1106
1187
  }),
1107
- !l && v && /* @__PURE__ */ M("div", {
1188
+ !l && v && /* @__PURE__ */ j("div", {
1108
1189
  className: "la-observer-error",
1109
1190
  role: "alert",
1110
1191
  children: ["Request stream disconnected. Reconnecting… ", _ ? "Showing the last received requests." : "Check your connection and runtime version."]
1111
1192
  }),
1112
- !!F?.dropped && /* @__PURE__ */ M("div", {
1193
+ !!F?.dropped && /* @__PURE__ */ j("div", {
1113
1194
  className: "la-observer-error",
1114
1195
  role: "alert",
1115
1196
  children: [F.dropped.toLocaleString(), " request traces were not delivered. This history is incomplete."]
1116
1197
  }),
1117
- F?.persistenceFailed && /* @__PURE__ */ j("div", {
1198
+ F?.persistenceFailed && /* @__PURE__ */ A("div", {
1118
1199
  className: "la-observer-error",
1119
1200
  role: "alert",
1120
1201
  children: "Some request events could not be saved. This history may be incomplete."
1121
1202
  }),
1122
- P?.reset && /* @__PURE__ */ j("div", {
1203
+ P?.reset && /* @__PURE__ */ A("div", {
1123
1204
  className: "la-observer-error",
1124
1205
  role: "alert",
1125
1206
  children: "Some older events are no longer retained. Showing available history."
1126
1207
  }),
1127
- E === "waterfall" && I.length > 0 && /* @__PURE__ */ j(xe, {
1208
+ E === "waterfall" && I.length > 0 && /* @__PURE__ */ A(Se, {
1128
1209
  records: I,
1129
- selected: w,
1210
+ selected: C,
1130
1211
  onSelect: (e, t) => {
1131
- k.current = t, T(e);
1212
+ M.current = t, w(e);
1132
1213
  }
1133
1214
  }),
1134
- /* @__PURE__ */ M("div", {
1215
+ /* @__PURE__ */ j("div", {
1135
1216
  className: E === "table" || !I.length ? "la-observer-table-frame" : void 0,
1136
- children: [E === "table" && /* @__PURE__ */ M(G, {
1217
+ children: [E === "table" && /* @__PURE__ */ j(K, {
1137
1218
  "aria-label": l ? "Saved requests" : "Recent requests",
1138
1219
  className: "la-request-table",
1139
- children: [/* @__PURE__ */ j(K, { children: /* @__PURE__ */ M(J, { children: [
1140
- /* @__PURE__ */ j(Y, {
1220
+ children: [/* @__PURE__ */ A(q, { children: /* @__PURE__ */ j(Y, { children: [
1221
+ /* @__PURE__ */ A(X, {
1141
1222
  scope: "col",
1142
1223
  children: "Time"
1143
1224
  }),
1144
- /* @__PURE__ */ j(Y, {
1225
+ /* @__PURE__ */ A(X, {
1145
1226
  scope: "col",
1146
1227
  children: "Request"
1147
1228
  }),
1148
- /* @__PURE__ */ j(Y, {
1229
+ /* @__PURE__ */ A(X, {
1149
1230
  scope: "col",
1150
1231
  children: "Instance"
1151
1232
  }),
1152
- /* @__PURE__ */ j(Y, {
1233
+ /* @__PURE__ */ A(X, {
1153
1234
  scope: "col",
1154
1235
  children: "Transport"
1155
1236
  }),
1156
- /* @__PURE__ */ j(Y, {
1237
+ /* @__PURE__ */ A(X, {
1157
1238
  scope: "col",
1158
1239
  children: "Outcome"
1159
1240
  }),
1160
- /* @__PURE__ */ j(Y, {
1241
+ /* @__PURE__ */ A(X, {
1161
1242
  scope: "col",
1162
1243
  children: "Total"
1163
1244
  }),
1164
- /* @__PURE__ */ j(Y, {
1245
+ /* @__PURE__ */ A(X, {
1165
1246
  scope: "col",
1166
1247
  children: "Queue wait"
1167
1248
  }),
1168
- /* @__PURE__ */ j(Y, {
1249
+ /* @__PURE__ */ A(X, {
1169
1250
  scope: "col",
1170
- children: /* @__PURE__ */ j("span", {
1251
+ children: /* @__PURE__ */ A("span", {
1171
1252
  className: "la:sr-only",
1172
1253
  children: "Details"
1173
1254
  })
1174
1255
  })
1175
- ] }) }), /* @__PURE__ */ j(q, { children: I.map((e) => /* @__PURE__ */ M(J, {
1256
+ ] }) }), /* @__PURE__ */ A(J, { children: I.map((e) => /* @__PURE__ */ j(Y, {
1176
1257
  className: "la-clickable-row",
1177
- "data-state": w === e ? "selected" : void 0,
1258
+ "data-state": C === e ? "selected" : void 0,
1178
1259
  onClick: (t) => {
1179
- k.current = t.currentTarget.querySelector("button"), T(e);
1260
+ M.current = t.currentTarget.querySelector("button"), w(e);
1180
1261
  },
1181
1262
  children: [
1182
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j("time", {
1263
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A("time", {
1183
1264
  dateTime: new Date(e.startedAtMs).toISOString(),
1184
1265
  title: new Date(e.startedAtMs).toLocaleString(),
1185
1266
  children: l ? new Date(e.startedAtMs).toLocaleString([], { hour12: !1 }) : new Date(e.startedAtMs).toLocaleTimeString([], { hour12: !1 })
1186
1267
  }) }),
1187
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j("span", {
1268
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A("span", {
1188
1269
  className: "la-request-operation",
1189
1270
  title: e.operation,
1190
1271
  children: e.operation
1191
1272
  }) }),
1192
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ M("span", {
1273
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ j("span", {
1193
1274
  className: "la-request-actor",
1194
1275
  title: `${e.actorName} / ${e.actorId}`,
1195
1276
  children: [
@@ -1198,18 +1279,18 @@ function ot({ client: e, actor: n, timeRange: o, onTimeRangeChange: s, focus: c
1198
1279
  e.actorId
1199
1280
  ]
1200
1281
  }) }),
1201
- /* @__PURE__ */ j(X, { children: e.kind === "method" ? "Method" : "WebSocket" }),
1202
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j(U, {
1282
+ /* @__PURE__ */ A(Z, { children: e.kind === "method" ? "Method" : "WebSocket" }),
1283
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A(W, {
1203
1284
  variant: "outline",
1204
1285
  className: `la-request-outcome-${e.outcome}`,
1205
1286
  children: e.outcome[0].toUpperCase() + e.outcome.slice(1)
1206
1287
  }) }),
1207
- /* @__PURE__ */ j(X, { children: z(e.durationMs) }),
1208
- /* @__PURE__ */ j(X, { children: e.queueWaitMs === null ? /* @__PURE__ */ j("span", {
1288
+ /* @__PURE__ */ A(Z, { children: B(e.durationMs) }),
1289
+ /* @__PURE__ */ A(Z, { children: e.queueWaitMs === null ? /* @__PURE__ */ A("span", {
1209
1290
  title: "Request did not begin processing",
1210
1291
  children: "—"
1211
- }) : z(e.queueWaitMs) }),
1212
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j(B, {
1292
+ }) : B(e.queueWaitMs) }),
1293
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A(V, {
1213
1294
  variant: "ghost",
1214
1295
  size: "sm",
1215
1296
  "aria-label": `Inspect ${e.operation} request`,
@@ -1218,60 +1299,78 @@ function ot({ client: e, actor: n, timeRange: o, onTimeRangeChange: s, focus: c
1218
1299
  }) })
1219
1300
  ]
1220
1301
  }, e.eventId ?? `${P.epoch}-${e.sequence}`)) })]
1221
- }), !I.length && /* @__PURE__ */ M("div", {
1302
+ }), !I.length && /* @__PURE__ */ j("div", {
1222
1303
  className: "la-request-empty",
1223
1304
  role: "status",
1224
- children: [/* @__PURE__ */ j("strong", { children: l ? g.loading ? "Loading history…" : g.failed ? "History unavailable" : "No saved requests in this range" : P ? "No requests yet" : v ? "Requests unavailable" : "Connecting to requests…" }), /* @__PURE__ */ j("p", { children: l ? "Try a wider time range or fewer filters. Local history retains the latest 10,000 events." : "Call an actor method or send a WebSocket message to see its timings." })]
1305
+ children: [/* @__PURE__ */ A("strong", { children: l ? g.loading ? "Loading history…" : g.failed ? "History unavailable" : "No saved requests in this range" : P ? "No requests yet" : v ? "Requests unavailable" : "Connecting to requests…" }), /* @__PURE__ */ A("p", { children: l ? "Try a wider time range or fewer filters. Local history retains the latest 10,000 events." : "Call an actor method or send a WebSocket message to see its timings." })]
1225
1306
  })]
1226
1307
  }),
1227
- l && P?.nextCursor && /* @__PURE__ */ j(B, {
1308
+ l && P?.nextCursor && /* @__PURE__ */ A(V, {
1228
1309
  className: "la-request-load-older",
1229
1310
  variant: "outline",
1230
1311
  disabled: g.loading,
1231
1312
  onClick: g.loadOlder,
1232
1313
  children: g.loading ? "Loading…" : "Load older"
1233
1314
  }),
1234
- /* @__PURE__ */ M("div", {
1315
+ /* @__PURE__ */ j("div", {
1235
1316
  className: "la-observer-footnote",
1236
- children: [/* @__PURE__ */ M("span", {
1317
+ children: [/* @__PURE__ */ j("span", {
1237
1318
  className: "la-observer-refresh-status",
1238
- children: [!l && /* @__PURE__ */ j("span", { className: `la-observer-dot ${v ? "la-observer-dot-unknown" : "la-observer-dot-live"}` }), l ? "Saved history" : S ? "Display paused · collection continues" : v ? "Reconnecting…" : _ ? "Live updates" : "Connecting…"]
1239
- }), /* @__PURE__ */ j("span", { children: l ? `${I.length.toLocaleString()} saved requests shown` : n ? `${I.length} matching requests from the latest ${P?.capacity ?? 500} on this control plane.` : `Latest ${P?.capacity ?? 500} requests on this control plane.` })]
1319
+ children: [!l && /* @__PURE__ */ A("span", { className: `la-observer-dot ${v ? "la-observer-dot-unknown" : "la-observer-dot-live"}` }), l ? "Saved history" : x ? "Display paused · collection continues" : v ? "Reconnecting…" : _ ? "Live updates" : "Connecting…"]
1320
+ }), /* @__PURE__ */ A("span", { children: l ? `${I.length.toLocaleString()} saved requests shown` : n ? `${I.length} matching requests from the latest ${P?.capacity ?? 500} on this control plane.` : `Latest ${P?.capacity ?? 500} requests on this control plane.` })]
1240
1321
  }),
1241
- !l && !!P?.evicted && /* @__PURE__ */ M("p", {
1322
+ !l && !!P?.evicted && /* @__PURE__ */ j("p", {
1242
1323
  className: "la-request-note",
1243
1324
  children: [P.evicted.toLocaleString(), " older records have left this history window."]
1244
1325
  }),
1245
- /* @__PURE__ */ j("p", {
1326
+ /* @__PURE__ */ A("p", {
1246
1327
  className: "la-request-note",
1247
1328
  children: "Total includes queue wait, actor processing, and persistence. Queue wait includes the WebSocket message queue. Timings exclude the caller’s network round trip."
1248
1329
  }),
1249
- /* @__PURE__ */ j(Ye, {
1250
- open: !!w,
1330
+ /* @__PURE__ */ A(Xe, {
1331
+ direction: "right",
1332
+ autoFocus: !0,
1333
+ open: !!C,
1251
1334
  onOpenChange: (e) => {
1252
- e || T(void 0);
1335
+ e || w(void 0);
1253
1336
  },
1254
- children: /* @__PURE__ */ M(Qe, {
1337
+ children: /* @__PURE__ */ j(tt, {
1255
1338
  container: O.current,
1339
+ className: "la:data-[vaul-drawer-direction=right]:w-full la:data-[vaul-drawer-direction=right]:sm:max-w-[480px]",
1256
1340
  onCloseAutoFocus: (e) => {
1257
- e.preventDefault(), k.current?.focus();
1341
+ e.preventDefault(), M.current?.focus();
1258
1342
  },
1259
- children: [
1260
- /* @__PURE__ */ j(Xe, { children: "Request details" }),
1261
- /* @__PURE__ */ j(Ze, { children: "Full identifiers and timings for this request." }),
1262
- w && /* @__PURE__ */ j(ct, {
1263
- record: w,
1264
- timing: ve(I).rows.find((e) => e.record === w)
1343
+ children: [/* @__PURE__ */ j(nt, {
1344
+ className: "la:relative la:shrink-0 la:gap-2 la:p-6 la:pr-16",
1345
+ children: [
1346
+ /* @__PURE__ */ A(it, { children: "Request details" }),
1347
+ /* @__PURE__ */ A(at, { children: "Full identifiers and timings for this request." }),
1348
+ /* @__PURE__ */ A($e, {
1349
+ asChild: !0,
1350
+ children: /* @__PURE__ */ A(V, {
1351
+ className: "la:absolute la:top-4 la:right-4",
1352
+ variant: "ghost",
1353
+ size: "icon",
1354
+ "aria-label": "Close",
1355
+ children: /* @__PURE__ */ A(T, { "aria-hidden": "true" })
1356
+ })
1357
+ })
1358
+ ]
1359
+ }), /* @__PURE__ */ A("div", {
1360
+ className: "la:min-h-0 la:flex-1 la:overflow-y-auto la:px-6 la:pb-6",
1361
+ children: C && /* @__PURE__ */ A(gt, {
1362
+ record: C,
1363
+ timing: ve(I).calls.find((e) => e.record === C)
1265
1364
  })
1266
- ]
1365
+ })]
1267
1366
  })
1268
1367
  })
1269
1368
  ]
1270
1369
  });
1271
1370
  }
1272
- function st({ query: e, range: t, onRangeChange: r, loading: i, onSearch: a, scoped: o }) {
1371
+ function ht({ query: e, range: t, onRangeChange: r, loading: i, onSearch: a, scoped: o }) {
1273
1372
  let s = n(), c = n();
1274
- return /* @__PURE__ */ M("form", {
1373
+ return /* @__PURE__ */ j("form", {
1275
1374
  className: "la-request-history-filters",
1276
1375
  onSubmit: (e) => {
1277
1376
  e.preventDefault();
@@ -1282,20 +1381,20 @@ function st({ query: e, range: t, onRangeChange: r, loading: i, onSearch: a, sco
1282
1381
  });
1283
1382
  },
1284
1383
  children: [
1285
- /* @__PURE__ */ M("div", {
1384
+ /* @__PURE__ */ j("div", {
1286
1385
  className: "la-request-history-range",
1287
- children: [/* @__PURE__ */ j("span", { children: "Time range" }), /* @__PURE__ */ j(Be, {
1386
+ children: [/* @__PURE__ */ A("span", { children: "Time range" }), /* @__PURE__ */ A(He, {
1288
1387
  value: t,
1289
1388
  onChange: r,
1290
1389
  align: "start"
1291
1390
  })]
1292
1391
  }),
1293
- !o && /* @__PURE__ */ M("div", {
1392
+ !o && /* @__PURE__ */ j("div", {
1294
1393
  className: "la-request-history-field",
1295
- children: [/* @__PURE__ */ j("label", {
1394
+ children: [/* @__PURE__ */ A("label", {
1296
1395
  htmlFor: s,
1297
1396
  children: "Actor ID"
1298
- }), /* @__PURE__ */ j(V, {
1397
+ }), /* @__PURE__ */ A(H, {
1299
1398
  id: s,
1300
1399
  name: "actorId",
1301
1400
  placeholder: "All actors",
@@ -1303,17 +1402,17 @@ function st({ query: e, range: t, onRangeChange: r, loading: i, onSearch: a, sco
1303
1402
  defaultValue: e.actorId
1304
1403
  })]
1305
1404
  }),
1306
- /* @__PURE__ */ M("div", {
1405
+ /* @__PURE__ */ j("div", {
1307
1406
  className: "la-request-history-field",
1308
- children: [/* @__PURE__ */ j("label", {
1407
+ children: [/* @__PURE__ */ A("label", {
1309
1408
  htmlFor: c,
1310
1409
  children: "Outcome"
1311
- }), /* @__PURE__ */ M(Je, {
1410
+ }), /* @__PURE__ */ j(ot, {
1312
1411
  id: c,
1313
1412
  className: "la-observer-select",
1314
1413
  name: "outcome",
1315
1414
  defaultValue: e.outcome ?? "",
1316
- children: [/* @__PURE__ */ j(W, {
1415
+ children: [/* @__PURE__ */ A(G, {
1317
1416
  value: "",
1318
1417
  children: "All outcomes"
1319
1418
  }), [
@@ -1322,13 +1421,13 @@ function st({ query: e, range: t, onRangeChange: r, loading: i, onSearch: a, sco
1322
1421
  "rejected",
1323
1422
  "rerouted",
1324
1423
  "interrupted"
1325
- ].map((e) => /* @__PURE__ */ j(W, {
1424
+ ].map((e) => /* @__PURE__ */ A(G, {
1326
1425
  value: e,
1327
1426
  children: e[0].toUpperCase() + e.slice(1)
1328
1427
  }, e))]
1329
1428
  })]
1330
1429
  }),
1331
- /* @__PURE__ */ j(B, {
1430
+ /* @__PURE__ */ A(V, {
1332
1431
  type: "submit",
1333
1432
  variant: "outline",
1334
1433
  disabled: i,
@@ -1337,7 +1436,7 @@ function st({ query: e, range: t, onRangeChange: r, loading: i, onSearch: a, sco
1337
1436
  ]
1338
1437
  });
1339
1438
  }
1340
- function ct({ record: e, timing: t }) {
1439
+ function gt({ record: e, timing: t }) {
1341
1440
  let n = {
1342
1441
  Operation: e.operation,
1343
1442
  "Actor class": e.actorName,
@@ -1346,30 +1445,30 @@ function ct({ record: e, timing: t }) {
1346
1445
  Time: new Date(e.startedAtMs).toLocaleString(),
1347
1446
  Transport: e.kind === "method" ? "Method" : "WebSocket",
1348
1447
  Outcome: e.outcome,
1349
- Total: z(e.durationMs),
1350
- "Queue wait": e.queueWaitMs === null ? "Did not begin processing" : z(e.queueWaitMs),
1448
+ Total: B(e.durationMs),
1449
+ "Queue wait": e.queueWaitMs === null ? "Did not begin processing" : B(e.queueWaitMs),
1351
1450
  ...t ? {
1352
- "Start offset in view": z(t.offsetMs),
1353
- "Gap from preceding calls": ye(t.gapMs)
1451
+ "Start offset in view": B(t.offsetMs),
1452
+ "Gap from preceding calls": be(t.gapMs)
1354
1453
  } : {},
1355
1454
  Host: e.hostId,
1356
1455
  ...e.connectionId ? { Connection: e.connectionId } : {}
1357
1456
  };
1358
- return /* @__PURE__ */ j("dl", {
1457
+ return /* @__PURE__ */ A("dl", {
1359
1458
  className: "la-request-details",
1360
- children: Object.entries(n).map(([e, t]) => /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("dt", { children: e }), /* @__PURE__ */ j("dd", { children: t })] }, e))
1459
+ children: Object.entries(n).map(([e, t]) => /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", { children: e }), /* @__PURE__ */ A("dd", { children: t })] }, e))
1361
1460
  });
1362
1461
  }
1363
1462
  //#endregion
1364
1463
  //#region src/state-diff.ts
1365
- var lt = ie({ arrays: { detectMove: !1 } });
1366
- function ut(e, t) {
1367
- let n = lt.diff(e, t);
1464
+ var _t = ie({ arrays: { detectMove: !1 } });
1465
+ function vt(e, t) {
1466
+ let n = _t.diff(e, t);
1368
1467
  return n ? ae(n, e) ?? "" : "";
1369
1468
  }
1370
1469
  //#endregion
1371
1470
  //#region src/state-inspection.ts
1372
- function dt(e, n, r) {
1471
+ function yt(e, n, r) {
1373
1472
  let [o, s] = a(), [c, l] = a(), [u, d] = a(!1), [f, p] = a(!0), [m, h] = a(0), g = i(() => {});
1374
1473
  return t(() => {
1375
1474
  let t = new AbortController(), i = !1, a = !1, o, c;
@@ -1432,22 +1531,22 @@ function dt(e, n, r) {
1432
1531
  }
1433
1532
  //#endregion
1434
1533
  //#region src/StateInspector.tsx
1435
- function ft(e) {
1436
- let { client: t, actorName: n, actorId: r } = e, i = dt(t, n, r), [o, s] = a("state"), [c, l] = a(), [u, d] = a(), [f, p] = a(""), [m, h] = a(0), g = i.current?.snapshot, v = g?.stateVersion ?? 0, y = c ?? v, ee = i.knownVersion > v || v > (i.history?.records[0]?.stateVersion ?? 0);
1437
- return /* @__PURE__ */ M("section", {
1534
+ function bt(e) {
1535
+ let { client: t, actorName: n, actorId: r } = e, i = yt(t, n, r), [o, s] = a("state"), [c, l] = a(), [u, d] = a(), [f, p] = a(""), [m, h] = a(0), g = i.current?.snapshot, v = g?.stateVersion ?? 0, y = c ?? v, ee = i.knownVersion > v || v > (i.history?.records[0]?.stateVersion ?? 0);
1536
+ return /* @__PURE__ */ j("section", {
1438
1537
  className: "la-state",
1439
1538
  "aria-label": "Persisted state",
1440
1539
  children: [
1441
- /* @__PURE__ */ M("div", {
1540
+ /* @__PURE__ */ j("div", {
1442
1541
  className: "la-state-heading",
1443
- children: [/* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("h3", { children: "Persisted state" }), /* @__PURE__ */ j("p", { children: "Committed fields and their progression in storage." })] }), /* @__PURE__ */ M("div", {
1542
+ children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("h3", { children: "Persisted state" }), /* @__PURE__ */ A("p", { children: "Committed fields and their progression in storage." })] }), /* @__PURE__ */ j("div", {
1444
1543
  className: "la-state-actions",
1445
- children: [g && /* @__PURE__ */ M(B, {
1544
+ children: [g && /* @__PURE__ */ j(V, {
1446
1545
  variant: "outline",
1447
1546
  size: "sm",
1448
- onClick: () => _t(g.state, `${n}-${r}-v${v}.json`),
1449
- children: [/* @__PURE__ */ j(_, { "aria-hidden": "true" }), "Download JSON"]
1450
- }), /* @__PURE__ */ M(B, {
1547
+ onClick: () => Tt(g.state, `${n}-${r}-v${v}.json`),
1548
+ children: [/* @__PURE__ */ A(_, { "aria-hidden": "true" }), "Download JSON"]
1549
+ }), /* @__PURE__ */ j(V, {
1451
1550
  variant: "outline",
1452
1551
  size: "sm",
1453
1552
  disabled: i.loading,
@@ -1455,87 +1554,87 @@ function ft(e) {
1455
1554
  i.refresh(), h((e) => e + 1);
1456
1555
  },
1457
1556
  "aria-label": "Refresh state",
1458
- children: [/* @__PURE__ */ j(te, { "aria-hidden": "true" }), "Refresh"]
1557
+ children: [/* @__PURE__ */ A(ne, { "aria-hidden": "true" }), "Refresh"]
1459
1558
  })]
1460
1559
  })]
1461
1560
  }),
1462
- /* @__PURE__ */ M("div", {
1561
+ /* @__PURE__ */ j("div", {
1463
1562
  className: "la-state-tabs",
1464
1563
  "aria-label": "State views",
1465
1564
  children: [
1466
- /* @__PURE__ */ j(B, {
1565
+ /* @__PURE__ */ A(V, {
1467
1566
  variant: o === "state" ? "secondary" : "ghost",
1468
1567
  "aria-pressed": o === "state",
1469
1568
  onClick: () => s("state"),
1470
1569
  children: "State"
1471
1570
  }),
1472
- /* @__PURE__ */ j(B, {
1571
+ /* @__PURE__ */ A(V, {
1473
1572
  variant: o === "changes" ? "secondary" : "ghost",
1474
1573
  "aria-pressed": o === "changes",
1475
1574
  onClick: () => s("changes"),
1476
1575
  children: "Changes"
1477
1576
  }),
1478
- g && /* @__PURE__ */ M("span", {
1577
+ g && /* @__PURE__ */ j("span", {
1479
1578
  className: "la-state-version",
1480
1579
  children: ["Version ", v]
1481
1580
  })
1482
1581
  ]
1483
1582
  }),
1484
- i.failed && /* @__PURE__ */ M("p", {
1583
+ i.failed && /* @__PURE__ */ j("p", {
1485
1584
  role: "alert",
1486
1585
  children: ["Could not refresh state. Check your connection and use Refresh to retry.", i.current && " Showing the last loaded version."]
1487
1586
  }),
1488
- ee && /* @__PURE__ */ j("p", {
1587
+ ee && /* @__PURE__ */ A("p", {
1489
1588
  className: "la-state-notice",
1490
1589
  role: "status",
1491
1590
  children: "A newer commit is syncing to storage. Retrying automatically…"
1492
1591
  }),
1493
- !i.current && !i.failed && /* @__PURE__ */ j("p", {
1592
+ !i.current && !i.failed && /* @__PURE__ */ A("p", {
1494
1593
  role: "status",
1495
1594
  children: "Loading persisted state…"
1496
1595
  }),
1497
- i.current && !g && /* @__PURE__ */ j("p", {
1596
+ i.current && !g && /* @__PURE__ */ A("p", {
1498
1597
  className: "la-state-empty",
1499
1598
  children: "No persisted state yet. Fields appear after the actor commits its first change."
1500
1599
  }),
1501
- o === "state" && g && /* @__PURE__ */ M(A, { children: [
1502
- /* @__PURE__ */ j(ht, {
1600
+ o === "state" && g && /* @__PURE__ */ j(k, { children: [
1601
+ /* @__PURE__ */ A(Ct, {
1503
1602
  record: g,
1504
1603
  onInspect: e.onInspectRequest
1505
1604
  }),
1506
- /* @__PURE__ */ j(V, {
1605
+ /* @__PURE__ */ A(H, {
1507
1606
  "aria-label": "Filter persisted fields",
1508
1607
  placeholder: "Filter fields…",
1509
1608
  value: f,
1510
1609
  onChange: (e) => p(e.target.value)
1511
1610
  }),
1512
- /* @__PURE__ */ j(pt, {
1611
+ /* @__PURE__ */ A(xt, {
1513
1612
  state: g.state,
1514
1613
  query: f,
1515
1614
  schema: i.current?.schema ?? null
1516
1615
  })
1517
1616
  ] }),
1518
- o === "changes" && /* @__PURE__ */ M("div", {
1617
+ o === "changes" && /* @__PURE__ */ j("div", {
1519
1618
  className: "la-state-history",
1520
- children: [/* @__PURE__ */ M("aside", {
1619
+ children: [/* @__PURE__ */ j("aside", {
1521
1620
  "aria-label": "State versions",
1522
1621
  children: [
1523
- /* @__PURE__ */ j("h4", { children: "Versions" }),
1524
- !i.history?.records.length && /* @__PURE__ */ j("p", { children: "No recorded history yet." }),
1525
- /* @__PURE__ */ j("ol", { children: i.history?.records.map((e) => /* @__PURE__ */ j("li", { children: /* @__PURE__ */ M("button", {
1622
+ /* @__PURE__ */ A("h4", { children: "Versions" }),
1623
+ !i.history?.records.length && /* @__PURE__ */ A("p", { children: "No recorded history yet." }),
1624
+ /* @__PURE__ */ A("ol", { children: i.history?.records.map((e) => /* @__PURE__ */ A("li", { children: /* @__PURE__ */ j("button", {
1526
1625
  type: "button",
1527
1626
  "aria-label": `Version ${e.stateVersion} · ${e.attribution?.operation ?? "Unknown operation"}`,
1528
1627
  "aria-pressed": y === e.stateVersion,
1529
1628
  onClick: () => {
1530
1629
  l(e.stateVersion), d(void 0);
1531
1630
  },
1532
- children: [/* @__PURE__ */ M("strong", { children: [
1631
+ children: [/* @__PURE__ */ j("strong", { children: [
1533
1632
  "Version ",
1534
1633
  e.stateVersion,
1535
- /* @__PURE__ */ j("span", { children: e.attribution?.operation ?? "Unknown operation" })
1536
- ] }), /* @__PURE__ */ j("small", { children: e.attribution ? new Date(e.attribution.committedAtMs).toLocaleTimeString() : "Time unavailable" })]
1634
+ /* @__PURE__ */ A("span", { children: e.attribution?.operation ?? "Unknown operation" })
1635
+ ] }), /* @__PURE__ */ A("small", { children: e.attribution ? new Date(e.attribution.committedAtMs).toLocaleTimeString() : "Time unavailable" })]
1537
1636
  }) }, e.stateVersion)) }),
1538
- i.history?.nextBefore && /* @__PURE__ */ j(B, {
1637
+ i.history?.nextBefore && /* @__PURE__ */ A(V, {
1539
1638
  variant: "outline",
1540
1639
  size: "sm",
1541
1640
  disabled: i.loading,
@@ -1543,118 +1642,118 @@ function ft(e) {
1543
1642
  children: "Load older versions"
1544
1643
  })
1545
1644
  ]
1546
- }), /* @__PURE__ */ M("div", {
1645
+ }), /* @__PURE__ */ j("div", {
1547
1646
  className: "la-state-comparison",
1548
- children: [c !== void 0 && v > c && /* @__PURE__ */ M(B, {
1647
+ children: [c !== void 0 && v > c && /* @__PURE__ */ j(V, {
1549
1648
  variant: "outline",
1550
1649
  size: "sm",
1551
1650
  onClick: () => {
1552
1651
  l(void 0), d(void 0);
1553
1652
  },
1554
1653
  children: ["View latest · version ", v]
1555
- }), !!y && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ M("div", {
1654
+ }), !!y && /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ j("div", {
1556
1655
  className: "la-state-compare-heading",
1557
- children: [/* @__PURE__ */ M("h4", { children: ["Version ", y] }), /* @__PURE__ */ M(Je, {
1656
+ children: [/* @__PURE__ */ j("h4", { children: ["Version ", y] }), /* @__PURE__ */ j(ot, {
1558
1657
  "aria-label": "Compare with version",
1559
1658
  value: u ?? Math.max(0, y - 1),
1560
1659
  onChange: (e) => d(Number(e.target.value)),
1561
- children: [/* @__PURE__ */ j(W, {
1660
+ children: [/* @__PURE__ */ A(G, {
1562
1661
  value: Math.max(0, y - 1),
1563
1662
  children: y === 1 ? "Before first commit" : `Previous · version ${y - 1}`
1564
- }), i.history?.records.filter((e) => e.stateVersion < y - 1).map((e) => /* @__PURE__ */ M(W, {
1663
+ }), i.history?.records.filter((e) => e.stateVersion < y - 1).map((e) => /* @__PURE__ */ j(G, {
1565
1664
  value: e.stateVersion,
1566
1665
  children: ["Version ", e.stateVersion]
1567
1666
  }, e.stateVersion))]
1568
1667
  })]
1569
- }), /* @__PURE__ */ j(gt, {
1668
+ }), /* @__PURE__ */ A(wt, {
1570
1669
  ...e,
1571
1670
  version: y,
1572
1671
  baseline: u ?? Math.max(0, y - 1)
1573
1672
  }, `${n}/${r}/${y}/${u}/${m}`)] })]
1574
1673
  })]
1575
1674
  }),
1576
- /* @__PURE__ */ j("p", {
1675
+ /* @__PURE__ */ A("p", {
1577
1676
  className: "la-state-footnote",
1578
1677
  children: "Values come from actor storage. Request events signal new versions; history follows completed uploads."
1579
1678
  })
1580
1679
  ]
1581
1680
  });
1582
1681
  }
1583
- function pt({ state: e, query: t, schema: n }) {
1682
+ function xt({ state: e, query: t, schema: n }) {
1584
1683
  let r = Object.entries(e).filter(([e]) => e.toLowerCase().includes(t.toLowerCase()));
1585
- return /* @__PURE__ */ M("div", {
1684
+ return /* @__PURE__ */ j("div", {
1586
1685
  className: "la-observer-table-frame",
1587
- children: [/* @__PURE__ */ M(G, {
1686
+ children: [/* @__PURE__ */ j(K, {
1588
1687
  "aria-label": "Persisted fields",
1589
- children: [/* @__PURE__ */ j(K, { children: /* @__PURE__ */ M(J, { children: [
1590
- /* @__PURE__ */ j(Y, { children: "Field" }),
1591
- /* @__PURE__ */ j(Y, { children: "Type" }),
1592
- /* @__PURE__ */ j(Y, { children: "Value" })
1593
- ] }) }), /* @__PURE__ */ j(q, { children: r.map(([e, t]) => /* @__PURE__ */ M(J, { children: [
1594
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j("code", { children: e }) }),
1595
- /* @__PURE__ */ M(X, { children: [/* @__PURE__ */ j("span", {
1688
+ children: [/* @__PURE__ */ A(q, { children: /* @__PURE__ */ j(Y, { children: [
1689
+ /* @__PURE__ */ A(X, { children: "Field" }),
1690
+ /* @__PURE__ */ A(X, { children: "Type" }),
1691
+ /* @__PURE__ */ A(X, { children: "Value" })
1692
+ ] }) }), /* @__PURE__ */ A(J, { children: r.map(([e, t]) => /* @__PURE__ */ j(Y, { children: [
1693
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A("code", { children: e }) }),
1694
+ /* @__PURE__ */ j(Z, { children: [/* @__PURE__ */ A("span", {
1596
1695
  className: "la-state-type",
1597
- children: vt(t)
1598
- }), yt(n, e) && /* @__PURE__ */ j("small", {
1696
+ children: Et(t)
1697
+ }), Dt(n, e) && /* @__PURE__ */ A("small", {
1599
1698
  className: "la-state-schema",
1600
- children: yt(n, e)
1699
+ children: Dt(n, e)
1601
1700
  })] }),
1602
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j(mt, { value: t }) })
1701
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A(St, { value: t }) })
1603
1702
  ] }, e)) })]
1604
- }), !r.length && /* @__PURE__ */ j("p", {
1703
+ }), !r.length && /* @__PURE__ */ A("p", {
1605
1704
  className: "la-state-empty",
1606
1705
  children: t ? "No matching fields." : "The persisted state is an empty object."
1607
1706
  })]
1608
1707
  });
1609
1708
  }
1610
- function mt({ value: e }) {
1709
+ function St({ value: e }) {
1611
1710
  let t = JSON.stringify(e);
1612
- return t.length > 1e5 ? /* @__PURE__ */ M("span", { children: [
1711
+ return t.length > 1e5 ? /* @__PURE__ */ j("span", { children: [
1613
1712
  "Large value (",
1614
1713
  Math.round(t.length / 1024),
1615
1714
  " KB). Use Download JSON to inspect it."
1616
- ] }) : typeof e == "object" && e ? /* @__PURE__ */ j(re, {
1715
+ ] }) : typeof e == "object" && e ? /* @__PURE__ */ A(re, {
1617
1716
  data: e,
1618
1717
  shouldExpandNode: (e) => e < 1,
1619
- style: bt
1620
- }) : /* @__PURE__ */ j("code", {
1621
- className: `la-state-json-${vt(e)}`,
1718
+ style: Ot
1719
+ }) : /* @__PURE__ */ A("code", {
1720
+ className: `la-state-json-${Et(e)}`,
1622
1721
  children: t
1623
1722
  });
1624
1723
  }
1625
- function ht({ record: e, onInspect: t }) {
1724
+ function Ct({ record: e, onInspect: t }) {
1626
1725
  let n = e.attribution;
1627
- return /* @__PURE__ */ M("div", {
1726
+ return /* @__PURE__ */ j("div", {
1628
1727
  className: "la-state-attribution",
1629
1728
  children: [
1630
- /* @__PURE__ */ M("span", { children: ["Committed by ", /* @__PURE__ */ j("strong", { children: n?.operation ?? "Unknown operation" })] }),
1631
- /* @__PURE__ */ M("span", { children: [
1729
+ /* @__PURE__ */ j("span", { children: ["Committed by ", /* @__PURE__ */ A("strong", { children: n?.operation ?? "Unknown operation" })] }),
1730
+ /* @__PURE__ */ j("span", { children: [
1632
1731
  "Request",
1633
1732
  " ",
1634
- t ? /* @__PURE__ */ j("button", {
1733
+ t ? /* @__PURE__ */ A("button", {
1635
1734
  type: "button",
1636
1735
  onClick: () => t({ requestId: e.requestId }),
1637
1736
  children: e.requestId
1638
- }) : /* @__PURE__ */ j("code", { children: e.requestId })
1737
+ }) : /* @__PURE__ */ A("code", { children: e.requestId })
1639
1738
  ] }),
1640
- n?.connectionId && /* @__PURE__ */ M("span", { children: [
1739
+ n?.connectionId && /* @__PURE__ */ j("span", { children: [
1641
1740
  "Connection",
1642
1741
  " ",
1643
- t ? /* @__PURE__ */ j("button", {
1742
+ t ? /* @__PURE__ */ A("button", {
1644
1743
  type: "button",
1645
1744
  onClick: () => t({ connectionId: n.connectionId }),
1646
1745
  children: n.connectionId
1647
- }) : /* @__PURE__ */ j("code", { children: n.connectionId })
1746
+ }) : /* @__PURE__ */ A("code", { children: n.connectionId })
1648
1747
  ] }),
1649
- n && /* @__PURE__ */ j("time", {
1748
+ n && /* @__PURE__ */ A("time", {
1650
1749
  dateTime: new Date(n.committedAtMs).toISOString(),
1651
1750
  children: new Date(n.committedAtMs).toLocaleString()
1652
1751
  }),
1653
- n?.interleaved && /* @__PURE__ */ j("p", { children: "Overlapping requests may contribute to this snapshot. This identifies the committing request." })
1752
+ n?.interleaved && /* @__PURE__ */ A("p", { children: "Overlapping requests may contribute to this snapshot. This identifies the committing request." })
1654
1753
  ]
1655
1754
  });
1656
1755
  }
1657
- function gt({ client: e, actorName: n, actorId: r, version: i, baseline: o, onInspectRequest: s }) {
1756
+ function wt({ client: e, actorName: n, actorId: r, version: i, baseline: o, onInspectRequest: s }) {
1658
1757
  let [c, l] = a(), [u, d] = a(), [f, p] = a();
1659
1758
  return t(() => {
1660
1759
  let t = new AbortController(), a;
@@ -1687,7 +1786,7 @@ function gt({ client: e, actorName: n, actorId: r, version: i, baseline: o, onIn
1687
1786
  after: u.state
1688
1787
  })) : l({
1689
1788
  after: u,
1690
- html: ut(c.snapshot.state, u.state)
1789
+ html: vt(c.snapshot.state, u.state)
1691
1790
  });
1692
1791
  } catch (e) {
1693
1792
  t.signal.aborted || d(e instanceof Error ? e.message : "Could not load versions.");
@@ -1702,44 +1801,44 @@ function gt({ client: e, actorName: n, actorId: r, version: i, baseline: o, onIn
1702
1801
  r,
1703
1802
  i,
1704
1803
  o
1705
- ]), /* @__PURE__ */ M(A, { children: [
1706
- /* @__PURE__ */ j("p", { children: o ? `Comparing version ${o} → ${i}` : "Changes in the first persisted snapshot" }),
1707
- u && /* @__PURE__ */ j("p", {
1804
+ ]), /* @__PURE__ */ j(k, { children: [
1805
+ /* @__PURE__ */ A("p", { children: o ? `Comparing version ${o} → ${i}` : "Changes in the first persisted snapshot" }),
1806
+ u && /* @__PURE__ */ A("p", {
1708
1807
  role: "alert",
1709
1808
  children: u
1710
1809
  }),
1711
- !u && !c && /* @__PURE__ */ j("p", {
1810
+ !u && !c && /* @__PURE__ */ A("p", {
1712
1811
  role: "status",
1713
1812
  children: "Loading comparison…"
1714
1813
  }),
1715
- f && /* @__PURE__ */ M(B, {
1814
+ f && /* @__PURE__ */ j(V, {
1716
1815
  variant: "ghost",
1717
1816
  size: "sm",
1718
- onClick: () => _t(f.state, `${n}-${r}-v${i}.json`),
1817
+ onClick: () => Tt(f.state, `${n}-${r}-v${i}.json`),
1719
1818
  children: ["Download version ", i]
1720
1819
  }),
1721
- c && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j(ht, {
1820
+ c && /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A(Ct, {
1722
1821
  record: c.after,
1723
1822
  onInspect: s
1724
- }), c.html ? /* @__PURE__ */ j("div", {
1823
+ }), c.html ? /* @__PURE__ */ A("div", {
1725
1824
  className: "la-state-diff",
1726
1825
  "aria-label": "State changes",
1727
1826
  dangerouslySetInnerHTML: { __html: c.html }
1728
- }) : /* @__PURE__ */ j("p", { children: "No persisted fields changed between these versions." })] })
1827
+ }) : /* @__PURE__ */ A("p", { children: "No persisted fields changed between these versions." })] })
1729
1828
  ] });
1730
1829
  }
1731
- function _t(e, t) {
1830
+ function Tt(e, t) {
1732
1831
  let n = URL.createObjectURL(new Blob([JSON.stringify(e, null, 2)], { type: "application/json" })), r = document.createElement("a");
1733
1832
  r.href = n, r.download = t, r.click(), setTimeout(() => URL.revokeObjectURL(n), 1e3);
1734
1833
  }
1735
- function vt(e) {
1834
+ function Et(e) {
1736
1835
  return e === null ? "null" : Array.isArray(e) ? "array" : typeof e;
1737
1836
  }
1738
- function yt(e, t) {
1837
+ function Dt(e, t) {
1739
1838
  let n = e?.definitions, r = n?.State?.properties?.[t]?.$ref, i = r && n?.[r.split("/").pop().replace(/~1/g, "/").replace(/~0/g, "~")]?.type;
1740
1839
  return i ? `Schema: ${Array.isArray(i) ? i.join(" | ") : i}` : void 0;
1741
1840
  }
1742
- var bt = {
1841
+ var Ot = {
1743
1842
  container: "la-state-json",
1744
1843
  basicChildStyle: "la-state-json-child",
1745
1844
  label: "la-state-json-label",
@@ -1758,8 +1857,8 @@ var bt = {
1758
1857
  };
1759
1858
  //#endregion
1760
1859
  //#region src/queue-wait-history.ts
1761
- function xt(e, t, n) {
1762
- let r = it(e, {
1860
+ function kt(e, t, n) {
1861
+ let r = ft(e, {
1763
1862
  ...t,
1764
1863
  actorName: n
1765
1864
  }, e.listQueueWaits);
@@ -1771,26 +1870,26 @@ function xt(e, t, n) {
1771
1870
  }
1772
1871
  //#endregion
1773
1872
  //#region src/queue-wait.ts
1774
- function St(e) {
1775
- if (!Array.isArray(e) || !e.every(Ct)) throw Error("Invalid queue wait response");
1873
+ function At(e) {
1874
+ if (!Array.isArray(e) || !e.every(jt)) throw Error("Invalid queue wait response");
1776
1875
  return e;
1777
1876
  }
1778
- function Ct(e) {
1877
+ function jt(e) {
1779
1878
  return !!e && typeof e.actorName == "string" && typeof e.actorId == "string" && Number.isSafeInteger(e.admitted) && e.admitted > 0 && [e.averageMs, e.maxMs].every((e) => typeof e == "number" && Number.isFinite(e) && e >= 0) && e.averageMs <= e.maxMs;
1780
1879
  }
1781
- function wt(e) {
1782
- return Ot(e, () => "all").get("all") ?? null;
1880
+ function Mt(e) {
1881
+ return It(e, () => "all").get("all") ?? null;
1783
1882
  }
1784
- function Tt(e) {
1785
- return Ot(e, (e) => e.actorName);
1883
+ function Nt(e) {
1884
+ return It(e, (e) => e.actorName);
1786
1885
  }
1787
- function Et(e, t) {
1788
- return Ot(e.filter((e) => e.actorName === t), (e) => e.actorId);
1886
+ function Pt(e, t) {
1887
+ return It(e.filter((e) => e.actorName === t), (e) => e.actorId);
1789
1888
  }
1790
- function Dt(e) {
1889
+ function Ft(e) {
1791
1890
  return e === void 0 ? "—" : e >= 1e3 ? `${(e / 1e3).toLocaleString(void 0, { maximumFractionDigits: 2 })} s` : `${e.toLocaleString(void 0, { maximumFractionDigits: 1 })} ms`;
1792
1891
  }
1793
- function Ot(e, t) {
1892
+ function It(e, t) {
1794
1893
  let n = /* @__PURE__ */ new Map();
1795
1894
  for (let r of e) {
1796
1895
  let e = n.get(t(r)) ?? {
@@ -1808,149 +1907,149 @@ function Ot(e, t) {
1808
1907
  }
1809
1908
  //#endregion
1810
1909
  //#region src/ActorObserver.tsx
1811
- function kt({ client: e, className: r = "", initialActorName: o, navigation: s, timeRange: c, onTimeRangeChange: l }) {
1812
- let { inventory: u, loading: d, failed: f, retry: p } = tt(e), [m, h] = a(Fe), _ = c ?? m, v = l ?? h, [y, ee] = a(o), b = s ? s.actorName : y, x = s ? s.onSelectActor : ee, [S, C] = a(), [w, T] = a(""), E = i(null), D = JSON.stringify([b, S]), O = i(JSON.stringify([o, void 0])), k = n(), N = u?.actors.find((e) => e.actorName === b), P = N?.instances.find((e) => e.actorId === S), F = xt(e, Ie(_, Date.now()), b), I = F.rows && Tt(F.rows), ne = F.rows && b !== void 0 ? Et(F.rows, b) : void 0, L = F.supported && F.rows ? wt(F.rows) : void 0;
1910
+ function Lt({ client: e, className: r = "", initialActorName: o, navigation: s, timeRange: c, onTimeRangeChange: l }) {
1911
+ let { inventory: u, loading: d, failed: f, retry: p } = lt(e), [m, h] = a(Le), _ = c ?? m, v = l ?? h, [y, ee] = a(o), b = s ? s.actorName : y, te = s ? s.onSelectActor : ee, [x, S] = a(), [C, w] = a(""), T = i(null), E = JSON.stringify([b, x]), D = i(JSON.stringify([o, void 0])), O = n(), M = u?.actors.find((e) => e.actorName === b), N = M?.instances.find((e) => e.actorId === x), P = kt(e, Re(_, Date.now()), b), F = P.rows && Nt(P.rows), I = P.rows && b !== void 0 ? Pt(P.rows, b) : void 0, L = P.supported && P.rows ? Mt(P.rows) : void 0;
1813
1912
  t(() => {
1814
- ee(o), C(void 0), T("");
1913
+ ee(o), S(void 0), w("");
1815
1914
  }, [e, o]), t(() => {
1816
- O.current !== D && E.current?.focus(), O.current = D;
1817
- }, [D]);
1915
+ D.current !== E && T.current?.focus(), D.current = E;
1916
+ }, [E]);
1818
1917
  let re = (e) => {
1819
- C(void 0), x(e);
1918
+ S(void 0), te(e);
1820
1919
  };
1821
- return /* @__PURE__ */ M("section", {
1822
- className: `la-observer ${S === void 0 ? "" : "la-observer-instance-page"} ${r}`,
1920
+ return /* @__PURE__ */ j("section", {
1921
+ className: `la-observer ${x === void 0 ? "" : "la-observer-instance-page"} ${r}`,
1823
1922
  "aria-label": "Actor observer",
1824
1923
  children: [
1825
- b !== void 0 && /* @__PURE__ */ M("nav", {
1924
+ b !== void 0 && /* @__PURE__ */ j("nav", {
1826
1925
  className: "la-observer-breadcrumb",
1827
1926
  "aria-label": "Breadcrumb",
1828
1927
  children: [
1829
- /* @__PURE__ */ j(B, {
1928
+ /* @__PURE__ */ A(V, {
1830
1929
  variant: "link",
1831
1930
  type: "button",
1832
1931
  "aria-label": "Back to actors",
1833
1932
  onClick: () => re(void 0),
1834
1933
  children: "Actors"
1835
1934
  }),
1836
- /* @__PURE__ */ j("span", {
1935
+ /* @__PURE__ */ A("span", {
1837
1936
  "aria-hidden": "true",
1838
1937
  children: "/"
1839
1938
  }),
1840
- S === void 0 ? /* @__PURE__ */ j("span", {
1939
+ x === void 0 ? /* @__PURE__ */ A("span", {
1841
1940
  "aria-current": "page",
1842
1941
  children: b
1843
- }) : /* @__PURE__ */ j(B, {
1942
+ }) : /* @__PURE__ */ A(V, {
1844
1943
  variant: "link",
1845
1944
  "aria-label": "Back to instances",
1846
- onClick: () => C(void 0),
1945
+ onClick: () => S(void 0),
1847
1946
  children: b
1848
1947
  }),
1849
- S !== void 0 && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j("span", {
1948
+ x !== void 0 && /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A("span", {
1850
1949
  "aria-hidden": "true",
1851
1950
  children: "/"
1852
- }), /* @__PURE__ */ j("span", {
1951
+ }), /* @__PURE__ */ A("span", {
1853
1952
  "aria-current": "page",
1854
- children: S
1953
+ children: x
1855
1954
  })] })
1856
1955
  ]
1857
1956
  }),
1858
- /* @__PURE__ */ M("div", {
1957
+ /* @__PURE__ */ j("div", {
1859
1958
  className: "la-observer-toolbar",
1860
- children: [/* @__PURE__ */ M("div", { children: [/* @__PURE__ */ M("div", {
1959
+ children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("div", {
1861
1960
  className: "la-observer-title",
1862
- children: [/* @__PURE__ */ j("h1", {
1863
- ref: E,
1961
+ children: [/* @__PURE__ */ A("h1", {
1962
+ ref: T,
1864
1963
  tabIndex: -1,
1865
- children: S ?? b ?? "Actors"
1866
- }), P && /* @__PURE__ */ M(U, {
1964
+ children: x ?? b ?? "Actors"
1965
+ }), N && /* @__PURE__ */ j(W, {
1867
1966
  variant: "outline",
1868
- className: `la-observer-status-${P.status}`,
1869
- children: [/* @__PURE__ */ j("span", { className: `la-observer-dot la-observer-dot-${P.status}` }), Gt(P.status)]
1967
+ className: `la-observer-status-${N.status}`,
1968
+ children: [/* @__PURE__ */ A("span", { className: `la-observer-dot la-observer-dot-${N.status}` }), $t(N.status)]
1870
1969
  })]
1871
- }), S === void 0 && /* @__PURE__ */ j("p", { children: b === void 0 ? "Inspect instances, residency, and connections." : "Inspect this actor class’s instances, residency, and connections." })] }), /* @__PURE__ */ M("div", {
1970
+ }), x === void 0 && /* @__PURE__ */ A("p", { children: b === void 0 ? "Inspect instances, residency, and connections." : "Inspect this actor class’s instances, residency, and connections." })] }), /* @__PURE__ */ j("div", {
1872
1971
  className: "la-observer-actions",
1873
- children: [F.supported && /* @__PURE__ */ j(Be, {
1972
+ children: [P.supported && /* @__PURE__ */ A(He, {
1874
1973
  value: _,
1875
1974
  onChange: v
1876
- }), /* @__PURE__ */ M(B, {
1975
+ }), /* @__PURE__ */ j(V, {
1877
1976
  variant: "outline",
1878
1977
  type: "button",
1879
1978
  disabled: d,
1880
1979
  onClick: p,
1881
- children: [/* @__PURE__ */ j(te, {
1980
+ children: [/* @__PURE__ */ A(ne, {
1882
1981
  "aria-hidden": "true",
1883
1982
  className: d ? "la-observer-spin" : void 0
1884
1983
  }), d ? "Refreshing…" : f ? "Try again" : "Refresh"]
1885
1984
  })]
1886
1985
  })]
1887
1986
  }),
1888
- f && /* @__PURE__ */ M("div", {
1987
+ f && /* @__PURE__ */ j("div", {
1889
1988
  className: "la-observer-error",
1890
1989
  role: "alert",
1891
- children: [/* @__PURE__ */ j(g, { "aria-hidden": "true" }), /* @__PURE__ */ j("p", { children: u ? "Could not refresh. These counts may be out of date." : "Could not load actors. Check your connection and access, then try again." })]
1990
+ children: [/* @__PURE__ */ A(g, { "aria-hidden": "true" }), /* @__PURE__ */ A("p", { children: u ? "Could not refresh. These counts may be out of date." : "Could not load actors. Check your connection and access, then try again." })]
1892
1991
  }),
1893
- !u && !f && /* @__PURE__ */ j(At, {}),
1894
- u && /* @__PURE__ */ M(A, { children: [b === void 0 ? /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j(jt, {
1992
+ !u && !f && /* @__PURE__ */ A(Rt, {}),
1993
+ u && /* @__PURE__ */ j(k, { children: [b === void 0 ? /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ A(zt, {
1895
1994
  inventory: u,
1896
- queueWait: F.supported ? L ?? null : void 0,
1995
+ queueWait: P.supported ? L ?? null : void 0,
1897
1996
  range: _
1898
- }), u.actors.length ? /* @__PURE__ */ j(Mt, {
1997
+ }), u.actors.length ? /* @__PURE__ */ A(Bt, {
1899
1998
  inventory: u,
1900
- query: w,
1901
- onQueryChange: T,
1999
+ query: C,
2000
+ onQueryChange: w,
1902
2001
  onSelectActor: re,
1903
2002
  onSelectInstance: (e, t) => {
1904
- C(t), x(e);
2003
+ S(t), te(e);
1905
2004
  },
1906
- waits: F.supported ? I : void 0
1907
- }) : /* @__PURE__ */ j(Ut, {
2005
+ waits: P.supported ? F : void 0
2006
+ }) : /* @__PURE__ */ A(Zt, {
1908
2007
  title: "No actors yet",
1909
2008
  description: "Deploy your actor classes to see them here. Instance counts appear as actors are used."
1910
- })] }) : N ? /* @__PURE__ */ M(A, { children: [S === void 0 && /* @__PURE__ */ j(jt, {
1911
- inventory: { actors: [N] },
2009
+ })] }) : M ? /* @__PURE__ */ j(k, { children: [x === void 0 && /* @__PURE__ */ A(zt, {
2010
+ inventory: { actors: [M] },
1912
2011
  actorName: b,
1913
- queueWait: F.supported ? L ?? null : void 0,
2012
+ queueWait: P.supported ? L ?? null : void 0,
1914
2013
  range: _
1915
- }), /* @__PURE__ */ j(Ft, {
2014
+ }), /* @__PURE__ */ A(Ut, {
1916
2015
  client: e,
1917
- id: k,
2016
+ id: O,
1918
2017
  actorName: b,
1919
- instances: N.instances,
1920
- waits: F.supported ? ne : void 0,
2018
+ instances: M.instances,
2019
+ waits: P.supported ? I : void 0,
1921
2020
  range: _,
1922
- selectedInstanceId: S,
1923
- onSelectInstance: C
1924
- }, b)] }) : /* @__PURE__ */ j(Ut, {
2021
+ selectedInstanceId: x,
2022
+ onSelectInstance: S
2023
+ }, b)] }) : /* @__PURE__ */ A(Zt, {
1925
2024
  title: "Actor class unavailable",
1926
2025
  description: "This actor class is no longer in the latest inventory. Return to Actors to see available classes."
1927
- }), /* @__PURE__ */ M("div", {
2026
+ }), /* @__PURE__ */ j("div", {
1928
2027
  className: "la-observer-footnote",
1929
- children: [/* @__PURE__ */ M("span", {
2028
+ children: [/* @__PURE__ */ j("span", {
1930
2029
  className: "la-observer-refresh-status",
1931
- children: [/* @__PURE__ */ j("span", { className: `la-observer-dot ${f ? "la-observer-dot-unknown" : e.watchActors ? "la-observer-dot-live" : ""}` }), f ? "Reconnecting…" : e.watchActors ? "Live updates" : "Auto-refresh every 5s"]
1932
- }), /* @__PURE__ */ j("span", { children: e.watchActors ? "Changes stream from the control plane." : "Counts follow the latest host heartbeat." })]
2030
+ children: [/* @__PURE__ */ A("span", { className: `la-observer-dot ${f ? "la-observer-dot-unknown" : e.watchActors ? "la-observer-dot-live" : ""}` }), f ? "Reconnecting…" : e.watchActors ? "Live updates" : "Auto-refresh every 5s"]
2031
+ }), /* @__PURE__ */ A("span", { children: e.watchActors ? "Changes stream from the control plane." : "Counts follow the latest host heartbeat." })]
1933
2032
  })] })
1934
2033
  ]
1935
2034
  });
1936
2035
  }
1937
- function At() {
1938
- return /* @__PURE__ */ M("div", {
2036
+ function Rt() {
2037
+ return /* @__PURE__ */ j("div", {
1939
2038
  className: "la-observer-skeleton",
1940
2039
  role: "status",
1941
2040
  "aria-label": "Loading actors",
1942
2041
  children: [
1943
- /* @__PURE__ */ j("span", {
2042
+ /* @__PURE__ */ A("span", {
1944
2043
  className: "la:sr-only",
1945
2044
  children: "Loading actors…"
1946
2045
  }),
1947
- /* @__PURE__ */ j("div", {}),
1948
- /* @__PURE__ */ j("div", {}),
1949
- /* @__PURE__ */ j("div", {})
2046
+ /* @__PURE__ */ A("div", {}),
2047
+ /* @__PURE__ */ A("div", {}),
2048
+ /* @__PURE__ */ A("div", {})
1950
2049
  ]
1951
2050
  });
1952
2051
  }
1953
- function jt({ inventory: e, actorName: t, queueWait: n, range: r }) {
2052
+ function zt({ inventory: e, actorName: t, queueWait: n, range: r }) {
1954
2053
  let i = e.actors.reduce((e, t) => ({
1955
2054
  live: e.live + t.live,
1956
2055
  dormant: e.dormant + t.dormant,
@@ -1960,61 +2059,61 @@ function jt({ inventory: e, actorName: t, queueWait: n, range: r }) {
1960
2059
  dormant: 0,
1961
2060
  unknown: 0
1962
2061
  });
1963
- return /* @__PURE__ */ M("dl", {
2062
+ return /* @__PURE__ */ j("dl", {
1964
2063
  className: "la-observer-summary",
1965
2064
  children: [
1966
- /* @__PURE__ */ M("div", { children: [
1967
- /* @__PURE__ */ j("dt", { children: "Total instances" }),
1968
- /* @__PURE__ */ j("dd", {
2065
+ /* @__PURE__ */ j("div", { children: [
2066
+ /* @__PURE__ */ A("dt", { children: "Total instances" }),
2067
+ /* @__PURE__ */ A("dd", {
1969
2068
  "aria-label": "Total instances",
1970
2069
  children: (i.live + i.dormant + i.unknown).toLocaleString()
1971
2070
  }),
1972
- /* @__PURE__ */ j("p", { children: t === void 0 ? `${e.actors.length} actor ${e.actors.length === 1 ? "type" : "types"}` : "In this actor class" })
2071
+ /* @__PURE__ */ A("p", { children: t === void 0 ? `${e.actors.length} actor ${e.actors.length === 1 ? "type" : "types"}` : "In this actor class" })
1973
2072
  ] }),
1974
- /* @__PURE__ */ M("div", { children: [
1975
- /* @__PURE__ */ M("dt", { children: [/* @__PURE__ */ j("span", { className: "la-observer-dot la-observer-dot-live" }), "Live"] }),
1976
- /* @__PURE__ */ j("dd", {
2073
+ /* @__PURE__ */ j("div", { children: [
2074
+ /* @__PURE__ */ j("dt", { children: [/* @__PURE__ */ A("span", { className: "la-observer-dot la-observer-dot-live" }), "Live"] }),
2075
+ /* @__PURE__ */ A("dd", {
1977
2076
  "aria-label": "Live instances",
1978
2077
  children: i.live.toLocaleString()
1979
2078
  }),
1980
- /* @__PURE__ */ j("p", { children: "Loaded in memory" })
2079
+ /* @__PURE__ */ A("p", { children: "Loaded in memory" })
1981
2080
  ] }),
1982
- /* @__PURE__ */ M("div", { children: [
1983
- /* @__PURE__ */ M("dt", { children: [/* @__PURE__ */ j("span", { className: "la-observer-dot" }), "Dormant"] }),
1984
- /* @__PURE__ */ j("dd", {
2081
+ /* @__PURE__ */ j("div", { children: [
2082
+ /* @__PURE__ */ j("dt", { children: [/* @__PURE__ */ A("span", { className: "la-observer-dot" }), "Dormant"] }),
2083
+ /* @__PURE__ */ A("dd", {
1985
2084
  "aria-label": "Dormant instances",
1986
2085
  children: i.dormant.toLocaleString()
1987
2086
  }),
1988
- /* @__PURE__ */ j("p", { children: "Currently unloaded" })
2087
+ /* @__PURE__ */ A("p", { children: "Currently unloaded" })
1989
2088
  ] }),
1990
- i.unknown > 0 && /* @__PURE__ */ M("div", { children: [
1991
- /* @__PURE__ */ M("dt", { children: [/* @__PURE__ */ j("span", { className: "la-observer-dot la-observer-dot-unknown" }), "Unknown"] }),
1992
- /* @__PURE__ */ j("dd", {
2089
+ i.unknown > 0 && /* @__PURE__ */ j("div", { children: [
2090
+ /* @__PURE__ */ j("dt", { children: [/* @__PURE__ */ A("span", { className: "la-observer-dot la-observer-dot-unknown" }), "Unknown"] }),
2091
+ /* @__PURE__ */ A("dd", {
1993
2092
  "aria-label": "Unknown instances",
1994
2093
  children: i.unknown.toLocaleString()
1995
2094
  }),
1996
- /* @__PURE__ */ j("p", { children: "Awaiting host report" })
2095
+ /* @__PURE__ */ A("p", { children: "Awaiting host report" })
1997
2096
  ] }),
1998
- n !== void 0 && /* @__PURE__ */ M("div", {
2097
+ n !== void 0 && /* @__PURE__ */ j("div", {
1999
2098
  className: "la-observer-queue-wait",
2000
2099
  children: [
2001
- /* @__PURE__ */ j("dt", { children: "Avg queue wait" }),
2002
- /* @__PURE__ */ j("dd", {
2100
+ /* @__PURE__ */ A("dt", { children: "Avg queue wait" }),
2101
+ /* @__PURE__ */ A("dd", {
2003
2102
  "aria-label": "Average queue wait",
2004
- children: Dt(n?.averageMs)
2103
+ children: Ft(n?.averageMs)
2005
2104
  }),
2006
- /* @__PURE__ */ j("p", { children: n ? `Max ${Dt(n.maxMs)} · ${n.admitted.toLocaleString()} admitted ${H(r)}` : `No admitted requests ${H(r)}` })
2105
+ /* @__PURE__ */ A("p", { children: n ? `Max ${Ft(n.maxMs)} · ${n.admitted.toLocaleString()} admitted ${U(r)}` : `No admitted requests ${U(r)}` })
2007
2106
  ]
2008
2107
  })
2009
2108
  ]
2010
2109
  });
2011
2110
  }
2012
- function Mt({ inventory: e, query: t, onQueryChange: n, onSelectActor: r, onSelectInstance: i, waits: a }) {
2013
- let o = e.actors.some((e) => e.unknown > 0), s = e.actors.filter((e) => Pt(e, t)).sort((e, t) => Number(t.live > 0) - Number(e.live > 0)), l = Nt(e);
2014
- return /* @__PURE__ */ M(A, { children: [
2015
- /* @__PURE__ */ M("div", {
2111
+ function Bt({ inventory: e, query: t, onQueryChange: n, onSelectActor: r, onSelectInstance: i, waits: a }) {
2112
+ let o = e.actors.some((e) => e.unknown > 0), s = e.actors.filter((e) => Ht(e, t)).sort((e, t) => Number(t.live > 0) - Number(e.live > 0)), l = Vt(e);
2113
+ return /* @__PURE__ */ j(k, { children: [
2114
+ /* @__PURE__ */ j("div", {
2016
2115
  className: "la-observer-list-toolbar",
2017
- children: [/* @__PURE__ */ M("h2", { children: ["Actor names ", /* @__PURE__ */ j(U, { children: e.actors.length })] }), /* @__PURE__ */ j(ge, {
2116
+ children: [/* @__PURE__ */ j("h2", { children: ["Actor names ", /* @__PURE__ */ A(W, { children: e.actors.length })] }), /* @__PURE__ */ A(ge, {
2018
2117
  label: "Search actors and instances",
2019
2118
  placeholder: "Search actor name or instance ID…",
2020
2119
  value: t,
@@ -2028,80 +2127,80 @@ function Mt({ inventory: e, query: t, onQueryChange: n, onSelectActor: r, onSele
2028
2127
  className: "la-observer-lookup"
2029
2128
  })]
2030
2129
  }),
2031
- /* @__PURE__ */ j("div", {
2130
+ /* @__PURE__ */ A("div", {
2032
2131
  className: "la-observer-table-frame",
2033
- children: s.length ? /* @__PURE__ */ M(G, {
2132
+ children: s.length ? /* @__PURE__ */ j(K, {
2034
2133
  "aria-label": "Actor instance counts",
2035
2134
  className: "la-observer-table",
2036
- children: [/* @__PURE__ */ j(K, { children: /* @__PURE__ */ M(J, { children: [
2037
- /* @__PURE__ */ j(Y, {
2135
+ children: [/* @__PURE__ */ A(q, { children: /* @__PURE__ */ j(Y, { children: [
2136
+ /* @__PURE__ */ A(X, {
2038
2137
  scope: "col",
2039
2138
  children: "Actor"
2040
2139
  }),
2041
- /* @__PURE__ */ j(Y, {
2140
+ /* @__PURE__ */ A(X, {
2042
2141
  scope: "col",
2043
2142
  children: "Live"
2044
2143
  }),
2045
- /* @__PURE__ */ j(Y, {
2144
+ /* @__PURE__ */ A(X, {
2046
2145
  scope: "col",
2047
2146
  children: "Dormant"
2048
2147
  }),
2049
- o && /* @__PURE__ */ j(Y, {
2148
+ o && /* @__PURE__ */ A(X, {
2050
2149
  scope: "col",
2051
2150
  children: "Unknown"
2052
2151
  }),
2053
- /* @__PURE__ */ j(Y, {
2152
+ /* @__PURE__ */ A(X, {
2054
2153
  scope: "col",
2055
2154
  children: "Total"
2056
2155
  }),
2057
- a && /* @__PURE__ */ j(Y, {
2156
+ a && /* @__PURE__ */ A(X, {
2058
2157
  scope: "col",
2059
2158
  className: "la-observer-wait-cell",
2060
2159
  children: "Avg queue wait"
2061
2160
  })
2062
- ] }) }), /* @__PURE__ */ j(q, { children: s.map((e) => /* @__PURE__ */ M(J, {
2161
+ ] }) }), /* @__PURE__ */ A(J, { children: s.map((e) => /* @__PURE__ */ j(Y, {
2063
2162
  className: "la-clickable-row",
2064
2163
  onClick: () => r(e.actorName),
2065
2164
  children: [
2066
- /* @__PURE__ */ j(X, {
2165
+ /* @__PURE__ */ A(Z, {
2067
2166
  className: "la-observer-name",
2068
- children: /* @__PURE__ */ M(B, {
2167
+ children: /* @__PURE__ */ j(V, {
2069
2168
  variant: "ghost",
2070
2169
  type: "button",
2071
2170
  className: "la-observer-actor-button la-observer-class-button",
2072
- children: [/* @__PURE__ */ j(c, {
2171
+ children: [/* @__PURE__ */ A(c, {
2073
2172
  className: "la-observer-type-icon",
2074
2173
  "aria-hidden": "true"
2075
- }), /* @__PURE__ */ j("span", { children: e.actorName })]
2174
+ }), /* @__PURE__ */ A("span", { children: e.actorName })]
2076
2175
  })
2077
2176
  }),
2078
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j("span", {
2177
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A("span", {
2079
2178
  className: e.live > 0 ? "la-observer-live" : void 0,
2080
2179
  children: e.live.toLocaleString()
2081
2180
  }) }),
2082
- /* @__PURE__ */ j(X, { children: e.dormant.toLocaleString() }),
2083
- o && /* @__PURE__ */ j(X, { children: e.unknown.toLocaleString() }),
2084
- /* @__PURE__ */ j(X, { children: (e.live + e.dormant + e.unknown).toLocaleString() }),
2085
- a && /* @__PURE__ */ j(X, {
2181
+ /* @__PURE__ */ A(Z, { children: e.dormant.toLocaleString() }),
2182
+ o && /* @__PURE__ */ A(Z, { children: e.unknown.toLocaleString() }),
2183
+ /* @__PURE__ */ A(Z, { children: (e.live + e.dormant + e.unknown).toLocaleString() }),
2184
+ a && /* @__PURE__ */ A(Z, {
2086
2185
  className: "la-observer-wait-cell",
2087
- children: /* @__PURE__ */ j(Lt, { stats: a.get(e.actorName) })
2186
+ children: /* @__PURE__ */ A(Gt, { stats: a.get(e.actorName) })
2088
2187
  })
2089
2188
  ]
2090
2189
  }, e.actorName)) })]
2091
- }) : /* @__PURE__ */ j(Ut, {
2190
+ }) : /* @__PURE__ */ A(Zt, {
2092
2191
  title: "No matching actors",
2093
2192
  description: "Try a different actor name.",
2094
2193
  action: "Clear search",
2095
2194
  onReset: () => n("")
2096
2195
  })
2097
2196
  }),
2098
- o && /* @__PURE__ */ M("p", {
2197
+ o && /* @__PURE__ */ j("p", {
2099
2198
  className: "la-observer-unknown",
2100
- children: [/* @__PURE__ */ j(g, { "aria-hidden": "true" }), "Some hosts have not reported which instances are loaded. Their counts are shown as unknown."]
2199
+ children: [/* @__PURE__ */ A(g, { "aria-hidden": "true" }), "Some hosts have not reported which instances are loaded. Their counts are shown as unknown."]
2101
2200
  })
2102
2201
  ] });
2103
2202
  }
2104
- function Nt(e) {
2203
+ function Vt(e) {
2105
2204
  return e.actors.flatMap((e) => [{
2106
2205
  id: JSON.stringify({ actorName: e.actorName }),
2107
2206
  group: "Actor classes",
@@ -2115,128 +2214,128 @@ function Nt(e) {
2115
2214
  group: "Instances",
2116
2215
  value: t.actorId,
2117
2216
  keywords: [e.actorName],
2118
- hint: `${e.actorName} · ${Gt(t.status)} · ${t.connections.length.toLocaleString()} ${t.connections.length === 1 ? "connection" : "connections"}`
2217
+ hint: `${e.actorName} · ${$t(t.status)} · ${t.connections.length.toLocaleString()} ${t.connections.length === 1 ? "connection" : "connections"}`
2119
2218
  }))]);
2120
2219
  }
2121
- function Pt(e, t) {
2220
+ function Ht(e, t) {
2122
2221
  let n = t.trim().toLocaleLowerCase().split(/\s+/u).filter(Boolean), r = [e.actorName, ...e.instances.map((e) => e.actorId)].join(" ").toLocaleLowerCase();
2123
2222
  return n.every((e) => r.includes(e));
2124
2223
  }
2125
- function Ft({ client: e, id: t, actorName: n, instances: r, waits: i, range: o, selectedInstanceId: s, onSelectInstance: c }) {
2126
- let [l, u] = a(""), [d, f] = a("all"), p = r.filter((e) => Wt(e.actorId, l) && (d === "all" || e.status === d));
2224
+ function Ut({ client: e, id: t, actorName: n, instances: r, waits: i, range: o, selectedInstanceId: s, onSelectInstance: c }) {
2225
+ let [l, u] = a(""), [d, f] = a("all"), p = r.filter((e) => Qt(e.actorId, l) && (d === "all" || e.status === d));
2127
2226
  p.sort((e, t) => Number(t.status === "live") - Number(e.status === "live"));
2128
2227
  let m = r.find((e) => e.actorId === s);
2129
- return s === void 0 ? /* @__PURE__ */ M("section", {
2228
+ return s === void 0 ? /* @__PURE__ */ j("section", {
2130
2229
  id: t,
2131
2230
  className: "la-observer-instances",
2132
2231
  "aria-labelledby": `${t}-heading`,
2133
- children: [/* @__PURE__ */ j("div", {
2232
+ children: [/* @__PURE__ */ A("div", {
2134
2233
  className: "la-observer-instances-heading",
2135
- children: /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ M("h2", {
2234
+ children: /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("h2", {
2136
2235
  id: `${t}-heading`,
2137
2236
  children: [
2138
2237
  n,
2139
2238
  " instances ",
2140
- /* @__PURE__ */ j(U, {
2239
+ /* @__PURE__ */ A(W, {
2141
2240
  "aria-hidden": "true",
2142
2241
  children: r.length.toLocaleString()
2143
2242
  })
2144
2243
  ]
2145
- }), /* @__PURE__ */ j("p", { children: "Select an instance to inspect its persisted state, requests, and WebSocket connections." })] })
2146
- }), r.length ? /* @__PURE__ */ M(A, { children: [
2147
- /* @__PURE__ */ M("div", {
2244
+ }), /* @__PURE__ */ A("p", { children: "Select an instance to inspect its persisted state, requests, and WebSocket connections." })] })
2245
+ }), r.length ? /* @__PURE__ */ j(k, { children: [
2246
+ /* @__PURE__ */ j("div", {
2148
2247
  className: "la-observer-filters",
2149
- children: [/* @__PURE__ */ j(Ht, {
2248
+ children: [/* @__PURE__ */ A(Xt, {
2150
2249
  label: "Search instances",
2151
2250
  placeholder: "Search instance IDs…",
2152
2251
  value: l,
2153
2252
  onChange: u
2154
- }), /* @__PURE__ */ M(Je, {
2253
+ }), /* @__PURE__ */ j(ot, {
2155
2254
  className: "la-observer-select",
2156
2255
  "aria-label": "Instance state",
2157
2256
  value: d,
2158
2257
  onChange: (e) => f(e.target.value),
2159
2258
  children: [
2160
- /* @__PURE__ */ j(W, {
2259
+ /* @__PURE__ */ A(G, {
2161
2260
  value: "all",
2162
2261
  children: "All states"
2163
2262
  }),
2164
- /* @__PURE__ */ j(W, {
2263
+ /* @__PURE__ */ A(G, {
2165
2264
  value: "live",
2166
2265
  children: "Live"
2167
2266
  }),
2168
- /* @__PURE__ */ j(W, {
2267
+ /* @__PURE__ */ A(G, {
2169
2268
  value: "dormant",
2170
2269
  children: "Dormant"
2171
2270
  }),
2172
- /* @__PURE__ */ j(W, {
2271
+ /* @__PURE__ */ A(G, {
2173
2272
  value: "unknown",
2174
2273
  children: "Unknown"
2175
2274
  })
2176
2275
  ]
2177
2276
  })]
2178
2277
  }),
2179
- /* @__PURE__ */ j("div", {
2278
+ /* @__PURE__ */ A("div", {
2180
2279
  className: "la-observer-table-frame",
2181
- children: p.length ? /* @__PURE__ */ M(G, {
2280
+ children: p.length ? /* @__PURE__ */ j(K, {
2182
2281
  "aria-label": `${n} instances`,
2183
2282
  className: "la-observer-instance-table",
2184
- children: [/* @__PURE__ */ j(K, { children: /* @__PURE__ */ M(J, { children: [
2185
- /* @__PURE__ */ j(Y, {
2283
+ children: [/* @__PURE__ */ A(q, { children: /* @__PURE__ */ j(Y, { children: [
2284
+ /* @__PURE__ */ A(X, {
2186
2285
  scope: "col",
2187
2286
  children: "Instance"
2188
2287
  }),
2189
- /* @__PURE__ */ j(Y, {
2288
+ /* @__PURE__ */ A(X, {
2190
2289
  scope: "col",
2191
2290
  children: "State"
2192
2291
  }),
2193
- /* @__PURE__ */ j(Y, {
2292
+ /* @__PURE__ */ A(X, {
2194
2293
  scope: "col",
2195
2294
  children: "Connections"
2196
2295
  }),
2197
- i && /* @__PURE__ */ j(Y, {
2296
+ i && /* @__PURE__ */ A(X, {
2198
2297
  scope: "col",
2199
2298
  className: "la-observer-wait-cell",
2200
2299
  children: "Avg queue wait"
2201
2300
  }),
2202
- /* @__PURE__ */ j(Y, {
2301
+ /* @__PURE__ */ A(X, {
2203
2302
  scope: "col",
2204
2303
  className: "la-observer-waiting-cell",
2205
2304
  children: "Waiting"
2206
2305
  })
2207
- ] }) }), /* @__PURE__ */ j(q, { children: p.map((e) => /* @__PURE__ */ M(J, {
2306
+ ] }) }), /* @__PURE__ */ A(J, { children: p.map((e) => /* @__PURE__ */ j(Y, {
2208
2307
  className: "la-clickable-row",
2209
2308
  onClick: () => c(e.actorId),
2210
2309
  children: [
2211
- /* @__PURE__ */ j(X, {
2310
+ /* @__PURE__ */ A(Z, {
2212
2311
  className: "la-observer-instance-id",
2213
- children: /* @__PURE__ */ j(B, {
2312
+ children: /* @__PURE__ */ A(V, {
2214
2313
  variant: "ghost",
2215
2314
  type: "button",
2216
2315
  className: "la-observer-actor-button",
2217
- children: /* @__PURE__ */ j("span", { children: e.actorId })
2316
+ children: /* @__PURE__ */ A("span", { children: e.actorId })
2218
2317
  })
2219
2318
  }),
2220
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ M(U, {
2319
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ j(W, {
2221
2320
  variant: "outline",
2222
2321
  className: `la-observer-status-${e.status}`,
2223
- children: [/* @__PURE__ */ j("span", { className: `la-observer-dot la-observer-dot-${e.status}` }), Gt(e.status)]
2322
+ children: [/* @__PURE__ */ A("span", { className: `la-observer-dot la-observer-dot-${e.status}` }), $t(e.status)]
2224
2323
  }) }),
2225
- /* @__PURE__ */ j(X, { children: e.connections.length.toLocaleString() }),
2226
- i && /* @__PURE__ */ j(X, {
2324
+ /* @__PURE__ */ A(Z, { children: e.connections.length.toLocaleString() }),
2325
+ i && /* @__PURE__ */ A(Z, {
2227
2326
  className: "la-observer-wait-cell",
2228
- children: /* @__PURE__ */ j(Lt, { stats: i.get(e.actorId) })
2327
+ children: /* @__PURE__ */ A(Gt, { stats: i.get(e.actorId) })
2229
2328
  }),
2230
- /* @__PURE__ */ j(X, {
2329
+ /* @__PURE__ */ A(Z, {
2231
2330
  className: "la-observer-waiting-cell",
2232
- children: /* @__PURE__ */ j(Bt, {
2331
+ children: /* @__PURE__ */ A(Jt, {
2233
2332
  waiting: e.waiting,
2234
2333
  compact: !0
2235
2334
  })
2236
2335
  })
2237
2336
  ]
2238
2337
  }, e.actorId)) })]
2239
- }) : /* @__PURE__ */ j(Ut, {
2338
+ }) : /* @__PURE__ */ A(Zt, {
2240
2339
  title: "No matching instances",
2241
2340
  description: "Try another instance ID or state.",
2242
2341
  action: "Clear filters",
@@ -2245,11 +2344,11 @@ function Ft({ client: e, id: t, actorName: n, instances: r, waits: i, range: o,
2245
2344
  }
2246
2345
  })
2247
2346
  }),
2248
- /* @__PURE__ */ j("p", {
2347
+ /* @__PURE__ */ A("p", {
2249
2348
  className: "la-observer-connection-note",
2250
2349
  children: "Connections are active WebSocket connections, not unique people."
2251
2350
  })
2252
- ] }) : /* @__PURE__ */ M("p", {
2351
+ ] }) : /* @__PURE__ */ j("p", {
2253
2352
  className: "la-observer-instance-empty",
2254
2353
  role: "status",
2255
2354
  children: [
@@ -2258,7 +2357,7 @@ function Ft({ client: e, id: t, actorName: n, instances: r, waits: i, range: o,
2258
2357
  " instances have been created yet."
2259
2358
  ]
2260
2359
  })]
2261
- }) : /* @__PURE__ */ j(It, {
2360
+ }) : /* @__PURE__ */ A(Wt, {
2262
2361
  client: e,
2263
2362
  id: t,
2264
2363
  actorName: n,
@@ -2268,52 +2367,52 @@ function Ft({ client: e, id: t, actorName: n, instances: r, waits: i, range: o,
2268
2367
  range: o
2269
2368
  }, s);
2270
2369
  }
2271
- function It({ client: e, id: t, actorName: n, actorId: r, instance: o, waits: s, range: c }) {
2370
+ function Wt({ client: e, id: t, actorName: n, actorId: r, instance: o, waits: s, range: c }) {
2272
2371
  let [l, u] = a("requests"), [d, f] = a(), p = i(null), m = !!e.getState && !!e.listStateHistory;
2273
- return /* @__PURE__ */ M("section", {
2372
+ return /* @__PURE__ */ j("section", {
2274
2373
  className: "la-observer-instance-detail",
2275
2374
  "aria-label": `${n} / ${r}`,
2276
2375
  children: [
2277
- !o && /* @__PURE__ */ j("p", {
2376
+ !o && /* @__PURE__ */ A("p", {
2278
2377
  role: "status",
2279
2378
  children: "This instance is no longer in the current inventory. Its retained requests are still available below."
2280
2379
  }),
2281
- /* @__PURE__ */ M("div", {
2380
+ /* @__PURE__ */ j("div", {
2282
2381
  className: "la-observer-instance-metrics",
2283
- children: [s && /* @__PURE__ */ j(Rt, {
2382
+ children: [s && /* @__PURE__ */ A(Kt, {
2284
2383
  stats: s.get(r),
2285
2384
  range: c
2286
- }), o && /* @__PURE__ */ j(zt, { waiting: o.waiting })]
2385
+ }), o && /* @__PURE__ */ A(qt, { waiting: o.waiting })]
2287
2386
  }),
2288
- /* @__PURE__ */ M("div", {
2387
+ /* @__PURE__ */ j("div", {
2289
2388
  className: "la-observer-instance-views",
2290
2389
  role: "group",
2291
2390
  "aria-label": "Instance view",
2292
2391
  children: [
2293
- /* @__PURE__ */ j(B, {
2392
+ /* @__PURE__ */ A(V, {
2294
2393
  ref: p,
2295
2394
  variant: "ghost",
2296
2395
  "aria-pressed": l === "requests",
2297
2396
  onClick: () => u("requests"),
2298
2397
  children: "Requests"
2299
2398
  }),
2300
- m && /* @__PURE__ */ j(B, {
2399
+ m && /* @__PURE__ */ A(V, {
2301
2400
  variant: "ghost",
2302
2401
  "aria-pressed": l === "state",
2303
2402
  onClick: () => u("state"),
2304
2403
  children: "State"
2305
2404
  }),
2306
- o && /* @__PURE__ */ M(B, {
2405
+ o && /* @__PURE__ */ j(V, {
2307
2406
  variant: "ghost",
2308
2407
  "aria-pressed": l === "websockets",
2309
2408
  onClick: () => u("websockets"),
2310
- children: ["WebSockets ", /* @__PURE__ */ j(U, { children: o.connections.length })]
2409
+ children: ["WebSockets ", /* @__PURE__ */ A(W, { children: o.connections.length })]
2311
2410
  })
2312
2411
  ]
2313
2412
  }),
2314
- /* @__PURE__ */ j("div", {
2413
+ /* @__PURE__ */ A("div", {
2315
2414
  hidden: l !== "requests",
2316
- children: e.watchRequests || e.listRequests ? /* @__PURE__ */ j(ot, {
2415
+ children: e.watchRequests || e.listRequests ? /* @__PURE__ */ A(mt, {
2317
2416
  client: e,
2318
2417
  actor: {
2319
2418
  actorName: n,
@@ -2321,11 +2420,11 @@ function It({ client: e, id: t, actorName: n, actorId: r, instance: o, waits: s,
2321
2420
  },
2322
2421
  timeRange: c,
2323
2422
  focus: d
2324
- }) : /* @__PURE__ */ M("section", { children: [/* @__PURE__ */ j("h3", { children: "Requests" }), /* @__PURE__ */ j("p", { children: "Request timings are unavailable for this connection." })] })
2423
+ }) : /* @__PURE__ */ j("section", { children: [/* @__PURE__ */ A("h3", { children: "Requests" }), /* @__PURE__ */ A("p", { children: "Request timings are unavailable for this connection." })] })
2325
2424
  }),
2326
- /* @__PURE__ */ j("div", {
2425
+ /* @__PURE__ */ A("div", {
2327
2426
  hidden: l !== "state",
2328
- children: m && /* @__PURE__ */ j(ft, {
2427
+ children: m && /* @__PURE__ */ A(bt, {
2329
2428
  client: e,
2330
2429
  actorName: n,
2331
2430
  actorId: r,
@@ -2334,9 +2433,9 @@ function It({ client: e, id: t, actorName: n, actorId: r, instance: o, waits: s,
2334
2433
  }
2335
2434
  })
2336
2435
  }),
2337
- /* @__PURE__ */ j("div", {
2436
+ /* @__PURE__ */ A("div", {
2338
2437
  hidden: l !== "websockets",
2339
- children: o && /* @__PURE__ */ j(Vt, {
2438
+ children: o && /* @__PURE__ */ A(Yt, {
2340
2439
  id: `${t}-connections`,
2341
2440
  actorId: r,
2342
2441
  connections: o.connections
@@ -2345,126 +2444,126 @@ function It({ client: e, id: t, actorName: n, actorId: r, instance: o, waits: s,
2345
2444
  ]
2346
2445
  });
2347
2446
  }
2348
- function Lt({ stats: e }) {
2349
- return e ? /* @__PURE__ */ M("span", {
2447
+ function Gt({ stats: e }) {
2448
+ return e ? /* @__PURE__ */ j("span", {
2350
2449
  className: "la-observer-wait",
2351
- title: `Average of ${e.admitted.toLocaleString()} admitted requests in the selected time range; longest wait ${Dt(e.maxMs)}`,
2352
- children: [Dt(e.averageMs), /* @__PURE__ */ M("small", { children: ["max ", Dt(e.maxMs)] })]
2353
- }) : /* @__PURE__ */ j("span", {
2450
+ title: `Average of ${e.admitted.toLocaleString()} admitted requests in the selected time range; longest wait ${Ft(e.maxMs)}`,
2451
+ children: [Ft(e.averageMs), /* @__PURE__ */ j("small", { children: ["max ", Ft(e.maxMs)] })]
2452
+ }) : /* @__PURE__ */ A("span", {
2354
2453
  title: "No admitted requests in the selected time range",
2355
2454
  children: "—"
2356
2455
  });
2357
2456
  }
2358
- function Rt({ stats: e, range: t }) {
2359
- return /* @__PURE__ */ j("section", {
2457
+ function Kt({ stats: e, range: t }) {
2458
+ return /* @__PURE__ */ A("section", {
2360
2459
  className: "la-observer-queue-wait-detail",
2361
2460
  "aria-label": "Queue wait",
2362
- title: `Time waiting to enter this actor ${H(t)}`,
2363
- children: e ? /* @__PURE__ */ M("dl", { children: [
2364
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("dt", { children: "Avg queue wait" }), /* @__PURE__ */ j("dd", {
2461
+ title: `Time waiting to enter this actor ${U(t)}`,
2462
+ children: e ? /* @__PURE__ */ j("dl", { children: [
2463
+ /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", { children: "Avg queue wait" }), /* @__PURE__ */ A("dd", {
2365
2464
  "aria-label": "Average queue wait",
2366
- children: Dt(e.averageMs)
2465
+ children: Ft(e.averageMs)
2367
2466
  })] }),
2368
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("dt", { children: "Max" }), /* @__PURE__ */ j("dd", {
2467
+ /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", { children: "Max" }), /* @__PURE__ */ A("dd", {
2369
2468
  "aria-label": "Longest queue wait",
2370
- children: Dt(e.maxMs)
2469
+ children: Ft(e.maxMs)
2371
2470
  })] }),
2372
- /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("dt", { children: "Admitted" }), /* @__PURE__ */ j("dd", {
2471
+ /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", { children: "Admitted" }), /* @__PURE__ */ A("dd", {
2373
2472
  "aria-label": "Admitted requests",
2374
2473
  children: e.admitted.toLocaleString()
2375
2474
  })] })
2376
- ] }) : /* @__PURE__ */ M("p", { children: [
2475
+ ] }) : /* @__PURE__ */ j("p", { children: [
2377
2476
  "No requests admitted ",
2378
- H(t),
2477
+ U(t),
2379
2478
  "."
2380
2479
  ] })
2381
2480
  });
2382
2481
  }
2383
- function zt({ waiting: e }) {
2384
- return /* @__PURE__ */ j("section", {
2482
+ function qt({ waiting: e }) {
2483
+ return /* @__PURE__ */ A("section", {
2385
2484
  className: "la-observer-waiting",
2386
2485
  "aria-label": "Waiting requests",
2387
- children: e?.length ? /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ M("span", {
2486
+ children: e?.length ? /* @__PURE__ */ j(k, { children: [/* @__PURE__ */ j("span", {
2388
2487
  className: "la-observer-waiting-label",
2389
- children: ["Waiting ", /* @__PURE__ */ j("strong", { children: e.length })]
2390
- }), /* @__PURE__ */ j(Bt, { waiting: e })] }) : /* @__PURE__ */ j("p", { children: e == null ? "Queue reporting unavailable" : "No requests waiting." })
2488
+ children: ["Waiting ", /* @__PURE__ */ A("strong", { children: e.length })]
2489
+ }), /* @__PURE__ */ A(Jt, { waiting: e })] }) : /* @__PURE__ */ A("p", { children: e == null ? "Queue reporting unavailable" : "No requests waiting." })
2391
2490
  });
2392
2491
  }
2393
- function Bt({ waiting: e, compact: t = !1 }) {
2394
- if (e == null) return /* @__PURE__ */ j("span", {
2492
+ function Jt({ waiting: e, compact: t = !1 }) {
2493
+ if (e == null) return /* @__PURE__ */ A("span", {
2395
2494
  title: "Queue reporting is unavailable",
2396
2495
  children: "Unavailable"
2397
2496
  });
2398
- if (!e.length) return /* @__PURE__ */ j("span", {
2497
+ if (!e.length) return /* @__PURE__ */ A("span", {
2399
2498
  className: "la-observer-queue-empty",
2400
2499
  children: "None"
2401
2500
  });
2402
2501
  let n = t ? e.slice(0, 3) : e;
2403
- return /* @__PURE__ */ M("ol", {
2502
+ return /* @__PURE__ */ j("ol", {
2404
2503
  className: `la-observer-queue${t ? " la-observer-queue-compact" : ""}`,
2405
2504
  "aria-label": `${e.length} waiting requests, next to run first`,
2406
- children: [n.map((e, n) => /* @__PURE__ */ j("li", { children: /* @__PURE__ */ M(U, {
2505
+ children: [n.map((e, n) => /* @__PURE__ */ A("li", { children: /* @__PURE__ */ j(W, {
2407
2506
  variant: "outline",
2408
2507
  className: "la-observer-queue-bubble",
2409
2508
  title: e.operation,
2410
- children: [!t && /* @__PURE__ */ j("span", {
2509
+ children: [!t && /* @__PURE__ */ A("span", {
2411
2510
  className: "la-observer-queue-position",
2412
2511
  children: n + 1
2413
- }), /* @__PURE__ */ j("span", {
2512
+ }), /* @__PURE__ */ A("span", {
2414
2513
  className: "la-observer-queue-operation",
2415
2514
  children: e.operation
2416
2515
  })]
2417
- }) }, e.id)), t && e.length > n.length && /* @__PURE__ */ j("li", { children: /* @__PURE__ */ M(U, {
2516
+ }) }, e.id)), t && e.length > n.length && /* @__PURE__ */ A("li", { children: /* @__PURE__ */ j(W, {
2418
2517
  "aria-label": `${e.length - n.length} more waiting requests`,
2419
2518
  children: ["+", e.length - n.length]
2420
2519
  }) })]
2421
2520
  });
2422
2521
  }
2423
- function Vt({ id: e, actorId: t, connections: n }) {
2424
- return /* @__PURE__ */ M("section", {
2522
+ function Yt({ id: e, actorId: t, connections: n }) {
2523
+ return /* @__PURE__ */ j("section", {
2425
2524
  id: e,
2426
2525
  className: "la-observer-connections",
2427
2526
  "aria-labelledby": `${e}-heading`,
2428
- children: [/* @__PURE__ */ j("div", {
2527
+ children: [/* @__PURE__ */ A("div", {
2429
2528
  className: "la-observer-instances-heading",
2430
- children: /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ M("h3", {
2529
+ children: /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ j("h3", {
2431
2530
  id: `${e}-heading`,
2432
2531
  children: [
2433
2532
  t,
2434
2533
  " WebSockets ",
2435
- /* @__PURE__ */ j(U, {
2534
+ /* @__PURE__ */ A(W, {
2436
2535
  "aria-hidden": "true",
2437
2536
  children: n.length.toLocaleString()
2438
2537
  })
2439
2538
  ]
2440
- }), /* @__PURE__ */ j("p", { children: `${n.length.toLocaleString()} active ${n.length === 1 ? "connection" : "connections"}` })] })
2441
- }), n.length ? /* @__PURE__ */ j("div", {
2539
+ }), /* @__PURE__ */ A("p", { children: `${n.length.toLocaleString()} active ${n.length === 1 ? "connection" : "connections"}` })] })
2540
+ }), n.length ? /* @__PURE__ */ A("div", {
2442
2541
  className: "la-observer-table-frame",
2443
- children: /* @__PURE__ */ M(G, {
2542
+ children: /* @__PURE__ */ j(K, {
2444
2543
  "aria-label": `${t} WebSocket connections`,
2445
2544
  className: "la-observer-connection-table",
2446
- children: [/* @__PURE__ */ j(K, { children: /* @__PURE__ */ M(J, { children: [/* @__PURE__ */ j(Y, {
2545
+ children: [/* @__PURE__ */ A(q, { children: /* @__PURE__ */ j(Y, { children: [/* @__PURE__ */ A(X, {
2447
2546
  scope: "col",
2448
2547
  children: "Socket"
2449
- }), /* @__PURE__ */ j(Y, {
2548
+ }), /* @__PURE__ */ A(X, {
2450
2549
  scope: "col",
2451
2550
  children: "Metadata"
2452
- })] }) }), /* @__PURE__ */ j(q, { children: n.map((e) => /* @__PURE__ */ M(J, { children: [/* @__PURE__ */ j(X, {
2551
+ })] }) }), /* @__PURE__ */ A(J, { children: n.map((e) => /* @__PURE__ */ j(Y, { children: [/* @__PURE__ */ A(Z, {
2453
2552
  className: "la-observer-socket-id",
2454
2553
  children: e.id
2455
- }), /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j("pre", { children: JSON.stringify(e.metadata, null, 2) }) })] }, e.id)) })]
2554
+ }), /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A("pre", { children: JSON.stringify(e.metadata, null, 2) }) })] }, e.id)) })]
2456
2555
  })
2457
- }) : /* @__PURE__ */ M("div", {
2556
+ }) : /* @__PURE__ */ j("div", {
2458
2557
  className: "la-observer-no-connections",
2459
2558
  role: "status",
2460
- children: [/* @__PURE__ */ j(T, { "aria-hidden": "true" }), /* @__PURE__ */ j("p", { children: "No active WebSocket connections." })]
2559
+ children: [/* @__PURE__ */ A(w, { "aria-hidden": "true" }), /* @__PURE__ */ A("p", { children: "No active WebSocket connections." })]
2461
2560
  })]
2462
2561
  });
2463
2562
  }
2464
- function Ht({ label: e, placeholder: t, value: n, onChange: r }) {
2465
- return /* @__PURE__ */ M("div", {
2563
+ function Xt({ label: e, placeholder: t, value: n, onChange: r }) {
2564
+ return /* @__PURE__ */ j("div", {
2466
2565
  className: "la-observer-search",
2467
- children: [/* @__PURE__ */ j(S, { "aria-hidden": "true" }), /* @__PURE__ */ j(V, {
2566
+ children: [/* @__PURE__ */ A(x, { "aria-hidden": "true" }), /* @__PURE__ */ A(H, {
2468
2567
  type: "search",
2469
2568
  "aria-label": e,
2470
2569
  placeholder: t,
@@ -2473,14 +2572,14 @@ function Ht({ label: e, placeholder: t, value: n, onChange: r }) {
2473
2572
  })]
2474
2573
  });
2475
2574
  }
2476
- function Ut({ title: e, description: t, action: n, onReset: r }) {
2477
- return /* @__PURE__ */ M("div", {
2575
+ function Zt({ title: e, description: t, action: n, onReset: r }) {
2576
+ return /* @__PURE__ */ j("div", {
2478
2577
  className: "la-observer-empty",
2479
2578
  children: [
2480
- /* @__PURE__ */ j(S, { "aria-hidden": "true" }),
2481
- /* @__PURE__ */ j("h3", { children: e }),
2482
- /* @__PURE__ */ j("p", { children: t }),
2483
- n && /* @__PURE__ */ j(B, {
2579
+ /* @__PURE__ */ A(x, { "aria-hidden": "true" }),
2580
+ /* @__PURE__ */ A("h3", { children: e }),
2581
+ /* @__PURE__ */ A("p", { children: t }),
2582
+ n && /* @__PURE__ */ A(V, {
2484
2583
  type: "button",
2485
2584
  variant: "outline",
2486
2585
  onClick: r,
@@ -2489,26 +2588,26 @@ function Ut({ title: e, description: t, action: n, onReset: r }) {
2489
2588
  ]
2490
2589
  });
2491
2590
  }
2492
- function Wt(e, t) {
2591
+ function Qt(e, t) {
2493
2592
  return e.toLocaleLowerCase().includes(t.trim().toLocaleLowerCase());
2494
2593
  }
2495
- function Gt(e) {
2594
+ function $t(e) {
2496
2595
  return e[0].toUpperCase() + e.slice(1);
2497
2596
  }
2498
2597
  //#endregion
2499
2598
  //#region src/overview-data.ts
2500
- function Kt(e) {
2599
+ function en(e) {
2501
2600
  let t = e.filter((e) => e.outcome !== "rerouted");
2502
2601
  return {
2503
2602
  count: e.length,
2504
2603
  success: t.length ? 100 * t.filter((e) => e.outcome === "completed").length / t.length : null,
2505
- p95: Xt(t.map((e) => e.durationMs))
2604
+ p95: an(t.map((e) => e.durationMs))
2506
2605
  };
2507
2606
  }
2508
- function qt(e, t, n) {
2607
+ function tn(e, t, n) {
2509
2608
  return e.filter((e) => e.startedAtMs >= (t.fromMs ?? 0) && e.startedAtMs <= (t.toMs ?? n));
2510
2609
  }
2511
- function Jt(e) {
2610
+ function nn(e) {
2512
2611
  return e.actors.reduce((e, t) => ({
2513
2612
  live: e.live + t.live,
2514
2613
  dormant: e.dormant + t.dormant,
@@ -2521,33 +2620,33 @@ function Jt(e) {
2521
2620
  connections: 0
2522
2621
  });
2523
2622
  }
2524
- function Yt(e) {
2525
- return Xt(e.filter((e) => e.outcome !== "rerouted" && e.queueWaitMs !== null).map((e) => e.queueWaitMs));
2623
+ function rn(e) {
2624
+ return an(e.filter((e) => e.outcome !== "rerouted" && e.queueWaitMs !== null).map((e) => e.queueWaitMs));
2526
2625
  }
2527
- function Xt(e) {
2626
+ function an(e) {
2528
2627
  return e.length ? e.sort((e, t) => e - t)[Math.ceil(e.length * .95) - 1] : null;
2529
2628
  }
2530
2629
  //#endregion
2531
2630
  //#region src/overview-metrics.ts
2532
- function Zt(e) {
2631
+ function on(e) {
2533
2632
  let t = e;
2534
- if (!t || !Qt(t.total) || !Array.isArray(t.classes) || !t.classes.every(Qt)) throw Error("Invalid overview metrics response");
2633
+ if (!t || !sn(t.total) || !Array.isArray(t.classes) || !t.classes.every(sn)) throw Error("Invalid overview metrics response");
2535
2634
  return t;
2536
2635
  }
2537
- function Qt(e) {
2636
+ function sn(e) {
2538
2637
  return !!e && typeof e.actorName == "string" && Number.isSafeInteger(e.count) && e.count >= 0 && [
2539
2638
  e.success,
2540
2639
  e.p95,
2541
2640
  e.queueP95
2542
2641
  ].every((e) => e === null || typeof e == "number" && Number.isFinite(e) && e >= 0) && (e.success === null || e.success <= 100);
2543
2642
  }
2544
- function $t(e) {
2643
+ function cn(e) {
2545
2644
  let t = /* @__PURE__ */ new Map();
2546
2645
  for (let n of e) t.set(n.actorName, [...t.get(n.actorName) ?? [], n]);
2547
2646
  let n = (e, t) => ({
2548
2647
  actorName: e,
2549
- ...Kt(t),
2550
- queueP95: Yt(t)
2648
+ ...en(t),
2649
+ queueP95: rn(t)
2551
2650
  });
2552
2651
  return {
2553
2652
  total: n("", e),
@@ -2556,47 +2655,47 @@ function $t(e) {
2556
2655
  }
2557
2656
  //#endregion
2558
2657
  //#region src/Overview.tsx
2559
- function en({ client: e, onSelectActor: n, timeRange: r, onTimeRangeChange: i }) {
2560
- let o = tt(e), [s, c] = a(Fe), l = r ?? s, u = i ?? c, [d, f] = a(Date.now);
2658
+ function ln({ client: e, onSelectActor: n, timeRange: r, onTimeRangeChange: i }) {
2659
+ let o = lt(e), [s, c] = a(Le), l = r ?? s, u = i ?? c, [d, f] = a(Date.now);
2561
2660
  t(() => {
2562
2661
  let e = setInterval(() => f(Date.now()), 1e4);
2563
2662
  return () => clearInterval(e);
2564
2663
  }, []);
2565
- let p = Ie(l, d), m = it(e, p, e.getMetrics), h = nt(e, !m.supported), g = h.page ? $t(qt(h.page.records, p, Math.max(d, Date.now()))) : void 0, _ = m.supported ? m.value : g, v = m.supported ? m.failed : h.failed;
2566
- return /* @__PURE__ */ M("section", {
2664
+ let p = Re(l, d), m = ft(e, p, e.getMetrics), h = ut(e, !m.supported), g = h.page ? cn(tn(h.page.records, p, Math.max(d, Date.now()))) : void 0, _ = m.supported ? m.value : g, v = m.supported ? m.failed : h.failed;
2665
+ return /* @__PURE__ */ j("section", {
2567
2666
  className: "la-observer overview",
2568
2667
  "aria-label": "Runtime overview",
2569
2668
  children: [
2570
- /* @__PURE__ */ M("div", {
2669
+ /* @__PURE__ */ j("div", {
2571
2670
  className: "overview-heading",
2572
- children: [/* @__PURE__ */ j("h1", { children: "Durable Actors" }), /* @__PURE__ */ M("div", {
2671
+ children: [/* @__PURE__ */ A("h1", { children: "Durable Actors" }), /* @__PURE__ */ j("div", {
2573
2672
  className: "overview-controls",
2574
2673
  children: [
2575
- /* @__PURE__ */ j("span", {
2674
+ /* @__PURE__ */ A("span", {
2576
2675
  className: "overview-updated",
2577
- children: o.failed ? "Inventory reconnecting…" : o.updatedAt ? /* @__PURE__ */ M(A, { children: ["Last inventory update ", /* @__PURE__ */ j("time", {
2676
+ children: o.failed ? "Inventory reconnecting…" : o.updatedAt ? /* @__PURE__ */ j(k, { children: ["Last inventory update ", /* @__PURE__ */ A("time", {
2578
2677
  dateTime: new Date(o.updatedAt).toISOString(),
2579
2678
  children: new Date(o.updatedAt).toLocaleTimeString([], { hour12: !1 })
2580
2679
  })] }) : "Connecting…"
2581
2680
  }),
2582
- /* @__PURE__ */ j(Be, {
2681
+ /* @__PURE__ */ A(He, {
2583
2682
  value: l,
2584
2683
  onChange: u,
2585
2684
  className: "overview-range"
2586
2685
  }),
2587
- /* @__PURE__ */ j(B, {
2686
+ /* @__PURE__ */ A(V, {
2588
2687
  variant: "outline",
2589
2688
  size: "icon",
2590
2689
  "aria-label": "Refresh overview",
2591
2690
  onClick: () => {
2592
2691
  o.retry(), m.retry(), h.retry();
2593
2692
  },
2594
- children: /* @__PURE__ */ j(te, { "aria-hidden": "true" })
2693
+ children: /* @__PURE__ */ A(ne, { "aria-hidden": "true" })
2595
2694
  })
2596
2695
  ]
2597
2696
  })]
2598
2697
  }),
2599
- o.failed && /* @__PURE__ */ M("p", {
2698
+ o.failed && /* @__PURE__ */ j("p", {
2600
2699
  className: "overview-alert",
2601
2700
  role: "alert",
2602
2701
  children: [
@@ -2605,7 +2704,7 @@ function en({ client: e, onSelectActor: n, timeRange: r, onTimeRangeChange: i })
2605
2704
  " Retrying automatically."
2606
2705
  ]
2607
2706
  }),
2608
- v && /* @__PURE__ */ M("p", {
2707
+ v && /* @__PURE__ */ j("p", {
2609
2708
  className: "overview-alert",
2610
2709
  role: "alert",
2611
2710
  children: [
@@ -2616,18 +2715,18 @@ function en({ client: e, onSelectActor: n, timeRange: r, onTimeRangeChange: i })
2616
2715
  "Retrying automatically."
2617
2716
  ]
2618
2717
  }),
2619
- /* @__PURE__ */ j(tn, {
2718
+ /* @__PURE__ */ A(un, {
2620
2719
  inventory: o.inventory,
2621
2720
  metrics: _,
2622
2721
  range: l
2623
2722
  }),
2624
- /* @__PURE__ */ j(nn, {
2723
+ /* @__PURE__ */ A(dn, {
2625
2724
  inventory: o.inventory,
2626
2725
  metrics: _,
2627
2726
  failed: o.failed,
2628
2727
  onSelectActor: n
2629
2728
  }),
2630
- /* @__PURE__ */ j(sn, {
2729
+ /* @__PURE__ */ A(hn, {
2631
2730
  page: m.supported ? void 0 : h.page,
2632
2731
  range: l,
2633
2732
  saved: m.supported
@@ -2635,133 +2734,133 @@ function en({ client: e, onSelectActor: n, timeRange: r, onTimeRangeChange: i })
2635
2734
  ]
2636
2735
  });
2637
2736
  }
2638
- function tn({ inventory: e, metrics: t, range: n }) {
2639
- let r = e ? Jt(e) : void 0, i = r ? r.live + r.dormant + r.unknown : void 0, a = t?.total;
2640
- return /* @__PURE__ */ M("div", {
2737
+ function un({ inventory: e, metrics: t, range: n }) {
2738
+ let r = e ? nn(e) : void 0, i = r ? r.live + r.dormant + r.unknown : void 0, a = t?.total;
2739
+ return /* @__PURE__ */ j("div", {
2641
2740
  className: "overview-metrics",
2642
2741
  children: [
2643
- /* @__PURE__ */ M("section", {
2742
+ /* @__PURE__ */ j("section", {
2644
2743
  className: "overview-metric",
2645
2744
  children: [
2646
- /* @__PURE__ */ j("h2", { children: "Actor instances" }),
2647
- /* @__PURE__ */ M("div", {
2745
+ /* @__PURE__ */ A("h2", { children: "Actor instances" }),
2746
+ /* @__PURE__ */ j("div", {
2648
2747
  className: "overview-value",
2649
- children: [/* @__PURE__ */ j("strong", {
2748
+ children: [/* @__PURE__ */ A("strong", {
2650
2749
  "aria-label": "Actor instances",
2651
- children: Z(i)
2652
- }), /* @__PURE__ */ j("span", { children: e ? `${e.actors.length} actor ${e.actors.length === 1 ? "class" : "classes"}` : "Waiting for inventory" })]
2750
+ children: Q(i)
2751
+ }), /* @__PURE__ */ A("span", { children: e ? `${e.actors.length} actor ${e.actors.length === 1 ? "class" : "classes"}` : "Waiting for inventory" })]
2653
2752
  }),
2654
- /* @__PURE__ */ j("div", {
2753
+ /* @__PURE__ */ A("div", {
2655
2754
  className: "overview-residency",
2656
2755
  "aria-hidden": "true",
2657
- children: r && Object.entries(r).filter(([e]) => e !== "connections").map(([e, t]) => /* @__PURE__ */ j("span", {
2756
+ children: r && Object.entries(r).filter(([e]) => e !== "connections").map(([e, t]) => /* @__PURE__ */ A("span", {
2658
2757
  className: `residency-${e}`,
2659
2758
  style: { flexGrow: t }
2660
2759
  }, e))
2661
2760
  }),
2662
- /* @__PURE__ */ M("div", {
2761
+ /* @__PURE__ */ j("div", {
2663
2762
  className: "overview-metric-foot",
2664
2763
  children: [
2665
- /* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j("b", { children: Z(r?.live) }), " live"] }),
2666
- /* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j("b", { children: Z(r?.dormant) }), " dormant"] }),
2667
- !!r?.unknown && /* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j("b", { children: Z(r.unknown) }), " unknown"] })
2764
+ /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("b", { children: Q(r?.live) }), " live"] }),
2765
+ /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("b", { children: Q(r?.dormant) }), " dormant"] }),
2766
+ !!r?.unknown && /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("b", { children: Q(r.unknown) }), " unknown"] })
2668
2767
  ]
2669
2768
  })
2670
2769
  ]
2671
2770
  }),
2672
- /* @__PURE__ */ M("section", {
2771
+ /* @__PURE__ */ j("section", {
2673
2772
  className: "overview-metric",
2674
2773
  children: [
2675
- /* @__PURE__ */ j("h2", { children: "Requests" }),
2676
- /* @__PURE__ */ M("div", {
2774
+ /* @__PURE__ */ A("h2", { children: "Requests" }),
2775
+ /* @__PURE__ */ j("div", {
2677
2776
  className: "overview-value",
2678
- children: [/* @__PURE__ */ j("strong", {
2777
+ children: [/* @__PURE__ */ A("strong", {
2679
2778
  "aria-label": "Retained requests",
2680
- children: Z(a?.count)
2681
- }), /* @__PURE__ */ j("span", { children: H(n) })]
2779
+ children: Q(a?.count)
2780
+ }), /* @__PURE__ */ A("span", { children: U(n) })]
2682
2781
  }),
2683
- /* @__PURE__ */ M("div", {
2782
+ /* @__PURE__ */ j("div", {
2684
2783
  className: "overview-health",
2685
2784
  children: [
2686
- /* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j(an, {
2785
+ /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A(pn, {
2687
2786
  value: a?.success,
2688
2787
  kind: "success"
2689
2788
  }), " success"] }),
2690
- /* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j(an, {
2789
+ /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A(pn, {
2691
2790
  value: a?.p95,
2692
2791
  kind: "latency"
2693
2792
  }), " p95 latency"] }),
2694
- /* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j("b", { children: ln(a?.queueP95) }), " p95 queue wait"] })
2793
+ /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("b", { children: _n(a?.queueP95) }), " p95 queue wait"] })
2695
2794
  ]
2696
2795
  })
2697
2796
  ]
2698
2797
  }),
2699
- /* @__PURE__ */ M("section", {
2798
+ /* @__PURE__ */ j("section", {
2700
2799
  className: "overview-metric",
2701
2800
  children: [
2702
- /* @__PURE__ */ j("h2", { children: "WebSocket connections" }),
2703
- /* @__PURE__ */ M("div", {
2801
+ /* @__PURE__ */ A("h2", { children: "WebSocket connections" }),
2802
+ /* @__PURE__ */ j("div", {
2704
2803
  className: "overview-value",
2705
- children: [/* @__PURE__ */ j("strong", {
2804
+ children: [/* @__PURE__ */ A("strong", {
2706
2805
  "aria-label": "Open WebSocket connections",
2707
- children: Z(r?.connections)
2708
- }), /* @__PURE__ */ j("span", { children: "open" })]
2806
+ children: Q(r?.connections)
2807
+ }), /* @__PURE__ */ A("span", { children: "open" })]
2709
2808
  }),
2710
- /* @__PURE__ */ M("div", {
2809
+ /* @__PURE__ */ j("div", {
2711
2810
  className: "overview-health",
2712
- children: [/* @__PURE__ */ j("span", { children: "Current inventory snapshot" }), /* @__PURE__ */ j("span", { children: "Active sockets" })]
2811
+ children: [/* @__PURE__ */ A("span", { children: "Current inventory snapshot" }), /* @__PURE__ */ A("span", { children: "Active sockets" })]
2713
2812
  })
2714
2813
  ]
2715
2814
  })
2716
2815
  ]
2717
2816
  });
2718
2817
  }
2719
- function nn({ inventory: e, metrics: t, failed: n, onSelectActor: r }) {
2818
+ function dn({ inventory: e, metrics: t, failed: n, onSelectActor: r }) {
2720
2819
  let [i, o] = a(""), [s, c] = a("all"), l = e?.actors.filter((e) => e.actorName.toLocaleLowerCase().includes(i.trim().toLocaleLowerCase()) && (s === "all" || e[s] > 0)).sort((e, t) => Number(t.live > 0) - Number(e.live > 0)) ?? [];
2721
- return /* @__PURE__ */ M("section", {
2820
+ return /* @__PURE__ */ j("section", {
2722
2821
  "aria-label": "Actor classes",
2723
- children: [/* @__PURE__ */ M("div", {
2822
+ children: [/* @__PURE__ */ j("div", {
2724
2823
  className: "overview-section-heading",
2725
- children: [/* @__PURE__ */ M("h2", { children: ["Actor classes ", /* @__PURE__ */ j("span", { children: Z(e?.actors.length) })] }), /* @__PURE__ */ j(on, {})]
2726
- }), /* @__PURE__ */ M("div", {
2824
+ children: [/* @__PURE__ */ j("h2", { children: ["Actor classes ", /* @__PURE__ */ A("span", { children: Q(e?.actors.length) })] }), /* @__PURE__ */ A(mn, {})]
2825
+ }), /* @__PURE__ */ j("div", {
2727
2826
  className: "overview-panel",
2728
2827
  children: [
2729
- /* @__PURE__ */ M("div", {
2828
+ /* @__PURE__ */ j("div", {
2730
2829
  className: "overview-filterbar",
2731
- children: [/* @__PURE__ */ M("div", {
2830
+ children: [/* @__PURE__ */ j("div", {
2732
2831
  className: "overview-search",
2733
- children: [/* @__PURE__ */ j(S, { "aria-hidden": "true" }), /* @__PURE__ */ j(V, {
2832
+ children: [/* @__PURE__ */ A(x, { "aria-hidden": "true" }), /* @__PURE__ */ A(H, {
2734
2833
  "aria-label": "Filter actor classes",
2735
2834
  placeholder: "Filter actor classes…",
2736
2835
  value: i,
2737
2836
  onInput: (e) => o(e.currentTarget.value)
2738
2837
  })]
2739
- }), /* @__PURE__ */ M(Je, {
2838
+ }), /* @__PURE__ */ j(ot, {
2740
2839
  "aria-label": "Filter by residency",
2741
2840
  size: "sm",
2742
2841
  value: s,
2743
2842
  onChange: (e) => c(e.target.value),
2744
2843
  children: [
2745
- /* @__PURE__ */ j(W, {
2844
+ /* @__PURE__ */ A(G, {
2746
2845
  value: "all",
2747
2846
  children: "All states"
2748
2847
  }),
2749
- /* @__PURE__ */ j(W, {
2848
+ /* @__PURE__ */ A(G, {
2750
2849
  value: "live",
2751
2850
  children: "Live instances"
2752
2851
  }),
2753
- /* @__PURE__ */ j(W, {
2852
+ /* @__PURE__ */ A(G, {
2754
2853
  value: "dormant",
2755
2854
  children: "Dormant instances"
2756
2855
  }),
2757
- /* @__PURE__ */ j(W, {
2856
+ /* @__PURE__ */ A(G, {
2758
2857
  value: "unknown",
2759
2858
  children: "Unknown residency"
2760
2859
  })
2761
2860
  ]
2762
2861
  })]
2763
2862
  }),
2764
- /* @__PURE__ */ M(G, {
2863
+ /* @__PURE__ */ j(K, {
2765
2864
  className: "overview-table",
2766
2865
  "aria-label": "Actor class metrics",
2767
2866
  containerProps: {
@@ -2771,69 +2870,69 @@ function nn({ inventory: e, metrics: t, failed: n, onSelectActor: r }) {
2771
2870
  tabIndex: 0
2772
2871
  },
2773
2872
  children: [
2774
- /* @__PURE__ */ M("colgroup", { children: [/* @__PURE__ */ j("col", { className: "overview-class-column" }), /* @__PURE__ */ j("col", { span: 6 })] }),
2775
- /* @__PURE__ */ M(K, { children: [/* @__PURE__ */ M(J, {
2873
+ /* @__PURE__ */ j("colgroup", { children: [/* @__PURE__ */ A("col", { className: "overview-class-column" }), /* @__PURE__ */ A("col", { span: 6 })] }),
2874
+ /* @__PURE__ */ j(q, { children: [/* @__PURE__ */ j(Y, {
2776
2875
  className: "overview-groups",
2777
2876
  children: [
2778
- /* @__PURE__ */ j(Y, {
2877
+ /* @__PURE__ */ A(X, {
2779
2878
  scope: "colgroup",
2780
2879
  colSpan: 2,
2781
2880
  children: "Actors"
2782
2881
  }),
2783
- /* @__PURE__ */ j(Y, {
2882
+ /* @__PURE__ */ A(X, {
2784
2883
  scope: "colgroup",
2785
2884
  colSpan: 4,
2786
2885
  children: "Requests"
2787
2886
  }),
2788
- /* @__PURE__ */ j(Y, {
2887
+ /* @__PURE__ */ A(X, {
2789
2888
  scope: "colgroup",
2790
2889
  children: "WebSockets"
2791
2890
  })
2792
2891
  ]
2793
- }), /* @__PURE__ */ M(J, { children: [
2794
- /* @__PURE__ */ j(Y, {
2892
+ }), /* @__PURE__ */ j(Y, { children: [
2893
+ /* @__PURE__ */ A(X, {
2795
2894
  scope: "col",
2796
2895
  children: "Class"
2797
2896
  }),
2798
- /* @__PURE__ */ j(Y, {
2897
+ /* @__PURE__ */ A(X, {
2799
2898
  scope: "col",
2800
2899
  children: "Instances"
2801
2900
  }),
2802
- /* @__PURE__ */ j(Y, {
2901
+ /* @__PURE__ */ A(X, {
2803
2902
  scope: "col",
2804
2903
  children: "Total"
2805
2904
  }),
2806
- /* @__PURE__ */ j(Y, {
2905
+ /* @__PURE__ */ A(X, {
2807
2906
  scope: "col",
2808
2907
  children: "Success"
2809
2908
  }),
2810
- /* @__PURE__ */ j(Y, {
2909
+ /* @__PURE__ */ A(X, {
2811
2910
  scope: "col",
2812
2911
  children: "p95 latency"
2813
2912
  }),
2814
- /* @__PURE__ */ j(Y, {
2913
+ /* @__PURE__ */ A(X, {
2815
2914
  scope: "col",
2816
2915
  children: "p95 queue wait"
2817
2916
  }),
2818
- /* @__PURE__ */ j(Y, {
2917
+ /* @__PURE__ */ A(X, {
2819
2918
  scope: "col",
2820
2919
  children: "Connected"
2821
2920
  })
2822
2921
  ] })] }),
2823
- /* @__PURE__ */ j(q, { children: l.map((e) => /* @__PURE__ */ j(rn, {
2922
+ /* @__PURE__ */ A(J, { children: l.map((e) => /* @__PURE__ */ A(fn, {
2824
2923
  actor: e,
2825
- metrics: t && (t.classes.find((t) => t.actorName === e.actorName) ?? cn(e.actorName)),
2924
+ metrics: t && (t.classes.find((t) => t.actorName === e.actorName) ?? gn(e.actorName)),
2826
2925
  onSelectActor: r
2827
2926
  }, e.actorName)) })
2828
2927
  ]
2829
2928
  }),
2830
- !l.length && /* @__PURE__ */ M("div", {
2929
+ !l.length && /* @__PURE__ */ j("div", {
2831
2930
  className: "overview-empty",
2832
2931
  role: "status",
2833
2932
  children: [
2834
- /* @__PURE__ */ j("strong", { children: e ? e.actors.length ? "No matching actor classes" : "No actors yet" : n ? "Inventory unavailable" : "Loading actor classes…" }),
2835
- /* @__PURE__ */ j("p", { children: e?.actors.length ? "Try another class name or residency state." : "Actor classes appear after deployment." }),
2836
- !!e?.actors.length && /* @__PURE__ */ j(B, {
2933
+ /* @__PURE__ */ A("strong", { children: e ? e.actors.length ? "No matching actor classes" : "No actors yet" : n ? "Inventory unavailable" : "Loading actor classes…" }),
2934
+ /* @__PURE__ */ A("p", { children: e?.actors.length ? "Try another class name or residency state." : "Actor classes appear after deployment." }),
2935
+ !!e?.actors.length && /* @__PURE__ */ A(V, {
2837
2936
  variant: "outline",
2838
2937
  onClick: () => {
2839
2938
  o(""), c("all");
@@ -2846,88 +2945,88 @@ function nn({ inventory: e, metrics: t, failed: n, onSelectActor: r }) {
2846
2945
  })]
2847
2946
  });
2848
2947
  }
2849
- function rn({ actor: e, metrics: t, onSelectActor: n }) {
2850
- return /* @__PURE__ */ M(J, {
2948
+ function fn({ actor: e, metrics: t, onSelectActor: n }) {
2949
+ return /* @__PURE__ */ j(Y, {
2851
2950
  className: "la-clickable-row",
2852
2951
  onClick: () => n(e.actorName),
2853
2952
  children: [
2854
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j(B, {
2953
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A(V, {
2855
2954
  variant: "ghost",
2856
2955
  type: "button",
2857
2956
  className: "overview-class-link",
2858
2957
  "aria-label": `Inspect ${e.actorName}`,
2859
- children: /* @__PURE__ */ j("span", {
2958
+ children: /* @__PURE__ */ A("span", {
2860
2959
  title: e.actorName,
2861
2960
  children: e.actorName
2862
2961
  })
2863
2962
  }) }),
2864
- /* @__PURE__ */ j(X, { children: Z(e.live + e.dormant + e.unknown) }),
2865
- /* @__PURE__ */ j(X, { children: Z(t?.count) }),
2866
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j(an, {
2963
+ /* @__PURE__ */ A(Z, { children: Q(e.live + e.dormant + e.unknown) }),
2964
+ /* @__PURE__ */ A(Z, { children: Q(t?.count) }),
2965
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A(pn, {
2867
2966
  value: t?.success,
2868
2967
  kind: "success"
2869
2968
  }) }),
2870
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j(an, {
2969
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A(pn, {
2871
2970
  value: t?.p95,
2872
2971
  kind: "latency"
2873
2972
  }) }),
2874
- /* @__PURE__ */ j(X, { children: ln(t?.queueP95) }),
2875
- /* @__PURE__ */ j(X, { children: Z(e.instances.reduce((e, t) => e + t.connections.length, 0)) })
2973
+ /* @__PURE__ */ A(Z, { children: _n(t?.queueP95) }),
2974
+ /* @__PURE__ */ A(Z, { children: Q(e.instances.reduce((e, t) => e + t.connections.length, 0)) })
2876
2975
  ]
2877
2976
  });
2878
2977
  }
2879
- function an({ value: e, kind: t }) {
2880
- if (e == null) return /* @__PURE__ */ j("span", {
2978
+ function pn({ value: e, kind: t }) {
2979
+ if (e == null) return /* @__PURE__ */ A("span", {
2881
2980
  title: "No retained execution attempts",
2882
2981
  children: "—"
2883
2982
  });
2884
2983
  let n = t === "success" ? e < 95 ? "bad" : e < 99 ? "warn" : "good" : e > 100 ? "bad" : "good";
2885
- return /* @__PURE__ */ M("span", {
2984
+ return /* @__PURE__ */ j("span", {
2886
2985
  className: `overview-signal signal-${n}`,
2887
2986
  title: n === "bad" ? "Critical threshold breached" : n === "warn" ? "Warning threshold breached" : "Within threshold",
2888
- children: [n !== "good" && /* @__PURE__ */ j("span", {
2987
+ children: [n !== "good" && /* @__PURE__ */ A("span", {
2889
2988
  "aria-hidden": "true",
2890
2989
  children: n === "warn" ? "!" : "×"
2891
- }), t === "success" ? `${e.toLocaleString(void 0, { maximumFractionDigits: 2 })}%` : ln(e)]
2990
+ }), t === "success" ? `${e.toLocaleString(void 0, { maximumFractionDigits: 2 })}%` : _n(e)]
2892
2991
  });
2893
2992
  }
2894
- function on() {
2895
- return /* @__PURE__ */ M("details", {
2993
+ function mn() {
2994
+ return /* @__PURE__ */ j("details", {
2896
2995
  className: "overview-thresholds",
2897
- children: [/* @__PURE__ */ M("summary", { children: [/* @__PURE__ */ M("span", {
2996
+ children: [/* @__PURE__ */ j("summary", { children: [/* @__PURE__ */ j("span", {
2898
2997
  className: "threshold-dots",
2899
2998
  "aria-hidden": "true",
2900
2999
  children: [
2901
- /* @__PURE__ */ j("i", {}),
2902
- /* @__PURE__ */ j("i", {}),
2903
- /* @__PURE__ */ j("i", {})
3000
+ /* @__PURE__ */ A("i", {}),
3001
+ /* @__PURE__ */ A("i", {}),
3002
+ /* @__PURE__ */ A("i", {})
2904
3003
  ]
2905
- }), "Thresholds"] }), /* @__PURE__ */ M("div", { children: [
2906
- /* @__PURE__ */ j("strong", { children: "Display thresholds" }),
2907
- /* @__PURE__ */ j("p", { children: "Success: warning below 99%; critical below 95%." }),
2908
- /* @__PURE__ */ j("p", { children: "Latency: critical when p95 exceeds 100 ms." }),
2909
- /* @__PURE__ */ j("p", { children: "Reroutes are excluded from success and latency. Queue wait has no health threshold." })
3004
+ }), "Thresholds"] }), /* @__PURE__ */ j("div", { children: [
3005
+ /* @__PURE__ */ A("strong", { children: "Display thresholds" }),
3006
+ /* @__PURE__ */ A("p", { children: "Success: warning below 99%; critical below 95%." }),
3007
+ /* @__PURE__ */ A("p", { children: "Latency: critical when p95 exceeds 100 ms." }),
3008
+ /* @__PURE__ */ A("p", { children: "Reroutes are excluded from success and latency. Queue wait has no health threshold." })
2910
3009
  ] })]
2911
3010
  });
2912
3011
  }
2913
- function sn({ page: e, range: t, saved: n }) {
2914
- return /* @__PURE__ */ M("div", {
3012
+ function hn({ page: e, range: t, saved: n }) {
3013
+ return /* @__PURE__ */ j("div", {
2915
3014
  className: "overview-data-scope",
2916
3015
  children: [
2917
- /* @__PURE__ */ j("p", { children: n ? `Request metrics cover every retained request ${H(t)}${t.kind === "relative" ? " (refreshed every 10 seconds)" : ""}. Inventory counts are current snapshots.` : `Request metrics cover the latest ${e?.capacity ?? 500} retained traces within the selected window. Inventory counts are current snapshots.` }),
2918
- !!e?.dropped && /* @__PURE__ */ M("p", {
3016
+ /* @__PURE__ */ A("p", { children: n ? `Request metrics cover every retained request ${U(t)}${t.kind === "relative" ? " (refreshed every 10 seconds)" : ""}. Inventory counts are current snapshots.` : `Request metrics cover the latest ${e?.capacity ?? 500} retained traces within the selected window. Inventory counts are current snapshots.` }),
3017
+ !!e?.dropped && /* @__PURE__ */ j("p", {
2919
3018
  role: "alert",
2920
- children: [Z(e.dropped), " traces were not delivered. Request metrics are incomplete."]
3019
+ children: [Q(e.dropped), " traces were not delivered. Request metrics are incomplete."]
2921
3020
  }),
2922
- e?.persistenceFailed && /* @__PURE__ */ j("p", {
3021
+ e?.persistenceFailed && /* @__PURE__ */ A("p", {
2923
3022
  role: "alert",
2924
3023
  children: "Some request events could not be saved. This history may be incomplete."
2925
3024
  }),
2926
- !!e?.evicted && /* @__PURE__ */ j("p", { children: "Earlier traces have expired; these metrics do not represent the full time window." })
3025
+ !!e?.evicted && /* @__PURE__ */ A("p", { children: "Earlier traces have expired; these metrics do not represent the full time window." })
2927
3026
  ]
2928
3027
  });
2929
3028
  }
2930
- function cn(e) {
3029
+ function gn(e) {
2931
3030
  return {
2932
3031
  actorName: e,
2933
3032
  count: 0,
@@ -2936,26 +3035,26 @@ function cn(e) {
2936
3035
  queueP95: null
2937
3036
  };
2938
3037
  }
2939
- function Z(e) {
3038
+ function Q(e) {
2940
3039
  return e === void 0 ? "—" : e.toLocaleString();
2941
3040
  }
2942
- function ln(e) {
3041
+ function _n(e) {
2943
3042
  return e == null ? "—" : `${e.toLocaleString(void 0, { maximumFractionDigits: 1 })} ms`;
2944
3043
  }
2945
3044
  //#endregion
2946
3045
  //#region src/socket-sessions.ts
2947
- function un(e) {
2948
- if (!Array.isArray(e) || !e.every((e) => !!e && typeof e == "object" && vn(e))) throw Error("Invalid WebSocket session response");
3046
+ function vn(e) {
3047
+ if (!Array.isArray(e) || !e.every((e) => !!e && typeof e == "object" && En(e))) throw Error("Invalid WebSocket session response");
2949
3048
  return e;
2950
3049
  }
2951
- function dn(e, t, n) {
3050
+ function yn(e, t, n) {
2952
3051
  return JSON.stringify([
2953
3052
  e,
2954
3053
  t,
2955
3054
  n
2956
3055
  ]);
2957
3056
  }
2958
- function fn(e, t, n = /* @__PURE__ */ new Map()) {
3057
+ function bn(e, t, n = /* @__PURE__ */ new Map()) {
2959
3058
  let r = /* @__PURE__ */ new Map();
2960
3059
  for (let e of t?.actors ?? []) for (let t of e.instances) for (let n of t.connections) r.set(JSON.stringify([
2961
3060
  e.actorName,
@@ -2982,7 +3081,7 @@ function fn(e, t, n = /* @__PURE__ */ new Map()) {
2982
3081
  e.connectionId
2983
3082
  ])));
2984
3083
  for (let e of t?.actors ?? []) for (let t of e.instances) for (let r of t.connections) {
2985
- let o = dn(e.actorName, t.actorId, r.id);
3084
+ let o = yn(e.actorName, t.actorId, r.id);
2986
3085
  if (a.has(o)) continue;
2987
3086
  let s = n.get(o);
2988
3087
  i.unshift({
@@ -3002,7 +3101,7 @@ function fn(e, t, n = /* @__PURE__ */ new Map()) {
3002
3101
  }
3003
3102
  return i;
3004
3103
  }
3005
- function pn(e, t) {
3104
+ function xn(e, t) {
3006
3105
  if (e.openedAtMs === null) return null;
3007
3106
  let n = e.status === "closed" ? e.closedAtMs : e.status === "open" ? Math.max(t, e.openedAtMs) : e.lastSeenMs;
3008
3107
  return {
@@ -3010,19 +3109,19 @@ function pn(e, t) {
3010
3109
  lowerBound: e.status === "lost"
3011
3110
  };
3012
3111
  }
3013
- function mn(e, t) {
3014
- let n = e.map((e) => pn(e, t)).filter((e) => e !== null && !e.lowerBound), r = e.reduce((e, t) => e + t.messages, 0);
3112
+ function Sn(e, t) {
3113
+ let n = e.map((e) => xn(e, t)).filter((e) => e !== null && !e.lowerBound), r = e.reduce((e, t) => e + t.messages, 0);
3015
3114
  return {
3016
3115
  total: e.length,
3017
3116
  open: e.filter((e) => e.status === "open").length,
3018
3117
  lost: e.filter((e) => e.status === "lost").length,
3019
- median: _n(n.map((e) => e.ms), .5),
3020
- p95: _n(n.map((e) => e.ms), .95),
3118
+ median: Tn(n.map((e) => e.ms), .5),
3119
+ p95: Tn(n.map((e) => e.ms), .95),
3021
3120
  messages: r,
3022
3121
  messagesPerSession: e.length ? r / e.length : null
3023
3122
  };
3024
3123
  }
3025
- function hn(e) {
3124
+ function Cn(e) {
3026
3125
  if (e < 1e3) return `${e.toLocaleString(void 0, { maximumFractionDigits: 0 })} ms`;
3027
3126
  if (e < 6e4) return `${(e / 1e3).toLocaleString(void 0, { maximumFractionDigits: 1 })} s`;
3028
3127
  let t = Math.floor(e / 6e4);
@@ -3030,7 +3129,7 @@ function hn(e) {
3030
3129
  let n = Math.floor(t / 60);
3031
3130
  return n < 24 ? `${n}h ${t % 60}m` : `${Math.floor(n / 24)}d ${n % 24}h`;
3032
3131
  }
3033
- function gn(e, t = 3) {
3132
+ function wn(e, t = 3) {
3034
3133
  if (e == null) return null;
3035
3134
  if (typeof e != "object") return String(e);
3036
3135
  let n = Array.isArray(e) ? e.map((e, t) => [String(t), e]) : Object.entries(e);
@@ -3038,10 +3137,10 @@ function gn(e, t = 3) {
3038
3137
  let r = n.slice(0, t).map(([e, t]) => `${e}: ${typeof t == "string" ? t : JSON.stringify(t)}`);
3039
3138
  return n.length > t ? `${r.join(" · ")} · +${n.length - t}` : r.join(" · ");
3040
3139
  }
3041
- function _n(e, t) {
3140
+ function Tn(e, t) {
3042
3141
  return e.length ? e.sort((e, t) => e - t)[Math.max(0, Math.ceil(e.length * t) - 1)] : null;
3043
3142
  }
3044
- function vn(e) {
3143
+ function En(e) {
3045
3144
  return typeof e.connectionId == "string" && typeof e.actorName == "string" && typeof e.actorId == "string" && (e.hostId === null || typeof e.hostId == "string") && [
3046
3145
  e.openedAtMs,
3047
3146
  e.closedAtMs,
@@ -3050,30 +3149,30 @@ function vn(e) {
3050
3149
  }
3051
3150
  //#endregion
3052
3151
  //#region src/SocketTimeline.tsx
3053
- var yn = 18, bn = 8, xn = 40, Q = 6e4, Sn = 60 * Q, Cn = 24 * Sn, wn = [
3152
+ var Dn = 18, On = 8, kn = 40, $ = 6e4, An = 60 * $, jn = 24 * An, Mn = [
3054
3153
  1e3,
3055
3154
  2e3,
3056
3155
  5e3,
3057
3156
  1e4,
3058
3157
  15e3,
3059
3158
  3e4,
3060
- Q,
3061
- 2 * Q,
3062
- 5 * Q,
3063
- 10 * Q,
3064
- 15 * Q,
3065
- 30 * Q,
3066
- Sn,
3067
- 2 * Sn,
3068
- 3 * Sn,
3069
- 6 * Sn,
3070
- 12 * Sn,
3071
- Cn,
3072
- 2 * Cn,
3073
- 7 * Cn
3159
+ $,
3160
+ 2 * $,
3161
+ 5 * $,
3162
+ 10 * $,
3163
+ 15 * $,
3164
+ 30 * $,
3165
+ An,
3166
+ 2 * An,
3167
+ 3 * An,
3168
+ 6 * An,
3169
+ 12 * An,
3170
+ jn,
3171
+ 2 * jn,
3172
+ 7 * jn
3074
3173
  ];
3075
- function Tn({ sessions: e, start: t, end: n, endLabel: r = "now", selected: i, onSelect: o }) {
3076
- let [s, c] = a(), l = On(e, t, n), u = l.slice(0, xn), d = Math.max(1, n - t), f = Mn(t, n), p = Nn(d), m = (e) => `${(Math.min(Math.max(e, t), n) - t) / d * 100}%`, h = (e, t) => {
3174
+ function Nn({ sessions: e, start: t, end: n, endLabel: r = "now", selected: i, onSelect: o }) {
3175
+ let [s, c] = a(), l = In(e, t, n), u = l.slice(0, kn), d = Math.max(1, n - t), f = Bn(t, n), p = Vn(d), m = (e) => `${(Math.min(Math.max(e, t), n) - t) / d * 100}%`, h = (e, t) => {
3077
3176
  let n = t.getBoundingClientRect(), r = t.closest(".socket-timeline").getBoundingClientRect(), i = n.top - r.top < 150;
3078
3177
  c({
3079
3178
  session: e,
@@ -3082,50 +3181,50 @@ function Tn({ sessions: e, start: t, end: n, endLabel: r = "now", selected: i, o
3082
3181
  below: i
3083
3182
  });
3084
3183
  };
3085
- return /* @__PURE__ */ M("div", {
3184
+ return /* @__PURE__ */ j("div", {
3086
3185
  className: "socket-timeline",
3087
3186
  role: "group",
3088
3187
  "aria-label": "Connection timeline",
3089
3188
  onMouseLeave: () => c(void 0),
3090
3189
  children: [
3091
- /* @__PURE__ */ M("div", {
3190
+ /* @__PURE__ */ j("div", {
3092
3191
  className: "socket-timeline-axis",
3093
3192
  "aria-hidden": "true",
3094
- children: [/* @__PURE__ */ j("span", {}), /* @__PURE__ */ M("div", { children: [f.map((e) => /* @__PURE__ */ j("span", {
3193
+ children: [/* @__PURE__ */ A("span", {}), /* @__PURE__ */ j("div", { children: [f.map((e) => /* @__PURE__ */ A("span", {
3095
3194
  style: { left: m(e) },
3096
- children: Pn(e, p)
3097
- }, e)), /* @__PURE__ */ j("span", {
3195
+ children: Hn(e, p)
3196
+ }, e)), /* @__PURE__ */ A("span", {
3098
3197
  className: "socket-timeline-now",
3099
3198
  children: r
3100
3199
  })] })]
3101
3200
  }),
3102
- /* @__PURE__ */ M("div", {
3201
+ /* @__PURE__ */ j("div", {
3103
3202
  className: "socket-timeline-body",
3104
3203
  children: [
3105
- /* @__PURE__ */ j("div", {
3204
+ /* @__PURE__ */ A("div", {
3106
3205
  className: "socket-timeline-grid",
3107
3206
  "aria-hidden": "true",
3108
- children: f.map((e) => /* @__PURE__ */ j("i", { style: { left: m(e) } }, e))
3207
+ children: f.map((e) => /* @__PURE__ */ A("i", { style: { left: m(e) } }, e))
3109
3208
  }),
3110
- u.map((e) => /* @__PURE__ */ M("div", {
3209
+ u.map((e) => /* @__PURE__ */ j("div", {
3111
3210
  className: "socket-timeline-row",
3112
- children: [/* @__PURE__ */ M("div", {
3211
+ children: [/* @__PURE__ */ j("div", {
3113
3212
  className: "socket-timeline-label",
3114
3213
  title: `${e.actorName} / ${e.actorId}`,
3115
- children: [/* @__PURE__ */ j("span", { children: e.actorName }), /* @__PURE__ */ j("strong", { children: e.actorId })]
3116
- }), /* @__PURE__ */ j("div", {
3214
+ children: [/* @__PURE__ */ A("span", { children: e.actorName }), /* @__PURE__ */ A("strong", { children: e.actorId })]
3215
+ }), /* @__PURE__ */ A("div", {
3117
3216
  className: "socket-timeline-lanes",
3118
- style: { height: e.rows.length * yn + 16 },
3119
- children: e.rows.flatMap((e, t) => e.map((e) => /* @__PURE__ */ j("button", {
3217
+ style: { height: e.rows.length * Dn + 16 },
3218
+ children: e.rows.flatMap((e, t) => e.map((e) => /* @__PURE__ */ A("button", {
3120
3219
  type: "button",
3121
3220
  className: `socket-bar socket-bar-${e.session.status}${e.openEnded ? " socket-bar-open-ended" : ""}${e.unknownStart ? " socket-bar-unknown-start" : ""}`,
3122
3221
  "data-state": i === e.session ? "selected" : void 0,
3123
3222
  style: {
3124
3223
  left: m(e.from),
3125
3224
  width: `${(e.to - e.from) / d * 100}%`,
3126
- top: bn + t * yn
3225
+ top: On + t * Dn
3127
3226
  },
3128
- "aria-label": Rn(e.session, n),
3227
+ "aria-label": Kn(e.session, n),
3129
3228
  onClick: (t) => o(e.session, t.currentTarget),
3130
3229
  onMouseEnter: (t) => h(e.session, t.currentTarget),
3131
3230
  onFocus: (t) => h(e.session, t.currentTarget),
@@ -3133,62 +3232,62 @@ function Tn({ sessions: e, start: t, end: n, endLabel: r = "now", selected: i, o
3133
3232
  }, e.session.connectionId)))
3134
3233
  })]
3135
3234
  }, e.key)),
3136
- l.length > xn && /* @__PURE__ */ M("p", {
3235
+ l.length > kn && /* @__PURE__ */ j("p", {
3137
3236
  className: "socket-timeline-more",
3138
3237
  children: [
3139
- (l.length - xn).toLocaleString(),
3238
+ (l.length - kn).toLocaleString(),
3140
3239
  " more ",
3141
- l.length - xn === 1 ? "instance is" : "instances are",
3240
+ l.length - kn === 1 ? "instance is" : "instances are",
3142
3241
  " listed in the table below."
3143
3242
  ]
3144
3243
  })
3145
3244
  ]
3146
3245
  }),
3147
- s && /* @__PURE__ */ M("div", {
3246
+ s && /* @__PURE__ */ j("div", {
3148
3247
  role: "tooltip",
3149
3248
  className: `socket-tooltip${s.below ? " socket-tooltip-below" : ""}`,
3150
3249
  style: {
3151
3250
  left: s.left,
3152
3251
  top: s.top
3153
3252
  },
3154
- children: [/* @__PURE__ */ j(Dn, { metadata: s.session.metadata }), /* @__PURE__ */ M("dl", { children: [
3155
- /* @__PURE__ */ j("dt", { children: "Connection" }),
3156
- /* @__PURE__ */ j("dd", { children: Ln(s.session.connectionId) }),
3157
- /* @__PURE__ */ j("dt", { children: "Instance" }),
3158
- /* @__PURE__ */ M("dd", { children: [
3253
+ children: [/* @__PURE__ */ A(Fn, { metadata: s.session.metadata }), /* @__PURE__ */ j("dl", { children: [
3254
+ /* @__PURE__ */ A("dt", { children: "Connection" }),
3255
+ /* @__PURE__ */ A("dd", { children: Gn(s.session.connectionId) }),
3256
+ /* @__PURE__ */ A("dt", { children: "Instance" }),
3257
+ /* @__PURE__ */ j("dd", { children: [
3159
3258
  s.session.actorName,
3160
3259
  " / ",
3161
3260
  s.session.actorId
3162
3261
  ] }),
3163
- /* @__PURE__ */ j("dt", { children: "Status" }),
3164
- /* @__PURE__ */ j("dd", { children: Fn(s.session.status) }),
3165
- /* @__PURE__ */ j("dt", { children: "Opened" }),
3166
- /* @__PURE__ */ j("dd", { children: s.session.openedAtMs === null ? "Before retained history" : `${s.session.estimatedStart ? "≈ " : ""}${new Date(s.session.openedAtMs).toLocaleTimeString([], { hour12: !1 })}` }),
3167
- /* @__PURE__ */ j("dt", { children: "Duration" }),
3168
- /* @__PURE__ */ j("dd", { children: In(s.session, n) }),
3169
- /* @__PURE__ */ j("dt", { children: "Messages" }),
3170
- /* @__PURE__ */ j("dd", { children: s.session.messages.toLocaleString() })
3262
+ /* @__PURE__ */ A("dt", { children: "Status" }),
3263
+ /* @__PURE__ */ A("dd", { children: Un(s.session.status) }),
3264
+ /* @__PURE__ */ A("dt", { children: "Opened" }),
3265
+ /* @__PURE__ */ A("dd", { children: s.session.openedAtMs === null ? "Before retained history" : `${s.session.estimatedStart ? "≈ " : ""}${new Date(s.session.openedAtMs).toLocaleTimeString([], { hour12: !1 })}` }),
3266
+ /* @__PURE__ */ A("dt", { children: "Duration" }),
3267
+ /* @__PURE__ */ A("dd", { children: Wn(s.session, n) }),
3268
+ /* @__PURE__ */ A("dt", { children: "Messages" }),
3269
+ /* @__PURE__ */ A("dd", { children: s.session.messages.toLocaleString() })
3171
3270
  ] })]
3172
3271
  })
3173
3272
  ]
3174
3273
  });
3175
3274
  }
3176
- var En = 4;
3177
- function Dn({ metadata: e }) {
3275
+ var Pn = 4;
3276
+ function Fn({ metadata: e }) {
3178
3277
  if (e == null) return null;
3179
3278
  let t = typeof e == "object" ? Array.isArray(e) ? e.map((e, t) => [String(t), e]) : Object.entries(e) : [["value", e]];
3180
- return t.length ? /* @__PURE__ */ M("dl", {
3279
+ return t.length ? /* @__PURE__ */ j("dl", {
3181
3280
  className: "socket-tooltip-metadata",
3182
3281
  "aria-label": "Connection metadata",
3183
- children: [t.slice(0, En).map(([e, t]) => /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("dt", { children: e }), /* @__PURE__ */ j("dd", { children: typeof t == "string" ? t : JSON.stringify(t) })] }, e)), t.length > En && /* @__PURE__ */ M("p", { children: [
3282
+ children: [t.slice(0, Pn).map(([e, t]) => /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", { children: e }), /* @__PURE__ */ A("dd", { children: typeof t == "string" ? t : JSON.stringify(t) })] }, e)), t.length > Pn && /* @__PURE__ */ j("p", { children: [
3184
3283
  "+",
3185
- t.length - En,
3284
+ t.length - Pn,
3186
3285
  " more in details"
3187
3286
  ] })]
3188
3287
  }) : null;
3189
3288
  }
3190
- function On(e, t, n) {
3191
- let r = /* @__PURE__ */ new Map(), i = e.map((e) => kn(e, t, n)).filter((e) => e.to > t).sort((e, t) => e.from - t.from || e.to - t.to);
3289
+ function In(e, t, n) {
3290
+ let r = /* @__PURE__ */ new Map(), i = e.map((e) => Ln(e, t, n)).filter((e) => e.to > t).sort((e, t) => e.from - t.from || e.to - t.to);
3192
3291
  for (let e of i) {
3193
3292
  let i = `${e.session.actorName}${e.session.actorId}`, a = r.get(i) ?? {
3194
3293
  key: i,
@@ -3197,64 +3296,87 @@ function On(e, t, n) {
3197
3296
  rows: []
3198
3297
  };
3199
3298
  r.set(i, a);
3200
- let o = a.rows.find((r) => r.at(-1).to + An(t, n) <= e.from);
3299
+ let o = a.rows.find((r) => r.at(-1).to + Rn(t, n) <= e.from);
3201
3300
  o ? o.push(e) : a.rows.push([e]);
3202
3301
  }
3203
- return [...r.values()].sort((e, t) => jn(t) - jn(e));
3302
+ return [...r.values()].sort((e, t) => zn(t) - zn(e));
3204
3303
  }
3205
- function kn(e, t, n) {
3304
+ function Ln(e, t, n) {
3206
3305
  let r = e.openedAtMs ?? (e.status === "open" ? t : e.lastSeenMs ?? t), i = e.status === "closed" ? e.closedAtMs : e.status === "open" ? n : e.lastSeenMs ?? r;
3207
3306
  return {
3208
3307
  session: e,
3209
3308
  from: Math.max(t, r),
3210
- to: Math.max(Math.max(t, r) + An(t, n), Math.min(n, i)),
3309
+ to: Math.max(Math.max(t, r) + Rn(t, n), Math.min(n, i)),
3211
3310
  openEnded: e.status !== "closed",
3212
3311
  unknownStart: e.openedAtMs === null
3213
3312
  };
3214
3313
  }
3215
- function An(e, t) {
3314
+ function Rn(e, t) {
3216
3315
  return Math.max(1, (t - e) / 160);
3217
3316
  }
3218
- function jn(e) {
3317
+ function zn(e) {
3219
3318
  return Math.max(...e.rows.flat().map((e) => e.to));
3220
3319
  }
3221
- function Mn(e, t) {
3222
- let n = Nn(Math.max(1, t - e)), r = [];
3320
+ function Bn(e, t) {
3321
+ let n = Vn(Math.max(1, t - e)), r = [];
3223
3322
  for (let i = Math.floor(e / n) * n + n; i < t - n * .35; i += n) r.push(i);
3224
3323
  return r;
3225
3324
  }
3226
- function Nn(e) {
3227
- return wn.find((t) => e / t <= 9) ?? wn.at(-1);
3325
+ function Vn(e) {
3326
+ return Mn.find((t) => e / t <= 9) ?? Mn.at(-1);
3228
3327
  }
3229
- function Pn(e, t) {
3328
+ function Hn(e, t) {
3230
3329
  let n = new Date(e);
3231
- return t >= Cn ? n.toLocaleDateString([], {
3330
+ return t >= jn ? n.toLocaleDateString([], {
3232
3331
  month: "short",
3233
3332
  day: "numeric"
3234
- }) : t >= Q ? n.toLocaleTimeString([], {
3333
+ }) : t >= $ ? n.toLocaleTimeString([], {
3235
3334
  hour: "2-digit",
3236
3335
  minute: "2-digit",
3237
3336
  hour12: !1
3238
3337
  }) : n.toLocaleTimeString([], { hour12: !1 });
3239
3338
  }
3240
- function Fn(e) {
3339
+ function Un(e) {
3241
3340
  return e === "open" ? "Open" : e === "closed" ? "Closed" : "Lost";
3242
3341
  }
3243
- function In(e, t) {
3244
- let n = pn(e, t);
3245
- return n ? `${n.lowerBound ? "≥ " : ""}${hn(n.ms)}` : "Unknown";
3342
+ function Wn(e, t) {
3343
+ let n = xn(e, t);
3344
+ return n ? `${n.lowerBound ? "≥ " : ""}${Cn(n.ms)}` : "Unknown";
3246
3345
  }
3247
- function Ln(e) {
3346
+ function Gn(e) {
3248
3347
  return e.length > 14 ? `${e.slice(0, 8)}…${e.slice(-4)}` : e;
3249
3348
  }
3250
- function Rn(e, t) {
3251
- let n = gn(e.metadata);
3252
- return `${Fn(e.status)} connection ${Ln(e.connectionId)}${n === null ? "" : ` (${n})`} on ${e.actorName} ${e.actorId}, ${In(e, t)}`;
3349
+ function Kn(e, t) {
3350
+ let n = wn(e.metadata);
3351
+ return `${Un(e.status)} connection ${Gn(e.connectionId)}${n === null ? "" : ` (${n})`} on ${e.actorName} ${e.actorId}, ${Wn(e, t)}`;
3352
+ }
3353
+ //#endregion
3354
+ //#region src/components/ui/sheet.tsx
3355
+ var qn = R.Root, Jn = R.Title, Yn = R.Description;
3356
+ function Xn({ className: e, children: t, container: n, ...r }) {
3357
+ return /* @__PURE__ */ j(R.Portal, {
3358
+ container: n,
3359
+ children: [/* @__PURE__ */ A(R.Overlay, { className: "la-sheet-overlay" }), /* @__PURE__ */ j(R.Content, {
3360
+ "data-slot": "sheet-content",
3361
+ className: z("la-observer la-sheet", e),
3362
+ ...r,
3363
+ children: [t, /* @__PURE__ */ A(R.Close, {
3364
+ asChild: !0,
3365
+ children: /* @__PURE__ */ A(V, {
3366
+ className: "la-sheet-close",
3367
+ variant: "ghost",
3368
+ size: "icon",
3369
+ "aria-label": "Close",
3370
+ children: /* @__PURE__ */ A(T, { "aria-hidden": "true" })
3371
+ })
3372
+ })]
3373
+ })]
3374
+ });
3253
3375
  }
3254
3376
  //#endregion
3255
3377
  //#region src/socket-history.ts
3256
- function zn(e, t) {
3257
- let n = it(e, t, e.listWebSockets, 5e3);
3378
+ function Zn(e, t) {
3379
+ let n = ft(e, t, e.listWebSockets, 5e3);
3258
3380
  return {
3259
3381
  ...n,
3260
3382
  rows: n.value,
@@ -3263,52 +3385,52 @@ function zn(e, t) {
3263
3385
  }
3264
3386
  //#endregion
3265
3387
  //#region src/WebSocketObserver.tsx
3266
- function Bn({ client: e, onSelectActor: n, timeRange: o, onTimeRangeChange: s }) {
3267
- let { inventory: c, failed: l, retry: u } = tt(e), [d, f] = a(Fe), p = o ?? d, m = s ?? f, [h, g] = a(Date.now), [_, v] = a(""), [y, ee] = a("all"), [b, x] = a(), S = i(null), C = i(null);
3388
+ function Qn({ client: e, onSelectActor: n, timeRange: o, onTimeRangeChange: s }) {
3389
+ let { inventory: c, failed: l, retry: u } = lt(e), [d, f] = a(Le), p = o ?? d, m = s ?? f, [h, g] = a(Date.now), [_, v] = a(""), [y, ee] = a("all"), [b, te] = a(), x = i(null), S = i(null);
3268
3390
  t(() => {
3269
3391
  let e = setInterval(() => g(Date.now()), 5e3);
3270
3392
  return () => clearInterval(e);
3271
3393
  }, []);
3272
- let w = Ie(p, h), T = w.toMs ?? h, E = zn(e, w), D = Gn(c, E.retry), O = r(() => fn(E.rows ?? [], c, D), [
3273
- E.rows,
3394
+ let C = Re(p, h), w = C.toMs ?? h, T = Zn(e, C), E = rr(c, T.retry), D = r(() => bn(T.rows ?? [], c, E), [
3395
+ T.rows,
3274
3396
  c,
3275
- D
3276
- ]), k = !!c || l, N = _.trim().toLocaleLowerCase(), P = O.filter((e) => (y === "all" || e.status === y) && (!N || `${e.connectionId} ${e.actorName} ${e.actorId} ${e.hostId ?? ""}`.toLocaleLowerCase().includes(N))).sort((e, t) => Number(t.status === "open") - Number(e.status === "open") || (t.openedAtMs ?? t.lastSeenMs ?? Infinity) - (e.openedAtMs ?? e.lastSeenMs ?? Infinity)), F = mn(O, h), I = Math.max(0, ...O.filter((e) => e.status !== "open").map((e) => pn(e, h)?.ms ?? 0)) || F.p95, ne = Wn(P, w.fromMs, T), L = r(() => Kn(O, c), [O, c]);
3277
- return t(() => x(void 0), [e, p]), /* @__PURE__ */ M("section", {
3278
- ref: S,
3397
+ E
3398
+ ]), O = !!c || l, M = _.trim().toLocaleLowerCase(), N = D.filter((e) => (y === "all" || e.status === y) && (!M || `${e.connectionId} ${e.actorName} ${e.actorId} ${e.hostId ?? ""}`.toLocaleLowerCase().includes(M))).sort((e, t) => Number(t.status === "open") - Number(e.status === "open") || (t.openedAtMs ?? t.lastSeenMs ?? Infinity) - (e.openedAtMs ?? e.lastSeenMs ?? Infinity)), P = Sn(D, h), F = Math.max(0, ...D.filter((e) => e.status !== "open").map((e) => xn(e, h)?.ms ?? 0)) || P.p95, I = nr(N, C.fromMs, w), L = r(() => ir(D, c), [D, c]);
3399
+ return t(() => te(void 0), [e, p]), /* @__PURE__ */ j("section", {
3400
+ ref: x,
3279
3401
  className: "la-observer overview websockets",
3280
3402
  "aria-label": "WebSocket observer",
3281
3403
  children: [
3282
- /* @__PURE__ */ M("div", {
3404
+ /* @__PURE__ */ j("div", {
3283
3405
  className: "overview-heading",
3284
- children: [/* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("h1", { children: "WebSockets" }), /* @__PURE__ */ j("p", { children: k ? `${F.open.toLocaleString()} open now${E.supported ? ` · ${F.total.toLocaleString()} ${F.total === 1 ? "session" : "sessions"} ${H(p)}` : ""}` : "Connecting to inventory…" })] }), /* @__PURE__ */ M("div", {
3406
+ children: [/* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("h1", { children: "WebSockets" }), /* @__PURE__ */ A("p", { children: O ? `${P.open.toLocaleString()} open now${T.supported ? ` · ${P.total.toLocaleString()} ${P.total === 1 ? "session" : "sessions"} ${U(p)}` : ""}` : "Connecting to inventory…" })] }), /* @__PURE__ */ j("div", {
3285
3407
  className: "overview-controls",
3286
3408
  children: [
3287
- /* @__PURE__ */ j("span", {
3409
+ /* @__PURE__ */ A("span", {
3288
3410
  className: "overview-updated",
3289
- children: E.failed ? "History reconnecting…" : E.updatedAt ? /* @__PURE__ */ M(A, { children: ["Updated ", /* @__PURE__ */ j("time", {
3290
- dateTime: new Date(E.updatedAt).toISOString(),
3291
- children: new Date(E.updatedAt).toLocaleTimeString([], { hour12: !1 })
3411
+ children: T.failed ? "History reconnecting…" : T.updatedAt ? /* @__PURE__ */ j(k, { children: ["Updated ", /* @__PURE__ */ A("time", {
3412
+ dateTime: new Date(T.updatedAt).toISOString(),
3413
+ children: new Date(T.updatedAt).toLocaleTimeString([], { hour12: !1 })
3292
3414
  })] }) : null
3293
3415
  }),
3294
- E.supported && /* @__PURE__ */ j(Be, {
3416
+ T.supported && /* @__PURE__ */ A(He, {
3295
3417
  value: p,
3296
3418
  onChange: m,
3297
3419
  className: "overview-range"
3298
3420
  }),
3299
- /* @__PURE__ */ j(B, {
3421
+ /* @__PURE__ */ A(V, {
3300
3422
  variant: "outline",
3301
3423
  size: "icon",
3302
3424
  "aria-label": "Refresh connections",
3303
3425
  onClick: () => {
3304
- u(), E.retry();
3426
+ u(), T.retry();
3305
3427
  },
3306
- children: /* @__PURE__ */ j(te, { "aria-hidden": "true" })
3428
+ children: /* @__PURE__ */ A(ne, { "aria-hidden": "true" })
3307
3429
  })
3308
3430
  ]
3309
3431
  })]
3310
3432
  }),
3311
- l && /* @__PURE__ */ M("p", {
3433
+ l && /* @__PURE__ */ j("p", {
3312
3434
  role: "alert",
3313
3435
  className: "overview-alert",
3314
3436
  children: [
@@ -3318,90 +3440,90 @@ function Bn({ client: e, onSelectActor: n, timeRange: o, onTimeRangeChange: s })
3318
3440
  " Retrying automatically."
3319
3441
  ]
3320
3442
  }),
3321
- E.failed && /* @__PURE__ */ M("p", {
3443
+ T.failed && /* @__PURE__ */ j("p", {
3322
3444
  role: "alert",
3323
3445
  className: "overview-alert",
3324
3446
  children: [
3325
3447
  "Connection history unavailable. ",
3326
- E.rows ? "Showing the last loaded sessions." : "Only currently open connections are shown.",
3448
+ T.rows ? "Showing the last loaded sessions." : "Only currently open connections are shown.",
3327
3449
  " Retrying automatically."
3328
3450
  ]
3329
3451
  }),
3330
- /* @__PURE__ */ j(Vn, {
3331
- summary: F,
3332
- ready: k,
3333
- history: E.supported && !!E.rows,
3452
+ /* @__PURE__ */ A($n, {
3453
+ summary: P,
3454
+ ready: O,
3455
+ history: T.supported && !!T.rows,
3334
3456
  range: p
3335
3457
  }),
3336
- /* @__PURE__ */ M("div", {
3458
+ /* @__PURE__ */ j("div", {
3337
3459
  className: "socket-filterbar",
3338
- children: [/* @__PURE__ */ j(ge, {
3460
+ children: [/* @__PURE__ */ A(ge, {
3339
3461
  label: "Filter connections",
3340
3462
  placeholder: "Filter by connection, actor, instance, or host…",
3341
3463
  value: _,
3342
3464
  onChange: v,
3343
3465
  suggestions: L
3344
- }), /* @__PURE__ */ M(Je, {
3466
+ }), /* @__PURE__ */ j(ot, {
3345
3467
  "aria-label": "Filter by status",
3346
3468
  size: "sm",
3347
3469
  value: y,
3348
3470
  onChange: (e) => ee(e.target.value),
3349
3471
  children: [
3350
- /* @__PURE__ */ j(W, {
3472
+ /* @__PURE__ */ A(G, {
3351
3473
  value: "all",
3352
3474
  children: "All statuses"
3353
3475
  }),
3354
- /* @__PURE__ */ j(W, {
3476
+ /* @__PURE__ */ A(G, {
3355
3477
  value: "open",
3356
3478
  children: "Open"
3357
3479
  }),
3358
- /* @__PURE__ */ j(W, {
3480
+ /* @__PURE__ */ A(G, {
3359
3481
  value: "closed",
3360
3482
  children: "Closed"
3361
3483
  }),
3362
- /* @__PURE__ */ j(W, {
3484
+ /* @__PURE__ */ A(G, {
3363
3485
  value: "lost",
3364
3486
  children: "Lost"
3365
3487
  })
3366
3488
  ]
3367
3489
  })]
3368
3490
  }),
3369
- E.supported && /* @__PURE__ */ M("section", {
3491
+ T.supported && /* @__PURE__ */ j("section", {
3370
3492
  className: "overview-panel socket-timeline-panel",
3371
3493
  "aria-label": "Connection timeline",
3372
- children: [/* @__PURE__ */ M("div", {
3494
+ children: [/* @__PURE__ */ j("div", {
3373
3495
  className: "socket-panel-heading",
3374
- children: [/* @__PURE__ */ M("h2", { children: ["Timeline ", /* @__PURE__ */ j("span", { children: P.length.toLocaleString() })] }), /* @__PURE__ */ M("ul", {
3496
+ children: [/* @__PURE__ */ j("h2", { children: ["Timeline ", /* @__PURE__ */ A("span", { children: N.length.toLocaleString() })] }), /* @__PURE__ */ j("ul", {
3375
3497
  className: "socket-legend",
3376
3498
  "aria-label": "Timeline legend",
3377
3499
  children: [
3378
- /* @__PURE__ */ M("li", { children: [/* @__PURE__ */ j("i", { className: "socket-swatch socket-swatch-open" }), " Open"] }),
3379
- /* @__PURE__ */ M("li", { children: [/* @__PURE__ */ j("i", { className: "socket-swatch socket-swatch-closed" }), " Closed"] }),
3380
- /* @__PURE__ */ M("li", { children: [/* @__PURE__ */ j("i", { className: "socket-swatch socket-swatch-lost" }), " Lost · no disconnect recorded"] })
3500
+ /* @__PURE__ */ j("li", { children: [/* @__PURE__ */ A("i", { className: "socket-swatch socket-swatch-open" }), " Open"] }),
3501
+ /* @__PURE__ */ j("li", { children: [/* @__PURE__ */ A("i", { className: "socket-swatch socket-swatch-closed" }), " Closed"] }),
3502
+ /* @__PURE__ */ j("li", { children: [/* @__PURE__ */ A("i", { className: "socket-swatch socket-swatch-lost" }), " Lost · no disconnect recorded"] })
3381
3503
  ]
3382
3504
  })]
3383
- }), P.length ? /* @__PURE__ */ j(Tn, {
3384
- sessions: P,
3385
- start: ne,
3386
- end: T,
3387
- endLabel: w.toMs === void 0 ? "now" : new Date(w.toMs).toLocaleTimeString([], {
3505
+ }), N.length ? /* @__PURE__ */ A(Nn, {
3506
+ sessions: N,
3507
+ start: I,
3508
+ end: w,
3509
+ endLabel: C.toMs === void 0 ? "now" : new Date(C.toMs).toLocaleTimeString([], {
3388
3510
  hour: "2-digit",
3389
3511
  minute: "2-digit",
3390
3512
  hour12: !1
3391
3513
  }),
3392
3514
  selected: b,
3393
3515
  onSelect: (e, t) => {
3394
- C.current = t, x(e);
3516
+ S.current = t, te(e);
3395
3517
  }
3396
- }) : /* @__PURE__ */ M("div", {
3518
+ }) : /* @__PURE__ */ j("div", {
3397
3519
  className: "overview-empty socket-timeline-empty",
3398
3520
  role: "status",
3399
- children: [/* @__PURE__ */ j("strong", { children: qn(k, E, O.length) }), /* @__PURE__ */ j("p", { children: O.length ? "Try another filter or a wider time window." : "Sessions appear here as clients connect to actors." })]
3521
+ children: [/* @__PURE__ */ A("strong", { children: ar(O, T, D.length) }), /* @__PURE__ */ A("p", { children: D.length ? "Try another filter or a wider time window." : "Sessions appear here as clients connect to actors." })]
3400
3522
  })]
3401
3523
  }),
3402
- /* @__PURE__ */ M("div", {
3524
+ /* @__PURE__ */ j("div", {
3403
3525
  className: "overview-panel",
3404
- children: [/* @__PURE__ */ M(G, {
3526
+ children: [/* @__PURE__ */ j(K, {
3405
3527
  className: "overview-table socket-table",
3406
3528
  "aria-label": "WebSocket connections",
3407
3529
  containerProps: {
@@ -3410,59 +3532,59 @@ function Bn({ client: e, onSelectActor: n, timeRange: o, onTimeRangeChange: s })
3410
3532
  "aria-label": "WebSocket connections",
3411
3533
  tabIndex: 0
3412
3534
  },
3413
- children: [/* @__PURE__ */ j(K, { children: /* @__PURE__ */ M(J, { children: [
3414
- /* @__PURE__ */ j(Y, {
3535
+ children: [/* @__PURE__ */ A(q, { children: /* @__PURE__ */ j(Y, { children: [
3536
+ /* @__PURE__ */ A(X, {
3415
3537
  scope: "col",
3416
3538
  children: "Status"
3417
3539
  }),
3418
- /* @__PURE__ */ j(Y, {
3540
+ /* @__PURE__ */ A(X, {
3419
3541
  scope: "col",
3420
3542
  children: "Connection"
3421
3543
  }),
3422
- /* @__PURE__ */ j(Y, {
3544
+ /* @__PURE__ */ A(X, {
3423
3545
  scope: "col",
3424
3546
  children: "Actor class"
3425
3547
  }),
3426
- /* @__PURE__ */ j(Y, {
3548
+ /* @__PURE__ */ A(X, {
3427
3549
  scope: "col",
3428
3550
  children: "Instance"
3429
3551
  }),
3430
- /* @__PURE__ */ j(Y, {
3552
+ /* @__PURE__ */ A(X, {
3431
3553
  scope: "col",
3432
3554
  children: "Opened"
3433
3555
  }),
3434
- /* @__PURE__ */ j(Y, {
3556
+ /* @__PURE__ */ A(X, {
3435
3557
  scope: "col",
3436
3558
  children: "Duration"
3437
3559
  }),
3438
- /* @__PURE__ */ j(Y, {
3560
+ /* @__PURE__ */ A(X, {
3439
3561
  scope: "col",
3440
3562
  children: "Messages"
3441
3563
  }),
3442
- /* @__PURE__ */ j(Y, {
3564
+ /* @__PURE__ */ A(X, {
3443
3565
  scope: "col",
3444
3566
  children: "Metadata"
3445
3567
  })
3446
- ] }) }), /* @__PURE__ */ j(q, { children: P.map((e) => /* @__PURE__ */ j(Hn, {
3568
+ ] }) }), /* @__PURE__ */ A(J, { children: N.map((e) => /* @__PURE__ */ A(er, {
3447
3569
  session: e,
3448
3570
  now: h,
3449
- longest: I,
3571
+ longest: F,
3450
3572
  selected: b === e,
3451
3573
  onSelect: (t) => {
3452
- C.current = t, x(e);
3574
+ S.current = t, te(e);
3453
3575
  }
3454
3576
  }, JSON.stringify([
3455
3577
  e.actorName,
3456
3578
  e.actorId,
3457
3579
  e.connectionId
3458
3580
  ]))) })]
3459
- }), !P.length && /* @__PURE__ */ M("div", {
3581
+ }), !N.length && /* @__PURE__ */ j("div", {
3460
3582
  className: "overview-empty",
3461
3583
  role: "status",
3462
3584
  children: [
3463
- /* @__PURE__ */ j("strong", { children: qn(k, E, O.length) }),
3464
- /* @__PURE__ */ j("p", { children: O.length ? "Try another connection, actor, or status." : "Open an actor WebSocket to see its connection and metadata here." }),
3465
- !!O.length && /* @__PURE__ */ j(B, {
3585
+ /* @__PURE__ */ A("strong", { children: ar(O, T, D.length) }),
3586
+ /* @__PURE__ */ A("p", { children: D.length ? "Try another connection, actor, or status." : "Open an actor WebSocket to see its connection and metadata here." }),
3587
+ !!D.length && /* @__PURE__ */ A(V, {
3466
3588
  variant: "outline",
3467
3589
  onClick: () => {
3468
3590
  v(""), ee("all");
@@ -3472,24 +3594,24 @@ function Bn({ client: e, onSelectActor: n, timeRange: o, onTimeRangeChange: s })
3472
3594
  ]
3473
3595
  })]
3474
3596
  }),
3475
- /* @__PURE__ */ j("div", {
3597
+ /* @__PURE__ */ A("div", {
3476
3598
  className: "overview-data-scope",
3477
- children: /* @__PURE__ */ j("p", { children: E.supported ? `Sessions pair each connection’s onConnect and onDisconnect events from retained request history${E.capped ? "; only the 500 most recent sessions are shown" : ""}. Open connections follow the latest host report. Lost connections have no recorded disconnect and are no longer reported by a host, so their duration is a lower bound.` : "Connections are active WebSockets, not unique people. Counts follow the latest host report." })
3599
+ children: /* @__PURE__ */ A("p", { children: T.supported ? `Sessions pair each connection’s onConnect and onDisconnect events from retained request history${T.capped ? "; only the 500 most recent sessions are shown" : ""}. Open connections follow the latest host report. Lost connections have no recorded disconnect and are no longer reported by a host, so their duration is a lower bound.` : "Connections are active WebSockets, not unique people. Counts follow the latest host report." })
3478
3600
  }),
3479
- /* @__PURE__ */ j(Ye, {
3601
+ /* @__PURE__ */ A(qn, {
3480
3602
  open: !!b,
3481
3603
  onOpenChange: (e) => {
3482
- e || x(void 0);
3604
+ e || te(void 0);
3483
3605
  },
3484
- children: /* @__PURE__ */ M(Qe, {
3485
- container: S.current,
3606
+ children: /* @__PURE__ */ j(Xn, {
3607
+ container: x.current,
3486
3608
  onCloseAutoFocus: (e) => {
3487
- e.preventDefault(), C.current?.focus();
3609
+ e.preventDefault(), S.current?.focus();
3488
3610
  },
3489
3611
  children: [
3490
- /* @__PURE__ */ j(Xe, { children: "Connection details" }),
3491
- /* @__PURE__ */ j(Ze, { children: "Identifiers, timings, and metadata for this WebSocket." }),
3492
- b && /* @__PURE__ */ j(Un, {
3612
+ /* @__PURE__ */ A(Jn, { children: "Connection details" }),
3613
+ /* @__PURE__ */ A(Yn, { children: "Identifiers, timings, and metadata for this WebSocket." }),
3614
+ b && /* @__PURE__ */ A(tr, {
3493
3615
  session: b,
3494
3616
  now: h,
3495
3617
  onSelectActor: n
@@ -3500,131 +3622,131 @@ function Bn({ client: e, onSelectActor: n, timeRange: o, onTimeRangeChange: s })
3500
3622
  ]
3501
3623
  });
3502
3624
  }
3503
- function Vn({ summary: e, ready: t, history: n, range: r }) {
3504
- return /* @__PURE__ */ M("div", {
3625
+ function $n({ summary: e, ready: t, history: n, range: r }) {
3626
+ return /* @__PURE__ */ j("div", {
3505
3627
  className: "overview-metrics socket-metrics",
3506
3628
  children: [
3507
- /* @__PURE__ */ M("section", {
3629
+ /* @__PURE__ */ j("section", {
3508
3630
  className: "overview-metric",
3509
3631
  children: [
3510
- /* @__PURE__ */ j("h2", { children: "Open now" }),
3511
- /* @__PURE__ */ M("div", {
3632
+ /* @__PURE__ */ A("h2", { children: "Open now" }),
3633
+ /* @__PURE__ */ j("div", {
3512
3634
  className: "overview-value",
3513
- children: [/* @__PURE__ */ j("strong", {
3635
+ children: [/* @__PURE__ */ A("strong", {
3514
3636
  "aria-label": "Open WebSocket connections",
3515
3637
  children: t ? e.open.toLocaleString() : "—"
3516
- }), /* @__PURE__ */ j("span", { children: "live connections" })]
3638
+ }), /* @__PURE__ */ A("span", { children: "live connections" })]
3517
3639
  }),
3518
- /* @__PURE__ */ j("div", {
3640
+ /* @__PURE__ */ A("div", {
3519
3641
  className: "overview-metric-foot",
3520
- children: /* @__PURE__ */ j("span", { children: "Latest host report" })
3642
+ children: /* @__PURE__ */ A("span", { children: "Latest host report" })
3521
3643
  })
3522
3644
  ]
3523
3645
  }),
3524
- /* @__PURE__ */ M("section", {
3646
+ /* @__PURE__ */ j("section", {
3525
3647
  className: "overview-metric",
3526
3648
  children: [
3527
- /* @__PURE__ */ j("h2", { children: "Sessions" }),
3528
- /* @__PURE__ */ M("div", {
3649
+ /* @__PURE__ */ A("h2", { children: "Sessions" }),
3650
+ /* @__PURE__ */ j("div", {
3529
3651
  className: "overview-value",
3530
- children: [/* @__PURE__ */ j("strong", {
3652
+ children: [/* @__PURE__ */ A("strong", {
3531
3653
  "aria-label": "WebSocket sessions",
3532
3654
  children: n ? e.total.toLocaleString() : "—"
3533
- }), /* @__PURE__ */ j("span", { children: r.kind === "absolute" ? Le(r) : H(r) })]
3655
+ }), /* @__PURE__ */ A("span", { children: r.kind === "absolute" ? ze(r) : U(r) })]
3534
3656
  }),
3535
- /* @__PURE__ */ M("div", {
3657
+ /* @__PURE__ */ j("div", {
3536
3658
  className: "overview-metric-foot",
3537
- children: [/* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j("b", { children: n ? (e.total - e.open - e.lost).toLocaleString() : "—" }), " closed"] }), /* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j("b", { children: n ? e.lost.toLocaleString() : "—" }), " lost"] })]
3659
+ children: [/* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("b", { children: n ? (e.total - e.open - e.lost).toLocaleString() : "—" }), " closed"] }), /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("b", { children: n ? e.lost.toLocaleString() : "—" }), " lost"] })]
3538
3660
  })
3539
3661
  ]
3540
3662
  }),
3541
- /* @__PURE__ */ M("section", {
3663
+ /* @__PURE__ */ j("section", {
3542
3664
  className: "overview-metric",
3543
3665
  children: [
3544
- /* @__PURE__ */ j("h2", { children: "Session duration" }),
3545
- /* @__PURE__ */ M("div", {
3666
+ /* @__PURE__ */ A("h2", { children: "Session duration" }),
3667
+ /* @__PURE__ */ j("div", {
3546
3668
  className: "overview-value",
3547
- children: [/* @__PURE__ */ j("strong", {
3669
+ children: [/* @__PURE__ */ A("strong", {
3548
3670
  "aria-label": "Median session duration",
3549
- children: n && e.median !== null ? hn(e.median) : "—"
3550
- }), /* @__PURE__ */ j("span", { children: "median" })]
3671
+ children: n && e.median !== null ? Cn(e.median) : "—"
3672
+ }), /* @__PURE__ */ A("span", { children: "median" })]
3551
3673
  }),
3552
- /* @__PURE__ */ M("div", {
3674
+ /* @__PURE__ */ j("div", {
3553
3675
  className: "overview-metric-foot",
3554
- children: [/* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j("b", { children: n && e.p95 !== null ? hn(e.p95) : "—" }), " p95"] }), /* @__PURE__ */ j("span", { children: "Open sessions count up to now" })]
3676
+ children: [/* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("b", { children: n && e.p95 !== null ? Cn(e.p95) : "—" }), " p95"] }), /* @__PURE__ */ A("span", { children: "Open sessions count up to now" })]
3555
3677
  })
3556
3678
  ]
3557
3679
  }),
3558
- /* @__PURE__ */ M("section", {
3680
+ /* @__PURE__ */ j("section", {
3559
3681
  className: "overview-metric",
3560
3682
  children: [
3561
- /* @__PURE__ */ j("h2", { children: "Messages" }),
3562
- /* @__PURE__ */ M("div", {
3683
+ /* @__PURE__ */ A("h2", { children: "Messages" }),
3684
+ /* @__PURE__ */ j("div", {
3563
3685
  className: "overview-value",
3564
- children: [/* @__PURE__ */ j("strong", {
3686
+ children: [/* @__PURE__ */ A("strong", {
3565
3687
  "aria-label": "WebSocket messages",
3566
3688
  children: n ? e.messages.toLocaleString() : "—"
3567
- }), /* @__PURE__ */ j("span", { children: "received" })]
3689
+ }), /* @__PURE__ */ A("span", { children: "received" })]
3568
3690
  }),
3569
- /* @__PURE__ */ j("div", {
3691
+ /* @__PURE__ */ A("div", {
3570
3692
  className: "overview-metric-foot",
3571
- children: /* @__PURE__ */ M("span", { children: [/* @__PURE__ */ j("b", { children: n && e.messagesPerSession !== null ? e.messagesPerSession.toLocaleString(void 0, { maximumFractionDigits: 1 }) : "—" }), " per session"] })
3693
+ children: /* @__PURE__ */ j("span", { children: [/* @__PURE__ */ A("b", { children: n && e.messagesPerSession !== null ? e.messagesPerSession.toLocaleString(void 0, { maximumFractionDigits: 1 }) : "—" }), " per session"] })
3572
3694
  })
3573
3695
  ]
3574
3696
  })
3575
3697
  ]
3576
3698
  });
3577
3699
  }
3578
- function Hn({ session: e, now: t, longest: n, selected: r, onSelect: i }) {
3579
- let a = pn(e, t), o = a && n ? Math.min(1, a.ms / n) : 0;
3580
- return /* @__PURE__ */ M(J, {
3700
+ function er({ session: e, now: t, longest: n, selected: r, onSelect: i }) {
3701
+ let a = xn(e, t), o = a && n ? Math.min(1, a.ms / n) : 0;
3702
+ return /* @__PURE__ */ j(Y, {
3581
3703
  className: "la-clickable-row",
3582
3704
  "data-state": r ? "selected" : void 0,
3583
3705
  onClick: (e) => i(e.currentTarget.querySelector("button") ?? e.currentTarget),
3584
3706
  children: [
3585
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ M("span", {
3707
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ j("span", {
3586
3708
  className: `socket-status socket-status-${e.status}`,
3587
- children: [/* @__PURE__ */ j("i", {
3709
+ children: [/* @__PURE__ */ A("i", {
3588
3710
  className: `socket-swatch socket-swatch-${e.status}`,
3589
3711
  "aria-hidden": "true"
3590
- }), Fn(e.status)]
3712
+ }), Un(e.status)]
3591
3713
  }) }),
3592
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ j("button", {
3714
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ A("button", {
3593
3715
  type: "button",
3594
3716
  className: "socket-connection",
3595
3717
  title: e.connectionId,
3596
3718
  "aria-label": `Inspect connection ${e.connectionId}`,
3597
- children: Ln(e.connectionId)
3719
+ children: Gn(e.connectionId)
3598
3720
  }) }),
3599
- /* @__PURE__ */ j(X, {
3721
+ /* @__PURE__ */ A(Z, {
3600
3722
  title: e.actorName,
3601
3723
  children: e.actorName
3602
3724
  }),
3603
- /* @__PURE__ */ j(X, {
3725
+ /* @__PURE__ */ A(Z, {
3604
3726
  title: e.actorId,
3605
3727
  children: e.actorId
3606
3728
  }),
3607
- /* @__PURE__ */ j(X, { children: e.openedAtMs === null ? /* @__PURE__ */ j("span", {
3729
+ /* @__PURE__ */ A(Z, { children: e.openedAtMs === null ? /* @__PURE__ */ A("span", {
3608
3730
  title: "The connect event is not in retained history",
3609
3731
  children: "—"
3610
- }) : /* @__PURE__ */ M("time", {
3732
+ }) : /* @__PURE__ */ j("time", {
3611
3733
  dateTime: new Date(e.openedAtMs).toISOString(),
3612
3734
  title: e.estimatedStart ? "Approximate: first reported by the host; the connect event has not been saved yet" : new Date(e.openedAtMs).toLocaleString(),
3613
3735
  children: [e.estimatedStart ? "≈ " : "", new Date(e.openedAtMs).toLocaleTimeString([], { hour12: !1 })]
3614
3736
  }) }),
3615
- /* @__PURE__ */ j(X, { children: /* @__PURE__ */ M("span", {
3737
+ /* @__PURE__ */ A(Z, { children: /* @__PURE__ */ j("span", {
3616
3738
  className: "socket-duration",
3617
- children: [/* @__PURE__ */ j("span", { children: In(e, t) }), /* @__PURE__ */ j("i", {
3739
+ children: [/* @__PURE__ */ A("span", { children: Wn(e, t) }), /* @__PURE__ */ A("i", {
3618
3740
  className: `socket-duration-bar socket-duration-${e.status}`,
3619
3741
  "aria-hidden": "true",
3620
- children: /* @__PURE__ */ j("b", { style: { width: `${o * 100}%` } })
3742
+ children: /* @__PURE__ */ A("b", { style: { width: `${o * 100}%` } })
3621
3743
  })]
3622
3744
  }) }),
3623
- /* @__PURE__ */ j(X, { children: e.messages.toLocaleString() }),
3624
- /* @__PURE__ */ j(X, { children: e.metadata === void 0 ? /* @__PURE__ */ j("span", {
3745
+ /* @__PURE__ */ A(Z, { children: e.messages.toLocaleString() }),
3746
+ /* @__PURE__ */ A(Z, { children: e.metadata === void 0 ? /* @__PURE__ */ A("span", {
3625
3747
  title: "No metadata was recorded for this connection",
3626
3748
  children: "—"
3627
- }) : /* @__PURE__ */ j("code", {
3749
+ }) : /* @__PURE__ */ A("code", {
3628
3750
  className: "socket-metadata",
3629
3751
  title: JSON.stringify(e.metadata),
3630
3752
  children: JSON.stringify(e.metadata)
@@ -3632,46 +3754,46 @@ function Hn({ session: e, now: t, longest: n, selected: r, onSelect: i }) {
3632
3754
  ]
3633
3755
  });
3634
3756
  }
3635
- function Un({ session: e, now: t, onSelectActor: n }) {
3757
+ function tr({ session: e, now: t, onSelectActor: n }) {
3636
3758
  let r = {
3637
- Status: e.status === "lost" ? "Lost — no disconnect recorded" : Fn(e.status),
3759
+ Status: e.status === "lost" ? "Lost — no disconnect recorded" : Un(e.status),
3638
3760
  Connection: e.connectionId,
3639
3761
  "Actor class": e.actorName,
3640
3762
  "Instance ID": e.actorId,
3641
3763
  Opened: e.openedAtMs === null ? "Before retained history" : `${e.estimatedStart ? "≈ " : ""}${new Date(e.openedAtMs).toLocaleString()}`,
3642
3764
  ...e.closedAtMs === null ? {} : { Closed: new Date(e.closedAtMs).toLocaleString() },
3643
3765
  ...e.status === "lost" && e.lastSeenMs !== null ? { "Last activity": new Date(e.lastSeenMs).toLocaleString() } : {},
3644
- Duration: In(e, t),
3766
+ Duration: Wn(e, t),
3645
3767
  Messages: e.messages.toLocaleString(),
3646
3768
  Failures: e.failures.toLocaleString(),
3647
3769
  Host: e.hostId ?? "Unknown"
3648
3770
  };
3649
- return /* @__PURE__ */ M(A, { children: [
3650
- /* @__PURE__ */ j("dl", {
3771
+ return /* @__PURE__ */ j(k, { children: [
3772
+ /* @__PURE__ */ A("dl", {
3651
3773
  className: "la-request-details",
3652
- children: Object.entries(r).map(([e, t]) => /* @__PURE__ */ M("div", { children: [/* @__PURE__ */ j("dt", { children: e }), /* @__PURE__ */ j("dd", { children: t })] }, e))
3774
+ children: Object.entries(r).map(([e, t]) => /* @__PURE__ */ j("div", { children: [/* @__PURE__ */ A("dt", { children: e }), /* @__PURE__ */ A("dd", { children: t })] }, e))
3653
3775
  }),
3654
- e.metadata !== void 0 && /* @__PURE__ */ M("details", {
3776
+ e.metadata !== void 0 && /* @__PURE__ */ j("details", {
3655
3777
  className: "socket-metadata-details",
3656
3778
  open: !0,
3657
- children: [/* @__PURE__ */ j("summary", { children: "Metadata" }), /* @__PURE__ */ j("pre", { children: JSON.stringify(e.metadata, null, 2) })]
3779
+ children: [/* @__PURE__ */ A("summary", { children: "Metadata" }), /* @__PURE__ */ A("pre", { children: JSON.stringify(e.metadata, null, 2) })]
3658
3780
  }),
3659
- n && /* @__PURE__ */ M(B, {
3781
+ n && /* @__PURE__ */ j(V, {
3660
3782
  variant: "outline",
3661
3783
  onClick: () => n(e.actorName),
3662
3784
  children: ["Open ", e.actorName]
3663
3785
  })
3664
3786
  ] });
3665
3787
  }
3666
- function Wn(e, t, n) {
3788
+ function nr(e, t, n) {
3667
3789
  let r = Math.min(...e.map((e) => e.openedAtMs ?? e.lastSeenMs ?? n)), i = Number.isFinite(r) ? r - Math.max(5e3, (n - r) * .06) : n - 6e4;
3668
3790
  return Math.max(t ?? -Infinity, Math.min(i, n - 1e4));
3669
3791
  }
3670
- function Gn(e, n) {
3792
+ function rr(e, n) {
3671
3793
  let [r, o] = a(/* @__PURE__ */ new Map()), s = i(void 0);
3672
3794
  return t(() => {
3673
3795
  if (!e) return;
3674
- let t = new Set(e.actors.flatMap((e) => e.instances.flatMap((t) => t.connections.map((n) => dn(e.actorName, t.actorId, n.id))))), r = s.current;
3796
+ let t = new Set(e.actors.flatMap((e) => e.instances.flatMap((t) => t.connections.map((n) => yn(e.actorName, t.actorId, n.id))))), r = s.current;
3675
3797
  if (s.current = t, !r) return;
3676
3798
  let i = [...t].filter((e) => !r.has(e)), a = [...r].filter((e) => !t.has(e));
3677
3799
  if (i.length || a.length) {
@@ -3683,7 +3805,7 @@ function Gn(e, n) {
3683
3805
  }
3684
3806
  }, [e]), r;
3685
3807
  }
3686
- function Kn(e, t) {
3808
+ function ir(e, t) {
3687
3809
  let n = /* @__PURE__ */ new Map();
3688
3810
  for (let e of t?.actors ?? []) n.set(e.actorName, new Set(e.instances.map((e) => e.actorId)));
3689
3811
  for (let t of e) {
@@ -3700,12 +3822,12 @@ function Kn(e, t) {
3700
3822
  hint: e
3701
3823
  })))];
3702
3824
  }
3703
- function qn(e, t, n) {
3825
+ function ar(e, t, n) {
3704
3826
  return !e && !t.rows ? t.failed ? "Connections unavailable" : "Loading connections…" : n ? "No matching connections" : t.supported ? "No WebSocket sessions" : "No active WebSockets";
3705
3827
  }
3706
3828
  //#endregion
3707
3829
  //#region src/ConsoleApp.tsx
3708
- var Jn = [
3830
+ var or = [
3709
3831
  {
3710
3832
  id: "overview",
3711
3833
  label: "Durable Actors",
@@ -3727,72 +3849,72 @@ var Jn = [
3727
3849
  icon: l
3728
3850
  }
3729
3851
  ];
3730
- function Yn({ client: e, toggleTheme: t }) {
3731
- let [n, r] = a("overview"), [i, o] = a(), [l, u] = a(Fe), d = {
3852
+ function sr({ client: e, toggleTheme: t }) {
3853
+ let [n, r] = a("overview"), [i, o] = a(), [l, u] = a(Le), d = {
3732
3854
  timeRange: l,
3733
3855
  onTimeRangeChange: u
3734
3856
  };
3735
3857
  function f(e) {
3736
3858
  o(e), r("actors");
3737
3859
  }
3738
- return /* @__PURE__ */ M("div", {
3860
+ return /* @__PURE__ */ j("div", {
3739
3861
  className: "console-shell",
3740
3862
  children: [
3741
- /* @__PURE__ */ j("a", {
3863
+ /* @__PURE__ */ A("a", {
3742
3864
  className: "skip-link",
3743
3865
  href: "#main",
3744
3866
  children: "Skip to content"
3745
3867
  }),
3746
- /* @__PURE__ */ M("aside", {
3868
+ /* @__PURE__ */ j("aside", {
3747
3869
  className: "console-sidebar",
3748
3870
  children: [
3749
- /* @__PURE__ */ M("div", {
3871
+ /* @__PURE__ */ j("div", {
3750
3872
  className: "console-brand",
3751
- children: [/* @__PURE__ */ j(v, { "aria-hidden": "true" }), /* @__PURE__ */ j("strong", { children: "Terse" })]
3873
+ children: [/* @__PURE__ */ A(v, { "aria-hidden": "true" }), /* @__PURE__ */ A("strong", { children: "Terse" })]
3752
3874
  }),
3753
- /* @__PURE__ */ j("nav", {
3875
+ /* @__PURE__ */ A("nav", {
3754
3876
  "aria-label": "Observability",
3755
- children: Jn.map((e) => /* @__PURE__ */ M("button", {
3877
+ children: or.map((e) => /* @__PURE__ */ j("button", {
3756
3878
  type: "button",
3757
3879
  "aria-current": n === e.id ? "page" : void 0,
3758
3880
  onClick: () => {
3759
3881
  o(void 0), r(e.id);
3760
3882
  },
3761
- children: [/* @__PURE__ */ j(e.icon, { "aria-hidden": "true" }), e.label]
3883
+ children: [/* @__PURE__ */ A(e.icon, { "aria-hidden": "true" }), e.label]
3762
3884
  }, e.id))
3763
3885
  }),
3764
- /* @__PURE__ */ M("div", {
3886
+ /* @__PURE__ */ j("div", {
3765
3887
  className: "console-sidebar-foot",
3766
- children: [/* @__PURE__ */ j(c, { "aria-hidden": "true" }), /* @__PURE__ */ M("span", { children: ["Runtime inspector", /* @__PURE__ */ j("small", { children: "Read-only observability" })] })]
3888
+ children: [/* @__PURE__ */ A(c, { "aria-hidden": "true" }), /* @__PURE__ */ j("span", { children: ["Runtime inspector", /* @__PURE__ */ A("small", { children: "Read-only observability" })] })]
3767
3889
  })
3768
3890
  ]
3769
3891
  }),
3770
- /* @__PURE__ */ M("div", {
3892
+ /* @__PURE__ */ j("div", {
3771
3893
  className: "console-workspace",
3772
- children: [/* @__PURE__ */ M("header", {
3894
+ children: [/* @__PURE__ */ j("header", {
3773
3895
  className: "console-topbar",
3774
- children: [/* @__PURE__ */ j("button", {
3896
+ children: [/* @__PURE__ */ A("button", {
3775
3897
  className: "theme-toggle",
3776
3898
  type: "button",
3777
3899
  onClick: t,
3778
3900
  "aria-label": "Toggle color theme",
3779
- children: /* @__PURE__ */ j(w, { "aria-hidden": "true" })
3780
- }), /* @__PURE__ */ M("a", {
3901
+ children: /* @__PURE__ */ A(C, { "aria-hidden": "true" })
3902
+ }), /* @__PURE__ */ j("a", {
3781
3903
  href: "https://github.com/TerseAI/durable-actors#readme",
3782
3904
  target: "_blank",
3783
3905
  rel: "noopener noreferrer",
3784
- children: ["Docs", /* @__PURE__ */ j(s, { "aria-hidden": "true" })]
3906
+ children: ["Docs", /* @__PURE__ */ A(s, { "aria-hidden": "true" })]
3785
3907
  })]
3786
- }), /* @__PURE__ */ M("main", {
3908
+ }), /* @__PURE__ */ j("main", {
3787
3909
  id: "main",
3788
3910
  tabIndex: -1,
3789
3911
  children: [
3790
- n === "overview" && /* @__PURE__ */ j(en, {
3912
+ n === "overview" && /* @__PURE__ */ A(ln, {
3791
3913
  client: e,
3792
3914
  onSelectActor: f,
3793
3915
  ...d
3794
3916
  }),
3795
- n === "actors" && /* @__PURE__ */ j(kt, {
3917
+ n === "actors" && /* @__PURE__ */ A(Lt, {
3796
3918
  client: e,
3797
3919
  navigation: {
3798
3920
  actorName: i,
@@ -3800,11 +3922,11 @@ function Yn({ client: e, toggleTheme: t }) {
3800
3922
  },
3801
3923
  ...d
3802
3924
  }),
3803
- n === "requests" && /* @__PURE__ */ j(ot, {
3925
+ n === "requests" && /* @__PURE__ */ A(mt, {
3804
3926
  client: e,
3805
3927
  ...d
3806
3928
  }),
3807
- n === "websockets" && /* @__PURE__ */ j(Bn, {
3929
+ n === "websockets" && /* @__PURE__ */ A(Qn, {
3808
3930
  client: e,
3809
3931
  onSelectActor: f,
3810
3932
  ...d
@@ -3817,63 +3939,63 @@ function Yn({ client: e, toggleTheme: t }) {
3817
3939
  }
3818
3940
  //#endregion
3819
3941
  //#region src/state-data.ts
3820
- function Xn(e) {
3821
- if (!$(e) || !(e.snapshot === null || Qn(e.snapshot) && $(e.snapshot) && $(e.snapshot.state)) || !(e.schema === null || $(e.schema))) throw Error("Invalid state response");
3942
+ function cr(e) {
3943
+ if (!fr(e) || !(e.snapshot === null || ur(e.snapshot) && fr(e.snapshot) && fr(e.snapshot.state)) || !(e.schema === null || fr(e.schema))) throw Error("Invalid state response");
3822
3944
  return e;
3823
3945
  }
3824
- function Zn(e) {
3825
- if (!$(e) || !Array.isArray(e.records) || !e.records.every(Qn) || !(e.nextBefore === null || $n(e.nextBefore))) throw Error("Invalid state history");
3946
+ function lr(e) {
3947
+ if (!fr(e) || !Array.isArray(e.records) || !e.records.every(ur) || !(e.nextBefore === null || dr(e.nextBefore))) throw Error("Invalid state history");
3826
3948
  return e;
3827
3949
  }
3828
- function Qn(e) {
3829
- if (!$(e) || !$n(e.stateVersion) || !$n(e.ownerEpoch) || typeof e.requestId != "string") return !1;
3950
+ function ur(e) {
3951
+ if (!fr(e) || !dr(e.stateVersion) || !dr(e.ownerEpoch) || typeof e.requestId != "string") return !1;
3830
3952
  let t = e.attribution;
3831
- return t === null || $(t) && typeof t.operation == "string" && (t.connectionId === null || typeof t.connectionId == "string") && typeof t.committedAtMs == "number" && Number.isSafeInteger(t.committedAtMs) && t.committedAtMs >= 0 && typeof t.interleaved == "boolean";
3953
+ return t === null || fr(t) && typeof t.operation == "string" && (t.connectionId === null || typeof t.connectionId == "string") && typeof t.committedAtMs == "number" && Number.isSafeInteger(t.committedAtMs) && t.committedAtMs >= 0 && typeof t.interleaved == "boolean";
3832
3954
  }
3833
- function $n(e) {
3955
+ function dr(e) {
3834
3956
  return typeof e == "number" && Number.isSafeInteger(e) && e > 0;
3835
3957
  }
3836
- function $(e) {
3958
+ function fr(e) {
3837
3959
  return !!e && typeof e == "object" && !Array.isArray(e);
3838
3960
  }
3839
3961
  //#endregion
3840
3962
  //#region src/client.ts
3841
- var er = class {
3963
+ var pr = class {
3842
3964
  baseUrl;
3843
3965
  request;
3844
3966
  constructor(e = "/api/observe", t = globalThis.fetch.bind(globalThis)) {
3845
3967
  this.baseUrl = e, this.request = t;
3846
3968
  }
3847
3969
  async getState(e, t) {
3848
- return Xn(await this.get(`state${tr(e)}`, t));
3970
+ return cr(await this.get(`state${mr(e)}`, t));
3849
3971
  }
3850
3972
  async listStateHistory(e, t) {
3851
- return Zn(await this.get(`state/history${tr(e)}`, t));
3973
+ return lr(await this.get(`state/history${mr(e)}`, t));
3852
3974
  }
3853
3975
  async getMetrics(e, t) {
3854
- return Zt(await this.get(`metrics${tr(e)}`, t));
3976
+ return on(await this.get(`metrics${mr(e)}`, t));
3855
3977
  }
3856
3978
  async listQueueWaits(e, t) {
3857
- return St(await this.get(`queue-waits${tr(e)}`, t));
3979
+ return At(await this.get(`queue-waits${mr(e)}`, t));
3858
3980
  }
3859
3981
  async listWebSockets(e, t) {
3860
- return un(await this.get(`websockets${tr(e)}`, t));
3982
+ return vn(await this.get(`websockets${mr(e)}`, t));
3861
3983
  }
3862
3984
  async listActors(e) {
3863
3985
  let t = await this.get("actors", e);
3864
- if (!nr(t)) throw Error("Invalid actor inventory response.");
3986
+ if (!hr(t)) throw Error("Invalid actor inventory response.");
3865
3987
  return t;
3866
3988
  }
3867
3989
  async watchActors(e, t) {
3868
- return this.watch("events", "inventory", nr, e, t);
3990
+ return this.watch("events", "inventory", hr, e, t);
3869
3991
  }
3870
3992
  async watchRequests(e, t, n) {
3871
3993
  let r = n ? `?${new URLSearchParams({ after: n })}` : "";
3872
- return this.watch(`requests/events${r}`, "requests", ar, e, t);
3994
+ return this.watch(`requests/events${r}`, "requests", vr, e, t);
3873
3995
  }
3874
3996
  async listRequests(e, t) {
3875
- let n = await this.get(`requests${tr(e)}`, t);
3876
- if (!ar(n)) throw Error("Invalid request history response");
3997
+ let n = await this.get(`requests${mr(e)}`, t);
3998
+ if (!vr(n)) throw Error("Invalid request history response");
3877
3999
  return n;
3878
4000
  }
3879
4001
  async watch(e, t, n, r, i) {
@@ -3922,29 +4044,29 @@ var er = class {
3922
4044
  return n.json();
3923
4045
  }
3924
4046
  };
3925
- function tr(e) {
4047
+ function mr(e) {
3926
4048
  let t = new URLSearchParams();
3927
4049
  for (let [n, r] of Object.entries(e)) r !== void 0 && t.set(n, String(r));
3928
4050
  return t.size ? `?${t}` : "";
3929
4051
  }
3930
- function nr(e) {
4052
+ function hr(e) {
3931
4053
  return !e || typeof e != "object" || !("actors" in e) || !Array.isArray(e.actors) ? !1 : e.actors.every((e) => e && typeof e.actorName == "string" && [
3932
4054
  e.live,
3933
4055
  e.dormant,
3934
4056
  e.unknown
3935
- ].every((e) => Number.isSafeInteger(e) && e >= 0) && Array.isArray(e.instances) && e.instances.every(rr));
4057
+ ].every((e) => Number.isSafeInteger(e) && e >= 0) && Array.isArray(e.instances) && e.instances.every(gr));
3936
4058
  }
3937
- function rr(e) {
4059
+ function gr(e) {
3938
4060
  return !!e && typeof e == "object" && "actorId" in e && typeof e.actorId == "string" && "status" in e && [
3939
4061
  "live",
3940
4062
  "dormant",
3941
4063
  "unknown"
3942
- ].includes(String(e.status)) && "connections" in e && Array.isArray(e.connections) && e.connections.every(ir) && (!("waiting" in e) || e.waiting == null || Array.isArray(e.waiting) && e.waiting.every((e) => !!e && typeof e == "object" && typeof e.id == "string" && typeof e.operation == "string"));
4064
+ ].includes(String(e.status)) && "connections" in e && Array.isArray(e.connections) && e.connections.every(_r) && (!("waiting" in e) || e.waiting == null || Array.isArray(e.waiting) && e.waiting.every((e) => !!e && typeof e == "object" && typeof e.id == "string" && typeof e.operation == "string"));
3943
4065
  }
3944
- function ir(e) {
4066
+ function _r(e) {
3945
4067
  return !!e && typeof e == "object" && "id" in e && typeof e.id == "string" && "metadata" in e;
3946
4068
  }
3947
- function ar(e) {
4069
+ function vr(e) {
3948
4070
  if (!e || typeof e != "object") return !1;
3949
4071
  let t = e;
3950
4072
  return typeof t.epoch == "string" && [
@@ -3952,12 +4074,12 @@ function ar(e) {
3952
4074
  t.capacity,
3953
4075
  t.evicted,
3954
4076
  t.dropped
3955
- ].every(or) && (t.persistenceFailed === void 0 || typeof t.persistenceFailed == "boolean") && (t.nextCursor == null || typeof t.nextCursor == "string") && (t.resumeCursor === void 0 || typeof t.resumeCursor == "string") && (t.reset === void 0 || typeof t.reset == "boolean") && t.capacity > 0 && t.capacity <= 500 && Array.isArray(t.records) && t.records.length <= t.capacity && t.records.every((e) => sr(e) && e.sequence <= t.cursor);
4077
+ ].every(yr) && (t.persistenceFailed === void 0 || typeof t.persistenceFailed == "boolean") && (t.nextCursor == null || typeof t.nextCursor == "string") && (t.resumeCursor === void 0 || typeof t.resumeCursor == "string") && (t.reset === void 0 || typeof t.reset == "boolean") && t.capacity > 0 && t.capacity <= 500 && Array.isArray(t.records) && t.records.length <= t.capacity && t.records.every((e) => br(e) && e.sequence <= t.cursor);
3956
4078
  }
3957
- function or(e) {
4079
+ function yr(e) {
3958
4080
  return Number.isSafeInteger(e) && Number(e) >= 0;
3959
4081
  }
3960
- function sr(e) {
4082
+ function br(e) {
3961
4083
  if (!e || typeof e != "object") return !1;
3962
4084
  let t = e;
3963
4085
  return typeof t.projectId == "string" && /^[A-Za-z0-9._-]{1,64}$/u.test(t.projectId) && [
@@ -3967,7 +4089,7 @@ function sr(e) {
3967
4089
  t.actorName,
3968
4090
  t.actorId,
3969
4091
  t.operation
3970
- ].every((e) => typeof e == "string") && (t.eventId === void 0 || typeof t.eventId == "string" && t.eventId.length > 0) && or(t.sequence) && or(t.startedAtMs) && t.startedAtMs <= 864e13 && ["method", "websocket"].includes(t.kind) && [
4092
+ ].every((e) => typeof e == "string") && (t.eventId === void 0 || typeof t.eventId == "string" && t.eventId.length > 0) && yr(t.sequence) && yr(t.startedAtMs) && t.startedAtMs <= 864e13 && ["method", "websocket"].includes(t.kind) && [
3971
4093
  "completed",
3972
4094
  "failed",
3973
4095
  "rejected",
@@ -3976,4 +4098,4 @@ function sr(e) {
3976
4098
  ].includes(t.outcome) && (t.connectionId === null || typeof t.connectionId == "string") && Number.isFinite(t.durationMs) && t.durationMs >= 0 && (t.queueWaitMs === null || Number.isFinite(t.queueWaitMs) && t.queueWaitMs >= 0 && t.queueWaitMs <= t.durationMs);
3977
4099
  }
3978
4100
  //#endregion
3979
- export { kt as ActorObserver, U as Badge, B as Button, Te as Calendar, Ee as CalendarDayButton, ce as Command, de as CommandEmpty, fe as CommandGroup, le as CommandInput, me as CommandItem, ue as CommandList, pe as CommandSeparator, he as CommandShortcut, Yn as ConsoleApp, ge as FilterCombobox, er as HttpObserverClient, V as Input, en as Overview, De as Popover, Ae as PopoverAnchor, ke as PopoverContent, Ne as PopoverDescription, je as PopoverHeader, Me as PopoverTitle, Oe as PopoverTrigger, ot as RequestObserver, xe as RequestTimeline, Ye as Sheet, Qe as SheetContent, Ze as SheetDescription, Xe as SheetTitle, Tn as SocketTimeline, G as Table, q as TableBody, et as TableCaption, X as TableCell, $e as TableFooter, Y as TableHead, K as TableHeader, J as TableRow, Be as TimeRangePicker, Bn as WebSocketObserver, qe as badgeVariants, we as buttonVariants, Fe as defaultTimeRange, Le as rangeLabel, Ie as resolveRange };
4101
+ export { Lt as ActorObserver, W as Badge, V as Button, De as Calendar, Oe as CalendarDayButton, ce as Command, de as CommandEmpty, fe as CommandGroup, le as CommandInput, me as CommandItem, ue as CommandList, pe as CommandSeparator, he as CommandShortcut, sr as ConsoleApp, Xe as Drawer, $e as DrawerClose, tt as DrawerContent, at as DrawerDescription, rt as DrawerFooter, nt as DrawerHeader, et as DrawerOverlay, Qe as DrawerPortal, it as DrawerTitle, Ze as DrawerTrigger, ge as FilterCombobox, pr as HttpObserverClient, H as Input, ln as Overview, ke as Popover, Me as PopoverAnchor, je as PopoverContent, Fe as PopoverDescription, Ne as PopoverHeader, Pe as PopoverTitle, Ae as PopoverTrigger, mt as RequestObserver, Se as RequestTimeline, qn as Sheet, Xn as SheetContent, Yn as SheetDescription, Jn as SheetTitle, Nn as SocketTimeline, K as Table, J as TableBody, ct as TableCaption, Z as TableCell, st as TableFooter, X as TableHead, q as TableHeader, Y as TableRow, He as TimeRangePicker, Qn as WebSocketObserver, Ye as badgeVariants, Ee as buttonVariants, Le as defaultTimeRange, ze as rangeLabel, Re as resolveRange };