@svgrid/grid 3.0.2 → 3.0.4

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 (281) hide show
  1. package/README.md +2 -1
  2. package/dist/GridMenus.svelte +44 -2
  3. package/dist/SvChartMenu.svelte +69 -0
  4. package/dist/SvChartMenu.svelte.d.ts +11 -0
  5. package/dist/SvChartPanes.svelte +113 -0
  6. package/dist/SvChartPanes.svelte.d.ts +20 -0
  7. package/dist/SvGrid.controller.svelte.d.ts +110 -39
  8. package/dist/SvGrid.controller.svelte.js +655 -200
  9. package/dist/SvGrid.css +105 -2
  10. package/dist/SvGrid.svelte +386 -514
  11. package/dist/SvGrid.types.d.ts +210 -9
  12. package/dist/SvGridCellEditor.svelte +17 -0
  13. package/dist/SvGridChart.svelte +2257 -329
  14. package/dist/SvGridChart.svelte.d.ts +6 -106
  15. package/dist/SvGridChart.types.d.ts +338 -0
  16. package/dist/SvGridChart.types.js +1 -0
  17. package/dist/SvGridChartBuilder.svelte +323 -0
  18. package/dist/SvGridChartBuilder.svelte.d.ts +34 -0
  19. package/dist/SvGridChartPanel.svelte +221 -275
  20. package/dist/SvGridChartPickers.svelte +417 -0
  21. package/dist/SvGridChartPickers.svelte.d.ts +70 -0
  22. package/dist/SvGridChartView.svelte +13 -14
  23. package/dist/SvModal.svelte +7 -1
  24. package/dist/SvModal.svelte.d.ts +5 -0
  25. package/dist/ai.d.ts +40 -8
  26. package/dist/ai.js +135 -24
  27. package/dist/aria.d.ts +11 -0
  28. package/dist/build-api.js +108 -22
  29. package/dist/cdn/GridMenus-7kbpnnBW.js +635 -0
  30. package/dist/cdn/GridMenus-BL7ZgQvU.js +636 -0
  31. package/dist/cdn/SvChartMenu-Bl6PBbkT.js +58 -0
  32. package/dist/cdn/SvChartMenu-FBSMINA6.js +59 -0
  33. package/dist/cdn/{SvDateRangeInput-DMLKmGEc.js → SvDateRangeInput-BeU_TkbQ.js} +15 -14
  34. package/dist/cdn/{SvDateRangeInput-CaOuMs8O.js → SvDateRangeInput-yX8vzleW.js} +38 -37
  35. package/dist/cdn/{SvDateTimePicker-sonaH0oh.js → SvDateTimePicker-DQwt4UAs.js} +139 -180
  36. package/dist/cdn/SvDateTimePicker-vNU6bZ-q.js +775 -0
  37. package/dist/cdn/{SvGridCellEditor-CjEJMJKc.js → SvGridCellEditor-B1p-vCK5.js} +188 -178
  38. package/dist/cdn/{SvGridCellEditor-BWnTi2N7.js → SvGridCellEditor-D_0q4xAu.js} +98 -88
  39. package/dist/cdn/SvGridChart-C3EWAZaM.js +3574 -0
  40. package/dist/cdn/SvGridChart-DzLkSwCH.js +3572 -0
  41. package/dist/cdn/SvGridChartBuilder-BE2T1ykB.js +783 -0
  42. package/dist/cdn/SvGridChartBuilder-CfII62sZ.js +784 -0
  43. package/dist/cdn/SvGridChartPanel-CCX5_Wgd.js +675 -0
  44. package/dist/cdn/SvGridChartPanel-xf4sWVTo.js +699 -0
  45. package/dist/cdn/SvGridChartView-CfuXmY5I.js +48 -0
  46. package/dist/cdn/SvGridChartView-DYwabQWj.js +47 -0
  47. package/dist/cdn/SvMenuList-CLN8OuIK.js +452 -0
  48. package/dist/cdn/SvMenuList-DkGhNKjf.js +451 -0
  49. package/dist/cdn/SvModal-BAE-pjZX.js +396 -0
  50. package/dist/cdn/SvModal-CIZWCcad.js +397 -0
  51. package/dist/cdn/chart-Dz7SqMXH.js +4341 -0
  52. package/dist/cdn/chart-export-BXqueeWJ.js +135 -0
  53. package/dist/cdn/chart-export-pdf-DONFUnNY.js +110 -0
  54. package/dist/cdn/chart-panel-messages-CUbf2R4i.js +1052 -0
  55. package/dist/cdn/chart-panel-messages-CmNrMdsr.js +1053 -0
  56. package/dist/cdn/chart-summary-BJW_tg_X.js +138 -0
  57. package/dist/cdn/chart-trend-CaN9mDEV.js +50 -0
  58. package/dist/cdn/chart-validate-HcOVFAfJ.js +188 -0
  59. package/dist/cdn/{column-resize-DsfNXMom.js → column-resize-DpmOLfRp.js} +3 -3
  60. package/dist/cdn/{date-format-BnnHlqGw.js → date-format-CtquV-p3.js} +583 -603
  61. package/dist/cdn/{date-format-BNii4zeD.js → date-format-D6KFzU_W.js} +347 -367
  62. package/dist/cdn/dismissable-DAHetSNk.js +44 -0
  63. package/dist/cdn/editor-contract-LXgQJAgd.js +22 -0
  64. package/dist/cdn/focus-trap-BBOQYBma.js +65 -0
  65. package/dist/cdn/{row-resize-BRcimkUT.js → row-resize-niQCp040.js} +44 -36
  66. package/dist/cdn/{src-DNbz94Ct.js → src-BKhZ6eXd.js} +10227 -9787
  67. package/dist/cdn/{src-BJ2opd0j.js → src-V1uu8iE9.js} +6568 -6128
  68. package/dist/cdn/svgrid.js +26 -15
  69. package/dist/cdn/svgrid.svelte-external.js +26 -15
  70. package/dist/chart-axes.d.ts +53 -0
  71. package/dist/chart-axes.js +351 -0
  72. package/dist/chart-cartesian.d.ts +88 -0
  73. package/dist/chart-cartesian.js +1862 -0
  74. package/dist/chart-decimate.d.ts +51 -0
  75. package/dist/chart-decimate.js +199 -0
  76. package/dist/chart-export-pdf.d.ts +47 -0
  77. package/dist/chart-export-pdf.js +187 -0
  78. package/dist/chart-export.d.ts +2 -1
  79. package/dist/chart-export.js +18 -3
  80. package/dist/chart-financial.d.ts +91 -0
  81. package/dist/chart-financial.js +175 -0
  82. package/dist/chart-flow.d.ts +10 -0
  83. package/dist/chart-flow.js +298 -0
  84. package/dist/chart-format.d.ts +18 -0
  85. package/dist/chart-format.js +65 -0
  86. package/dist/chart-grid.d.ts +8 -0
  87. package/dist/chart-grid.js +190 -0
  88. package/dist/chart-hierarchy.d.ts +17 -0
  89. package/dist/chart-hierarchy.js +146 -0
  90. package/dist/chart-indicators.d.ts +115 -0
  91. package/dist/chart-indicators.js +389 -0
  92. package/dist/chart-messages.d.ts +95 -0
  93. package/dist/chart-messages.js +92 -0
  94. package/dist/chart-motion.d.ts +16 -0
  95. package/dist/chart-motion.js +141 -0
  96. package/dist/chart-panel-messages.d.ts +265 -0
  97. package/dist/chart-panel-messages.js +285 -0
  98. package/dist/chart-pivot.d.ts +87 -0
  99. package/dist/chart-pivot.js +156 -0
  100. package/dist/chart-polar.d.ts +25 -0
  101. package/dist/chart-polar.js +700 -0
  102. package/dist/chart-samples.d.ts +16 -0
  103. package/dist/chart-samples.js +153 -0
  104. package/dist/chart-scale.d.ts +113 -0
  105. package/dist/chart-scale.js +405 -0
  106. package/dist/chart-stats.d.ts +111 -0
  107. package/dist/chart-stats.js +419 -0
  108. package/dist/chart-stream.d.ts +45 -0
  109. package/dist/chart-stream.js +91 -0
  110. package/dist/chart-summary.d.ts +27 -0
  111. package/dist/chart-summary.js +205 -0
  112. package/dist/chart-sync.svelte.d.ts +32 -0
  113. package/dist/chart-sync.svelte.js +23 -0
  114. package/dist/chart-table.d.ts +35 -0
  115. package/dist/chart-table.js +165 -0
  116. package/dist/chart-trend.d.ts +19 -0
  117. package/dist/chart-trend.js +61 -0
  118. package/dist/chart-types.d.ts +1456 -0
  119. package/dist/chart-types.js +6 -0
  120. package/dist/chart-validate.d.ts +43 -0
  121. package/dist/chart-validate.js +272 -0
  122. package/dist/chart-zoom.d.ts +40 -0
  123. package/dist/chart-zoom.js +145 -0
  124. package/dist/chart.d.ts +186 -865
  125. package/dist/chart.js +460 -2204
  126. package/dist/clipboard.d.ts +1 -0
  127. package/dist/clipboard.js +137 -18
  128. package/dist/column-resize.d.ts +3 -0
  129. package/dist/column-resize.js +4 -1
  130. package/dist/columns.js +3 -0
  131. package/dist/command-context.d.ts +19 -0
  132. package/dist/command-context.js +116 -0
  133. package/dist/core.d.ts +7 -0
  134. package/dist/createPopoverSelect.svelte.d.ts +2 -2
  135. package/dist/editing.d.ts +2 -8
  136. package/dist/editing.js +262 -33
  137. package/dist/fill-patterns.d.ts +0 -5
  138. package/dist/fill-patterns.js +56 -2
  139. package/dist/grid-messages.d.ts +10 -3
  140. package/dist/grid-messages.js +5 -0
  141. package/dist/history.d.ts +83 -0
  142. package/dist/history.js +133 -0
  143. package/dist/index.d.ts +24 -6
  144. package/dist/index.js +20 -2
  145. package/dist/keyboard-handlers.js +88 -31
  146. package/dist/keyboard.d.ts +55 -0
  147. package/dist/keyboard.js +132 -0
  148. package/dist/menus.d.ts +3 -1
  149. package/dist/menus.js +7 -2
  150. package/dist/merges.d.ts +97 -0
  151. package/dist/merges.js +147 -0
  152. package/dist/row-resize.d.ts +3 -0
  153. package/dist/row-resize.js +14 -0
  154. package/dist/scroll-sync.d.ts +1 -0
  155. package/dist/scroll-sync.js +24 -0
  156. package/dist/selection.d.ts +16 -0
  157. package/dist/selection.js +108 -16
  158. package/dist/shortcut-registry.d.ts +145 -0
  159. package/dist/shortcut-registry.js +44 -0
  160. package/dist/svgrid-wrapper.types.d.ts +213 -22
  161. package/dist/virtualization/virtualizer.js +38 -17
  162. package/package.json +6 -1
  163. package/src/GridMenus.svelte +44 -2
  164. package/src/SvChartMenu.svelte +69 -0
  165. package/src/SvChartPanes.svelte +113 -0
  166. package/src/SvChartPanes.test.ts +66 -0
  167. package/src/SvGrid.controller.svelte.ts +629 -172
  168. package/src/SvGrid.css +105 -2
  169. package/src/SvGrid.svelte +386 -514
  170. package/src/SvGrid.types.ts +188 -8
  171. package/src/SvGridCellEditor.svelte +17 -0
  172. package/src/SvGridChart.svelte +2257 -329
  173. package/src/SvGridChart.test.ts +1419 -1
  174. package/src/SvGridChart.types.ts +336 -0
  175. package/src/SvGridChartBuilder.svelte +323 -0
  176. package/src/SvGridChartPanel.svelte +221 -275
  177. package/src/SvGridChartPickers.svelte +417 -0
  178. package/src/SvGridChartView.svelte +13 -14
  179. package/src/SvModal.svelte +7 -1
  180. package/src/SvModal.test.ts +9 -0
  181. package/src/ai.test.ts +57 -2
  182. package/src/ai.ts +166 -22
  183. package/src/aria.d.ts +11 -0
  184. package/src/build-api.coverage.test.ts +184 -0
  185. package/src/build-api.ts +107 -18
  186. package/src/chart-axes.test.ts +573 -0
  187. package/src/chart-axes.ts +342 -0
  188. package/src/chart-cartesian.ts +1863 -0
  189. package/src/chart-decimate.test.ts +249 -0
  190. package/src/chart-decimate.ts +186 -0
  191. package/src/chart-export-pdf.test.ts +91 -0
  192. package/src/chart-export-pdf.ts +207 -0
  193. package/src/chart-export.test.ts +14 -0
  194. package/src/chart-export.ts +13 -3
  195. package/src/chart-financial.ts +208 -0
  196. package/src/chart-flow.ts +286 -0
  197. package/src/chart-format.ts +67 -0
  198. package/src/chart-grid.ts +179 -0
  199. package/src/chart-hierarchy.ts +135 -0
  200. package/src/chart-indicators.test.ts +443 -0
  201. package/src/chart-indicators.ts +384 -0
  202. package/src/chart-messages.test.ts +21 -0
  203. package/src/chart-messages.ts +184 -0
  204. package/src/chart-motion.test.ts +71 -0
  205. package/src/chart-motion.ts +148 -0
  206. package/src/chart-panel-messages.test.ts +29 -0
  207. package/src/chart-panel-messages.ts +550 -0
  208. package/src/chart-pivot.test.ts +54 -0
  209. package/src/chart-pivot.ts +225 -0
  210. package/src/chart-polar.ts +674 -0
  211. package/src/chart-samples.ts +106 -0
  212. package/src/chart-scale.ts +394 -0
  213. package/src/chart-series-types.test.ts +714 -0
  214. package/src/chart-stats.ts +409 -0
  215. package/src/chart-stream.test.ts +75 -0
  216. package/src/chart-stream.ts +114 -0
  217. package/src/chart-summary.test.ts +90 -0
  218. package/src/chart-summary.ts +197 -0
  219. package/src/chart-sync.svelte.ts +41 -0
  220. package/src/chart-table.test.ts +76 -0
  221. package/src/chart-table.ts +178 -0
  222. package/src/chart-trend.ts +47 -0
  223. package/src/chart-types.ts +1309 -0
  224. package/src/chart-validate.test.ts +100 -0
  225. package/src/chart-validate.ts +247 -0
  226. package/src/chart-zoom.test.ts +137 -0
  227. package/src/chart-zoom.ts +124 -0
  228. package/src/chart.coverage.test.ts +81 -0
  229. package/src/chart.test.ts +56 -3
  230. package/src/chart.ts +557 -2784
  231. package/src/clipboard.test.ts +151 -0
  232. package/src/clipboard.ts +145 -16
  233. package/src/column-resize.ts +7 -1
  234. package/src/columns.ts +2 -0
  235. package/src/command-context.test.ts +200 -0
  236. package/src/command-context.ts +137 -0
  237. package/src/core.ts +7 -0
  238. package/src/editing.test.ts +281 -3
  239. package/src/editing.ts +256 -38
  240. package/src/fill-patterns.test.ts +35 -0
  241. package/src/fill-patterns.ts +56 -2
  242. package/src/grid-messages.ts +16 -3
  243. package/src/history.test.ts +196 -0
  244. package/src/history.ts +162 -0
  245. package/src/icon-seam.test.ts +3 -2
  246. package/src/index.ts +150 -2
  247. package/src/keyboard-handlers.coverage.test.ts +126 -6
  248. package/src/keyboard-handlers.ts +91 -30
  249. package/src/keyboard-shortcuts.seam.test.ts +200 -0
  250. package/src/keyboard.test.ts +124 -1
  251. package/src/keyboard.ts +142 -0
  252. package/src/menus.test.ts +26 -0
  253. package/src/menus.ts +10 -3
  254. package/src/merges.test.ts +112 -0
  255. package/src/merges.ts +168 -0
  256. package/src/pivot.grid.test.ts +40 -5
  257. package/src/row-resize.test.ts +44 -0
  258. package/src/row-resize.ts +17 -0
  259. package/src/scroll-sync.test.ts +42 -1
  260. package/src/scroll-sync.ts +25 -0
  261. package/src/selection.multi-range.test.ts +34 -0
  262. package/src/selection.test.ts +30 -2
  263. package/src/selection.ts +111 -19
  264. package/src/shortcut-registry.test.ts +97 -0
  265. package/src/shortcut-registry.ts +181 -0
  266. package/src/svgrid-wrapper.types.ts +184 -13
  267. package/src/svgrid.behavior.test.ts +135 -0
  268. package/src/svgrid.charting.test.ts +513 -3
  269. package/src/svgrid.context-menu.test.ts +31 -0
  270. package/src/svgrid.new-features.wrapper.test.ts +10 -3
  271. package/src/virtualization/virtualizer.ts +39 -17
  272. package/dist/cdn/GridMenus-DyFA-QxA.js +0 -602
  273. package/dist/cdn/GridMenus-M2XP9t0_.js +0 -603
  274. package/dist/cdn/SvDateTimePicker-CCbDZNZB.js +0 -816
  275. package/dist/cdn/SvGridChart-DAb9RbRs.js +0 -1480
  276. package/dist/cdn/SvGridChart-Yl-IXZFO.js +0 -1481
  277. package/dist/cdn/SvGridChartPanel-DayQpDsR.js +0 -834
  278. package/dist/cdn/SvGridChartPanel-aqf8n-vJ.js +0 -810
  279. package/dist/cdn/SvGridChartView-CxfakxR0.js +0 -56
  280. package/dist/cdn/SvGridChartView-Dm_YEx9L.js +0 -55
  281. package/dist/cdn/chart-CKJRCPOk.js +0 -1652
