@svgrid/grid 2.2.16 → 2.2.18

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