@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
@@ -1,2206 +0,0 @@
1
- import { t as e } from "./rolldown-runtime-Dy4uBu1J.js";
2
- import { i as t, n, r } from "./popover-P-9P2YYn.js";
3
- import * as i from "svelte/internal/client";
4
- import "svelte/internal/disclose-version";
5
- import { untrack as a } from "svelte";
6
- //#region src/editor-contract.ts
7
- var o = (e) => e ? `${e}__error` : void 0, s = (e) => e ? `${e}__hint` : void 0, c = 0, l = (e = "sv-ed") => `${e}-${c++}`;
8
- function u(e) {
9
- let t = [e.error ? o(e.id) : void 0, e.hint ? s(e.id) : void 0].filter(Boolean);
10
- return {
11
- "aria-invalid": e.invalid ? "true" : void 0,
12
- "aria-required": e.required ? "true" : void 0,
13
- "aria-describedby": t.length ? t.join(" ") : void 0,
14
- "aria-label": e.ariaLabel
15
- };
16
- }
17
- function d(e, t) {
18
- if (!t) return e;
19
- let n = { ...e };
20
- for (let e in t) {
21
- let r = t[e];
22
- r != null && r !== "" && (n[e] = r);
23
- }
24
- return n;
25
- }
26
- //#endregion
27
- //#region src/datetime/date-core.ts
28
- function f(e) {
29
- if (e == null) return null;
30
- let t = e instanceof Date ? new Date(e.getTime()) : new Date(e);
31
- return isNaN(t.getTime()) ? null : t;
32
- }
33
- function p(e) {
34
- return new Date(e.getFullYear(), e.getMonth(), e.getDate());
35
- }
36
- function m(e) {
37
- return new Date(e.getFullYear(), e.getMonth(), 1);
38
- }
39
- function h(e) {
40
- return new Date(e.getFullYear(), e.getMonth() + 1, 0);
41
- }
42
- function g(e) {
43
- return h(e).getDate();
44
- }
45
- function _(e, t = 0) {
46
- let n = p(e), r = (n.getDay() - t + 7) % 7;
47
- return n.setDate(n.getDate() - r), n;
48
- }
49
- function v(e, t) {
50
- return !e || !t ? !1 : e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
51
- }
52
- function y(e, t) {
53
- return !e || !t ? !1 : e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth();
54
- }
55
- function b(e, t) {
56
- let n = p(e).getTime(), r = p(t).getTime();
57
- return n < r ? -1 : +(n > r);
58
- }
59
- function x(e, t) {
60
- let n = new Date(e.getTime());
61
- return n.setDate(n.getDate() + t), n;
62
- }
63
- function S(e, t) {
64
- let n = e.getDate(), r = new Date(e.getFullYear(), e.getMonth() + t, 1, e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds());
65
- return r.setDate(Math.min(n, g(r))), r;
66
- }
67
- function C(e, t) {
68
- return S(e, t * 12);
69
- }
70
- function w(e, t, n) {
71
- return t && e.getTime() < t.getTime() ? new Date(t.getTime()) : n && e.getTime() > n.getTime() ? new Date(n.getTime()) : e;
72
- }
73
- function T(e) {
74
- let t = p(e), n = (t.getDay() + 6) % 7;
75
- t.setDate(t.getDate() - n + 3);
76
- let r = new Date(t.getFullYear(), 0, 4), i = (r.getDay() + 6) % 7;
77
- r.setDate(r.getDate() - i + 3);
78
- let a = t.getTime() - r.getTime();
79
- return 1 + Math.round(a / 6048e5);
80
- }
81
- function E(e) {
82
- let t = Math.floor(e / 10) * 10;
83
- return {
84
- start: t,
85
- end: t + 9
86
- };
87
- }
88
- function D(e, t = 0, n = 6) {
89
- let r = m(e), i = _(r, t), a = [], o = i;
90
- for (let e = 0; e < n; e++) {
91
- let e = [], t = T(o);
92
- for (let n = 0; n < 7; n++) e.push({
93
- date: o,
94
- inMonth: o.getMonth() === r.getMonth() && o.getFullYear() === r.getFullYear(),
95
- week: t
96
- }), o = x(o, 1);
97
- a.push(e);
98
- }
99
- return a;
100
- }
101
- function O(e = 0) {
102
- return Array.from({ length: 7 }, (t, n) => (e + n) % 7);
103
- }
104
- function k(e, t) {
105
- return new Date(e.getFullYear(), e.getMonth(), e.getDate(), t.getHours(), t.getMinutes(), t.getSeconds(), t.getMilliseconds());
106
- }
107
- function A(e, t) {
108
- let n = Math.max(1, Math.floor(t));
109
- return Math.floor(e / n) * n;
110
- }
111
- //#endregion
112
- //#region src/recurrence.ts
113
- var j = 864e5, M = (e) => Math.round(p(e).getTime() / j), N = (e) => new Date(e.getFullYear(), e.getMonth() + 1, 0).getDate();
114
- function P(e, t) {
115
- return t === -1 ? e.getDate() + 7 > N(e) : Math.floor((e.getDate() - 1) / 7) + 1 === t;
116
- }
117
- function F(e, t) {
118
- let n = t.count && t.count >= 1 && t.from != null ? L(t) : t, r = p(e), i = n.from == null ? null : p(f(n.from) ?? r), a = n.until == null ? null : p(f(n.until) ?? r);
119
- if (i && r < i || a && r > a) return !1;
120
- let o = Math.max(1, Math.floor(n.interval ?? 1));
121
- switch (n.freq) {
122
- case "daily": return !i || (M(r) - M(i)) % o === 0;
123
- case "weekly": {
124
- let e = n.weekdays && n.weekdays.length ? n.weekdays : i ? [i.getDay()] : null;
125
- return !(!e || !e.includes(r.getDay()) || o > 1 && i && Math.round((_(r, 0).getTime() - _(i, 0).getTime()) / (j * 7)) % o !== 0);
126
- }
127
- case "monthly": return I(r, n) ? !i || ((r.getFullYear() - i.getFullYear()) * 12 + (r.getMonth() - i.getMonth())) % o === 0 : !1;
128
- case "yearly": return n.month != null && r.getMonth() !== n.month || !I(r, n) ? !1 : i ? (r.getFullYear() - i.getFullYear()) % o === 0 : n.month != null || n.day != null || n.weekOfMonth != null;
129
- }
130
- }
131
- function I(e, t) {
132
- if (t.weekOfMonth != null && t.weekdays && t.weekdays.length) return t.weekdays.includes(e.getDay()) && P(e, t.weekOfMonth);
133
- let n = t.from == null ? null : (f(t.from) ?? e).getDate(), r = t.day ?? n;
134
- if (r == null) return !1;
135
- let i = r < 0 ? N(e) + r + 1 : r;
136
- return e.getDate() === i;
137
- }
138
- function L(e) {
139
- let t = f(e.from);
140
- if (!t) return {
141
- ...e,
142
- count: void 0
143
- };
144
- let n = {
145
- ...e,
146
- count: void 0
147
- }, r = p(t), i = 0, a = r, o = 0;
148
- for (; o++ < 48e3 && !(F(r, n) && (i++, a = r, i >= e.count));) r = new Date(r.getFullYear(), r.getMonth(), r.getDate() + 1);
149
- let s = a, c = e.until == null ? null : p(f(e.until) ?? s), l = c && c < s ? c : s;
150
- return {
151
- ...n,
152
- until: l
153
- };
154
- }
155
- function R(e, t) {
156
- return t ? (Array.isArray(t) ? t : [t]).some((t) => F(e, t)) : !1;
157
- }
158
- function z(e, t, n) {
159
- if (!e) return [];
160
- let r = (Array.isArray(e) ? e : [e]).map((e) => e.count && e.count >= 1 && e.from != null ? L(e) : e), i = [], a = p(n), o = p(t), s = 0;
161
- for (; o <= a && s++ < 4e3;) R(o, r) && i.push(o), o = new Date(o.getFullYear(), o.getMonth(), o.getDate() + 1);
162
- return i;
163
- }
164
- var B = [
165
- "Sun",
166
- "Mon",
167
- "Tue",
168
- "Wed",
169
- "Thu",
170
- "Fri",
171
- "Sat"
172
- ], V = [
173
- "Jan",
174
- "Feb",
175
- "Mar",
176
- "Apr",
177
- "May",
178
- "Jun",
179
- "Jul",
180
- "Aug",
181
- "Sep",
182
- "Oct",
183
- "Nov",
184
- "Dec"
185
- ], H = {
186
- 1: "first",
187
- 2: "second",
188
- 3: "third",
189
- 4: "fourth",
190
- 5: "fifth",
191
- [-1]: "last"
192
- };
193
- function U(e, t, n) {
194
- let r = e.weekdays?.[0];
195
- 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}`;
196
- }
197
- function W(e, t) {
198
- let n = Math.max(1, Math.floor(e.interval ?? 1)), r = "";
199
- switch (e.freq) {
200
- case "daily":
201
- r = n === 1 ? "Daily" : `Every ${n} days`;
202
- break;
203
- case "weekly": {
204
- r = n === 1 ? "Weekly" : `Every ${n} weeks`;
205
- let i = e.weekdays && e.weekdays.length ? [...e.weekdays].sort((e, t) => e - t) : [];
206
- if (i.length) {
207
- let e = i.length === 5 && [
208
- 1,
209
- 2,
210
- 3,
211
- 4,
212
- 5
213
- ].every((e) => i.includes(e)), n = i.length === 2 && i.includes(0) && i.includes(6);
214
- r += e ? " on weekdays" : n ? " on weekends" : ` on ${i.map((e) => t.weekdays[e]).join(", ")}`;
215
- }
216
- break;
217
- }
218
- case "monthly": {
219
- r = n === 1 ? "Monthly" : `Every ${n} months`;
220
- let i = U(e, t.weekdays, t.ordinals);
221
- i && (r += ` on ${i}`);
222
- break;
223
- }
224
- case "yearly": {
225
- r = n === 1 ? "Yearly" : `Every ${n} years`;
226
- let i = U(e, t.weekdays, t.ordinals);
227
- 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]}`;
228
- break;
229
- }
230
- }
231
- if (e.count && e.count >= 1) r += `, ${e.count} time${e.count === 1 ? "" : "s"}`;
232
- else if (e.until) {
233
- let n = f(e.until);
234
- n && (r += ` until ${t.months[n.getMonth()]} ${n.getDate()}, ${n.getFullYear()}`);
235
- }
236
- return r;
237
- }
238
- function ee(e, t) {
239
- let n = {
240
- weekdays: t?.weekdays ?? B,
241
- months: t?.months ?? V,
242
- ordinals: t?.ordinals ?? H,
243
- never: t?.never ?? ""
244
- };
245
- if (!e) return n.never;
246
- let r = (Array.isArray(e) ? e : [e]).filter((e) => e && e.freq);
247
- return r.length ? r.map((e) => W(e, n)).join("; ") : n.never;
248
- }
249
- //#endregion
250
- //#region src/SvField.svelte
251
- var te = i.from_html("<span class=\"sv-field__req svelte-1uhr4tm\" aria-hidden=\"true\">*</span>"), G = i.from_html("<label class=\"sv-field__label svelte-1uhr4tm\"> <!></label>"), K = i.from_html("<span class=\"sv-field__spinner svelte-1uhr4tm\" role=\"status\" aria-label=\"Loading\"></span>"), q = i.from_html("<span class=\"sv-field__labelrow svelte-1uhr4tm\"><!> <!></span>"), ne = i.from_html("<span class=\"sv-field__req svelte-1uhr4tm\" aria-hidden=\"true\">*</span>"), re = i.from_html("<label class=\"sv-field__float-label svelte-1uhr4tm\"> <!></label>"), ie = i.from_html("<span class=\"sv-field__adorn sv-field__adorn--lead svelte-1uhr4tm\"><!></span>"), ae = i.from_html("<span class=\"sv-field__affix sv-field__affix--pre svelte-1uhr4tm\"> </span>"), oe = i.from_html("<span class=\"sv-field__affix sv-field__affix--suf svelte-1uhr4tm\"> </span>"), se = i.from_html("<span class=\"sv-field__adorn sv-field__adorn--trail svelte-1uhr4tm\"><!></span>"), ce = i.from_html("<span class=\"sv-field__action-txt svelte-1uhr4tm\"> </span>"), le = i.from_html("<button class=\"sv-field__action svelte-1uhr4tm\" type=\"button\" tabindex=\"-1\"><!></button>"), ue = i.from_html("<button class=\"sv-field__clear svelte-1uhr4tm\" type=\"button\" tabindex=\"-1\">&times;</button>"), de = i.from_html("<div><!> <!> <!> <span class=\"sv-field__slot svelte-1uhr4tm\"><!></span> <!> <!> <!> <!></div>"), fe = i.from_html("<span class=\"sv-field__error svelte-1uhr4tm\" role=\"alert\"> </span>"), pe = i.from_html("<span class=\"sv-field__hint svelte-1uhr4tm\"> </span>"), me = i.from_html("<div><!> <!> <!></div>"), he = {
252
- hash: "svelte-1uhr4tm",
253
- 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;}"
254
- };
255
- function ge(e, t) {
256
- i.push(t, !0), i.append_styles(e, he);
257
- let n = i.prop(t, "required", 3, !1), r = i.prop(t, "block", 3, !1), a = i.prop(t, "loading", 3, !1), c = i.prop(t, "frame", 3, !1), l = i.prop(t, "invalid", 3, !1), u = i.prop(t, "size", 3, "md"), d = i.prop(t, "disabled", 3, !1), f = i.prop(t, "readonly", 3, !1), p = i.prop(t, "clearable", 3, !1), m = i.prop(t, "showClear", 3, !1), h = i.prop(t, "clearLabel", 3, "Clear"), g = i.prop(t, "labelMode", 3, "static"), _ = i.prop(t, "filled", 3, !1), v = i.derived(() => t.width == null ? void 0 : typeof t.width == "number" ? `${t.width}px` : t.width), y = i.derived(() => g() === "floating" && c() && !!t.label), b = i.derived(() => t.dir === "ltr" || t.dir === "rtl" ? t.dir : void 0);
258
- var x = me();
259
- let S;
260
- var C = i.child(x), w = (e) => {
261
- var r = q(), o = i.child(r), s = (e) => {
262
- var r = G(), a = i.child(r, !0), o = i.sibling(a), s = (e) => {
263
- var t = te();
264
- i.append(e, t);
265
- };
266
- i.if(o, (e) => {
267
- n() && e(s);
268
- }), i.reset(r), i.template_effect(() => {
269
- i.set_attribute(r, "for", t.id), i.set_text(a, t.label);
270
- }), i.append(e, r);
271
- };
272
- i.if(o, (e) => {
273
- t.label && !i.get(y) && e(s);
274
- });
275
- var c = i.sibling(o, 2), l = (e) => {
276
- var t = K();
277
- i.append(e, t);
278
- };
279
- i.if(c, (e) => {
280
- a() && e(l);
281
- }), i.reset(r), i.append(e, r);
282
- };
283
- i.if(C, (e) => {
284
- (t.label && !i.get(y) || a()) && e(w);
285
- });
286
- var T = i.sibling(C, 2), E = (e) => {
287
- var a = de();
288
- let o, s;
289
- var c = i.child(a), g = (e) => {
290
- var r = re(), a = i.child(r, !0), o = i.sibling(a), s = (e) => {
291
- var t = ne();
292
- i.append(e, t);
293
- };
294
- i.if(o, (e) => {
295
- n() && e(s);
296
- }), i.reset(r), i.template_effect(() => {
297
- i.set_attribute(r, "for", t.id), i.set_text(a, t.label);
298
- }), i.append(e, r);
299
- };
300
- i.if(c, (e) => {
301
- i.get(y) && e(g);
302
- });
303
- var b = i.sibling(c, 2), x = (e) => {
304
- var n = ie(), r = i.child(n);
305
- i.snippet(r, () => t.leading), i.reset(n), i.append(e, n);
306
- };
307
- i.if(b, (e) => {
308
- t.leading && e(x);
309
- });
310
- var S = i.sibling(b, 2), C = (e) => {
311
- var n = ae(), r = i.child(n, !0);
312
- i.reset(n), i.template_effect(() => i.set_text(r, t.prefix)), i.append(e, n);
313
- };
314
- i.if(S, (e) => {
315
- t.prefix && e(C);
316
- });
317
- var w = i.sibling(S, 2), T = i.child(w);
318
- i.snippet(T, () => t.children), i.reset(w);
319
- var E = i.sibling(w, 2), D = (e) => {
320
- var n = oe(), r = i.child(n, !0);
321
- i.reset(n), i.template_effect(() => i.set_text(r, t.suffix)), i.append(e, n);
322
- };
323
- i.if(E, (e) => {
324
- t.suffix && e(D);
325
- });
326
- var O = i.sibling(E, 2), k = (e) => {
327
- var n = se(), r = i.child(n);
328
- i.snippet(r, () => t.trailing), i.reset(n), i.append(e, n);
329
- };
330
- i.if(O, (e) => {
331
- t.trailing && e(k);
332
- });
333
- var A = i.sibling(O, 2), j = (e) => {
334
- var n = i.comment(), r = i.first_child(n);
335
- i.each(r, 17, () => t.actions, (e) => e.label, (e, t) => {
336
- var n = le(), r = i.child(n), a = (e) => {
337
- var n = i.comment(), r = i.first_child(n);
338
- i.snippet(r, () => i.get(t).icon), i.append(e, n);
339
- }, o = (e) => {
340
- var n = ce(), r = i.child(n, !0);
341
- i.reset(n), i.template_effect(() => i.set_text(r, i.get(t).label)), i.append(e, n);
342
- };
343
- i.if(r, (e) => {
344
- i.get(t).icon ? e(a) : e(o, -1);
345
- }), i.reset(n), i.template_effect(() => {
346
- i.set_attribute(n, "aria-label", i.get(t).label), i.set_attribute(n, "title", i.get(t).label), n.disabled = d() || i.get(t).disabled;
347
- }), i.delegated("click", n, () => i.get(t).onClick()), i.append(e, n);
348
- }), i.append(e, n);
349
- };
350
- i.if(A, (e) => {
351
- t.actions?.length && e(j);
352
- });
353
- var M = i.sibling(A, 2), N = (e) => {
354
- var n = ue();
355
- i.template_effect(() => i.set_attribute(n, "aria-label", h())), i.delegated("click", n, () => t.onclear?.()), i.append(e, n);
356
- };
357
- i.if(M, (e) => {
358
- p() && m() && !d() && !f() && e(N);
359
- }), i.reset(a), i.template_effect(() => {
360
- o = i.set_class(a, 1, `sv-field__control sv-field--${u() ?? ""}`, "svelte-1uhr4tm", o, {
361
- "is-invalid": l(),
362
- "is-disabled": d(),
363
- "is-readonly": f(),
364
- "is-filled": _()
365
- }), s = i.set_style(a, "", s, { width: r() ? void 0 : i.get(v) });
366
- }), i.append(e, a);
367
- }, D = (e) => {
368
- var n = i.comment(), r = i.first_child(n);
369
- i.snippet(r, () => t.children), i.append(e, n);
370
- };
371
- i.if(T, (e) => {
372
- c() ? e(E) : e(D, -1);
373
- });
374
- var O = i.sibling(T, 2), k = (e) => {
375
- var n = fe(), r = i.child(n, !0);
376
- i.reset(n), i.template_effect((e) => {
377
- i.set_attribute(n, "id", e), i.set_text(r, t.error);
378
- }, [() => o(t.id)]), i.append(e, n);
379
- }, A = (e) => {
380
- var n = pe(), r = i.child(n, !0);
381
- i.reset(n), i.template_effect((e) => {
382
- i.set_attribute(n, "id", e), i.set_text(r, t.hint);
383
- }, [() => s(t.id)]), i.append(e, n);
384
- };
385
- i.if(O, (e) => {
386
- t.error ? e(k) : t.hint && e(A, 1);
387
- }), i.reset(x), i.template_effect(() => {
388
- S = i.set_class(x, 1, "sv-field svelte-1uhr4tm", null, S, {
389
- "sv-field--block": r(),
390
- "sv-field--floating": i.get(y)
391
- }), i.set_attribute(x, "dir", i.get(b)), x.dir = x.dir;
392
- }), i.append(e, x), i.pop();
393
- }
394
- i.delegate(["click"]);
395
- //#endregion
396
- //#region src/datetime/date-selection.ts
397
- var _e = () => ({
398
- dates: [],
399
- anchor: null,
400
- rangeStart: null
401
- });
402
- function ve(e, t) {
403
- return e.some((e) => v(e, t));
404
- }
405
- function J(e, t) {
406
- let n = b(e, t) <= 0 ? p(e) : p(t), r = b(e, t) <= 0 ? p(t) : p(e), i = [], a = n;
407
- for (; b(a, r) <= 0;) i.push(a), a = x(a, 1);
408
- return i;
409
- }
410
- function ye(e) {
411
- let t = [];
412
- for (let n of e) t.some((e) => v(e, n)) || t.push(p(n));
413
- return t.sort((e, t) => e.getTime() - t.getTime()), t;
414
- }
415
- function be(e, t) {
416
- return ve(e, t) ? e.filter((e) => !v(e, t)) : [...e, p(t)];
417
- }
418
- function xe(e, t, n, r = {}, i = 0) {
419
- let a = p(t), o = () => ({
420
- dates: [a],
421
- anchor: a,
422
- rangeStart: null
423
- });
424
- switch (n) {
425
- case "none": return { ...e };
426
- case "default":
427
- case "one": return o();
428
- case "zeroOrOne": return ve(e.dates, a) && e.dates.length === 1 ? _e() : o();
429
- case "many":
430
- case "zeroOrMany": return {
431
- dates: ye(be(e.dates, a)),
432
- anchor: a,
433
- rangeStart: null
434
- };
435
- case "oneOrMany": {
436
- let t = be(e.dates, a);
437
- return {
438
- dates: ye(t.length === 0 ? [a] : t),
439
- anchor: a,
440
- rangeStart: null
441
- };
442
- }
443
- case "oneExtended": return r.shift && e.anchor ? {
444
- dates: J(e.anchor, a),
445
- anchor: e.anchor,
446
- rangeStart: null
447
- } : r.ctrl ? {
448
- dates: ye(be(e.dates, a)),
449
- anchor: a,
450
- rangeStart: null
451
- } : o();
452
- case "week": {
453
- let e = _(a, i);
454
- return {
455
- dates: Array.from({ length: 7 }, (t, n) => x(e, n)),
456
- anchor: e,
457
- rangeStart: null
458
- };
459
- }
460
- case "range": return e.rangeStart ? {
461
- dates: J(e.rangeStart, a),
462
- anchor: e.rangeStart,
463
- rangeStart: null
464
- } : {
465
- dates: [a],
466
- anchor: a,
467
- rangeStart: a
468
- };
469
- default: return o();
470
- }
471
- }
472
- function Se(e) {
473
- return e === "many" || e === "zeroOrMany" || e === "oneOrMany" || e === "oneExtended" || e === "week" || e === "range";
474
- }
475
- //#endregion
476
- //#region src/datetime/date-restrict.ts
477
- function Ce(e) {
478
- if (!e) return [];
479
- let t = [];
480
- for (let n of e) {
481
- let e = f(n);
482
- e && t.push(e);
483
- }
484
- return t;
485
- }
486
- function we(e, t, n) {
487
- let r = f(t ?? null), i = f(n ?? null);
488
- return !!(r && b(e, r) < 0 || i && b(e, i) > 0);
489
- }
490
- function Te(e, t) {
491
- return t ? typeof t == "function" ? t(e) : Ce(t).some((t) => v(t, e)) : !1;
492
- }
493
- function Ee(e, t) {
494
- return we(e, t.min, t.max) || Te(e, t.restrictedDates);
495
- }
496
- function De(e, t) {
497
- return t ? typeof t == "function" ? t(e) : Ce(t).some((t) => v(t, e)) : !1;
498
- }
499
- //#endregion
500
- //#region src/createCalendar.svelte.ts
501
- var Oe = () => typeof navigator < "u" ? navigator.language : "en-US";
502
- function ke(e) {
503
- if (e == null) return [];
504
- let t = Array.isArray(e) ? e : [e], n = [];
505
- for (let e of t) {
506
- let t = f(e);
507
- t && n.push(p(t));
508
- }
509
- return n;
510
- }
511
- function Ae(e) {
512
- let t = () => e.selectionMode?.() ?? "one", n = () => e.firstDayOfWeek?.() ?? 0, r = () => e.weeks?.() ?? 6, a = () => Math.max(1, e.months?.() ?? 1), o = () => e.displayMode?.() ?? "month", s = () => e.disabled?.() ?? !1, c = () => e.readonly?.() ?? !1, l = () => e.locale?.() ?? Oe(), u = () => e.dayNameFormat?.() ?? "short", d = () => e.monthNameFormat?.() ?? "long", m = i.state(i.proxy(_e())), h = i.state(i.proxy(p(/* @__PURE__ */ new Date()))), g = i.state("month"), _ = i.state(i.proxy(p(/* @__PURE__ */ new Date()))), b = i.state(null), w = "fade", T = i.state(0), k = i.derived(() => ({
513
- min: e.min?.() ?? null,
514
- max: e.max?.() ?? null,
515
- restrictedDates: e.restrictedDates?.() ?? null
516
- })), A = i.derived(() => !s() && !c()), j = "￿", M = !1;
517
- i.user_effect(() => {
518
- let t = ke(e.value()), n = t.map((e) => e.getTime()).join(",");
519
- if (n !== j && (j = n, i.set(m, {
520
- dates: t,
521
- anchor: t[t.length - 1] ?? null,
522
- rangeStart: null
523
- }, !0), !M)) {
524
- M = !0;
525
- let e = t[0] ?? p(/* @__PURE__ */ new Date());
526
- i.set(h, p(e), !0), i.set(_, p(e), !0), i.set(g, o(), !0);
527
- }
528
- });
529
- let N = i.derived(() => new Intl.DateTimeFormat(l(), { weekday: u() })), P = i.derived(() => new Intl.DateTimeFormat(l(), {
530
- month: d(),
531
- year: "numeric"
532
- })), F = i.derived(() => new Intl.DateTimeFormat(l(), { month: "short" })), I = i.derived(() => new Intl.DateTimeFormat(l(), {
533
- weekday: "long",
534
- year: "numeric",
535
- month: "long",
536
- day: "numeric"
537
- })), L = i.derived(() => O(n()).map((e) => {
538
- let t = new Date(2021, 7, 1 + e);
539
- return {
540
- label: i.get(N).format(t),
541
- weekday: e
542
- };
543
- })), z = i.derived(() => Array.from({ length: a() }, (e, t) => {
544
- let a = S(i.get(h), t);
545
- return {
546
- month: a,
547
- title: i.get(P).format(a),
548
- matrix: D(a, n(), r())
549
- };
550
- })), B = i.derived(() => {
551
- if (t() !== "range") return null;
552
- let e = i.get(m).rangeStart;
553
- return !e || !i.get(b) ? null : J(e, i.get(b));
554
- }), V = (e) => !!i.get(B) && i.get(B).some((t) => v(t, e));
555
- function H(t, n) {
556
- return {
557
- disabled: Ee(t, i.get(k)),
558
- selected: ve(i.get(m).dates, t),
559
- important: De(t, e.importantDates?.() ?? null),
560
- today: v(t, /* @__PURE__ */ new Date()),
561
- outside: !y(t, n),
562
- focused: v(t, i.get(_)),
563
- preview: V(t),
564
- recurring: R(t, e.recurrence?.() ?? null)
565
- };
566
- }
567
- let U = i.derived(() => i.get(g) === "month" ? i.get(P).format(i.get(h)) : i.get(g) === "year" ? String(i.get(h).getFullYear()) : (() => {
568
- let { start: e, end: t } = E(i.get(h).getFullYear());
569
- return `${e} - ${t}`;
570
- })()), W = i.derived(() => Array.from({ length: 12 }, (e, t) => ({
571
- index: t,
572
- label: i.get(F).format(new Date(i.get(h).getFullYear(), t, 1)),
573
- current: t === (/* @__PURE__ */ new Date()).getMonth() && i.get(h).getFullYear() === (/* @__PURE__ */ new Date()).getFullYear(),
574
- selected: i.get(m).dates.some((e) => e.getMonth() === t && e.getFullYear() === i.get(h).getFullYear())
575
- }))), ee = i.derived(() => {
576
- let { start: e } = E(i.get(h).getFullYear());
577
- return Array.from({ length: 12 }, (t, n) => {
578
- let r = e - 1 + n;
579
- return {
580
- year: r,
581
- outside: n === 0 || n === 11,
582
- current: r === (/* @__PURE__ */ new Date()).getFullYear(),
583
- selected: i.get(m).dates.some((e) => e.getFullYear() === r)
584
- };
585
- });
586
- }), te = i.derived(() => t() === "zeroOrOne" || t() === "zeroOrMany" || t() === "none");
587
- function G(t) {
588
- i.set(m, t, !0), j = t.dates.map((e) => e.getTime()).join(","), e.onChange?.(t.dates.map((e) => new Date(e.getTime())));
589
- }
590
- function K(e, r) {
591
- !i.get(A) || Ee(e, i.get(k)) || (i.set(_, p(e), !0), G(xe(i.get(m), e, t(), {
592
- ctrl: r?.ctrlKey || r?.metaKey,
593
- shift: r?.shiftKey
594
- }, n())));
595
- }
596
- function q(t, n = i.get(g)) {
597
- i.set(h, p(t), !0), i.set(g, n, !0), i.update(T), e.onNavigate?.(i.get(h), i.get(g));
598
- }
599
- function ne() {
600
- w = "drillUp", i.get(g) === "month" ? q(i.get(h), "year") : i.get(g) === "year" && q(i.get(h), "decade");
601
- }
602
- function re(e) {
603
- w = e === 1 ? "next" : "prev", i.get(g) === "month" ? q(S(i.get(h), e)) : i.get(g) === "year" ? q(C(i.get(h), e)) : q(C(i.get(h), e * 10));
604
- }
605
- function ie(e) {
606
- w = "drillDown", q(new Date(i.get(h).getFullYear(), e, 1), "month"), i.set(_, new Date(i.get(h).getFullYear(), e, Math.min(i.get(_).getDate(), 28)), !0);
607
- }
608
- function ae(e) {
609
- w = "drillDown", q(new Date(e, i.get(h).getMonth(), 1), "year");
610
- }
611
- function oe() {
612
- w = "fade";
613
- let e = /* @__PURE__ */ new Date();
614
- q(e, "month"), i.set(_, p(e), !0), i.get(A) && K(e);
615
- }
616
- let se = (e) => new Date(e.getFullYear(), e.getMonth(), 1);
617
- function ce(e) {
618
- if (!i.get(A)) return;
619
- let t = typeof e.value == "function" ? e.value() : e.value, n = Array.isArray(t), r = n ? t : [t, t], a = f(r[0]), o = f(r[1]);
620
- a && (i.set(_, p(a), !0), w = "fade", i.set(h, se(a), !0), i.update(T), G(n && o ? {
621
- dates: J(a, o),
622
- anchor: p(o),
623
- rangeStart: null
624
- } : {
625
- dates: [p(a)],
626
- anchor: p(a),
627
- rangeStart: null
628
- }));
629
- }
630
- function le() {
631
- i.get(A) && G(_e());
632
- }
633
- let ue = (e) => i.set(b, e, !0);
634
- function de(e) {
635
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), i.get(g) === "year" ? ie(i.get(_).getMonth()) : ae(i.get(_).getFullYear()));
636
- }
637
- function fe(e) {
638
- if (i.get(g) !== "month") return de(e);
639
- let t = null;
640
- switch (e.key) {
641
- case "ArrowLeft":
642
- t = x(i.get(_), -1);
643
- break;
644
- case "ArrowRight":
645
- t = x(i.get(_), 1);
646
- break;
647
- case "ArrowUp":
648
- t = x(i.get(_), -7);
649
- break;
650
- case "ArrowDown":
651
- t = x(i.get(_), 7);
652
- break;
653
- case "Home":
654
- t = x(i.get(_), -((i.get(_).getDay() - n() + 7) % 7));
655
- break;
656
- case "End":
657
- t = x(i.get(_), 6 - (i.get(_).getDay() - n() + 7) % 7);
658
- break;
659
- case "PageUp":
660
- t = e.shiftKey ? C(i.get(_), -1) : S(i.get(_), -1);
661
- break;
662
- case "PageDown":
663
- t = e.shiftKey ? C(i.get(_), 1) : S(i.get(_), 1);
664
- break;
665
- case "Enter":
666
- case " ":
667
- e.preventDefault(), K(i.get(_), e);
668
- return;
669
- default: return;
670
- }
671
- t && (e.preventDefault(), i.set(_, p(t), !0), y(i.get(_), i.get(h)) || q(i.get(_), "month"));
672
- }
673
- return {
674
- get view() {
675
- return i.get(h);
676
- },
677
- get mode() {
678
- return i.get(g);
679
- },
680
- get title() {
681
- return i.get(U);
682
- },
683
- get panels() {
684
- return i.get(z);
685
- },
686
- get weekdayHeaders() {
687
- return i.get(L);
688
- },
689
- get yearCells() {
690
- return i.get(W);
691
- },
692
- get decadeCells() {
693
- return i.get(ee);
694
- },
695
- get selectedDates() {
696
- return i.get(m).dates;
697
- },
698
- get previewRange() {
699
- return i.get(B);
700
- },
701
- get focusDate() {
702
- return i.get(_);
703
- },
704
- get hoverDate() {
705
- return i.get(b);
706
- },
707
- get canClear() {
708
- return i.get(te);
709
- },
710
- get isInteractive() {
711
- return i.get(A);
712
- },
713
- get navToken() {
714
- return i.get(T);
715
- },
716
- get navDir() {
717
- return w;
718
- },
719
- dayState: H,
720
- inPreview: V,
721
- formatFullDate: (e) => i.get(I).format(e),
722
- formatMonthTitle: (e) => i.get(P).format(e),
723
- pickDay: K,
724
- step: re,
725
- drillUp: ne,
726
- pickMonth: ie,
727
- pickYear: ae,
728
- goToday: oe,
729
- applyPreset: ce,
730
- clearSelection: le,
731
- setHover: ue,
732
- onKeydown: fe,
733
- navProps(e) {
734
- return {
735
- type: "button",
736
- disabled: s(),
737
- "aria-label": e === 1 ? "Next" : "Previous",
738
- onclick: () => re(e)
739
- };
740
- },
741
- titleProps() {
742
- return {
743
- type: "button",
744
- disabled: s() || i.get(g) === "decade",
745
- "aria-live": "polite",
746
- onclick: ne
747
- };
748
- },
749
- gridProps() {
750
- return {
751
- role: "grid",
752
- "aria-label": i.get(U),
753
- tabindex: -1,
754
- onkeydown: fe
755
- };
756
- },
757
- dayProps(t, n) {
758
- let r = H(t.date, n);
759
- return {
760
- type: "button",
761
- role: "gridcell",
762
- "aria-selected": r.selected,
763
- "aria-disabled": r.disabled,
764
- "aria-current": r.today ? "date" : void 0,
765
- "aria-label": i.get(I).format(t.date),
766
- title: e.dateTooltip?.()?.(t.date) ?? void 0,
767
- tabindex: r.focused ? 0 : -1,
768
- disabled: r.disabled || s(),
769
- onclick: (e) => K(t.date, e),
770
- onpointerenter: () => ue(t.date),
771
- onpointerleave: () => ue(null)
772
- };
773
- },
774
- monthCellProps(e) {
775
- return {
776
- type: "button",
777
- disabled: s(),
778
- onclick: () => ie(e)
779
- };
780
- },
781
- yearCellProps(e) {
782
- return {
783
- type: "button",
784
- disabled: s(),
785
- onclick: () => ae(e)
786
- };
787
- },
788
- presetProps(e) {
789
- return {
790
- type: "button",
791
- disabled: !i.get(A),
792
- onclick: () => ce(e)
793
- };
794
- }
795
- };
796
- }
797
- //#endregion
798
- //#region src/SvCalendar.svelte
799
- var je = i.from_html("<button> </button>"), Me = i.from_html("<div class=\"sv-cal__presets svelte-md3oew\" role=\"group\"></div>"), Ne = i.from_html("<div class=\"sv-cal__panel-title svelte-md3oew\"> </div>"), Pe = i.from_html("<span class=\"sv-cal__wk-head svelte-md3oew\" aria-hidden=\"true\">#</span>"), Fe = i.from_html("<span class=\"sv-cal__weekday svelte-md3oew\" role=\"columnheader\"> </span>"), Ie = i.from_html("<div class=\"sv-cal__weekdays svelte-md3oew\" role=\"row\"><!> <!></div>"), Le = i.from_html("<span class=\"sv-cal__wk svelte-md3oew\" aria-hidden=\"true\"> </span>"), Re = i.from_html("<span class=\"sv-cal__day sv-cal__day--empty svelte-md3oew\" role=\"gridcell\" aria-hidden=\"true\"></span>"), ze = i.from_html("<span class=\"sv-cal__daybody svelte-md3oew\"><!></span>"), Be = i.from_html("<button><span class=\"sv-cal__daynum svelte-md3oew\"> </span><!></button>"), Ve = i.from_html("<div class=\"sv-cal__week svelte-md3oew\" role=\"row\"><!> <!></div>"), He = i.from_html("<div class=\"sv-cal__panel\"><!> <!> <!></div>"), Ue = i.from_html("<div></div>"), We = i.from_html("<button> </button>"), Ge = i.from_html("<div></div>"), Ke = i.from_html("<button> </button>"), qe = i.from_html("<div></div>"), Je = i.from_html("<button type=\"button\" class=\"sv-cal__foot-btn svelte-md3oew\"> </button>"), Ye = i.from_html("<div class=\"sv-cal__footer svelte-md3oew\"><button type=\"button\" class=\"sv-cal__foot-btn svelte-md3oew\"> </button> <!></div>"), Xe = i.from_html("<input type=\"hidden\"/>"), Ze = i.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>"), Qe = {
800
- hash: "svelte-md3oew",
801
- 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);}"
802
- };
803
- function $e(e, t) {
804
- i.push(t, !0), i.append_styles(e, Qe);
805
- let n = (e) => {
806
- var n = Ze();
807
- let r;
808
- var a = i.child(n), o = (e) => {
809
- var n = Me();
810
- i.each(n, 21, () => t.presets, i.index, (e, t) => {
811
- var n = je();
812
- i.attribute_effect(n, (e) => ({
813
- class: "sv-cal__preset",
814
- ...e
815
- }), [() => R.presetProps(i.get(t))], void 0, void 0, "svelte-md3oew");
816
- var r = i.child(n, !0);
817
- i.reset(n), i.template_effect(() => i.set_text(r, i.get(t).label)), i.append(e, n);
818
- }), i.reset(n), i.template_effect(() => i.set_attribute(n, "aria-label", i.get(F).shortcuts)), i.append(e, n);
819
- };
820
- i.if(a, (e) => {
821
- t.presets && t.presets.length && e(o);
822
- });
823
- var c = i.sibling(a, 2), l = i.child(c), u = i.child(l);
824
- i.attribute_effect(u, (e) => ({
825
- class: "sv-cal__nav",
826
- ...e
827
- }), [() => R.navProps(-1)], void 0, void 0, "svelte-md3oew");
828
- var d = i.sibling(u, 2);
829
- i.attribute_effect(d, (e) => ({
830
- class: "sv-cal__title",
831
- ...e
832
- }), [() => R.titleProps()], void 0, void 0, "svelte-md3oew");
833
- var f = i.child(d, !0);
834
- i.reset(d);
835
- var p = i.sibling(d, 2);
836
- i.attribute_effect(p, (e) => ({
837
- class: "sv-cal__nav",
838
- ...e
839
- }), [() => R.navProps(1)], void 0, void 0, "svelte-md3oew"), i.reset(l);
840
- var m = i.sibling(l, 2), h = i.child(m), y = (e) => {
841
- var n = Ue();
842
- i.attribute_effect(n, (e) => ({
843
- class: "sv-cal__panels",
844
- ...e
845
- }), [() => R.gridProps()], void 0, void 0, "svelte-md3oew"), i.each(n, 21, () => R.panels, (e) => e.month.getTime(), (e, n) => {
846
- var r = He(), a = i.child(r), o = (e) => {
847
- var t = Ne(), r = i.child(t, !0);
848
- i.reset(t), i.template_effect(() => i.set_text(r, i.get(n).title)), i.append(e, t);
849
- };
850
- i.if(a, (e) => {
851
- _() > 1 && e(o);
852
- });
853
- var s = i.sibling(a, 2), c = (e) => {
854
- var t = Ie(), n = i.child(t), r = (e) => {
855
- var t = Pe();
856
- i.append(e, t);
857
- };
858
- i.if(n, (e) => {
859
- g() && e(r);
860
- });
861
- var a = i.sibling(n, 2);
862
- i.each(a, 17, () => R.weekdayHeaders, (e) => e.weekday, (e, t) => {
863
- var n = Fe(), r = i.child(n, !0);
864
- i.reset(n), i.template_effect(() => i.set_text(r, i.get(t).label)), i.append(e, n);
865
- }), i.reset(t), i.append(e, t);
866
- };
867
- i.if(s, (e) => {
868
- v() || e(c);
869
- });
870
- var l = i.sibling(s, 2);
871
- i.each(l, 17, () => i.get(n).matrix, i.index, (e, r) => {
872
- var a = Ve(), o = i.child(a), s = (e) => {
873
- var t = Le(), n = i.child(t, !0);
874
- i.reset(t), i.template_effect(() => i.set_text(n, i.get(r)[0]?.week)), i.append(e, t);
875
- };
876
- i.if(o, (e) => {
877
- g() && e(s);
878
- });
879
- var c = i.sibling(o, 2);
880
- i.each(c, 17, () => i.get(r), (e) => e.date.getTime(), (e, r) => {
881
- let a = i.derived(() => R.dayState(i.get(r).date, i.get(n).month));
882
- var o = i.comment(), s = i.first_child(o), c = (e) => {
883
- var t = Re();
884
- i.append(e, t);
885
- }, l = (e) => {
886
- var o = Be();
887
- i.attribute_effect(o, (e) => ({
888
- class: "sv-cal__day",
889
- ...e,
890
- [i.CLASS]: {
891
- "is-selected": i.get(a).selected,
892
- "is-today": i.get(a).today,
893
- "is-outside": i.get(a).outside,
894
- "is-important": i.get(a).important,
895
- "is-preview": i.get(a).preview,
896
- "is-focused": i.get(a).focused,
897
- "is-recurring": i.get(a).recurring
898
- }
899
- }), [() => R.dayProps(i.get(r), i.get(n).month)], void 0, void 0, "svelte-md3oew");
900
- var s = i.child(o), c = i.child(s, !0);
901
- i.reset(s);
902
- var l = i.sibling(s), u = (e) => {
903
- var n = ze(), o = i.child(n);
904
- i.snippet(o, () => t.day, () => i.get(r).date, () => i.get(a)), i.reset(n), i.append(e, n);
905
- };
906
- i.if(l, (e) => {
907
- t.day && e(u);
908
- }), i.reset(o), i.template_effect((e) => i.set_text(c, e), [() => i.get(r).date.getDate()]), i.append(e, o);
909
- };
910
- i.if(s, (e) => {
911
- i.get(a).outside && i.get(L) ? e(c) : e(l, -1);
912
- }), i.append(e, o);
913
- }), i.reset(a), i.append(e, a);
914
- }), i.reset(r), i.append(e, r);
915
- }), i.reset(n), i.append(e, n);
916
- }, b = (e) => {
917
- var t = Ge();
918
- i.attribute_effect(t, (e) => ({
919
- class: "sv-cal__grid-mode",
920
- ...e
921
- }), [() => R.gridProps()], void 0, void 0, "svelte-md3oew"), i.each(t, 21, () => R.yearCells, (e) => e.index, (e, t) => {
922
- var n = We();
923
- i.attribute_effect(n, (e) => ({
924
- class: "sv-cal__cell",
925
- ...e,
926
- [i.CLASS]: {
927
- "is-today": i.get(t).current,
928
- "is-selected": i.get(t).selected
929
- }
930
- }), [() => R.monthCellProps(i.get(t).index)], void 0, void 0, "svelte-md3oew");
931
- var r = i.child(n, !0);
932
- i.reset(n), i.template_effect(() => i.set_text(r, i.get(t).label)), i.append(e, n);
933
- }), i.reset(t), i.append(e, t);
934
- }, x = (e) => {
935
- var t = qe();
936
- i.attribute_effect(t, (e) => ({
937
- class: "sv-cal__grid-mode",
938
- ...e
939
- }), [() => R.gridProps()], void 0, void 0, "svelte-md3oew"), i.each(t, 21, () => R.decadeCells, (e) => e.year, (e, t) => {
940
- var n = Ke();
941
- i.attribute_effect(n, (e) => ({
942
- class: "sv-cal__cell",
943
- ...e,
944
- [i.CLASS]: {
945
- "is-outside": i.get(t).outside,
946
- "is-today": i.get(t).current,
947
- "is-selected": i.get(t).selected
948
- }
949
- }), [() => R.yearCellProps(i.get(t).year)], void 0, void 0, "svelte-md3oew");
950
- var r = i.child(n, !0);
951
- i.reset(n), i.template_effect(() => i.set_text(r, i.get(t).year)), i.append(e, n);
952
- }), i.reset(t), i.append(e, t);
953
- };
954
- i.if(h, (e) => {
955
- R.mode === "month" ? e(y) : R.mode === "year" ? e(b, 1) : e(x, -1);
956
- }), i.reset(m), i.bind_this(m, (e) => i.set(B, e), () => i.get(B));
957
- var w = i.sibling(m, 2), T = (e) => {
958
- var t = Ye(), n = i.child(t), r = i.child(n, !0);
959
- i.reset(n);
960
- var a = i.sibling(n, 2), o = (e) => {
961
- var t = Je(), n = i.child(t, !0);
962
- i.reset(t), i.template_effect(() => {
963
- t.disabled = C(), i.set_text(n, i.get(F).clear);
964
- }), i.delegated("click", t, function(...e) {
965
- R.clearSelection?.apply(this, e);
966
- }), i.append(e, t);
967
- };
968
- i.if(a, (e) => {
969
- R.canClear && e(o);
970
- }), i.reset(t), i.template_effect(() => {
971
- n.disabled = C(), i.set_text(r, i.get(F).today);
972
- }), i.delegated("click", n, function(...e) {
973
- R.goToday?.apply(this, e);
974
- }), i.append(e, t);
975
- };
976
- i.if(w, (e) => {
977
- S() && e(T);
978
- }), i.reset(c), i.action(c, (e) => U?.(e));
979
- var E = i.sibling(c, 2), D = (e) => {
980
- var n = Xe();
981
- i.remove_input_defaults(n), i.template_effect((e) => {
982
- i.set_attribute(n, "name", t.name), i.set_value(n, e);
983
- }, [() => R.selectedDates.map((e) => e.toISOString()).join(",")]), i.append(e, n);
984
- };
985
- i.if(E, (e) => {
986
- t.name && e(D);
987
- }), i.reset(n), i.template_effect(() => {
988
- r = i.set_class(n, 1, "sv-cal svelte-md3oew", null, r, {
989
- "sv-cal--disabled": C(),
990
- "sv-cal--invalid": j(),
991
- "sv-cal--with-presets": t.presets && t.presets.length,
992
- "sv-cal--band": s() === "range" || s() === "week",
993
- "sv-cal--rich": !!t.day
994
- }), i.set_attribute(n, "id", i.get(N)), i.set_attribute(n, "aria-label", t.label ?? i.get(F).label), i.set_attribute(n, "aria-disabled", C()), i.set_attribute(n, "dir", i.get(I)), i.set_text(f, R.title), n.dir = n.dir;
995
- }), i.append(e, n);
996
- }, r = {
997
- label: "Calendar",
998
- shortcuts: "Shortcuts",
999
- today: "Today",
1000
- clear: "Clear",
1001
- prev: "Previous",
1002
- next: "Next"
1003
- }, o = i.prop(t, "value", 3, null), s = i.prop(t, "selectionMode", 3, "one"), c = i.prop(t, "min", 3, null), u = i.prop(t, "max", 3, null), f = i.prop(t, "restrictedDates", 3, null), p = i.prop(t, "importantDates", 3, null), m = i.prop(t, "firstDayOfWeek", 3, 0), h = i.prop(t, "weeks", 3, 6), g = i.prop(t, "weekNumbers", 3, !1), _ = i.prop(t, "months", 3, 1), v = i.prop(t, "hideDayNames", 3, !1), y = i.prop(t, "hideOtherMonthDays", 3, !1), b = i.prop(t, "dayNameFormat", 3, "short"), x = i.prop(t, "monthNameFormat", 3, "long"), S = i.prop(t, "footer", 3, !1), C = i.prop(t, "disabled", 3, !1), w = i.prop(t, "readonly", 3, !1), T = i.prop(t, "locale", 19, () => typeof navigator < "u" ? navigator.language : "en-US"), E = i.prop(t, "displayMode", 3, "month"), D = i.prop(t, "animate", 3, !1), O = i.prop(t, "wheelNavigation", 3, !1), k = i.prop(t, "recurrence", 3, null), A = i.prop(t, "required", 3, !1), j = i.prop(t, "invalid", 3, !1), M = l("sv-cal"), N = i.derived(() => t.id ?? M), P = i.derived(() => !!(t.label || t.hint || t.error)), F = i.derived(() => d(r, t.messages)), I = i.derived(() => t.dir === "ltr" || t.dir === "rtl" ? t.dir : void 0), L = i.derived(() => y() || _() > 1), R = Ae({
1004
- value: () => o(),
1005
- onChange: (e) => t.onChange?.(e),
1006
- onNavigate: (e, n) => t.onNavigate?.(e, n),
1007
- selectionMode: () => s(),
1008
- min: () => c(),
1009
- max: () => u(),
1010
- restrictedDates: () => f(),
1011
- importantDates: () => p(),
1012
- firstDayOfWeek: () => m(),
1013
- weeks: () => h(),
1014
- months: () => _(),
1015
- displayMode: () => E(),
1016
- disabled: () => C(),
1017
- readonly: () => w(),
1018
- locale: () => T(),
1019
- dayNameFormat: () => b(),
1020
- monthNameFormat: () => x(),
1021
- dateTooltip: () => t.dateTooltip,
1022
- recurrence: () => k()
1023
- }), z = i.derived(() => D() === !0 ? "slide" : D() || "none"), B = i.state(void 0), V = !1;
1024
- function H() {
1025
- if (i.get(z) === "none" || !i.get(B) || typeof i.get(B).animate != "function") return;
1026
- let e = i.get(z) === "slide", t = R.navDir, n = e ? t === "next" ? {
1027
- transform: "translateX(34px)",
1028
- opacity: 0
1029
- } : t === "prev" ? {
1030
- transform: "translateX(-34px)",
1031
- opacity: 0
1032
- } : t === "drillDown" ? {
1033
- transform: "scale(0.85)",
1034
- opacity: 0
1035
- } : t === "drillUp" ? {
1036
- transform: "scale(1.14)",
1037
- opacity: 0
1038
- } : { opacity: 0 } : {
1039
- opacity: 0,
1040
- transform: "scale(0.98)"
1041
- };
1042
- i.get(B).animate([n, {
1043
- transform: "none",
1044
- opacity: 1
1045
- }], {
1046
- duration: e && (t === "next" || t === "prev") ? 300 : 220,
1047
- easing: "cubic-bezier(0.16, 1, 0.3, 1)"
1048
- });
1049
- }
1050
- i.user_effect(() => {
1051
- if (R.navToken, !V) {
1052
- V = !0;
1053
- return;
1054
- }
1055
- a(H);
1056
- });
1057
- function U(e) {
1058
- let t = (e) => {
1059
- !O() || C() || (e.preventDefault(), R.step(e.deltaY > 0 || e.deltaX > 0 ? 1 : -1));
1060
- };
1061
- return e.addEventListener("wheel", t, { passive: !1 }), { destroy: () => e.removeEventListener("wheel", t) };
1062
- }
1063
- var W = i.comment(), ee = i.first_child(W), te = (e) => {
1064
- ge(e, {
1065
- get id() {
1066
- return i.get(N);
1067
- },
1068
- get label() {
1069
- return t.label;
1070
- },
1071
- get hint() {
1072
- return t.hint;
1073
- },
1074
- get error() {
1075
- return t.error;
1076
- },
1077
- get required() {
1078
- return A();
1079
- },
1080
- get dir() {
1081
- return t.dir;
1082
- },
1083
- children: (e, t) => {
1084
- n(e);
1085
- },
1086
- $$slots: { default: !0 }
1087
- });
1088
- }, G = (e) => {
1089
- n(e);
1090
- };
1091
- i.if(ee, (e) => {
1092
- i.get(P) ? e(te) : e(G, -1);
1093
- }), i.append(e, W), i.pop();
1094
- }
1095
- i.delegate(["click"]);
1096
- //#endregion
1097
- //#region src/createTimePicker.svelte.ts
1098
- var et = 240, tt = et / 2, nt = 98, rt = 62;
1099
- function Y(e, t) {
1100
- let n = (e - 90) * Math.PI / 180;
1101
- return {
1102
- x: tt + t * Math.cos(n),
1103
- y: tt + t * Math.sin(n)
1104
- };
1105
- }
1106
- function it(e) {
1107
- if (e == null) {
1108
- let e = /* @__PURE__ */ new Date();
1109
- return {
1110
- h: e.getHours(),
1111
- m: e.getMinutes()
1112
- };
1113
- }
1114
- if (typeof e == "string") {
1115
- let t = e.match(/^(\d{1,2}):(\d{2})(?::(\d{2}))?/);
1116
- if (t) return {
1117
- h: Math.min(23, +t[1]),
1118
- m: Math.min(59, +t[2])
1119
- };
1120
- let n = new Date(e);
1121
- if (!isNaN(n.getTime())) return {
1122
- h: n.getHours(),
1123
- m: n.getMinutes()
1124
- };
1125
- let r = /* @__PURE__ */ new Date();
1126
- return {
1127
- h: r.getHours(),
1128
- m: r.getMinutes()
1129
- };
1130
- }
1131
- let t = new Date(e);
1132
- return {
1133
- h: t.getHours(),
1134
- m: t.getMinutes()
1135
- };
1136
- }
1137
- function at(e) {
1138
- let t = () => e.format?.() ?? "24-hour", n = () => e.minuteInterval?.() ?? 1, r = () => e.autoSwitchToMinutes?.() ?? !0, a = () => e.disabled?.() ?? !1, o = () => e.readonly?.() ?? !1, s = i.derived(() => t() === "12-hour"), c = i.derived(() => !a() && !o()), l = i.state(0), u = i.state(0), d = i.state("hour"), f = !1, p = "￿";
1139
- i.user_effect(() => {
1140
- let { h: t, m: n } = it(e.value()), r = `${t}:${n}`;
1141
- r !== p && (p = r, i.set(l, t, !0), i.set(u, n, !0), f || (f = !0, i.set(d, e.selection?.() ?? "hour", !0)));
1142
- });
1143
- let m = i.derived(() => i.get(s) ? i.get(l) % 12 == 0 ? 12 : i.get(l) % 12 : i.get(l)), h = i.derived(() => i.get(l) >= 12), g = i.derived(() => String(i.get(u)).padStart(2, "0")), _ = i.derived(() => {
1144
- let e = [];
1145
- if (i.get(s)) for (let t = 0; t < 12; t++) {
1146
- let n = t === 0 ? 12 : t, r = Y(t * 30, nt);
1147
- e.push({
1148
- label: String(n),
1149
- x: r.x,
1150
- y: r.y,
1151
- value: n,
1152
- ring: "outer"
1153
- });
1154
- }
1155
- else for (let t = 0; t < 12; t++) {
1156
- let n = Y(t * 30, nt), r = Y(t * 30, rt), i = t + 12, a = t;
1157
- e.push({
1158
- label: String(i).padStart(2, "0"),
1159
- x: n.x,
1160
- y: n.y,
1161
- value: i,
1162
- ring: "outer"
1163
- }), e.push({
1164
- label: a === 0 ? "00" : String(a).padStart(2, "0"),
1165
- x: r.x,
1166
- y: r.y,
1167
- value: a,
1168
- ring: "inner"
1169
- });
1170
- }
1171
- return e;
1172
- }), v = i.derived(() => Array.from({ length: 12 }, (e, t) => {
1173
- let n = t * 5, r = Y(t * 30, nt);
1174
- return {
1175
- label: String(n).padStart(2, "0"),
1176
- x: r.x,
1177
- y: r.y,
1178
- value: n,
1179
- ring: "outer"
1180
- };
1181
- })), y = i.derived(() => i.get(d) === "hour" ? i.get(s) ? i.get(m) % 12 * 30 : i.get(l) % 12 * 30 : i.get(u) * 6), b = i.derived(() => i.get(d) === "hour" && !i.get(s) && i.get(l) % 12 === i.get(l) && i.get(l) < 12 ? rt : nt), x = i.derived(() => Y(i.get(y), i.get(b)));
1182
- function S() {
1183
- let t = /* @__PURE__ */ new Date();
1184
- t.setHours(i.get(l), i.get(u), 0, 0), e.onChange?.(t);
1185
- }
1186
- let C = (e) => {
1187
- let t = Math.max(1, Math.floor(n()));
1188
- return Math.round(e / t) * t % 60;
1189
- };
1190
- function w(e) {
1191
- i.set(d, e, !0);
1192
- }
1193
- function T(e) {
1194
- i.set(u, C(e), !0), p = `${i.get(l)}:${i.get(u)}`, S();
1195
- }
1196
- function E(e) {
1197
- e !== i.get(h) && (i.set(l, e ? i.get(l) % 12 + 12 : i.get(l) % 12, !0), p = `${i.get(l)}:${i.get(u)}`, S());
1198
- }
1199
- function D(e, t) {
1200
- if (i.get(c)) {
1201
- if (i.get(d) === "hour") {
1202
- let n = Math.round(e / 30) % 12;
1203
- if (i.get(s)) {
1204
- let e = (n === 0 ? 12 : n) % 12;
1205
- i.set(l, i.get(h) ? e + 12 : e, !0);
1206
- } else {
1207
- let e = t < 80;
1208
- i.set(l, e ? n : n + 12, !0);
1209
- }
1210
- p = `${i.get(l)}:${i.get(u)}`, S();
1211
- } else T(Math.round(e / 6) % 60);
1212
- }
1213
- }
1214
- function O() {
1215
- i.get(d) === "hour" && r() && i.set(d, "minute");
1216
- }
1217
- function k(e) {
1218
- if (!i.get(c)) return;
1219
- let t = i.get(d) === "minute" ? Math.max(1, Math.floor(n())) : 1;
1220
- e.key === "ArrowUp" || e.key === "ArrowRight" ? (e.preventDefault(), i.get(d) === "hour" ? i.set(l, (i.get(l) + 1) % 24) : i.set(u, (i.get(u) + t) % 60), p = `${i.get(l)}:${i.get(u)}`, S()) : e.key === "ArrowDown" || e.key === "ArrowLeft" ? (e.preventDefault(), i.get(d) === "hour" ? i.set(l, (i.get(l) + 23) % 24) : i.set(u, (i.get(u) - t + 60) % 60), p = `${i.get(l)}:${i.get(u)}`, S()) : e.key === "Tab" && !e.shiftKey && i.get(d) === "hour" && i.set(d, "minute");
1221
- }
1222
- function A() {
1223
- let e = /* @__PURE__ */ new Date();
1224
- i.set(l, e.getHours(), !0), i.set(u, e.getMinutes(), !0), p = `${i.get(l)}:${i.get(u)}`, S();
1225
- }
1226
- function j(e) {
1227
- return i.get(s) ? e.value === i.get(m) : e.value === i.get(l);
1228
- }
1229
- return {
1230
- SIZE: et,
1231
- C: tt,
1232
- get hours() {
1233
- return i.get(l);
1234
- },
1235
- get minutes() {
1236
- return i.get(u);
1237
- },
1238
- get selection() {
1239
- return i.get(d);
1240
- },
1241
- get is12() {
1242
- return i.get(s);
1243
- },
1244
- get isInteractive() {
1245
- return i.get(c);
1246
- },
1247
- get displayHour() {
1248
- return i.get(m);
1249
- },
1250
- get isPm() {
1251
- return i.get(h);
1252
- },
1253
- get mm() {
1254
- return i.get(g);
1255
- },
1256
- get hourTicks() {
1257
- return i.get(_);
1258
- },
1259
- get minuteTicks() {
1260
- return i.get(v);
1261
- },
1262
- get handEnd() {
1263
- return i.get(x);
1264
- },
1265
- isActiveHour: j,
1266
- setSelection: w,
1267
- setMinute: T,
1268
- setAmPm: E,
1269
- pointerSelect: D,
1270
- endPointer: O,
1271
- onKeydown: k,
1272
- now: A,
1273
- segProps(e) {
1274
- return {
1275
- type: "button",
1276
- disabled: a(),
1277
- onclick: () => w(e)
1278
- };
1279
- },
1280
- ampmProps(e) {
1281
- return {
1282
- type: "button",
1283
- disabled: a(),
1284
- onclick: () => E(e)
1285
- };
1286
- },
1287
- dialProps() {
1288
- return {
1289
- role: "slider",
1290
- tabindex: a() ? -1 : 0,
1291
- "aria-label": i.get(d) === "hour" ? "Hour" : "Minute",
1292
- "aria-valuenow": i.get(d) === "hour" ? i.get(l) : i.get(u),
1293
- "aria-valuemin": 0,
1294
- "aria-valuemax": i.get(d) === "hour" ? 23 : 59,
1295
- onkeydown: k
1296
- };
1297
- },
1298
- nowProps() {
1299
- return {
1300
- type: "button",
1301
- disabled: a(),
1302
- onclick: A
1303
- };
1304
- }
1305
- };
1306
- }
1307
- //#endregion
1308
- //#region src/SvTimePicker.svelte
1309
- var ot = i.from_html("<div class=\"sv-tp__ampm svelte-1r061pp\"><button> </button> <button> </button></div>"), st = i.from_svg("<text dominant-baseline=\"central\" text-anchor=\"middle\"> </text>"), ct = i.from_svg("<text dominant-baseline=\"central\" text-anchor=\"middle\"> </text>"), lt = i.from_html("<div class=\"sv-tp__footer svelte-1r061pp\"><button> </button></div>"), ut = i.from_html("<input type=\"hidden\"/>"), dt = i.from_html("<div role=\"group\"><div class=\"sv-tp__head svelte-1r061pp\"><button> </button> <span class=\"sv-tp__colon svelte-1r061pp\">:</span> <button> </button> <!></div> <svg><circle class=\"sv-tp__face svelte-1r061pp\"></circle><line class=\"sv-tp__hand svelte-1r061pp\"></line><circle class=\"sv-tp__hub svelte-1r061pp\" r=\"3\"></circle><circle class=\"sv-tp__knob svelte-1r061pp\" r=\"15\"></circle><!></svg> <!> <!></div>"), ft = {
1310
- hash: "svelte-1r061pp",
1311
- code: ".sv-tp.svelte-1r061pp {--_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);--_face: var(--sg-header-bg, #f1f5f9);--_radius: var(--sg-radius, 8px);display:inline-flex;flex-direction:column;gap:10px;align-items:center;width:260px;padding:12px;background:var(--_bg);color:var(--_fg);border:1px solid var(--_border);border-radius:calc(var(--_radius) + 4px);user-select:none;}.sv-tp--invalid.svelte-1r061pp {border-color:var(--sg-danger, #dc2626);}.sv-tp--disabled.svelte-1r061pp {opacity:0.55;pointer-events:none;}.sv-tp__head.svelte-1r061pp {display:flex;align-items:center;gap:2px;font-variant-numeric:tabular-nums;}.sv-tp__seg.svelte-1r061pp {font-size:30px;font-weight:700;line-height:1;background:none;border:0;color:var(--_muted);cursor:pointer;padding:2px 6px;border-radius:var(--_radius);}.sv-tp__seg.is-active.svelte-1r061pp {color:var(--_accent);background:color-mix(in srgb, var(--_accent) 12%, transparent);}.sv-tp__colon.svelte-1r061pp {font-size:28px;font-weight:700;color:var(--_muted);}.sv-tp__ampm.svelte-1r061pp {display:flex;flex-direction:column;margin-inline-start:8px;gap:2px;}.sv-tp__ampm.svelte-1r061pp button:where(.svelte-1r061pp) {font-size:11px;font-weight:700;padding:3px 8px;background:none;border:1px solid var(--_border);border-radius:6px;color:var(--_muted);cursor:pointer;}.sv-tp__ampm.svelte-1r061pp button.is-active:where(.svelte-1r061pp) {background:var(--_accent);color:var(--sg-on-accent, #fff);border-color:var(--_accent);}.sv-tp__dial.svelte-1r061pp {touch-action:none;cursor:pointer;outline:none;display:block;width:100%;height:auto;aspect-ratio:1;}.sv-tp__dial.svelte-1r061pp:focus-visible {outline:2px solid var(--sg-focus-ring, var(--_accent));outline-offset:2px;border-radius:50%;}.sv-tp__face.svelte-1r061pp {fill:var(--_face);}.sv-tp__hand.svelte-1r061pp {stroke:var(--_accent);stroke-width:2;}.sv-tp__hub.svelte-1r061pp {fill:var(--_accent);}.sv-tp__knob.svelte-1r061pp {fill:var(--_accent);opacity:0.9;}.sv-tp__num.svelte-1r061pp {font-size:13px;fill:var(--_fg);pointer-events:none;font-family:inherit;}.sv-tp__num.is-inner.svelte-1r061pp {font-size:11px;fill:var(--_muted);}.sv-tp__num.is-active.svelte-1r061pp {fill:var(--sg-on-accent, #fff);font-weight:700;}.sv-tp__footer.svelte-1r061pp {width:100%;display:flex;justify-content:center;border-top:1px solid var(--_border);padding-top:8px;}.sv-tp__now.svelte-1r061pp {padding:5px 14px;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-tp__now.svelte-1r061pp:hover {background:color-mix(in srgb, var(--_accent) 10%, transparent);}"
1312
- };
1313
- function pt(e, t) {
1314
- i.push(t, !0), i.append_styles(e, ft);
1315
- let n = (e) => {
1316
- var n = dt();
1317
- let r;
1318
- var a = i.child(n), o = i.child(a);
1319
- i.attribute_effect(o, (e) => ({
1320
- class: "sv-tp__seg",
1321
- ...e,
1322
- [i.CLASS]: { "is-active": S.selection === "hour" }
1323
- }), [() => S.segProps("hour")], void 0, void 0, "svelte-1r061pp");
1324
- var s = i.child(o, !0);
1325
- i.reset(o);
1326
- var c = i.sibling(o, 4);
1327
- i.attribute_effect(c, (e) => ({
1328
- class: "sv-tp__seg",
1329
- ...e,
1330
- [i.CLASS]: { "is-active": S.selection === "minute" }
1331
- }), [() => S.segProps("minute")], void 0, void 0, "svelte-1r061pp");
1332
- var l = i.child(c, !0);
1333
- i.reset(c);
1334
- var d = i.sibling(c, 2), p = (e) => {
1335
- var t = ot(), n = i.child(t);
1336
- i.attribute_effect(n, (e) => ({
1337
- ...e,
1338
- [i.CLASS]: { "is-active": !S.isPm }
1339
- }), [() => S.ampmProps(!1)], void 0, void 0, "svelte-1r061pp");
1340
- var r = i.child(n, !0);
1341
- i.reset(n);
1342
- var a = i.sibling(n, 2);
1343
- i.attribute_effect(a, (e) => ({
1344
- ...e,
1345
- [i.CLASS]: { "is-active": S.isPm }
1346
- }), [() => S.ampmProps(!0)], void 0, void 0, "svelte-1r061pp");
1347
- var o = i.child(a, !0);
1348
- i.reset(a), i.reset(t), i.template_effect(() => {
1349
- i.set_text(r, i.get(b).am), i.set_text(o, i.get(b).pm);
1350
- }), i.append(e, t);
1351
- };
1352
- i.if(d, (e) => {
1353
- S.is12 && e(p);
1354
- }), i.reset(a);
1355
- var m = i.sibling(a, 2);
1356
- i.attribute_effect(m, (e) => ({
1357
- class: "sv-tp__dial",
1358
- viewBox: `0 0 ${S.SIZE} ${S.SIZE}`,
1359
- width: "100%",
1360
- ...e,
1361
- onpointerdown: E,
1362
- onpointermove: D,
1363
- onpointerup: O,
1364
- onpointercancel: O
1365
- }), [() => S.dialProps()], void 0, void 0, "svelte-1r061pp");
1366
- var h = i.child(m), _ = i.sibling(h), y = i.sibling(_), w = i.sibling(y), T = i.sibling(w), k = (e) => {
1367
- var t = i.comment(), n = i.first_child(t);
1368
- i.each(n, 17, () => S.hourTicks, (e) => e.ring + "-" + e.value, (e, t) => {
1369
- var n = st();
1370
- let r;
1371
- var a = i.child(n, !0);
1372
- i.reset(n), i.template_effect((e) => {
1373
- r = i.set_class(n, 0, "sv-tp__num svelte-1r061pp", null, r, e), i.set_attribute(n, "x", i.get(t).x), i.set_attribute(n, "y", i.get(t).y), i.set_text(a, i.get(t).label);
1374
- }, [() => ({
1375
- "is-active": S.isActiveHour(i.get(t)),
1376
- "is-inner": i.get(t).ring === "inner"
1377
- })]), i.append(e, n);
1378
- }), i.append(e, t);
1379
- }, A = (e) => {
1380
- var t = i.comment(), n = i.first_child(t);
1381
- i.each(n, 17, () => S.minuteTicks, (e) => e.value, (e, t) => {
1382
- var n = ct();
1383
- let r;
1384
- var a = i.child(n, !0);
1385
- i.reset(n), i.template_effect(() => {
1386
- r = i.set_class(n, 0, "sv-tp__num svelte-1r061pp", null, r, { "is-active": i.get(t).value === S.minutes }), i.set_attribute(n, "x", i.get(t).x), i.set_attribute(n, "y", i.get(t).y), i.set_text(a, i.get(t).label);
1387
- }), i.append(e, n);
1388
- }), i.append(e, t);
1389
- };
1390
- i.if(T, (e) => {
1391
- S.selection === "hour" ? e(k) : e(A, -1);
1392
- }), i.reset(m), i.bind_this(m, (e) => C = e, () => C);
1393
- var j = i.sibling(m, 2), M = (e) => {
1394
- var t = lt(), n = i.child(t);
1395
- i.attribute_effect(n, (e) => ({
1396
- class: "sv-tp__now",
1397
- ...e
1398
- }), [() => S.nowProps()], void 0, void 0, "svelte-1r061pp");
1399
- var r = i.child(n, !0);
1400
- i.reset(n), i.reset(t), i.template_effect(() => i.set_text(r, i.get(b).now)), i.append(e, t);
1401
- };
1402
- i.if(j, (e) => {
1403
- u() && e(M);
1404
- });
1405
- var N = i.sibling(j, 2), P = (e) => {
1406
- var n = ut();
1407
- i.remove_input_defaults(n), i.template_effect((e) => {
1408
- i.set_attribute(n, "name", t.name), i.set_value(n, e);
1409
- }, [() => `${String(S.hours).padStart(2, "0")}:${S.mm}`]), i.append(e, n);
1410
- };
1411
- i.if(N, (e) => {
1412
- t.name && e(P);
1413
- }), i.reset(n), i.template_effect((e) => {
1414
- r = i.set_class(n, 1, "sv-tp svelte-1r061pp", null, r, {
1415
- "sv-tp--disabled": f(),
1416
- "sv-tp--invalid": g()
1417
- }), i.set_attribute(n, "id", i.get(v)), i.set_attribute(n, "aria-label", t.label ?? i.get(b).label), i.set_attribute(n, "dir", i.get(x)), i.set_text(s, e), i.set_text(l, S.mm), i.set_attribute(h, "cx", S.C), i.set_attribute(h, "cy", S.C), i.set_attribute(h, "r", S.C - 4), i.set_attribute(_, "x1", S.C), i.set_attribute(_, "y1", S.C), i.set_attribute(_, "x2", S.handEnd.x), i.set_attribute(_, "y2", S.handEnd.y), i.set_attribute(y, "cx", S.C), i.set_attribute(y, "cy", S.C), i.set_attribute(w, "cx", S.handEnd.x), i.set_attribute(w, "cy", S.handEnd.y), n.dir = n.dir;
1418
- }, [() => String(S.displayHour).padStart(2, "0")]), i.append(e, n);
1419
- }, r = {
1420
- label: "Time picker",
1421
- am: "AM",
1422
- pm: "PM",
1423
- now: "Now"
1424
- }, a = i.prop(t, "value", 3, null), o = i.prop(t, "format", 3, "24-hour"), s = i.prop(t, "minuteInterval", 3, 1), c = i.prop(t, "autoSwitchToMinutes", 3, !0), u = i.prop(t, "footer", 3, !1), f = i.prop(t, "disabled", 3, !1), p = i.prop(t, "readonly", 3, !1), m = i.prop(t, "selection", 3, "hour"), h = i.prop(t, "required", 3, !1), g = i.prop(t, "invalid", 3, !1), _ = l("sv-tp"), v = i.derived(() => t.id ?? _), y = i.derived(() => !!(t.label || t.hint || t.error)), b = i.derived(() => d(r, t.messages)), x = i.derived(() => t.dir === "ltr" || t.dir === "rtl" ? t.dir : void 0), S = at({
1425
- value: () => a(),
1426
- onChange: (e) => t.onChange?.(e),
1427
- format: () => o(),
1428
- minuteInterval: () => s(),
1429
- autoSwitchToMinutes: () => c(),
1430
- disabled: () => f(),
1431
- readonly: () => p(),
1432
- selection: () => m()
1433
- }), C = null, w = !1;
1434
- function T(e) {
1435
- let t = C.getBoundingClientRect(), n = S.SIZE / t.width, r = (e.clientX - t.left) * n - S.C, i = (e.clientY - t.top) * n - S.C, a = Math.atan2(i, r) * 180 / Math.PI + 90;
1436
- return a < 0 && (a += 360), {
1437
- angle: a,
1438
- dist: Math.hypot(r, i)
1439
- };
1440
- }
1441
- function E(e) {
1442
- if (!S.isInteractive) return;
1443
- w = !0, C?.setPointerCapture(e.pointerId);
1444
- let { angle: t, dist: n } = T(e);
1445
- S.pointerSelect(t, n);
1446
- }
1447
- function D(e) {
1448
- if (!w) return;
1449
- let { angle: t, dist: n } = T(e);
1450
- S.pointerSelect(t, n);
1451
- }
1452
- function O(e) {
1453
- w && (w = !1, C?.releasePointerCapture(e.pointerId), S.endPointer());
1454
- }
1455
- var k = i.comment(), A = i.first_child(k), j = (e) => {
1456
- ge(e, {
1457
- get id() {
1458
- return i.get(v);
1459
- },
1460
- get label() {
1461
- return t.label;
1462
- },
1463
- get hint() {
1464
- return t.hint;
1465
- },
1466
- get error() {
1467
- return t.error;
1468
- },
1469
- get required() {
1470
- return h();
1471
- },
1472
- get dir() {
1473
- return t.dir;
1474
- },
1475
- children: (e, t) => {
1476
- n(e);
1477
- },
1478
- $$slots: { default: !0 }
1479
- });
1480
- }, M = (e) => {
1481
- n(e);
1482
- };
1483
- i.if(A, (e) => {
1484
- i.get(y) ? e(j) : e(M, -1);
1485
- }), i.append(e, k), i.pop();
1486
- }
1487
- //#endregion
1488
- //#region src/a11y/dismissable.ts
1489
- function mt(e, t) {
1490
- return t ? (Array.isArray(e) ? e : [e]).some((e) => e != null && e.contains(t)) : !1;
1491
- }
1492
- var X = [], ht = !1;
1493
- function gt() {
1494
- ht || typeof document > "u" || (ht = !0, document.addEventListener("keydown", (e) => {
1495
- if (e.key !== "Escape") return;
1496
- let t = X[X.length - 1];
1497
- t?.closeOnEscape && (e.stopPropagation(), t.onDismiss("escape"));
1498
- }, !0), document.addEventListener("pointerdown", (e) => {
1499
- let t = X[X.length - 1];
1500
- t?.closeOnOutside && (mt(t.element(), e.target) || t.onDismiss("outside"));
1501
- }, !0));
1502
- }
1503
- function _t(e) {
1504
- let t = {
1505
- element: e.element,
1506
- onDismiss: e.onDismiss,
1507
- closeOnEscape: e.closeOnEscape ?? !0,
1508
- closeOnOutside: e.closeOnOutside ?? !0
1509
- };
1510
- return {
1511
- activate() {
1512
- gt(), X.includes(t) || X.push(t);
1513
- },
1514
- release() {
1515
- let e = X.indexOf(t);
1516
- e >= 0 && X.splice(e, 1);
1517
- }
1518
- };
1519
- }
1520
- function vt() {
1521
- return X.length;
1522
- }
1523
- function yt(e, t) {
1524
- if (typeof window > "u") return () => {};
1525
- let n = (n) => {
1526
- mt(e(), n.target) || t();
1527
- };
1528
- return window.addEventListener("scroll", n, !0), () => window.removeEventListener("scroll", n, !0);
1529
- }
1530
- //#endregion
1531
- //#region src/datetime/date-format.ts
1532
- var bt = [
1533
- "dddd",
1534
- "ddd",
1535
- "dd",
1536
- "d",
1537
- "MMMM",
1538
- "MMM",
1539
- "MM",
1540
- "M",
1541
- "yyyy",
1542
- "yy",
1543
- "HH",
1544
- "H",
1545
- "hh",
1546
- "h",
1547
- "mm",
1548
- "m",
1549
- "ss",
1550
- "s",
1551
- "fff",
1552
- "ff",
1553
- "f",
1554
- "tt",
1555
- "t"
1556
- ];
1557
- function xt(e) {
1558
- let t = [], n = 0;
1559
- for (; n < e.length;) {
1560
- let r = e[n];
1561
- if (r === "\\" && n + 1 < e.length) {
1562
- t.push({ literal: e[n + 1] }), n += 2;
1563
- continue;
1564
- }
1565
- if (r === "'") {
1566
- let r = n + 1, i = "";
1567
- for (; r < e.length && e[r] !== "'";) i += e[r], r++;
1568
- t.push({ literal: i }), n = r + 1;
1569
- continue;
1570
- }
1571
- let i = null;
1572
- for (let t of bt) if (e.startsWith(t, n)) {
1573
- i = t;
1574
- break;
1575
- }
1576
- i ? (t.push({ token: i }), n += i.length) : (t.push({ literal: r }), n += 1);
1577
- }
1578
- return t;
1579
- }
1580
- var Z = (e, t) => String(Math.abs(e)).padStart(t, "0"), St = /* @__PURE__ */ new Map(), Ct = /* @__PURE__ */ new Map(), wt = /* @__PURE__ */ new Map();
1581
- function Tt(e) {
1582
- let t = St.get(e);
1583
- if (!t) {
1584
- let n = new Intl.DateTimeFormat(e, { month: "long" }), r = new Intl.DateTimeFormat(e, { month: "short" });
1585
- t = {
1586
- long: Array.from({ length: 12 }, (e, t) => n.format(new Date(2021, t, 1))),
1587
- short: Array.from({ length: 12 }, (e, t) => r.format(new Date(2021, t, 1)))
1588
- }, St.set(e, t);
1589
- }
1590
- return t;
1591
- }
1592
- function Et(e) {
1593
- let t = Ct.get(e);
1594
- if (!t) {
1595
- let n = new Intl.DateTimeFormat(e, { weekday: "long" }), r = new Intl.DateTimeFormat(e, { weekday: "short" });
1596
- t = {
1597
- long: Array.from({ length: 7 }, (e, t) => n.format(new Date(2021, 7, 1 + t))),
1598
- short: Array.from({ length: 7 }, (e, t) => r.format(new Date(2021, 7, 1 + t)))
1599
- }, Ct.set(e, t);
1600
- }
1601
- return t;
1602
- }
1603
- function Q(e) {
1604
- let t = wt.get(e);
1605
- if (!t) {
1606
- let n = new Intl.DateTimeFormat(e, {
1607
- hour: "numeric",
1608
- hour12: !0
1609
- });
1610
- t = {
1611
- am: n.formatToParts(new Date(2021, 0, 1, 9)).find((e) => e.type === "dayPeriod")?.value ?? "AM",
1612
- pm: n.formatToParts(new Date(2021, 0, 1, 21)).find((e) => e.type === "dayPeriod")?.value ?? "PM"
1613
- }, wt.set(e, t);
1614
- }
1615
- return t;
1616
- }
1617
- function $(e, t, n = "en-US") {
1618
- let r = xt(t), i = e.getHours(), a = i % 12 == 0 ? 12 : i % 12, o = e.getMilliseconds(), s = "";
1619
- for (let t of r) {
1620
- if ("literal" in t) {
1621
- s += t.literal;
1622
- continue;
1623
- }
1624
- switch (t.token) {
1625
- case "d":
1626
- s += String(e.getDate());
1627
- break;
1628
- case "dd":
1629
- s += Z(e.getDate(), 2);
1630
- break;
1631
- case "ddd":
1632
- s += Et(n).short[e.getDay()];
1633
- break;
1634
- case "dddd":
1635
- s += Et(n).long[e.getDay()];
1636
- break;
1637
- case "M":
1638
- s += String(e.getMonth() + 1);
1639
- break;
1640
- case "MM":
1641
- s += Z(e.getMonth() + 1, 2);
1642
- break;
1643
- case "MMM":
1644
- s += Tt(n).short[e.getMonth()];
1645
- break;
1646
- case "MMMM":
1647
- s += Tt(n).long[e.getMonth()];
1648
- break;
1649
- case "yy":
1650
- s += Z(e.getFullYear() % 100, 2);
1651
- break;
1652
- case "yyyy":
1653
- s += Z(e.getFullYear(), 4);
1654
- break;
1655
- case "H":
1656
- s += String(i);
1657
- break;
1658
- case "HH":
1659
- s += Z(i, 2);
1660
- break;
1661
- case "h":
1662
- s += String(a);
1663
- break;
1664
- case "hh":
1665
- s += Z(a, 2);
1666
- break;
1667
- case "m":
1668
- s += String(e.getMinutes());
1669
- break;
1670
- case "mm":
1671
- s += Z(e.getMinutes(), 2);
1672
- break;
1673
- case "s":
1674
- s += String(e.getSeconds());
1675
- break;
1676
- case "ss":
1677
- s += Z(e.getSeconds(), 2);
1678
- break;
1679
- case "f":
1680
- s += Z(o, 3).slice(0, 1);
1681
- break;
1682
- case "ff":
1683
- s += Z(o, 3).slice(0, 2);
1684
- break;
1685
- case "fff":
1686
- s += Z(o, 3);
1687
- break;
1688
- case "t":
1689
- s += (i < 12 ? Q(n).am : Q(n).pm).slice(0, 1);
1690
- break;
1691
- case "tt":
1692
- s += i < 12 ? Q(n).am : Q(n).pm;
1693
- break;
1694
- default: s += t.token;
1695
- }
1696
- }
1697
- return s;
1698
- }
1699
- var Dt = {
1700
- d: 2,
1701
- dd: 2,
1702
- M: 2,
1703
- MM: 2,
1704
- yy: 2,
1705
- yyyy: 4,
1706
- H: 2,
1707
- HH: 2,
1708
- h: 2,
1709
- hh: 2,
1710
- m: 2,
1711
- mm: 2,
1712
- s: 2,
1713
- ss: 2,
1714
- f: 1,
1715
- ff: 2,
1716
- fff: 3
1717
- };
1718
- function Ot(e, t, n) {
1719
- let r = 0;
1720
- for (; r < n && t + r < e.length && e[t + r] >= "0" && e[t + r] <= "9";) r++;
1721
- return r === 0 ? null : {
1722
- value: parseInt(e.slice(t, t + r), 10),
1723
- len: r
1724
- };
1725
- }
1726
- function kt(e, t, n) {
1727
- let r = n.map((e, t) => ({
1728
- name: e,
1729
- index: t
1730
- })).sort((e, t) => t.name.length - e.name.length), i = e.slice(t).toLowerCase();
1731
- for (let { name: e, index: t } of r) if (e && i.startsWith(e.toLowerCase())) return {
1732
- index: t,
1733
- len: e.length
1734
- };
1735
- return null;
1736
- }
1737
- function At(e, t, n = "en-US", r = 2029, i) {
1738
- let a = xt(t), o = {}, s = 0, c = e;
1739
- for (let e of a) {
1740
- if ("literal" in e) {
1741
- for (let t of e.literal) {
1742
- if (t === " ") {
1743
- for (; c[s] === " ";) s++;
1744
- continue;
1745
- }
1746
- if (c[s] !== t) return null;
1747
- s++;
1748
- }
1749
- continue;
1750
- }
1751
- let t = e.token;
1752
- switch (t) {
1753
- case "ddd":
1754
- case "dddd": {
1755
- let e = kt(c, s, Et(n)[t === "ddd" ? "short" : "long"]);
1756
- if (!e) return null;
1757
- s += e.len;
1758
- break;
1759
- }
1760
- case "MMM":
1761
- case "MMMM": {
1762
- let e = kt(c, s, Tt(n)[t === "MMM" ? "short" : "long"]);
1763
- if (!e) return null;
1764
- o.month = e.index, s += e.len;
1765
- break;
1766
- }
1767
- case "t":
1768
- case "tt": {
1769
- let e = Q(n), t = c.slice(s).toLowerCase();
1770
- if (t.startsWith(e.pm.toLowerCase())) o.isPm = !0, s += e.pm.length;
1771
- else if (t.startsWith(e.am.toLowerCase())) o.isPm = !1, s += e.am.length;
1772
- else if (t.startsWith(e.pm.slice(0, 1).toLowerCase())) o.isPm = !0, s += 1;
1773
- else if (t.startsWith(e.am.slice(0, 1).toLowerCase())) o.isPm = !1, s += 1;
1774
- else return null;
1775
- break;
1776
- }
1777
- default: {
1778
- let e = Ot(c, s, Dt[t] ?? 2);
1779
- if (!e) return null;
1780
- s += e.len;
1781
- let n = e.value;
1782
- switch (t) {
1783
- case "d":
1784
- case "dd":
1785
- o.day = n;
1786
- break;
1787
- case "M":
1788
- case "MM":
1789
- o.month = n - 1;
1790
- break;
1791
- case "yy":
1792
- o.year = n <= r % 100 ? 2e3 + n : 1900 + n;
1793
- break;
1794
- case "yyyy":
1795
- o.year = n;
1796
- break;
1797
- case "H":
1798
- case "HH":
1799
- o.hour = n;
1800
- break;
1801
- case "h":
1802
- case "hh":
1803
- o.hour12 = n;
1804
- break;
1805
- case "m":
1806
- case "mm":
1807
- o.minute = n;
1808
- break;
1809
- case "s":
1810
- case "ss":
1811
- o.second = n;
1812
- break;
1813
- case "f":
1814
- o.ms = n * 100;
1815
- break;
1816
- case "ff":
1817
- o.ms = n * 10;
1818
- break;
1819
- case "fff": o.ms = n;
1820
- }
1821
- }
1822
- }
1823
- }
1824
- if (s !== c.length && c.slice(s).trim() !== "") return null;
1825
- let l = i ?? new Date(1970, 0, 1), u = o.hour;
1826
- u == null && o.hour12 != null && (u = o.hour12 % 12, o.isPm && (u += 12));
1827
- 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());
1828
- return o.day != null && m.getDate() !== p || o.month != null && m.getMonth() !== f || isNaN(m.getTime()) ? null : m;
1829
- }
1830
- //#endregion
1831
- //#region src/createDateTimePicker.svelte.ts
1832
- var jt = () => typeof navigator < "u" ? navigator.language : "en-US";
1833
- function Mt(e) {
1834
- let t = () => e.formatString?.() ?? "yyyy-MM-dd HH:mm", n = () => e.nullable?.() ?? !0, r = () => e.locale?.() ?? jt(), a = () => e.dropDownDisplayMode?.() ?? "both", o = () => e.spinButtons?.() ?? !1, s = () => e.stepMinutes?.() ?? 1, c = () => e.disabled?.() ?? !1, l = () => e.readonly?.() ?? !1, d = i.derived(() => !c() && !l()), m = i.derived(() => f(e.min?.() ?? null)), h = i.derived(() => f(e.max?.() ?? null)), g = i.state(null), _ = i.state(""), v = "￿";
1835
- i.user_effect(() => {
1836
- let n = f(e.value()), a = n ? String(n.getTime()) : "null";
1837
- a !== v && (v = a, i.set(g, n, !0), i.set(_, n ? $(n, t(), r()) : "", !0));
1838
- });
1839
- let y = i.state(!1), b = i.state("date"), x = i.derived(() => a() !== "time"), S = i.derived(() => a() !== "calendar");
1840
- function C(n) {
1841
- let a = n ? w(n, i.get(m), i.get(h)) : null;
1842
- i.set(g, a, !0), v = a ? String(a.getTime()) : "null", i.set(_, a ? $(a, t(), r()) : "", !0), e.onChange?.(a);
1843
- }
1844
- function T() {
1845
- let e = i.get(_).trim();
1846
- if (!e) {
1847
- n() ? C(null) : i.set(_, i.get(g) ? $(i.get(g), t(), r()) : "", !0);
1848
- return;
1849
- }
1850
- let a = At(e, t(), r(), 2029, i.get(g) ?? /* @__PURE__ */ new Date());
1851
- a ? C(a) : i.set(_, i.get(g) ? $(i.get(g), t(), r()) : "", !0);
1852
- }
1853
- function E(e) {
1854
- let t = i.get(g) ?? /* @__PURE__ */ new Date();
1855
- C(new Date(t.getTime() + e * 6e4));
1856
- }
1857
- function D(t) {
1858
- let n = t[0];
1859
- n && (C(k(n, i.get(g) ?? p(n))), a() === "calendar" ? (i.set(y, !1), e.onCommit?.(i.get(g))) : a() === "both" && i.set(b, "time"));
1860
- }
1861
- function O(e) {
1862
- C(k(i.get(g) ?? /* @__PURE__ */ new Date(), e));
1863
- }
1864
- function A() {
1865
- !i.get(d) || i.get(y) || (i.set(b, a() === "time" ? "time" : "date", !0), i.set(y, !0));
1866
- }
1867
- function j() {
1868
- i.set(y, !1);
1869
- }
1870
- function M() {
1871
- (i.get(y) ? j : A)();
1872
- }
1873
- function N(e) {
1874
- i.set(b, e, !0);
1875
- }
1876
- function P(t) {
1877
- t.key === "Enter" ? (t.preventDefault(), T(), j(), e.onCommit?.(i.get(g))) : t.key === "Escape" ? (j(), e.onCancel?.()) : t.key === "ArrowDown" && (t.altKey || !i.get(_)) ? (t.preventDefault(), A()) : o() && t.key === "ArrowUp" ? (t.preventDefault(), E(s())) : o() && t.key === "ArrowDown" && (t.preventDefault(), E(-s()));
1878
- }
1879
- return {
1880
- get current() {
1881
- return i.get(g);
1882
- },
1883
- get text() {
1884
- return i.get(_);
1885
- },
1886
- set text(e) {
1887
- i.set(_, e, !0);
1888
- },
1889
- get open() {
1890
- return i.get(y);
1891
- },
1892
- get tab() {
1893
- return i.get(b);
1894
- },
1895
- get isInteractive() {
1896
- return i.get(d);
1897
- },
1898
- get showDateTab() {
1899
- return i.get(x);
1900
- },
1901
- get showTimeTab() {
1902
- return i.get(S);
1903
- },
1904
- commit: C,
1905
- commitFromText: T,
1906
- bump: E,
1907
- onCalendarChange: D,
1908
- onTimeChange: O,
1909
- openPanel: A,
1910
- closePanel: j,
1911
- toggle: M,
1912
- setTab: N,
1913
- onInputKeydown: P,
1914
- inputProps() {
1915
- return {
1916
- id: e.id?.(),
1917
- type: "text",
1918
- disabled: c(),
1919
- readonly: l(),
1920
- ...u({
1921
- id: e.id?.(),
1922
- invalid: e.invalid?.(),
1923
- required: e.required?.(),
1924
- error: e.error?.(),
1925
- hint: e.hint?.(),
1926
- ariaLabel: e.ariaLabel?.()
1927
- }),
1928
- onblur: T,
1929
- onkeydown: P
1930
- };
1931
- },
1932
- toggleProps() {
1933
- return {
1934
- type: "button",
1935
- "aria-label": e.toggleLabel?.() ?? "Open picker",
1936
- "aria-haspopup": "dialog",
1937
- "aria-expanded": i.get(y),
1938
- disabled: !i.get(d),
1939
- tabindex: -1,
1940
- onclick: M
1941
- };
1942
- },
1943
- clearProps() {
1944
- return {
1945
- type: "button",
1946
- "aria-label": e.clearLabel?.() ?? "Clear",
1947
- onclick: () => C(null)
1948
- };
1949
- },
1950
- spinProps(e) {
1951
- return {
1952
- type: "button",
1953
- tabindex: -1,
1954
- "aria-label": e === 1 ? "Increment" : "Decrement",
1955
- disabled: !i.get(d),
1956
- onclick: () => E(e * s())
1957
- };
1958
- },
1959
- tabProps(e) {
1960
- return {
1961
- type: "button",
1962
- role: "tab",
1963
- "aria-selected": i.get(b) === e,
1964
- onclick: () => N(e)
1965
- };
1966
- }
1967
- };
1968
- }
1969
- //#endregion
1970
- //#region src/SvDateTimePicker.svelte
1971
- var Nt = /* @__PURE__ */ e({ default: () => Vt }), Pt = i.from_html("<div class=\"sv-dtp__spin svelte-pd5igp\"><button>▲</button> <button>▼</button></div>"), Ft = i.from_html("<button>&times;</button>"), It = i.from_html("<div class=\"sv-dtp__tabs\" role=\"tablist\"><button> </button> <button> </button></div>"), Lt = i.from_html("<div class=\"sv-dtp__panel\" role=\"dialog\"><!> <div class=\"sv-dtp__body\"><!></div></div>"), Rt = i.from_html("<input type=\"hidden\"/>"), zt = i.from_html("<div><div><!> <input/> <!> <button><svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"></rect><path d=\"M16 2v4M8 2v4M3 10h18\"></path></svg></button></div> <!> <!></div>"), Bt = {
1972
- hash: "svelte-pd5igp",
1973
- code: ".sv-dtp.svelte-pd5igp {--_accent: var(--sg-accent, #2563eb);--_bg: var(--sg-input-bg, var(--sg-bg, #fff));--_fg: var(--sg-fg, #0f172a);--_muted: var(--sg-muted, #64748b);--_border: var(--sg-input-border, var(--sg-border, #cbd5e1));--_radius: var(--sg-radius, 8px);display:inline-block;position:relative;width:240px;color:var(--_fg);}\n /* Fill the container (grid cell editor) instead of the fixed default width. */.sv-dtp--block.svelte-pd5igp {display:block;width:100%;}.sv-dtp--disabled.svelte-pd5igp {opacity:0.6;}.sv-dtp__field.svelte-pd5igp {display:flex;align-items:center;gap:2px;background:var(--_bg);border:1px solid var(--_border);border-radius:var(--_radius);padding-block:0;padding-inline:0 4px;height:34px;}.sv-dtp__field.svelte-pd5igp:focus-within {border-color:var(--_accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--_accent) 22%, transparent);}.sv-dtp__field.is-invalid.svelte-pd5igp {border-color:var(--sg-danger, #dc2626);}.sv-dtp__field.is-invalid.svelte-pd5igp:focus-within {box-shadow:0 0 0 2px color-mix(in srgb, var(--sg-danger, #dc2626) 22%, transparent);}.sv-dtp__input.svelte-pd5igp {flex:1;min-width:0;border:0;background:none;outline:none;color:inherit;font:inherit;font-size:13px;padding:0 8px;height:100%;}.sv-dtp__spin.svelte-pd5igp {display:flex;flex-direction:column;border-inline-end:1px solid var(--_border);}.sv-dtp__spin.svelte-pd5igp button:where(.svelte-pd5igp) {flex:1;width:20px;border:0;background:none;color:var(--_muted);cursor:pointer;font-size:7px;line-height:1;padding:0;}.sv-dtp__spin.svelte-pd5igp button:where(.svelte-pd5igp):hover:not(:disabled) {color:var(--_accent);}.sv-dtp__clear.svelte-pd5igp, .sv-dtp__toggle.svelte-pd5igp {display:grid;place-items:center;width:26px;height:26px;flex:none;background:none;border:0;color:var(--_muted);cursor:pointer;border-radius:6px;}.sv-dtp__clear.svelte-pd5igp {font-size:17px;line-height:1;}.sv-dtp__clear.svelte-pd5igp:hover, .sv-dtp__toggle.svelte-pd5igp:hover {color:var(--_accent);background:color-mix(in srgb, var(--_accent) 10%, transparent);}\n\n /* Portalled panel - lives under <body>, styled globally. */.sv-dtp__panel {z-index:2147483647;background:var(--sg-bg, #fff);border:1px solid var(--sg-border, #e2e8f0);border-radius:12px;box-shadow:0 16px 48px -12px rgba(15, 23, 42, 0.35);overflow:hidden;}.sv-dtp__tabs {display:flex;border-bottom:1px solid var(--sg-border, #e2e8f0);}.sv-dtp__tabs button {flex:1;padding:9px;font:inherit;font-size:11px;font-weight:700;letter-spacing:0.04em;background:none;border:0;color:var(--sg-muted, #64748b);cursor:pointer;border-bottom:2px solid transparent;}.sv-dtp__tabs button.is-active {color:var(--sg-accent, #2563eb);border-bottom-color:var(--sg-accent, #2563eb);}.sv-dtp__body {display:grid;place-items:center;padding:8px;}"
1974
- };
1975
- function Vt(e, a) {
1976
- i.push(a, !0), i.append_styles(e, Bt);
1977
- let o = {
1978
- dialog: "Choose date and time",
1979
- date: "DATE",
1980
- time: "TIME",
1981
- clear: "Clear",
1982
- open: "Open picker"
1983
- }, s = i.prop(a, "value", 3, null), c = i.prop(a, "formatString", 3, "yyyy-MM-dd HH:mm"), u = i.prop(a, "min", 3, null), f = i.prop(a, "max", 3, null), p = i.prop(a, "nullable", 3, !0), m = i.prop(a, "placeholder", 3, "Select date & time"), h = i.prop(a, "disabled", 3, !1), g = i.prop(a, "readonly", 3, !1), _ = i.prop(a, "locale", 19, () => typeof navigator < "u" ? navigator.language : "en-US"), v = i.prop(a, "firstDayOfWeek", 3, 0), y = i.prop(a, "weekNumbers", 3, !1), b = i.prop(a, "hourFormat", 3, "24-hour"), x = i.prop(a, "minuteInterval", 3, 1), S = i.prop(a, "dropDownDisplayMode", 3, "both"), C = i.prop(a, "spinButtons", 3, !1), w = i.prop(a, "stepMinutes", 3, 1), T = i.prop(a, "autoOpen", 3, !1), E = i.prop(a, "block", 3, !1), D = i.prop(a, "animate", 3, !1), O = i.prop(a, "invalid", 3, !1), k = i.prop(a, "required", 3, !1), A = l("sv-dtp"), j = i.derived(() => a.id ?? A), M = i.derived(() => d(o, a.messages)), N = i.derived(() => a.dir === "ltr" || a.dir === "rtl" ? a.dir : void 0), P = Mt({
1984
- value: () => s(),
1985
- onChange: (e) => a.onChange?.(e),
1986
- onCommit: (e) => a.onCommit?.(e),
1987
- onCancel: () => a.onCancel?.(),
1988
- formatString: () => c(),
1989
- min: () => u(),
1990
- max: () => f(),
1991
- nullable: () => p(),
1992
- locale: () => _(),
1993
- dropDownDisplayMode: () => S(),
1994
- spinButtons: () => C(),
1995
- stepMinutes: () => w(),
1996
- disabled: () => h(),
1997
- readonly: () => g(),
1998
- toggleLabel: () => i.get(M).open,
1999
- clearLabel: () => i.get(M).clear,
2000
- id: () => i.get(j),
2001
- invalid: () => O(),
2002
- required: () => k(),
2003
- error: () => a.error,
2004
- hint: () => a.hint,
2005
- ariaLabel: () => a.ariaLabel
2006
- }), F = i.state(null), I = i.state(null), L = i.state(i.proxy({
2007
- top: 0,
2008
- left: 0,
2009
- width: 0,
2010
- openUpward: !1,
2011
- maxHeight: 0,
2012
- availHeight: 0
2013
- }));
2014
- function R() {
2015
- i.get(F) && i.set(L, n(i.get(F).getBoundingClientRect(), {
2016
- estimatedHeight: 360,
2017
- minWidth: 300
2018
- }), !0);
2019
- }
2020
- i.user_effect(() => {
2021
- if (!P.open) return;
2022
- R();
2023
- let e = () => R();
2024
- window.addEventListener("scroll", e, !0), window.addEventListener("resize", e);
2025
- let t = _t({
2026
- element: () => [i.get(F), i.get(I)],
2027
- onDismiss: () => P.closePanel(),
2028
- closeOnEscape: !1
2029
- });
2030
- return t.activate(), () => {
2031
- window.removeEventListener("scroll", e, !0), window.removeEventListener("resize", e), t.release();
2032
- };
2033
- });
2034
- function z(e) {
2035
- T() && (e.focus(), P.openPanel());
2036
- }
2037
- function B(e) {
2038
- let t = e.relatedTarget;
2039
- t && (i.get(F)?.contains(t) || i.get(I)?.contains(t)) || a.onCommit?.(P.current);
2040
- }
2041
- ge(e, {
2042
- get id() {
2043
- return i.get(j);
2044
- },
2045
- get label() {
2046
- return a.label;
2047
- },
2048
- get hint() {
2049
- return a.hint;
2050
- },
2051
- get error() {
2052
- return a.error;
2053
- },
2054
- get required() {
2055
- return k();
2056
- },
2057
- get dir() {
2058
- return a.dir;
2059
- },
2060
- get block() {
2061
- return E();
2062
- },
2063
- children: (e, n) => {
2064
- var o = zt();
2065
- let s;
2066
- var c = i.child(o);
2067
- let l;
2068
- var d = i.child(c), g = (e) => {
2069
- var t = Pt(), n = i.child(t);
2070
- i.attribute_effect(n, (e) => ({ ...e }), [() => P.spinProps(1)], void 0, void 0, "svelte-pd5igp");
2071
- var r = i.sibling(n, 2);
2072
- i.attribute_effect(r, (e) => ({ ...e }), [() => P.spinProps(-1)], void 0, void 0, "svelte-pd5igp"), i.reset(t), i.append(e, t);
2073
- };
2074
- i.if(d, (e) => {
2075
- C() && e(g);
2076
- });
2077
- var S = i.sibling(d, 2);
2078
- i.attribute_effect(S, (e) => ({
2079
- class: "sv-dtp__input",
2080
- placeholder: m(),
2081
- ...e
2082
- }), [() => P.inputProps()], void 0, void 0, "svelte-pd5igp", !0), i.effect(() => i.bind_value(S, () => P.text, (e) => P.text = e)), i.action(S, (e) => z?.(e));
2083
- var w = i.sibling(S, 2), T = (e) => {
2084
- var t = Ft();
2085
- i.attribute_effect(t, (e) => ({
2086
- class: "sv-dtp__clear",
2087
- ...e
2088
- }), [() => P.clearProps()], void 0, void 0, "svelte-pd5igp"), i.append(e, t);
2089
- };
2090
- i.if(w, (e) => {
2091
- p() && P.current && P.isInteractive && e(T);
2092
- });
2093
- var k = i.sibling(w, 2);
2094
- i.attribute_effect(k, (e) => ({
2095
- class: "sv-dtp__toggle",
2096
- ...e
2097
- }), [() => P.toggleProps()], void 0, void 0, "svelte-pd5igp"), i.reset(c), i.bind_this(c, (e) => i.set(F, e), () => i.get(F));
2098
- var A = i.sibling(c, 2), j = (e) => {
2099
- var n = Lt();
2100
- let a;
2101
- var o = i.child(n), s = (e) => {
2102
- var t = It(), n = i.child(t);
2103
- i.attribute_effect(n, (e) => ({
2104
- ...e,
2105
- [i.CLASS]: { "is-active": P.tab === "date" }
2106
- }), [() => P.tabProps("date")], void 0, void 0, "svelte-pd5igp");
2107
- var r = i.child(n, !0);
2108
- i.reset(n);
2109
- var a = i.sibling(n, 2);
2110
- i.attribute_effect(a, (e) => ({
2111
- ...e,
2112
- [i.CLASS]: { "is-active": P.tab === "time" }
2113
- }), [() => P.tabProps("time")], void 0, void 0, "svelte-pd5igp");
2114
- var o = i.child(a, !0);
2115
- i.reset(a), i.reset(t), i.template_effect(() => {
2116
- i.set_text(r, i.get(M).date), i.set_text(o, i.get(M).time);
2117
- }), i.append(e, t);
2118
- };
2119
- i.if(o, (e) => {
2120
- P.showDateTab && P.showTimeTab && e(s);
2121
- });
2122
- var c = i.sibling(o, 2), l = i.child(c), d = (e) => {
2123
- $e(e, {
2124
- get value() {
2125
- return P.current;
2126
- },
2127
- selectionMode: "one",
2128
- get min() {
2129
- return u();
2130
- },
2131
- get max() {
2132
- return f();
2133
- },
2134
- get firstDayOfWeek() {
2135
- return v();
2136
- },
2137
- get weekNumbers() {
2138
- return y();
2139
- },
2140
- get locale() {
2141
- return _();
2142
- },
2143
- get animate() {
2144
- return D();
2145
- },
2146
- get dir() {
2147
- return i.get(N);
2148
- },
2149
- get onChange() {
2150
- return P.onCalendarChange;
2151
- }
2152
- });
2153
- }, p = (e) => {
2154
- pt(e, {
2155
- get value() {
2156
- return P.current;
2157
- },
2158
- get format() {
2159
- return b();
2160
- },
2161
- get minuteInterval() {
2162
- return x();
2163
- },
2164
- footer: !0,
2165
- get dir() {
2166
- return i.get(N);
2167
- },
2168
- get onChange() {
2169
- return P.onTimeChange;
2170
- }
2171
- });
2172
- };
2173
- i.if(l, (e) => {
2174
- P.tab === "date" && P.showDateTab ? e(d) : P.showTimeTab && e(p, 1);
2175
- }), i.reset(c), i.reset(n), i.bind_this(n, (e) => i.set(I, e), () => i.get(I)), i.action(n, (e) => t?.(e)), i.action(n, (e, t) => r?.(e, t), () => ({ up: i.get(L).openUpward })), i.template_effect(() => {
2176
- i.set_attribute(n, "aria-label", i.get(M).dialog), i.set_attribute(n, "dir", i.get(N)), a = i.set_style(n, "", a, {
2177
- position: "fixed",
2178
- top: `${i.get(L).top}px`,
2179
- left: `${i.get(L).left}px`
2180
- }), n.dir = n.dir;
2181
- }), i.append(e, n);
2182
- };
2183
- i.if(A, (e) => {
2184
- P.open && e(j);
2185
- });
2186
- var R = i.sibling(A, 2), V = (e) => {
2187
- var t = Rt();
2188
- i.remove_input_defaults(t), i.template_effect((e) => {
2189
- i.set_attribute(t, "name", a.name), i.set_value(t, e);
2190
- }, [() => P.current ? P.current.toISOString() : ""]), i.append(e, t);
2191
- };
2192
- i.if(R, (e) => {
2193
- a.name && e(V);
2194
- }), i.reset(o), i.template_effect(() => {
2195
- s = i.set_class(o, 1, "sv-dtp svelte-pd5igp", null, s, {
2196
- "sv-dtp--disabled": h(),
2197
- "sv-dtp--block": E()
2198
- }), i.set_attribute(o, "dir", i.get(N)), l = i.set_class(c, 1, "sv-dtp__field svelte-pd5igp", null, l, { "is-invalid": O() }), o.dir = o.dir;
2199
- }), i.delegated("focusout", o, B), i.append(e, o);
2200
- },
2201
- $$slots: { default: !0 }
2202
- }), i.pop();
2203
- }
2204
- i.delegate(["focusout"]);
2205
- //#endregion
2206
- export { S as A, _ as B, J as C, z as D, ee as E, T as F, o as G, O as H, D as I, d as J, s as K, A as L, w as M, E as N, R as O, v as P, p as R, ve as S, ge as T, k as U, f as V, u as W, De as _, At as a, _e as b, vt as c, at as d, it as f, Ee as g, ke as h, $ as i, C as j, x as k, yt as l, Ae as m, Nt as n, xt as o, $e as p, l as q, Mt as r, _t as s, Vt as t, pt as u, we as v, xe as w, Se as x, Te as y, m as z };