@@ -0,0 +1,397 @@
1
+ import { i as e } from "./editor-contract-LXgQJAgd.js";
2
+ import { i as t } from "./popover-P-9P2YYn.js";
3
+ import { t as n } from "./dismissable-DAHetSNk.js";
4
+ import { n as r } from "./focus-trap-BBOQYBma.js";
5
+ import * as i from "svelte/internal/client";
6
+ import "svelte/internal/disclose-version";
7
+ //#region src/a11y/scroll-lock.ts
8
+ var a = 0, o = "", s = "";
9
+ function c() {
10
+ if (typeof document > "u") return () => {};
11
+ let e = document.body;
12
+ if (a === 0) {
13
+ o = e.style.overflow, s = e.style.paddingRight;
14
+ let t = window.innerWidth - document.documentElement.clientWidth;
15
+ if (t > 0) {
16
+ let n = parseFloat(getComputedStyle(e).paddingRight) || 0;
17
+ e.style.paddingRight = `${n + t}px`;
18
+ }
19
+ e.style.overflow = "hidden";
20
+ }
21
+ a++;
22
+ let t = !1;
23
+ return () => {
24
+ t || (t = !0, a = Math.max(0, a - 1), a === 0 && (e.style.overflow = o, e.style.paddingRight = s));
25
+ };
26
+ }
27
+ function l() {
28
+ return a;
29
+ }
30
+ //#endregion
31
+ //#region src/createOverlay.svelte.ts
32
+ function u(e) {
33
+ return i.user_effect(() => {
34
+ if (!e.open() || !e.getDialog()) return;
35
+ e.onOpen?.();
36
+ let t = e.getDialog(), i = e.trapFocus?.() ?? !0 ? r(t, e.initialFocus ? { initialFocus: e.initialFocus } : void 0) : null;
37
+ i?.activate();
38
+ let a = e.scrollLock?.() ?? !0 ? c() : null, o = n({
39
+ element: () => e.getDialog(),
40
+ onDismiss: (t) => {
41
+ (t === "escape" ? e.closeOnEsc?.() ?? !0 : e.closeOnBackdrop?.() ?? !0) && e.onClose();
42
+ }
43
+ });
44
+ return o.activate(), () => {
45
+ o.release(), a?.(), i?.release();
46
+ };
47
+ }), { dialogProps: (e) => ({
48
+ role: "dialog",
49
+ "aria-modal": "true",
50
+ "aria-labelledby": e?.labelledBy,
51
+ "aria-label": e?.label,
52
+ tabindex: -1
53
+ }) };
54
+ }
55
+ //#endregion
56
+ //#region src/createTabs.svelte.ts
57
+ var d = 0;
58
+ function f(e) {
59
+ let t = `sv-tabs-${d++}`, n = () => e.tabs(), r = () => e.orientation?.() ?? "horizontal", a = () => e.activation?.() ?? "automatic", o = i.derived(() => n().filter((e) => !e.disabled)), s = i.derived(() => e.value() ?? n().find((e) => !e.disabled)?.id ?? n()[0]?.id ?? ""), c = i.state(""), l = i.state(0), u = (e) => {
60
+ i.set(c, e, !0), i.update(l);
61
+ }, f = (e) => `${t}-tab-${e}`, p = (e) => `${t}-panel-${e}`;
62
+ function m(t) {
63
+ let r = n().find((e) => e.id === t);
64
+ !r || r.disabled || e.onChange?.(t);
65
+ }
66
+ function h(t) {
67
+ n().find((e) => e.id === t)?.closable && e.onClose?.(t);
68
+ }
69
+ function g(t) {
70
+ let n = i.get(o);
71
+ if (!n.length) return;
72
+ let c = n.findIndex((e) => e.id === i.get(s)), l = r() === "horizontal", d = l && e.dir?.() === "rtl", f = l ? d ? "ArrowLeft" : "ArrowRight" : "ArrowDown", p = l ? d ? "ArrowRight" : "ArrowLeft" : "ArrowUp", g = null;
73
+ if (t.key === f) g = n[(c + 1) % n.length]?.id ?? null;
74
+ else if (t.key === p) g = n[(c - 1 + n.length) % n.length]?.id ?? null;
75
+ else if (t.key === "Home") g = n[0]?.id ?? null;
76
+ else if (t.key === "End") g = n.at(-1)?.id ?? null;
77
+ else if ((t.key === "Enter" || t.key === " ") && a() === "manual") {
78
+ t.preventDefault(), m(i.get(s));
79
+ return;
80
+ } else if (t.key === "Delete") {
81
+ t.preventDefault(), h(i.get(s));
82
+ return;
83
+ } else return;
84
+ g && (t.preventDefault(), u(g), a() === "automatic" && m(g));
85
+ }
86
+ return {
87
+ get activeId() {
88
+ return i.get(s);
89
+ },
90
+ get focusId() {
91
+ return i.get(c);
92
+ },
93
+ get focusTick() {
94
+ return i.get(l);
95
+ },
96
+ isActive: (e) => e === i.get(s),
97
+ select: m,
98
+ close: h,
99
+ onKeydown: g,
100
+ tablistProps: () => ({
101
+ role: "tablist",
102
+ "aria-orientation": r(),
103
+ "aria-label": e.ariaLabel?.()
104
+ }),
105
+ tabProps: (e) => {
106
+ let t = n().find((t) => t.id === e), r = e === i.get(s);
107
+ return {
108
+ role: "tab",
109
+ id: f(e),
110
+ "data-tab": e,
111
+ "aria-selected": r,
112
+ "aria-controls": p(e),
113
+ tabindex: r ? 0 : -1,
114
+ disabled: t?.disabled,
115
+ onclick: () => m(e),
116
+ onkeydown: g
117
+ };
118
+ },
119
+ panelProps: (e) => ({
120
+ role: "tabpanel",
121
+ id: p(e),
122
+ "aria-labelledby": f(e),
123
+ tabindex: 0
124
+ })
125
+ };
126
+ }
127
+ //#endregion
128
+ //#region src/SvTabs.svelte
129
+ var p = i.from_html("<button type=\"button\" class=\"sv-tabs__scroll svelte-kxoh8m\" tabindex=\"-1\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" width=\"15\" height=\"15\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M15 18l-6-6 6-6\"></path></svg></button>"), m = i.from_html("<button type=\"button\" class=\"sv-tabs__close svelte-kxoh8m\" tabindex=\"-1\"><svg viewBox=\"0 0 24 24\" width=\"12\" height=\"12\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\"><path d=\"M6 6l12 12M18 6L6 18\"></path></svg></button>"), h = i.from_html("<span role=\"presentation\"><button> </button> <!></span>"), g = i.from_html("<button type=\"button\" class=\"sv-tabs__scroll svelte-kxoh8m\" tabindex=\"-1\" aria-hidden=\"true\"><svg viewBox=\"0 0 24 24\" width=\"15\" height=\"15\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M9 18l6-6-6-6\"></path></svg></button>"), _ = i.from_html("<div><!></div>"), v = i.from_html("<div><div class=\"sv-tabs__strip svelte-kxoh8m\"><!> <div></div> <!></div> <!></div>"), y = {
130
+ hash: "svelte-kxoh8m",
131
+ code: ".sv-tabs.svelte-kxoh8m {--_accent: var(--sg-accent, #2563eb);display:flex;gap:0;}.sv-tabs--top.svelte-kxoh8m {flex-direction:column;}.sv-tabs--bottom.svelte-kxoh8m {flex-direction:column-reverse;}.sv-tabs--left.svelte-kxoh8m {flex-direction:row;}.sv-tabs--right.svelte-kxoh8m {flex-direction:row-reverse;}.sv-tabs__strip.svelte-kxoh8m {display:flex;align-items:center;min-width:0;}.sv-tabs--vertical.svelte-kxoh8m .sv-tabs__strip:where(.svelte-kxoh8m) {align-items:stretch;}.sv-tabs__list.svelte-kxoh8m {display:flex;gap:2px;}.sv-tabs--horizontal.svelte-kxoh8m .sv-tabs__list:where(.svelte-kxoh8m) {overflow-x:auto;flex:1 1 auto;min-width:0;scrollbar-width:none;scroll-behavior:smooth;}.sv-tabs--horizontal.svelte-kxoh8m .sv-tabs__list:where(.svelte-kxoh8m)::-webkit-scrollbar {display:none;}.sv-tabs--horizontal.svelte-kxoh8m .sv-tabs__tabwrap:where(.svelte-kxoh8m) {flex:none;}.sv-tabs--vertical.svelte-kxoh8m .sv-tabs__list:where(.svelte-kxoh8m) {flex-direction:column;}.sv-tabs__scroll.svelte-kxoh8m {flex:none;display:grid;place-items:center;width:26px;align-self:stretch;background:none;border:0;color:var(--sg-muted, #64748b);cursor:pointer;}.sv-tabs__scroll.svelte-kxoh8m:hover:not(:disabled) {color:var(--_accent);}.sv-tabs__scroll.svelte-kxoh8m:disabled {opacity:0.3;cursor:default;}\n /* Drag-reorder feedback */.sv-tabs__tabwrap.is-drag.svelte-kxoh8m {opacity:0.4;}.sv-tabs__tabwrap.is-over.svelte-kxoh8m::before {content:'';position:absolute;inset-inline-start:-1px;top:5px;bottom:5px;width:2px;background:var(--_accent);border-radius:2px;}.sv-tabs__tabwrap[draggable='true'].svelte-kxoh8m .sv-tabs__tab:where(.svelte-kxoh8m) {cursor:grab;}.sv-tabs--top.svelte-kxoh8m .sv-tabs__list:where(.svelte-kxoh8m) {border-bottom:1px solid var(--sg-border, #e2e8f0);}.sv-tabs--bottom.svelte-kxoh8m .sv-tabs__list:where(.svelte-kxoh8m) {border-top:1px solid var(--sg-border, #e2e8f0);}.sv-tabs--left.svelte-kxoh8m .sv-tabs__list:where(.svelte-kxoh8m) {border-inline-end:1px solid var(--sg-border, #e2e8f0);}.sv-tabs--right.svelte-kxoh8m .sv-tabs__list:where(.svelte-kxoh8m) {border-inline-start:1px solid var(--sg-border, #e2e8f0);}.sv-tabs--pill.svelte-kxoh8m .sv-tabs__list:where(.svelte-kxoh8m) {border:0;background:var(--sg-header-bg, #f1f5f9);padding:3px;border-radius:9px;gap:3px;}.sv-tabs__tabwrap.svelte-kxoh8m {position:relative;display:inline-flex;align-items:center;}.sv-tabs__tab.svelte-kxoh8m {background:none;border:0;font:inherit;font-size:13px;font-weight:600;color:var(--sg-muted, #64748b);padding:9px 14px;cursor:pointer;white-space:nowrap;}.sv-tabs__tabwrap.is-closable.svelte-kxoh8m .sv-tabs__tab:where(.svelte-kxoh8m) {padding-inline-end:4px;}.sv-tabs__tab.svelte-kxoh8m:hover:not(:disabled):not(.is-active) {color:var(--sg-fg, #0f172a);}.sv-tabs__tab.svelte-kxoh8m:disabled {opacity:0.45;cursor:not-allowed;}.sv-tabs__tab.svelte-kxoh8m:focus-visible {outline:2px solid var(--sg-focus-ring, var(--_accent));outline-offset:-2px;border-radius:6px;}.sv-tabs__close.svelte-kxoh8m {display:grid;place-items:center;width:18px;height:18px;margin-inline-end:8px;flex:none;background:none;border:0;color:var(--sg-muted, #64748b);cursor:pointer;border-radius:4px;}.sv-tabs__close.svelte-kxoh8m:hover {background:var(--sg-row-hover-bg, #f1f5f9);color:var(--sg-danger, #dc2626);}.sv-tabs--line.svelte-kxoh8m .sv-tabs__tab.is-active:where(.svelte-kxoh8m) {color:var(--_accent);}.sv-tabs--line.svelte-kxoh8m .sv-tabs__tabwrap.is-active:where(.svelte-kxoh8m)::after {content:'';position:absolute;background:var(--_accent);}.sv-tabs--line.sv-tabs--top.svelte-kxoh8m .sv-tabs__tabwrap.is-active:where(.svelte-kxoh8m)::after {left:8px;right:8px;height:2px;bottom:-1px;}.sv-tabs--line.sv-tabs--bottom.svelte-kxoh8m .sv-tabs__tabwrap.is-active:where(.svelte-kxoh8m)::after {left:8px;right:8px;height:2px;top:-1px;}.sv-tabs--line.sv-tabs--left.svelte-kxoh8m .sv-tabs__tabwrap.is-active:where(.svelte-kxoh8m)::after {top:8px;bottom:8px;width:2px;inset-inline-end:-1px;}.sv-tabs--line.sv-tabs--right.svelte-kxoh8m .sv-tabs__tabwrap.is-active:where(.svelte-kxoh8m)::after {top:8px;bottom:8px;width:2px;inset-inline-start:-1px;}.sv-tabs--pill.svelte-kxoh8m .sv-tabs__tab:where(.svelte-kxoh8m) {border-radius:7px;padding:7px 14px;}.sv-tabs--pill.svelte-kxoh8m .sv-tabs__tabwrap.is-active:where(.svelte-kxoh8m) .sv-tabs__tab:where(.svelte-kxoh8m), .sv-tabs--pill.svelte-kxoh8m .sv-tabs__tab.is-active:where(.svelte-kxoh8m) {background:var(--sg-bg, #fff);color:var(--sg-fg, #0f172a);box-shadow:0 1px 2px rgba(0,0,0,0.08);}.sv-tabs__panel.svelte-kxoh8m {padding:16px 2px;outline:none;flex:1;min-width:0;}"
132
+ };
133
+ function b(e, t) {
134
+ i.push(t, !0), i.append_styles(e, y);
135
+ let n = i.prop(t, "value", 15), r = i.prop(t, "variant", 3, "line"), a = i.prop(t, "activation", 3, "automatic"), o = i.prop(t, "reorderable", 3, !1), s = i.derived(() => t.tabPosition ?? (t.orientation === "vertical" ? "left" : "top")), c = i.derived(() => i.get(s) === "left" || i.get(s) === "right" ? "vertical" : "horizontal"), l = i.derived(() => t.dir === "ltr" || t.dir === "rtl" ? t.dir : void 0), u = i.state(0), d = i.state(0), b = i.state(0), x = i.derived(() => i.get(c) === "horizontal" && i.get(b) > i.get(d) + 1), S = i.derived(() => i.get(u) <= 1), C = i.derived(() => i.get(u) + i.get(d) >= i.get(b) - 1);
136
+ function w() {
137
+ j && (i.set(d, j.clientWidth, !0), i.set(b, j.scrollWidth, !0), i.set(u, j.scrollLeft, !0));
138
+ }
139
+ i.user_effect(() => {
140
+ t.tabs.length, queueMicrotask(w);
141
+ }), i.user_effect(() => {
142
+ let e = () => w();
143
+ return window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
144
+ });
145
+ function T(e) {
146
+ j?.scrollBy({
147
+ left: e * Math.max(120, i.get(d) * .7),
148
+ behavior: "smooth"
149
+ });
150
+ }
151
+ let E = i.state(null), D = i.state(null);
152
+ function O(e, n) {
153
+ if (e === n) return;
154
+ let r = t.tabs.map((e) => e.id), i = r.indexOf(e), a = r.indexOf(n);
155
+ i < 0 || a < 0 || (r.splice(a, 0, r.splice(i, 1)[0]), t.onReorder?.(r));
156
+ }
157
+ let k = f({
158
+ tabs: () => t.tabs,
159
+ value: () => n(),
160
+ onChange: (e) => {
161
+ n(e), t.onChange?.(e);
162
+ },
163
+ onClose: (e) => t.onClose?.(e),
164
+ orientation: () => i.get(c),
165
+ activation: () => a(),
166
+ dir: () => t.dir,
167
+ ariaLabel: () => t.ariaLabel
168
+ }), A = i.derived(() => k.activeId), j = null, M = 0;
169
+ i.user_effect(() => {
170
+ if (k.focusTick !== M) {
171
+ M = k.focusTick;
172
+ let e = k.focusId;
173
+ queueMicrotask(() => j?.querySelector(`[data-tab="${e}"]`)?.focus());
174
+ }
175
+ });
176
+ var N = v(), P = i.child(N), F = i.child(P), I = (e) => {
177
+ var t = p();
178
+ i.template_effect(() => t.disabled = i.get(S)), i.delegated("click", t, () => T(-1)), i.append(e, t);
179
+ };
180
+ i.if(F, (e) => {
181
+ i.get(x) && e(I);
182
+ });
183
+ var L = i.sibling(F, 2), R = (e) => i.set(u, e.currentTarget.scrollLeft, !0);
184
+ i.attribute_effect(L, (e) => ({
185
+ class: "sv-tabs__list",
186
+ onscroll: R,
187
+ ...e
188
+ }), [() => k.tablistProps()], void 0, void 0, "svelte-kxoh8m"), i.each(L, 21, () => t.tabs, (e) => e.id, (e, t) => {
189
+ var n = h();
190
+ let r;
191
+ var a = i.child(n);
192
+ i.attribute_effect(a, (e) => ({
193
+ type: "button",
194
+ class: "sv-tabs__tab",
195
+ ...e,
196
+ [i.CLASS]: { "is-active": i.get(t).id === i.get(A) }
197
+ }), [() => k.tabProps(i.get(t).id)], void 0, void 0, "svelte-kxoh8m");
198
+ var s = i.child(a, !0);
199
+ i.reset(a);
200
+ var c = i.sibling(a, 2), l = (e) => {
201
+ var n = m();
202
+ i.template_effect(() => i.set_attribute(n, "aria-label", `Close ${i.get(t).label}`)), i.delegated("click", n, (e) => {
203
+ e.stopPropagation(), k.close(i.get(t).id);
204
+ }), i.append(e, n);
205
+ };
206
+ i.if(c, (e) => {
207
+ i.get(t).closable && e(l);
208
+ }), i.reset(n), i.template_effect(() => {
209
+ r = i.set_class(n, 1, "sv-tabs__tabwrap svelte-kxoh8m", null, r, {
210
+ "is-active": i.get(t).id === i.get(A),
211
+ "is-closable": i.get(t).closable,
212
+ "is-drag": i.get(E) === i.get(t).id,
213
+ "is-over": i.get(D) === i.get(t).id
214
+ }), i.set_attribute(n, "draggable", o() && !i.get(t).disabled), i.set_text(s, i.get(t).label);
215
+ }), i.event("dragstart", n, function(...e) {
216
+ (o() ? (e) => {
217
+ i.set(E, i.get(t).id, !0), e.dataTransfer && (e.dataTransfer.effectAllowed = "move");
218
+ } : void 0)?.apply(this, e);
219
+ }), i.event("dragover", n, function(...e) {
220
+ (o() ? (e) => {
221
+ e.preventDefault(), i.set(D, i.get(t).id, !0);
222
+ } : void 0)?.apply(this, e);
223
+ }), i.event("dragleave", n, function(...e) {
224
+ (o() ? () => {
225
+ i.get(D) === i.get(t).id && i.set(D, null);
226
+ } : void 0)?.apply(this, e);
227
+ }), i.event("drop", n, function(...e) {
228
+ (o() ? (e) => {
229
+ e.preventDefault(), i.get(E) && O(i.get(E), i.get(t).id), i.set(E, null), i.set(D, null);
230
+ } : void 0)?.apply(this, e);
231
+ }), i.event("dragend", n, function(...e) {
232
+ (o() ? () => {
233
+ i.set(E, null), i.set(D, null);
234
+ } : void 0)?.apply(this, e);
235
+ }), i.append(e, n);
236
+ }), i.reset(L), i.bind_this(L, (e) => j = e, () => j);
237
+ var z = i.sibling(L, 2), B = (e) => {
238
+ var t = g();
239
+ i.template_effect(() => t.disabled = i.get(C)), i.delegated("click", t, () => T(1)), i.append(e, t);
240
+ };
241
+ i.if(z, (e) => {
242
+ i.get(x) && e(B);
243
+ }), i.reset(P);
244
+ var V = i.sibling(P, 2), H = (e) => {
245
+ var n = _();
246
+ i.attribute_effect(n, (e) => ({
247
+ class: "sv-tabs__panel",
248
+ ...e
249
+ }), [() => k.panelProps(i.get(A))], void 0, void 0, "svelte-kxoh8m");
250
+ var r = i.child(n);
251
+ i.snippet(r, () => t.panel, () => i.get(A)), i.reset(n), i.append(e, n);
252
+ };
253
+ i.if(V, (e) => {
254
+ t.panel && e(H);
255
+ }), i.reset(N), i.template_effect(() => {
256
+ i.set_class(N, 1, `sv-tabs sv-tabs--${i.get(s) ?? ""} sv-tabs--${i.get(c) ?? ""} sv-tabs--${r() ?? ""}`, "svelte-kxoh8m"), i.set_attribute(N, "dir", i.get(l)), N.dir = N.dir;
257
+ }), i.bind_element_size(L, "clientWidth", (e) => i.set(d, e)), i.append(e, N), i.pop();
258
+ }
259
+ i.delegate(["click"]);
260
+ //#endregion
261
+ //#region src/SvModal.svelte
262
+ var x = i.from_html("<button type=\"button\" class=\"sv-modal__x\" aria-label=\"Close\">&times;</button>"), S = i.from_html("<div><h2 class=\"sv-modal__title\"> </h2> <!></div>"), C = i.from_html("<div class=\"sv-modal__footer\"><!></div>"), w = i.from_html("<div class=\"sv-modal__resize\" aria-hidden=\"true\"></div>"), T = i.from_html("<div class=\"sv-modal__backdrop\"><div><!> <div class=\"sv-modal__body\"><!></div> <!> <!></div></div>"), E = {
263
+ hash: "svelte-11fjt09",
264
+ code: ".sv-modal__backdrop {position:fixed;inset:0;z-index:2147483000;background:rgba(15, 23, 42, 0.45);backdrop-filter:blur(1.5px);\n animation: svelte-11fjt09-sv-modal-fade 0.16s ease both;}\n @keyframes svelte-11fjt09-sv-modal-fade { from { opacity: 0 } to { opacity: 1 } }\n @media (prefers-reduced-motion: reduce) {.sv-modal__backdrop { animation: none} }.sv-modal {position:fixed;top:50%;left:50%;display:flex;flex-direction:column;max-width:94vw;max-height:88vh;min-width:240px;background:var(--sg-bg, #fff);color:var(--sg-fg, #0f172a);border:1px solid var(--sg-border, #e2e8f0);border-radius:12px;overflow:hidden;box-shadow:0 24px 64px -16px rgba(15, 23, 42, 0.5);\n animation: svelte-11fjt09-sv-modal-in 0.18s cubic-bezier(0.16, 1, 0.3, 1) both;}\n @keyframes svelte-11fjt09-sv-modal-in { from { opacity: 0; transform: translate(-50%, -50%) scale(0.94) } to { opacity: 1 } }\n @media (prefers-reduced-motion: reduce) {.sv-modal { animation: none} }.sv-modal--sm {width:360px;}.sv-modal--md {width:520px;}.sv-modal--lg {width:720px;}.sv-modal.is-resized {max-width:none;max-height:none;}.sv-modal__header {display:flex;align-items:center;gap:12px;padding:13px 16px;border-bottom:1px solid var(--sg-border, #e2e8f0);}.sv-modal__header.is-draggable {cursor:move;touch-action:none;user-select:none;}.sv-modal__title {flex:1;margin:0;font-size:15px;font-weight:650;}.sv-modal__x {flex:none;width:28px;height:28px;display:grid;place-items:center;background:none;border:0;color:var(--sg-muted, #64748b);cursor:pointer;border-radius:6px;font-size:20px;line-height:1;}.sv-modal__x:hover {background:var(--sg-row-hover-bg, #f1f5f9);color:var(--sg-fg, #0f172a);}.sv-modal__body {padding:16px;overflow:auto;flex:1;font-size:13.5px;line-height:1.6;}.sv-modal__footer {display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--sg-border, #e2e8f0);}.sv-modal__resize {position:absolute;inset-inline-end:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg, transparent 50%, var(--sg-muted, #94a3b8) 50%, var(--sg-muted, #94a3b8) 60%, transparent 60%, transparent 72%, var(--sg-muted, #94a3b8) 72%, var(--sg-muted, #94a3b8) 82%, transparent 82%);opacity:0.6;}"
265
+ };
266
+ function D(n, r) {
267
+ i.push(r, !0), i.append_styles(n, E);
268
+ let a = i.prop(r, "open", 15, !1), o = i.prop(r, "size", 3, "md"), s = i.prop(r, "draggable", 3, !1), c = i.prop(r, "resizable", 3, !1), l = i.prop(r, "closeOnBackdrop", 3, !0), d = i.prop(r, "closeOnEsc", 3, !0), f = i.prop(r, "hideClose", 3, !1), p = e("sv-modal-title"), m = i.state(null), h = i.state(i.proxy({
269
+ x: 0,
270
+ y: 0
271
+ })), g = i.state(null);
272
+ function _() {
273
+ a(!1), r.onClose?.();
274
+ }
275
+ let v = u({
276
+ open: () => a(),
277
+ getDialog: () => i.get(m),
278
+ onClose: _,
279
+ closeOnEsc: () => d(),
280
+ closeOnBackdrop: () => l(),
281
+ onOpen: () => {
282
+ i.set(h, {
283
+ x: 0,
284
+ y: 0
285
+ }, !0), i.set(g, null);
286
+ }
287
+ }), y = !1, b = {
288
+ x: 0,
289
+ y: 0,
290
+ ox: 0,
291
+ oy: 0
292
+ };
293
+ function D(e) {
294
+ !s() || e.target.closest(".sv-modal__x") || (y = !0, b = {
295
+ x: e.clientX,
296
+ y: e.clientY,
297
+ ox: i.get(h).x,
298
+ oy: i.get(h).y
299
+ }, e.currentTarget.setPointerCapture(e.pointerId));
300
+ }
301
+ function O(e) {
302
+ y && i.set(h, {
303
+ x: b.ox + (e.clientX - b.x),
304
+ y: b.oy + (e.clientY - b.y)
305
+ }, !0);
306
+ }
307
+ function k(e) {
308
+ y && (y = !1, e.currentTarget.releasePointerCapture(e.pointerId));
309
+ }
310
+ let A = !1, j = {
311
+ x: 0,
312
+ y: 0,
313
+ w: 0,
314
+ h: 0
315
+ };
316
+ function M(e) {
317
+ if (!c() || !i.get(m)) return;
318
+ e.stopPropagation(), A = !0;
319
+ let t = i.get(m).getBoundingClientRect();
320
+ j = {
321
+ x: e.clientX,
322
+ y: e.clientY,
323
+ w: t.width,
324
+ h: t.height
325
+ }, i.set(g, {
326
+ w: t.width,
327
+ h: t.height
328
+ }, !0), e.currentTarget.setPointerCapture(e.pointerId);
329
+ }
330
+ function N(e) {
331
+ A && i.set(g, {
332
+ w: Math.max(240, j.w + (e.clientX - j.x)),
333
+ h: Math.max(160, j.h + (e.clientY - j.y))
334
+ }, !0);
335
+ }
336
+ function P(e) {
337
+ A && (A = !1, e.currentTarget.releasePointerCapture(e.pointerId));
338
+ }
339
+ var F = i.comment(), I = i.first_child(F), L = (e) => {
340
+ var n = T(), a = i.child(n);
341
+ i.attribute_effect(a, (e) => ({
342
+ class: `sv-modal sv-modal--${o() ?? ""}`,
343
+ ...e,
344
+ [i.CLASS]: { "is-resized": !!i.get(g) },
345
+ [i.STYLE]: {
346
+ transform: `translate(calc(-50% + ${i.get(h).x}px), calc(-50% + ${i.get(h).y}px))`,
347
+ width: i.get(g) ? `${i.get(g).w}px` : r.width ? `${r.width}px` : void 0,
348
+ height: i.get(g) ? `${i.get(g).h}px` : void 0
349
+ }
350
+ }), [() => v.dialogProps({ labelledBy: r.title ? p : void 0 })]);
351
+ var l = i.child(a), u = (e) => {
352
+ var t = S();
353
+ let n;
354
+ var a = i.child(t), o = i.child(a, !0);
355
+ i.reset(a);
356
+ var c = i.sibling(a, 2), l = (e) => {
357
+ var t = x();
358
+ i.delegated("click", t, _), i.append(e, t);
359
+ };
360
+ i.if(c, (e) => {
361
+ f() || e(l);
362
+ }), i.reset(t), i.template_effect(() => {
363
+ n = i.set_class(t, 1, "sv-modal__header", null, n, { "is-draggable": s() }), i.set_attribute(a, "id", p), i.set_text(o, r.title ?? "");
364
+ }), i.delegated("pointerdown", t, D), i.delegated("pointermove", t, O), i.delegated("pointerup", t, k), i.event("pointercancel", t, k), i.append(e, t);
365
+ };
366
+ i.if(l, (e) => {
367
+ (r.title || !f()) && e(u);
368
+ });
369
+ var d = i.sibling(l, 2), y = i.child(d);
370
+ i.snippet(y, () => r.children ?? i.noop), i.reset(d);
371
+ var b = i.sibling(d, 2), E = (e) => {
372
+ var t = C(), n = i.child(t);
373
+ i.snippet(n, () => r.footer), i.reset(t), i.append(e, t);
374
+ };
375
+ i.if(b, (e) => {
376
+ r.footer && e(E);
377
+ });
378
+ var A = i.sibling(b, 2), j = (e) => {
379
+ var t = w();
380
+ i.delegated("pointerdown", t, M), i.delegated("pointermove", t, N), i.delegated("pointerup", t, P), i.event("pointercancel", t, P), i.append(e, t);
381
+ };
382
+ i.if(A, (e) => {
383
+ c() && e(j);
384
+ }), i.reset(a), i.bind_this(a, (e) => i.set(m, e), () => i.get(m)), i.reset(n), i.action(n, (e) => t?.(e)), i.append(e, n);
385
+ };
386
+ i.if(I, (e) => {
387
+ a() && e(L);
388
+ }), i.append(n, F), i.pop();
389
+ }
390
+ i.delegate([
391
+ "pointerdown",
392
+ "pointermove",
393
+ "pointerup",
394
+ "click"
395
+ ]);
396
+ //#endregion
397
+ export { c as a, u as i, b as n, l as o, f as r, D as t };