@svgrid/grid 2.6.22 → 2.6.23

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.
Files changed (115) hide show
  1. package/dist/GridMenus.svelte +184 -6
  2. package/dist/SvAutoComplete.svelte +4 -0
  3. package/dist/SvComboBox.svelte +5 -1
  4. package/dist/SvDateRangeInput.svelte +25 -3
  5. package/dist/SvDropDownList.svelte +4 -0
  6. package/dist/SvForm.svelte +8 -8
  7. package/dist/SvGrid.controller.svelte.d.ts +48 -1
  8. package/dist/SvGrid.controller.svelte.js +214 -52
  9. package/dist/SvGrid.css +221 -0
  10. package/dist/SvGrid.helpers.d.ts +55 -0
  11. package/dist/SvGrid.helpers.js +83 -0
  12. package/dist/SvGrid.svelte +145 -0
  13. package/dist/SvGrid.types.d.ts +105 -0
  14. package/dist/SvGridCellEditor.svelte +99 -17
  15. package/dist/SvGridSelect.svelte +6 -2
  16. package/dist/SvGridSelect.svelte.d.ts +1 -1
  17. package/dist/SvListBox.svelte +8 -0
  18. package/dist/SvMultiSelect.svelte +6 -2
  19. package/dist/SvMultiSelect.svelte.d.ts +1 -1
  20. package/dist/SvNumberInput.svelte +4 -0
  21. package/dist/SvRichCell.svelte +125 -0
  22. package/dist/SvRichCell.svelte.d.ts +15 -0
  23. package/dist/SvTextArea.svelte +5 -1
  24. package/dist/SvTreeSelect.svelte +6 -2
  25. package/dist/SvTreeSelect.svelte.d.ts +1 -1
  26. package/dist/builtin-editors.d.ts +2 -2
  27. package/dist/builtin-editors.js +19 -3
  28. package/dist/cdn/GridMenus-BzWXQjv3.js +600 -0
  29. package/dist/cdn/GridMenus-xr_rHx8F.js +601 -0
  30. package/dist/cdn/SvDateRangeInput-CaOuMs8O.js +198 -0
  31. package/dist/cdn/SvDateRangeInput-DMLKmGEc.js +199 -0
  32. package/dist/cdn/SvDateTimePicker-CCbDZNZB.js +816 -0
  33. package/dist/cdn/SvDateTimePicker-sonaH0oh.js +812 -0
  34. package/dist/cdn/SvGridCellEditor-BAPSC7EL.js +550 -0
  35. package/dist/cdn/SvGridCellEditor-BwzmUWtL.js +549 -0
  36. package/dist/cdn/date-format-BNii4zeD.js +1393 -0
  37. package/dist/cdn/date-format-BnnHlqGw.js +1395 -0
  38. package/dist/cdn/{editor-registry-CiI0xlKg.js → editor-registry-BhgE3S84.js} +51 -25
  39. package/dist/cdn/{src-D1lXwq1l.js → src-DGo7IHug.js} +5730 -5198
  40. package/dist/cdn/{src-C9Hihx1W.js → src-skQN5eqh.js} +7216 -6684
  41. package/dist/cdn/svgrid.js +14 -12
  42. package/dist/cdn/svgrid.svelte-external.js +14 -12
  43. package/dist/cell-values.d.ts +16 -0
  44. package/dist/cell-values.js +28 -0
  45. package/dist/clipboard.d.ts +22 -0
  46. package/dist/clipboard.js +405 -27
  47. package/dist/editing.js +12 -7
  48. package/dist/editors/cell-editors.d.ts +11 -0
  49. package/dist/editors/cell-editors.js +18 -1
  50. package/dist/grid-messages.d.ts +15 -0
  51. package/dist/grid-messages.js +15 -0
  52. package/dist/index.d.ts +4 -0
  53. package/dist/index.js +4 -0
  54. package/dist/list-option.d.ts +6 -0
  55. package/dist/menus.js +40 -7
  56. package/dist/sanitize-html.d.ts +37 -0
  57. package/dist/sanitize-html.js +234 -0
  58. package/dist/selection-bar-view.svelte.d.ts +25 -0
  59. package/dist/selection-bar-view.svelte.js +13 -0
  60. package/dist/selection.d.ts +2 -1
  61. package/dist/selection.js +129 -13
  62. package/package.json +1 -1
  63. package/src/GridMenus.svelte +184 -6
  64. package/src/SvAutoComplete.svelte +4 -0
  65. package/src/SvComboBox.svelte +5 -1
  66. package/src/SvDateRangeInput.svelte +25 -3
  67. package/src/SvDropDownList.svelte +4 -0
  68. package/src/SvForm.svelte +8 -8
  69. package/src/SvGrid.controller.svelte.ts +251 -61
  70. package/src/SvGrid.css +221 -0
  71. package/src/SvGrid.helpers.ts +87 -0
  72. package/src/SvGrid.svelte +145 -0
  73. package/src/SvGrid.types.ts +112 -0
  74. package/src/SvGridCellEditor.svelte +99 -17
  75. package/src/SvGridSelect.svelte +6 -2
  76. package/src/SvListBox.svelte +8 -0
  77. package/src/SvMultiSelect.svelte +6 -2
  78. package/src/SvNumberInput.svelte +4 -0
  79. package/src/SvRichCell.svelte +125 -0
  80. package/src/SvTextArea.svelte +5 -1
  81. package/src/SvTreeSelect.svelte +6 -2
  82. package/src/builtin-editors.test.ts +18 -1
  83. package/src/builtin-editors.ts +19 -3
  84. package/src/cell-values.ts +30 -0
  85. package/src/clipboard.test.ts +93 -20
  86. package/src/clipboard.ts +433 -33
  87. package/src/date-string-column.test.ts +87 -0
  88. package/src/editing.test.ts +25 -0
  89. package/src/editing.ts +12 -9
  90. package/src/editor-block-prop.test.ts +132 -0
  91. package/src/editors/cell-editors.ts +27 -1
  92. package/src/grid-messages.ts +34 -0
  93. package/src/index.ts +13 -0
  94. package/src/list-option.ts +6 -0
  95. package/src/menus.test.ts +43 -0
  96. package/src/menus.ts +37 -7
  97. package/src/move-cells.test.ts +850 -0
  98. package/src/number-editor-literal.test.ts +84 -0
  99. package/src/number-editor.grid.test.ts +160 -0
  100. package/src/sanitize-html.test.ts +182 -0
  101. package/src/sanitize-html.ts +235 -0
  102. package/src/selection-bar-view.svelte.ts +36 -0
  103. package/src/selection.test.ts +157 -0
  104. package/src/selection.ts +131 -13
  105. package/src/svgrid.filter-menu-listbox.svelte.test.ts +56 -10
  106. package/src/svgrid.in-suggest-snapshot.svelte.test.ts +91 -0
  107. package/src/svgrid.menu-scroll-close.test.ts +204 -0
  108. package/src/svgrid.selection-bar-seam.test.ts +185 -0
  109. package/src/svgrid.upsell-license.test.ts +117 -0
  110. package/dist/cdn/GridMenus-BuoBPqxx.js +0 -493
  111. package/dist/cdn/GridMenus-n4llxoOI.js +0 -494
  112. package/dist/cdn/SvDateTimePicker-CHnUkWcH.js +0 -2206
  113. package/dist/cdn/SvDateTimePicker-CRQH_U7E.js +0 -2201
  114. package/dist/cdn/SvGridCellEditor-BGUCzuPB.js +0 -523
  115. package/dist/cdn/SvGridCellEditor-G8IMWIws.js +0 -522
