@gravitee/gamma-lib-observability 1.3.0 → 1.4.0

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
@@ -71,30 +71,42 @@ function tn() {
71
71
  return w($t);
72
72
  }
73
73
  //#endregion
74
+ //#region src/providers/http-provider.tsx
75
+ var nn = y(void 0);
76
+ function rn({ options: e, children: t }) {
77
+ return /* @__PURE__ */ j(nn.Provider, {
78
+ value: e,
79
+ children: t
80
+ });
81
+ }
82
+ function an() {
83
+ return w(nn);
84
+ }
85
+ //#endregion
74
86
  //#region src/hooks/constants.ts
75
87
  var W = 3e4;
76
88
  //#endregion
77
89
  //#region src/hooks/query-keys.ts
78
- function nn(e) {
90
+ function on(e) {
79
91
  let t = { name: e.name };
80
- return e.measures && (t.measures = e.measures.slice().sort()), e.filters && (t.filters = G(e.filters)), "sorts" in e && e.sorts && (t.sorts = e.sorts), t;
92
+ return e.measures && (t.measures = e.measures.slice().sort()), e.filters && (t.filters = cn(e.filters)), "sorts" in e && e.sorts && (t.sorts = e.sorts), t;
81
93
  }
82
- function rn(e) {
83
- return e.map(nn).sort((e, t) => e.name.localeCompare(t.name));
94
+ function sn(e) {
95
+ return e.map(on).sort((e, t) => e.name.localeCompare(t.name));
84
96
  }
85
- function G(e) {
97
+ function cn(e) {
86
98
  return !e || e.length === 0 ? e : e.slice().sort((e, t) => e.field.localeCompare(t.field) || e.operator.localeCompare(t.operator));
87
99
  }
88
- var K = {
100
+ var G = {
89
101
  all: ["observability"],
90
102
  timeSeries: (e, t, n, r, i, a) => [
91
103
  "observability",
92
104
  "timeSeries",
93
105
  {
94
- metrics: rn(e),
106
+ metrics: sn(e),
95
107
  timeRange: t,
96
108
  interval: n,
97
- filters: G(r),
109
+ filters: cn(r),
98
110
  by: i,
99
111
  limit: a
100
112
  }
@@ -105,7 +117,7 @@ var K = {
105
117
  {
106
118
  field: e,
107
119
  timeRange: t,
108
- filters: G(n),
120
+ filters: cn(n),
109
121
  limit: r,
110
122
  search: i
111
123
  }
@@ -114,9 +126,9 @@ var K = {
114
126
  "observability",
115
127
  "measures",
116
128
  {
117
- metrics: rn(e),
129
+ metrics: sn(e),
118
130
  timeRange: t,
119
- filters: G(n)
131
+ filters: cn(n)
120
132
  }
121
133
  ],
122
134
  logs: (e, t, n) => [
@@ -124,7 +136,7 @@ var K = {
124
136
  "logs",
125
137
  {
126
138
  timeRange: e,
127
- filters: G(t),
139
+ filters: cn(t),
128
140
  search: n
129
141
  }
130
142
  ],
@@ -138,7 +150,7 @@ var K = {
138
150
  "traces",
139
151
  {
140
152
  timeRange: e,
141
- filters: G(t),
153
+ filters: cn(t),
142
154
  serviceName: n
143
155
  }
144
156
  ],
@@ -155,30 +167,30 @@ var K = {
155
167
  };
156
168
  //#endregion
157
169
  //#region src/dashboards/merge-filters.ts
158
- function q(...e) {
170
+ function K(...e) {
159
171
  let t = /* @__PURE__ */ new Map();
160
172
  for (let n of e) if (n) for (let e of n) t.set(e.field, e);
161
173
  return Array.from(t.values());
162
174
  }
163
175
  //#endregion
164
176
  //#region src/providers/ContextFiltersProvider.tsx
165
- var an = y([]);
166
- function on({ filters: e, children: t }) {
177
+ var ln = y([]);
178
+ function un({ filters: e, children: t }) {
167
179
  let n = D(() => e, [e]);
168
- return /* @__PURE__ */ j(an.Provider, {
180
+ return /* @__PURE__ */ j(ln.Provider, {
169
181
  value: n,
170
182
  children: t
171
183
  });
172
184
  }
173
- function J() {
174
- return w(an);
185
+ function q() {
186
+ return w(ln);
175
187
  }
176
188
  //#endregion
177
189
  //#region src/hooks/use-facets-query.ts
178
- function sn(e, t) {
179
- let n = m(), r = q(J(), e.filters);
190
+ function dn(e, t) {
191
+ let n = m(), r = K(q(), e.filters);
180
192
  return N({
181
- queryKey: K.facets(e.field, e.timeRange, r, e.limit, e.search),
193
+ queryKey: G.facets(e.field, e.timeRange, r, e.limit, e.search),
182
194
  queryFn: ({ signal: t }) => n.fetchFacets({
183
195
  field: e.field,
184
196
  timeRange: e.timeRange,
@@ -194,9 +206,9 @@ function sn(e, t) {
194
206
  }
195
207
  //#endregion
196
208
  //#region src/hooks/use-log-detail-query.ts
197
- function cn(e) {
209
+ function fn(e) {
198
210
  let t = g(), n = typeof t.getById == "function", r = N({
199
- queryKey: K.logDetail(e.id ?? ""),
211
+ queryKey: G.logDetail(e.id ?? ""),
200
212
  queryFn: ({ signal: n }) => t.getById(e.id, n),
201
213
  staleTime: W,
202
214
  enabled: n && !!e.id && e.enabled !== !1
@@ -213,10 +225,10 @@ function cn(e) {
213
225
  }
214
226
  //#endregion
215
227
  //#region src/hooks/use-logs-query.ts
216
- function ln(e, t) {
217
- let n = g(), r = q(J(), e.filters);
228
+ function pn(e, t) {
229
+ let n = g(), r = K(q(), e.filters);
218
230
  return N({
219
- queryKey: K.logs(e.timeRange, r, e.search),
231
+ queryKey: G.logs(e.timeRange, r, e.search),
220
232
  queryFn: ({ signal: t }) => n.fetchLogs({
221
233
  timeRange: e.timeRange,
222
234
  filters: r,
@@ -230,9 +242,9 @@ function ln(e, t) {
230
242
  }
231
243
  //#endregion
232
244
  //#region src/hooks/use-logs-paged-query.ts
233
- var un = 25;
234
- function dn(e) {
235
- let { timeRange: t, filters: n, search: r, pageSize: i = un, enabled: a } = e, o = g(), s = q(J(), n), [c, l] = k(1), [u, d] = k(i), f = K.logs(t, s, r), p = JSON.stringify(f), m = O(p);
245
+ var mn = 25;
246
+ function hn(e) {
247
+ let { timeRange: t, filters: n, search: r, pageSize: i = mn, enabled: a } = e, o = g(), s = K(q(), n), [c, l] = k(1), [u, d] = k(i), f = G.logs(t, s, r), p = JSON.stringify(f), m = O(p);
236
248
  T(() => {
237
249
  m.current !== p && (m.current = p, l(1));
238
250
  }, [p]);
@@ -272,10 +284,10 @@ function dn(e) {
272
284
  }
273
285
  //#endregion
274
286
  //#region src/hooks/use-measures-query.ts
275
- function fn(e, t) {
276
- let n = m(), r = q(J(), e.filters);
287
+ function gn(e, t) {
288
+ let n = m(), r = K(q(), e.filters);
277
289
  return N({
278
- queryKey: K.measures(e.metrics, e.timeRange, r),
290
+ queryKey: G.measures(e.metrics, e.timeRange, r),
279
291
  queryFn: ({ signal: t }) => n.fetchMeasures({
280
292
  metrics: e.metrics,
281
293
  timeRange: e.timeRange,
@@ -290,12 +302,12 @@ function fn(e, t) {
290
302
  }
291
303
  //#endregion
292
304
  //#region src/hooks/use-resolve-filter-labels.ts
293
- function pn(e, t) {
305
+ function _n(e, t) {
294
306
  let n = D(() => e.filter((e) => e.value.length > 0 && !e.valueLabels?.length), [e]), r = D(() => n.map((e) => ({
295
307
  filterName: e.field,
296
308
  ids: e.value
297
309
  })), [n]), i = D(() => JSON.stringify(r), [r]), { data: a } = N({
298
- queryKey: K.filterLabels(i),
310
+ queryKey: G.filterLabels(i),
299
311
  queryFn: ({ signal: e }) => t.resolveLabels(r, e),
300
312
  enabled: !!t && r.length > 0,
301
313
  staleTime: 300 * 1e3
@@ -317,10 +329,10 @@ function pn(e, t) {
317
329
  }
318
330
  //#endregion
319
331
  //#region src/hooks/use-time-series-query.ts
320
- function mn(e, t) {
321
- let n = m(), r = q(J(), e.filters);
332
+ function vn(e, t) {
333
+ let n = m(), r = K(q(), e.filters);
322
334
  return N({
323
- queryKey: K.timeSeries(e.metrics, e.timeRange, e.interval, r, e.by, e.limit),
335
+ queryKey: G.timeSeries(e.metrics, e.timeRange, e.interval, r, e.by, e.limit),
324
336
  queryFn: ({ signal: t }) => n.fetchTimeSeries({
325
337
  metrics: e.metrics,
326
338
  timeRange: e.timeRange,
@@ -338,7 +350,7 @@ function mn(e, t) {
338
350
  }
339
351
  //#endregion
340
352
  //#region src/filters/constants.ts
341
- var hn = "5m", gn = [
353
+ var yn = "5m", bn = [
342
354
  {
343
355
  label: "Last",
344
356
  periods: [
@@ -371,7 +383,7 @@ var hn = "5m", gn = [
371
383
  "previousQuarter"
372
384
  ]
373
385
  }
374
- ], _n = gn.flatMap((e) => e.periods), vn = {
386
+ ], xn = bn.flatMap((e) => e.periods), Sn = {
375
387
  "5m": "5 minutes",
376
388
  "15m": "15 minutes",
377
389
  "1h": "1 hour",
@@ -389,7 +401,7 @@ var hn = "5m", gn = [
389
401
  previousWeek: "Week",
390
402
  previousMonth: "Month",
391
403
  previousQuarter: "Quarter"
392
- }, yn = {
404
+ }, Cn = {
393
405
  "5m": "Last 5 minutes",
394
406
  "15m": "Last 15 minutes",
395
407
  "1h": "Last 1 hour",
@@ -407,22 +419,22 @@ var hn = "5m", gn = [
407
419
  previousWeek: "Previous week",
408
420
  previousMonth: "Previous month",
409
421
  previousQuarter: "Previous quarter"
410
- }, bn = new Set(_n), xn = new Set(_), Sn = "1", Cn = {
422
+ }, wn = new Set(xn), Tn = new Set(_), En = "1", Dn = {
411
423
  type: "relative",
412
424
  period: "5m"
413
425
  };
414
- function wn(e) {
426
+ function On(e) {
415
427
  return btoa(e).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
416
428
  }
417
- function Tn(e) {
429
+ function kn(e) {
418
430
  let t = e.replace(/-/g, "+").replace(/_/g, "/");
419
431
  return atob(t);
420
432
  }
421
- function En(e) {
422
- return e.conditions.length === 0 && e.timeRange.type === "relative" && e.timeRange.period === Cn.period;
433
+ function An(e) {
434
+ return e.conditions.length === 0 && e.timeRange.type === "relative" && e.timeRange.period === Dn.period;
423
435
  }
424
- function Dn(e) {
425
- if (En(e)) return null;
436
+ function jn(e) {
437
+ if (An(e)) return null;
426
438
  let t = {
427
439
  c: e.conditions.map(({ field: e, label: t, operator: n, value: r }) => ({
428
440
  field: e,
@@ -433,19 +445,19 @@ function Dn(e) {
433
445
  t: e.timeRange
434
446
  };
435
447
  return {
436
- q: wn(JSON.stringify(t)),
448
+ q: On(JSON.stringify(t)),
437
449
  v: "1"
438
450
  };
439
451
  }
440
- function On(e, t) {
452
+ function Mn(e, t) {
441
453
  let n = {
442
454
  conditions: [],
443
- timeRange: Cn
455
+ timeRange: Dn
444
456
  };
445
457
  if (!e || !t || t !== "1") return n;
446
458
  try {
447
- let t = Tn(e), r = JSON.parse(t);
448
- return jn(r) ? {
459
+ let t = kn(e), r = JSON.parse(t);
460
+ return Fn(r) ? {
449
461
  conditions: r.c.map(({ field: e, label: t, operator: n, value: r }) => ({
450
462
  field: e,
451
463
  label: t,
@@ -458,33 +470,33 @@ function On(e, t) {
458
470
  return n;
459
471
  }
460
472
  }
461
- function kn(e) {
473
+ function Nn(e) {
462
474
  if (typeof e != "object" || !e) return !1;
463
475
  let t = e;
464
- return !(typeof t.field != "string" || t.field.length === 0 || typeof t.label != "string" || typeof t.operator != "string" || !xn.has(t.operator) || !Array.isArray(t.value) || !t.value.every((e) => typeof e == "string"));
476
+ return !(typeof t.field != "string" || t.field.length === 0 || typeof t.label != "string" || typeof t.operator != "string" || !Tn.has(t.operator) || !Array.isArray(t.value) || !t.value.every((e) => typeof e == "string"));
465
477
  }
466
- function An(e) {
478
+ function Pn(e) {
467
479
  if (typeof e != "object" || !e) return !1;
468
480
  let t = e;
469
- return t.type === "relative" ? typeof t.period == "string" && bn.has(t.period) : t.type === "absolute" ? typeof t.from == "number" && Number.isFinite(t.from) && typeof t.to == "number" && Number.isFinite(t.to) : !1;
481
+ return t.type === "relative" ? typeof t.period == "string" && wn.has(t.period) : t.type === "absolute" ? typeof t.from == "number" && Number.isFinite(t.from) && typeof t.to == "number" && Number.isFinite(t.to) : !1;
470
482
  }
471
- function jn(e) {
483
+ function Fn(e) {
472
484
  if (typeof e != "object" || !e) return !1;
473
485
  let t = e;
474
- return !Array.isArray(t.c) || !t.c.every(kn) ? !1 : An(t.t);
486
+ return !Array.isArray(t.c) || !t.c.every(Nn) ? !1 : Pn(t.t);
475
487
  }
476
488
  //#endregion
477
489
  //#region src/filters/TimeRangePicker.tsx
478
- function Mn(e) {
490
+ function In(e) {
479
491
  return `${String(e.getHours()).padStart(2, "0")}:${String(e.getMinutes()).padStart(2, "0")}`;
480
492
  }
481
- function Nn() {
493
+ function Ln() {
482
494
  let e = -(/* @__PURE__ */ new Date()).getTimezoneOffset();
483
495
  return `GMT${e >= 0 ? "+" : "-"}${Math.floor(Math.abs(e) / 60)}`;
484
496
  }
485
- function Pn(e, t) {
486
- let n = t ? ` (${Nn()})` : "";
487
- if (e.type === "relative") return `${yn[e.period]}${n}`;
497
+ function Rn(e, t) {
498
+ let n = t ? ` (${Ln()})` : "";
499
+ if (e.type === "relative") return `${Cn[e.period]}${n}`;
488
500
  let r = new Date(e.from), i = new Date(e.to), a = new Intl.DateTimeFormat(void 0, {
489
501
  month: "short",
490
502
  day: "numeric",
@@ -496,7 +508,7 @@ function Pn(e, t) {
496
508
  });
497
509
  return `${a.format(r)} @ ${o.format(r)} - ${a.format(i)} @ ${o.format(i)}${n}`;
498
510
  }
499
- function Fn(e) {
511
+ function zn(e) {
500
512
  return e ? e.toLocaleDateString(void 0, {
501
513
  weekday: "short",
502
514
  month: "short",
@@ -504,20 +516,20 @@ function Fn(e) {
504
516
  year: "numeric"
505
517
  }) : "—";
506
518
  }
507
- function In(e, t) {
519
+ function Bn(e, t) {
508
520
  if (!e) return;
509
521
  let [n, r] = t.split(":").map(Number), i = new Date(e);
510
522
  return i.setHours(n ?? 0, r ?? 0, 0, 0), i.getTime();
511
523
  }
512
- function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, className: i }) {
513
- let a = E(), o = `${a}-from`, s = `${a}-to`, [c, l] = k(!1), [u, d] = k("relative"), [f, p] = k(void 0), [m, h] = k("00:00"), [g, _] = k("23:59"), v = In(f?.from, m), y = In(f?.to, g), b = v !== void 0 && y !== void 0 && v >= y, x = v !== void 0 && y !== void 0 && !b;
524
+ function Vn({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, className: i }) {
525
+ let a = E(), o = `${a}-from`, s = `${a}-to`, [c, l] = k(!1), [u, d] = k("relative"), [f, p] = k(void 0), [m, h] = k("00:00"), [g, _] = k("23:59"), v = Bn(f?.from, m), y = Bn(f?.to, g), b = v !== void 0 && y !== void 0 && v >= y, x = v !== void 0 && y !== void 0 && !b;
514
526
  function S(t) {
515
527
  if (l(t), t && (d(e.type === "absolute" ? "custom" : "relative"), e.type === "absolute")) {
516
528
  let t = new Date(e.from), n = new Date(e.to);
517
529
  p({
518
530
  from: t,
519
531
  to: n
520
- }), h(Mn(t)), _(Mn(n));
532
+ }), h(In(t)), _(In(n));
521
533
  }
522
534
  }
523
535
  function C(e) {
@@ -548,7 +560,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
548
560
  "aria-haspopup": "dialog",
549
561
  "aria-expanded": c,
550
562
  className: V("justify-between gap-2 font-normal", i),
551
- children: [Pn(e, r), /* @__PURE__ */ j(Qe, {
563
+ children: [Rn(e, r), /* @__PURE__ */ j(Qe, {
552
564
  "aria-hidden": "true",
553
565
  className: "size-4 shrink-0"
554
566
  })]
@@ -579,7 +591,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
579
591
  className: "flex flex-col gap-4",
580
592
  role: "listbox",
581
593
  "aria-label": "Preset time ranges",
582
- children: gn.map((t) => /* @__PURE__ */ M("div", {
594
+ children: bn.map((t) => /* @__PURE__ */ M("div", {
583
595
  className: "flex flex-col gap-2",
584
596
  children: [/* @__PURE__ */ j("p", {
585
597
  className: "text-xs font-medium text-muted-foreground",
@@ -590,12 +602,12 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
590
602
  variant: "outline",
591
603
  size: "sm",
592
604
  role: "option",
593
- "aria-label": yn[t],
605
+ "aria-label": Cn[t],
594
606
  "aria-selected": e.type === "relative" && e.period === t,
595
607
  className: V(e.type === "relative" && e.period === t && "bg-primary text-primary-foreground hover:bg-primary/90"),
596
608
  disabled: n,
597
609
  onClick: () => C(t),
598
- children: vn[t]
610
+ children: Sn[t]
599
611
  }, t))
600
612
  })]
601
613
  }, t.label))
@@ -619,7 +631,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
619
631
  className: "flex-1",
620
632
  children: [/* @__PURE__ */ j(Ee, {
621
633
  htmlFor: o,
622
- children: Fn(f?.from)
634
+ children: zn(f?.from)
623
635
  }), /* @__PURE__ */ j(De, {
624
636
  id: o,
625
637
  type: "time",
@@ -638,7 +650,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
638
650
  className: "flex-1",
639
651
  children: [/* @__PURE__ */ j(Ee, {
640
652
  htmlFor: s,
641
- children: Fn(f?.to)
653
+ children: zn(f?.to)
642
654
  }), /* @__PURE__ */ j(De, {
643
655
  id: s,
644
656
  type: "time",
@@ -670,7 +682,7 @@ function Ln({ value: e, onChange: t, disabled: n = !1, showTimezone: r = !1, cla
670
682
  }
671
683
  //#endregion
672
684
  //#region src/filters/resolve-period.ts
673
- function Rn() {
685
+ function Hn() {
674
686
  try {
675
687
  let { firstDay: e } = new Intl.Locale(navigator.language).getWeekInfo();
676
688
  return e % 7;
@@ -678,7 +690,7 @@ function Rn() {
678
690
  return 1;
679
691
  }
680
692
  }
681
- var zn = {
693
+ var Un = {
682
694
  "5m": 5 * 6e4,
683
695
  "15m": 15 * 6e4,
684
696
  "1h": 60 * 6e4,
@@ -691,51 +703,51 @@ var zn = {
691
703
  "180d": 4320 * 60 * 6e4,
692
704
  "365d": 365 * 24 * 60 * 6e4
693
705
  };
694
- function Bn(e) {
706
+ function Wn(e) {
695
707
  let t = new Date(e);
696
708
  return t.setHours(0, 0, 0, 0), t;
697
709
  }
698
- function Vn(e, t) {
699
- let n = Bn(e), r = (n.getDay() - t + 7) % 7;
710
+ function Gn(e, t) {
711
+ let n = Wn(e), r = (n.getDay() - t + 7) % 7;
700
712
  return n.setDate(n.getDate() - r), n;
701
713
  }
702
- function Hn(e) {
714
+ function Kn(e) {
703
715
  return new Date(e.getFullYear(), e.getMonth(), 1);
704
716
  }
705
- function Un(e) {
717
+ function qn(e) {
706
718
  let t = Math.floor(e.getMonth() / 3) * 3;
707
719
  return new Date(e.getFullYear(), t, 1);
708
720
  }
709
- function Wn(e, t, n) {
721
+ function Jn(e, t, n) {
710
722
  switch (e) {
711
723
  case "currentWeek": return {
712
- from: Vn(t, n),
724
+ from: Gn(t, n),
713
725
  to: t
714
726
  };
715
727
  case "currentMonth": return {
716
- from: Hn(t),
728
+ from: Kn(t),
717
729
  to: t
718
730
  };
719
731
  case "currentQuarter": return {
720
- from: Un(t),
732
+ from: qn(t),
721
733
  to: t
722
734
  };
723
735
  case "previousWeek": {
724
- let e = Vn(t, n), r = new Date(e);
736
+ let e = Gn(t, n), r = new Date(e);
725
737
  return r.setDate(r.getDate() - 7), {
726
738
  from: r,
727
739
  to: e
728
740
  };
729
741
  }
730
742
  case "previousMonth": {
731
- let e = Hn(t), n = new Date(e);
743
+ let e = Kn(t), n = new Date(e);
732
744
  return n.setMonth(n.getMonth() - 1), {
733
745
  from: n,
734
746
  to: e
735
747
  };
736
748
  }
737
749
  case "previousQuarter": {
738
- let e = Un(t), n = new Date(e);
750
+ let e = qn(t), n = new Date(e);
739
751
  return n.setMonth(n.getMonth() - 3), {
740
752
  from: n,
741
753
  to: e
@@ -744,8 +756,8 @@ function Wn(e, t, n) {
744
756
  default: return;
745
757
  }
746
758
  }
747
- function Gn(e, t = {}) {
748
- let { now: n = /* @__PURE__ */ new Date(), weekStartsOn: r = Rn() } = t, i = zn[e];
759
+ function Yn(e, t = {}) {
760
+ let { now: n = /* @__PURE__ */ new Date(), weekStartsOn: r = Hn() } = t, i = Un[e];
749
761
  if (i !== void 0) {
750
762
  let e = n.getTime();
751
763
  return {
@@ -754,7 +766,7 @@ function Gn(e, t = {}) {
754
766
  to: e
755
767
  };
756
768
  }
757
- let a = Wn(e, n, r);
769
+ let a = Jn(e, n, r);
758
770
  return a ? {
759
771
  type: "absolute",
760
772
  from: a.from.getTime(),
@@ -767,7 +779,7 @@ function Gn(e, t = {}) {
767
779
  }
768
780
  //#endregion
769
781
  //#region src/filters/filter-provider.ts
770
- function Kn(e) {
782
+ function Xn(e) {
771
783
  let t = e.kind ?? "async", n = e.field;
772
784
  if (!e.operators.length) throw Error(`[gamma-lib-observability] FilterProvider "${n}" must define at least one operator.`);
773
785
  if (t === "enum") {
@@ -783,8 +795,8 @@ function Kn(e) {
783
795
  }
784
796
  //#endregion
785
797
  //#region src/filters/use-scoped-filter-providers.ts
786
- function qn(e) {
787
- let t = p(), n = J();
798
+ function Zn(e) {
799
+ let t = p(), n = q();
788
800
  return D(() => {
789
801
  if (!e) return t;
790
802
  let r = n.find((t) => t.field === e);
@@ -799,18 +811,18 @@ function qn(e) {
799
811
  }
800
812
  //#endregion
801
813
  //#region src/filters/utils/filter-value-options.ts
802
- function Jn(e, t) {
814
+ function Qn(e, t) {
803
815
  let n = /* @__PURE__ */ new Map();
804
816
  for (let t of e) n.set(t.value, t);
805
817
  for (let e of t) n.set(e.value, e);
806
818
  return [...n.values()];
807
819
  }
808
- function Yn(e, t) {
820
+ function $n(e, t) {
809
821
  return e.value === t.value;
810
822
  }
811
823
  //#endregion
812
824
  //#region src/filters/utils/use-auto-open-on-focus.ts
813
- function Xn() {
825
+ function er() {
814
826
  let [e, t] = k(!1), n = O(!1);
815
827
  return {
816
828
  open: e,
@@ -831,15 +843,15 @@ function Xn() {
831
843
  }
832
844
  //#endregion
833
845
  //#region src/filters/FilterValueCombobox.tsx
834
- var Zn = (e) => e.label, Qn = (e) => e.value;
835
- function $n({ options: e, selected: t, onSelectedChange: n, multiple: r, onSearchChange: i, disableBuiltInFilter: a = !1, placeholder: o = r ? "Search values…" : "Search value…", emptyMessage: s = "No results.", listFooter: c, errorMessage: l }) {
836
- let u = Ke(), { open: d, handleOpenChange: f, handleInputFocus: p, handleInputKeyDown: m } = Xn(), h = E(), g = !!l, _ = {
846
+ var tr = (e) => e.label, nr = (e) => e.value;
847
+ function rr({ options: e, selected: t, onSelectedChange: n, multiple: r, onSearchChange: i, disableBuiltInFilter: a = !1, placeholder: o = r ? "Search values…" : "Search value…", emptyMessage: s = "No results.", listFooter: c, errorMessage: l }) {
848
+ let u = Ke(), { open: d, handleOpenChange: f, handleInputFocus: p, handleInputKeyDown: m } = er(), h = E(), g = !!l, _ = {
837
849
  open: d,
838
850
  onOpenChange: f,
839
851
  items: e,
840
- itemToStringLabel: Zn,
841
- itemToStringValue: Qn,
842
- isItemEqualToValue: Yn,
852
+ itemToStringLabel: tr,
853
+ itemToStringValue: nr,
854
+ isItemEqualToValue: $n,
843
855
  ...a && { filter: null },
844
856
  ...i && { onInputValueChange: (e) => i(String(e)) }
845
857
  }, y = /* @__PURE__ */ M(A, { children: [
@@ -899,7 +911,7 @@ function $n({ options: e, selected: t, onSelectedChange: n, multiple: r, onSearc
899
911
  }
900
912
  //#endregion
901
913
  //#region src/filters/utils/use-debounced-value.ts
902
- function er(e, t) {
914
+ function ir(e, t) {
903
915
  let [n, r] = k(e);
904
916
  return T(() => {
905
917
  let n = window.setTimeout(() => r(e), t);
@@ -908,13 +920,13 @@ function er(e, t) {
908
920
  }
909
921
  //#endregion
910
922
  //#region src/filters/utils/use-scroll-sentinel.ts
911
- function tr(e, t) {
923
+ function ar(e, t) {
912
924
  let n = O(e), r = O(null);
913
925
  return T(() => {
914
926
  n.current = e;
915
927
  }, [e]), C((e) => {
916
928
  if (r.current &&= (r.current.disconnect(), null), e && t) {
917
- let t = nr(e), i = new IntersectionObserver((e) => {
929
+ let t = or(e), i = new IntersectionObserver((e) => {
918
930
  e[0]?.isIntersecting && n.current();
919
931
  }, {
920
932
  root: t,
@@ -924,7 +936,7 @@ function tr(e, t) {
924
936
  }
925
937
  }, [t]);
926
938
  }
927
- function nr(e) {
939
+ function or(e) {
928
940
  let t = e.closest("[data-slot=combobox-content]");
929
941
  if (t) return t;
930
942
  let n = e.parentElement;
@@ -937,9 +949,9 @@ function nr(e) {
937
949
  }
938
950
  //#endregion
939
951
  //#region src/filters/FilterAsyncValueField.tsx
940
- var rr = 300;
941
- function ir({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
942
- let [i, a] = k(""), o = er(i, rr), [s, c] = k([]), [l, u] = k(!1), [d, f] = k(null), [p, m] = k(!1), [h, g] = k(1), _ = O(0), v = O(null), y = O(o), b = C(async (t, n) => {
952
+ var sr = 300;
953
+ function cr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
954
+ let [i, a] = k(""), o = ir(i, sr), [s, c] = k([]), [l, u] = k(!1), [d, f] = k(null), [p, m] = k(!1), [h, g] = k(1), _ = O(0), v = O(null), y = O(o), b = C(async (t, n) => {
943
955
  if (!e.valueLoader) return;
944
956
  v.current?.abort();
945
957
  let r = new AbortController();
@@ -979,11 +991,11 @@ function ir({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
979
991
  h,
980
992
  b
981
993
  ]);
982
- let x = tr(C(() => {
994
+ let x = ar(C(() => {
983
995
  !l && p && g((e) => e + 1);
984
996
  }, [l, p]), p && !l);
985
- return /* @__PURE__ */ j($n, {
986
- options: D(() => Jn(t, s), [t, s]),
997
+ return /* @__PURE__ */ j(rr, {
998
+ options: D(() => Qn(t, s), [t, s]),
987
999
  selected: t,
988
1000
  onSelectedChange: n,
989
1001
  multiple: r,
@@ -1009,8 +1021,8 @@ function ir({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
1009
1021
  }
1010
1022
  //#endregion
1011
1023
  //#region src/filters/FilterEnumValueField.tsx
1012
- function ar({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
1013
- return /* @__PURE__ */ j($n, {
1024
+ function lr({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
1025
+ return /* @__PURE__ */ j(rr, {
1014
1026
  options: D(() => e.options ?? [], [e.options]),
1015
1027
  selected: t,
1016
1028
  onSelectedChange: n,
@@ -1019,19 +1031,19 @@ function ar({ provider: e, selected: t, onSelectedChange: n, multiple: r }) {
1019
1031
  }
1020
1032
  //#endregion
1021
1033
  //#region src/filters/utils/scope-labels.ts
1022
- var or = {
1034
+ var ur = {
1023
1035
  HTTP_PROXY: "HTTP Proxy",
1024
1036
  MESSAGE: "Message"
1025
1037
  };
1026
- function sr(e) {
1038
+ function dr(e) {
1027
1039
  return e.trim().replace(/\s+/g, "_").toUpperCase();
1028
1040
  }
1029
- function cr(e) {
1030
- return or[sr(e)] ?? e.trim();
1041
+ function fr(e) {
1042
+ return ur[dr(e)] ?? e.trim();
1031
1043
  }
1032
1044
  //#endregion
1033
1045
  //#region src/filters/FilterFieldOptionRow.tsx
1034
- var lr = S(function({ provider: e, showScopes: t = !1, className: n }) {
1046
+ var pr = S(function({ provider: e, showScopes: t = !1, className: n }) {
1035
1047
  let r = t && e.scopes && e.scopes.length > 0;
1036
1048
  return /* @__PURE__ */ M("div", {
1037
1049
  className: V("flex min-w-0 flex-1 items-center justify-between gap-3", n),
@@ -1043,15 +1055,15 @@ var lr = S(function({ provider: e, showScopes: t = !1, className: n }) {
1043
1055
  children: e.scopes?.map((e) => /* @__PURE__ */ j(P, {
1044
1056
  variant: "secondary",
1045
1057
  className: "max-w-28 truncate text-xs font-normal",
1046
- children: cr(e)
1058
+ children: fr(e)
1047
1059
  }, e))
1048
1060
  }) : null]
1049
1061
  });
1050
1062
  });
1051
1063
  //#endregion
1052
1064
  //#region src/filters/FilterPropertyField.tsx
1053
- function ur({ providers: e, selectedField: t, onFieldChange: n, showScopes: r }) {
1054
- let i = Ke(), { open: a, handleOpenChange: o, handleInputFocus: s, handleInputKeyDown: c } = Xn();
1065
+ function mr({ providers: e, selectedField: t, onFieldChange: n, showScopes: r }) {
1066
+ let i = Ke(), { open: a, handleOpenChange: o, handleInputFocus: s, handleInputKeyDown: c } = er();
1055
1067
  return /* @__PURE__ */ M(ce, {
1056
1068
  open: a,
1057
1069
  onOpenChange: o,
@@ -1073,7 +1085,7 @@ function ur({ providers: e, selectedField: t, onFieldChange: n, showScopes: r })
1073
1085
  anchor: i,
1074
1086
  children: [/* @__PURE__ */ j(pe, { children: "No results." }), /* @__PURE__ */ j(he, { children: (e) => /* @__PURE__ */ j(me, {
1075
1087
  value: e,
1076
- children: /* @__PURE__ */ j(lr, {
1088
+ children: /* @__PURE__ */ j(pr, {
1077
1089
  provider: e,
1078
1090
  showScopes: r
1079
1091
  })
@@ -1083,7 +1095,7 @@ function ur({ providers: e, selectedField: t, onFieldChange: n, showScopes: r })
1083
1095
  }
1084
1096
  //#endregion
1085
1097
  //#region src/filters/utils/filter-operators.ts
1086
- var dr = {
1098
+ var hr = {
1087
1099
  eq: "=",
1088
1100
  neq: "≠",
1089
1101
  in: "in",
@@ -1098,13 +1110,13 @@ var dr = {
1098
1110
  lte: "≤",
1099
1111
  exists: "exists",
1100
1112
  not_exists: "not exists"
1101
- }, fr = new Set(["exists", "not_exists"]), pr = new Set([
1113
+ }, gr = new Set(["exists", "not_exists"]), _r = new Set([
1102
1114
  "neq",
1103
1115
  "not_in",
1104
1116
  "not_contains",
1105
1117
  "not_exists"
1106
1118
  ]);
1107
- function mr(e) {
1119
+ function vr(e) {
1108
1120
  switch (e) {
1109
1121
  case "eq": return "=";
1110
1122
  case "neq": return "≠";
@@ -1112,38 +1124,38 @@ function mr(e) {
1112
1124
  case "not_in": return "Not in";
1113
1125
  case "gte": return "≥";
1114
1126
  case "lte": return "≤";
1115
- default: return dr[e] ?? e;
1127
+ default: return hr[e] ?? e;
1116
1128
  }
1117
1129
  }
1118
- function hr(e) {
1119
- return !fr.has(e);
1130
+ function yr(e) {
1131
+ return !gr.has(e);
1120
1132
  }
1121
- function gr(e, t) {
1133
+ function br(e, t) {
1122
1134
  return e.operators.includes(t);
1123
1135
  }
1124
- function _r(e, t) {
1125
- let n = gr(e, "in"), r = gr(e, "not_in");
1136
+ function xr(e, t) {
1137
+ let n = br(e, "in"), r = br(e, "not_in");
1126
1138
  return !!(t === "in" || t === "not_in" || n && t === "eq" || r && t === "neq");
1127
1139
  }
1128
- function vr(e, t, n) {
1140
+ function Sr(e, t, n) {
1129
1141
  if (n >= 2) {
1130
- if (t === "eq" && gr(e, "in")) return "in";
1131
- if (t === "neq" && gr(e, "not_in")) return "not_in";
1142
+ if (t === "eq" && br(e, "in")) return "in";
1143
+ if (t === "neq" && br(e, "not_in")) return "not_in";
1132
1144
  }
1133
1145
  if (n === 1) {
1134
- if (t === "in" && gr(e, "eq")) return "eq";
1135
- if (t === "not_in" && gr(e, "neq")) return "neq";
1146
+ if (t === "in" && br(e, "eq")) return "eq";
1147
+ if (t === "not_in" && br(e, "neq")) return "neq";
1136
1148
  }
1137
1149
  return t;
1138
1150
  }
1139
1151
  //#endregion
1140
1152
  //#region src/filters/utils/normalize-filter-value.ts
1141
- function yr(e) {
1153
+ function Cr(e) {
1142
1154
  return e.every((e) => typeof e == "object" && !!e && "value" in e && typeof e.value == "string" && "label" in e && typeof e.label == "string");
1143
1155
  }
1144
- function br(e) {
1156
+ function wr(e) {
1145
1157
  if (Array.isArray(e)) {
1146
- if (e.length > 0 && yr(e)) return {
1158
+ if (e.length > 0 && Cr(e)) return {
1147
1159
  values: e.map((e) => e.value),
1148
1160
  valueLabels: e.map((e) => e.label)
1149
1161
  };
@@ -1162,7 +1174,7 @@ function br(e) {
1162
1174
  valueLabels: t.map((e, t) => n[t] ?? e)
1163
1175
  };
1164
1176
  }
1165
- function xr(e, t) {
1177
+ function Tr(e, t) {
1166
1178
  return e.map((e, n) => ({
1167
1179
  value: e,
1168
1180
  label: t?.[n] ?? e
@@ -1170,42 +1182,42 @@ function xr(e, t) {
1170
1182
  }
1171
1183
  //#endregion
1172
1184
  //#region src/filters/utils/parse-free-text-input.ts
1173
- function Sr(e) {
1185
+ function Er(e) {
1174
1186
  return e.split(",").map((e) => e.trim()).filter((e) => e.length > 0);
1175
1187
  }
1176
1188
  //#endregion
1177
1189
  //#region src/filters/utils/build-filter-condition.ts
1178
- function Cr(e) {
1190
+ function Dr(e) {
1179
1191
  let { provider: t, operator: n, selectedOptions: r = [], freeText: i = "" } = e;
1180
1192
  if (!t || !n) return !1;
1181
- if (!hr(n)) return !0;
1193
+ if (!yr(n)) return !0;
1182
1194
  if (t.allowFreeText && !t.valueLoader && t.kind !== "enum") {
1183
- let e = Sr(i);
1195
+ let e = Er(i);
1184
1196
  if (e.length === 0) return !1;
1185
1197
  if (e.length > 1) {
1186
- let r = vr(t, n, e.length);
1198
+ let r = Sr(t, n, e.length);
1187
1199
  if (r === "eq" || r === "neq") return !1;
1188
1200
  }
1189
1201
  return !0;
1190
1202
  }
1191
1203
  if (r.length === 0) return !1;
1192
1204
  if (r.length > 1) {
1193
- let e = vr(t, n, r.length);
1205
+ let e = Sr(t, n, r.length);
1194
1206
  if (e === "eq" || e === "neq") return !1;
1195
1207
  }
1196
1208
  return !0;
1197
1209
  }
1198
- function wr(e) {
1199
- let { provider: t, operator: n, selectedOptions: r, freeText: i } = e, a = hr(n), o, s;
1210
+ function Or(e) {
1211
+ let { provider: t, operator: n, selectedOptions: r, freeText: i } = e, a = yr(n), o, s;
1200
1212
  if (!a) o = [], s = [];
1201
1213
  else if (t.allowFreeText && !t.valueLoader && t.kind !== "enum") {
1202
- let e = br(Sr(i));
1214
+ let e = wr(Er(i));
1203
1215
  o = e.values, s = e.valueLabels;
1204
1216
  } else {
1205
- let e = br([...r]);
1217
+ let e = wr([...r]);
1206
1218
  o = e.values, s = e.valueLabels;
1207
1219
  }
1208
- let c = vr(t, n, o.length);
1220
+ let c = Sr(t, n, o.length);
1209
1221
  return {
1210
1222
  field: t.field,
1211
1223
  label: t.label,
@@ -1216,8 +1228,8 @@ function wr(e) {
1216
1228
  }
1217
1229
  //#endregion
1218
1230
  //#region src/filters/FilterPopoverForm.tsx
1219
- function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1 }) {
1220
- let i = p(), [a, o] = k(e?.field ?? null), [s, c] = k(e?.operator ?? null), [l, u] = k(() => e ? xr(e.value, e.valueLabels) : []), [d, f] = k(e?.value.join(", ") ?? ""), m = D(() => i.find((e) => e.field === a) ?? null, [i, a]), h = m && s ? _r(m, s) : !1, g = m?.kind ?? "async", _ = s ? hr(s) : !0, v = Cr({
1231
+ function kr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1 }) {
1232
+ let i = p(), [a, o] = k(e?.field ?? null), [s, c] = k(e?.operator ?? null), [l, u] = k(() => e ? Tr(e.value, e.valueLabels) : []), [d, f] = k(e?.value.join(", ") ?? ""), m = D(() => i.find((e) => e.field === a) ?? null, [i, a]), h = m && s ? xr(m, s) : !1, g = m?.kind ?? "async", _ = s ? yr(s) : !0, v = Dr({
1221
1233
  provider: m,
1222
1234
  operator: s,
1223
1235
  selectedOptions: l,
@@ -1232,12 +1244,12 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
1232
1244
  function x(e) {
1233
1245
  let t = h ? e : e.slice(0, 1);
1234
1246
  if (u(t), m && s) {
1235
- let e = vr(m, s, t.length);
1247
+ let e = Sr(m, s, t.length);
1236
1248
  e !== s && c(e);
1237
1249
  }
1238
1250
  }
1239
1251
  function S() {
1240
- !m || !s || t(wr({
1252
+ !m || !s || t(Or({
1241
1253
  provider: m,
1242
1254
  operator: s,
1243
1255
  selectedOptions: l,
@@ -1249,12 +1261,12 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
1249
1261
  disabled: !0,
1250
1262
  placeholder: "Search value…",
1251
1263
  "aria-label": "Filter value"
1252
- }) : g === "enum" && m.options ? /* @__PURE__ */ j(ar, {
1264
+ }) : g === "enum" && m.options ? /* @__PURE__ */ j(lr, {
1253
1265
  provider: m,
1254
1266
  selected: l,
1255
1267
  onSelectedChange: x,
1256
1268
  multiple: h
1257
- }, m.field) : m.valueLoader ? /* @__PURE__ */ j(ir, {
1269
+ }, m.field) : m.valueLoader ? /* @__PURE__ */ j(cr, {
1258
1270
  provider: m,
1259
1271
  selected: l,
1260
1272
  onSelectedChange: x,
@@ -1272,7 +1284,7 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
1272
1284
  return /* @__PURE__ */ M("div", {
1273
1285
  className: "flex w-[340px] flex-col gap-4 p-4",
1274
1286
  children: [
1275
- /* @__PURE__ */ M(we, { children: [/* @__PURE__ */ j(Ee, { children: "Filter by" }), /* @__PURE__ */ j(ur, {
1287
+ /* @__PURE__ */ M(we, { children: [/* @__PURE__ */ j(Ee, { children: "Filter by" }), /* @__PURE__ */ j(mr, {
1276
1288
  providers: i,
1277
1289
  selectedField: a,
1278
1290
  onFieldChange: y,
@@ -1288,7 +1300,7 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
1288
1300
  children: /* @__PURE__ */ j(Le, { placeholder: "Select operator…" })
1289
1301
  }), /* @__PURE__ */ j(Pe, { children: (m?.operators ?? []).map((e) => /* @__PURE__ */ j(Fe, {
1290
1302
  value: e,
1291
- children: mr(e)
1303
+ children: vr(e)
1292
1304
  }, e)) })]
1293
1305
  })] }),
1294
1306
  _ ? /* @__PURE__ */ M(we, { children: [/* @__PURE__ */ j(Ee, { children: "Filter value" }), C()] }) : null,
@@ -1313,31 +1325,31 @@ function Tr({ existingCondition: e, onApply: t, onCancel: n, showScopes: r = !1
1313
1325
  }
1314
1326
  //#endregion
1315
1327
  //#region src/filters/utils/filter-display.ts
1316
- function Er(e, t) {
1328
+ function Ar(e, t) {
1317
1329
  let n = e.value[t];
1318
1330
  if (n === void 0) return "";
1319
1331
  let r = e.valueLabels?.[t];
1320
1332
  return r != null && r !== "" ? r : n;
1321
1333
  }
1322
- function Dr(e) {
1334
+ function jr(e) {
1323
1335
  return e.value.length === 1 && e.operator === "in" ? "eq" : e.value.length === 1 && e.operator === "not_in" ? "neq" : e.operator;
1324
1336
  }
1325
- function Or(e) {
1326
- return dr[e] ?? e;
1337
+ function Mr(e) {
1338
+ return hr[e] ?? e;
1327
1339
  }
1328
- function kr(e) {
1340
+ function Nr(e) {
1329
1341
  if (e.value.length === 0) return e.label;
1330
- let t = Or(Dr(e));
1331
- return e.value.length > 1 ? `${e.label} ${t} (${e.value.length})` : `${e.label} ${t} ${Er(e, 0)}`;
1342
+ let t = Mr(jr(e));
1343
+ return e.value.length > 1 ? `${e.label} ${t} (${e.value.length})` : `${e.label} ${t} ${Ar(e, 0)}`;
1332
1344
  }
1333
- function Ar(e) {
1345
+ function Pr(e) {
1334
1346
  if (e.value.length === 0) return {
1335
1347
  name: e.label,
1336
1348
  operator: "",
1337
1349
  value: "",
1338
1350
  isCount: !1
1339
1351
  };
1340
- let t = Or(Dr(e));
1352
+ let t = Mr(jr(e));
1341
1353
  return e.value.length > 1 ? {
1342
1354
  name: e.label,
1343
1355
  operator: t,
@@ -1346,26 +1358,26 @@ function Ar(e) {
1346
1358
  } : {
1347
1359
  name: e.label,
1348
1360
  operator: t,
1349
- value: Er(e, 0),
1361
+ value: Ar(e, 0),
1350
1362
  isCount: !1
1351
1363
  };
1352
1364
  }
1353
- function jr(e) {
1365
+ function Fr(e) {
1354
1366
  if (e.value.length === 0) return e.label;
1355
- let t = Or(Dr(e));
1367
+ let t = Mr(jr(e));
1356
1368
  if (e.value.length > 1) {
1357
- let n = e.value.map((t, n) => Er(e, n));
1369
+ let n = e.value.map((t, n) => Ar(e, n));
1358
1370
  return `${e.label} ${t} [${n.join(", ")}]`;
1359
1371
  }
1360
- return `${e.label} ${t} ${Er(e, 0)}`;
1372
+ return `${e.label} ${t} ${Ar(e, 0)}`;
1361
1373
  }
1362
1374
  //#endregion
1363
1375
  //#region src/filters/FilterChip.tsx
1364
- function Mr(e, t, n) {
1376
+ function Ir(e, t, n) {
1365
1377
  return e ? t ? `Filter: ${n}` : `Edit filter: ${n}. Press Delete to remove.` : `Active filter: ${n}`;
1366
1378
  }
1367
- var Nr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0, disabled: i = !1, active: a = !1, className: o, "data-chip-index": s }, c) {
1368
- let l = Ar(e), u = jr(e), d = r && !i, f = pr.has(e.operator), [p, m] = k(!1);
1379
+ var Lr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0, disabled: i = !1, active: a = !1, className: o, "data-chip-index": s }, c) {
1380
+ let l = Pr(e), u = Fr(e), d = r && !i, f = _r.has(e.operator), [p, m] = k(!1);
1369
1381
  function h(e) {
1370
1382
  e.stopPropagation(), d && n?.();
1371
1383
  }
@@ -1392,7 +1404,7 @@ var Nr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0,
1392
1404
  ref: c,
1393
1405
  "data-chip-index": s,
1394
1406
  className: V("inline-flex items-center gap-1.5", f && r && "border-dashed border-highlight/40", f && !r && "border-dashed", i && "pointer-events-none opacity-50", o),
1395
- "aria-label": Mr(r, i, u),
1407
+ "aria-label": Ir(r, i, u),
1396
1408
  "aria-disabled": i || void 0,
1397
1409
  "data-active": a || void 0,
1398
1410
  onMouseEnter: () => d && m(!0),
@@ -1426,32 +1438,32 @@ var Nr = S(x(function({ condition: e, onEdit: t, onRemove: n, editable: r = !0,
1426
1438
  })
1427
1439
  }), /* @__PURE__ */ j(R, { children: u })] });
1428
1440
  }));
1429
- Nr.displayName = "FilterChip";
1441
+ Lr.displayName = "FilterChip";
1430
1442
  //#endregion
1431
1443
  //#region src/filters/utils/filter-condition-key.ts
1432
- function Pr(e) {
1444
+ function Rr(e) {
1433
1445
  let t = JSON.stringify([...e.value].sort());
1434
1446
  return `${e.field}:${e.operator}:${t}`;
1435
1447
  }
1436
1448
  //#endregion
1437
1449
  //#region src/filters/utils/merge-conditions.ts
1438
- var Fr = new Set(["eq", "in"]), Ir = new Set(["neq", "not_in"]);
1439
- function Lr(e) {
1440
- return Fr.has(e);
1450
+ var zr = new Set(["eq", "in"]), Br = new Set(["neq", "not_in"]);
1451
+ function Vr(e) {
1452
+ return zr.has(e);
1441
1453
  }
1442
- function Rr(e) {
1443
- return Ir.has(e);
1454
+ function Hr(e) {
1455
+ return Br.has(e);
1444
1456
  }
1445
- function zr(e, t) {
1446
- return e.field === t.field ? !!(Lr(e.operator) && Lr(t.operator) || Rr(e.operator) && Rr(t.operator)) : !1;
1457
+ function Ur(e, t) {
1458
+ return e.field === t.field ? !!(Vr(e.operator) && Vr(t.operator) || Hr(e.operator) && Hr(t.operator)) : !1;
1447
1459
  }
1448
- function Br(e, t, n) {
1449
- if (!zr(e, t)) return null;
1460
+ function Wr(e, t, n) {
1461
+ if (!Ur(e, t)) return null;
1450
1462
  let r = /* @__PURE__ */ new Set(), i = [], a = [];
1451
1463
  for (let n of [e, t]) n.value.forEach((e, t) => {
1452
1464
  r.has(e) || (r.add(e), i.push(e), a.push(n.valueLabels?.[t] ?? e));
1453
1465
  });
1454
- let o = vr(n, Lr(e.operator) ? "eq" : "neq", i.length);
1466
+ let o = Sr(n, Vr(e.operator) ? "eq" : "neq", i.length);
1455
1467
  return !n.operators.includes(o) || i.length > 1 && (o === "eq" || o === "neq") ? null : {
1456
1468
  field: e.field,
1457
1469
  label: e.label,
@@ -1462,11 +1474,11 @@ function Br(e, t, n) {
1462
1474
  }
1463
1475
  //#endregion
1464
1476
  //#region src/filters/FilterBar.tsx
1465
- function Vr(e, t) {
1477
+ function Gr(e, t) {
1466
1478
  return e ? e.mode === "add" ? "add" : t ? `edit-${t.field}-${t.operator}-${JSON.stringify(t.value)}` : `edit-${e.editIndex}` : "closed";
1467
1479
  }
1468
- function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r = !1, scopeFilterField: i, className: a }) {
1469
- let o = qn(i), [s, c] = k(null), l = O(null), u = O(/* @__PURE__ */ new Map()), d = O(null), f = O({ getBoundingClientRect: () => new DOMRect() }), p = s?.editIndex !== void 0 && s.editIndex >= 0 && s.editIndex < e.length, m = s !== null && (s.mode === "add" || p), h = p ? e[s.editIndex] : void 0, g = C((e) => {
1480
+ function Kr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r = !1, scopeFilterField: i, className: a }) {
1481
+ let o = Zn(i), [s, c] = k(null), l = O(null), u = O(/* @__PURE__ */ new Map()), d = O(null), f = O({ getBoundingClientRect: () => new DOMRect() }), p = s?.editIndex !== void 0 && s.editIndex >= 0 && s.editIndex < e.length, m = s !== null && (s.mode === "add" || p), h = p ? e[s.editIndex] : void 0, g = C((e) => {
1470
1482
  if (e) {
1471
1483
  let t = Number(e.dataset.chipIndex);
1472
1484
  u.current.set(t, e);
@@ -1497,7 +1509,7 @@ function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
1497
1509
  }
1498
1510
  let r = o.find((e) => e.field === n.field), i = e.findIndex((e) => e.field === n.field), a = i >= 0 ? e[i] : void 0;
1499
1511
  if (a && r) {
1500
- let o = Br(a, n, r);
1512
+ let o = Wr(a, n, r);
1501
1513
  if (o) {
1502
1514
  t(e.map((e, t) => t === i ? o : e)), b();
1503
1515
  return;
@@ -1542,7 +1554,7 @@ function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
1542
1554
  }) : null,
1543
1555
  e.map((e, t) => {
1544
1556
  let r = s?.mode === "edit" && s.editIndex === t;
1545
- return /* @__PURE__ */ j(Nr, {
1557
+ return /* @__PURE__ */ j(Lr, {
1546
1558
  ref: g,
1547
1559
  "data-chip-index": t,
1548
1560
  condition: e,
@@ -1551,7 +1563,7 @@ function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
1551
1563
  active: r,
1552
1564
  onEdit: () => v(t),
1553
1565
  onRemove: () => w(t)
1554
- }, Pr(e));
1566
+ }, Rr(e));
1555
1567
  }),
1556
1568
  n && e.length > 0 ? /* @__PURE__ */ j("button", {
1557
1569
  type: "button",
@@ -1570,44 +1582,44 @@ function Hr({ filters: e, onFiltersChange: t, editable: n = !0, showScopes: r =
1570
1582
  sideOffset: 8,
1571
1583
  className: "w-auto p-0",
1572
1584
  onOpenAutoFocus: E,
1573
- children: m ? /* @__PURE__ */ j(Tr, {
1585
+ children: m ? /* @__PURE__ */ j(kr, {
1574
1586
  existingCondition: h,
1575
1587
  onApply: S,
1576
1588
  onCancel: b,
1577
1589
  showScopes: r
1578
- }, Vr(s, h)) : null
1590
+ }, Gr(s, h)) : null
1579
1591
  })
1580
1592
  ]
1581
1593
  }) });
1582
1594
  }
1583
1595
  //#endregion
1584
1596
  //#region src/dashboards/WidgetGroupContext.tsx
1585
- var Ur = [], Wr = y(null), Gr = Wr.Provider;
1586
- function Kr() {
1587
- return w(Wr);
1597
+ var qr = [], Jr = y(null), Yr = Jr.Provider;
1598
+ function Xr() {
1599
+ return w(Jr);
1588
1600
  }
1589
1601
  //#endregion
1590
1602
  //#region src/dashboards/resolve-stable-time-range.ts
1591
- var qr = 6e4;
1592
- function Jr(e) {
1603
+ var Zr = 6e4;
1604
+ function Qr(e) {
1593
1605
  if (e.type === "absolute") return e;
1594
- let t = Gn(e.period);
1606
+ let t = Yn(e.period);
1595
1607
  return {
1596
1608
  type: "absolute",
1597
- from: Math.floor(t.from / qr) * qr,
1598
- to: Math.floor(t.to / qr) * qr
1609
+ from: Math.floor(t.from / Zr) * Zr,
1610
+ to: Math.floor(t.to / Zr) * Zr
1599
1611
  };
1600
1612
  }
1601
1613
  //#endregion
1602
1614
  //#region src/hooks/use-stable-time-range.ts
1603
- function Yr(e) {
1615
+ function $r(e) {
1604
1616
  return Math.floor(Date.now() / e);
1605
1617
  }
1606
- function Y(e) {
1607
- let t = Qt(), n = t?.intervalMs ?? 6e4, r = t?.isLive ?? !0, [i, a] = k(() => Yr(n));
1618
+ function J(e) {
1619
+ let t = Qt(), n = t?.intervalMs ?? 6e4, r = t?.isLive ?? !0, [i, a] = k(() => $r(n));
1608
1620
  return T(() => {
1609
1621
  if (e.type === "absolute" || !r) return;
1610
- let t, i = () => a(Yr(n)), o = n - Date.now() % n, s = setTimeout(() => {
1622
+ let t, i = () => a($r(n)), o = n - Date.now() % n, s = setTimeout(() => {
1611
1623
  i(), t = setInterval(i, n);
1612
1624
  }, o);
1613
1625
  if (typeof document < "u") {
@@ -1625,37 +1637,37 @@ function Y(e) {
1625
1637
  e.type,
1626
1638
  r,
1627
1639
  n
1628
- ]), D(() => Jr(e), [e, i]);
1640
+ ]), D(() => Qr(e), [e, i]);
1629
1641
  }
1630
1642
  //#endregion
1631
1643
  //#region src/dashboards/adapters/facets-adapter.ts
1632
- var Xr = 20;
1633
- function Zr(e) {
1634
- return e.length <= Xr ? e : `${e.slice(0, Xr - 1)}…`;
1644
+ var ei = 20;
1645
+ function ti(e) {
1646
+ return e.length <= ei ? e : `${e.slice(0, ei - 1)}…`;
1635
1647
  }
1636
- function Qr(e) {
1648
+ function ni(e) {
1637
1649
  return e.map((e) => ({
1638
1650
  category: e.value,
1639
1651
  value: e.count
1640
1652
  }));
1641
1653
  }
1642
- function $r(e) {
1654
+ function ri(e) {
1643
1655
  return e.map((e) => ({
1644
- category: Zr(e.label || e.value),
1656
+ category: ti(e.label || e.value),
1645
1657
  count: e.count
1646
1658
  }));
1647
1659
  }
1648
1660
  //#endregion
1649
1661
  //#region src/dashboards/use-merged-widget-filters.ts
1650
- function ei(e, t) {
1651
- return q(J(), t, e);
1662
+ function ii(e, t) {
1663
+ return K(q(), t, e);
1652
1664
  }
1653
1665
  //#endregion
1654
1666
  //#region src/dashboards/renderers/BarPresentation.tsx
1655
- var ti = 160, ni = 72, ri = 7, ii = 20;
1656
- function ai({ data: e, config: t, state: n, layout: r = "vertical" }) {
1667
+ var ai = 160, oi = 72, si = 7, ci = 20;
1668
+ function li({ data: e, config: t, state: n, layout: r = "vertical" }) {
1657
1669
  let i = D(() => {
1658
- if (!(r !== "horizontal" || e.length === 0)) return { left: Math.min(ti, Math.max(ni, e.reduce((e, t) => Math.max(e, t.category.length), 0) * ri + ii)) };
1670
+ if (!(r !== "horizontal" || e.length === 0)) return { left: Math.min(ai, Math.max(oi, e.reduce((e, t) => Math.max(e, t.category.length), 0) * si + ci)) };
1659
1671
  }, [e, r]);
1660
1672
  return /* @__PURE__ */ j(St, {
1661
1673
  config: t,
@@ -1671,8 +1683,8 @@ function ai({ data: e, config: t, state: n, layout: r = "vertical" }) {
1671
1683
  }
1672
1684
  //#endregion
1673
1685
  //#region src/dashboards/renderers/BarWidgetRenderer.tsx
1674
- function oi({ widget: e, timeRange: t, filters: n }) {
1675
- let r = ei(e.filters, n), i = Y(t), { data: a, isLoading: o, isError: s } = sn({
1686
+ function ui({ widget: e, timeRange: t, filters: n }) {
1687
+ let r = ii(e.filters, n), i = J(t), { data: a, isLoading: o, isError: s } = dn({
1676
1688
  field: e.field,
1677
1689
  timeRange: i,
1678
1690
  filters: r,
@@ -1682,13 +1694,13 @@ function oi({ widget: e, timeRange: t, filters: n }) {
1682
1694
  s && console.error(`[BarWidgetRenderer] Failed to fetch facets for widget "${e.title}"`);
1683
1695
  }, [s, e.title]);
1684
1696
  let { data: c, config: l } = D(() => a ? {
1685
- data: $r(a),
1697
+ data: ri(a),
1686
1698
  config: { count: { label: e.title } }
1687
1699
  } : {
1688
1700
  data: [],
1689
1701
  config: {}
1690
1702
  }, [a, e.title]);
1691
- return /* @__PURE__ */ j(ai, {
1703
+ return /* @__PURE__ */ j(li, {
1692
1704
  data: c,
1693
1705
  config: l,
1694
1706
  state: o ? "loading" : s ? "empty" : "ready",
@@ -1697,36 +1709,36 @@ function oi({ widget: e, timeRange: t, filters: n }) {
1697
1709
  }
1698
1710
  //#endregion
1699
1711
  //#region src/dashboards/adapters/status-palette.ts
1700
- var si = {
1712
+ var di = {
1701
1713
  "1XX": "var(--chart-5)",
1702
1714
  "2XX": "var(--success)",
1703
1715
  "3XX": "var(--chart-4)",
1704
1716
  "4XX": "var(--warning)",
1705
1717
  "5XX": "var(--destructive)"
1706
- }, ci = new Set([
1718
+ }, fi = new Set([
1707
1719
  "HTTP_STATUS_CODE_GROUP",
1708
1720
  "http_status_code_group",
1709
1721
  "status_code_group"
1710
1722
  ]);
1711
- function li(e, t, n) {
1723
+ function pi(e, t, n) {
1712
1724
  if (n?.[e]) return n[e];
1713
- if (t && ci.has(t)) return si[e.toUpperCase()];
1725
+ if (t && fi.has(t)) return di[e.toUpperCase()];
1714
1726
  }
1715
1727
  //#endregion
1716
1728
  //#region src/dashboards/adapters/time-series-adapter.ts
1717
- function ui(e) {
1729
+ function mi(e) {
1718
1730
  return e.replace(/[^a-zA-Z0-9_-]/g, "_");
1719
1731
  }
1720
- function di(e, t) {
1732
+ function hi(e, t) {
1721
1733
  let n = [], r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map();
1722
1734
  for (let t of e) i.set(t.metric, (i.get(t.metric) ?? 0) + 1);
1723
1735
  return e.forEach((e, a) => {
1724
- let o = t[a] ?? [], s = U(e.measure), c = `${ui(e.metric)}__${ui(s)}__${ui(e.representation)}`;
1736
+ let o = t[a] ?? [], s = U(e.measure), c = `${mi(e.metric)}__${mi(s)}__${mi(e.representation)}`;
1725
1737
  if (e.groupBy) {
1726
1738
  for (let t of o) {
1727
- let i = `${c}__${ui(t.key)}`;
1739
+ let i = `${c}__${mi(t.key)}`;
1728
1740
  if (r.has(i)) continue;
1729
- let a = li(t.key, e.groupBy, e.colorByGroup);
1741
+ let a = pi(t.key, e.groupBy, e.colorByGroup);
1730
1742
  n.push({
1731
1743
  dataKey: i,
1732
1744
  label: t.label,
@@ -1759,10 +1771,10 @@ function di(e, t) {
1759
1771
  seriesMap: r
1760
1772
  };
1761
1773
  }
1762
- function fi(e) {
1774
+ function gi(e) {
1763
1775
  let t = /* @__PURE__ */ new Map(), n = Infinity, r = -Infinity;
1764
1776
  for (let t of e.values()) for (let e of t) for (let t of e.points) t.timestamp < n && (n = t.timestamp), t.timestamp > r && (r = t.timestamp);
1765
- let i = r - n > pi ? gi : hi;
1777
+ let i = r - n > _i ? bi : yi;
1766
1778
  for (let n of e.values()) for (let e of n) for (let n of e.points) {
1767
1779
  let e = i(n.timestamp), r = t.get(e);
1768
1780
  (r === void 0 || n.timestamp < r) && t.set(e, n.timestamp);
@@ -1778,7 +1790,7 @@ function fi(e) {
1778
1790
  }
1779
1791
  return o;
1780
1792
  }
1781
- var pi = 1440 * 6e4, mi = [
1793
+ var _i = 1440 * 6e4, vi = [
1782
1794
  "Jan",
1783
1795
  "Feb",
1784
1796
  "Mar",
@@ -1792,25 +1804,25 @@ var pi = 1440 * 6e4, mi = [
1792
1804
  "Nov",
1793
1805
  "Dec"
1794
1806
  ];
1795
- function hi(e) {
1807
+ function yi(e) {
1796
1808
  let t = new Date(e);
1797
1809
  return `${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}`;
1798
1810
  }
1799
- function gi(e) {
1811
+ function bi(e) {
1800
1812
  let t = new Date(e);
1801
- return `${mi[t.getMonth()]} ${String(t.getDate()).padStart(2, "0")} ${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}`;
1813
+ return `${vi[t.getMonth()]} ${String(t.getDate()).padStart(2, "0")} ${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}`;
1802
1814
  }
1803
1815
  //#endregion
1804
1816
  //#region src/dashboards/compute-bucket-interval.ts
1805
- var _i = 6e4, vi = 48;
1806
- function yi(e, t) {
1807
- if (t <= 0) return _i;
1817
+ var xi = 6e4, Si = 48;
1818
+ function Ci(e, t) {
1819
+ if (t <= 0) return xi;
1808
1820
  let n = e.to - e.from, r = Math.floor(n / t);
1809
- return Math.max(_i, r);
1821
+ return Math.max(xi, r);
1810
1822
  }
1811
1823
  //#endregion
1812
1824
  //#region src/dashboards/renderers/CartesianPresentation.tsx
1813
- function bi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal: a, totalLabel: o }) {
1825
+ function wi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal: a, totalLabel: o }) {
1814
1826
  let s = Object.keys(t), c = n.some((e) => e.representation === "bar") ? "band" : "point";
1815
1827
  return /* @__PURE__ */ j(St, {
1816
1828
  config: t,
@@ -1823,8 +1835,8 @@ function bi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal
1823
1835
  children: [
1824
1836
  /* @__PURE__ */ j(Ot, {}),
1825
1837
  s.map((e) => {
1826
- let t = r?.[e] ?? xi(e, n);
1827
- return t ? Si(e, t) : null;
1838
+ let t = r?.[e] ?? Ti(e, n);
1839
+ return t ? Ei(e, t) : null;
1828
1840
  }),
1829
1841
  /* @__PURE__ */ j(Nt, {}),
1830
1842
  /* @__PURE__ */ j(Pt, {}),
@@ -1837,10 +1849,10 @@ function bi({ data: e, config: t, series: n, seriesByKey: r, state: i, showTotal
1837
1849
  })
1838
1850
  });
1839
1851
  }
1840
- function xi(e, t) {
1852
+ function Ti(e, t) {
1841
1853
  return t.find((t) => e === t.metric || e.startsWith(`${t.metric}_`));
1842
1854
  }
1843
- function Si(e, t) {
1855
+ function Ei(e, t) {
1844
1856
  switch (t.representation) {
1845
1857
  case "line": return /* @__PURE__ */ j(kt, {
1846
1858
  dataKey: e,
@@ -1861,14 +1873,14 @@ function Si(e, t) {
1861
1873
  }
1862
1874
  //#endregion
1863
1875
  //#region src/dashboards/renderers/CartesianWidgetRenderer.tsx
1864
- function Ci({ widget: e, timeRange: t, filters: n }) {
1865
- let r = ei(e.filters, n), i = m(), a = Y(t), o = D(() => yi(a, 48), [a]), s = te({ queries: e.series.map((e) => {
1876
+ function Di({ widget: e, timeRange: t, filters: n }) {
1877
+ let r = ii(e.filters, n), i = m(), a = J(t), o = D(() => Ci(a, 48), [a]), s = te({ queries: e.series.map((e) => {
1866
1878
  let t = [{
1867
1879
  name: e.metric,
1868
1880
  measures: [U(e.measure)]
1869
1881
  }], n = e.groupBy ? [e.groupBy] : void 0;
1870
1882
  return {
1871
- queryKey: K.timeSeries(t, a, o, r, n),
1883
+ queryKey: G.timeSeries(t, a, o, r, n),
1872
1884
  queryFn: ({ signal: e }) => i.fetchTimeSeries({
1873
1885
  metrics: t,
1874
1886
  timeRange: a,
@@ -1884,18 +1896,18 @@ function Ci({ widget: e, timeRange: t, filters: n }) {
1884
1896
  l && console.error(`[CartesianWidgetRenderer] One or more series queries failed for widget "${e.title}"`);
1885
1897
  }, [l, e.title]);
1886
1898
  let u = s.map((e) => e.dataUpdatedAt).join(","), { data: d, config: f, seriesByKey: p } = D(() => {
1887
- let { elements: t, seriesMap: n } = di(e.series, s.map((e) => e?.data)), r = {}, i = {};
1899
+ let { elements: t, seriesMap: n } = hi(e.series, s.map((e) => e?.data)), r = {}, i = {};
1888
1900
  for (let e of t) {
1889
1901
  let t = { label: e.label };
1890
1902
  e.color && (t.color = e.color), r[e.dataKey] = t, i[e.dataKey] = e.series;
1891
1903
  }
1892
1904
  return {
1893
- data: fi(n),
1905
+ data: gi(n),
1894
1906
  config: r,
1895
1907
  seriesByKey: i
1896
1908
  };
1897
1909
  }, [e.series, u]), h = c ? "loading" : l ? "empty" : "ready";
1898
- return /* @__PURE__ */ j(bi, {
1910
+ return /* @__PURE__ */ j(wi, {
1899
1911
  data: d,
1900
1912
  config: f,
1901
1913
  series: [...e.series],
@@ -1907,7 +1919,7 @@ function Ci({ widget: e, timeRange: t, filters: n }) {
1907
1919
  }
1908
1920
  //#endregion
1909
1921
  //#region src/dashboards/renderers/DoughnutPresentation.tsx
1910
- function wi({ data: e, config: t, state: n }) {
1922
+ function Oi({ data: e, config: t, state: n }) {
1911
1923
  return /* @__PURE__ */ j(St, {
1912
1924
  config: t,
1913
1925
  className: "h-full w-full",
@@ -1920,8 +1932,8 @@ function wi({ data: e, config: t, state: n }) {
1920
1932
  }
1921
1933
  //#endregion
1922
1934
  //#region src/dashboards/renderers/DoughnutWidgetRenderer.tsx
1923
- function Ti({ widget: e, timeRange: t, filters: n }) {
1924
- let r = ei(e.filters, n), i = Y(t), { data: a, isLoading: o, isError: s } = sn({
1935
+ function ki({ widget: e, timeRange: t, filters: n }) {
1936
+ let r = ii(e.filters, n), i = J(t), { data: a, isLoading: o, isError: s } = dn({
1925
1937
  field: e.field,
1926
1938
  timeRange: i,
1927
1939
  filters: r,
@@ -1935,14 +1947,14 @@ function Ti({ widget: e, timeRange: t, filters: n }) {
1935
1947
  data: [],
1936
1948
  config: {}
1937
1949
  };
1938
- let e = Qr(a), t = {};
1950
+ let e = ni(a), t = {};
1939
1951
  for (let e of a) t[e.value] = { label: e.label || e.value };
1940
1952
  return {
1941
1953
  data: e,
1942
1954
  config: t
1943
1955
  };
1944
1956
  }, [a]);
1945
- return /* @__PURE__ */ j(wi, {
1957
+ return /* @__PURE__ */ j(Oi, {
1946
1958
  data: c,
1947
1959
  config: l,
1948
1960
  state: o ? "loading" : s ? "empty" : "ready"
@@ -1950,18 +1962,18 @@ function Ti({ widget: e, timeRange: t, filters: n }) {
1950
1962
  }
1951
1963
  //#endregion
1952
1964
  //#region src/dashboards/adapters/measures-adapter.ts
1953
- function Ei(e, t) {
1965
+ function Ai(e, t) {
1954
1966
  if (e.measures.length !== 0) return t ? e.measures.find((e) => e.name === t)?.value : e.measures[0].value;
1955
1967
  }
1956
- function Di(e, t) {
1957
- let n = Ei(e, t);
1968
+ function ji(e, t) {
1969
+ let n = Ai(e, t);
1958
1970
  return {
1959
- value: n === void 0 ? "—" : Ni(n, e.unit),
1971
+ value: n === void 0 ? "—" : Li(n, e.unit),
1960
1972
  label: e.name,
1961
1973
  unit: e.unit
1962
1974
  };
1963
1975
  }
1964
- function Oi(e, t) {
1976
+ function Mi(e, t) {
1965
1977
  if (t === void 0) return;
1966
1978
  if (t === 0) return {
1967
1979
  value: 0,
@@ -1976,17 +1988,17 @@ function Oi(e, t) {
1976
1988
  direction: n > 0 ? "up" : "down"
1977
1989
  };
1978
1990
  }
1979
- function ki(e, t) {
1991
+ function Ni(e, t) {
1980
1992
  if (!e || e.length === 0) return;
1981
1993
  let n = t ? e.find((e) => e.key === t) : e[0];
1982
1994
  if (!(!n || n.points.length < 2)) return n.points.slice().sort((e, t) => e.timestamp - t.timestamp).map((e) => e.value);
1983
1995
  }
1984
- var Ai = new Set([
1996
+ var Pi = new Set([
1985
1997
  "B",
1986
1998
  "KB",
1987
1999
  "MB",
1988
2000
  "GB"
1989
- ]), ji = {
2001
+ ]), Fi = {
1990
2002
  PERCENT: { suffix: "%" },
1991
2003
  MILLISECONDS: { suffix: "ms" },
1992
2004
  SECONDS: { suffix: "s" },
@@ -1996,17 +2008,17 @@ var Ai = new Set([
1996
2008
  GIGABYTES: { suffix: "GB" },
1997
2009
  COUNT: { suffix: "" },
1998
2010
  COUNT_PER_SECOND: { suffix: "/s" }
1999
- }, Mi = /* @__PURE__ */ new Set();
2000
- function Ni(e, t) {
2001
- let n = t ? ji[t] : void 0;
2002
- if (t && !n && !Mi.has(t) && (Mi.add(t), console.warn(`[formatMeasureValue] Unknown unit "${t}" — value will be displayed without unit`)), n?.suffix === "%") return `${(Math.round(e * 10) / 10).toLocaleString()}%`;
2011
+ }, Ii = /* @__PURE__ */ new Set();
2012
+ function Li(e, t) {
2013
+ let n = t ? Fi[t] : void 0;
2014
+ if (t && !n && !Ii.has(t) && (Ii.add(t), console.warn(`[formatMeasureValue] Unknown unit "${t}" — value will be displayed without unit`)), n?.suffix === "%") return `${(Math.round(e * 10) / 10).toLocaleString()}%`;
2003
2015
  if (n?.suffix === "ms" && e >= 1e3) return `${(e / 1e3).toFixed(2)} s`;
2004
- let r = n !== void 0 && Ai.has(n.suffix) ? e.toLocaleString() : e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}k` : e.toLocaleString(), i = n?.suffix;
2016
+ let r = n !== void 0 && Pi.has(n.suffix) ? e.toLocaleString() : e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}k` : e.toLocaleString(), i = n?.suffix;
2005
2017
  return i ? `${r}${i === "" ? "" : ` ${i}`}` : r;
2006
2018
  }
2007
2019
  //#endregion
2008
2020
  //#region src/dashboards/compute-previous-time-range.ts
2009
- function Pi(e) {
2021
+ function Ri(e) {
2010
2022
  let t = e.to - e.from;
2011
2023
  return {
2012
2024
  type: "absolute",
@@ -2016,7 +2028,7 @@ function Pi(e) {
2016
2028
  }
2017
2029
  //#endregion
2018
2030
  //#region src/dashboards/renderers/MetricGroupPresentation.tsx
2019
- function Fi({ items: e, state: t, skeletonCount: n }) {
2031
+ function zi({ items: e, state: t, skeletonCount: n }) {
2020
2032
  return /* @__PURE__ */ j(jt, {
2021
2033
  items: e,
2022
2034
  state: t,
@@ -2025,7 +2037,7 @@ function Fi({ items: e, state: t, skeletonCount: n }) {
2025
2037
  }
2026
2038
  //#endregion
2027
2039
  //#region src/dashboards/renderers/MetricGroupWidgetRenderer.tsx
2028
- function Ii(e) {
2040
+ function Bi(e) {
2029
2041
  let t = /* @__PURE__ */ new Map();
2030
2042
  for (let n of e) {
2031
2043
  let e = t.get(n.name), r = n.measures ?? [];
@@ -2037,18 +2049,18 @@ function Ii(e) {
2037
2049
  measures: Array.from(t)
2038
2050
  }));
2039
2051
  }
2040
- function Li({ widget: e, timeRange: t, filters: n }) {
2041
- let r = ei(e.filters, n), i = e.items.some((e) => e.showTrend !== !1), a = Y(t), o = D(() => Ii(e.items.map((e) => ({
2052
+ function Vi({ widget: e, timeRange: t, filters: n }) {
2053
+ let r = ii(e.filters, n), i = e.items.some((e) => e.showTrend !== !1), a = J(t), o = D(() => Bi(e.items.map((e) => ({
2042
2054
  name: e.metric,
2043
2055
  measures: [U(e.measure)]
2044
- }))), [e.items]), s = D(() => Ii(e.items.filter((e) => e.showTrend !== !1).map((e) => ({
2056
+ }))), [e.items]), s = D(() => Bi(e.items.filter((e) => e.showTrend !== !1).map((e) => ({
2045
2057
  name: e.metric,
2046
2058
  measures: [U(e.measure)]
2047
- }))), [e.items]), c = D(() => Pi(a), [a]), { data: l, isLoading: u, isError: d } = fn({
2059
+ }))), [e.items]), c = D(() => Ri(a), [a]), { data: l, isLoading: u, isError: d } = gn({
2048
2060
  metrics: o,
2049
2061
  timeRange: a,
2050
2062
  filters: r
2051
- }), { data: f, isError: p } = fn({
2063
+ }), { data: f, isError: p } = gn({
2052
2064
  metrics: s,
2053
2065
  timeRange: c,
2054
2066
  filters: r,
@@ -2058,7 +2070,7 @@ function Li({ widget: e, timeRange: t, filters: n }) {
2058
2070
  d && console.error(`[MetricGroupWidgetRenderer] Failed to fetch measures for "${e.title}"`);
2059
2071
  }, [d, e.title]), T(() => {
2060
2072
  p && console.error(`[MetricGroupWidgetRenderer] Failed to fetch previous-period measures for "${e.title}"`);
2061
- }, [p, e.title]), /* @__PURE__ */ j(Fi, {
2073
+ }, [p, e.title]), /* @__PURE__ */ j(zi, {
2062
2074
  items: D(() => {
2063
2075
  let t = new Map(l?.map((e) => [e.name, e]) ?? []), n = new Map(f?.map((e) => [e.name, e]) ?? []);
2064
2076
  return e.items.map((e) => {
@@ -2067,11 +2079,11 @@ function Li({ widget: e, timeRange: t, filters: n }) {
2067
2079
  value: "—",
2068
2080
  label: e.label ?? e.metric
2069
2081
  };
2070
- let i = U(e.measure), a = Di(r, i), o = e.showTrend !== !1, s = Ei(r, i), c = n.get(e.metric), l = c ? Ei(c, i) : void 0;
2082
+ let i = U(e.measure), a = ji(r, i), o = e.showTrend !== !1, s = Ai(r, i), c = n.get(e.metric), l = c ? Ai(c, i) : void 0;
2071
2083
  return {
2072
2084
  value: a.value,
2073
2085
  label: e.label ?? r.name,
2074
- trend: o && s !== void 0 ? Oi(s, l) : void 0,
2086
+ trend: o && s !== void 0 ? Mi(s, l) : void 0,
2075
2087
  trendSentiment: e.sentiment
2076
2088
  };
2077
2089
  });
@@ -2086,7 +2098,7 @@ function Li({ widget: e, timeRange: t, filters: n }) {
2086
2098
  }
2087
2099
  //#endregion
2088
2100
  //#region src/dashboards/renderers/MetricPresentation.tsx
2089
- function Ri({ value: e, label: t, state: n, trend: r, trendSentiment: i, sparklineData: a }) {
2101
+ function Hi({ value: e, label: t, state: n, trend: r, trendSentiment: i, sparklineData: a }) {
2090
2102
  return /* @__PURE__ */ j(At, {
2091
2103
  value: e,
2092
2104
  label: t,
@@ -2098,20 +2110,20 @@ function Ri({ value: e, label: t, state: n, trend: r, trendSentiment: i, sparkli
2098
2110
  }
2099
2111
  //#endregion
2100
2112
  //#region src/dashboards/renderers/MetricWidgetRenderer.tsx
2101
- function zi({ widget: e, timeRange: t, filters: n }) {
2102
- let r = ei(e.filters, n), i = e.showTrend === !0, a = e.showSparkline === !0, o = Y(t), s = U(e.measure), c = D(() => [{
2113
+ function Ui({ widget: e, timeRange: t, filters: n }) {
2114
+ let r = ii(e.filters, n), i = e.showTrend === !0, a = e.showSparkline === !0, o = J(t), s = U(e.measure), c = D(() => [{
2103
2115
  name: e.metric,
2104
2116
  measures: [s]
2105
- }], [e.metric, s]), l = D(() => Pi(o), [o]), u = D(() => yi(o, 48), [o]), { data: d, isLoading: f, isError: p } = fn({
2117
+ }], [e.metric, s]), l = D(() => Ri(o), [o]), u = D(() => Ci(o, 48), [o]), { data: d, isLoading: f, isError: p } = gn({
2106
2118
  metrics: c,
2107
2119
  timeRange: o,
2108
2120
  filters: r
2109
- }), { data: m, isError: h } = fn({
2121
+ }), { data: m, isError: h } = gn({
2110
2122
  metrics: c,
2111
2123
  timeRange: l,
2112
2124
  filters: r,
2113
2125
  enabled: i
2114
- }), { data: g, isError: _ } = mn({
2126
+ }), { data: g, isError: _ } = vn({
2115
2127
  metrics: c,
2116
2128
  timeRange: o,
2117
2129
  interval: u,
@@ -2125,8 +2137,8 @@ function zi({ widget: e, timeRange: t, filters: n }) {
2125
2137
  }, [h, e.metric]), T(() => {
2126
2138
  _ && console.error(`[MetricWidgetRenderer] Failed to fetch sparkline data for "${e.metric}"`);
2127
2139
  }, [_, e.metric]);
2128
- let v = d?.[0], y = m?.[0], b = v ? Di(v, s) : void 0, x = v ? Ei(v, s) : void 0, S = y ? Ei(y, s) : void 0, C = i && x !== void 0 ? Oi(x, S) : void 0, w = a ? ki(g, e.metric) : void 0, E = f ? "loading" : p || !f && !v ? "empty" : "ready";
2129
- return /* @__PURE__ */ j(Ri, {
2140
+ let v = d?.[0], y = m?.[0], b = v ? ji(v, s) : void 0, x = v ? Ai(v, s) : void 0, S = y ? Ai(y, s) : void 0, C = i && x !== void 0 ? Mi(x, S) : void 0, w = a ? Ni(g, e.metric) : void 0, E = f ? "loading" : p || !f && !v ? "empty" : "ready";
2141
+ return /* @__PURE__ */ j(Hi, {
2130
2142
  value: b?.value ?? "—",
2131
2143
  label: e.title,
2132
2144
  state: E,
@@ -2137,25 +2149,25 @@ function zi({ widget: e, timeRange: t, filters: n }) {
2137
2149
  }
2138
2150
  //#endregion
2139
2151
  //#region src/dashboards/widget-renderer-registry.ts
2140
- var Bi = /* @__PURE__ */ new Map();
2141
- function Vi(e, t) {
2142
- Bi.set(e, t);
2152
+ var Wi = /* @__PURE__ */ new Map();
2153
+ function Y(e, t) {
2154
+ Wi.set(e, t);
2143
2155
  }
2144
- function Hi(e) {
2145
- return Bi.get(e);
2156
+ function Gi(e) {
2157
+ return Wi.get(e);
2146
2158
  }
2147
- function Ui() {
2148
- Bi.clear();
2159
+ function Ki() {
2160
+ Wi.clear();
2149
2161
  }
2150
2162
  //#endregion
2151
2163
  //#region src/dashboards/register-default-renderers.ts
2152
- var Wi = !1;
2153
- function Gi() {
2154
- Wi || (Wi = !0, Vi("cartesian", Ci), Vi("doughnut", Ti), Vi("bar", oi), Vi("metric", zi), Vi("metric-group", Li));
2164
+ var qi = !1;
2165
+ function Ji() {
2166
+ qi || (qi = !0, Y("cartesian", Di), Y("doughnut", ki), Y("bar", ui), Y("metric", Ui), Y("metric-group", Vi));
2155
2167
  }
2156
2168
  //#endregion
2157
2169
  //#region src/dashboards/renderers/UnknownWidgetFallback.tsx
2158
- function Ki({ widget: e }) {
2170
+ function Yi({ widget: e }) {
2159
2171
  return /* @__PURE__ */ M("div", {
2160
2172
  role: "alert",
2161
2173
  className: "flex h-full flex-col items-center justify-center gap-2 rounded-lg border border-dashed border-destructive/30 bg-destructive/5 p-4 text-center",
@@ -2174,28 +2186,28 @@ function Ki({ widget: e }) {
2174
2186
  }
2175
2187
  //#endregion
2176
2188
  //#region src/dashboards/WidgetItem.tsx
2177
- Gi();
2178
- function qi(e) {
2179
- return e.data ? Yi(e.widget, e.data) : /* @__PURE__ */ j(Ji, {
2189
+ Ji();
2190
+ function Xi(e) {
2191
+ return e.data ? Qi(e.widget, e.data) : /* @__PURE__ */ j(Zi, {
2180
2192
  widget: e.widget,
2181
2193
  timeRange: e.timeRange,
2182
2194
  filters: e.filters
2183
2195
  });
2184
2196
  }
2185
- function Ji({ widget: e, timeRange: t, filters: n }) {
2186
- let r = Kr(), i = t ?? r?.timeRange, a = n ?? r?.filters ?? Ur;
2197
+ function Zi({ widget: e, timeRange: t, filters: n }) {
2198
+ let r = Xr(), i = t ?? r?.timeRange, a = n ?? r?.filters ?? qr;
2187
2199
  if (!i) throw Error("[gamma-lib-observability] <WidgetItem> requires a timeRange. Provide it as a prop or wrap the component in a <WidgetGroup>.");
2188
- let o = Hi(e.type);
2200
+ let o = Gi(e.type);
2189
2201
  return o ? b(o, {
2190
2202
  widget: e,
2191
2203
  timeRange: i,
2192
2204
  filters: a
2193
- }) : /* @__PURE__ */ j(Ki, { widget: e });
2205
+ }) : /* @__PURE__ */ j(Yi, { widget: e });
2194
2206
  }
2195
- function Yi(e, t) {
2207
+ function Qi(e, t) {
2196
2208
  if (t.type !== e.type) throw Error(`[gamma-lib-observability] <WidgetItem> data.type "${t.type}" does not match widget.type "${e.type}". The data.type must match the widget definition type.`);
2197
2209
  switch (t.type) {
2198
- case "metric": return /* @__PURE__ */ j(Ri, {
2210
+ case "metric": return /* @__PURE__ */ j(Hi, {
2199
2211
  value: t.value,
2200
2212
  label: t.label,
2201
2213
  state: t.state,
@@ -2203,12 +2215,12 @@ function Yi(e, t) {
2203
2215
  trendSentiment: t.trendSentiment,
2204
2216
  sparklineData: t.sparklineData
2205
2217
  });
2206
- case "metric-group": return /* @__PURE__ */ j(Fi, {
2218
+ case "metric-group": return /* @__PURE__ */ j(zi, {
2207
2219
  items: t.items,
2208
2220
  state: t.state,
2209
2221
  skeletonCount: t.skeletonCount
2210
2222
  });
2211
- case "cartesian": return /* @__PURE__ */ j(bi, {
2223
+ case "cartesian": return /* @__PURE__ */ j(wi, {
2212
2224
  data: t.data,
2213
2225
  config: t.config,
2214
2226
  series: t.series,
@@ -2216,30 +2228,30 @@ function Yi(e, t) {
2216
2228
  showTotal: t.showTotal,
2217
2229
  totalLabel: t.totalLabel
2218
2230
  });
2219
- case "bar": return /* @__PURE__ */ j(ai, {
2231
+ case "bar": return /* @__PURE__ */ j(li, {
2220
2232
  data: t.data,
2221
2233
  config: t.config,
2222
2234
  state: t.state,
2223
2235
  layout: t.layout
2224
2236
  });
2225
- case "doughnut": return /* @__PURE__ */ j(wi, {
2237
+ case "doughnut": return /* @__PURE__ */ j(Oi, {
2226
2238
  data: t.data,
2227
2239
  config: t.config,
2228
2240
  state: t.state
2229
2241
  });
2230
- default: return /* @__PURE__ */ j(Ki, { widget: e });
2242
+ default: return /* @__PURE__ */ j(Yi, { widget: e });
2231
2243
  }
2232
2244
  }
2233
2245
  //#endregion
2234
2246
  //#region src/dashboards/DashboardView.tsx
2235
- var Xi = {
2247
+ var $i = {
2236
2248
  lg: 12,
2237
2249
  md: 12,
2238
2250
  sm: 12,
2239
2251
  xs: 12,
2240
2252
  xxs: 12
2241
2253
  };
2242
- function Zi({ dashboard: e, timeRange: t, filters: n = Ur, editable: r = !1, rowHeight: i, breakpointCols: o = Xi, onLayoutChange: s }) {
2254
+ function ea({ dashboard: e, timeRange: t, filters: n = qr, editable: r = !1, rowHeight: i, breakpointCols: o = $i, onLayoutChange: s }) {
2243
2255
  let c = a("observability.dashboards.write"), l = r && c, u = D(() => e.widgets.map((e) => ({
2244
2256
  id: e.id,
2245
2257
  x: e.layout.x,
@@ -2264,8 +2276,8 @@ function Zi({ dashboard: e, timeRange: t, filters: n = Ur, editable: r = !1, row
2264
2276
  return r ? /* @__PURE__ */ j(_t, {
2265
2277
  title: r.title,
2266
2278
  subtitle: r.description,
2267
- noPadding: Qi(r),
2268
- children: /* @__PURE__ */ j(qi, {
2279
+ noPadding: ta(r),
2280
+ children: /* @__PURE__ */ j(Xi, {
2269
2281
  widget: r,
2270
2282
  timeRange: t,
2271
2283
  filters: n
@@ -2275,32 +2287,32 @@ function Zi({ dashboard: e, timeRange: t, filters: n = Ur, editable: r = !1, row
2275
2287
  })
2276
2288
  });
2277
2289
  }
2278
- function Qi(e) {
2290
+ function ta(e) {
2279
2291
  return e.type === "cartesian" || e.type === "doughnut" || e.type === "bar";
2280
2292
  }
2281
2293
  //#endregion
2282
2294
  //#region src/dashboards/WidgetGroup.tsx
2283
- var $i = {
2295
+ var na = {
2284
2296
  stretch: "items-stretch",
2285
2297
  center: "items-center",
2286
2298
  start: "items-start",
2287
2299
  end: "items-end"
2288
2300
  };
2289
- function ea({ timeRange: e, filters: t = Ur, align: n = "stretch", children: r }) {
2290
- return /* @__PURE__ */ j(Gr, {
2301
+ function ra({ timeRange: e, filters: t = qr, align: n = "stretch", children: r }) {
2302
+ return /* @__PURE__ */ j(Yr, {
2291
2303
  value: D(() => ({
2292
2304
  timeRange: e,
2293
2305
  filters: t
2294
2306
  }), [e, t]),
2295
2307
  children: /* @__PURE__ */ j("div", {
2296
- className: `flex flex-wrap gap-4 ${$i[n]} *:min-w-48 *:flex-1`,
2308
+ className: `flex flex-wrap gap-4 ${na[n]} *:min-w-48 *:flex-1`,
2297
2309
  children: r
2298
2310
  })
2299
2311
  });
2300
2312
  }
2301
2313
  //#endregion
2302
2314
  //#region src/dashboards/templates/dashboard-template.ts
2303
- function ta(e) {
2315
+ function ia(e) {
2304
2316
  if (!e.id) throw Error("[gamma-lib-observability] DashboardTemplate must have a non-empty id.");
2305
2317
  if (!e.label) throw Error(`[gamma-lib-observability] DashboardTemplate "${e.id}" must have a non-empty label.`);
2306
2318
  if (!e.dashboard) throw Error(`[gamma-lib-observability] DashboardTemplate "${e.id}" must define a dashboard or a factory function.`);
@@ -2313,37 +2325,37 @@ function ta(e) {
2313
2325
  dashboard: e.dashboard
2314
2326
  };
2315
2327
  }
2316
- function na(e, t) {
2328
+ function aa(e, t) {
2317
2329
  return typeof e.dashboard == "function" ? e.dashboard(t) : e.dashboard;
2318
2330
  }
2319
- function ra(e, t) {
2331
+ function oa(e, t) {
2320
2332
  return e.filter((e) => e.requiredCapabilities?.length ? e.requiredCapabilities.every((e) => t[e]) : !0);
2321
2333
  }
2322
2334
  //#endregion
2323
2335
  //#region src/dashboards/templates/DashboardTemplatesProvider.tsx
2324
- var ia = y(null);
2325
- function aa({ templates: e, children: t }) {
2336
+ var sa = y(null);
2337
+ function ca({ templates: e, children: t }) {
2326
2338
  let n = D(() => e, [e]);
2327
- return /* @__PURE__ */ j(ia.Provider, {
2339
+ return /* @__PURE__ */ j(sa.Provider, {
2328
2340
  value: n,
2329
2341
  children: t
2330
2342
  });
2331
2343
  }
2332
- function oa() {
2333
- let e = w(ia), t = o();
2344
+ function la() {
2345
+ let e = w(sa), t = o();
2334
2346
  if (!e) throw Error("[gamma-lib-observability] useDashboardTemplates must be used within a <DashboardTemplatesProvider>. Wrap your component tree with <DashboardTemplatesProvider templates={[...]}>.");
2335
- return D(() => ra(e, t), [e, t]);
2347
+ return D(() => oa(e, t), [e, t]);
2336
2348
  }
2337
- function sa(e) {
2338
- return oa().find((t) => t.id === e);
2349
+ function ua(e) {
2350
+ return la().find((t) => t.id === e);
2339
2351
  }
2340
2352
  //#endregion
2341
2353
  //#region src/live/LiveIndicator.tsx
2342
- function ca(e) {
2354
+ function da(e) {
2343
2355
  return e < 6e4 ? `${Math.round(e / 1e3)}s` : `${Math.round(e / 6e4)}min`;
2344
2356
  }
2345
- function la({ isFetching: e, className: t }) {
2346
- let n = Qt(), [r, i] = k(!0), a = C(() => i((e) => !e), []), o = n?.isLive ?? r, s = n?.intervalMs ?? 6e4, c = n?.toggle ?? a, l = e ?? n?.isFetching ?? !1, u = o ? `Live — refreshing every ${ca(s)}` : "Paused — click to resume";
2357
+ function fa({ isFetching: e, className: t }) {
2358
+ let n = Qt(), [r, i] = k(!0), a = C(() => i((e) => !e), []), o = n?.isLive ?? r, s = n?.intervalMs ?? 6e4, c = n?.toggle ?? a, l = e ?? n?.isFetching ?? !1, u = o ? `Live — refreshing every ${da(s)}` : "Paused — click to resume";
2347
2359
  return /* @__PURE__ */ M(L, { children: [/* @__PURE__ */ j(B, {
2348
2360
  asChild: !0,
2349
2361
  children: /* @__PURE__ */ M("button", {
@@ -2364,9 +2376,9 @@ function la({ isFetching: e, className: t }) {
2364
2376
  }
2365
2377
  //#endregion
2366
2378
  //#region src/routing/use-observability-url-state.ts
2367
- function ua() {
2368
- let [e, t] = Vt(), n = D(() => On(e.get("q"), e.get("v")), [e]), r = C((e, n) => {
2369
- let r = Dn({
2379
+ function pa() {
2380
+ let [e, t] = Vt(), n = D(() => Mn(e.get("q"), e.get("v")), [e]), r = C((e, n) => {
2381
+ let r = jn({
2370
2382
  conditions: n,
2371
2383
  timeRange: e
2372
2384
  });
@@ -2376,7 +2388,7 @@ function ua() {
2376
2388
  }, { replace: !0 });
2377
2389
  }, [t]), i = C((e) => r(e, n.conditions), [r, n.conditions]), a = C((e) => r(n.timeRange, e), [r, n.timeRange]);
2378
2390
  return {
2379
- timeRange: n.timeRange ?? Cn,
2391
+ timeRange: n.timeRange ?? Dn,
2380
2392
  filters: n.conditions,
2381
2393
  setTimeRange: i,
2382
2394
  setFilters: a
@@ -2384,7 +2396,7 @@ function ua() {
2384
2396
  }
2385
2397
  //#endregion
2386
2398
  //#region src/logs/LogSeverityBadge.tsx
2387
- var da = {
2399
+ var ma = {
2388
2400
  trace: "outline",
2389
2401
  debug: "secondary",
2390
2402
  info: "highlight",
@@ -2392,19 +2404,19 @@ var da = {
2392
2404
  error: "destructive",
2393
2405
  fatal: "destructive"
2394
2406
  };
2395
- function fa(e) {
2396
- return e in da;
2407
+ function ha(e) {
2408
+ return e in ma;
2397
2409
  }
2398
- function pa({ level: e }) {
2410
+ function ga({ level: e }) {
2399
2411
  let t = e.toLowerCase();
2400
2412
  return /* @__PURE__ */ j(P, {
2401
- variant: fa(t) ? da[t] : "secondary",
2413
+ variant: ha(t) ? ma[t] : "secondary",
2402
2414
  children: e.toUpperCase()
2403
2415
  });
2404
2416
  }
2405
2417
  //#endregion
2406
2418
  //#region src/logs/map-log-columns.tsx
2407
- var ma = {
2419
+ var _a = {
2408
2420
  GET: "success",
2409
2421
  POST: "default",
2410
2422
  PUT: "warning",
@@ -2413,7 +2425,7 @@ var ma = {
2413
2425
  HEAD: "secondary",
2414
2426
  OPTIONS: "secondary"
2415
2427
  };
2416
- function ha(e) {
2428
+ function va(e) {
2417
2429
  let t = typeof e == "number" ? new Date(e) : new Date(String(e));
2418
2430
  return Number.isNaN(t.getTime()) ? String(e) : new Intl.DateTimeFormat("en-US", {
2419
2431
  year: "numeric",
@@ -2426,11 +2438,11 @@ function ha(e) {
2426
2438
  hour12: !1
2427
2439
  }).format(t);
2428
2440
  }
2429
- function ga(e) {
2441
+ function ya(e) {
2430
2442
  let t = typeof e == "number" ? e : Number(e);
2431
2443
  return Number.isNaN(t) ? String(e) : t < 1e3 ? `${Math.round(t)}ms` : `${(t / 1e3).toFixed(2)}s`;
2432
2444
  }
2433
- function _a(e, t, n) {
2445
+ function ba(e, t, n) {
2434
2446
  let r = e.href?.(t);
2435
2447
  return r ? /* @__PURE__ */ j("a", {
2436
2448
  href: r,
@@ -2441,7 +2453,7 @@ function _a(e, t, n) {
2441
2453
  children: n
2442
2454
  }) : n;
2443
2455
  }
2444
- function va(e, t) {
2456
+ function xa(e, t) {
2445
2457
  if (e.render) return e.render(t);
2446
2458
  let n = e.value(t);
2447
2459
  if (n == null) return /* @__PURE__ */ j("span", {
@@ -2450,17 +2462,17 @@ function va(e, t) {
2450
2462
  });
2451
2463
  let r;
2452
2464
  switch (e.variant) {
2453
- case "badge": return /* @__PURE__ */ j(pa, { level: String(n) });
2465
+ case "badge": return /* @__PURE__ */ j(ga, { level: String(n) });
2454
2466
  case "datetime":
2455
2467
  r = /* @__PURE__ */ j("span", {
2456
2468
  className: "font-mono text-xs",
2457
- children: ha(n)
2469
+ children: va(n)
2458
2470
  });
2459
2471
  break;
2460
2472
  case "duration":
2461
2473
  r = /* @__PURE__ */ j("span", {
2462
2474
  className: "font-mono text-xs",
2463
- children: ga(n)
2475
+ children: ya(n)
2464
2476
  });
2465
2477
  break;
2466
2478
  case "status-code": {
@@ -2474,7 +2486,7 @@ function va(e, t) {
2474
2486
  case "http-method": {
2475
2487
  let e = String(n).toUpperCase();
2476
2488
  r = /* @__PURE__ */ j(P, {
2477
- variant: ma[e] ?? "secondary",
2489
+ variant: _a[e] ?? "secondary",
2478
2490
  children: e
2479
2491
  });
2480
2492
  break;
@@ -2484,26 +2496,26 @@ function va(e, t) {
2484
2496
  children: String(n)
2485
2497
  });
2486
2498
  }
2487
- return _a(e, t, r);
2499
+ return ba(e, t, r);
2488
2500
  }
2489
- function ya(e) {
2501
+ function Sa(e) {
2490
2502
  return e.map((e) => ({
2491
2503
  id: e.key,
2492
2504
  accessorFn: (t) => e.value(t),
2493
2505
  header: e.label,
2494
- cell: ({ row: t }) => va(e, t.original),
2506
+ cell: ({ row: t }) => xa(e, t.original),
2495
2507
  enableSorting: !1,
2496
2508
  enableHiding: !0
2497
2509
  }));
2498
2510
  }
2499
- function ba(e) {
2511
+ function Ca(e) {
2500
2512
  let t = {};
2501
2513
  for (let n of e) n.defaultVisible === !1 && (t[n.key] = !1);
2502
2514
  return t;
2503
2515
  }
2504
2516
  //#endregion
2505
2517
  //#region src/logs/LogTable.tsx
2506
- function xa(e, t) {
2518
+ function wa(e, t) {
2507
2519
  try {
2508
2520
  let n = localStorage.getItem(e);
2509
2521
  return n ? {
@@ -2514,23 +2526,23 @@ function xa(e, t) {
2514
2526
  return typeof console < "u" && console.warn("[LogTable] Failed to read column visibility:", e), t;
2515
2527
  }
2516
2528
  }
2517
- function Sa(e, t) {
2529
+ function Ta(e, t) {
2518
2530
  try {
2519
2531
  localStorage.setItem(e, JSON.stringify(t));
2520
2532
  } catch (e) {
2521
2533
  typeof console < "u" && console.warn("[LogTable] Failed to persist column visibility:", e);
2522
2534
  }
2523
2535
  }
2524
- function Ca({ columns: e, data: t, loading: n, totalCount: r, page: i, pageSize: a, onPageChange: o, onPageSizeChange: s, pageSizeOptions: c = [
2536
+ function Ea({ columns: e, data: t, loading: n, totalCount: r, page: i, pageSize: a, onPageChange: o, onPageSizeChange: s, pageSizeOptions: c = [
2525
2537
  10,
2526
2538
  25,
2527
2539
  50,
2528
2540
  100
2529
2541
  ], onRowClick: l, toolbar: u, getRowId: d, columnVisibilityStorageKey: f }) {
2530
- let p = D(() => ya(e), [e]), m = D(() => ba(e), [e]), [h, g] = k(() => f ? xa(f, m) : m), _ = C((e) => {
2542
+ let p = D(() => Sa(e), [e]), m = D(() => Ca(e), [e]), [h, g] = k(() => f ? wa(f, m) : m), _ = C((e) => {
2531
2543
  g((t) => {
2532
2544
  let n = typeof e == "function" ? e(t) : e;
2533
- return f && Sa(f, n), n;
2545
+ return f && Ta(f, n), n;
2534
2546
  });
2535
2547
  }, [f]), v = C((e) => {
2536
2548
  if (!l) return;
@@ -2593,26 +2605,26 @@ function Ca({ columns: e, data: t, loading: n, totalCount: r, page: i, pageSize:
2593
2605
  }
2594
2606
  //#endregion
2595
2607
  //#region src/hooks/use-logs-histogram-query.ts
2596
- var wa = 40, Ta = "HTTP_REQUESTS", Ea = "COUNT", Da = {
2608
+ var Da = 40, Oa = "HTTP_REQUESTS", ka = "COUNT", Aa = {
2597
2609
  from: 100,
2598
2610
  to: 399
2599
- }, Oa = {
2611
+ }, ja = {
2600
2612
  from: 400,
2601
2613
  to: 499
2602
- }, ka = {
2614
+ }, Ma = {
2603
2615
  from: 500,
2604
2616
  to: 599
2605
2617
  };
2606
- function Aa(e) {
2607
- let { timeRange: t, filters: r, enabled: i = !0 } = e, a = n(), o = q(J(), r), s = Y(t), c = D(() => yi(s, wa), [s]), l = D(() => [{
2608
- name: Ta,
2609
- measures: [Ea]
2618
+ function Na(e) {
2619
+ let { timeRange: t, filters: r, enabled: i = !0 } = e, a = n(), o = K(q(), r), s = J(t), c = D(() => Ci(s, Da), [s]), l = D(() => [{
2620
+ name: Oa,
2621
+ measures: [ka]
2610
2622
  }], []), u = D(() => ["HTTP_STATUS"], []), d = D(() => [
2611
- Da,
2612
- Oa,
2613
- ka
2623
+ Aa,
2624
+ ja,
2625
+ Ma
2614
2626
  ], []), f = N({
2615
- queryKey: [...K.timeSeries(l, s, c, o, u), "histogram"],
2627
+ queryKey: [...G.timeSeries(l, s, c, o, u), "histogram"],
2616
2628
  queryFn: ({ signal: e }) => a.fetchTimeSeries({
2617
2629
  metrics: l,
2618
2630
  timeRange: s,
@@ -2638,7 +2650,7 @@ function Aa(e) {
2638
2650
  }
2639
2651
  //#endregion
2640
2652
  //#region src/logs/LogsHistogram.tsx
2641
- var ja = {
2653
+ var Pa = {
2642
2654
  "100-399": {
2643
2655
  label: "1xx–3xx",
2644
2656
  color: "var(--success)"
@@ -2651,9 +2663,9 @@ var ja = {
2651
2663
  label: "5xx",
2652
2664
  color: "var(--destructive)"
2653
2665
  }
2654
- }, Ma = "100-399", Na = "400-499", Pa = "500-599";
2655
- function Fa(e) {
2656
- let { data: t, isLoading: n, available: r } = Aa(e), i = D(() => Ia(t), [t]);
2666
+ }, Fa = "100-399", Ia = "400-499", La = "500-599";
2667
+ function Ra(e) {
2668
+ let { data: t, isLoading: n, available: r } = Na(e), i = D(() => za(t), [t]);
2657
2669
  if (!r) return null;
2658
2670
  let a = !n && i.length === 0;
2659
2671
  return /* @__PURE__ */ M("div", {
@@ -2663,7 +2675,7 @@ function Fa(e) {
2663
2675
  className: "mb-1 text-xs text-muted-foreground",
2664
2676
  children: "Requests over time"
2665
2677
  }), /* @__PURE__ */ j(St, {
2666
- config: ja,
2678
+ config: Pa,
2667
2679
  className: "h-[120px] w-full",
2668
2680
  children: /* @__PURE__ */ M(xt, {
2669
2681
  data: i,
@@ -2673,15 +2685,15 @@ function Fa(e) {
2673
2685
  children: [
2674
2686
  /* @__PURE__ */ j(Ot, { orientation: "horizontal" }),
2675
2687
  /* @__PURE__ */ j(bt, {
2676
- dataKey: Ma,
2688
+ dataKey: Fa,
2677
2689
  stackId: "volume"
2678
2690
  }),
2679
2691
  /* @__PURE__ */ j(bt, {
2680
- dataKey: Na,
2692
+ dataKey: Ia,
2681
2693
  stackId: "volume"
2682
2694
  }),
2683
2695
  /* @__PURE__ */ j(bt, {
2684
- dataKey: Pa,
2696
+ dataKey: La,
2685
2697
  stackId: "volume"
2686
2698
  }),
2687
2699
  /* @__PURE__ */ j(Nt, {}),
@@ -2692,19 +2704,19 @@ function Fa(e) {
2692
2704
  })]
2693
2705
  });
2694
2706
  }
2695
- function Ia(e) {
2707
+ function za(e) {
2696
2708
  let t = /* @__PURE__ */ new Map();
2697
2709
  for (let n of e) t.set(n.key, [n]);
2698
- return fi(t);
2710
+ return gi(t);
2699
2711
  }
2700
2712
  //#endregion
2701
2713
  //#region src/logs/LogsExplorerPage.tsx
2702
- var La = 300, Ra = "observability-logs-columns";
2703
- function za({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFilterField: i, columnVisibilityStorageKey: a = Ra }) {
2704
- let { timeRange: o, filters: s, setTimeRange: c, setFilters: l } = ua(), u = pn(s, tn()), [d, f] = k(""), p = dn({
2714
+ var Ba = 300, Va = "observability-logs-columns";
2715
+ function Ha({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFilterField: i, columnVisibilityStorageKey: a = Va }) {
2716
+ let { timeRange: o, filters: s, setTimeRange: c, setFilters: l } = pa(), u = _n(s, tn()), [d, f] = k(""), p = hn({
2705
2717
  timeRange: o,
2706
2718
  filters: s,
2707
- search: er(d, La) || void 0,
2719
+ search: ir(d, Ba) || void 0,
2708
2720
  pageSize: n
2709
2721
  }), m = /* @__PURE__ */ M("div", {
2710
2722
  className: "relative flex-1",
@@ -2729,20 +2741,20 @@ function za({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
2729
2741
  children: [
2730
2742
  /* @__PURE__ */ j("div", {
2731
2743
  className: "flex flex-1 items-center gap-2",
2732
- children: /* @__PURE__ */ j(Hr, {
2744
+ children: /* @__PURE__ */ j(Kr, {
2733
2745
  filters: u,
2734
2746
  onFiltersChange: l,
2735
2747
  scopeFilterField: i
2736
2748
  })
2737
2749
  }),
2738
- /* @__PURE__ */ j(z, { children: /* @__PURE__ */ j(la, { isFetching: p.isFetching }) }),
2739
- /* @__PURE__ */ j(Ln, {
2750
+ /* @__PURE__ */ j(z, { children: /* @__PURE__ */ j(fa, { isFetching: p.isFetching }) }),
2751
+ /* @__PURE__ */ j(Vn, {
2740
2752
  value: o,
2741
2753
  onChange: c
2742
2754
  })
2743
2755
  ]
2744
2756
  }),
2745
- /* @__PURE__ */ j(Fa, {
2757
+ /* @__PURE__ */ j(Ra, {
2746
2758
  timeRange: o,
2747
2759
  filters: s
2748
2760
  }),
@@ -2762,7 +2774,7 @@ function za({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
2762
2774
  })
2763
2775
  ]
2764
2776
  }),
2765
- /* @__PURE__ */ j(Ca, {
2777
+ /* @__PURE__ */ j(Ea, {
2766
2778
  columns: e,
2767
2779
  data: p.data,
2768
2780
  loading: p.isLoading,
@@ -2781,8 +2793,8 @@ function za({ columns: e, onRowClick: t, pageSize: n = 25, getRowId: r, scopeFil
2781
2793
  }
2782
2794
  //#endregion
2783
2795
  //#region src/logs/build-logs-deep-link.ts
2784
- function Ba({ basePath: e, timeRange: t, filters: n = [] }) {
2785
- let r = Dn({
2796
+ function Ua({ basePath: e, timeRange: t, filters: n = [] }) {
2797
+ let r = jn({
2786
2798
  conditions: n,
2787
2799
  timeRange: t
2788
2800
  }), i = `${e.replace(/\/+$/, "")}/logs`;
@@ -2792,7 +2804,7 @@ function Ba({ basePath: e, timeRange: t, filters: n = [] }) {
2792
2804
  }
2793
2805
  //#endregion
2794
2806
  //#region src/logs/default-connection-log-columns.tsx
2795
- var Va = {
2807
+ var Wa = {
2796
2808
  HTTP_PROXY: {
2797
2809
  icon: ot,
2798
2810
  label: "HTTP"
@@ -2814,8 +2826,8 @@ var Va = {
2814
2826
  label: "Webhook"
2815
2827
  }
2816
2828
  };
2817
- function Ha(e) {
2818
- let t = Va[e.apiType];
2829
+ function Ga(e) {
2830
+ let t = Wa[e.apiType];
2819
2831
  if (t) {
2820
2832
  let e = t.icon;
2821
2833
  return /* @__PURE__ */ M("span", {
@@ -2828,7 +2840,7 @@ function Ha(e) {
2828
2840
  children: [/* @__PURE__ */ j(tt, { className: "size-3.5" }), e.apiType]
2829
2841
  });
2830
2842
  }
2831
- function Ua(e, t) {
2843
+ function Ka(e, t) {
2832
2844
  let n = e.replace(/\/$/, ""), r = [
2833
2845
  {
2834
2846
  key: "timestamp",
@@ -2889,7 +2901,7 @@ function Ua(e, t) {
2889
2901
  key: "apiType",
2890
2902
  label: "API Type",
2891
2903
  value: (e) => e.apiType,
2892
- render: Ha,
2904
+ render: Ga,
2893
2905
  defaultVisible: !1
2894
2906
  },
2895
2907
  {
@@ -2963,14 +2975,14 @@ function Ua(e, t) {
2963
2975
  }
2964
2976
  //#endregion
2965
2977
  //#region src/logs/detail/components/LogDetailCodeBlock.tsx
2966
- var Wa = 240;
2967
- function X({ code: e, language: t = "json", maxHeight: n = Wa }) {
2978
+ var qa = 240;
2979
+ function X({ code: e, language: t = "json", maxHeight: n = qa }) {
2968
2980
  let [r, i] = k(!1);
2969
2981
  if (!e) return /* @__PURE__ */ j("p", {
2970
2982
  className: "text-xs text-muted-foreground/70 py-3 italic",
2971
2983
  children: "No body captured"
2972
2984
  });
2973
- let a = Ga(e), o = a.split("\n").length > 12;
2985
+ let a = Ja(e), o = a.split("\n").length > 12;
2974
2986
  return /* @__PURE__ */ M("div", {
2975
2987
  className: "relative rounded-lg border",
2976
2988
  children: [
@@ -3003,7 +3015,7 @@ function X({ code: e, language: t = "json", maxHeight: n = Wa }) {
3003
3015
  ]
3004
3016
  });
3005
3017
  }
3006
- function Ga(e) {
3018
+ function Ja(e) {
3007
3019
  try {
3008
3020
  let t = JSON.parse(e);
3009
3021
  return JSON.stringify(t, null, 2);
@@ -3044,7 +3056,7 @@ function Q({ headers: e }) {
3044
3056
  }
3045
3057
  //#endregion
3046
3058
  //#region src/logs/detail/components/LogDetailJsonTree.tsx
3047
- function Ka({ data: e, onCopyAll: t }) {
3059
+ function Ya({ data: e, onCopyAll: t }) {
3048
3060
  let n = O(null), r = () => {
3049
3061
  let n = JSON.stringify(e, null, 2);
3050
3062
  navigator.clipboard.writeText(n).then(() => {
@@ -3085,7 +3097,7 @@ function Ka({ data: e, onCopyAll: t }) {
3085
3097
  "aria-label": "Log attributes",
3086
3098
  className: "rounded-md border p-3 text-xs font-mono",
3087
3099
  onKeyDown: i,
3088
- children: /* @__PURE__ */ j(qa, {
3100
+ children: /* @__PURE__ */ j(Xa, {
3089
3101
  value: e,
3090
3102
  depth: 0,
3091
3103
  isRoot: !0
@@ -3093,9 +3105,9 @@ function Ka({ data: e, onCopyAll: t }) {
3093
3105
  })]
3094
3106
  });
3095
3107
  }
3096
- function qa({ name: e, value: t, depth: n, isRoot: r, isLast: i }) {
3108
+ function Xa({ name: e, value: t, depth: n, isRoot: r, isLast: i }) {
3097
3109
  let [a, o] = k(n < 2);
3098
- if (t === null) return /* @__PURE__ */ j(Ja, {
3110
+ if (t === null) return /* @__PURE__ */ j(Za, {
3099
3111
  name: e,
3100
3112
  value: "null",
3101
3113
  className: "text-muted-foreground",
@@ -3168,7 +3180,7 @@ function qa({ name: e, value: t, depth: n, isRoot: r, isLast: i }) {
3168
3180
  a && /* @__PURE__ */ j("div", {
3169
3181
  className: "ml-4 border-l border-muted pl-2",
3170
3182
  role: "group",
3171
- children: c.map(([e, t], r) => /* @__PURE__ */ j(qa, {
3183
+ children: c.map(([e, t], r) => /* @__PURE__ */ j(Xa, {
3172
3184
  name: s ? void 0 : e,
3173
3185
  value: t,
3174
3186
  depth: n + 1,
@@ -3182,29 +3194,29 @@ function qa({ name: e, value: t, depth: n, isRoot: r, isLast: i }) {
3182
3194
  ]
3183
3195
  });
3184
3196
  }
3185
- return typeof t == "string" ? /* @__PURE__ */ j(Ja, {
3197
+ return typeof t == "string" ? /* @__PURE__ */ j(Za, {
3186
3198
  name: e,
3187
3199
  value: `"${t}"`,
3188
3200
  className: "text-green-600 dark:text-green-400",
3189
3201
  isLast: i
3190
- }) : typeof t == "number" ? /* @__PURE__ */ j(Ja, {
3202
+ }) : typeof t == "number" ? /* @__PURE__ */ j(Za, {
3191
3203
  name: e,
3192
3204
  value: String(t),
3193
3205
  className: "text-blue-600 dark:text-blue-400",
3194
3206
  isLast: i
3195
- }) : typeof t == "boolean" ? /* @__PURE__ */ j(Ja, {
3207
+ }) : typeof t == "boolean" ? /* @__PURE__ */ j(Za, {
3196
3208
  name: e,
3197
3209
  value: String(t),
3198
3210
  className: "text-amber-600 dark:text-amber-400",
3199
3211
  isLast: i
3200
- }) : /* @__PURE__ */ j(Ja, {
3212
+ }) : /* @__PURE__ */ j(Za, {
3201
3213
  name: e,
3202
3214
  value: String(t),
3203
3215
  className: "text-foreground",
3204
3216
  isLast: i
3205
3217
  });
3206
3218
  }
3207
- function Ja({ name: e, value: t, className: n, isLast: r }) {
3219
+ function Za({ name: e, value: t, className: n, isLast: r }) {
3208
3220
  return /* @__PURE__ */ M("div", {
3209
3221
  className: "flex items-center py-px",
3210
3222
  role: "treeitem",
@@ -3236,13 +3248,13 @@ function $({ items: e, onFilter: t }) {
3236
3248
  let n = e.filter((e) => e.value !== void 0 && e.value !== null && e.value !== "");
3237
3249
  return n.length === 0 ? null : /* @__PURE__ */ j("dl", {
3238
3250
  className: "space-y-0 divide-y divide-border/50",
3239
- children: n.map((e) => /* @__PURE__ */ j(Ya, {
3251
+ children: n.map((e) => /* @__PURE__ */ j(Qa, {
3240
3252
  item: e,
3241
3253
  onFilter: t
3242
3254
  }, e.label))
3243
3255
  });
3244
3256
  }
3245
- function Ya({ item: e, onFilter: t }) {
3257
+ function Qa({ item: e, onFilter: t }) {
3246
3258
  let n = String(e.value);
3247
3259
  return /* @__PURE__ */ M("div", {
3248
3260
  className: "group flex items-baseline gap-4 py-2.5",
@@ -3291,7 +3303,7 @@ function Ya({ item: e, onFilter: t }) {
3291
3303
  }
3292
3304
  //#endregion
3293
3305
  //#region src/logs/detail/presets/connection-log-preset.tsx
3294
- function Xa(e) {
3306
+ function $a(e) {
3295
3307
  return {
3296
3308
  type: "preset",
3297
3309
  resolve: (t) => {
@@ -3325,7 +3337,7 @@ function Xa(e) {
3325
3337
  key: "overview",
3326
3338
  title: "Overview",
3327
3339
  defaultOpen: !0,
3328
- render: () => /* @__PURE__ */ j(Za, {
3340
+ render: () => /* @__PURE__ */ j(eo, {
3329
3341
  log: n,
3330
3342
  basePath: e?.basePath,
3331
3343
  extraFields: e?.extraFields
@@ -3334,23 +3346,23 @@ function Xa(e) {
3334
3346
  key: "request",
3335
3347
  title: "Request",
3336
3348
  defaultOpen: !1,
3337
- render: () => /* @__PURE__ */ j(Qa, { log: n })
3349
+ render: () => /* @__PURE__ */ j(to, { log: n })
3338
3350
  }), i.has("response") || a.push({
3339
3351
  key: "response",
3340
3352
  title: "Response",
3341
3353
  defaultOpen: !1,
3342
- render: () => /* @__PURE__ */ j($a, { log: n })
3354
+ render: () => /* @__PURE__ */ j(no, { log: n })
3343
3355
  }), !i.has("errors") && (n.errorKey || n.warnings && n.warnings.length > 0) && a.push({
3344
3356
  key: "errors",
3345
3357
  title: "Issues",
3346
3358
  defaultOpen: !0,
3347
3359
  badge: () => (n.warnings?.length ?? 0) + +!!n.errorKey,
3348
- render: () => /* @__PURE__ */ j(eo, { log: n })
3360
+ render: () => /* @__PURE__ */ j(ro, { log: n })
3349
3361
  }), i.has("raw") || a.push({
3350
3362
  key: "raw",
3351
3363
  title: "Raw JSON",
3352
3364
  defaultOpen: !1,
3353
- render: () => /* @__PURE__ */ j(Ka, { data: n })
3365
+ render: () => /* @__PURE__ */ j(Ya, { data: n })
3354
3366
  }), {
3355
3367
  header: {
3356
3368
  method: () => n.method,
@@ -3364,7 +3376,7 @@ function Xa(e) {
3364
3376
  }
3365
3377
  };
3366
3378
  }
3367
- function Za({ log: e, basePath: t, extraFields: n }) {
3379
+ function eo({ log: e, basePath: t, extraFields: n }) {
3368
3380
  let r = t?.replace(/\/$/, "") ?? "";
3369
3381
  return /* @__PURE__ */ j($, { items: [
3370
3382
  {
@@ -3435,7 +3447,7 @@ function Za({ log: e, basePath: t, extraFields: n }) {
3435
3447
  })) : []
3436
3448
  ] });
3437
3449
  }
3438
- function Qa({ log: e }) {
3450
+ function to({ log: e }) {
3439
3451
  let t = e.entrypointRequest, n = e.endpointRequest;
3440
3452
  return !t && !n ? /* @__PURE__ */ j(Z, { message: "No request details captured" }) : /* @__PURE__ */ M("div", {
3441
3453
  className: "space-y-4",
@@ -3476,7 +3488,7 @@ function Qa({ log: e }) {
3476
3488
  })]
3477
3489
  });
3478
3490
  }
3479
- function $a({ log: e }) {
3491
+ function no({ log: e }) {
3480
3492
  let t = e.endpointResponse, n = e.entrypointResponse;
3481
3493
  return !t && !n ? /* @__PURE__ */ j(Z, { message: "No response details captured" }) : /* @__PURE__ */ M("div", {
3482
3494
  className: "space-y-4",
@@ -3511,7 +3523,7 @@ function $a({ log: e }) {
3511
3523
  })]
3512
3524
  });
3513
3525
  }
3514
- function eo({ log: e }) {
3526
+ function ro({ log: e }) {
3515
3527
  return /* @__PURE__ */ M("div", {
3516
3528
  className: "space-y-3",
3517
3529
  children: [e.errorKey && /* @__PURE__ */ M("div", {
@@ -3561,9 +3573,9 @@ function eo({ log: e }) {
3561
3573
  }
3562
3574
  //#endregion
3563
3575
  //#region src/logs/detail/presets/message-log-preset.tsx
3564
- var to = 5;
3565
- function no(e) {
3566
- let t = e?.messagesPageSize ?? to;
3576
+ var io = 5;
3577
+ function ao(e) {
3578
+ let t = e?.messagesPageSize ?? io;
3567
3579
  return {
3568
3580
  type: "preset",
3569
3581
  resolve: (e) => {
@@ -3571,19 +3583,19 @@ function no(e) {
3571
3583
  key: "overview",
3572
3584
  title: "Overview",
3573
3585
  defaultOpen: !0,
3574
- render: () => /* @__PURE__ */ j(ro, { log: n })
3586
+ render: () => /* @__PURE__ */ j(oo, { log: n })
3575
3587
  }, {
3576
3588
  key: "connection",
3577
3589
  title: "Connection Logs",
3578
3590
  defaultOpen: !1,
3579
- render: () => /* @__PURE__ */ j(io, { log: n })
3591
+ render: () => /* @__PURE__ */ j(so, { log: n })
3580
3592
  }];
3581
3593
  return n.messages && n.messages.length > 0 && r.push({
3582
3594
  key: "messages",
3583
3595
  title: "Messages",
3584
3596
  defaultOpen: !0,
3585
3597
  badge: () => n.messages?.length,
3586
- render: () => /* @__PURE__ */ j(ao, {
3598
+ render: () => /* @__PURE__ */ j(co, {
3587
3599
  messages: n.messages,
3588
3600
  pageSize: t
3589
3601
  })
@@ -3591,7 +3603,7 @@ function no(e) {
3591
3603
  key: "raw",
3592
3604
  title: "Raw JSON",
3593
3605
  defaultOpen: !1,
3594
- render: () => /* @__PURE__ */ j(Ka, { data: n })
3606
+ render: () => /* @__PURE__ */ j(Ya, { data: n })
3595
3607
  }), {
3596
3608
  header: {
3597
3609
  method: () => void 0,
@@ -3605,7 +3617,7 @@ function no(e) {
3605
3617
  }
3606
3618
  };
3607
3619
  }
3608
- function ro({ log: e }) {
3620
+ function oo({ log: e }) {
3609
3621
  return /* @__PURE__ */ j($, { items: [
3610
3622
  {
3611
3623
  label: "API",
@@ -3646,7 +3658,7 @@ function ro({ log: e }) {
3646
3658
  }] : []
3647
3659
  ] });
3648
3660
  }
3649
- function io({ log: e }) {
3661
+ function so({ log: e }) {
3650
3662
  return e.entrypointRequest || e.endpointRequest || e.entrypointResponse || e.endpointResponse ? /* @__PURE__ */ M("div", {
3651
3663
  className: "space-y-4",
3652
3664
  children: [
@@ -3719,11 +3731,11 @@ function io({ log: e }) {
3719
3731
  ]
3720
3732
  }) : /* @__PURE__ */ j(Z, { message: "No connection log details captured" });
3721
3733
  }
3722
- function ao({ messages: e, pageSize: t }) {
3734
+ function co({ messages: e, pageSize: t }) {
3723
3735
  let [n, r] = k(t), i = e.slice(0, n), a = n < e.length;
3724
3736
  return /* @__PURE__ */ M("div", {
3725
3737
  className: "space-y-3",
3726
- children: [i.map((e, t) => /* @__PURE__ */ j(oo, { message: e }, e.id ?? t)), a && /* @__PURE__ */ M("button", {
3738
+ children: [i.map((e, t) => /* @__PURE__ */ j(lo, { message: e }, e.id ?? t)), a && /* @__PURE__ */ M("button", {
3727
3739
  onClick: () => r((e) => e + t),
3728
3740
  className: "w-full rounded-md border py-2 text-xs text-muted-foreground hover:bg-muted/50 transition-colors",
3729
3741
  children: [
@@ -3734,7 +3746,7 @@ function ao({ messages: e, pageSize: t }) {
3734
3746
  })]
3735
3747
  });
3736
3748
  }
3737
- function oo({ message: e }) {
3749
+ function lo({ message: e }) {
3738
3750
  return /* @__PURE__ */ M("div", {
3739
3751
  className: "rounded-md border p-3 space-y-2",
3740
3752
  children: [
@@ -3782,7 +3794,7 @@ function oo({ message: e }) {
3782
3794
  }
3783
3795
  //#endregion
3784
3796
  //#region src/logs/detail/presets/webhook-log-preset.tsx
3785
- function so(e) {
3797
+ function uo(e) {
3786
3798
  return {
3787
3799
  type: "preset",
3788
3800
  resolve: (t) => {
@@ -3807,7 +3819,7 @@ function so(e) {
3807
3819
  key: "overview",
3808
3820
  title: "Overview",
3809
3821
  defaultOpen: !0,
3810
- render: () => /* @__PURE__ */ j(co, {
3822
+ render: () => /* @__PURE__ */ j(fo, {
3811
3823
  log: n,
3812
3824
  basePath: e?.basePath
3813
3825
  })
@@ -3817,22 +3829,22 @@ function so(e) {
3817
3829
  title: "Delivery Attempts",
3818
3830
  defaultOpen: !0,
3819
3831
  badge: () => n.retryTimeline?.length,
3820
- render: () => /* @__PURE__ */ j(lo, { attempts: n.retryTimeline })
3832
+ render: () => /* @__PURE__ */ j(po, { attempts: n.retryTimeline })
3821
3833
  }), i.push({
3822
3834
  key: "request",
3823
3835
  title: "Request Sent by Gateway",
3824
3836
  defaultOpen: !1,
3825
- render: () => /* @__PURE__ */ j(uo, { log: n })
3837
+ render: () => /* @__PURE__ */ j(mo, { log: n })
3826
3838
  }), i.push({
3827
3839
  key: "response",
3828
3840
  title: "Response from Callback",
3829
3841
  defaultOpen: !1,
3830
- render: () => /* @__PURE__ */ j(fo, { log: n })
3842
+ render: () => /* @__PURE__ */ j(ho, { log: n })
3831
3843
  }), i.push({
3832
3844
  key: "raw",
3833
3845
  title: "Raw JSON",
3834
3846
  defaultOpen: !1,
3835
- render: () => /* @__PURE__ */ j(Ka, { data: n })
3847
+ render: () => /* @__PURE__ */ j(Ya, { data: n })
3836
3848
  }), {
3837
3849
  header: {
3838
3850
  method: () => n.method,
@@ -3846,7 +3858,7 @@ function so(e) {
3846
3858
  }
3847
3859
  };
3848
3860
  }
3849
- function co({ log: e, basePath: t }) {
3861
+ function fo({ log: e, basePath: t }) {
3850
3862
  let n = t?.replace(/\/$/, "") ?? "";
3851
3863
  return /* @__PURE__ */ j($, { items: [
3852
3864
  {
@@ -3883,7 +3895,7 @@ function co({ log: e, basePath: t }) {
3883
3895
  }] : []
3884
3896
  ] });
3885
3897
  }
3886
- function lo({ attempts: e }) {
3898
+ function po({ attempts: e }) {
3887
3899
  return /* @__PURE__ */ j("div", {
3888
3900
  className: "rounded-md border",
3889
3901
  children: /* @__PURE__ */ M("table", {
@@ -3935,13 +3947,13 @@ function lo({ attempts: e }) {
3935
3947
  })
3936
3948
  });
3937
3949
  }
3938
- function uo({ log: e }) {
3950
+ function mo({ log: e }) {
3939
3951
  return !e.requestHeaders && !e.requestBody ? /* @__PURE__ */ j(Z, { message: "No request details captured" }) : /* @__PURE__ */ M("div", {
3940
3952
  className: "space-y-2",
3941
3953
  children: [/* @__PURE__ */ j(Q, { headers: e.requestHeaders }), /* @__PURE__ */ j(X, { code: e.requestBody })]
3942
3954
  });
3943
3955
  }
3944
- function fo({ log: e }) {
3956
+ function ho({ log: e }) {
3945
3957
  return !e.responseHeaders && !e.responseBody ? /* @__PURE__ */ j(Z, { message: "No response details captured" }) : /* @__PURE__ */ M("div", {
3946
3958
  className: "space-y-2",
3947
3959
  children: [/* @__PURE__ */ j(Q, { headers: e.responseHeaders }), /* @__PURE__ */ j(X, { code: e.responseBody })]
@@ -3949,16 +3961,16 @@ function fo({ log: e }) {
3949
3961
  }
3950
3962
  //#endregion
3951
3963
  //#region src/logs/detail/types.ts
3952
- function po(e) {
3964
+ function go(e) {
3953
3965
  return "discriminant" in e;
3954
3966
  }
3955
3967
  //#endregion
3956
3968
  //#region src/logs/detail/define-log-detail.ts
3957
- function mo(e) {
3969
+ function _o(e) {
3958
3970
  return "preset" in e;
3959
3971
  }
3960
- function ho(e) {
3961
- return mo(e) ? {
3972
+ function vo(e) {
3973
+ return _o(e) ? {
3962
3974
  preset: e.preset,
3963
3975
  contextChart: e.contextChart
3964
3976
  } : {
@@ -3967,31 +3979,31 @@ function ho(e) {
3967
3979
  contextChart: e.contextChart
3968
3980
  };
3969
3981
  }
3970
- function go(e, t) {
3971
- if (po(e)) {
3982
+ function yo(e, t) {
3983
+ if (go(e)) {
3972
3984
  let n = e.discriminant(t);
3973
3985
  return e.variants[n] ?? null;
3974
3986
  }
3975
3987
  return e.preset;
3976
3988
  }
3977
- function _o(e, t) {
3989
+ function bo(e, t) {
3978
3990
  return e.type === "preset" ? e.resolve(t) : null;
3979
3991
  }
3980
- function vo(e) {
3981
- let { basePath: t, connectionLog: n, messageLog: r, webhookLog: i, extraVariants: a, contextChart: o } = e, s = Xa({
3992
+ function xo(e) {
3993
+ let { basePath: t, connectionLog: n, messageLog: r, webhookLog: i, extraVariants: a, contextChart: o } = e, s = $a({
3982
3994
  ...n,
3983
3995
  basePath: t
3984
- }), c = so({
3996
+ }), c = uo({
3985
3997
  ...i,
3986
3998
  basePath: t
3987
3999
  });
3988
- return ho({
4000
+ return vo({
3989
4001
  discriminant: (e) => e.apiType,
3990
4002
  variants: {
3991
4003
  HTTP_PROXY: s,
3992
4004
  LLM_PROXY: s,
3993
4005
  MCP_PROXY: s,
3994
- MESSAGE: no(r),
4006
+ MESSAGE: ao(r),
3995
4007
  WEBHOOK: c,
3996
4008
  ...a
3997
4009
  },
@@ -4004,17 +4016,17 @@ function vo(e) {
4004
4016
  }
4005
4017
  //#endregion
4006
4018
  //#region src/logs/detail/components/LogDetailContextChart.tsx
4007
- var yo = 900 * 1e3, bo = "gateway_response_time";
4008
- function xo({ apiId: e, timestamp: t, metric: r = bo }) {
4019
+ var So = 900 * 1e3, Co = "gateway_response_time";
4020
+ function wo({ apiId: e, timestamp: t, metric: r = Co }) {
4009
4021
  let i = n(), a = D(() => {
4010
4022
  let e = new Date(t).getTime();
4011
4023
  return {
4012
4024
  type: "absolute",
4013
- from: e - yo,
4014
- to: e + yo
4025
+ from: e - So,
4026
+ to: e + So
4015
4027
  };
4016
- }, [t]), o = D(() => yi(a, 30), [a]), { data: s, isLoading: c } = N({
4017
- queryKey: K.timeSeries([{ name: r }], a, o, [{
4028
+ }, [t]), o = D(() => Ci(a, 30), [a]), { data: s, isLoading: c } = N({
4029
+ queryKey: G.timeSeries([{ name: r }], a, o, [{
4018
4030
  field: "API_ID",
4019
4031
  operator: "eq",
4020
4032
  value: [e],
@@ -4040,7 +4052,7 @@ function xo({ apiId: e, timestamp: t, metric: r = bo }) {
4040
4052
  } }), [l]), d = D(() => {
4041
4053
  if (!s) return [];
4042
4054
  let e = /* @__PURE__ */ new Map();
4043
- return e.set(l, s), fi(e);
4055
+ return e.set(l, s), gi(e);
4044
4056
  }, [s, l]), f = D(() => {
4045
4057
  let e = new Date(t).getTime(), n = s?.[0]?.points;
4046
4058
  if (d.length === 0 || !n?.length) return;
@@ -4095,18 +4107,18 @@ function xo({ apiId: e, timestamp: t, metric: r = bo }) {
4095
4107
  }
4096
4108
  //#endregion
4097
4109
  //#region src/logs/detail/components/LogDetailDrawerShell.tsx
4098
- var So = y({
4110
+ var To = y({
4099
4111
  expanded: !1,
4100
4112
  setExpanded: () => {}
4101
4113
  });
4102
- function Co() {
4103
- return w(So);
4114
+ function Eo() {
4115
+ return w(To);
4104
4116
  }
4105
- var wo = "[role=\"tree\"], [role=\"treeitem\"], input, textarea, select, [contenteditable]";
4106
- function To(e) {
4107
- return e === document.body ? !0 : e.closest(wo) ? !1 : !!e.closest("[data-log-detail-shell]");
4117
+ var Do = "[role=\"tree\"], [role=\"treeitem\"], input, textarea, select, [contenteditable]";
4118
+ function Oo(e) {
4119
+ return e === document.body ? !0 : e.closest(Do) ? !1 : !!e.closest("[data-log-detail-shell]");
4108
4120
  }
4109
- function Eo({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, children: i }) {
4121
+ function ko({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, children: i }) {
4110
4122
  let [a, o] = k(!1), s = C(() => {
4111
4123
  o(!1), t();
4112
4124
  }, [t]), c = C((e) => {
@@ -4117,10 +4129,10 @@ function Eo({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, childre
4117
4129
  t.preventDefault(), a ? o(!1) : s();
4118
4130
  break;
4119
4131
  case "ArrowUp":
4120
- To(t.target) && (t.preventDefault(), n?.());
4132
+ Oo(t.target) && (t.preventDefault(), n?.());
4121
4133
  break;
4122
4134
  case "ArrowDown":
4123
- To(t.target) && (t.preventDefault(), r?.());
4135
+ Oo(t.target) && (t.preventDefault(), r?.());
4124
4136
  break;
4125
4137
  }
4126
4138
  }, [
@@ -4135,7 +4147,7 @@ function Eo({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, childre
4135
4147
  expanded: a,
4136
4148
  setExpanded: o
4137
4149
  }), [a]);
4138
- return /* @__PURE__ */ j(So.Provider, {
4150
+ return /* @__PURE__ */ j(To.Provider, {
4139
4151
  value: f,
4140
4152
  children: /* @__PURE__ */ j(ze, {
4141
4153
  open: e,
@@ -4171,7 +4183,7 @@ function Eo({ open: e, onClose: t, onNavigatePrev: n, onNavigateNext: r, childre
4171
4183
  }
4172
4184
  //#endregion
4173
4185
  //#region src/logs/detail/components/LogDetailHeader.tsx
4174
- var Do = {
4186
+ var Ao = {
4175
4187
  GET: "success",
4176
4188
  POST: "default",
4177
4189
  PUT: "warning",
@@ -4180,10 +4192,10 @@ var Do = {
4180
4192
  HEAD: "secondary",
4181
4193
  OPTIONS: "secondary"
4182
4194
  };
4183
- function Oo(e) {
4195
+ function jo(e) {
4184
4196
  return e >= 500 ? "text-destructive" : e >= 400 ? "text-warning" : "text-success";
4185
4197
  }
4186
- function ko(e) {
4198
+ function Mo(e) {
4187
4199
  let t = new Date(e), n = (/* @__PURE__ */ new Date()).getTime() - t.getTime(), r = Math.floor(n / 1e3), i;
4188
4200
  i = r < 60 ? `${r}s ago` : r < 3600 ? `${Math.floor(r / 60)}m ago` : r < 86400 ? `${Math.floor(r / 3600)}h ago` : t.toLocaleDateString(void 0, {
4189
4201
  month: "short",
@@ -4203,10 +4215,10 @@ function ko(e) {
4203
4215
  full: a
4204
4216
  };
4205
4217
  }
4206
- function Ao({ method: e, status: t, uri: n, timestamp: r, onClose: i, onNavigatePrev: a, onNavigateNext: o, onCopyJson: s, hasPrev: c = !0, hasNext: l = !0, showExpandToggle: u = !0 }) {
4207
- let { expanded: d, setExpanded: f } = Co(), p = C((e) => {
4218
+ function No({ method: e, status: t, uri: n, timestamp: r, onClose: i, onNavigatePrev: a, onNavigateNext: o, onCopyJson: s, hasPrev: c = !0, hasNext: l = !0, showExpandToggle: u = !0 }) {
4219
+ let { expanded: d, setExpanded: f } = Eo(), p = C((e) => {
4208
4220
  e.key === "Escape" && i?.();
4209
- }, [i]), m = r ? ko(r) : null;
4221
+ }, [i]), m = r ? Mo(r) : null;
4210
4222
  return /* @__PURE__ */ M("div", {
4211
4223
  className: "sticky top-0 z-10 border-b bg-background/95 backdrop-blur-sm",
4212
4224
  role: "toolbar",
@@ -4272,11 +4284,11 @@ function Ao({ method: e, status: t, uri: n, timestamp: r, onClose: i, onNavigate
4272
4284
  className: "flex items-center gap-3",
4273
4285
  children: [
4274
4286
  e && /* @__PURE__ */ j(P, {
4275
- variant: Do[e] ?? "secondary",
4287
+ variant: Ao[e] ?? "secondary",
4276
4288
  children: e
4277
4289
  }),
4278
4290
  t !== void 0 && /* @__PURE__ */ j("span", {
4279
- className: `font-mono text-sm font-semibold tabular-nums ${Oo(t)}`,
4291
+ className: `font-mono text-sm font-semibold tabular-nums ${jo(t)}`,
4280
4292
  children: t
4281
4293
  }),
4282
4294
  m && /* @__PURE__ */ j(z, { children: /* @__PURE__ */ M(L, { children: [/* @__PURE__ */ j(B, {
@@ -4308,9 +4320,9 @@ function Ao({ method: e, status: t, uri: n, timestamp: r, onClose: i, onNavigate
4308
4320
  }
4309
4321
  //#endregion
4310
4322
  //#region src/logs/detail/components/LogDetailMetrics.tsx
4311
- function jo({ items: e }) {
4323
+ function Po({ items: e }) {
4312
4324
  let t = e.filter((e) => e.value !== void 0 && e.value !== null), n = D(() => t.map((e) => ({
4313
- value: Mo(e.value, e.unit),
4325
+ value: Fo(e.value, e.unit),
4314
4326
  label: e.label
4315
4327
  })), [t]);
4316
4328
  return n.length === 0 ? null : /* @__PURE__ */ j("div", {
@@ -4323,12 +4335,12 @@ function jo({ items: e }) {
4323
4335
  })
4324
4336
  });
4325
4337
  }
4326
- function Mo(e, t) {
4338
+ function Fo(e, t) {
4327
4339
  return t === "ms" || !t ? e >= 1e4 ? `${(e / 1e3).toFixed(1)}s` : e >= 1e3 ? `${(e / 1e3).toFixed(2)}s` : `${Math.round(e)}ms` : t === "B" ? e >= 1024 * 1024 ? `${(e / (1024 * 1024)).toFixed(1)} MB` : e >= 1024 ? `${(e / 1024).toFixed(1)} KB` : `${e} B` : t === "" ? String(e) : `${e}${t}`;
4328
4340
  }
4329
4341
  //#endregion
4330
4342
  //#region src/logs/detail/components/LogDetailSection.tsx
4331
- function No({ children: e, defaultValue: t }) {
4343
+ function Io({ children: e, defaultValue: t }) {
4332
4344
  let [n, r] = k(t ?? "");
4333
4345
  return /* @__PURE__ */ j(ne, {
4334
4346
  type: "single",
@@ -4338,7 +4350,7 @@ function No({ children: e, defaultValue: t }) {
4338
4350
  children: e
4339
4351
  });
4340
4352
  }
4341
- function Po({ title: e, badge: t, children: n }) {
4353
+ function Lo({ title: e, badge: t, children: n }) {
4342
4354
  return /* @__PURE__ */ M(ie, {
4343
4355
  value: e,
4344
4356
  className: "border-b last:border-b-0",
@@ -4360,26 +4372,26 @@ function Po({ title: e, badge: t, children: n }) {
4360
4372
  }
4361
4373
  //#endregion
4362
4374
  //#region src/logs/detail/components/LogDetailContent.tsx
4363
- var Fo = {
4364
- Header: Ao,
4365
- Section: Po,
4375
+ var Ro = {
4376
+ Header: No,
4377
+ Section: Lo,
4366
4378
  KeyValueGrid: $,
4367
4379
  HeadersTable: Q,
4368
4380
  CodeBlock: X,
4369
- Metrics: jo
4381
+ Metrics: Po
4370
4382
  };
4371
- function Io({ config: e, log: t, logId: n, onClose: r, onCopyJson: i, onNavigatePrev: a, onNavigateNext: o, onFilter: s, hasPrev: c, hasNext: l, showExpandToggle: u = !0, showNavigation: d = !0 }) {
4372
- let f = go(e, t);
4383
+ function zo({ config: e, log: t, logId: n, onClose: r, onCopyJson: i, onNavigatePrev: a, onNavigateNext: o, onFilter: s, hasPrev: c, hasNext: l, showExpandToggle: u = !0, showNavigation: d = !0 }) {
4384
+ let f = yo(e, t);
4373
4385
  if (!f) return /* @__PURE__ */ j("div", {
4374
4386
  className: "flex items-center justify-center p-8 text-sm text-muted-foreground",
4375
4387
  children: "No detail view configured for this log type."
4376
4388
  });
4377
- if (f.type === "custom") return /* @__PURE__ */ j(A, { children: f.render(t, Fo) });
4378
- let p = _o(f, t);
4389
+ if (f.type === "custom") return /* @__PURE__ */ j(A, { children: f.render(t, Ro) });
4390
+ let p = bo(f, t);
4379
4391
  if (!p) return null;
4380
4392
  let m = e.contextChart;
4381
4393
  return /* @__PURE__ */ M(A, { children: [
4382
- /* @__PURE__ */ j(Ao, {
4394
+ /* @__PURE__ */ j(No, {
4383
4395
  method: p.header.method(t),
4384
4396
  status: p.header.status(t),
4385
4397
  uri: p.header.uri(t),
@@ -4392,19 +4404,19 @@ function Io({ config: e, log: t, logId: n, onClose: r, onCopyJson: i, onNavigate
4392
4404
  hasNext: d ? l : !1,
4393
4405
  showExpandToggle: u
4394
4406
  }),
4395
- m && /* @__PURE__ */ j(xo, {
4407
+ m && /* @__PURE__ */ j(wo, {
4396
4408
  apiId: m.extractApiId(t),
4397
4409
  timestamp: m.extractTimestamp?.(t) ?? p.header.timestamp(t),
4398
4410
  metric: m.metric
4399
4411
  }),
4400
- p.metrics && p.metrics.length > 0 && /* @__PURE__ */ j(jo, { items: p.metrics.map((e) => ({
4412
+ p.metrics && p.metrics.length > 0 && /* @__PURE__ */ j(Po, { items: p.metrics.map((e) => ({
4401
4413
  label: e.label,
4402
4414
  value: e.value(t),
4403
4415
  unit: e.unit
4404
4416
  })) }),
4405
- /* @__PURE__ */ j(No, {
4417
+ /* @__PURE__ */ j(Io, {
4406
4418
  defaultValue: p.sections.find((e) => e.defaultOpen)?.title,
4407
- children: p.sections.map((e) => /* @__PURE__ */ j(Po, {
4419
+ children: p.sections.map((e) => /* @__PURE__ */ j(Lo, {
4408
4420
  title: e.title,
4409
4421
  badge: e.badge?.(t),
4410
4422
  children: e.render(t, s)
@@ -4414,20 +4426,20 @@ function Io({ config: e, log: t, logId: n, onClose: r, onCopyJson: i, onNavigate
4414
4426
  }
4415
4427
  //#endregion
4416
4428
  //#region src/logs/detail/utils/clipboard.ts
4417
- function Lo(e) {
4429
+ function Bo(e) {
4418
4430
  navigator.clipboard.writeText(JSON.stringify(e, null, 2)).then(() => H.success("Full JSON copied to clipboard"), () => H.error("Failed to copy to clipboard"));
4419
4431
  }
4420
4432
  //#endregion
4421
4433
  //#region src/logs/detail/components/LogDetailDrawer.tsx
4422
- function Ro({ config: e, logId: t, onClose: n, onNavigatePrev: r, onNavigateNext: i, onFilter: a, hasPrev: o, hasNext: s }) {
4423
- let { data: c, isLoading: l, isError: u, isNotFound: d, isUnsupported: f, refetch: p } = cn({ id: t });
4424
- return /* @__PURE__ */ M(Eo, {
4434
+ function Vo({ config: e, logId: t, onClose: n, onNavigatePrev: r, onNavigateNext: i, onFilter: a, hasPrev: o, hasNext: s }) {
4435
+ let { data: c, isLoading: l, isError: u, isNotFound: d, isUnsupported: f, refetch: p } = fn({ id: t });
4436
+ return /* @__PURE__ */ M(ko, {
4425
4437
  open: !!t,
4426
4438
  onClose: n,
4427
4439
  onNavigatePrev: r,
4428
4440
  onNavigateNext: i,
4429
4441
  children: [
4430
- l && /* @__PURE__ */ j(zo, {}),
4442
+ l && /* @__PURE__ */ j(Ho, {}),
4431
4443
  f && /* @__PURE__ */ M("div", {
4432
4444
  className: "flex flex-col items-center justify-center gap-2 p-8 text-center text-muted-foreground",
4433
4445
  children: [/* @__PURE__ */ j("p", {
@@ -4464,13 +4476,13 @@ function Ro({ config: e, logId: t, onClose: n, onNavigatePrev: r, onNavigateNext
4464
4476
  })
4465
4477
  ]
4466
4478
  }),
4467
- c != null && /* @__PURE__ */ j(Io, {
4479
+ c != null && /* @__PURE__ */ j(zo, {
4468
4480
  config: e,
4469
4481
  log: c,
4470
4482
  logId: t,
4471
4483
  onClose: n,
4472
4484
  onCopyJson: () => {
4473
- c && Lo(c);
4485
+ c && Bo(c);
4474
4486
  },
4475
4487
  onNavigatePrev: r,
4476
4488
  onNavigateNext: i,
@@ -4481,7 +4493,7 @@ function Ro({ config: e, logId: t, onClose: n, onNavigatePrev: r, onNavigateNext
4481
4493
  ]
4482
4494
  });
4483
4495
  }
4484
- function zo() {
4496
+ function Ho() {
4485
4497
  return /* @__PURE__ */ M("div", {
4486
4498
  className: "space-y-4 p-4",
4487
4499
  children: [
@@ -4509,8 +4521,8 @@ function zo() {
4509
4521
  }
4510
4522
  //#endregion
4511
4523
  //#region src/logs/detail/components/LogDetailPage.tsx
4512
- function Bo({ config: e, onFilter: t }) {
4513
- let { logId: n } = Bt(), r = zt(), { data: i, isLoading: a, isError: o, isNotFound: s, isUnsupported: c, refetch: l } = cn({ id: n }), u = () => r(-1);
4524
+ function Uo({ config: e, onFilter: t }) {
4525
+ let { logId: n } = Bt(), r = zt(), { data: i, isLoading: a, isError: o, isNotFound: s, isUnsupported: c, refetch: l } = fn({ id: n }), u = () => r(-1);
4514
4526
  return a ? /* @__PURE__ */ M("div", {
4515
4527
  className: "space-y-4 p-6",
4516
4528
  children: [
@@ -4570,13 +4582,13 @@ function Bo({ config: e, onFilter: t }) {
4570
4582
  })
4571
4583
  }), /* @__PURE__ */ j(se, {
4572
4584
  className: "mx-6 mt-4 overflow-hidden",
4573
- children: /* @__PURE__ */ j(Io, {
4585
+ children: /* @__PURE__ */ j(zo, {
4574
4586
  config: e,
4575
4587
  log: i,
4576
4588
  logId: n,
4577
4589
  onClose: u,
4578
4590
  onCopyJson: () => {
4579
- i && Lo(i);
4591
+ i && Bo(i);
4580
4592
  },
4581
4593
  onFilter: t,
4582
4594
  showExpandToggle: !1,
@@ -4586,33 +4598,92 @@ function Bo({ config: e, onFilter: t }) {
4586
4598
  }) : null;
4587
4599
  }
4588
4600
  //#endregion
4589
- //#region src/data-sources/http-data-source.ts
4590
- var Vo = [
4601
+ //#region src/data-sources/filter-serialization.ts
4602
+ var Wo = [
4591
4603
  "eq",
4592
4604
  "in",
4593
4605
  "lte",
4594
4606
  "gte"
4595
4607
  ];
4596
- function Ho(e) {
4597
- return Vo.includes(e);
4608
+ function Go(e) {
4609
+ return Wo.includes(e);
4598
4610
  }
4599
- var Uo = {
4611
+ var Ko = {
4600
4612
  eq: "EQ",
4601
4613
  in: "IN",
4602
4614
  lte: "LTE",
4603
4615
  gte: "GTE"
4604
- }, Wo = {
4616
+ };
4617
+ function qo(e) {
4618
+ if (!Go(e.operator)) throw Error(`[gamma-lib-observability] Filter operator "${e.operator}" on field "${e.field}" is not supported by the Gravitee Management v2 API. Supported operators: ${Wo.join(", ")}.`);
4619
+ let t = e.value[0];
4620
+ if (t === void 0) throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" has no value — every supported operator requires at least one value.`);
4621
+ switch (e.operator) {
4622
+ case "eq": return Jo(e, "eq", "in"), {
4623
+ name: e.field,
4624
+ operator: "EQ",
4625
+ value: t
4626
+ };
4627
+ case "in": return {
4628
+ name: e.field,
4629
+ operator: "IN",
4630
+ value: e.value.slice()
4631
+ };
4632
+ case "lte":
4633
+ case "gte": {
4634
+ Jo(e, e.operator);
4635
+ let n = Yo(e, t);
4636
+ return {
4637
+ name: e.field,
4638
+ operator: Ko[e.operator],
4639
+ value: n
4640
+ };
4641
+ }
4642
+ default: {
4643
+ let t = e.operator;
4644
+ throw Error(`[gamma-lib-observability] Unhandled supported operator: ${String(t)}`);
4645
+ }
4646
+ }
4647
+ }
4648
+ function Jo(e, t, n) {
4649
+ if (e.value.length <= 1) return;
4650
+ let r = n ? ` Use "${n}" for multi-value membership.` : "";
4651
+ throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${t}" received ${e.value.length} values; "${t}" expects a single value.${r}`);
4652
+ }
4653
+ function Yo(e, t) {
4654
+ let n = t.trim();
4655
+ if (n === "") throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" expects a numeric value but received an empty string.`);
4656
+ let r = Number(n);
4657
+ if (Number.isNaN(r)) throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" expects a numeric value but received "${t}".`);
4658
+ return r;
4659
+ }
4660
+ function Xo(e) {
4661
+ if (e?.length) return e.map(qo);
4662
+ }
4663
+ //#endregion
4664
+ //#region src/data-sources/http-utils.ts
4665
+ function Zo(e) {
4666
+ if (e) return typeof e == "function" ? e() : e;
4667
+ }
4668
+ function Qo(...e) {
4669
+ let t = new Headers();
4670
+ for (let n of e) n && new Headers(n).forEach((e, n) => t.set(n, e));
4671
+ return t;
4672
+ }
4673
+ //#endregion
4674
+ //#region src/data-sources/http-data-source.ts
4675
+ var $o = {
4605
4676
  name: "HTTP_REQUESTS",
4606
4677
  measures: [qt]
4607
4678
  };
4608
- function Go(e) {
4679
+ function es(e) {
4609
4680
  return e.metrics.map((e) => ({
4610
4681
  name: e.name,
4611
4682
  unit: e.unit,
4612
4683
  measures: e.measures ?? []
4613
4684
  }));
4614
4685
  }
4615
- function Ko(e) {
4686
+ function ts(e) {
4616
4687
  let t = [];
4617
4688
  for (let n of e.metrics) if (n.buckets) for (let e of n.buckets) {
4618
4689
  let n = e.measures?.[0]?.value ?? 0;
@@ -4624,7 +4695,7 @@ function Ko(e) {
4624
4695
  }
4625
4696
  return t;
4626
4697
  }
4627
- function qo(e) {
4698
+ function ns(e) {
4628
4699
  let t = [];
4629
4700
  for (let n of e.metrics) if (n.buckets) if (n.buckets.some((e) => e.type === "GROUP" && e.buckets?.length)) {
4630
4701
  let e = /* @__PURE__ */ new Map();
@@ -4661,93 +4732,38 @@ function qo(e) {
4661
4732
  }
4662
4733
  return t;
4663
4734
  }
4664
- function Jo(e) {
4665
- if (!Ho(e.operator)) throw Error(`[gamma-lib-observability] Filter operator "${e.operator}" on field "${e.field}" is not supported by the Gravitee Management v2 analytics API. Supported operators: ${Vo.join(", ")}.`);
4666
- let t = e.value[0];
4667
- if (t === void 0) throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" has no value — every supported operator requires at least one value.`);
4668
- switch (e.operator) {
4669
- case "eq": return Yo(e, "eq", "in"), {
4670
- name: e.field,
4671
- operator: "EQ",
4672
- value: t
4673
- };
4674
- case "in": return {
4675
- name: e.field,
4676
- operator: "IN",
4677
- value: e.value.slice()
4678
- };
4679
- case "lte":
4680
- case "gte": {
4681
- Yo(e, e.operator);
4682
- let n = Xo(e, t);
4683
- return {
4684
- name: e.field,
4685
- operator: Uo[e.operator],
4686
- value: n
4687
- };
4688
- }
4689
- default: {
4690
- let t = e.operator;
4691
- throw Error(`[gamma-lib-observability] Unhandled supported operator: ${String(t)}`);
4692
- }
4693
- }
4694
- }
4695
- function Yo(e, t, n) {
4696
- if (e.value.length <= 1) return;
4697
- let r = n ? ` Use "${n}" for multi-value membership.` : "";
4698
- throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${t}" received ${e.value.length} values; "${t}" expects a single value.${r}`);
4699
- }
4700
- function Xo(e, t) {
4701
- let n = t.trim();
4702
- if (n === "") throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" expects a numeric value but received an empty string.`);
4703
- let r = Number(n);
4704
- if (Number.isNaN(r)) throw Error(`[gamma-lib-observability] Filter on field "${e.field}" with operator "${e.operator}" expects a numeric value but received "${t}".`);
4705
- return r;
4706
- }
4707
- function Zo(e) {
4708
- if (e?.length) return e.map(Jo);
4709
- }
4710
- function Qo(e) {
4735
+ function rs(e) {
4711
4736
  return {
4712
4737
  ...e,
4713
4738
  measures: e.measures?.length ? e.measures : [qt]
4714
4739
  };
4715
4740
  }
4716
- function $o(e, t) {
4717
- let n = Jr(e.timeRange), r = { timeRange: {
4741
+ function is(e, t) {
4742
+ let n = Qr(e.timeRange), r = { timeRange: {
4718
4743
  from: new Date(n.from).toISOString(),
4719
4744
  to: new Date(n.to).toISOString()
4720
- } }, i = Zo(e.filters);
4721
- return i && (r.filters = i), "metrics" in e && (r.metrics = e.metrics.map((e) => es(e))), "interval" in e && (r.interval = e.interval), "by" in e && e.by?.length && (r.by = e.by), "limit" in e && e.limit !== void 0 && (r.limit = e.limit), "field" in e && (r.by = [e.field], r.metrics = [{
4745
+ } }, i = Xo(e.filters);
4746
+ return i && (r.filters = i), "metrics" in e && (r.metrics = e.metrics.map((e) => as(e))), "interval" in e && (r.interval = e.interval), "by" in e && e.by?.length && (r.by = e.by), "limit" in e && e.limit !== void 0 && (r.limit = e.limit), "field" in e && (r.by = [e.field], r.metrics = [{
4722
4747
  name: t.name,
4723
4748
  measures: t.measures
4724
4749
  }]), r;
4725
4750
  }
4726
- function es(e) {
4727
- let t = Qo(e), n = {
4751
+ function as(e) {
4752
+ let t = rs(e), n = {
4728
4753
  name: t.name,
4729
4754
  measures: t.measures
4730
- }, r = Zo(e.filters);
4755
+ }, r = Xo(e.filters);
4731
4756
  return r && (n.filters = r), "sorts" in e && e.sorts?.length && (n.sorts = e.sorts), n;
4732
4757
  }
4733
- function ts(e) {
4734
- if (e) return typeof e == "function" ? e() : e;
4735
- }
4736
- function ns(e) {
4737
- let t = { "Content-Type": "application/json" };
4738
- if (!e) return t;
4739
- let n = new Headers(t);
4740
- return new Headers(e).forEach((e, t) => n.set(t, e)), n;
4741
- }
4742
- function rs(e, t) {
4758
+ function os(e, t) {
4743
4759
  let n = t?.fetch ?? globalThis.fetch.bind(globalThis), r = t?.credentials, i = {
4744
- name: t?.defaultFacetMetric?.name ?? Wo.name,
4745
- measures: t?.defaultFacetMetric?.measures?.length ? [...t.defaultFacetMetric.measures] : [...Wo.measures]
4760
+ name: t?.defaultFacetMetric?.name ?? $o.name,
4761
+ measures: t?.defaultFacetMetric?.measures?.length ? [...t.defaultFacetMetric.measures] : [...$o.measures]
4746
4762
  };
4747
4763
  async function a(i, a, o) {
4748
4764
  let s = {
4749
4765
  method: "POST",
4750
- headers: ns(ts(t?.headers)),
4766
+ headers: Qo({ "Content-Type": "application/json" }, Zo(t?.headers)),
4751
4767
  body: JSON.stringify(a),
4752
4768
  signal: o
4753
4769
  };
@@ -4758,19 +4774,19 @@ function rs(e, t) {
4758
4774
  }
4759
4775
  return {
4760
4776
  async fetchTimeSeries(e) {
4761
- return qo(await a("/analytics/time-series", $o(e, i), e.signal));
4777
+ return ns(await a("/analytics/time-series", is(e, i), e.signal));
4762
4778
  },
4763
4779
  async fetchFacets(e) {
4764
- return Ko(await a("/analytics/facets", $o(e, i), e.signal));
4780
+ return ts(await a("/analytics/facets", is(e, i), e.signal));
4765
4781
  },
4766
4782
  async fetchMeasures(e) {
4767
- return Go(await a("/analytics/measures", $o(e, i), e.signal));
4783
+ return es(await a("/analytics/measures", is(e, i), e.signal));
4768
4784
  }
4769
4785
  };
4770
4786
  }
4771
4787
  //#endregion
4772
4788
  //#region src/data-sources/http-filter-source.ts
4773
- function is(e) {
4789
+ function ss(e) {
4774
4790
  return {
4775
4791
  EQ: "eq",
4776
4792
  IN: "in",
@@ -4783,77 +4799,145 @@ function is(e) {
4783
4799
  CONTAINS: "contains"
4784
4800
  }[e] ?? e.toLowerCase();
4785
4801
  }
4786
- function as(e) {
4802
+ function cs(e) {
4787
4803
  return e === "ENUM" ? "enum" : "async";
4788
4804
  }
4789
- function os(e) {
4790
- function t(t) {
4791
- return async (n) => {
4792
- let r = new URLSearchParams({
4793
- page: String(n.page),
4805
+ function ls(e, t) {
4806
+ let n = t?.fetch ?? globalThis.fetch.bind(globalThis), r = t?.credentials;
4807
+ function i(e) {
4808
+ let n = { ...e }, i = Zo(t?.headers);
4809
+ return (e?.headers || i) && (n.headers = Qo(e?.headers, i)), r && (n.credentials = r), n;
4810
+ }
4811
+ function a(t) {
4812
+ return async (r) => {
4813
+ let a = new URLSearchParams({
4814
+ page: String(r.page),
4794
4815
  perPage: "20"
4795
4816
  });
4796
- n.search && r.set("query", n.search);
4797
- let i = await fetch(`${e}/observability/filters/${encodeURIComponent(t)}/values?${r.toString()}`, { signal: n.signal });
4798
- if (!i.ok) throw Error(`[gamma-lib-observability] HTTP ${i.status} on GET filters/${t}/values`);
4799
- let a = await i.json();
4817
+ r.search && a.set("query", r.search);
4818
+ let o = await n(`${e}/observability/filters/${encodeURIComponent(t)}/values?${a.toString()}`, i({ signal: r.signal }));
4819
+ if (!o.ok) throw Error(`[gamma-lib-observability] HTTP ${o.status} on GET filters/${t}/values`);
4820
+ let s = await o.json();
4800
4821
  return {
4801
- data: a.data.map((e) => ({
4822
+ data: s.data.map((e) => ({
4802
4823
  value: e.id ?? e.value,
4803
4824
  label: e.value
4804
4825
  })),
4805
- hasNextPage: a.pagination.page < a.pagination.pageCount
4826
+ hasNextPage: s.pagination.page < s.pagination.pageCount
4806
4827
  };
4807
4828
  };
4808
4829
  }
4809
4830
  return {
4810
- async fetchFilterDefinitions(n) {
4811
- let r = await fetch(`${e}/observability/filters/definition`, { signal: n });
4831
+ async fetchFilterDefinitions(t) {
4832
+ let r = await n(`${e}/observability/filters/definition`, i({ signal: t }));
4812
4833
  if (!r.ok) throw Error(`[gamma-lib-observability] HTTP ${r.status} on GET filters/definition`);
4813
4834
  return (await r.json()).data.map((e) => {
4814
- let n = as(e.type), r = e.operators.map(is), i = e.apiTypes;
4815
- if (n === "enum") {
4816
- let t = (e.enumValues ?? []).map((e) => ({
4835
+ let t = cs(e.type), n = e.operators.map(ss), r = e.apiTypes;
4836
+ if (t === "enum") {
4837
+ let i = (e.enumValues ?? []).map((e) => ({
4817
4838
  value: e,
4818
4839
  label: e
4819
4840
  }));
4820
4841
  return {
4821
4842
  field: e.name,
4822
4843
  label: e.label,
4823
- kind: n,
4824
- operators: r,
4825
- options: t,
4826
- scopes: i
4844
+ kind: t,
4845
+ operators: n,
4846
+ options: i,
4847
+ scopes: r
4827
4848
  };
4828
4849
  }
4829
4850
  return {
4830
4851
  field: e.name,
4831
4852
  label: e.label,
4832
- kind: n,
4833
- operators: r,
4834
- scopes: i,
4835
- valueLoader: t(e.name)
4853
+ kind: t,
4854
+ operators: n,
4855
+ scopes: r,
4856
+ valueLoader: a(e.name)
4836
4857
  };
4837
4858
  });
4838
4859
  },
4839
- async resolveLabels(t, n) {
4840
- let r = await fetch(`${e}/observability/filters/resolve`, {
4860
+ async resolveLabels(t, r) {
4861
+ let a = await n(`${e}/observability/filters/resolve`, i({
4841
4862
  method: "POST",
4842
4863
  headers: { "Content-Type": "application/json" },
4843
4864
  body: JSON.stringify({ entries: t }),
4844
- signal: n
4845
- });
4846
- if (!r.ok) throw Error(`[gamma-lib-observability] HTTP ${r.status} on POST filters/resolve`);
4847
- let i = await r.json(), a = {};
4848
- for (let e of i.entries) a[e.filterName] = e.labels;
4849
- return a;
4865
+ signal: r
4866
+ }));
4867
+ if (!a.ok) throw Error(`[gamma-lib-observability] HTTP ${a.status} on POST filters/resolve`);
4868
+ let o = await a.json(), s = {};
4869
+ for (let e of o.entries) s[e.filterName] = e.labels;
4870
+ return s;
4850
4871
  }
4851
4872
  };
4852
4873
  }
4853
4874
  //#endregion
4875
+ //#region src/data-sources/http-logs-source.ts
4876
+ var us = "/logs/search", ds = 10 * 365.25 * 864e5;
4877
+ function fs(e, t) {
4878
+ let n = t?.fetch ?? globalThis.fetch.bind(globalThis), r = t?.credentials, i = t?.searchPath ?? us, a;
4879
+ function o(e) {
4880
+ let n = {
4881
+ method: "POST",
4882
+ headers: Qo({ "Content-Type": "application/json" }, e, Zo(t?.headers))
4883
+ };
4884
+ return r && (n.credentials = r), n;
4885
+ }
4886
+ function s(t, n) {
4887
+ let r = new URLSearchParams();
4888
+ t !== void 0 && r.set("page", String(t)), n !== void 0 && r.set("perPage", String(n));
4889
+ let a = r.toString();
4890
+ return `${e}${i}${a ? `?${a}` : ""}`;
4891
+ }
4892
+ function c(e) {
4893
+ return {
4894
+ from: new Date(e.from).toISOString(),
4895
+ to: new Date(e.to).toISOString()
4896
+ };
4897
+ }
4898
+ async function l(e, t) {
4899
+ let r = {
4900
+ timeRange: c(a ?? {
4901
+ type: "absolute",
4902
+ from: Date.now() - ds,
4903
+ to: Date.now()
4904
+ }),
4905
+ filters: [{
4906
+ name: "REQUEST_ID",
4907
+ operator: "EQ",
4908
+ value: e
4909
+ }]
4910
+ }, l = o();
4911
+ l.body = JSON.stringify(r), t && (l.signal = t);
4912
+ let u = await n(s(1, 1), l);
4913
+ if (!u.ok) throw Error(`[gamma-lib-observability] HTTP ${u.status} on POST ${i} (getById)`);
4914
+ return (await u.json()).data?.[0] ?? null;
4915
+ }
4916
+ return {
4917
+ async fetchLogs(e) {
4918
+ let t = Qr(e.timeRange);
4919
+ a = t;
4920
+ let r = Xo(e.filters), l = { timeRange: c(t) };
4921
+ r && (l.filters = r);
4922
+ let u = o();
4923
+ u.body = JSON.stringify(l), e.signal && (u.signal = e.signal);
4924
+ let d = await n(s(e.page, e.perPage), u);
4925
+ if (!d.ok) throw Error(`[gamma-lib-observability] HTTP ${d.status} on POST ${i}`);
4926
+ let f = await d.json();
4927
+ return {
4928
+ entries: f.data ?? [],
4929
+ totalCount: f.pagination?.totalCount,
4930
+ page: f.pagination?.page,
4931
+ pageCount: f.pagination?.pageCount
4932
+ };
4933
+ },
4934
+ getById: l
4935
+ };
4936
+ }
4937
+ //#endregion
4854
4938
  //#region src/routing/DashboardListPage.tsx
4855
- function ss({ templates: e }) {
4856
- let t = o(), n = D(() => ra(e, t), [e, t]), r = D(() => [{
4939
+ function ps({ templates: e }) {
4940
+ let t = o(), n = D(() => oa(e, t), [e, t]), r = D(() => [{
4857
4941
  id: "name",
4858
4942
  accessorKey: "label",
4859
4943
  header: "Name",
@@ -4886,8 +4970,8 @@ function ss({ templates: e }) {
4886
4970
  }
4887
4971
  //#endregion
4888
4972
  //#region src/routing/ObservabilityDashboardPage.tsx
4889
- function cs({ templates: e, scopeFilterField: t }) {
4890
- let { dashboardId: n } = Bt(), r = o(), i = D(() => ra(e, r), [e, r]).find((e) => e.id === n), { timeRange: a, filters: s, setTimeRange: c, setFilters: l } = ua(), u = pn(s, tn()), d = D(() => i ? na(i, { capabilities: r }) : null, [i, r]);
4973
+ function ms({ templates: e, scopeFilterField: t }) {
4974
+ let { dashboardId: n } = Bt(), r = o(), i = D(() => oa(e, r), [e, r]).find((e) => e.id === n), { timeRange: a, filters: s, setTimeRange: c, setFilters: l } = pa(), u = _n(s, tn()), d = D(() => i ? aa(i, { capabilities: r }) : null, [i, r]);
4891
4975
  return !i || !d ? /* @__PURE__ */ j("div", {
4892
4976
  className: "flex items-center justify-center p-8 text-muted-foreground",
4893
4977
  children: n ? `Dashboard "${n}" not found.` : "No dashboard available."
@@ -4905,17 +4989,17 @@ function cs({ templates: e, scopeFilterField: t }) {
4905
4989
  className: "flex flex-wrap items-center gap-3",
4906
4990
  children: [/* @__PURE__ */ j("div", {
4907
4991
  className: "flex flex-1 items-center gap-2",
4908
- children: /* @__PURE__ */ j(Hr, {
4992
+ children: /* @__PURE__ */ j(Kr, {
4909
4993
  filters: u,
4910
4994
  onFiltersChange: l,
4911
4995
  scopeFilterField: t
4912
4996
  })
4913
- }), /* @__PURE__ */ j(Ln, {
4997
+ }), /* @__PURE__ */ j(Vn, {
4914
4998
  value: a,
4915
4999
  onChange: c
4916
5000
  })]
4917
5001
  }),
4918
- /* @__PURE__ */ j(Zi, {
5002
+ /* @__PURE__ */ j(ea, {
4919
5003
  dashboard: d,
4920
5004
  timeRange: a,
4921
5005
  filters: s
@@ -4925,17 +5009,17 @@ function cs({ templates: e, scopeFilterField: t }) {
4925
5009
  }
4926
5010
  //#endregion
4927
5011
  //#region src/routing/ObservabilityRoutes.tsx
4928
- var ls = [];
4929
- function us({ children: e }) {
5012
+ var hs = [];
5013
+ function gs({ children: e }) {
4930
5014
  let t = tn(), { data: n, isLoading: r, isError: i } = N({
4931
5015
  queryKey: ["observability", "filter-definitions"],
4932
5016
  queryFn: ({ signal: e }) => t.fetchFilterDefinitions(e),
4933
5017
  enabled: !!t,
4934
5018
  staleTime: 300 * 1e3
4935
5019
  });
4936
- return r ? /* @__PURE__ */ j(ds, {}) : i || !n ? /* @__PURE__ */ j(A, { children: e([]) }) : /* @__PURE__ */ j(A, { children: e(n) });
5020
+ return r ? /* @__PURE__ */ j(_s, {}) : i || !n ? /* @__PURE__ */ j(A, { children: e([]) }) : /* @__PURE__ */ j(A, { children: e(n) });
4937
5021
  }
4938
- function ds() {
5022
+ function _s() {
4939
5023
  return /* @__PURE__ */ M("div", {
4940
5024
  className: "flex items-center gap-2 p-4",
4941
5025
  children: [
@@ -4945,79 +5029,83 @@ function ds() {
4945
5029
  ]
4946
5030
  });
4947
5031
  }
4948
- function fs({ templates: e, contextFilters: t }) {
4949
- let n = o(), r = D(() => ra(e, n), [e, n]);
5032
+ function vs({ templates: e, contextFilters: t }) {
5033
+ let n = o(), r = D(() => oa(e, n), [e, n]);
4950
5034
  return r.length === 1 && r[0] ? /* @__PURE__ */ j(It, {
4951
5035
  to: `./${r[0].id}`,
4952
5036
  replace: !0
4953
- }) : /* @__PURE__ */ j(on, {
5037
+ }) : /* @__PURE__ */ j(un, {
4954
5038
  filters: t,
4955
- children: /* @__PURE__ */ j(ss, { templates: e })
5039
+ children: /* @__PURE__ */ j(ps, { templates: e })
4956
5040
  });
4957
5041
  }
4958
- function ps({ baseUrl: e, dataSource: t, filterProviders: i, logsPage: a, logsDataSource: o, logsColumns: s, logsOnRowClick: l, logsGetRowId: u, config: f }) {
4959
- let p = n(), m = D(() => rs(e), [e]), g = t !== void 0 || p === null, _ = t ?? p ?? m, v = D(() => os(e), [e]), y = r(), b = o ?? y ?? void 0, x = o !== void 0 && y === null, S = f.features.dashboards, C = f.features.logs, w = S?.contextFilters ?? ls, T = C?.contextFilters ?? ls, E = (e) => /* @__PURE__ */ j(h, {
5042
+ function ys({ baseUrl: e, http: t, dataSource: i, filterProviders: a, logsPage: o, logsDataSource: s, logsColumns: l, logsOnRowClick: u, logsGetRowId: f, config: p }) {
5043
+ let m = an(), g = t ?? m, _ = n(), v = D(() => os(e, g), [e, g]), y = i !== void 0 || _ === null, b = i ?? _ ?? v, x = D(() => ls(e, g), [e, g]), S = r(), C = D(() => p.features.logs?.enabled ? fs(e, g) : void 0, [
5044
+ e,
5045
+ g,
5046
+ p.features.logs?.enabled
5047
+ ]), w = s ?? S ?? C, T = s !== void 0 || S === null, E = p.features.dashboards, O = p.features.logs, k = E?.contextFilters ?? hs, ee = O?.contextFilters ?? hs, te = (e) => /* @__PURE__ */ j(h, {
4960
5048
  providers: e,
4961
5049
  children: /* @__PURE__ */ M(Rt, { children: [
4962
- S?.enabled && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j(Lt, {
5050
+ E?.enabled && /* @__PURE__ */ M(A, { children: [/* @__PURE__ */ j(Lt, {
4963
5051
  path: "dashboards",
4964
- element: /* @__PURE__ */ j(fs, {
4965
- templates: S.templates,
4966
- contextFilters: w
5052
+ element: /* @__PURE__ */ j(vs, {
5053
+ templates: E.templates,
5054
+ contextFilters: k
4967
5055
  })
4968
5056
  }), /* @__PURE__ */ j(Lt, {
4969
5057
  path: "dashboards/:dashboardId",
4970
- element: /* @__PURE__ */ j(on, {
4971
- filters: w,
4972
- children: /* @__PURE__ */ j(cs, {
4973
- templates: S.templates,
4974
- scopeFilterField: S.scopeFilterField
5058
+ element: /* @__PURE__ */ j(un, {
5059
+ filters: k,
5060
+ children: /* @__PURE__ */ j(ms, {
5061
+ templates: E.templates,
5062
+ scopeFilterField: E.scopeFilterField
4975
5063
  })
4976
5064
  })
4977
5065
  })] }),
4978
- f.features.logs?.enabled && /* @__PURE__ */ j(Lt, {
5066
+ p.features.logs?.enabled && /* @__PURE__ */ j(Lt, {
4979
5067
  path: "logs",
4980
- element: /* @__PURE__ */ j(on, {
4981
- filters: T,
4982
- children: a ?? (b && s ? x ? /* @__PURE__ */ j(c, {
4983
- dataSource: b,
4984
- children: /* @__PURE__ */ j(za, {
4985
- columns: s,
4986
- onRowClick: l,
4987
- getRowId: u,
4988
- pageSize: C?.pageSize,
4989
- scopeFilterField: C?.scopeFilterField,
4990
- columnVisibilityStorageKey: C?.columnVisibilityStorageKey
5068
+ element: /* @__PURE__ */ j(un, {
5069
+ filters: ee,
5070
+ children: o ?? (w && l ? T ? /* @__PURE__ */ j(c, {
5071
+ dataSource: w,
5072
+ children: /* @__PURE__ */ j(Ha, {
5073
+ columns: l,
5074
+ onRowClick: u,
5075
+ getRowId: f,
5076
+ pageSize: O?.pageSize,
5077
+ scopeFilterField: O?.scopeFilterField,
5078
+ columnVisibilityStorageKey: O?.columnVisibilityStorageKey
4991
5079
  })
4992
- }) : /* @__PURE__ */ j(za, {
4993
- columns: s,
4994
- onRowClick: l,
4995
- getRowId: u,
4996
- pageSize: C?.pageSize,
4997
- scopeFilterField: C?.scopeFilterField,
4998
- columnVisibilityStorageKey: C?.columnVisibilityStorageKey
5080
+ }) : /* @__PURE__ */ j(Ha, {
5081
+ columns: l,
5082
+ onRowClick: u,
5083
+ getRowId: f,
5084
+ pageSize: O?.pageSize,
5085
+ scopeFilterField: O?.scopeFilterField,
5086
+ columnVisibilityStorageKey: O?.columnVisibilityStorageKey
4999
5087
  }) : /* @__PURE__ */ j("div", {
5000
5088
  className: "flex items-center justify-center p-8 text-muted-foreground",
5001
5089
  children: "Logs feature enabled but no page provided."
5002
5090
  }))
5003
5091
  })
5004
5092
  }),
5005
- f.features.logs?.enabled && C?.logDetail && b && /* @__PURE__ */ j(Lt, {
5093
+ p.features.logs?.enabled && O?.logDetail && w && /* @__PURE__ */ j(Lt, {
5006
5094
  path: "logs/:logId",
5007
- element: /* @__PURE__ */ j(on, {
5008
- filters: T,
5009
- children: x ? /* @__PURE__ */ j(c, {
5010
- dataSource: b,
5011
- children: /* @__PURE__ */ j(Bo, { config: C.logDetail })
5012
- }) : /* @__PURE__ */ j(Bo, { config: C.logDetail })
5095
+ element: /* @__PURE__ */ j(un, {
5096
+ filters: ee,
5097
+ children: T ? /* @__PURE__ */ j(c, {
5098
+ dataSource: w,
5099
+ children: /* @__PURE__ */ j(Uo, { config: O.logDetail })
5100
+ }) : /* @__PURE__ */ j(Uo, { config: O.logDetail })
5013
5101
  })
5014
5102
  }),
5015
5103
  /* @__PURE__ */ j(Lt, {
5016
5104
  path: "*",
5017
- element: S?.enabled ? /* @__PURE__ */ j(It, {
5105
+ element: E?.enabled ? /* @__PURE__ */ j(It, {
5018
5106
  to: "dashboards",
5019
5107
  replace: !0
5020
- }) : f.features.logs?.enabled ? /* @__PURE__ */ j(It, {
5108
+ }) : p.features.logs?.enabled ? /* @__PURE__ */ j(It, {
5021
5109
  to: "logs",
5022
5110
  replace: !0
5023
5111
  }) : /* @__PURE__ */ j("div", {
@@ -5026,18 +5114,18 @@ function ps({ baseUrl: e, dataSource: t, filterProviders: i, logsPage: a, logsDa
5026
5114
  })
5027
5115
  })
5028
5116
  ] })
5029
- }), O = /* @__PURE__ */ j(en, {
5030
- source: v,
5031
- children: i ? E(i) : /* @__PURE__ */ j(us, { children: (e) => E(e) })
5117
+ }), N = /* @__PURE__ */ j(en, {
5118
+ source: x,
5119
+ children: a ? te(a) : /* @__PURE__ */ j(gs, { children: (e) => te(e) })
5032
5120
  });
5033
- return g ? /* @__PURE__ */ j(d, {
5034
- dataSource: _,
5035
- children: O
5036
- }) : O;
5121
+ return y ? /* @__PURE__ */ j(d, {
5122
+ dataSource: b,
5123
+ children: N
5124
+ }) : N;
5037
5125
  }
5038
5126
  //#endregion
5039
5127
  //#region src/routing/define-observability-features.ts
5040
- var ms = {
5128
+ var bs = {
5041
5129
  dashboards: {
5042
5130
  icon: st,
5043
5131
  title: "Dashboards",
@@ -5049,10 +5137,10 @@ var ms = {
5049
5137
  order: 1
5050
5138
  }
5051
5139
  };
5052
- function hs(e) {
5053
- let t = e.basePath ?? "observe", n = gs(e), r = _s(e, n, t), i = n.map((e) => `${t}/${e}`), a = vs(n, t);
5140
+ function xs(e) {
5141
+ let t = e.basePath ?? "observe", n = Ss(e), r = Cs(e, n, t), i = n.map((e) => `${t}/${e}`), a = ws(n, t);
5054
5142
  function o(t) {
5055
- return b(ps, {
5143
+ return b(ys, {
5056
5144
  ...t,
5057
5145
  config: e
5058
5146
  });
@@ -5064,13 +5152,13 @@ function hs(e) {
5064
5152
  Routes: o
5065
5153
  };
5066
5154
  }
5067
- function gs(e) {
5155
+ function Ss(e) {
5068
5156
  let t = [];
5069
- return e.features.dashboards?.enabled && t.push("dashboards"), e.features.logs?.enabled && t.push("logs"), t.sort((e, t) => ms[e].order - ms[t].order);
5157
+ return e.features.dashboards?.enabled && t.push("dashboards"), e.features.logs?.enabled && t.push("logs"), t.sort((e, t) => bs[e].order - bs[t].order);
5070
5158
  }
5071
- function _s(e, t, n) {
5159
+ function Cs(e, t, n) {
5072
5160
  let r = t.map((t) => {
5073
- let r = ms[t], i = e.nav.overrides?.[t];
5161
+ let r = bs[t], i = e.nav.overrides?.[t];
5074
5162
  return {
5075
5163
  key: `${n}/${t}`,
5076
5164
  title: i?.title ?? r.title,
@@ -5082,10 +5170,10 @@ function _s(e, t, n) {
5082
5170
  items: r
5083
5171
  };
5084
5172
  }
5085
- function vs(e, t) {
5173
+ function ws(e, t) {
5086
5174
  let n = {};
5087
5175
  for (let r of e) {
5088
- let e = ms[r], i = `${t}/${r}`;
5176
+ let e = bs[r], i = `${t}/${r}`;
5089
5177
  n[i] = {
5090
5178
  path: `${t}/${r}`,
5091
5179
  label: e.title
@@ -5094,4 +5182,4 @@ function vs(e, t) {
5094
5182
  return n;
5095
5183
  }
5096
5184
  //#endregion
5097
- export { ai as BarPresentation, Sn as CODEC_VERSION, l as CapabilityProvider, bi as CartesianPresentation, on as ContextFiltersProvider, vi as DASHBOARD_BUCKET_TARGET, e as DEFAULT_CAPABILITIES, qt as DEFAULT_MEASURE, hn as DEFAULT_PERIOD, Jt as DEFAULT_REFRESH_INTERVAL_MS, W as DEFAULT_STALE_TIME, Cn as DEFAULT_TIME_RANGE, i as DashboardPersistenceProvider, aa as DashboardTemplatesProvider, Zi as DashboardView, wi as DoughnutPresentation, _ as FILTER_OPERATORS, Hr as FilterBar, Nr as FilterChip, Tr as FilterPopoverForm, h as FilterProvidersProvider, si as HTTP_STATUS_PALETTE, la as LiveIndicator, Xt as LiveRefreshProvider, X as LogDetailCodeBlock, xo as LogDetailContextChart, Ro as LogDetailDrawer, Eo as LogDetailDrawerShell, Z as LogDetailEmptyField, Ao as LogDetailHeader, Q as LogDetailHeadersTable, Ka as LogDetailJsonTree, $ as LogDetailKeyValueGrid, jo as LogDetailMetrics, Bo as LogDetailPage, Po as LogDetailSection, No as LogDetailSections, pa as LogSeverityBadge, Ca as LogTable, c as LogsDataSourceProvider, za as LogsExplorerPage, Fi as MetricGroupPresentation, Ri as MetricPresentation, d as MetricsDataSourceProvider, yn as PERIOD_DISPLAY_LABELS, vn as PERIOD_LABELS, gn as PRESET_CATEGORIES, _n as RELATIVE_PERIODS, Ln as TimeRangePicker, s as TracesDataSourceProvider, ea as WidgetGroup, qi as WidgetItem, kr as buildChipLabel, Ar as buildChipLabelParts, jr as buildChipTooltip, Ua as buildDefaultConnectionLogColumns, vo as buildDefaultLogDetailConfig, Ba as buildLogsDeepLink, Ui as clearWidgetRenderers, yi as computeBucketInterval, Pi as computePreviousTimeRange, Oi as computeTrend, Xa as connectionLogPreset, rs as createHttpDataSource, os as createHttpFilterSource, On as decodeObservabilityState, ta as defineDashboardTemplate, Kn as defineFilterProvider, ho as defineLogDetail, hs as defineObservabilityFeatures, Dn as encodeObservabilityState, Ei as extractMeasureValue, ki as extractSparklineData, $r as facetsToBar, Qr as facetsToDoughnut, Rn as getLocaleWeekStart, Hi as getWidgetRenderer, Wt as isBarWidget, Ht as isCartesianWidget, Ut as isDoughnutWidget, Kt as isMetricGroupWidget, Gt as isMetricWidget, _r as isMultiSelectForFilter, Di as measureResultToMetric, q as mergeFilters, fi as mergeTimeSeriesToCartesian, no as messageLogPreset, vr as normalizeMembershipOperatorForValues, K as observabilityQueryKeys, mr as operatorLabel, hr as operatorNeedsValue, Gi as registerDefaultRenderers, Vi as registerWidgetRenderer, na as resolveDashboardFromTemplate, li as resolveGroupColor, go as resolveLogDetailVariant, U as resolveMeasure, _o as resolvePreset, Gn as resolveRelativePeriod, Jr as resolveStableTimeRange, o as useCapabilities, a as useCapability, J as useContextFilters, f as useDashboardPersistence, sa as useDashboardTemplate, oa as useDashboardTemplates, sn as useFacetsQuery, u as useFilterProvider, p as useFilterProviders, Zt as useLiveRefresh, Co as useLogDetailDrawerExpand, cn as useLogDetailQuery, g as useLogsDataSource, dn as useLogsPagedQuery, ln as useLogsQuery, fn as useMeasuresQuery, ei as useMergedWidgetFilters, m as useMetricsDataSource, Qt as useOptionalLiveRefresh, r as useOptionalLogsDataSource, n as useOptionalMetricsDataSource, Y as useStableTimeRange, mn as useTimeSeriesQuery, t as useTracesDataSource, Kr as useWidgetGroupContext, so as webhookLogPreset };
5185
+ export { li as BarPresentation, En as CODEC_VERSION, l as CapabilityProvider, wi as CartesianPresentation, un as ContextFiltersProvider, Si as DASHBOARD_BUCKET_TARGET, e as DEFAULT_CAPABILITIES, qt as DEFAULT_MEASURE, yn as DEFAULT_PERIOD, Jt as DEFAULT_REFRESH_INTERVAL_MS, W as DEFAULT_STALE_TIME, Dn as DEFAULT_TIME_RANGE, i as DashboardPersistenceProvider, ca as DashboardTemplatesProvider, ea as DashboardView, Oi as DoughnutPresentation, _ as FILTER_OPERATORS, Kr as FilterBar, Lr as FilterChip, kr as FilterPopoverForm, h as FilterProvidersProvider, di as HTTP_STATUS_PALETTE, rn as HttpProvider, fa as LiveIndicator, Xt as LiveRefreshProvider, X as LogDetailCodeBlock, wo as LogDetailContextChart, Vo as LogDetailDrawer, ko as LogDetailDrawerShell, Z as LogDetailEmptyField, No as LogDetailHeader, Q as LogDetailHeadersTable, Ya as LogDetailJsonTree, $ as LogDetailKeyValueGrid, Po as LogDetailMetrics, Uo as LogDetailPage, Lo as LogDetailSection, Io as LogDetailSections, ga as LogSeverityBadge, Ea as LogTable, c as LogsDataSourceProvider, Ha as LogsExplorerPage, zi as MetricGroupPresentation, Hi as MetricPresentation, d as MetricsDataSourceProvider, Cn as PERIOD_DISPLAY_LABELS, Sn as PERIOD_LABELS, bn as PRESET_CATEGORIES, xn as RELATIVE_PERIODS, Vn as TimeRangePicker, s as TracesDataSourceProvider, ra as WidgetGroup, Xi as WidgetItem, Nr as buildChipLabel, Pr as buildChipLabelParts, Fr as buildChipTooltip, Ka as buildDefaultConnectionLogColumns, xo as buildDefaultLogDetailConfig, Ua as buildLogsDeepLink, Ki as clearWidgetRenderers, Ci as computeBucketInterval, Ri as computePreviousTimeRange, Mi as computeTrend, $a as connectionLogPreset, os as createHttpDataSource, ls as createHttpFilterSource, fs as createHttpLogsSource, Mn as decodeObservabilityState, ia as defineDashboardTemplate, Xn as defineFilterProvider, vo as defineLogDetail, xs as defineObservabilityFeatures, jn as encodeObservabilityState, Ai as extractMeasureValue, Ni as extractSparklineData, ri as facetsToBar, ni as facetsToDoughnut, Hn as getLocaleWeekStart, Gi as getWidgetRenderer, Wt as isBarWidget, Ht as isCartesianWidget, Ut as isDoughnutWidget, Kt as isMetricGroupWidget, Gt as isMetricWidget, xr as isMultiSelectForFilter, ji as measureResultToMetric, K as mergeFilters, gi as mergeTimeSeriesToCartesian, ao as messageLogPreset, Sr as normalizeMembershipOperatorForValues, G as observabilityQueryKeys, vr as operatorLabel, yr as operatorNeedsValue, Ji as registerDefaultRenderers, Y as registerWidgetRenderer, aa as resolveDashboardFromTemplate, pi as resolveGroupColor, yo as resolveLogDetailVariant, U as resolveMeasure, bo as resolvePreset, Yn as resolveRelativePeriod, Qr as resolveStableTimeRange, o as useCapabilities, a as useCapability, q as useContextFilters, f as useDashboardPersistence, ua as useDashboardTemplate, la as useDashboardTemplates, dn as useFacetsQuery, u as useFilterProvider, p as useFilterProviders, an as useHttpOptions, Zt as useLiveRefresh, Eo as useLogDetailDrawerExpand, fn as useLogDetailQuery, g as useLogsDataSource, hn as useLogsPagedQuery, pn as useLogsQuery, gn as useMeasuresQuery, ii as useMergedWidgetFilters, m as useMetricsDataSource, Qt as useOptionalLiveRefresh, r as useOptionalLogsDataSource, n as useOptionalMetricsDataSource, J as useStableTimeRange, vn as useTimeSeriesQuery, t as useTracesDataSource, Xr as useWidgetGroupContext, uo as webhookLogPreset };