@juspay/svelte-ui-components 4.53.0 → 4.53.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -154,6 +154,20 @@ fix to something that did not work.
154
154
  | **RelativeTime** | Auto-updating relative time display ("5 minutes ago") with locale support and optional tooltip. | [docs](docs/RelativeTime.md) |
155
155
  | **AspectRatio** | Constrains content to a fixed width-to-height ratio using CSS `aspect-ratio`, reserving layout space before an image, video or iframe loads. | [docs](docs/AspectRatio.md) |
156
156
 
157
+ ### Charts
158
+
159
+ Pure-SVG charts with no charting-library dependency; each takes plain data arrays.
160
+
161
+ | Component | Description | Docs |
162
+ | --- | --- | --- |
163
+ | **AreaChart** | Responsive area chart for volume under a trend: multiple series, regular or 100% stacking, gradient fill, data labels and a hover overlay. | [docs](docs/AreaChart.md) |
164
+ | **BarChart** | Responsive bar chart for comparing categories: vertical or horizontal, single or multi-series (grouped or stacked), value labels, per-point colours and hover tooltips. | [docs](docs/BarChart.md) |
165
+ | **DualAxisBarChart** | Two independent Y-axes over one categorical X-axis; each series declares its own axis and render type. | [docs](docs/DualAxisBarChart.md) |
166
+ | **FunnelChart** | Horizontal funnel: one bar per stage, proportional to its value, with connectors between stages. | [docs](docs/FunnelChart.md) |
167
+ | **LineChart** | Responsive line chart for trends: multiple series, five curve interpolations, gradient fill and an optional area mode. | [docs](docs/LineChart.md) |
168
+ | **PieChart** | Responsive pie or donut chart with slice hover highlighting, a delta badge, custom labels, a legend and donut centre content. | [docs](docs/PieChart.md) |
169
+ | **SankeyChart** | Sankey diagram for flows between nodes, positioned into columns automatically. | [docs](docs/SankeyChart.md) |
170
+
157
171
  ### Feedback & Loading
158
172
 
159
173
  | Component | Description | Docs |
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
2
  import type {
3
+ DateRangeCompareDraft,
3
4
  DateRangePickerProperties,
4
5
  DateRangePreset,
5
6
  TimeDisplayBoundary
@@ -95,8 +96,11 @@
95
96
  let draftStart: Date | null = $state(null);
96
97
  let draftEnd: Date | null = $state(null);
97
98
  let draftValue: Date | null = $state(null);
98
- let draftCompareStart: Date | null = $state(null);
99
- let draftCompareEnd: Date | null = $state(null);
99
+ // The compare range is a draft too. It is handed to `compareCalendar` so a consumer's calendar
100
+ // has somewhere to write that Apply commits and Cancel discards; `compareSnapshot` is what the
101
+ // committed range was when the session opened, which is what Cancel restores.
102
+ const compareDraft: DateRangeCompareDraft = $state({ start: null, end: null });
103
+ let compareSnapshot: DateRangeCompareDraft = $state({ start: null, end: null });
100
104
 
101
105
  // Tracks the label of the currently active preset, or null when the user
102
106
  // made a custom calendar selection (or before any selection is made).
@@ -339,6 +343,67 @@
339
343
  }
340
344
  }
341
345
 
346
+ const sameInstant = (a: Date | null, b: Date | null): boolean =>
347
+ (a === null ? null : a.getTime()) === (b === null ? null : b.getTime());
348
+
349
+ // The compare calendar lives in the main panel unless a standalone `compareTrigger` gives it
350
+ // its own panel and its own Apply/Cancel.
351
+ const compareInMain: boolean = $derived(
352
+ typeof compareCalendar === 'function' && typeof compareTrigger !== 'function'
353
+ );
354
+
355
+ function seedCompareSession(): void {
356
+ compareSnapshot = { start: compareStart, end: compareEnd };
357
+ compareDraft.start = compareStart;
358
+ compareDraft.end = compareEnd;
359
+ }
360
+
361
+ // What Apply commits. A calendar bound to `compareDraft` edits the draft. A calendar bound
362
+ // straight to `compareStart`/`compareEnd` (how this component's docs wired it before the draft
363
+ // was exposed) edits the committed values in place and leaves the draft at its seed; Apply used
364
+ // to write that stale seed back over the pick, and could not be pressed at all on first use.
365
+ const pendingCompare = $derived.by(() => {
366
+ const edited =
367
+ !sameInstant(compareDraft.start, compareSnapshot.start) ||
368
+ !sameInstant(compareDraft.end, compareSnapshot.end);
369
+ return edited
370
+ ? { start: compareDraft.start, end: compareDraft.end }
371
+ : { start: compareStart, end: compareEnd };
372
+ });
373
+ const canApplyCompare: boolean = $derived(
374
+ pendingCompare.start !== null && pendingCompare.end !== null
375
+ );
376
+
377
+ function commitCompare(): void {
378
+ const { start, end } = pendingCompare;
379
+ if (start === null || end === null) {
380
+ return;
381
+ }
382
+ compareStart = start;
383
+ compareEnd = end;
384
+ onapplycompare?.({ compareStart: start, compareEnd: end, presetLabel: selectedPresetLabel });
385
+ }
386
+
387
+ // Cancel, Escape and an outside press all land here: whatever the session did to the draft or
388
+ // to the committed range goes back to what it was when the session opened.
389
+ function discardCompare(): void {
390
+ if (!sameInstant(compareStart, compareSnapshot.start)) {
391
+ compareStart = compareSnapshot.start;
392
+ }
393
+ if (!sameInstant(compareEnd, compareSnapshot.end)) {
394
+ compareEnd = compareSnapshot.end;
395
+ }
396
+ compareDraft.start = compareSnapshot.start;
397
+ compareDraft.end = compareSnapshot.end;
398
+ }
399
+
400
+ function abandonPicker(): void {
401
+ if (compareInMain) {
402
+ discardCompare();
403
+ }
404
+ closePicker();
405
+ }
406
+
342
407
  function openPicker(): void {
343
408
  // Pointer activation need not focus a button in WebKit. Return to the
344
409
  // invoking control, not an unrelated previously focused field or body.
@@ -347,8 +412,9 @@
347
412
  draftStart = rangeStart;
348
413
  draftEnd = rangeEnd;
349
414
  draftValue = value;
350
- draftCompareStart = compareStart;
351
- draftCompareEnd = compareEnd;
415
+ if (compareInMain) {
416
+ seedCompareSession();
417
+ }
352
418
 
353
419
  // Re-seed the session from the committed preset so the sidebar re-highlights it
354
420
  // by label. A direct calendar click later clears this, reverting to date matching.
@@ -500,7 +566,7 @@
500
566
  // a second click feeling dead — the panel could only be closed by clicking away.
501
567
  function togglePicker(): void {
502
568
  if (isOpen) {
503
- closePicker();
569
+ abandonPicker();
504
570
  } else {
505
571
  openPicker();
506
572
  }
@@ -508,8 +574,7 @@
508
574
 
509
575
  function openComparePicker(): void {
510
576
  compareFocusReturnEl = compareTriggerRef ? findInteractive(compareTriggerRef) : null;
511
- draftCompareStart = compareStart ?? null;
512
- draftCompareEnd = compareEnd ?? null;
577
+ seedCompareSession();
513
578
  openCompare = true;
514
579
  tick().then(() => focusFirstElement(comparePanelRef));
515
580
  }
@@ -524,19 +589,12 @@
524
589
  }
525
590
 
526
591
  function handleApplyCompare(): void {
527
- if (draftCompareStart !== null && draftCompareEnd !== null) {
528
- compareStart = draftCompareStart;
529
- compareEnd = draftCompareEnd;
530
- onapplycompare?.({
531
- compareStart: draftCompareStart,
532
- compareEnd: draftCompareEnd,
533
- presetLabel: selectedPresetLabel
534
- });
535
- }
592
+ commitCompare();
536
593
  closeComparePicker();
537
594
  }
538
595
 
539
596
  function handleCancelCompare(): void {
597
+ discardCompare();
540
598
  closeComparePicker();
541
599
  }
542
600
 
@@ -568,18 +626,8 @@
568
626
  presetLabel: selectedPresetLabel
569
627
  });
570
628
  }