@@ -0,0 +1,1395 @@
1
+ import * as e from "svelte/internal/client";
2
+ import "svelte/internal/disclose-version";
3
+ import { untrack as t } from "svelte";
4
+ //#region src/editor-contract.ts
5
+ var n = (e) => e ? `${e}__error` : void 0, r = (e) => e ? `${e}__hint` : void 0, i = 0, a = (e = "sv-ed") => `${e}-${i++}`;
6
+ function o(e) {
7
+ let t = [e.error ? n(e.id) : void 0, e.hint ? r(e.id) : void 0].filter(Boolean);
8
+ return {
9
+ "aria-invalid": e.invalid ? "true" : void 0,
10
+ "aria-required": e.required ? "true" : void 0,
11
+ "aria-describedby": t.length ? t.join(" ") : void 0,
12
+ "aria-label": e.ariaLabel
13
+ };
14
+ }
15
+ function s(e, t) {
16
+ if (!t) return e;
17
+ let n = { ...e };
18
+ for (let e in t) {
19
+ let r = t[e];
20
+ r != null && r !== "" && (n[e] = r);
21
+ }
22
+ return n;
23
+ }
24
+ //#endregion
25
+ //#region src/datetime/date-core.ts
26
+ function c(e) {
27
+ if (e == null) return null;
28
+ let t = e instanceof Date ? new Date(e.getTime()) : new Date(e);
29
+ return isNaN(t.getTime()) ? null : t;
30
+ }
31
+ function l(e) {
32
+ return new Date(e.getFullYear(), e.getMonth(), e.getDate());
33
+ }
34
+ function u(e) {
35
+ return new Date(e.getFullYear(), e.getMonth(), 1);
36
+ }
37
+ function d(e) {
38
+ return new Date(e.getFullYear(), e.getMonth() + 1, 0);
39
+ }
40
+ function f(e) {
41
+ return d(e).getDate();
42
+ }
43
+ function p(e, t = 0) {
44
+ let n = l(e), r = (n.getDay() - t + 7) % 7;
45
+ return n.setDate(n.getDate() - r), n;
46
+ }
47
+ function m(e, t) {
48
+ return !e || !t ? !1 : e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
49
+ }
50
+ function h(e, t) {
51
+ return !e || !t ? !1 : e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth();
52
+ }
53
+ function g(e, t) {
54
+ let n = l(e).getTime(), r = l(t).getTime();
55
+ return n < r ? -1 : +(n > r);
56
+ }
57
+ function _(e, t) {
58
+ let n = new Date(e.getTime());
59
+ return n.setDate(n.getDate() + t), n;
60
+ }
61
+ function v(e, t) {
62
+ let n = e.getDate(), r = new Date(e.getFullYear(), e.getMonth() + t, 1, e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds());
63
+ return r.setDate(Math.min(n, f(r))), r;
64
+ }
65
+ function y(e, t) {
66
+ return v(e, t * 12);
67
+ }
68
+ function b(e, t, n) {
69
+ return t && e.getTime() < t.getTime() ? new Date(t.getTime()) : n && e.getTime() > n.getTime() ? new Date(n.getTime()) : e;
70
+ }
71
+ function x(e) {
72
+ let t = l(e), n = (t.getDay() + 6) % 7;
73
+ t.setDate(t.getDate() - n + 3);
74
+ let r = new Date(t.getFullYear(), 0, 4), i = (r.getDay() + 6) % 7;
75
+ r.setDate(r.getDate() - i + 3);
76
+ let a = t.getTime() - r.getTime();
77
+ return 1 + Math.round(a / 6048e5);
78
+ }
79
+ function S(e) {
80
+ let t = Math.floor(e / 10) * 10;
81
+ return {
82
+ start: t,
83
+ end: t + 9
84
+ };
85
+ }
86
+ function C(e, t = 0, n = 6) {
87
+ let r = u(e), i = p(r, t), a = [], o = i;
88
+ for (let e = 0; e < n; e++) {
89
+ let e = [], t = x(o);
90
+ for (let n = 0; n < 7; n++) e.push({
91
+ date: o,
92
+ inMonth: o.getMonth() === r.getMonth() && o.getFullYear() === r.getFullYear(),
93
+ week: t
94
+ }), o = _(o, 1);
95
+ a.push(e);
96
+ }
97
+ return a;
98
+ }
99
+ function w(e = 0) {
100
+ return Array.from({ length: 7 }, (t, n) => (e + n) % 7);
101
+ }
102
+ function T(e, t) {
103
+ return new Date(e.getFullYear(), e.getMonth(), e.getDate(), t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds());
104
+ }
105
+ function E(e, t) {
106
+ let n = Math.max(1, Math.floor(t));
107
+ return Math.floor(e / n) * n;
108
+ }
109
+ //#endregion
110
+ //#region src/recurrence.ts
111
+ var D = 864e5, O = (e) => Math.round(l(e).getTime() / D), k = (e) => new Date(e.getFullYear(), e.getMonth() + 1, 0).getDate();
112
+ function A(e, t) {
113
+ return t === -1 ? e.getDate() + 7 > k(e) : Math.floor((e.getDate() - 1) / 7) + 1 === t;
114
+ }
115
+ function j(e, t) {
116
+ let n = t.count && t.count >= 1 && t.from != null ? N(t) : t, r = l(e), i = n.from == null ? null : l(c(n.from) ?? r), a = n.until == null ? null : l(c(n.until) ?? r);
117
+ if (i && r < i || a && r > a) return !1;
118
+ let o = Math.max(1, Math.floor(n.interval ?? 1));
119
+ switch (n.freq) {
120
+ case "daily": return !i || (O(r) - O(i)) % o === 0;
121
+ case "weekly": {
122
+ let e = n.weekdays && n.weekdays.length ? n.weekdays : i ? [i.getDay()] : null;
123
+ return !(!e || !e.includes(r.getDay()) || o > 1 && i && Math.round((p(r, 0).getTime() - p(i, 0).getTime()) / (D * 7)) % o !== 0);
124
+ }
125
+ case "monthly": return M(r, n) ? !i || ((r.getFullYear() - i.getFullYear()) * 12 + (r.getMonth() - i.getMonth())) % o === 0 : !1;
126
+ case "yearly": return n.month != null && r.getMonth() !== n.month || !M(r, n) ? !1 : i ? (r.getFullYear() - i.getFullYear()) % o === 0 : n.month != null || n.day != null || n.weekOfMonth != null;
127
+ }
128
+ }
129
+ function M(e, t) {
130
+ if (t.weekOfMonth != null && t.weekdays && t.weekdays.length) return t.weekdays.includes(e.getDay()) && A(e, t.weekOfMonth);
131
+ let n = t.from == null ? null : (c(t.from) ?? e).getDate(), r = t.day ?? n;
132
+ if (r == null) return !1;
133
+ let i = r < 0 ? k(e) + r + 1 : r;
134
+ return e.getDate() === i;
135
+ }
136
+ function N(e) {
137
+ let t = c(e.from);
138
+ if (!t) return {
139
+ ...e,
140
+ count: void 0
141
+ };
142
+ let n = {
143
+ ...e,
144
+ count: void 0
145
+ }, r = l(t), i = 0, a = r, o = 0;
146
+ for (; o++ < 48e3 && !(j(r, n) && (i++, a = r, i >= e.count));) r = new Date(r.getFullYear(), r.getMonth(), r.getDate() + 1);
147
+ let s = a, u = e.until == null ? null : l(c(e.until) ?? s), d = u && u < s ? u : s;
148
+ return {
149
+ ...n,
150
+ until: d
151
+ };
152
+ }
153
+ function P(e, t) {
154
+ return t ? (Array.isArray(t) ? t : [t]).some((t) => j(e, t)) : !1;
155
+ }
156
+ function F(e, t, n) {
157
+ if (!e) return [];
158
+ let r = (Array.isArray(e) ? e : [e]).map((e) => e.count && e.count >= 1 && e.from != null ? N(e) : e), i = [], a = l(n), o = l(t), s = 0;
159
+ for (; o <= a && s++ < 4e3;) P(o, r) && i.push(o), o = new Date(o.getFullYear(), o.getMonth(), o.getDate() + 1);
160
+ return i;
161
+ }
162
+ var ee = [
163
+ "Sun",
164
+ "Mon",
165
+ "Tue",
166
+ "Wed",
167
+ "Thu",
168
+ "Fri",
169
+ "Sat"
170
+ ], I = [
171
+ "Jan",
172
+ "Feb",
173
+ "Mar",
174
+ "Apr",
175
+ "May",
176
+ "Jun",
177
+ "Jul",
178
+ "Aug",
179
+ "Sep",
180
+ "Oct",
181
+ "Nov",
182
+ "Dec"
183
+ ], L = {
184
+ 1: "first",
185
+ 2: "second",
186
+ 3: "third",
187
+ 4: "fourth",
188
+ 5: "fifth",
189
+ [-1]: "last"
190
+ };
191
+ function R(e, t, n) {
192
+ let r = e.weekdays?.[0];
193
+ return e.weekOfMonth != null && r != null ? `the ${n[e.weekOfMonth] ?? e.weekOfMonth} ${t[r]}` : e.day === -1 ? "the last day" : e.day != null && e.day < 0 ? `the ${-e.day} day(s) from the end` : e.day == null ? "" : `day ${e.day}`;
194
+ }
195
+ function z(e, t) {
196
+ let n = Math.max(1, Math.floor(e.interval ?? 1)), r = "";
197
+ switch (e.freq) {
198
+ case "daily":
199
+ r = n === 1 ? "Daily" : `Every ${n} days`;
200
+ break;
201
+ case "weekly": {
202
+ r = n === 1 ? "Weekly" : `Every ${n} weeks`;
203
+ let i = e.weekdays && e.weekdays.length ? [...e.weekdays].sort((e, t) => e - t) : [];
204
+ if (i.length) {
205
+ let e = i.length === 5 && [
206
+ 1,
207
+ 2,
208
+ 3,
209
+ 4,
210
+ 5
211
+ ].every((e) => i.includes(e)), n = i.length === 2 && i.includes(0) && i.includes(6);
212
+ r += e ? " on weekdays" : n ? " on weekends" : ` on ${i.map((e) => t.weekdays[e]).join(", ")}`;
213
+ }
214
+ break;
215
+ }
216
+ case "monthly": {
217
+ r = n === 1 ? "Monthly" : `Every ${n} months`;
218
+ let i = R(e, t.weekdays, t.ordinals);
219
+ i && (r += ` on ${i}`);
220
+ break;
221
+ }
222
+ case "yearly": {
223
+ r = n === 1 ? "Yearly" : `Every ${n} years`;
224
+ let i = R(e, t.weekdays, t.ordinals);
225
+ e.month != null && i ? r += ` on ${i} of ${t.months[e.month]}` : e.month == null ? i && (r += ` on ${i}`) : r += ` in ${t.months[e.month]}`;
226
+ break;
227
+ }
228
+ }
229
+ if (e.count && e.count >= 1) r += `, ${e.count} time${e.count === 1 ? "" : "s"}`;
230
+ else if (e.until) {
231
+ let n = c(e.until);
232
+ n && (r += ` until ${t.months[n.getMonth()]} ${n.getDate()}, ${n.getFullYear()}`);
233
+ }
234
+ return r;
235
+ }
236
+ function B(e, t) {
237
+ let n = {
238
+ weekdays: t?.weekdays ?? ee,
239
+ months: t?.months ?? I,
240
+ ordinals: t?.ordinals ?? L,
241
+ never: t?.never ?? ""
242
+ };
243
+ if (!e) return n.never;
244
+ let r = (Array.isArray(e) ? e : [e]).filter((e) => e && e.freq);
245
+ return r.length ? r.map((e) => z(e, n)).join("; ") : n.never;
246
+ }
247
+ //#endregion
248
+ //#region src/SvField.svelte
249
+ var V = e.from_html("<span class=\"sv-field__req svelte-1uhr4tm\" aria-hidden=\"true\">*</span>"), te = e.from_html("<label class=\"sv-field__label svelte-1uhr4tm\"> <!></label>"), ne = e.from_html("<span class=\"sv-field__spinner svelte-1uhr4tm\" role=\"status\" aria-label=\"Loading\"></span>"), re = e.from_html("<span class=\"sv-field__labelrow svelte-1uhr4tm\"><!> <!></span>"), ie = e.from_html("<span class=\"sv-field__req svelte-1uhr4tm\" aria-hidden=\"true\">*</span>"), H = e.from_html("<label class=\"sv-field__float-label svelte-1uhr4tm\"> <!></label>"), U = e.from_html("<span class=\"sv-field__adorn sv-field__adorn--lead svelte-1uhr4tm\"><!></span>"), W = e.from_html("<span class=\"sv-field__affix sv-field__affix--pre svelte-1uhr4tm\"> </span>"), ae = e.from_html("<span class=\"sv-field__affix sv-field__affix--suf svelte-1uhr4tm\"> </span>"), oe = e.from_html("<span class=\"sv-field__adorn sv-field__adorn--trail svelte-1uhr4tm\"><!></span>"), G = e.from_html("<span class=\"sv-field__action-txt svelte-1uhr4tm\"> </span>"), K = e.from_html("<button class=\"sv-field__action svelte-1uhr4tm\" type=\"button\" tabindex=\"-1\"><!></button>"), se = e.from_html("<button class=\"sv-field__clear svelte-1uhr4tm\" type=\"button\" tabindex=\"-1\">&times;</button>"), ce = e.from_html("<div><!> <!> <!> <span class=\"sv-field__slot svelte-1uhr4tm\"><!></span> <!> <!> <!> <!></div>"), le = e.from_html("<span class=\"sv-field__error svelte-1uhr4tm\" role=\"alert\"> </span>"), ue = e.from_html("<span class=\"sv-field__hint svelte-1uhr4tm\"> </span>"), q = e.from_html("<div><!> <!> <!></div>"), de = {
250
+ hash: "svelte-1uhr4tm",
251
+ code: ".sv-field.svelte-1uhr4tm {display:inline-flex;flex-direction:column;gap:3px;text-align:start;}.sv-field--block.svelte-1uhr4tm {display:flex;width:100%;}.sv-field__labelrow.svelte-1uhr4tm {display:inline-flex;align-items:center;gap:6px;}.sv-field__label.svelte-1uhr4tm {font-size:12.5px;font-weight:550;color:var(--sg-fg, #0f172a);line-height:1.3;}.sv-field__spinner.svelte-1uhr4tm {width:12px;height:12px;flex:none;border-radius:50%;border:2px solid color-mix(in srgb, var(--sg-accent, #2563eb) 30%, transparent);border-top-color:var(--sg-accent, #2563eb);\n animation: svelte-1uhr4tm-sv-field-spin 0.6s linear infinite;}\n @keyframes svelte-1uhr4tm-sv-field-spin { to { transform: rotate(360deg); } }\n @media (prefers-reduced-motion: reduce) {.sv-field__spinner.svelte-1uhr4tm { animation: none;} }.sv-field__req.svelte-1uhr4tm {color:var(--sg-danger, #dc2626);margin-inline-start:2px;}.sv-field__hint.svelte-1uhr4tm {font-size:11.5px;color:var(--sg-muted, #64748b);line-height:1.35;}.sv-field__error.svelte-1uhr4tm {font-size:11.5px;font-weight:500;color:var(--sg-danger, #dc2626);line-height:1.35;}\n\n /* ---- Framed mode: the shared control box (opt-in via `frame`) ---- */.sv-field__control.svelte-1uhr4tm {--_accent: var(--sg-accent, #2563eb);display:flex;align-items:center;width:220px;background:var(--sg-input-bg, #fff);color:var(--sg-fg, #0f172a);border:1px solid var(--sg-input-border, var(--sg-border, #cbd5e1));border-radius:var(--sg-radius, 8px);}.sv-field--block.svelte-1uhr4tm .sv-field__control:where(.svelte-1uhr4tm) {width:100%;}.sv-field__control.svelte-1uhr4tm:focus-within {border-color:var(--_accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--_accent) 22%, transparent);}.sv-field__control.is-invalid.svelte-1uhr4tm {border-color:var(--sg-danger, #dc2626);}.sv-field__control.is-invalid.svelte-1uhr4tm:focus-within {box-shadow:0 0 0 2px color-mix(in srgb, var(--sg-danger, #dc2626) 22%, transparent);}.sv-field__control.is-disabled.svelte-1uhr4tm {opacity:0.6;}.sv-field__control.is-readonly.svelte-1uhr4tm {background:var(--sg-muted-bg, color-mix(in srgb, var(--sg-fg, #0f172a) 4%, var(--sg-input-bg, #fff)));}\n\n /* ---- Floating label ---- */.sv-field--floating.svelte-1uhr4tm .sv-field__control:where(.svelte-1uhr4tm) {position:relative;}.sv-field__float-label.svelte-1uhr4tm {position:absolute;inset-inline-start:11px;top:50%;transform:translateY(-50%);font-size:13px;color:var(--sg-muted, #64748b);pointer-events:none;background:var(--sg-input-bg, #fff);padding:0 4px;max-width:calc(100% - 24px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:1;transition:top 0.14s ease, font-size 0.14s ease, color 0.14s ease;}.sv-field__control.svelte-1uhr4tm:focus-within .sv-field__float-label:where(.svelte-1uhr4tm),\n .sv-field__control.is-filled.svelte-1uhr4tm .sv-field__float-label:where(.svelte-1uhr4tm) {top:0;font-size:10.5px;color:var(--_accent, var(--sg-accent, #2563eb));}.sv-field__control.is-invalid.svelte-1uhr4tm .sv-field__float-label:where(.svelte-1uhr4tm) {color:var(--sg-danger, #dc2626);}\n @media (prefers-reduced-motion: reduce) {.sv-field__float-label.svelte-1uhr4tm {transition:none;} }.sv-field__slot.svelte-1uhr4tm {display:flex;flex:1;min-width:0;}\n /* Bare form controls passed as children inherit borderless chrome so editors\n no longer re-implement the box. Scoped to the framed control only. */.sv-field__slot.svelte-1uhr4tm input,\n .sv-field__slot.svelte-1uhr4tm textarea,\n .sv-field__slot.svelte-1uhr4tm select {flex:1;min-width:0;width:100%;border:0;background:none;outline:none;color:inherit;font:inherit;padding:0 10px;}.sv-field__adorn.svelte-1uhr4tm {display:inline-flex;align-items:center;color:var(--sg-muted, #64748b);}.sv-field__adorn--lead.svelte-1uhr4tm {padding-inline-start:10px;}.sv-field__adorn--trail.svelte-1uhr4tm {padding-inline-end:10px;}.sv-field__affix.svelte-1uhr4tm {display:inline-flex;align-items:center;color:var(--sg-muted, #64748b);white-space:nowrap;}.sv-field__affix--pre.svelte-1uhr4tm {padding-inline-start:10px;}.sv-field__affix--suf.svelte-1uhr4tm {padding-inline-end:10px;}\n /* When an affix/adornment sits next to the control, drop the control's own\n edge padding so text hugs the affix. */.sv-field__adorn--lead.svelte-1uhr4tm + .sv-field__slot:where(.svelte-1uhr4tm) input,\n .sv-field__affix--pre.svelte-1uhr4tm + .sv-field__slot:where(.svelte-1uhr4tm) input {padding-inline-start:6px;}.sv-field__clear.svelte-1uhr4tm {display:grid;place-items:center;width:28px;align-self:stretch;background:none;border:0;color:var(--sg-muted, #64748b);cursor:pointer;font-size:17px;line-height:1;}.sv-field__clear.svelte-1uhr4tm:hover {color:var(--sg-fg, #0f172a);}.sv-field__action.svelte-1uhr4tm {display:inline-grid;place-items:center;align-self:center;flex:none;min-width:24px;height:24px;margin-inline-end:3px;padding:0 5px;background:none;border:0;border-radius:5px;color:var(--sg-muted, #64748b);cursor:pointer;font:inherit;font-size:12px;}.sv-field__action.svelte-1uhr4tm:hover:not([disabled]) {background:var(--sg-row-hover-bg, #f1f5f9);color:var(--sg-accent, #2563eb);}.sv-field__action[disabled].svelte-1uhr4tm {opacity:0.5;cursor:default;}.sv-field__action-txt.svelte-1uhr4tm {font-weight:600;white-space:nowrap;}\n .sv-field__control.sv-field--sm.svelte-1uhr4tm {height:28px;font-size:12px;}\n .sv-field__control.sv-field--md.svelte-1uhr4tm {height:34px;font-size:13px;}\n .sv-field__control.sv-field--lg.svelte-1uhr4tm {height:40px;font-size:15px;}"
252
+ };
253
+ function J(t, i) {
254
+ e.push(i, !0), e.append_styles(t, de);
255
+ let a = e.prop(i, "required", 3, !1), o = e.prop(i, "block", 3, !1), s = e.prop(i, "loading", 3, !1), c = e.prop(i, "frame", 3, !1), l = e.prop(i, "invalid", 3, !1), u = e.prop(i, "size", 3, "md"), d = e.prop(i, "disabled", 3, !1), f = e.prop(i, "readonly", 3, !1), p = e.prop(i, "clearable", 3, !1), m = e.prop(i, "showClear", 3, !1), h = e.prop(i, "clearLabel", 3, "Clear"), g = e.prop(i, "labelMode", 3, "static"), _ = e.prop(i, "filled", 3, !1), v = e.derived(() => i.width == null ? void 0 : typeof i.width == "number" ? `${i.width}px` : i.width), y = e.derived(() => g() === "floating" && c() && !!i.label), b = e.derived(() => i.dir === "ltr" || i.dir === "rtl" ? i.dir : void 0);
256
+ var x = q();
257
+ let S;
258
+ var C = e.child(x), w = (t) => {
259
+ var n = re(), r = e.child(n), o = (t) => {
260
+ var n = te(), r = e.child(n, !0), o = e.sibling(r), s = (t) => {
261
+ var n = V();
262
+ e.append(t, n);
263
+ };
264
+ e.if(o, (e) => {
265
+ a() && e(s);
266
+ }), e.reset(n), e.template_effect(() => {
267
+ e.set_attribute(n, "for", i.id), e.set_text(r, i.label);
268
+ }), e.append(t, n);
269
+ };
270
+ e.if(r, (t) => {
271
+ i.label && !e.get(y) && t(o);
272
+ });
273
+ var c = e.sibling(r, 2), l = (t) => {
274
+ var n = ne();
275
+ e.append(t, n);
276
+ };
277
+ e.if(c, (e) => {
278
+ s() && e(l);
279
+ }), e.reset(n), e.append(t, n);
280
+ };
281
+ e.if(C, (t) => {
282
+ (i.label && !e.get(y) || s()) && t(w);
283
+ });
284
+ var T = e.sibling(C, 2), E = (t) => {
285
+ var n = ce();
286
+ let r, s;
287
+ var c = e.child(n), g = (t) => {
288
+ var n = H(), r = e.child(n, !0), o = e.sibling(r), s = (t) => {
289
+ var n = ie();
290
+ e.append(t, n);
291
+ };
292
+ e.if(o, (e) => {
293
+ a() && e(s);
294
+ }), e.reset(n), e.template_effect(() => {
295
+ e.set_attribute(n, "for", i.id), e.set_text(r, i.label);
296
+ }), e.append(t, n);
297
+ };
298
+ e.if(c, (t) => {
299
+ e.get(y) && t(g);
300
+ });
301
+ var b = e.sibling(c, 2), x = (t) => {
302
+ var n = U(), r = e.child(n);
303
+ e.snippet(r, () => i.leading), e.reset(n), e.append(t, n);
304
+ };
305
+ e.if(b, (e) => {
306
+ i.leading && e(x);
307
+ });
308
+ var S = e.sibling(b, 2), C = (t) => {
309
+ var n = W(), r = e.child(n, !0);
310
+ e.reset(n), e.template_effect(() => e.set_text(r, i.prefix)), e.append(t, n);
311
+ };
312
+ e.if(S, (e) => {
313
+ i.prefix && e(C);
314
+ });
315
+ var w = e.sibling(S, 2), T = e.child(w);
316
+ e.snippet(T, () => i.children), e.reset(w);
317
+ var E = e.sibling(w, 2), D = (t) => {
318
+ var n = ae(), r = e.child(n, !0);
319
+ e.reset(n), e.template_effect(() => e.set_text(r, i.suffix)), e.append(t, n);
320
+ };
321
+ e.if(E, (e) => {
322
+ i.suffix && e(D);
323
+ });
324
+ var O = e.sibling(E, 2), k = (t) => {
325
+ var n = oe(), r = e.child(n);
326
+ e.snippet(r, () => i.trailing), e.reset(n), e.append(t, n);
327
+ };
328
+ e.if(O, (e) => {
329
+ i.trailing && e(k);
330
+ });
331
+ var A = e.sibling(O, 2), j = (t) => {
332
+ var n = e.comment(), r = e.first_child(n);
333
+ e.each(r, 17, () => i.actions, (e) => e.label, (t, n) => {
334
+ var r = K(), i = e.child(r), a = (t) => {
335
+ var r = e.comment(), i = e.first_child(r);
336
+ e.snippet(i, () => e.get(n).icon), e.append(t, r);
337
+ }, o = (t) => {
338
+ var r = G(), i = e.child(r, !0);
339
+ e.reset(r), e.template_effect(() => e.set_text(i, e.get(n).label)), e.append(t, r);
340
+ };
341
+ e.if(i, (t) => {
342
+ e.get(n).icon ? t(a) : t(o, -1);
343
+ }), e.reset(r), e.template_effect(() => {
344
+ e.set_attribute(r, "aria-label", e.get(n).label), e.set_attribute(r, "title", e.get(n).label), r.disabled = d() || e.get(n).disabled;
345
+ }), e.delegated("click", r, () => e.get(n).onClick()), e.append(t, r);
346
+ }), e.append(t, n);
347
+ };
348
+ e.if(A, (e) => {
349
+ i.actions?.length && e(j);
350
+ });
351
+ var M = e.sibling(A, 2), N = (t) => {
352
+ var n = se();
353
+ e.template_effect(() => e.set_attribute(n, "aria-label", h())), e.delegated("click", n, () => i.onclear?.()), e.append(t, n);
354
+ };
355
+ e.if(M, (e) => {
356
+ p() && m() && !d() && !f() && e(N);
357
+ }), e.reset(n), e.template_effect(() => {
358
+ r = e.set_class(n, 1, `sv-field__control sv-field--${u() ?? ""}`, "svelte-1uhr4tm", r, {
359
+ "is-invalid": l(),
360
+ "is-disabled": d(),
361
+ "is-readonly": f(),
362
+ "is-filled": _()
363
+ }), s = e.set_style(n, "", s, { width: o() ? void 0 : e.get(v) });
364
+ }), e.append(t, n);
365
+ }, D = (t) => {
366
+ var n = e.comment(), r = e.first_child(n);
367
+ e.snippet(r, () => i.children), e.append(t, n);
368
+ };
369
+ e.if(T, (e) => {
370
+ c() ? e(E) : e(D, -1);
371
+ });
372
+ var O = e.sibling(T, 2), k = (t) => {
373
+ var r = le(), a = e.child(r, !0);
374
+ e.reset(r), e.template_effect((t) => {
375
+ e.set_attribute(r, "id", t), e.set_text(a, i.error);
376
+ }, [() => n(i.id)]), e.append(t, r);
377
+ }, A = (t) => {
378
+ var n = ue(), a = e.child(n, !0);
379
+ e.reset(n), e.template_effect((t) => {
380
+ e.set_attribute(n, "id", t), e.set_text(a, i.hint);
381
+ }, [() => r(i.id)]), e.append(t, n);
382
+ };
383
+ e.if(O, (e) => {
384
+ i.error ? e(k) : i.hint && e(A, 1);
385
+ }), e.reset(x), e.template_effect(() => {
386
+ S = e.set_class(x, 1, "sv-field svelte-1uhr4tm", null, S, {
387
+ "sv-field--block": o(),
388
+ "sv-field--floating": e.get(y)
389
+ }), e.set_attribute(x, "dir", e.get(b)), x.dir = x.dir;
390
+ }), e.append(t, x), e.pop();
391
+ }
392
+ e.delegate(["click"]);
393
+ //#endregion
394
+ //#region src/datetime/date-selection.ts
395
+ var Y = () => ({
396
+ dates: [],
397
+ anchor: null,
398
+ rangeStart: null
399
+ });
400
+ function X(e, t) {
401
+ return e.some((e) => m(e, t));
402
+ }
403
+ function Z(e, t) {
404
+ let n = g(e, t) <= 0 ? l(e) : l(t), r = g(e, t) <= 0 ? l(t) : l(e), i = [], a = n;
405
+ for (; g(a, r) <= 0;) i.push(a), a = _(a, 1);
406
+ return i;
407
+ }
408
+ function fe(e) {
409
+ let t = [];
410
+ for (let n of e) t.some((e) => m(e, n)) || t.push(l(n));
411
+ return t.sort((e, t) => e.getTime() - t.getTime()), t;
412
+ }
413
+ function pe(e, t) {
414
+ return X(e, t) ? e.filter((e) => !m(e, t)) : [...e, l(t)];
415
+ }
416
+ function me(e, t, n, r = {}, i = 0) {
417
+ let a = l(t), o = () => ({
418
+ dates: [a],
419
+ anchor: a,
420
+ rangeStart: null
421
+ });
422
+ switch (n) {
423
+ case "none": return { ...e };
424
+ case "default":
425
+ case "one": return o();
426
+ case "zeroOrOne": return X(e.dates, a) && e.dates.length === 1 ? Y() : o();
427
+ case "many":
428
+ case "zeroOrMany": return {
429
+ dates: fe(pe(e.dates, a)),
430
+ anchor: a,
431
+ rangeStart: null
432
+ };
433
+ case "oneOrMany": {
434
+ let t = pe(e.dates, a);
435
+ return {
436
+ dates: fe(t.length === 0 ? [a] : t),
437
+ anchor: a,
438
+ rangeStart: null
439
+ };
440
+ }
441
+ case "oneExtended": return r.shift && e.anchor ? {
442
+ dates: Z(e.anchor, a),
443
+ anchor: e.anchor,
444
+ rangeStart: null
445
+ } : r.ctrl ? {
446
+ dates: fe(pe(e.dates, a)),
447
+ anchor: a,
448
+ rangeStart: null
449
+ } : o();
450
+ case "week": {
451
+ let e = p(a, i);
452
+ return {
453
+ dates: Array.from({ length: 7 }, (t, n) => _(e, n)),
454
+ anchor: e,
455
+ rangeStart: null
456
+ };
457
+ }
458
+ case "range": return e.rangeStart ? {
459
+ dates: Z(e.rangeStart, a),
460
+ anchor: e.rangeStart,
461
+ rangeStart: null
462
+ } : {
463
+ dates: [a],
464
+ anchor: a,
465
+ rangeStart: a
466
+ };
467
+ default: return o();
468
+ }
469
+ }
470
+ function he(e) {
471
+ return e === "many" || e === "zeroOrMany" || e === "oneOrMany" || e === "oneExtended" || e === "week" || e === "range";
472
+ }
473
+ //#endregion
474
+ //#region src/datetime/date-restrict.ts
475
+ function ge(e) {
476
+ if (!e) return [];
477
+ let t = [];
478
+ for (let n of e) {
479
+ let e = c(n);
480
+ e && t.push(e);
481
+ }
482
+ return t;
483
+ }
484
+ function _e(e, t, n) {
485
+ let r = c(t ?? null), i = c(n ?? null);
486
+ return !!(r && g(e, r) < 0 || i && g(e, i) > 0);
487
+ }
488
+ function ve(e, t) {
489
+ return t ? typeof t == "function" ? t(e) : ge(t).some((t) => m(t, e)) : !1;
490
+ }
491
+ function ye(e, t) {
492
+ return _e(e, t.min, t.max) || ve(e, t.restrictedDates);
493
+ }
494
+ function be(e, t) {
495
+ return t ? typeof t == "function" ? t(e) : ge(t).some((t) => m(t, e)) : !1;
496
+ }
497
+ //#endregion
498
+ //#region src/createCalendar.svelte.ts
499
+ var xe = () => typeof navigator < "u" ? navigator.language : "en-US";
500
+ function Se(e) {
501
+ if (e == null) return [];
502
+ let t = Array.isArray(e) ? e : [e], n = [];
503
+ for (let e of t) {
504
+ let t = c(e);
505
+ t && n.push(l(t));
506
+ }
507
+ return n;
508
+ }
509
+ function Ce(t) {
510
+ let n = () => t.selectionMode?.() ?? "one", r = () => t.firstDayOfWeek?.() ?? 0, i = () => t.weeks?.() ?? 6, a = () => Math.max(1, t.months?.() ?? 1), o = () => t.displayMode?.() ?? "month", s = () => t.disabled?.() ?? !1, u = () => t.readonly?.() ?? !1, d = () => t.locale?.() ?? xe(), f = () => t.dayNameFormat?.() ?? "short", p = () => t.monthNameFormat?.() ?? "long", g = e.state(e.proxy(Y())), b = e.state(e.proxy(l(/* @__PURE__ */ new Date()))), x = e.state("month"), T = e.state(e.proxy(l(/* @__PURE__ */ new Date()))), E = e.state(null), D = "fade", O = e.state(0), k = e.derived(() => ({
511
+ min: t.min?.() ?? null,
512
+ max: t.max?.() ?? null,
513
+ restrictedDates: t.restrictedDates?.() ?? null
514
+ })), A = e.derived(() => !s() && !u()), j = "￿", M = !1;
515
+ e.user_effect(() => {
516
+ let n = Se(t.value()), r = n.map((e) => e.getTime()).join(",");
517
+ if (r !== j && (j = r, e.set(g, {
518
+ dates: n,
519
+ anchor: n[n.length - 1] ?? null,
520
+ rangeStart: null
521
+ }, !0), !M)) {
522
+ M = !0;
523
+ let t = n[0] ?? l(/* @__PURE__ */ new Date());
524
+ e.set(b, l(t), !0), e.set(T, l(t), !0), e.set(x, o(), !0);
525
+ }
526
+ });
527
+ let N = e.derived(() => new Intl.DateTimeFormat(d(), { weekday: f() })), F = e.derived(() => new Intl.DateTimeFormat(d(), {
528
+ month: p(),
529
+ year: "numeric"
530
+ })), ee = e.derived(() => new Intl.DateTimeFormat(d(), { month: "short" })), I = e.derived(() => new Intl.DateTimeFormat(d(), {
531
+ weekday: "long",
532
+ year: "numeric",
533
+ month: "long",
534
+ day: "numeric"
535
+ })), L = e.derived(() => w(r()).map((t) => {
536
+ let n = new Date(2021, 7, 1 + t);
537
+ return {
538
+ label: e.get(N).format(n),
539
+ weekday: t
540
+ };
541
+ })), R = e.derived(() => Array.from({ length: a() }, (t, n) => {
542
+ let a = v(e.get(b), n);
543
+ return {
544
+ month: a,
545
+ title: e.get(F).format(a),
546
+ matrix: C(a, r(), i())
547
+ };
548
+ })), z = e.derived(() => {
549
+ if (n() !== "range") return null;
550
+ let t = e.get(g).rangeStart;
551
+ return !t || !e.get(E) ? null : Z(t, e.get(E));
552
+ }), B = (t) => !!e.get(z) && e.get(z).some((e) => m(e, t));
553
+ function V(n, r) {
554
+ return {
555
+ disabled: ye(n, e.get(k)),
556
+ selected: X(e.get(g).dates, n),
557
+ important: be(n, t.importantDates?.() ?? null),
558
+ today: m(n, /* @__PURE__ */ new Date()),
559
+ outside: !h(n, r),
560
+ focused: m(n, e.get(T)),
561
+ preview: B(n),
562
+ recurring: P(n, t.recurrence?.() ?? null)
563
+ };
564
+ }
565
+ let te = e.derived(() => e.get(x) === "month" ? e.get(F).format(e.get(b)) : e.get(x) === "year" ? String(e.get(b).getFullYear()) : (() => {
566
+ let { start: t, end: n } = S(e.get(b).getFullYear());
567
+ return `${t} - ${n}`;
568
+ })()), ne = e.derived(() => Array.from({ length: 12 }, (t, n) => ({
569
+ index: n,
570
+ label: e.get(ee).format(new Date(e.get(b).getFullYear(), n, 1)),
571
+ current: n === (/* @__PURE__ */ new Date()).getMonth() && e.get(b).getFullYear() === (/* @__PURE__ */ new Date()).getFullYear(),
572
+ selected: e.get(g).dates.some((t) => t.getMonth() === n && t.getFullYear() === e.get(b).getFullYear())
573
+ }))), re = e.derived(() => {
574
+ let { start: t } = S(e.get(b).getFullYear());
575
+ return Array.from({ length: 12 }, (n, r) => {
576
+ let i = t - 1 + r;
577
+ return {
578
+ year: i,
579
+ outside: r === 0 || r === 11,
580
+ current: i === (/* @__PURE__ */ new Date()).getFullYear(),
581
+ selected: e.get(g).dates.some((e) => e.getFullYear() === i)
582
+ };
583
+ });
584
+ }), ie = e.derived(() => n() === "zeroOrOne" || n() === "zeroOrMany" || n() === "none");
585
+ function H(n) {
586
+ e.set(g, n, !0), j = n.dates.map((e) => e.getTime()).join(","), t.onChange?.(n.dates.map((e) => new Date(e.getTime())));
587
+ }
588
+ function U(t, i) {
589
+ !e.get(A) || ye(t, e.get(k)) || (e.set(T, l(t), !0), H(me(e.get(g), t, n(), {
590
+ ctrl: i?.ctrlKey || i?.metaKey,
591
+ shift: i?.shiftKey
592
+ }, r())));
593
+ }
594
+ function W(n, r = e.get(x)) {
595
+ e.set(b, l(n), !0), e.set(x, r, !0), e.update(O), t.onNavigate?.(e.get(b), e.get(x));
596
+ }
597
+ function ae() {
598
+ D = "drillUp", e.get(x) === "month" ? W(e.get(b), "year") : e.get(x) === "year" && W(e.get(b), "decade");
599
+ }
600
+ function oe(t) {
601
+ D = t === 1 ? "next" : "prev", e.get(x) === "month" ? W(v(e.get(b), t)) : e.get(x) === "year" ? W(y(e.get(b), t)) : W(y(e.get(b), t * 10));
602
+ }
603
+ function G(t) {
604
+ D = "drillDown", W(new Date(e.get(b).getFullYear(), t, 1), "month"), e.set(T, new Date(e.get(b).getFullYear(), t, Math.min(e.get(T).getDate(), 28)), !0);
605
+ }
606
+ function K(t) {
607
+ D = "drillDown", W(new Date(t, e.get(b).getMonth(), 1), "year");
608
+ }
609
+ function se() {
610
+ D = "fade";
611
+ let t = /* @__PURE__ */ new Date();
612
+ W(t, "month"), e.set(T, l(t), !0), e.get(A) && U(t);
613
+ }
614
+ let ce = (e) => new Date(e.getFullYear(), e.getMonth(), 1);
615
+ function le(t) {
616
+ if (!e.get(A)) return;
617
+ let n = typeof t.value == "function" ? t.value() : t.value, r = Array.isArray(n), i = r ? n : [n, n], a = c(i[0]), o = c(i[1]);
618
+ a && (e.set(T, l(a), !0), D = "fade", e.set(b, ce(a), !0), e.update(O), H(r && o ? {
619
+ dates: Z(a, o),
620
+ anchor: l(o),
621
+ rangeStart: null
622
+ } : {
623
+ dates: [l(a)],
624
+ anchor: l(a),
625
+ rangeStart: null
626
+ }));
627
+ }
628
+ function ue() {
629
+ e.get(A) && H(Y());
630
+ }
631
+ let q = (t) => e.set(E, t, !0);
632
+ function de(t) {
633
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), e.get(x) === "year" ? G(e.get(T).getMonth()) : K(e.get(T).getFullYear()));
634
+ }
635
+ function J(t) {
636
+ if (e.get(x) !== "month") return de(t);
637
+ let n = null;
638
+ switch (t.key) {
639
+ case "ArrowLeft":
640
+ n = _(e.get(T), -1);
641
+ break;
642
+ case "ArrowRight":
643
+ n = _(e.get(T), 1);
644
+ break;
645
+ case "ArrowUp":
646
+ n = _(e.get(T), -7);
647
+ break;
648
+ case "ArrowDown":
649
+ n = _(e.get(T), 7);
650
+ break;
651
+ case "Home":
652
+ n = _(e.get(T), -((e.get(T).getDay() - r() + 7) % 7));
653
+ break;
654
+ case "End":
655
+ n = _(e.get(T), 6 - (e.get(T).getDay() - r() + 7) % 7);
656
+ break;
657
+ case "PageUp":
658
+ n = t.shiftKey ? y(e.get(T), -1) : v(e.get(T), -1);
659
+ break;
660
+ case "PageDown":
661
+ n = t.shiftKey ? y(e.get(T), 1) : v(e.get(T), 1);
662
+ break;
663
+ case "Enter":
664
+ case " ":
665
+ t.preventDefault(), U(e.get(T), t);
666
+ return;
667
+ default: return;
668
+ }
669
+ n && (t.preventDefault(), e.set(T, l(n), !0), h(e.get(T), e.get(b)) || W(e.get(T), "month"));
670
+ }
671
+ return {
672
+ get view() {
673
+ return e.get(b);
674
+ },
675
+ get mode() {
676
+ return e.get(x);
677
+ },
678
+ get title() {
679
+ return e.get(te);
680
+ },
681
+ get panels() {
682
+ return e.get(R);
683
+ },
684
+ get weekdayHeaders() {
685
+ return e.get(L);
686
+ },
687
+ get yearCells() {
688
+ return e.get(ne);
689
+ },
690
+ get decadeCells() {
691
+ return e.get(re);
692
+ },
693
+ get selectedDates() {
694
+ return e.get(g).dates;
695
+ },
696
+ get previewRange() {
697
+ return e.get(z);
698
+ },
699
+ get focusDate() {
700
+ return e.get(T);
701
+ },
702
+ get hoverDate() {
703
+ return e.get(E);
704
+ },
705
+ get canClear() {
706
+ return e.get(ie);
707
+ },
708
+ get isInteractive() {
709
+ return e.get(A);
710
+ },
711
+ get navToken() {
712
+ return e.get(O);
713
+ },
714
+ get navDir() {
715
+ return D;
716
+ },
717
+ dayState: V,
718
+ inPreview: B,
719
+ formatFullDate: (t) => e.get(I).format(t),
720
+ formatMonthTitle: (t) => e.get(F).format(t),
721
+ pickDay: U,
722
+ step: oe,
723
+ drillUp: ae,
724
+ pickMonth: G,
725
+ pickYear: K,
726
+ goToday: se,
727
+ applyPreset: le,
728
+ clearSelection: ue,
729
+ setHover: q,
730
+ onKeydown: J,
731
+ navProps(e) {
732
+ return {
733
+ type: "button",
734
+ disabled: s(),
735
+ "aria-label": e === 1 ? "Next" : "Previous",
736
+ onclick: () => oe(e)
737
+ };
738
+ },
739
+ titleProps() {
740
+ return {
741
+ type: "button",
742
+ disabled: s() || e.get(x) === "decade",
743
+ "aria-live": "polite",
744
+ onclick: ae
745
+ };
746
+ },
747
+ gridProps() {
748
+ return {
749
+ role: "grid",
750
+ "aria-label": e.get(te),
751
+ tabindex: -1,
752
+ onkeydown: J
753
+ };
754
+ },
755
+ dayProps(n, r) {
756
+ let i = V(n.date, r);
757
+ return {
758
+ type: "button",
759
+ role: "gridcell",
760
+ "aria-selected": i.selected,
761
+ "aria-disabled": i.disabled,
762
+ "aria-current": i.today ? "date" : void 0,
763
+ "aria-label": e.get(I).format(n.date),
764
+ title: t.dateTooltip?.()?.(n.date) ?? void 0,
765
+ tabindex: i.focused ? 0 : -1,
766
+ disabled: i.disabled || s(),
767
+ onclick: (e) => U(n.date, e),
768
+ onpointerenter: () => q(n.date),
769
+ onpointerleave: () => q(null)
770
+ };
771
+ },
772
+ monthCellProps(e) {
773
+ return {
774
+ type: "button",
775
+ disabled: s(),
776
+ onclick: () => G(e)
777
+ };
778
+ },
779
+ yearCellProps(e) {
780
+ return {
781
+ type: "button",
782
+ disabled: s(),
783
+ onclick: () => K(e)
784
+ };
785
+ },
786
+ presetProps(t) {
787
+ return {
788
+ type: "button",
789
+ disabled: !e.get(A),
790
+ onclick: () => le(t)
791
+ };
792
+ }
793
+ };
794
+ }
795
+ //#endregion
796
+ //#region src/SvCalendar.svelte
797
+ var we = e.from_html("<button> </button>"), Te = e.from_html("<div class=\"sv-cal__presets svelte-md3oew\" role=\"group\"></div>"), Ee = e.from_html("<div class=\"sv-cal__panel-title svelte-md3oew\"> </div>"), De = e.from_html("<span class=\"sv-cal__wk-head svelte-md3oew\" aria-hidden=\"true\">#</span>"), Oe = e.from_html("<span class=\"sv-cal__weekday svelte-md3oew\" role=\"columnheader\"> </span>"), ke = e.from_html("<div class=\"sv-cal__weekdays svelte-md3oew\" role=\"row\"><!> <!></div>"), Ae = e.from_html("<span class=\"sv-cal__wk svelte-md3oew\" aria-hidden=\"true\"> </span>"), je = e.from_html("<span class=\"sv-cal__day sv-cal__day--empty svelte-md3oew\" role=\"gridcell\" aria-hidden=\"true\"></span>"), Me = e.from_html("<span class=\"sv-cal__daybody svelte-md3oew\"><!></span>"), Ne = e.from_html("<button><span class=\"sv-cal__daynum svelte-md3oew\"> </span><!></button>"), Pe = e.from_html("<div class=\"sv-cal__week svelte-md3oew\" role=\"row\"><!> <!></div>"), Fe = e.from_html("<div class=\"sv-cal__panel\"><!> <!> <!></div>"), Ie = e.from_html("<div></div>"), Le = e.from_html("<button> </button>"), Re = e.from_html("<div></div>"), ze = e.from_html("<button> </button>"), Be = e.from_html("<div></div>"), Ve = e.from_html("<button type=\"button\" class=\"sv-cal__foot-btn svelte-md3oew\"> </button>"), He = e.from_html("<div class=\"sv-cal__footer svelte-md3oew\"><button type=\"button\" class=\"sv-cal__foot-btn svelte-md3oew\"> </button> <!></div>"), Ue = e.from_html("<input type=\"hidden\"/>"), We = e.from_html("<div role=\"group\"><!> <div class=\"sv-cal__main svelte-md3oew\"><div class=\"sv-cal__header svelte-md3oew\"><button><svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-md3oew\"><path d=\"M15 18l-6-6 6-6\"></path></svg></button> <button> </button> <button><svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"svelte-md3oew\"><path d=\"M9 18l6-6-6-6\"></path></svg></button></div> <div class=\"sv-cal__view svelte-md3oew\"><!></div> <!></div> <!></div>"), Ge = {
798
+ hash: "svelte-md3oew",
799
+ code: ".sv-cal.svelte-md3oew {--_accent: var(--sg-accent, #2563eb);--_bg: var(--sg-bg, #fff);--_fg: var(--sg-fg, #0f172a);--_muted: var(--sg-muted, #64748b);--_border: var(--sg-border, #e2e8f0);--_hover: var(--sg-row-hover-bg, rgba(37, 99, 235, 0.08));--_radius: var(--sg-radius, 8px);display:inline-flex;gap:10px;padding:10px;width:max-content;background:var(--_bg);color:var(--_fg);border:1px solid var(--_border);border-radius:calc(var(--_radius) + 4px);font-size:13px;user-select:none;}.sv-cal--disabled.svelte-md3oew {opacity:0.55;pointer-events:none;}.sv-cal--invalid.svelte-md3oew {border-color:var(--sg-danger, #dc2626);}.sv-cal__main.svelte-md3oew {display:flex;flex-direction:column;gap:6px;min-width:0;}\n /* Clip so animated content slides in from the edge (not past the border). Day\n focus outlines use outline-offset:-2px, so they stay inside and aren't clipped. */.sv-cal__view.svelte-md3oew {display:block;overflow:hidden;}\n /* Quick-shortcut rail (Today / Last 7 days / ...) shown when `presets` is set. */.sv-cal__presets.svelte-md3oew {display:flex;flex-direction:column;gap:2px;padding-inline-end:10px;border-inline-end:1px solid var(--_border);min-width:118px;align-self:stretch;}.sv-cal__preset.svelte-md3oew {text-align:start;padding:6px 10px;font:inherit;font-size:12px;font-weight:550;background:none;border:0;border-radius:var(--_radius);color:inherit;cursor:pointer;white-space:nowrap;}\n /* Under RTL the prev/next chevron glyphs must point the other way. */.sv-cal[dir='rtl'].svelte-md3oew .sv-cal__nav:where(.svelte-md3oew) svg:where(.svelte-md3oew) {transform:scaleX(-1);}.sv-cal__preset.svelte-md3oew:hover:not(:disabled) {background:var(--_hover);color:var(--_accent);}.sv-cal__preset.svelte-md3oew:disabled {opacity:0.5;cursor:default;}.sv-cal__header.svelte-md3oew {display:flex;align-items:center;gap:4px;}.sv-cal__title.svelte-md3oew {flex:1;text-align:center;font-weight:650;font-size:13.5px;background:none;border:0;color:inherit;cursor:pointer;padding:6px 8px;border-radius:var(--_radius);}.sv-cal__title.svelte-md3oew:hover:not(:disabled) {background:var(--_hover);}.sv-cal__title.svelte-md3oew:disabled {cursor:default;}.sv-cal__nav.svelte-md3oew {display:grid;place-items:center;width:30px;height:30px;background:none;border:0;color:var(--_muted);cursor:pointer;border-radius:var(--_radius);}.sv-cal__nav.svelte-md3oew:hover:not(:disabled) {background:var(--_hover);color:var(--_fg);}.sv-cal__nav.svelte-md3oew:disabled {opacity:0.4;cursor:default;}.sv-cal__panels.svelte-md3oew {display:flex;gap:14px;}.sv-cal__panel-title.svelte-md3oew {text-align:center;font-weight:600;font-size:12.5px;margin-bottom:4px;color:var(--_muted);}.sv-cal__weekdays.svelte-md3oew, .sv-cal__week.svelte-md3oew {display:grid;grid-template-columns:repeat(7, 34px);}.sv-cal__weekdays.svelte-md3oew:has(.sv-cal__wk-head:where(.svelte-md3oew)), .sv-cal__week.svelte-md3oew:has(.sv-cal__wk:where(.svelte-md3oew)) {grid-template-columns:26px repeat(7, 34px);}.sv-cal__weekday.svelte-md3oew, .sv-cal__wk-head.svelte-md3oew {display:grid;place-items:center;height:28px;font-size:11px;font-weight:600;color:var(--_muted);text-transform:uppercase;letter-spacing:0.02em;}.sv-cal__wk.svelte-md3oew {display:grid;place-items:center;height:34px;font-size:10.5px;color:var(--_muted);opacity:0.7;}.sv-cal__day.svelte-md3oew {display:grid;place-items:center;width:34px;height:34px;box-sizing:border-box;background:none;border:0;color:inherit;cursor:pointer;border-radius:var(--_radius);font-size:12.5px;position:relative;}.sv-cal__day--empty.svelte-md3oew {visibility:hidden;}\n /* Hover only NON-selected days with the neutral hover fill; hovering a selected\n day keeps the accent (a bare :hover would swap in the neutral bg while the\n text stays --sg-on-accent -> invisible on themes like shadcn). */.sv-cal__day.svelte-md3oew:hover:not(:disabled):not(.is-selected) {background:var(--_hover);}.sv-cal__day.is-selected.svelte-md3oew:hover:not(:disabled) {background:color-mix(in srgb, var(--_accent) 86%, var(--_fg));}.sv-cal__day.is-outside.svelte-md3oew {color:var(--_muted);opacity:0.55;}.sv-cal__day.is-today.svelte-md3oew {font-weight:750;box-shadow:inset 0 0 0 1px var(--_accent);}.sv-cal__day.is-important.svelte-md3oew::after {content:'';position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--sg-danger, #dc2626);}\n /* Repeat-pattern indicator: a small ring in the top-inline-end corner\n (distinct from the is-important bottom dot). */.sv-cal__day.is-recurring.svelte-md3oew::before {content:'';position:absolute;top:4px;inset-inline-end:4px;width:5px;height:5px;border-radius:50%;pointer-events:none;border:1.5px solid color-mix(in srgb, var(--_accent) 75%, transparent);}.sv-cal.svelte-md3oew:not(.sv-cal--rich) .sv-cal__day.is-selected.is-recurring:where(.svelte-md3oew)::before {border-color:var(--sg-on-accent, #fff);}\n\n /* --- Rich month grid: enabled by a `day` snippet. Cells fill the column width\n and become taller / top-aligned so the snippet content (events, badges) has\n room - turning the picker into an event-calendar surface. --- */.sv-cal--rich.svelte-md3oew .sv-cal__weekdays:where(.svelte-md3oew), .sv-cal--rich.svelte-md3oew .sv-cal__week:where(.svelte-md3oew) {grid-template-columns:repeat(7, minmax(0, 1fr));}.sv-cal--rich.svelte-md3oew .sv-cal__weekdays:where(.svelte-md3oew):has(.sv-cal__wk-head:where(.svelte-md3oew)), .sv-cal--rich.svelte-md3oew .sv-cal__week:where(.svelte-md3oew):has(.sv-cal__wk:where(.svelte-md3oew)) {grid-template-columns:26px repeat(7, minmax(0, 1fr));}.sv-cal--rich.svelte-md3oew .sv-cal__weekday:where(.svelte-md3oew) {justify-items:start;padding-inline-start:6px;}.sv-cal--rich.svelte-md3oew .sv-cal__day:where(.svelte-md3oew) {width:auto;height:auto;min-height:90px;display:flex;flex-direction:column;align-items:stretch;gap:3px;padding:4px 5px 6px;text-align:start;border-radius:8px;}.sv-cal--rich.svelte-md3oew .sv-cal__day.is-today:where(.svelte-md3oew) {box-shadow:none;}.sv-cal--rich.svelte-md3oew .sv-cal__day.is-selected:where(.svelte-md3oew) {background:color-mix(in srgb, var(--_accent) 9%, transparent);color:inherit;}.sv-cal--rich.svelte-md3oew .sv-cal__daynum:where(.svelte-md3oew) {align-self:flex-start;flex:none;width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-size:12.5px;font-weight:600;}.sv-cal--rich.svelte-md3oew .sv-cal__day.is-today:where(.svelte-md3oew) .sv-cal__daynum:where(.svelte-md3oew) {background:var(--_accent);color:var(--sg-on-accent, #fff);}.sv-cal--rich.svelte-md3oew .sv-cal__daybody:where(.svelte-md3oew) {flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;overflow:hidden;}.sv-cal--rich.svelte-md3oew .sv-cal__day.is-important:where(.svelte-md3oew)::after {display:none;}.sv-cal__day.is-preview.svelte-md3oew {background:color-mix(in srgb, var(--_accent) 16%, transparent);border-radius:0;}.sv-cal__day.is-selected.svelte-md3oew {background:var(--_accent);color:var(--sg-on-accent, #fff);font-weight:650;}\n /* Discrete selection (single / many / ...): inset each selected pill so adjacent\n picked days keep a visible gap. Range / week modes stay a connected band. */.sv-cal.svelte-md3oew:not(.sv-cal--band) .sv-cal__day.is-selected:where(.svelte-md3oew) {background-clip:content-box;padding:2px;}.sv-cal__day.is-selected.is-important.svelte-md3oew::after {background:var(--sg-on-accent, #fff);}.sv-cal__day.svelte-md3oew:disabled {color:var(--_muted);opacity:0.35;cursor:default;text-decoration:line-through;}.sv-cal__day.is-focused.svelte-md3oew:focus-visible,\n .sv-cal__day.svelte-md3oew:focus-visible,\n .sv-cal__cell.svelte-md3oew:focus-visible {outline:2px solid var(--sg-focus-ring, var(--_accent));outline-offset:-2px;}.sv-cal__grid-mode.svelte-md3oew {display:grid;grid-template-columns:repeat(3, 1fr);gap:4px;min-width:252px;}.sv-cal__cell.svelte-md3oew {height:44px;display:grid;place-items:center;background:none;border:0;color:inherit;cursor:pointer;border-radius:var(--_radius);font-size:12.5px;}.sv-cal__cell.svelte-md3oew:hover:not(:disabled):not(.is-selected) {background:var(--_hover);}.sv-cal__cell.is-selected.svelte-md3oew:hover:not(:disabled) {background:color-mix(in srgb, var(--_accent) 86%, var(--_fg));}.sv-cal__cell.is-outside.svelte-md3oew {color:var(--_muted);opacity:0.5;}.sv-cal__cell.is-today.svelte-md3oew {box-shadow:inset 0 0 0 1px var(--_accent);font-weight:700;}.sv-cal__cell.is-selected.svelte-md3oew {background:var(--_accent);color:var(--sg-on-accent, #fff);font-weight:650;}.sv-cal__footer.svelte-md3oew {display:flex;justify-content:center;gap:8px;border-top:1px solid var(--_border);padding-top:8px;margin-top:2px;}.sv-cal__foot-btn.svelte-md3oew {padding:5px 12px;font:inherit;font-size:12px;font-weight:600;background:none;border:1px solid var(--_border);border-radius:var(--_radius);color:var(--_accent);cursor:pointer;}.sv-cal__foot-btn.svelte-md3oew:hover:not(:disabled) {background:var(--_hover);}"
800
+ };
801
+ function Ke(n, r) {
802
+ e.push(r, !0), e.append_styles(n, Ge);
803
+ let i = (t) => {
804
+ var n = We();
805
+ let i;
806
+ var a = e.child(n), o = (t) => {
807
+ var n = Te();
808
+ e.each(n, 21, () => r.presets, e.index, (t, n) => {
809
+ var r = we();
810
+ e.attribute_effect(r, (e) => ({
811
+ class: "sv-cal__preset",
812
+ ...e
813
+ }), [() => L.presetProps(e.get(n))], void 0, void 0, "svelte-md3oew");
814
+ var i = e.child(r, !0);
815
+ e.reset(r), e.template_effect(() => e.set_text(i, e.get(n).label)), e.append(t, r);
816
+ }), e.reset(n), e.template_effect(() => e.set_attribute(n, "aria-label", e.get(F).shortcuts)), e.append(t, n);
817
+ };
818
+ e.if(a, (e) => {
819
+ r.presets && r.presets.length && e(o);
820
+ });
821
+ var s = e.sibling(a, 2), c = e.child(s), u = e.child(c);
822
+ e.attribute_effect(u, (e) => ({
823
+ class: "sv-cal__nav",
824
+ ...e
825
+ }), [() => L.navProps(-1)], void 0, void 0, "svelte-md3oew");
826
+ var d = e.sibling(u, 2);
827
+ e.attribute_effect(d, (e) => ({
828
+ class: "sv-cal__title",
829
+ ...e
830
+ }), [() => L.titleProps()], void 0, void 0, "svelte-md3oew");
831
+ var f = e.child(d, !0);
832
+ e.reset(d);
833
+ var p = e.sibling(d, 2);
834
+ e.attribute_effect(p, (e) => ({
835
+ class: "sv-cal__nav",
836
+ ...e
837
+ }), [() => L.navProps(1)], void 0, void 0, "svelte-md3oew"), e.reset(c);
838
+ var m = e.sibling(c, 2), h = e.child(m), y = (t) => {
839
+ var n = Ie();
840
+ e.attribute_effect(n, (e) => ({
841
+ class: "sv-cal__panels",
842
+ ...e
843
+ }), [() => L.gridProps()], void 0, void 0, "svelte-md3oew"), e.each(n, 21, () => L.panels, (e) => e.month.getTime(), (t, n) => {
844
+ var i = Fe(), a = e.child(i), o = (t) => {
845
+ var r = Ee(), i = e.child(r, !0);
846
+ e.reset(r), e.template_effect(() => e.set_text(i, e.get(n).title)), e.append(t, r);
847
+ };
848
+ e.if(a, (e) => {
849
+ _() > 1 && e(o);
850
+ });
851
+ var s = e.sibling(a, 2), c = (t) => {
852
+ var n = ke(), r = e.child(n), i = (t) => {
853
+ var n = De();
854
+ e.append(t, n);
855
+ };
856
+ e.if(r, (e) => {
857
+ g() && e(i);
858
+ });
859
+ var a = e.sibling(r, 2);
860
+ e.each(a, 17, () => L.weekdayHeaders, (e) => e.weekday, (t, n) => {
861
+ var r = Oe(), i = e.child(r, !0);
862
+ e.reset(r), e.template_effect(() => e.set_text(i, e.get(n).label)), e.append(t, r);
863
+ }), e.reset(n), e.append(t, n);
864
+ };
865
+ e.if(s, (e) => {
866
+ v() || e(c);
867
+ });
868
+ var l = e.sibling(s, 2);
869
+ e.each(l, 17, () => e.get(n).matrix, e.index, (t, i) => {
870
+ var a = Pe(), o = e.child(a), s = (t) => {
871
+ var n = Ae(), r = e.child(n, !0);
872
+ e.reset(n), e.template_effect(() => e.set_text(r, e.get(i)[0]?.week)), e.append(t, n);
873
+ };
874
+ e.if(o, (e) => {
875
+ g() && e(s);
876
+ });
877
+ var c = e.sibling(o, 2);
878
+ e.each(c, 17, () => e.get(i), (e) => e.date.getTime(), (t, i) => {
879
+ let a = e.derived(() => L.dayState(e.get(i).date, e.get(n).month));
880
+ var o = e.comment(), s = e.first_child(o), c = (t) => {
881
+ var n = je();
882
+ e.append(t, n);
883
+ }, l = (t) => {
884
+ var o = Ne();
885
+ e.attribute_effect(o, (t) => ({
886
+ class: "sv-cal__day",
887
+ ...t,
888
+ [e.CLASS]: {
889
+ "is-selected": e.get(a).selected,
890
+ "is-today": e.get(a).today,
891
+ "is-outside": e.get(a).outside,
892
+ "is-important": e.get(a).important,
893
+ "is-preview": e.get(a).preview,
894
+ "is-focused": e.get(a).focused,
895
+ "is-recurring": e.get(a).recurring
896
+ }
897
+ }), [() => L.dayProps(e.get(i), e.get(n).month)], void 0, void 0, "svelte-md3oew");
898
+ var s = e.child(o), c = e.child(s, !0);
899
+ e.reset(s);
900
+ var l = e.sibling(s), u = (t) => {
901
+ var n = Me(), o = e.child(n);
902
+ e.snippet(o, () => r.day, () => e.get(i).date, () => e.get(a)), e.reset(n), e.append(t, n);
903
+ };
904
+ e.if(l, (e) => {
905
+ r.day && e(u);
906
+ }), e.reset(o), e.template_effect((t) => e.set_text(c, t), [() => e.get(i).date.getDate()]), e.append(t, o);
907
+ };
908
+ e.if(s, (t) => {
909
+ e.get(a).outside && e.get(I) ? t(c) : t(l, -1);
910
+ }), e.append(t, o);
911
+ }), e.reset(a), e.append(t, a);
912
+ }), e.reset(i), e.append(t, i);
913
+ }), e.reset(n), e.append(t, n);
914
+ }, b = (t) => {
915
+ var n = Re();
916
+ e.attribute_effect(n, (e) => ({
917
+ class: "sv-cal__grid-mode",
918
+ ...e
919
+ }), [() => L.gridProps()], void 0, void 0, "svelte-md3oew"), e.each(n, 21, () => L.yearCells, (e) => e.index, (t, n) => {
920
+ var r = Le();
921
+ e.attribute_effect(r, (t) => ({
922
+ class: "sv-cal__cell",
923
+ ...t,
924
+ [e.CLASS]: {
925
+ "is-today": e.get(n).current,
926
+ "is-selected": e.get(n).selected
927
+ }
928
+ }), [() => L.monthCellProps(e.get(n).index)], void 0, void 0, "svelte-md3oew");
929
+ var i = e.child(r, !0);
930
+ e.reset(r), e.template_effect(() => e.set_text(i, e.get(n).label)), e.append(t, r);
931
+ }), e.reset(n), e.append(t, n);
932
+ }, x = (t) => {
933
+ var n = Be();
934
+ e.attribute_effect(n, (e) => ({
935
+ class: "sv-cal__grid-mode",
936
+ ...e
937
+ }), [() => L.gridProps()], void 0, void 0, "svelte-md3oew"), e.each(n, 21, () => L.decadeCells, (e) => e.year, (t, n) => {
938
+ var r = ze();
939
+ e.attribute_effect(r, (t) => ({
940
+ class: "sv-cal__cell",
941
+ ...t,
942
+ [e.CLASS]: {
943
+ "is-outside": e.get(n).outside,
944
+ "is-today": e.get(n).current,
945
+ "is-selected": e.get(n).selected
946
+ }
947
+ }), [() => L.yearCellProps(e.get(n).year)], void 0, void 0, "svelte-md3oew");
948
+ var i = e.child(r, !0);
949
+ e.reset(r), e.template_effect(() => e.set_text(i, e.get(n).year)), e.append(t, r);
950
+ }), e.reset(n), e.append(t, n);
951
+ };
952
+ e.if(h, (e) => {
953
+ L.mode === "month" ? e(y) : L.mode === "year" ? e(b, 1) : e(x, -1);
954
+ }), e.reset(m), e.bind_this(m, (t) => e.set(z, t), () => e.get(z));
955
+ var w = e.sibling(m, 2), T = (t) => {
956
+ var n = He(), r = e.child(n), i = e.child(r, !0);
957
+ e.reset(r);
958
+ var a = e.sibling(r, 2), o = (t) => {
959
+ var n = Ve(), r = e.child(n, !0);
960
+ e.reset(n), e.template_effect(() => {
961
+ n.disabled = C(), e.set_text(r, e.get(F).clear);
962
+ }), e.delegated("click", n, function(...e) {
963
+ L.clearSelection?.apply(this, e);
964
+ }), e.append(t, n);
965
+ };
966
+ e.if(a, (e) => {
967
+ L.canClear && e(o);
968
+ }), e.reset(n), e.template_effect(() => {
969
+ r.disabled = C(), e.set_text(i, e.get(F).today);
970
+ }), e.delegated("click", r, function(...e) {
971
+ L.goToday?.apply(this, e);
972
+ }), e.append(t, n);
973
+ };
974
+ e.if(w, (e) => {
975
+ S() && e(T);
976
+ }), e.reset(s), e.action(s, (e) => te?.(e));
977
+ var E = e.sibling(s, 2), D = (t) => {
978
+ var n = Ue();
979
+ e.remove_input_defaults(n), e.template_effect((t) => {
980
+ e.set_attribute(n, "name", r.name), e.set_value(n, t);
981
+ }, [() => L.selectedDates.map((e) => e.toISOString()).join(",")]), e.append(t, n);
982
+ };
983
+ e.if(E, (e) => {
984
+ r.name && e(D);
985
+ }), e.reset(n), e.template_effect(() => {
986
+ i = e.set_class(n, 1, "sv-cal svelte-md3oew", null, i, {
987
+ "sv-cal--disabled": C(),
988
+ "sv-cal--invalid": j(),
989
+ "sv-cal--with-presets": r.presets && r.presets.length,
990
+ "sv-cal--band": l() === "range" || l() === "week",
991
+ "sv-cal--rich": !!r.day
992
+ }), e.set_attribute(n, "id", e.get(N)), e.set_attribute(n, "aria-label", r.label ?? e.get(F).label), e.set_attribute(n, "aria-disabled", C()), e.set_attribute(n, "dir", e.get(ee)), e.set_text(f, L.title), n.dir = n.dir;
993
+ }), e.append(t, n);
994
+ }, o = {
995
+ label: "Calendar",
996
+ shortcuts: "Shortcuts",
997
+ today: "Today",
998
+ clear: "Clear",
999
+ prev: "Previous",
1000
+ next: "Next"
1001
+ }, c = e.prop(r, "value", 3, null), l = e.prop(r, "selectionMode", 3, "one"), u = e.prop(r, "min", 3, null), d = e.prop(r, "max", 3, null), f = e.prop(r, "restrictedDates", 3, null), p = e.prop(r, "importantDates", 3, null), m = e.prop(r, "firstDayOfWeek", 3, 0), h = e.prop(r, "weeks", 3, 6), g = e.prop(r, "weekNumbers", 3, !1), _ = e.prop(r, "months", 3, 1), v = e.prop(r, "hideDayNames", 3, !1), y = e.prop(r, "hideOtherMonthDays", 3, !1), b = e.prop(r, "dayNameFormat", 3, "short"), x = e.prop(r, "monthNameFormat", 3, "long"), S = e.prop(r, "footer", 3, !1), C = e.prop(r, "disabled", 3, !1), w = e.prop(r, "readonly", 3, !1), T = e.prop(r, "locale", 19, () => typeof navigator < "u" ? navigator.language : "en-US"), E = e.prop(r, "displayMode", 3, "month"), D = e.prop(r, "animate", 3, !1), O = e.prop(r, "wheelNavigation", 3, !1), k = e.prop(r, "recurrence", 3, null), A = e.prop(r, "required", 3, !1), j = e.prop(r, "invalid", 3, !1), M = a("sv-cal"), N = e.derived(() => r.id ?? M), P = e.derived(() => !!(r.label || r.hint || r.error)), F = e.derived(() => s(o, r.messages)), ee = e.derived(() => r.dir === "ltr" || r.dir === "rtl" ? r.dir : void 0), I = e.derived(() => y() || _() > 1), L = Ce({
1002
+ value: () => c(),
1003
+ onChange: (e) => r.onChange?.(e),
1004
+ onNavigate: (e, t) => r.onNavigate?.(e, t),
1005
+ selectionMode: () => l(),
1006
+ min: () => u(),
1007
+ max: () => d(),
1008
+ restrictedDates: () => f(),
1009
+ importantDates: () => p(),
1010
+ firstDayOfWeek: () => m(),
1011
+ weeks: () => h(),
1012
+ months: () => _(),
1013
+ displayMode: () => E(),
1014
+ disabled: () => C(),
1015
+ readonly: () => w(),
1016
+ locale: () => T(),
1017
+ dayNameFormat: () => b(),
1018
+ monthNameFormat: () => x(),
1019
+ dateTooltip: () => r.dateTooltip,
1020
+ recurrence: () => k()
1021
+ }), R = e.derived(() => D() === !0 ? "slide" : D() || "none"), z = e.state(void 0), B = !1;
1022
+ function V() {
1023
+ if (e.get(R) === "none" || !e.get(z) || typeof e.get(z).animate != "function") return;
1024
+ let t = e.get(R) === "slide", n = L.navDir, r = t ? n === "next" ? {
1025
+ transform: "translateX(34px)",
1026
+ opacity: 0
1027
+ } : n === "prev" ? {
1028
+ transform: "translateX(-34px)",
1029
+ opacity: 0
1030
+ } : n === "drillDown" ? {
1031
+ transform: "scale(0.85)",
1032
+ opacity: 0
1033
+ } : n === "drillUp" ? {
1034
+ transform: "scale(1.14)",
1035
+ opacity: 0
1036
+ } : { opacity: 0 } : {
1037
+ opacity: 0,
1038
+ transform: "scale(0.98)"
1039
+ };
1040
+ e.get(z).animate([r, {
1041
+ transform: "none",
1042
+ opacity: 1
1043
+ }], {
1044
+ duration: t && (n === "next" || n === "prev") ? 300 : 220,
1045
+ easing: "cubic-bezier(0.16, 1, 0.3, 1)"
1046
+ });
1047
+ }
1048
+ e.user_effect(() => {
1049
+ if (L.navToken, !B) {
1050
+ B = !0;
1051
+ return;
1052
+ }
1053
+ t(V);
1054
+ });
1055
+ function te(e) {
1056
+ let t = (e) => {
1057
+ !O() || C() || (e.preventDefault(), L.step(e.deltaY > 0 || e.deltaX > 0 ? 1 : -1));
1058
+ };
1059
+ return e.addEventListener("wheel", t, { passive: !1 }), { destroy: () => e.removeEventListener("wheel", t) };
1060
+ }
1061
+ var ne = e.comment(), re = e.first_child(ne), ie = (t) => {
1062
+ J(t, {
1063
+ get id() {
1064
+ return e.get(N);
1065
+ },
1066
+ get label() {
1067
+ return r.label;
1068
+ },
1069
+ get hint() {
1070
+ return r.hint;
1071
+ },
1072
+ get error() {
1073
+ return r.error;
1074
+ },
1075
+ get required() {
1076
+ return A();
1077
+ },
1078
+ get dir() {
1079
+ return r.dir;
1080
+ },
1081
+ children: (e, t) => {
1082
+ i(e);
1083
+ },
1084
+ $$slots: { default: !0 }
1085
+ });
1086
+ }, H = (e) => {
1087
+ i(e);
1088
+ };
1089
+ e.if(re, (t) => {
1090
+ e.get(P) ? t(ie) : t(H, -1);
1091
+ }), e.append(n, ne), e.pop();
1092
+ }
1093
+ e.delegate(["click"]);
1094
+ //#endregion
1095
+ //#region src/datetime/date-format.ts
1096
+ var qe = [
1097
+ "dddd",
1098
+ "ddd",
1099
+ "dd",
1100
+ "d",
1101
+ "MMMM",
1102
+ "MMM",
1103
+ "MM",
1104
+ "M",
1105
+ "yyyy",
1106
+ "yy",
1107
+ "HH",
1108
+ "H",
1109
+ "hh",
1110
+ "h",
1111
+ "mm",
1112
+ "m",
1113
+ "ss",
1114
+ "s",
1115
+ "fff",
1116
+ "ff",
1117
+ "f",
1118
+ "tt",
1119
+ "t"
1120
+ ];
1121
+ function Je(e) {
1122
+ let t = [], n = 0;
1123
+ for (; n < e.length;) {
1124
+ let r = e[n];
1125
+ if (r === "\\" && n + 1 < e.length) {
1126
+ t.push({ literal: e[n + 1] }), n += 2;
1127
+ continue;
1128
+ }
1129
+ if (r === "'") {
1130
+ let r = n + 1, i = "";
1131
+ for (; r < e.length && e[r] !== "'";) i += e[r], r++;
1132
+ t.push({ literal: i }), n = r + 1;
1133
+ continue;
1134
+ }
1135
+ let i = null;
1136
+ for (let t of qe) if (e.startsWith(t, n)) {
1137
+ i = t;
1138
+ break;
1139
+ }
1140
+ i ? (t.push({ token: i }), n += i.length) : (t.push({ literal: r }), n += 1);
1141
+ }
1142
+ return t;
1143
+ }
1144
+ var Q = (e, t) => String(Math.abs(e)).padStart(t, "0"), Ye = /* @__PURE__ */ new Map(), Xe = /* @__PURE__ */ new Map(), Ze = /* @__PURE__ */ new Map();
1145
+ function Qe(e) {
1146
+ let t = Ye.get(e);
1147
+ if (!t) {
1148
+ let n = new Intl.DateTimeFormat(e, { month: "long" }), r = new Intl.DateTimeFormat(e, { month: "short" });
1149
+ t = {
1150
+ long: Array.from({ length: 12 }, (e, t) => n.format(new Date(2021, t, 1))),
1151
+ short: Array.from({ length: 12 }, (e, t) => r.format(new Date(2021, t, 1)))
1152
+ }, Ye.set(e, t);
1153
+ }
1154
+ return t;
1155
+ }
1156
+ function $e(e) {
1157
+ let t = Xe.get(e);
1158
+ if (!t) {
1159
+ let n = new Intl.DateTimeFormat(e, { weekday: "long" }), r = new Intl.DateTimeFormat(e, { weekday: "short" });
1160
+ t = {
1161
+ long: Array.from({ length: 7 }, (e, t) => n.format(new Date(2021, 7, 1 + t))),
1162
+ short: Array.from({ length: 7 }, (e, t) => r.format(new Date(2021, 7, 1 + t)))
1163
+ }, Xe.set(e, t);
1164
+ }
1165
+ return t;
1166
+ }
1167
+ function $(e) {
1168
+ let t = Ze.get(e);
1169
+ if (!t) {
1170
+ let n = new Intl.DateTimeFormat(e, {
1171
+ hour: "numeric",
1172
+ hour12: !0
1173
+ });
1174
+ t = {
1175
+ am: n.formatToParts(new Date(2021, 0, 1, 9)).find((e) => e.type === "dayPeriod")?.value ?? "AM",
1176
+ pm: n.formatToParts(new Date(2021, 0, 1, 21)).find((e) => e.type === "dayPeriod")?.value ?? "PM"
1177
+ }, Ze.set(e, t);
1178
+ }
1179
+ return t;
1180
+ }
1181
+ function et(e, t, n = "en-US") {
1182
+ let r = Je(t), i = e.getHours(), a = i % 12 == 0 ? 12 : i % 12, o = e.getMilliseconds(), s = "";
1183
+ for (let t of r) {
1184
+ if ("literal" in t) {
1185
+ s += t.literal;
1186
+ continue;
1187
+ }
1188
+ switch (t.token) {
1189
+ case "d":
1190
+ s += String(e.getDate());
1191
+ break;
1192
+ case "dd":
1193
+ s += Q(e.getDate(), 2);
1194
+ break;
1195
+ case "ddd":
1196
+ s += $e(n).short[e.getDay()];
1197
+ break;
1198
+ case "dddd":
1199
+ s += $e(n).long[e.getDay()];
1200
+ break;
1201
+ case "M":
1202
+ s += String(e.getMonth() + 1);
1203
+ break;
1204
+ case "MM":
1205
+ s += Q(e.getMonth() + 1, 2);
1206
+ break;
1207
+ case "MMM":
1208
+ s += Qe(n).short[e.getMonth()];
1209
+ break;
1210
+ case "MMMM":
1211
+ s += Qe(n).long[e.getMonth()];
1212
+ break;
1213
+ case "yy":
1214
+ s += Q(e.getFullYear() % 100, 2);
1215
+ break;
1216
+ case "yyyy":
1217
+ s += Q(e.getFullYear(), 4);
1218
+ break;
1219
+ case "H":
1220
+ s += String(i);
1221
+ break;
1222
+ case "HH":
1223
+ s += Q(i, 2);
1224
+ break;
1225
+ case "h":
1226
+ s += String(a);
1227
+ break;
1228
+ case "hh":
1229
+ s += Q(a, 2);
1230
+ break;
1231
+ case "m":
1232
+ s += String(e.getMinutes());
1233
+ break;
1234
+ case "mm":
1235
+ s += Q(e.getMinutes(), 2);
1236
+ break;
1237
+ case "s":
1238
+ s += String(e.getSeconds());
1239
+ break;
1240
+ case "ss":
1241
+ s += Q(e.getSeconds(), 2);
1242
+ break;
1243
+ case "f":
1244
+ s += Q(o, 3).slice(0, 1);
1245
+ break;
1246
+ case "ff":
1247
+ s += Q(o, 3).slice(0, 2);
1248
+ break;
1249
+ case "fff":
1250
+ s += Q(o, 3);
1251
+ break;
1252
+ case "t":
1253
+ s += (i < 12 ? $(n).am : $(n).pm).slice(0, 1);
1254
+ break;
1255
+ case "tt":
1256
+ s += i < 12 ? $(n).am : $(n).pm;
1257
+ break;
1258
+ default: s += t.token;
1259
+ }
1260
+ }
1261
+ return s;
1262
+ }
1263
+ var tt = {
1264
+ d: 2,
1265
+ dd: 2,
1266
+ M: 2,
1267
+ MM: 2,
1268
+ yy: 2,
1269
+ yyyy: 4,
1270
+ H: 2,
1271
+ HH: 2,
1272
+ h: 2,
1273
+ hh: 2,
1274
+ m: 2,
1275
+ mm: 2,
1276
+ s: 2,
1277
+ ss: 2,
1278
+ f: 1,
1279
+ ff: 2,
1280
+ fff: 3
1281
+ };
1282
+ function nt(e, t, n) {
1283
+ let r = 0;
1284
+ for (; r < n && t + r < e.length && e[t + r] >= "0" && e[t + r] <= "9";) r++;
1285
+ return r === 0 ? null : {
1286
+ value: parseInt(e.slice(t, t + r), 10),
1287
+ len: r
1288
+ };
1289
+ }
1290
+ function rt(e, t, n) {
1291
+ let r = n.map((e, t) => ({
1292
+ name: e,
1293
+ index: t
1294
+ })).sort((e, t) => t.name.length - e.name.length), i = e.slice(t).toLowerCase();
1295
+ for (let { name: e, index: t } of r) if (e && i.startsWith(e.toLowerCase())) return {
1296
+ index: t,
1297
+ len: e.length
1298
+ };
1299
+ return null;
1300
+ }
1301
+ function it(e, t, n = "en-US", r = 2029, i) {
1302
+ let a = Je(t), o = {}, s = 0, c = e;
1303
+ for (let e of a) {
1304
+ if ("literal" in e) {
1305
+ for (let t of e.literal) {
1306
+ if (t === " ") {
1307
+ for (; c[s] === " ";) s++;
1308
+ continue;
1309
+ }
1310
+ if (c[s] !== t) return null;
1311
+ s++;
1312
+ }
1313
+ continue;
1314
+ }
1315
+ let t = e.token;
1316
+ switch (t) {
1317
+ case "ddd":
1318
+ case "dddd": {
1319
+ let e = rt(c, s, $e(n)[t === "ddd" ? "short" : "long"]);
1320
+ if (!e) return null;
1321
+ s += e.len;
1322
+ break;
1323
+ }
1324
+ case "MMM":
1325
+ case "MMMM": {
1326
+ let e = rt(c, s, Qe(n)[t === "MMM" ? "short" : "long"]);
1327
+ if (!e) return null;
1328
+ o.month = e.index, s += e.len;
1329
+ break;
1330
+ }
1331
+ case "t":
1332
+ case "tt": {
1333
+ let e = $(n), t = c.slice(s).toLowerCase();
1334
+ if (t.startsWith(e.pm.toLowerCase())) o.isPm = !0, s += e.pm.length;
1335
+ else if (t.startsWith(e.am.toLowerCase())) o.isPm = !1, s += e.am.length;
1336
+ else if (t.startsWith(e.pm.slice(0, 1).toLowerCase())) o.isPm = !0, s += 1;
1337
+ else if (t.startsWith(e.am.slice(0, 1).toLowerCase())) o.isPm = !1, s += 1;
1338
+ else return null;
1339
+ break;
1340
+ }
1341
+ default: {
1342
+ let e = nt(c, s, tt[t] ?? 2);
1343
+ if (!e) return null;
1344
+ s += e.len;
1345
+ let n = e.value;
1346
+ switch (t) {
1347
+ case "d":
1348
+ case "dd":
1349
+ o.day = n;
1350
+ break;
1351
+ case "M":
1352
+ case "MM":
1353
+ o.month = n - 1;
1354
+ break;
1355
+ case "yy":
1356
+ o.year = n <= r % 100 ? 2e3 + n : 1900 + n;
1357
+ break;
1358
+ case "yyyy":
1359
+ o.year = n;
1360
+ break;
1361
+ case "H":
1362
+ case "HH":
1363
+ o.hour = n;
1364
+ break;
1365
+ case "h":
1366
+ case "hh":
1367
+ o.hour12 = n;
1368
+ break;
1369
+ case "m":
1370
+ case "mm":
1371
+ o.minute = n;
1372
+ break;
1373
+ case "s":
1374
+ case "ss":
1375
+ o.second = n;
1376
+ break;
1377
+ case "f":
1378
+ o.ms = n * 100;
1379
+ break;
1380
+ case "ff":
1381
+ o.ms = n * 10;
1382
+ break;
1383
+ case "fff": o.ms = n;
1384
+ }
1385
+ }
1386
+ }
1387
+ }
1388
+ if (s !== c.length && c.slice(s).trim() !== "") return null;
1389
+ let l = i ?? new Date(1970, 0, 1), u = o.hour;
1390
+ u == null && o.hour12 != null && (u = o.hour12 % 12, o.isPm && (u += 12));
1391
+ let d = o.year ?? l.getFullYear(), f = o.month ?? l.getMonth(), p = o.day ?? l.getDate(), m = new Date(d, f, p, u ?? l.getHours(), o.minute ?? l.getMinutes(), o.second ?? l.getSeconds(), o.ms ?? l.getMilliseconds());
1392
+ return o.day != null && m.getDate() !== p || o.month != null && m.getMonth() !== f || isNaN(m.getTime()) ? null : m;
1393
+ }
1394
+ //#endregion
1395
+ export { u as A, b as C, C as D, x as E, o as F, n as I, r as L, c as M, w as N, E as O, T as P, a as R, y as S, m as T, B as _, Ce as a, _ as b, be as c, Y as d, he as f, J as g, me as h, Ke as i, p as j, l as k, _e as l, Z as m, it as n, Se as o, X as p, Je as r, ye as s, et as t, ve as u, F as v, S as w, v as x, P as y, s as z };