571
- if (
572
- typeof compareCalendar === 'function' &&
573
- draftCompareStart !== null &&
574
- draftCompareEnd !== null
575
- ) {
576
- compareStart = draftCompareStart;
577
- compareEnd = draftCompareEnd;
578
- onapplycompare?.({
579
- compareStart: draftCompareStart,
580
- compareEnd: draftCompareEnd,
581
- presetLabel: selectedPresetLabel
582
- });
629
+ if (typeof compareCalendar === 'function') {
630
+ commitCompare();
583
631
  }
584
632
  } else {
585
633
  if (draftValue !== null) {
@@ -601,7 +649,7 @@
601
649
 
602
650
  function handleCancel(): void {
603
651
  oncancel?.();
604
- closePicker();
652
+ abandonPicker();
605
653
  }
606
654
 
607
655
  function handlePreset(preset: DateRangePreset): void {
@@ -893,9 +941,10 @@
893
941
  outside both at once. */
894
942
  function handleDismissOutside(): void {
895
943
  if (isOpen) {
896
- closePicker();
944
+ abandonPicker();
897
945
  }
898
946
  if (openCompare) {
947
+ discardCompare();
899
948
  closeComparePicker();
900
949
  }
901
950
  }
@@ -1053,7 +1102,7 @@
1053
1102
  >
1054
1103
  {#if typeof compareCalendar === 'function'}
1055
1104
  <div class="drp-compare-panel-body">
1056
- {@render compareCalendar()}
1105
+ {@render compareCalendar(compareDraft)}
1057
1106
  </div>
1058
1107
  {/if}
1059
1108
  <div class="drp-footer">
@@ -1066,7 +1115,7 @@
1066
1115
  onclick={handleApplyCompare}
1067
1116
  ariaLabel="Apply compare selection"
1068
1117
  classes="drp-btn-apply"
1069
- disabled={draftCompareStart === null || draftCompareEnd === null}>Apply</Button
1118
+ disabled={!canApplyCompare}>Apply</Button
1070
1119
  >
1071
1120
  </div>
1072
1121
  </div>
@@ -1442,7 +1491,7 @@
1442
1491
  causes a Svelte 5 runtime error. -->
1443
1492
  {#if typeof compareCalendar === 'function' && typeof compareTrigger !== 'function'}
1444
1493
  <div class="drp-compare-section">
1445
- {@render compareCalendar()}
1494
+ {@render compareCalendar(compareDraft)}
1446
1495
  </div>
1447
1496
  {/if}
1448
1497
  </div>
@@ -1,4 +1,12 @@
1
1
  import type { Snippet } from 'svelte';
2
+ /**
3
+ * The compare range a `compareCalendar` snippet edits before Apply commits it. A plain
4
+ * reactive object, so a Calendar can bind to its fields.
5
+ */
6
+ export type DateRangeCompareDraft = {
7
+ start: Date | null;
8
+ end: Date | null;
9
+ };
2
10
  export type DateRangePreset = {
3
11
  label: string;
4
12
  getValue: () => {
@@ -102,8 +110,16 @@ export type OptionalDateRangePickerProperties = {
102
110
  compareStart?: Date | null;
103
111
  /** End of compare range (bindable). Used when compareCalendar snippet is provided. */
104
112
  compareEnd?: Date | null;
105
- /** Snippet rendered in the compare-calendar slot. Consumer controls all compare UI. */
106
- compareCalendar?: Snippet;
113
+ /**
114
+ * Snippet rendered in the compare-calendar slot. Consumer controls all compare UI.
115
+ *
116
+ * It receives the compare draft, a reactive `{ start, end }` that Apply commits and that
117
+ * Cancel, Escape and an outside press discard. Bind a Calendar to it:
118
+ * `bind:rangeStart={draft.start} bind:rangeEnd={draft.end}`. A snippet that takes no
119
+ * argument and edits `compareStart`/`compareEnd` directly still works: Apply keeps what
120
+ * it wrote, and Cancel restores the range the session opened with.
121
+ */
122
+ compareCalendar?: Snippet<[DateRangeCompareDraft]>;
107
123
  /** Which day of the week starts the calendar. 0=Sunday, 1=Monday. */
108
124
  weekStartsOn?: 0 | 1;
109
125
  /** BCP-47 locale string for date formatting. */
@@ -289,10 +289,10 @@
289
289
  gap: var(--tool-call-log-gap, 8px);
290
290
  }
291
291
 
292
- /* Bespoke <button> markup (Pill's root is a non-interactive <div> and can't carry
293
- aria-expanded/button semantics — see docs), but its sizing recipe is deliberately
294
- pulled from Pill's own tokens (line-height, cursor) so it reads as the same family
295
- of control as the diffstat Pill badges nested inside it. */
292
+ /* Bespoke <button> markup (the chip holds mixed content -- spinner, label, meta and nested
293
+ diffstat Pill badges -- where Pill renders one `text` string; see docs), but its sizing
294
+ recipe is deliberately pulled from Pill's own tokens (line-height, cursor) so it reads as
295
+ the same family of control as the diffstat Pill badges nested inside it. */
296
296
  .chip {
297
297
  display: inline-flex;
298
298
  align-items: center;
package/dist-wc/index.js CHANGED
@@ -27497,9 +27497,15 @@ var TIME_DISPLAY_PATTERN = /^(1[0-2]|0?[1-9]):([0-5][0-9])\s?(AM|PM)$/i, pad = (
27497
27497
  function DateRangePicker(e, t) {
27498
27498
  let n = props_id();
27499
27499
  push(t, !0), append_styles$1(e, $$css$79);
27500
- let i = "<svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"8\" cy=\"8\" r=\"6.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M8 4.5V8l2.25 1.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>", a = prop(t, "rangeStart", 15, null), o = prop(t, "rangeEnd", 15, null), s = prop(t, "value", 15, null), c = prop(t, "mode", 7, "range"), l = prop(t, "minDate", 7, null), u = prop(t, "maxDate", 7, null), f = prop(t, "disabledDates", 23, () => []), p = prop(t, "maxRangeDays", 7, null), h = prop(t, "presets", 7, null), S = prop(t, "presetCheckmark", 7, !1), C = prop(t, "showDateInputs", 7, !1), k = prop(t, "showTimeSelection", 7, !1), R = prop(t, "timeSelectionLayout", 7, "toggle"), G = prop(t, "presetToggle", 7, !1), te = prop(t, "placeholder", 7, "Select date"), ne = prop(t, "dualMonth", 7), re = prop(t, "timePicker", 7), be = prop(t, "align", 7, "left"), Me = prop(t, "presetsPosition", 7, "side"), Re = prop(t, "responsiveLayout", 7, !1), Ue = prop(t, "compareStart", 15, null), it = prop(t, "compareEnd", 15, null), at = prop(t, "compareCalendar", 7), ot = prop(t, "weekStartsOn", 7, 0), ct = prop(t, "locale", 7), lt = prop(t, "testId", 7), ut = prop(t, "classes", 7), dt = prop(t, "triggerSnippet", 7), ft = prop(t, "triggerIcon", 7), pt = prop(t, "clearable", 7, !1), mt = prop(t, "initialPresetLabel", 7), ht = prop(t, "compareTrigger", 7), gt = prop(t, "openCompare", 15, !1), _t = prop(t, "onapply", 7), vt = prop(t, "onapplysingle", 7), yt = prop(t, "onapplycompare", 7), bt = prop(t, "oncancel", 7), xt = prop(t, "onopentoggle", 7), St = prop(t, "onclear", 7), Ct = /* @__PURE__ */ user_derived(() => typeof ne() == "boolean" ? ne() : c() === "range"), wt = "(max-width: 1023px)", Tt = "(max-width: 688px)", Et = /* @__PURE__ */ state(!1), Dt = /* @__PURE__ */ state(!1), Ot = /* @__PURE__ */ user_derived(() => Re() && get(Dt)), kt = /* @__PURE__ */ user_derived(() => Re() && (c() === "range" ? get(Et) : get(Dt))), At = /* @__PURE__ */ user_derived(() => get(Ct) && !get(Ot)), jt = /* @__PURE__ */ user_derived(() => Me() === "top" || get(kt)), Mt = /* @__PURE__ */ state(null), Nt = /* @__PURE__ */ state(null), Pt = /* @__PURE__ */ state(null), It = /* @__PURE__ */ state(null), Lt = /* @__PURE__ */ state(null), Rt = /* @__PURE__ */ state(null), zt = /* @__PURE__ */ state("12:00 AM"), Bt = /* @__PURE__ */ state("11:59 PM"), Ht = /* @__PURE__ */ state(!1), Gt = /* @__PURE__ */ state(null), qt = /* @__PURE__ */ state(null), Zt = /* @__PURE__ */ user_derived(() => get(Gt) ?? (get(Mt) === null ? "" : wn(get(Mt)))), Qt = /* @__PURE__ */ user_derived(() => get(qt) ?? (get(Nt) === null ? "" : wn(get(Nt)))), $t = /* @__PURE__ */ user_derived(() => k() && R() === "inline" && c() === "range"), en = 1440 * 60 * 1e3;
27500
+ let i = "<svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"8\" cy=\"8\" r=\"6.25\" stroke=\"currentColor\" stroke-width=\"1.5\"/><path d=\"M8 4.5V8l2.25 1.5\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>", a = prop(t, "rangeStart", 15, null), o = prop(t, "rangeEnd", 15, null), s = prop(t, "value", 15, null), c = prop(t, "mode", 7, "range"), l = prop(t, "minDate", 7, null), u = prop(t, "maxDate", 7, null), f = prop(t, "disabledDates", 23, () => []), p = prop(t, "maxRangeDays", 7, null), h = prop(t, "presets", 7, null), S = prop(t, "presetCheckmark", 7, !1), C = prop(t, "showDateInputs", 7, !1), k = prop(t, "showTimeSelection", 7, !1), R = prop(t, "timeSelectionLayout", 7, "toggle"), G = prop(t, "presetToggle", 7, !1), te = prop(t, "placeholder", 7, "Select date"), ne = prop(t, "dualMonth", 7), re = prop(t, "timePicker", 7), be = prop(t, "align", 7, "left"), Me = prop(t, "presetsPosition", 7, "side"), Re = prop(t, "responsiveLayout", 7, !1), Ue = prop(t, "compareStart", 15, null), it = prop(t, "compareEnd", 15, null), at = prop(t, "compareCalendar", 7), ot = prop(t, "weekStartsOn", 7, 0), ct = prop(t, "locale", 7), lt = prop(t, "testId", 7), ut = prop(t, "classes", 7), dt = prop(t, "triggerSnippet", 7), ft = prop(t, "triggerIcon", 7), pt = prop(t, "clearable", 7, !1), mt = prop(t, "initialPresetLabel", 7), ht = prop(t, "compareTrigger", 7), gt = prop(t, "openCompare", 15, !1), _t = prop(t, "onapply", 7), vt = prop(t, "onapplysingle", 7), yt = prop(t, "onapplycompare", 7), bt = prop(t, "oncancel", 7), xt = prop(t, "onopentoggle", 7), St = prop(t, "onclear", 7), Ct = /* @__PURE__ */ user_derived(() => typeof ne() == "boolean" ? ne() : c() === "range"), wt = "(max-width: 1023px)", Tt = "(max-width: 688px)", Et = /* @__PURE__ */ state(!1), Dt = /* @__PURE__ */ state(!1), Ot = /* @__PURE__ */ user_derived(() => Re() && get(Dt)), kt = /* @__PURE__ */ user_derived(() => Re() && (c() === "range" ? get(Et) : get(Dt))), At = /* @__PURE__ */ user_derived(() => get(Ct) && !get(Ot)), jt = /* @__PURE__ */ user_derived(() => Me() === "top" || get(kt)), Mt = /* @__PURE__ */ state(null), Nt = /* @__PURE__ */ state(null), Pt = /* @__PURE__ */ state(null), It = /* @__PURE__ */ state(proxy({
27501
+ start: null,
27502
+ end: null
27503
+ })), Lt = /* @__PURE__ */ state(proxy({
27504
+ start: null,
27505
+ end: null
27506
+ })), Rt = /* @__PURE__ */ state(null), zt = /* @__PURE__ */ state("12:00 AM"), Bt = /* @__PURE__ */ state("11:59 PM"), Ht = /* @__PURE__ */ state(!1), Gt = /* @__PURE__ */ state(null), qt = /* @__PURE__ */ state(null), Zt = /* @__PURE__ */ user_derived(() => get(Gt) ?? (get(Mt) === null ? "" : wn(get(Mt)))), Qt = /* @__PURE__ */ user_derived(() => get(qt) ?? (get(Nt) === null ? "" : wn(get(Nt)))), $t = /* @__PURE__ */ user_derived(() => k() && R() === "inline" && c() === "range"), en = 1440 * 60 * 1e3;
27501
27507
  function tn(e) {
27502
- return typeof f() == "function" ? f()(e) : f().some((t) => vr(t, e));
27508
+ return typeof f() == "function" ? f()(e) : f().some((t) => Er(t, e));
27503
27509
  }
27504
27510
  let nn = /* @__PURE__ */ user_derived(() => {
27505
27511
  let e = p();
@@ -27539,7 +27545,7 @@ function DateRangePicker(e, t) {
27539
27545
  let Tn = /* @__PURE__ */ user_derived(() => TIME_DISPLAY_PATTERN.test(get(zt).trim())), En = /* @__PURE__ */ user_derived(() => TIME_DISPLAY_PATTERN.test(get(Bt).trim())), Dn = /* @__PURE__ */ user_derived(() => {
27540
27546
  if (!k()) return !0;
27541
27547
  if (!get(Tn) || !get(En)) return !1;
27542
- if (get(Mt) === null || get(Nt) === null || !vr(get(Mt), get(Nt))) return !0;
27548
+ if (get(Mt) === null || get(Nt) === null || !Er(get(Mt), get(Nt))) return !0;
27543
27549
  let e = toMinutesOfDay(get(zt)), t = toMinutesOfDay(get(Bt));
27544
27550
  return e === null || t === null || e <= t;
27545
27551
  }), On = /* @__PURE__ */ user_derived(() => get(mn) === null ? c() === "single" ? s() === null ? te() : wn(s()) : a() !== null && o() !== null ? `${wn(a())} – ${wn(o())}` : a() === null ? te() : `${wn(a())} – ...` : get(mn)), kn = /* @__PURE__ */ user_derived(() => Ue() !== null && it() !== null ? `${wn(Ue())} – ${wn(it())}` : te());
@@ -27556,19 +27562,47 @@ function DateRangePicker(e, t) {
27556
27562
  });
27557
27563
  n !== null && (t.preventDefault(), n.focus());
27558
27564
  }
27559
- function Mn() {
27560
- fn = get(on) ? findInteractive(get(on)) : null, set(Mt, a(), !0), set(Nt, o(), !0), set(Pt, s(), !0), set(It, Ue(), !0), set(Lt, it(), !0), set(Rt, get(hn), !0), set(Gt, null), set(qt, null), k() && (set(zt, get(Mt) === null ? "12:00 AM" : formatTimeDisplay(get(Mt)), !0), set(Bt, get(Nt) === null ? "11:59 PM" : formatTimeDisplay(get(Nt)), !0), set(Ht, !1));
27565
+ let Mn = (e, t) => (e === null ? null : e.getTime()) === (t === null ? null : t.getTime()), Nn = /* @__PURE__ */ user_derived(() => typeof at() == "function" && typeof ht() != "function");
27566
+ function Pn() {
27567
+ set(Lt, {
27568
+ start: Ue(),
27569
+ end: it()
27570
+ }, !0), get(It).start = Ue(), get(It).end = it();
27571
+ }
27572
+ let Fn = /* @__PURE__ */ user_derived(() => !Mn(get(It).start, get(Lt).start) || !Mn(get(It).end, get(Lt).end) ? {
27573
+ start: get(It).start,
27574
+ end: get(It).end
27575
+ } : {
27576
+ start: Ue(),
27577
+ end: it()
27578
+ }), In = /* @__PURE__ */ user_derived(() => get(Fn).start !== null && get(Fn).end !== null);
27579
+ function Ln() {
27580
+ let { start: e, end: t } = get(Fn);
27581
+ e === null || t === null || (Ue(e), it(t), yt()?.({
27582
+ compareStart: e,
27583
+ compareEnd: t,
27584
+ presetLabel: get(Rt)
27585
+ }));
27586
+ }
27587
+ function Rn() {
27588
+ Mn(Ue(), get(Lt).start) || Ue(get(Lt).start), Mn(it(), get(Lt).end) || it(get(Lt).end), get(It).start = get(Lt).start, get(It).end = get(Lt).end;
27589
+ }
27590
+ function zn() {
27591
+ get(Nn) && Rn(), Vn();
27592
+ }
27593
+ function Bn() {
27594
+ fn = get(on) ? findInteractive(get(on)) : null, set(Mt, a(), !0), set(Nt, o(), !0), set(Pt, s(), !0), get(Nn) && Pn(), set(Rt, get(hn), !0), set(Gt, null), set(qt, null), k() && (set(zt, get(Mt) === null ? "12:00 AM" : formatTimeDisplay(get(Mt)), !0), set(Bt, get(Nt) === null ? "11:59 PM" : formatTimeDisplay(get(Nt)), !0), set(Ht, !1));
27561
27595
  let e = a() === null ? s() === null ? gn : s() : a();
27562
27596
  set(_n, e.getFullYear(), !0), set(vn, e.getMonth(), !0), update(yn), set(rn, !0), xt()?.({ open: !0 }), tick().then(() => An(get(an)));
27563
27597
  }
27564
- function Nn() {
27598
+ function Vn() {
27565
27599
  set(rn, !1), set(cn, !1), xt()?.({ open: !1 });
27566
27600
  let e = fn;
27567
27601
  fn = null, tick().then(() => {
27568
27602
  e?.focus();
27569
27603
  });
27570
27604
  }
27571
- function Pn(e = get(an)) {
27605
+ function Hn(e = get(an)) {
27572
27606
  if (e === null || get(on) === null || typeof window > "u") return;
27573
27607
  if (get(kt)) {
27574
27608
  set(cn, !1);
@@ -27577,30 +27611,30 @@ function DateRangePicker(e, t) {
27577
27611
  let t = get(on).getBoundingClientRect(), n = e.offsetHeight, i = 6, a = window.innerHeight - t.bottom - 6, o = t.top - 6;
27578
27612
  set(cn, n > a && o > a, !0);
27579
27613
  }
27580
- function Fn(e) {
27581
- let t = () => Pn(e);
27614
+ function Un(e) {
27615
+ let t = () => Hn(e);
27582
27616
  return t(), tick().then(t), window.addEventListener("resize", t), window.addEventListener("scroll", t, !0), { destroy: () => {
27583
27617
  window.removeEventListener("resize", t), window.removeEventListener("scroll", t, !0);
27584
27618
  } };
27585
27619
  }
27586
- function In(e, t) {
27620
+ function Wn(e, t) {
27587
27621
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => {};
27588
27622
  let n = window.matchMedia(e) ?? null;
27589
27623
  if (n === null || (t(n.matches === !0), typeof n.addEventListener != "function")) return () => {};
27590
27624
  let i = (e) => {
27591
27625
  let n = get(an) !== null && get(an).contains(getActiveElement(get(an)));
27592
27626
  t(e.matches), tick().then(() => {
27593
- Pn(), n && get(an) !== null && !get(an).contains(getActiveElement(get(an))) && An(get(an));
27627
+ Hn(), n && get(an) !== null && !get(an).contains(getActiveElement(get(an))) && An(get(an));
27594
27628
  });
27595
27629
  };
27596
27630
  return n.addEventListener("change", i), () => n.removeEventListener("change", i);
27597
27631
  }
27598
- function Ln(e, t) {
27632
+ function Gn(e, t) {
27599
27633
  let n = () => {}, i = (e) => {
27600
27634
  if (n(), n = () => {}, !e) return;
27601
- let t = In("(max-width: 1023px)", (e) => {
27635
+ let t = Wn("(max-width: 1023px)", (e) => {
27602
27636
  set(Et, e, !0);
27603
- }), i = In("(max-width: 688px)", (e) => {
27637
+ }), i = Wn("(max-width: 688px)", (e) => {
27604
27638
  set(Dt, e, !0);
27605
27639
  });
27606
27640
  n = () => {
@@ -27612,34 +27646,30 @@ function DateRangePicker(e, t) {
27612
27646
  destroy: () => i(!1)
27613
27647
  };
27614
27648
  }
27615
- function Rn() {
27616
- get(rn) ? Nn() : Mn();
27649
+ function Kn() {
27650
+ get(rn) ? zn() : Bn();
27617
27651
  }
27618
- function zn() {
27619
- dn = get(un) ? findInteractive(get(un)) : null, set(It, Ue() ?? null, !0), set(Lt, it() ?? null, !0), gt(!0), tick().then(() => An(get(ln)));
27652
+ function qn() {
27653
+ dn = get(un) ? findInteractive(get(un)) : null, Pn(), gt(!0), tick().then(() => An(get(ln)));
27620
27654
  }
27621
- function Bn() {
27655
+ function Jn() {
27622
27656
  gt(!1);
27623
27657
  let e = dn;
27624
27658
  dn = null, tick().then(() => {
27625
27659
  e?.focus();
27626
27660
  });
27627
27661
  }
27628
- function Vn() {
27629
- get(It) !== null && get(Lt) !== null && (Ue(get(It)), it(get(Lt)), yt()?.({
27630
- compareStart: get(It),
27631
- compareEnd: get(Lt),
27632
- presetLabel: get(Rt)
27633
- })), Bn();
27662
+ function Yn() {
27663
+ Ln(), Jn();
27634
27664
  }
27635
- function Hn() {
27636
- Bn();
27665
+ function Xn() {
27666
+ Rn(), Jn();
27637
27667
  }
27638
- function Un(e) {
27668
+ function Zn(e) {
27639
27669
  let t = new SvelteDate(get(_n), get(vn) + e, 1);
27640
27670
  set(_n, t.getFullYear(), !0), set(vn, t.getMonth(), !0), update(yn);
27641
27671
  }
27642
- function Wn() {
27672
+ function Qn() {
27643
27673
  if (set(mn, null), c() === "range") {
27644
27674
  if (get(Mt) !== null && get(Nt) !== null) {
27645
27675
  let e = k() ? applyTimeDisplay(get(Mt), get(zt), "start") ?? get(Mt) : get(Mt), t = k() ? applyTimeDisplay(get(Nt), get(Bt), "end") ?? get(Nt) : get(Nt);
@@ -27649,24 +27679,20 @@ function DateRangePicker(e, t) {
27649
27679
  presetLabel: get(Rt)
27650
27680
  });
27651
27681
  }
27652
- typeof at() == "function" && get(It) !== null && get(Lt) !== null && (Ue(get(It)), it(get(Lt)), yt()?.({
27653
- compareStart: get(It),
27654
- compareEnd: get(Lt),
27655
- presetLabel: get(Rt)
27656
- }));
27682
+ typeof at() == "function" && Ln();
27657
27683
  } else get(Pt) !== null && (s(get(Pt)), set(hn, get(Rt), !0), vt()?.({
27658
27684
  date: get(Pt),
27659
27685
  presetLabel: get(Rt)
27660
27686
  }));
27661
- Nn();
27687
+ Vn();
27662
27688
  }
27663
- function Gn() {
27664
- s(null), set(Pt, null), set(hn, null), St()?.(), Nn();
27689
+ function $n() {
27690
+ s(null), set(Pt, null), set(hn, null), St()?.(), Vn();
27665
27691
  }
27666
- function Kn() {
27667
- bt()?.(), Nn();
27692
+ function er() {
27693
+ bt()?.(), zn();
27668
27694
  }
27669
- function qn(e) {
27695
+ function tr(e) {
27670
27696
  if (G() && get(Rt) === e.label) {
27671
27697
  set(Mt, a(), !0), set(Nt, o(), !0), set(Pt, s(), !0), set(Rt, get(hn), !0), set(Gt, null), set(qt, null);
27672
27698
  let e = a() === null ? s() === null ? gn : s() : a();
@@ -27677,13 +27703,13 @@ function DateRangePicker(e, t) {
27677
27703
  let { start: t, end: n } = e.getValue();
27678
27704
  set(Rt, e.label, !0), c() === "range" ? (set(Mt, t, !0), set(Nt, n, !0), set(Gt, null), set(qt, null), k() && (set(zt, formatTimeDisplay(t), !0), set(Bt, formatTimeDisplay(n), !0)), set(_n, t.getFullYear(), !0), set(vn, t.getMonth(), !0), update(yn)) : set(Pt, t, !0);
27679
27705
  }
27680
- function Jn(e) {
27681
- set(Mt, e.rangeStart, !0), set(Nt, e.rangeEnd, !0), set(Rt, null), set(Gt, null), set(qt, null), k() && (set(zt, "12:00 AM"), set(Bt, vr(e.rangeEnd, gn) ? formatTimeDisplay(gn) : "11:59 PM", !0));
27706
+ function nr(e) {
27707
+ set(Mt, e.rangeStart, !0), set(Nt, e.rangeEnd, !0), set(Rt, null), set(Gt, null), set(qt, null), k() && (set(zt, "12:00 AM"), set(Bt, Er(e.rangeEnd, gn) ? formatTimeDisplay(gn) : "11:59 PM", !0));
27682
27708
  }
27683
- function Yn(e) {
27709
+ function rr(e) {
27684
27710
  set(Pt, e.date, !0), set(Rt, null);
27685
27711
  }
27686
- function Xn(e) {
27712
+ function ir(e) {
27687
27713
  if (l() !== null) {
27688
27714
  let t = new SvelteDate(l().getFullYear(), l().getMonth(), l().getDate());
27689
27715
  if (e.getTime() < t.getTime()) return !1;
@@ -27694,85 +27720,85 @@ function DateRangePicker(e, t) {
27694
27720
  }
27695
27721
  return !get(nn)(e);
27696
27722
  }
27697
- function Zn(e, t) {
27698
- if (!Xn(t)) return !1;
27723
+ function ar(e, t) {
27724
+ if (!ir(t)) return !1;
27699
27725
  let n = get(e === "start" ? Nt : Mt);
27700
27726
  return n === null ? !0 : !((e === "start" ? t.getTime() > n.getTime() : t.getTime() < n.getTime()) || p() !== null && Math.abs(Math.round((t.getTime() - n.getTime()) / en)) + 1 > p());
27701
27727
  }
27702
- let Qn = /* @__PURE__ */ user_derived(() => {
27728
+ let or = /* @__PURE__ */ user_derived(() => {
27703
27729
  if (get(Zt).trim() === "") return !0;
27704
27730
  let e = parseDateDisplay(get(Zt));
27705
- return e !== null && Zn("start", e);
27706
- }), $n = /* @__PURE__ */ user_derived(() => {
27731
+ return e !== null && ar("start", e);
27732
+ }), sr = /* @__PURE__ */ user_derived(() => {
27707
27733
  if (get(Qt).trim() === "") return !0;
27708
27734
  let e = parseDateDisplay(get(Qt));
27709
- return e !== null && Zn("end", e);
27710
- }), er = "Enter a date this picker accepts, like 12 Mar 2025.", tr = "Enter a time like 12:00 AM.", nr = /* @__PURE__ */ user_derived(() => describeField(`${n}-start-date`, { error: get(Qn) ? null : er })), rr = /* @__PURE__ */ user_derived(() => describeField(`${n}-start-time`, { error: get(Tn) ? null : tr })), ir = /* @__PURE__ */ user_derived(() => describeField(`${n}-end-date`, { error: get($n) ? null : er })), ar = /* @__PURE__ */ user_derived(() => describeField(`${n}-end-time`, { error: get(En) ? null : tr }));
27711
- function or(e) {
27735
+ return e !== null && ar("end", e);
27736
+ }), cr = "Enter a date this picker accepts, like 12 Mar 2025.", lr = "Enter a time like 12:00 AM.", ur = /* @__PURE__ */ user_derived(() => describeField(`${n}-start-date`, { error: get(or) ? null : cr })), dr = /* @__PURE__ */ user_derived(() => describeField(`${n}-start-time`, { error: get(Tn) ? null : lr })), fr = /* @__PURE__ */ user_derived(() => describeField(`${n}-end-date`, { error: get(sr) ? null : cr })), pr = /* @__PURE__ */ user_derived(() => describeField(`${n}-end-time`, { error: get(En) ? null : lr }));
27737
+ function mr(e) {
27712
27738
  let t = e.getFullYear() === get(_n) && e.getMonth() === get(vn);
27713
27739
  if (!get(At)) return t;
27714
27740
  let n = new SvelteDate(get(_n), get(vn) + 1, 1), i = e.getFullYear() === n.getFullYear() && e.getMonth() === n.getMonth();
27715
27741
  return t || i;
27716
27742
  }
27717
- function sr(e) {
27743
+ function hr(e) {
27718
27744
  set(_n, e.year, !0), set(vn, e.month, !0);
27719
27745
  }
27720
- function cr(e) {
27721
- or(e) || (set(_n, e.getFullYear(), !0), set(vn, e.getMonth(), !0), update(yn));
27746
+ function gr(e) {
27747
+ mr(e) || (set(_n, e.getFullYear(), !0), set(vn, e.getMonth(), !0), update(yn));
27722
27748
  }
27723
- function lr(e) {
27749
+ function _r(e) {
27724
27750
  set(e === "start" ? Gt : qt, null);
27725
27751
  }
27726
- function ur(e, t) {
27752
+ function vr(e, t) {
27727
27753
  e.currentTarget instanceof HTMLInputElement && set(t === "start" ? Gt : qt, e.currentTarget.value, !0);
27728
27754
  }
27729
- function dr(e) {
27755
+ function yr(e) {
27730
27756
  let t = get(e === "start" ? Gt : qt);
27731
27757
  if (t === null) return;
27732
27758
  let n = parseDateDisplay(t);
27733
- if (n === null || !Zn(e, n)) {
27734
- lr(e);
27759
+ if (n === null || !ar(e, n)) {
27760
+ _r(e);
27735
27761
  return;
27736
27762
  }
27737
- set(e === "start" ? Mt : Nt, n, !0), set(Rt, null), cr(n), lr(e);
27763
+ set(e === "start" ? Mt : Nt, n, !0), set(Rt, null), gr(n), _r(e);
27738
27764
  }
27739
- function fr(e, t) {
27740
- e.key === "Enter" && (e.preventDefault(), dr(t));
27765
+ function br(e, t) {
27766
+ e.key === "Enter" && (e.preventDefault(), yr(t));
27741
27767
  }
27742
- function pr() {
27743
- gt() ? Hn() : get(rn) && Kn();
27768
+ function xr() {
27769
+ gt() ? Xn() : get(rn) && er();
27744
27770
  }
27745
- function mr() {
27746
- get(rn) && Nn(), gt() && Bn();
27771
+ function Sr() {
27772
+ get(rn) && zn(), gt() && (Rn(), Jn());
27747
27773
  }
27748
- let hr = null;
27774
+ let Cr = null;
27749
27775
  user_effect(() => {
27750
27776
  let e = get(rn) || gt();
27751
- e && hr === null ? hr = registerDismissible({
27777
+ e && Cr === null ? Cr = registerDismissible({
27752
27778
  element: () => get(sn),
27753
- onEscape: pr,
27754
- onOutside: mr
27755
- }) : !e && hr !== null && (hr(), hr = null);
27779
+ onEscape: xr,
27780
+ onOutside: Sr
27781
+ }) : !e && Cr !== null && (Cr(), Cr = null);
27756
27782
  }), onDestroy(() => {
27757
- hr?.(), hr = null;
27783
+ Cr?.(), Cr = null;
27758
27784
  });
27759
- let gr = /* @__PURE__ */ user_derived(() => c() === "range" ? get(Mt) !== null && get(Nt) !== null && get(Dn) : get(Pt) !== null);
27760
- function _r(e) {
27785
+ let wr = /* @__PURE__ */ user_derived(() => c() === "range" ? get(Mt) !== null && get(Nt) !== null && get(Dn) : get(Pt) !== null);
27786
+ function Tr(e) {
27761
27787
  if (get(mn) !== null && get(Mt) === null && get(Nt) === null && get(Pt) === null) return e.label === get(mn);
27762
27788
  if (get(Rt) !== null) return e.label === get(Rt);
27763
27789
  if (c() === "single") {
27764
27790
  if (get(Pt) === null) return !1;
27765
27791
  let { start: t } = e.getValue();
27766
- return vr(get(Pt), t);
27792
+ return Er(get(Pt), t);
27767
27793
  }
27768
27794
  if (get(Mt) === null || get(Nt) === null) return !1;
27769
27795
  let { start: t, end: n } = e.getValue();
27770
- return vr(get(Mt), t) && vr(get(Nt), n);
27796
+ return Er(get(Mt), t) && Er(get(Nt), n);
27771
27797
  }
27772
- function vr(e, t) {
27798
+ function Er(e, t) {
27773
27799
  return e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
27774
27800
  }
27775
- var yr = {
27801
+ var Dr = {
27776
27802
  get rangeStart() {
27777
27803
  return a();
27778
27804
  },
@@ -28007,11 +28033,11 @@ function DateRangePicker(e, t) {
28007
28033
  set onclear(e) {
28008
28034
  St(e), flushSync();
28009
28035
  }
28010
- }, br = root_20$2(), xr = child(br), Sr = child(xr);
28036
+ }, Or = root_20$2(), kr = child(Or), Ar = child(kr);
28011
28037
  {
28012
28038
  let e = /* @__PURE__ */ user_derived(() => get(rn) ? "Close date picker" : "Open date picker"), t = /* @__PURE__ */ user_derived(() => get(rn) ? "drp-trigger-open" : "");
28013
- Button(Sr, spread_props({
28014
- onclick: Rn,
28039
+ Button(Ar, spread_props({
28040
+ onclick: Kn,
28015
28041
  get ariaLabel() {
28016
28042
  return get(e);
28017
28043
  },
@@ -28044,13 +28070,13 @@ function DateRangePicker(e, t) {
28044
28070
  $$slots: { default: !0 }
28045
28071
  }));
28046
28072
  }
28047
- reset(xr), bind_this(xr, (e) => set(on, e), () => get(on));
28048
- var Cr = sibling(xr, 2), wr = (e) => {
28073
+ reset(kr), bind_this(kr, (e) => set(on, e), () => get(on));
28074
+ var jr = sibling(kr, 2), Mr = (e) => {
28049
28075
  var t = root_4$22(), n = child(t);
28050
28076
  {
28051
28077
  let e = /* @__PURE__ */ user_derived(() => gt() ? "drp-compare-trigger-open" : "");
28052
28078
  Button(n, {
28053
- onclick: zn,
28079
+ onclick: qn,
28054
28080
  ariaLabel: "Open compare period picker",
28055
28081
  get classes() {
28056
28082
  return `drp-compare-trigger ${get(e) ?? ""}`;
@@ -28065,14 +28091,14 @@ function DateRangePicker(e, t) {
28065
28091
  var i = sibling(n, 2), a = (e) => {
28066
28092
  var t = root_3$26(), n = child(t), i = (e) => {
28067
28093
  var t = root_2$28();
28068
- snippet(child(t), at), reset(t), append(e, t);
28094
+ snippet(child(t), at, () => get(It)), reset(t), append(e, t);
28069
28095
  };
28070
28096
  if_block(n, (e) => {
28071
28097
  typeof at() == "function" && e(i);
28072
28098
  });
28073
28099
  var a = sibling(n, 2), o = child(a);
28074
28100
  Button(o, {
28075
- onclick: Hn,
28101
+ onclick: Xn,
28076
28102
  ariaLabel: "Cancel compare selection",
28077
28103
  classes: "drp-btn-cancel",
28078
28104
  children: (e, t) => {
@@ -28082,9 +28108,9 @@ function DateRangePicker(e, t) {
28082
28108
  });
28083
28109
  var s = sibling(o, 2);
28084
28110
  {
28085
- let e = /* @__PURE__ */ user_derived(() => get(It) === null || get(Lt) === null);
28111
+ let e = /* @__PURE__ */ user_derived(() => !get(In));
28086
28112
  Button(s, {
28087
- onclick: Vn,
28113
+ onclick: Yn,
28088
28114
  ariaLabel: "Apply compare selection",
28089
28115
  classes: "drp-btn-apply",
28090
28116
  get disabled() {
@@ -28102,10 +28128,10 @@ function DateRangePicker(e, t) {
28102
28128
  gt() && e(a);
28103
28129
  }), reset(t), bind_this(t, (e) => set(un, e), () => get(un)), append(e, t);
28104
28130
  };
28105
- if_block(Cr, (e) => {
28106
- typeof ht() == "function" && e(wr);
28131
+ if_block(jr, (e) => {
28132
+ typeof ht() == "function" && e(Mr);
28107
28133
  });
28108
- var Tr = sibling(Cr, 2), Er = (e) => {
28134
+ var Nr = sibling(jr, 2), Pr = (e) => {
28109
28135
  var t = root_19$4();
28110
28136
  let n;
28111
28137
  var a = child(t), o = child(a), p = (e) => {
@@ -28131,15 +28157,15 @@ function DateRangePicker(e, t) {
28131
28157
  html(t, () => checkmark_default, !0), reset(t), template_effect(() => {
28132
28158
  set_attribute(t, "data-pw", typeof lt() == "string" ? `${lt()}-preset-check` : null), set_attribute(t, "testid", typeof lt() == "string" ? `${lt()}-preset-check` : null);
28133
28159
  }), append(e, t);
28134
- }, k = /* @__PURE__ */ user_derived(() => S() && _r(get(t)));
28160
+ }, k = /* @__PURE__ */ user_derived(() => S() && Tr(get(t)));
28135
28161
  if_block(p, (e) => {
28136
28162
  get(k) && e(C);
28137
28163
  }), reset(l), template_effect((e, n) => {
28138
28164
  u = set_class(l, 1, "drp-preset-item svelte-gpybdi", null, u, e), set_attribute(l, "aria-selected", n), set_attribute(l, "data-pw", typeof lt() == "string" ? `${lt()}-preset-${get(t).label}` : null), set_attribute(l, "testid", typeof lt() == "string" ? `${lt()}-preset-${get(t).label}` : null), set_text(f, `${get(t).label ?? ""} `);
28139
28165
  }, [() => ({
28140
- "drp-preset-active": _r(get(t)),
28166
+ "drp-preset-active": Tr(get(t)),
28141
28167
  "drp-preset-checkable": S()
28142
- }), () => _r(get(t))]), delegated("click", l, () => qn(get(t))), append(e, o);
28168
+ }), () => Tr(get(t))]), delegated("click", l, () => tr(get(t))), append(e, o);
28143
28169
  }), reset(t), append(e, t);
28144
28170
  };
28145
28171
  if_block(o, (e) => {
@@ -28158,9 +28184,9 @@ function DateRangePicker(e, t) {
28158
28184
  var u = child(c);
28159
28185
  html(u, () => i, !0), reset(u);
28160
28186
  var f = sibling(u, 2);
28161
- remove_input_defaults(f), reset(c), drpFieldError(sibling(c, 2), () => get(nr).errorId, () => get(nr).showsError, () => er), reset(n);
28187
+ remove_input_defaults(f), reset(c), drpFieldError(sibling(c, 2), () => get(ur).errorId, () => get(ur).showsError, () => cr), reset(n);
28162
28188
  var p = sibling(n, 2);
28163
- drpFieldError(p, () => get(rr).errorId, () => get(rr).showsError, () => tr);
28189
+ drpFieldError(p, () => get(dr).errorId, () => get(dr).showsError, () => lr);
28164
28190
  var h = sibling(p, 2);
28165
28191
  html(h, () => chevron_right_default, !0), reset(h);
28166
28192
  var S = sibling(h, 2), C = child(S);
@@ -28172,20 +28198,20 @@ function DateRangePicker(e, t) {
28172
28198
  var ne = child(G);
28173
28199
  html(ne, () => i, !0), reset(ne);
28174
28200
  var re = sibling(ne, 2);
28175
- remove_input_defaults(re), reset(G), drpFieldError(sibling(G, 2), () => get(ir).errorId, () => get(ir).showsError, () => er), reset(S), drpFieldError(sibling(S, 2), () => get(ar).errorId, () => get(ar).showsError, () => tr), template_effect(() => {
28176
- o = set_class(a, 1, "drp-date-input svelte-gpybdi", null, o, { "drp-date-input-invalid": !get(Qn) }), set_value(s, get(Zt)), set_attribute(s, "aria-invalid", !get(Qn)), set_attribute(s, "aria-describedby", get(nr).describedBy), set_attribute(s, "data-pw", lt() ? `${lt()}-start-date` : null), set_attribute(s, "testid", lt() ? `${lt()}-start-date` : null), l = set_class(c, 1, "drp-time-input drp-time-input-inline svelte-gpybdi", null, l, { "drp-time-input-invalid": !get(Tn) }), set_attribute(f, "aria-invalid", !get(Tn)), set_attribute(f, "aria-describedby", get(rr).describedBy), set_attribute(f, "data-pw", lt() ? `${lt()}-start-time` : null), set_attribute(f, "testid", lt() ? `${lt()}-start-time` : null), k = set_class(C, 1, "drp-date-input svelte-gpybdi", null, k, { "drp-date-input-invalid": !get($n) }), set_value(R, get(Qt)), set_attribute(R, "aria-invalid", !get($n)), set_attribute(R, "aria-describedby", get(ir).describedBy), set_attribute(R, "data-pw", lt() ? `${lt()}-end-date` : null), set_attribute(R, "testid", lt() ? `${lt()}-end-date` : null), te = set_class(G, 1, "drp-time-input drp-time-input-inline svelte-gpybdi", null, te, { "drp-time-input-invalid": !get(En) }), set_attribute(re, "aria-invalid", !get(En)), set_attribute(re, "aria-describedby", get(ar).describedBy), set_attribute(re, "data-pw", lt() ? `${lt()}-end-time` : null), set_attribute(re, "testid", lt() ? `${lt()}-end-time` : null);
28177
- }), delegated("input", s, (e) => ur(e, "start")), event("blur", s, () => dr("start")), delegated("keydown", s, (e) => fr(e, "start")), bind_value(f, () => get(zt), (e) => set(zt, e)), delegated("input", R, (e) => ur(e, "end")), event("blur", R, () => dr("end")), delegated("keydown", R, (e) => fr(e, "end")), bind_value(re, () => get(Bt), (e) => set(Bt, e)), append(e, t);
28201
+ remove_input_defaults(re), reset(G), drpFieldError(sibling(G, 2), () => get(fr).errorId, () => get(fr).showsError, () => cr), reset(S), drpFieldError(sibling(S, 2), () => get(pr).errorId, () => get(pr).showsError, () => lr), template_effect(() => {
28202
+ o = set_class(a, 1, "drp-date-input svelte-gpybdi", null, o, { "drp-date-input-invalid": !get(or) }), set_value(s, get(Zt)), set_attribute(s, "aria-invalid", !get(or)), set_attribute(s, "aria-describedby", get(ur).describedBy), set_attribute(s, "data-pw", lt() ? `${lt()}-start-date` : null), set_attribute(s, "testid", lt() ? `${lt()}-start-date` : null), l = set_class(c, 1, "drp-time-input drp-time-input-inline svelte-gpybdi", null, l, { "drp-time-input-invalid": !get(Tn) }), set_attribute(f, "aria-invalid", !get(Tn)), set_attribute(f, "aria-describedby", get(dr).describedBy), set_attribute(f, "data-pw", lt() ? `${lt()}-start-time` : null), set_attribute(f, "testid", lt() ? `${lt()}-start-time` : null), k = set_class(C, 1, "drp-date-input svelte-gpybdi", null, k, { "drp-date-input-invalid": !get(sr) }), set_value(R, get(Qt)), set_attribute(R, "aria-invalid", !get(sr)), set_attribute(R, "aria-describedby", get(fr).describedBy), set_attribute(R, "data-pw", lt() ? `${lt()}-end-date` : null), set_attribute(R, "testid", lt() ? `${lt()}-end-date` : null), te = set_class(G, 1, "drp-time-input drp-time-input-inline svelte-gpybdi", null, te, { "drp-time-input-invalid": !get(En) }), set_attribute(re, "aria-invalid", !get(En)), set_attribute(re, "aria-describedby", get(pr).describedBy), set_attribute(re, "data-pw", lt() ? `${lt()}-end-time` : null), set_attribute(re, "testid", lt() ? `${lt()}-end-time` : null);
28203
+ }), delegated("input", s, (e) => vr(e, "start")), event("blur", s, () => yr("start")), delegated("keydown", s, (e) => br(e, "start")), bind_value(f, () => get(zt), (e) => set(zt, e)), delegated("input", R, (e) => vr(e, "end")), event("blur", R, () => yr("end")), delegated("keydown", R, (e) => br(e, "end")), bind_value(re, () => get(Bt), (e) => set(Bt, e)), append(e, t);
28178
28204
  }, c = (e) => {
28179
28205
  var t = root_12$12(), n = first_child(t);
28180
28206
  let a;
28181
28207
  var o = child(n);
28182
- remove_input_defaults(o), drpFieldError(sibling(o, 2), () => get(nr).errorId, () => get(nr).showsError, () => er), reset(n);
28208
+ remove_input_defaults(o), drpFieldError(sibling(o, 2), () => get(ur).errorId, () => get(ur).showsError, () => cr), reset(n);
28183
28209
  var s = sibling(n, 2);
28184
28210
  html(s, () => chevron_right_default, !0), reset(s);
28185
28211
  var c = sibling(s, 2);
28186
28212
  let l;
28187
28213
  var u = child(c);
28188
- remove_input_defaults(u), drpFieldError(sibling(u, 2), () => get(ir).errorId, () => get(ir).showsError, () => er), reset(c);
28214
+ remove_input_defaults(u), drpFieldError(sibling(u, 2), () => get(fr).errorId, () => get(fr).showsError, () => cr), reset(c);
28189
28215
  var f = sibling(c, 2), p = (e) => {
28190
28216
  var t = root_11$12();
28191
28217
  let n;
@@ -28197,8 +28223,8 @@ function DateRangePicker(e, t) {
28197
28223
  if_block(f, (e) => {
28198
28224
  k() && e(p);
28199
28225
  }), template_effect(() => {
28200
- a = set_class(n, 1, "drp-date-input svelte-gpybdi", null, a, { "drp-date-input-invalid": !get(Qn) }), set_value(o, get(Zt)), set_attribute(o, "aria-invalid", !get(Qn)), set_attribute(o, "aria-describedby", get(nr).describedBy), set_attribute(o, "data-pw", lt() ? `${lt()}-start-date` : null), set_attribute(o, "testid", lt() ? `${lt()}-start-date` : null), l = set_class(c, 1, "drp-date-input svelte-gpybdi", null, l, { "drp-date-input-invalid": !get($n) }), set_value(u, get(Qt)), set_attribute(u, "aria-invalid", !get($n)), set_attribute(u, "aria-describedby", get(ir).describedBy), set_attribute(u, "data-pw", lt() ? `${lt()}-end-date` : null), set_attribute(u, "testid", lt() ? `${lt()}-end-date` : null);
28201
- }), delegated("input", o, (e) => ur(e, "start")), event("blur", o, () => dr("start")), delegated("keydown", o, (e) => fr(e, "start")), delegated("input", u, (e) => ur(e, "end")), event("blur", u, () => dr("end")), delegated("keydown", u, (e) => fr(e, "end")), append(e, t);
28226
+ a = set_class(n, 1, "drp-date-input svelte-gpybdi", null, a, { "drp-date-input-invalid": !get(or) }), set_value(o, get(Zt)), set_attribute(o, "aria-invalid", !get(or)), set_attribute(o, "aria-describedby", get(ur).describedBy), set_attribute(o, "data-pw", lt() ? `${lt()}-start-date` : null), set_attribute(o, "testid", lt() ? `${lt()}-start-date` : null), l = set_class(c, 1, "drp-date-input svelte-gpybdi", null, l, { "drp-date-input-invalid": !get(sr) }), set_value(u, get(Qt)), set_attribute(u, "aria-invalid", !get(sr)), set_attribute(u, "aria-describedby", get(fr).describedBy), set_attribute(u, "data-pw", lt() ? `${lt()}-end-date` : null), set_attribute(u, "testid", lt() ? `${lt()}-end-date` : null);
28227
+ }), delegated("input", o, (e) => vr(e, "start")), event("blur", o, () => yr("start")), delegated("keydown", o, (e) => br(e, "start")), delegated("input", u, (e) => vr(e, "end")), event("blur", u, () => yr("end")), delegated("keydown", u, (e) => br(e, "end")), append(e, t);
28202
28228
  };
28203
28229
  if_block(o, (e) => {
28204
28230
  get($t) ? e(s) : e(c, -1);
@@ -28209,7 +28235,7 @@ function DateRangePicker(e, t) {
28209
28235
  var o = child(n);
28210
28236
  html(o, () => i, !0), reset(o);
28211
28237
  var s = sibling(o, 2);
28212
- remove_input_defaults(s), drpFieldError(sibling(s, 2), () => get(rr).errorId, () => get(rr).showsError, () => tr), reset(n);
28238
+ remove_input_defaults(s), drpFieldError(sibling(s, 2), () => get(dr).errorId, () => get(dr).showsError, () => lr), reset(n);
28213
28239
  var c = sibling(n, 2);
28214
28240
  html(c, () => chevron_right_default, !0), reset(c);
28215
28241
  var l = sibling(c, 2);
@@ -28217,8 +28243,8 @@ function DateRangePicker(e, t) {
28217
28243
  var f = child(l);
28218
28244
  html(f, () => i, !0), reset(f);
28219
28245
  var p = sibling(f, 2);
28220
- remove_input_defaults(p), drpFieldError(sibling(p, 2), () => get(ar).errorId, () => get(ar).showsError, () => tr), reset(l), reset(t), template_effect(() => {
28221
- a = set_class(n, 1, "drp-time-input svelte-gpybdi", null, a, { "drp-time-input-invalid": !get(Tn) }), set_attribute(s, "aria-invalid", !get(Tn)), set_attribute(s, "aria-describedby", get(rr).describedBy), set_attribute(s, "data-pw", lt() ? `${lt()}-start-time` : null), set_attribute(s, "testid", lt() ? `${lt()}-start-time` : null), u = set_class(l, 1, "drp-time-input svelte-gpybdi", null, u, { "drp-time-input-invalid": !get(En) }), set_attribute(p, "aria-invalid", !get(En)), set_attribute(p, "aria-describedby", get(ar).describedBy), set_attribute(p, "data-pw", lt() ? `${lt()}-end-time` : null), set_attribute(p, "testid", lt() ? `${lt()}-end-time` : null);
28246
+ remove_input_defaults(p), drpFieldError(sibling(p, 2), () => get(pr).errorId, () => get(pr).showsError, () => lr), reset(l), reset(t), template_effect(() => {
28247
+ a = set_class(n, 1, "drp-time-input svelte-gpybdi", null, a, { "drp-time-input-invalid": !get(Tn) }), set_attribute(s, "aria-invalid", !get(Tn)), set_attribute(s, "aria-describedby", get(dr).describedBy), set_attribute(s, "data-pw", lt() ? `${lt()}-start-time` : null), set_attribute(s, "testid", lt() ? `${lt()}-start-time` : null), u = set_class(l, 1, "drp-time-input svelte-gpybdi", null, u, { "drp-time-input-invalid": !get(En) }), set_attribute(p, "aria-invalid", !get(En)), set_attribute(p, "aria-describedby", get(pr).describedBy), set_attribute(p, "data-pw", lt() ? `${lt()}-end-time` : null), set_attribute(p, "testid", lt() ? `${lt()}-end-time` : null);
28222
28248
  }), bind_value(s, () => get(zt), (e) => set(zt, e)), bind_value(p, () => get(Bt), (e) => set(Bt, e)), append(e, t);
28223
28249
  };
28224
28250
  if_block(l, (e) => {
@@ -28258,7 +28284,7 @@ function DateRangePicker(e, t) {
28258
28284
  get initialMonth() {
28259
28285
  return get(bn);
28260
28286
  },
28261
- onrangeselect: Jn,
28287
+ onrangeselect: nr,
28262
28288
  classes: "drp-calendar-embedded",
28263
28289
  get rangeStart() {
28264
28290
  return get(Mt);
@@ -28292,7 +28318,7 @@ function DateRangePicker(e, t) {
28292
28318
  get initialMonth() {
28293
28319
  return get(xn);
28294
28320
  },
28295
- onrangeselect: Jn,
28321
+ onrangeselect: nr,
28296
28322
  classes: "drp-calendar-embedded",
28297
28323
  get rangeStart() {
28298
28324
  return get(Mt);
@@ -28309,7 +28335,7 @@ function DateRangePicker(e, t) {
28309
28335
  }), append(e, t);
28310
28336
  }), reset(h), template_effect(() => {
28311
28337
  set_text(s, get(Cn)), set_text(f, get(Sn));
28312
- }), delegated("click", i, () => Un(-1)), delegated("click", p, () => Un(1)), append(e, t);
28338
+ }), delegated("click", i, () => Zn(-1)), delegated("click", p, () => Zn(1)), append(e, t);
28313
28339
  }, Re = (e) => {
28314
28340
  var t = comment();
28315
28341
  key(first_child(t), () => get(yn), (e) => {
@@ -28337,9 +28363,9 @@ function DateRangePicker(e, t) {
28337
28363
  get initialMonth() {
28338
28364
  return get(bn);
28339
28365
  },
28340
- onrangeselect: Jn,
28341
- onselect: Yn,
28342
- onmonthchange: sr,
28366
+ onrangeselect: nr,
28367
+ onselect: rr,
28368
+ onmonthchange: hr,
28343
28369
  classes: "drp-calendar-embedded",
28344
28370
  get rangeStart() {
28345
28371
  return get(Mt);
@@ -28375,14 +28401,14 @@ function DateRangePicker(e, t) {
28375
28401
  });
28376
28402
  var ut = sibling(Ue, 2), dt = (e) => {
28377
28403
  var t = root_18$4();
28378
- snippet(child(t), at), reset(t), append(e, t);
28404
+ snippet(child(t), at, () => get(It)), reset(t), append(e, t);
28379
28405
  };
28380
28406
  if_block(ut, (e) => {
28381
28407
  typeof at() == "function" && typeof ht() != "function" && e(dt);
28382
28408
  }), reset(R), reset(a);
28383
28409
  var ft = sibling(a, 2), mt = child(ft), gt = (e) => {
28384
28410
  Button(e, {
28385
- onclick: Gn,
28411
+ onclick: $n,
28386
28412
  ariaLabel: "Clear date selection",
28387
28413
  classes: "drp-btn-clear",
28388
28414
  children: (e, t) => {
@@ -28396,7 +28422,7 @@ function DateRangePicker(e, t) {
28396
28422
  });
28397
28423
  var _t = sibling(mt, 2);
28398
28424
  Button(_t, {
28399
- onclick: Kn,
28425
+ onclick: er,
28400
28426
  ariaLabel: "Cancel date selection",
28401
28427
  classes: "drp-btn-cancel",
28402
28428
  children: (e, t) => {
@@ -28406,9 +28432,9 @@ function DateRangePicker(e, t) {
28406
28432
  });
28407
28433
  var vt = sibling(_t, 2);
28408
28434
  {
28409
- let e = /* @__PURE__ */ user_derived(() => !get(gr));
28435
+ let e = /* @__PURE__ */ user_derived(() => !get(wr));
28410
28436
  Button(vt, {
28411
- onclick: Wn,
28437
+ onclick: Qn,
28412
28438
  ariaLabel: "Apply date selection",
28413
28439
  classes: "drp-btn-apply",
28414
28440
  get disabled() {
@@ -28420,7 +28446,7 @@ function DateRangePicker(e, t) {
28420
28446
  $$slots: { default: !0 }
28421
28447
  });
28422
28448
  }
28423
- reset(ft), reset(t), action(t, (e) => Fn?.(e)), bind_this(t, (e) => set(an, e), () => get(an)), template_effect(() => {
28449
+ reset(ft), reset(t), action(t, (e) => Un?.(e)), bind_this(t, (e) => set(an, e), () => get(an)), template_effect(() => {
28424
28450
  n = set_class(t, 1, "drp-panel svelte-gpybdi", null, n, {
28425
28451
  "drp-panel-above": get(cn),
28426
28452
  "drp-panel-align-left": be() === "left",
@@ -28431,11 +28457,11 @@ function DateRangePicker(e, t) {
28431
28457
  }), set_attribute(t, "data-pw", typeof lt() == "string" ? `${lt()}-panel` : null), set_attribute(t, "testid", typeof lt() == "string" ? `${lt()}-panel` : null);
28432
28458
  }), delegated("keydown", t, (e) => jn(get(an), e)), append(e, t);
28433
28459
  };
28434
- return if_block(Tr, (e) => {
28435
- get(rn) && e(Er);
28436
- }), reset(br), bind_this(br, (e) => set(sn, e), () => get(sn)), action(br, (e, t) => Ln?.(e, t), Re), template_effect(() => {
28437
- set_class(br, 1, `drp-root ${ut() ?? "" ?? ""}`, "svelte-gpybdi"), set_attribute(br, "data-pw", lt()), set_attribute(br, "testid", lt());
28438
- }), append(e, br), pop(yr);
28460
+ return if_block(Nr, (e) => {
28461
+ get(rn) && e(Pr);
28462
+ }), reset(Or), bind_this(Or, (e) => set(sn, e), () => get(sn)), action(Or, (e, t) => Gn?.(e, t), Re), template_effect(() => {
28463
+ set_class(Or, 1, `drp-root ${ut() ?? "" ?? ""}`, "svelte-gpybdi"), set_attribute(Or, "data-pw", lt()), set_attribute(Or, "testid", lt());
28464
+ }), append(e, Or), pop(Dr);
28439
28465
  }
28440
28466
  delegate([
28441
28467
  "keydown",
@@ -28517,9 +28543,17 @@ function DateRangePicker_wc(e, t) {
28517
28543
  var n = comment();
28518
28544
  slot(first_child(n), t, "time-picker", {}, null), append(e, n);
28519
28545
  },
28520
- compareCalendar: (e) => {
28521
- var n = comment();
28522
- slot(first_child(n), t, "compare-calendar", {}, null), append(e, n);
28546
+ compareCalendar: (e, n = noop) => {
28547
+ var i = comment(), a = first_child(i), o = (e) => {
28548
+ var i = comment();
28549
+ snippet(first_child(i), () => t.compareCalendar, n), append(e, i);
28550
+ }, s = (e) => {
28551
+ var n = comment();
28552
+ slot(first_child(n), t, "compare-calendar", {}, null), append(e, n);
28553
+ };
28554
+ if_block(a, (e) => {
28555
+ t.compareCalendar ? e(o) : e(s, -1);
28556
+ }), append(e, i);
28523
28557
  },
28524
28558
  $$slots: {
28525
28559
  triggerIcon: !0,
@@ -28570,9 +28604,17 @@ function DateRangePicker_wc(e, t) {
28570
28604
  t.triggerIcon ? e(a) : e(o, -1);
28571
28605
  }), append(e, n);
28572
28606
  },
28573
- compareCalendar: (e) => {
28574
- var n = comment();
28575
- slot(first_child(n), t, "compare-calendar", {}, null), append(e, n);
28607
+ compareCalendar: (e, n = noop) => {
28608
+ var i = comment(), a = first_child(i), o = (e) => {
28609
+ var i = comment();
28610
+ snippet(first_child(i), () => t.compareCalendar, n), append(e, i);
28611
+ }, s = (e) => {
28612
+ var n = comment();
28613
+ slot(first_child(n), t, "compare-calendar", {}, null), append(e, n);
28614
+ };
28615
+ if_block(a, (e) => {
28616
+ t.compareCalendar ? e(o) : e(s, -1);
28617
+ }), append(e, i);
28576
28618
  },
28577
28619
  $$slots: {
28578
28620
  triggerIcon: !0,
@@ -58858,7 +58900,7 @@ var diffstatBadges = (e, t = noop) => {
58858
58900
  }), append(e, n);
58859
58901
  }, root_1$5 = /* @__PURE__ */ from_html("<span class=\"diffstat-pill diffstat-added svelte-1vnfzde\"><!></span>"), root_2$3 = /* @__PURE__ */ from_html("<span class=\"diffstat-pill diffstat-removed svelte-1vnfzde\"><!></span>"), root_3$3 = /* @__PURE__ */ from_html("<!> <!>", 1), root_4$3 = /* @__PURE__ */ from_html("<span class=\"chip-spinner svelte-1vnfzde\" aria-hidden=\"true\"><!></span>"), root_5$2 = /* @__PURE__ */ from_html("<span> </span>"), root_6$2 = /* @__PURE__ */ from_html("<span class=\"diffstat chip-diffstat svelte-1vnfzde\"><!></span>"), root_7$2 = /* @__PURE__ */ from_html("<span class=\"diffstat popover-diffstat svelte-1vnfzde\"><!></span>"), root_8$2 = /* @__PURE__ */ from_html("<div class=\"chip-popover svelte-1vnfzde\" role=\"dialog\" tabindex=\"-1\"><p> </p> <!></div>"), root_9$1 = /* @__PURE__ */ from_html("<div class=\"chip-wrap\"><button type=\"button\"><!> <b class=\"chip-label svelte-1vnfzde\"> </b> <!> <!></button> <!></div>"), root_10$1 = /* @__PURE__ */ from_html("<div></div>"), $$css$16 = {
58860
58902
  hash: "svelte-1vnfzde",
58861
- code: "\n @keyframes svelte-1vnfzde-tool-call-log-fade-up {\n from {\n opacity: 0;\n transform: translateY(9px);\n }\n to {\n opacity: 1;\n transform: none;\n }\n }.tool-call-log.svelte-1vnfzde {display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--tool-call-log-gap, 8px);}\n\n /* Bespoke <button> markup (Pill's root is a non-interactive <div> and can't carry\n aria-expanded/button semantics — see docs), but its sizing recipe is deliberately\n pulled from Pill's own tokens (line-height, cursor) so it reads as the same family\n of control as the diffstat Pill badges nested inside it. */.chip.svelte-1vnfzde {display:inline-flex;align-items:center;gap:var(--tool-call-log-chip-gap, 6px);padding:var(--tool-call-log-chip-padding, 6px 10px);background:var(--tool-call-log-chip-background, #fafafa);border:var(--tool-call-log-chip-border, 1px solid #e4e4e7);border-radius:var(--tool-call-log-chip-radius, 6px);font:inherit;font-size:var(--tool-call-log-font-size, 0.8125rem);line-height:var(--tool-call-log-chip-line-height, 1);color:var(--tool-call-log-label-color, #2b2b2b);cursor:var(--tool-call-log-chip-cursor, pointer);max-width:100%;\n animation: svelte-1vnfzde-tool-call-log-fade-up\n var(--tool-call-log-chip-animation-duration, var(--motion-duration, 320ms))\n var(\n --tool-call-log-ease,\n var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))\n )\n both;transition:background var(--tool-call-log-chip-transition-duration, var(--motion-duration, 150ms))\n var(--tool-call-log-chip-transition-easing, var(--motion-easing, ease)),\n border-color var(--tool-call-log-chip-transition-duration, var(--motion-duration, 150ms))\n var(--tool-call-log-chip-transition-easing, var(--motion-easing, ease));}.chip.svelte-1vnfzde:hover {background:var(--tool-call-log-chip-hover-background, #f1f1f1);}.chip[aria-expanded='true'].svelte-1vnfzde {border-color:var(--tool-call-log-chip-open-border-color, #c7c7cc);}.chip.error.svelte-1vnfzde {color:var(--tool-call-log-error-color, #9f2d27);border-color:var(--tool-call-log-error-border-color, #f2b8b5);background:var(--tool-call-log-error-background, #fdf1f0);}.chip.error.svelte-1vnfzde:hover {background:var(--tool-call-log-error-hover-background, #fbe6e5);}.chip-label.svelte-1vnfzde {font-weight:var(--tool-call-log-label-weight, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.chip-meta.svelte-1vnfzde {color:var(--tool-call-log-meta-color, #666666);font-size:var(--tool-call-log-meta-font-size, 0.75rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.chip-meta.mono.svelte-1vnfzde {font-family:var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);}\n\n /* Sizes and colors the nested library Loader via CSS custom-property\n inheritance (no :global() needed — Loader is a plain DOM descendant of\n this span, same pattern as ThinkingIndicator's `.avatar`). Loader itself\n ships no literal fallback for --loader-foreground/-foreground-end/\n -background, so all three are set explicitly here rather than left to\n chance. */.chip-spinner.svelte-1vnfzde {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;--loader-width: var(--tool-call-log-spinner-size, 11px);--loader-height: var(--tool-call-log-spinner-size, 11px);--loader-before-width: 5px;--loader-before-height: 5px;--loader-after-width: 8px;--loader-after-height: 8px;--loader-foreground: var(--tool-call-log-spinner-color, #6b6b6b);--loader-foreground-end: var(--tool-call-log-spinner-track-color, #dcdcdc);--loader-background: var(--tool-call-log-chip-background, #fafafa);}.diffstat.svelte-1vnfzde {display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums;flex-shrink:0;}.chip-diffstat.svelte-1vnfzde {margin-left:var(--tool-call-log-diffstat-margin, 2px);}\n\n /* Pill customized into the small diffstat badge via its own --pill-* tokens\n (inherited the same way — Pill is a plain descendant of this span). Pill\n defaults `cursor` to `pointer` even when non-interactive, so it is pinned\n back to `default` here: these badges carry no onclick. */.diffstat-pill.svelte-1vnfzde {display:inline-flex;--pill-padding: var(--tool-call-log-diffstat-padding, 0 4px);--pill-border-radius: var(--tool-call-log-diffstat-radius, 4px);--pill-font-size: var(--tool-call-log-diffstat-font-size, 0.6875rem);--pill-font-family: var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);--pill-line-height: 1;--pill-cursor: default;}.diffstat-added.svelte-1vnfzde {--pill-background: var(--tool-call-log-added-background, #e4f5ee);--pill-color: var(--tool-call-log-added-color, #1f7a5f);}.diffstat-removed.svelte-1vnfzde {--pill-background: var(--tool-call-log-removed-background, #fbeceb);--pill-color: var(--tool-call-log-removed-color, #a8302a);}\n\n /* `position: fixed` is the baseline rather than a portal-only override —\n left/top/z-index come from the inline `popoverStyle`, computed against the\n live anchor rect, and that is viewport-relative in both portal modes. So\n `usePortal={false}` (see `popoverPortal`) changes only which ancestors can\n clip the popover, never how it is placed. */.chip-popover.svelte-1vnfzde {position:fixed;z-index:var(--tool-call-log-popover-z-index, 1000);display:flex;flex-direction:column;gap:var(--tool-call-log-popover-gap, 6px);min-width:var(--tool-call-log-popover-min-width, 220px);max-width:var(--tool-call-log-popover-max-width, 340px);padding:var(--tool-call-log-popover-padding, 10px 12px);background:var(--tool-call-log-popover-background, #ffffff);border:var(--tool-call-log-popover-border, 1px solid #e4e4e7);border-radius:var(--tool-call-log-popover-radius, 10px);box-shadow:var(--tool-call-log-popover-shadow, 0 10px 30px rgba(0, 0, 0, 0.12));\n animation: svelte-1vnfzde-tool-call-log-fade-up\n var(--tool-call-log-popover-animation-duration, var(--motion-duration, 200ms))\n var(\n --tool-call-log-ease,\n var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))\n )\n both;}.popover-detail.svelte-1vnfzde {margin:0;color:var(--tool-call-log-popover-color, #2b2b2b);font-size:var(--tool-call-log-popover-font-size, 0.8125rem);white-space:pre-wrap;overflow-wrap:anywhere;}.popover-detail.mono.svelte-1vnfzde {font-family:var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);}\n\n @media (prefers-reduced-motion: reduce) {.chip.svelte-1vnfzde,\n .chip-popover.svelte-1vnfzde {animation-duration:0.001s;}\n /* Loader's own spin keyframe lives on its internally-scoped `.loader`\n class, which this file cannot reach with a plain scoped selector —\n :global() is required to disable it, same pattern as `.pill-dismiss\n :global(svg)` elsewhere in the library. Loader ships no\n reduced-motion guard of its own. */.chip-spinner.svelte-1vnfzde .loader {\n animation: none;}\n }"
58903
+ code: "\n @keyframes svelte-1vnfzde-tool-call-log-fade-up {\n from {\n opacity: 0;\n transform: translateY(9px);\n }\n to {\n opacity: 1;\n transform: none;\n }\n }.tool-call-log.svelte-1vnfzde {display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--tool-call-log-gap, 8px);}\n\n /* Bespoke <button> markup (the chip holds mixed content -- spinner, label, meta and nested\n diffstat Pill badges -- where Pill renders one `text` string; see docs), but its sizing\n recipe is deliberately pulled from Pill's own tokens (line-height, cursor) so it reads as\n the same family of control as the diffstat Pill badges nested inside it. */.chip.svelte-1vnfzde {display:inline-flex;align-items:center;gap:var(--tool-call-log-chip-gap, 6px);padding:var(--tool-call-log-chip-padding, 6px 10px);background:var(--tool-call-log-chip-background, #fafafa);border:var(--tool-call-log-chip-border, 1px solid #e4e4e7);border-radius:var(--tool-call-log-chip-radius, 6px);font:inherit;font-size:var(--tool-call-log-font-size, 0.8125rem);line-height:var(--tool-call-log-chip-line-height, 1);color:var(--tool-call-log-label-color, #2b2b2b);cursor:var(--tool-call-log-chip-cursor, pointer);max-width:100%;\n animation: svelte-1vnfzde-tool-call-log-fade-up\n var(--tool-call-log-chip-animation-duration, var(--motion-duration, 320ms))\n var(\n --tool-call-log-ease,\n var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))\n )\n both;transition:background var(--tool-call-log-chip-transition-duration, var(--motion-duration, 150ms))\n var(--tool-call-log-chip-transition-easing, var(--motion-easing, ease)),\n border-color var(--tool-call-log-chip-transition-duration, var(--motion-duration, 150ms))\n var(--tool-call-log-chip-transition-easing, var(--motion-easing, ease));}.chip.svelte-1vnfzde:hover {background:var(--tool-call-log-chip-hover-background, #f1f1f1);}.chip[aria-expanded='true'].svelte-1vnfzde {border-color:var(--tool-call-log-chip-open-border-color, #c7c7cc);}.chip.error.svelte-1vnfzde {color:var(--tool-call-log-error-color, #9f2d27);border-color:var(--tool-call-log-error-border-color, #f2b8b5);background:var(--tool-call-log-error-background, #fdf1f0);}.chip.error.svelte-1vnfzde:hover {background:var(--tool-call-log-error-hover-background, #fbe6e5);}.chip-label.svelte-1vnfzde {font-weight:var(--tool-call-log-label-weight, 500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.chip-meta.svelte-1vnfzde {color:var(--tool-call-log-meta-color, #666666);font-size:var(--tool-call-log-meta-font-size, 0.75rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.chip-meta.mono.svelte-1vnfzde {font-family:var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);}\n\n /* Sizes and colors the nested library Loader via CSS custom-property\n inheritance (no :global() needed — Loader is a plain DOM descendant of\n this span, same pattern as ThinkingIndicator's `.avatar`). Loader itself\n ships no literal fallback for --loader-foreground/-foreground-end/\n -background, so all three are set explicitly here rather than left to\n chance. */.chip-spinner.svelte-1vnfzde {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;--loader-width: var(--tool-call-log-spinner-size, 11px);--loader-height: var(--tool-call-log-spinner-size, 11px);--loader-before-width: 5px;--loader-before-height: 5px;--loader-after-width: 8px;--loader-after-height: 8px;--loader-foreground: var(--tool-call-log-spinner-color, #6b6b6b);--loader-foreground-end: var(--tool-call-log-spinner-track-color, #dcdcdc);--loader-background: var(--tool-call-log-chip-background, #fafafa);}.diffstat.svelte-1vnfzde {display:inline-flex;align-items:center;gap:4px;font-variant-numeric:tabular-nums;flex-shrink:0;}.chip-diffstat.svelte-1vnfzde {margin-left:var(--tool-call-log-diffstat-margin, 2px);}\n\n /* Pill customized into the small diffstat badge via its own --pill-* tokens\n (inherited the same way — Pill is a plain descendant of this span). Pill\n defaults `cursor` to `pointer` even when non-interactive, so it is pinned\n back to `default` here: these badges carry no onclick. */.diffstat-pill.svelte-1vnfzde {display:inline-flex;--pill-padding: var(--tool-call-log-diffstat-padding, 0 4px);--pill-border-radius: var(--tool-call-log-diffstat-radius, 4px);--pill-font-size: var(--tool-call-log-diffstat-font-size, 0.6875rem);--pill-font-family: var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);--pill-line-height: 1;--pill-cursor: default;}.diffstat-added.svelte-1vnfzde {--pill-background: var(--tool-call-log-added-background, #e4f5ee);--pill-color: var(--tool-call-log-added-color, #1f7a5f);}.diffstat-removed.svelte-1vnfzde {--pill-background: var(--tool-call-log-removed-background, #fbeceb);--pill-color: var(--tool-call-log-removed-color, #a8302a);}\n\n /* `position: fixed` is the baseline rather than a portal-only override —\n left/top/z-index come from the inline `popoverStyle`, computed against the\n live anchor rect, and that is viewport-relative in both portal modes. So\n `usePortal={false}` (see `popoverPortal`) changes only which ancestors can\n clip the popover, never how it is placed. */.chip-popover.svelte-1vnfzde {position:fixed;z-index:var(--tool-call-log-popover-z-index, 1000);display:flex;flex-direction:column;gap:var(--tool-call-log-popover-gap, 6px);min-width:var(--tool-call-log-popover-min-width, 220px);max-width:var(--tool-call-log-popover-max-width, 340px);padding:var(--tool-call-log-popover-padding, 10px 12px);background:var(--tool-call-log-popover-background, #ffffff);border:var(--tool-call-log-popover-border, 1px solid #e4e4e7);border-radius:var(--tool-call-log-popover-radius, 10px);box-shadow:var(--tool-call-log-popover-shadow, 0 10px 30px rgba(0, 0, 0, 0.12));\n animation: svelte-1vnfzde-tool-call-log-fade-up\n var(--tool-call-log-popover-animation-duration, var(--motion-duration, 200ms))\n var(\n --tool-call-log-ease,\n var(--ease-smooth-out, var(--motion-easing, cubic-bezier(0.23, 1, 0.32, 1)))\n )\n both;}.popover-detail.svelte-1vnfzde {margin:0;color:var(--tool-call-log-popover-color, #2b2b2b);font-size:var(--tool-call-log-popover-font-size, 0.8125rem);white-space:pre-wrap;overflow-wrap:anywhere;}.popover-detail.mono.svelte-1vnfzde {font-family:var(--tool-call-log-mono-font, ui-monospace, Menlo, monospace);}\n\n @media (prefers-reduced-motion: reduce) {.chip.svelte-1vnfzde,\n .chip-popover.svelte-1vnfzde {animation-duration:0.001s;}\n /* Loader's own spin keyframe lives on its internally-scoped `.loader`\n class, which this file cannot reach with a plain scoped selector —\n :global() is required to disable it, same pattern as `.pill-dismiss\n :global(svg)` elsewhere in the library. Loader ships no\n reduced-motion guard of its own. */.chip-spinner.svelte-1vnfzde .loader {\n animation: none;}\n }"
58862
58904
  };
58863
58905
  function ToolCallLog(e, t) {
58864
58906
  push(t, !0), append_styles$1(e, $$css$16);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@juspay/svelte-ui-components",
3
- "version": "4.53.0",
3
+ "version": "4.53.1",
4
4
  "description": "A themeable Svelte 5 UI component library with CSS custom property driven styling",
5
5
  "keywords": [
6
6
  "svelte",
@@ -79,7 +79,8 @@
79
79
  ],
80
80
  "sideEffects": [
81
81
  "./src/wc/**",
82
- "./dist-wc/**"
82
+ "./dist-wc/**",
83
+ "**/*.css"
83
84
  ],
84
85
  "peerDependencies": {
85
86
  "lottie-web": ">=5.0.0",