nebula-cms 0.1.0

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 (241) hide show
  1. package/.claude/settings.local.json +42 -0
  2. package/.github/workflows/ci.yml +31 -0
  3. package/.mcp.json +12 -0
  4. package/.prettierignore +5 -0
  5. package/.prettierrc.cjs +22 -0
  6. package/AGENTS.md +183 -0
  7. package/LICENSE +201 -0
  8. package/README.md +128 -0
  9. package/package.json +74 -0
  10. package/playground/.claude/settings.local.json +5 -0
  11. package/playground/astro.config.mjs +7 -0
  12. package/playground/node_modules/.bin/astro +21 -0
  13. package/playground/node_modules/.bin/rollup +21 -0
  14. package/playground/node_modules/.bin/tsc +21 -0
  15. package/playground/node_modules/.bin/tsserver +21 -0
  16. package/playground/node_modules/.bin/vite +21 -0
  17. package/playground/node_modules/.vite/_svelte_metadata.json +1 -0
  18. package/playground/node_modules/.vite/deps/@astrojs_svelte_client__js.js +80 -0
  19. package/playground/node_modules/.vite/deps/@astrojs_svelte_client__js.js.map +7 -0
  20. package/playground/node_modules/.vite/deps/_metadata.json +184 -0
  21. package/playground/node_modules/.vite/deps/astro___aria-query.js +6776 -0
  22. package/playground/node_modules/.vite/deps/astro___aria-query.js.map +7 -0
  23. package/playground/node_modules/.vite/deps/astro___axobject-query.js +3754 -0
  24. package/playground/node_modules/.vite/deps/astro___axobject-query.js.map +7 -0
  25. package/playground/node_modules/.vite/deps/astro___html-escaper.js +34 -0
  26. package/playground/node_modules/.vite/deps/astro___html-escaper.js.map +7 -0
  27. package/playground/node_modules/.vite/deps/chunk-AJXJMYAF.js +0 -0
  28. package/playground/node_modules/.vite/deps/chunk-AJXJMYAF.js.map +7 -0
  29. package/playground/node_modules/.vite/deps/chunk-ALJIOON6.js +1005 -0
  30. package/playground/node_modules/.vite/deps/chunk-ALJIOON6.js.map +7 -0
  31. package/playground/node_modules/.vite/deps/chunk-BUSYA2B4.js +8 -0
  32. package/playground/node_modules/.vite/deps/chunk-BUSYA2B4.js.map +7 -0
  33. package/playground/node_modules/.vite/deps/chunk-CNYJBM5F.js +21 -0
  34. package/playground/node_modules/.vite/deps/chunk-CNYJBM5F.js.map +7 -0
  35. package/playground/node_modules/.vite/deps/chunk-DBPNBGEI.js +223 -0
  36. package/playground/node_modules/.vite/deps/chunk-DBPNBGEI.js.map +7 -0
  37. package/playground/node_modules/.vite/deps/chunk-G3C2FXJT.js +204 -0
  38. package/playground/node_modules/.vite/deps/chunk-G3C2FXJT.js.map +7 -0
  39. package/playground/node_modules/.vite/deps/chunk-GKDKFWC5.js +27 -0
  40. package/playground/node_modules/.vite/deps/chunk-GKDKFWC5.js.map +7 -0
  41. package/playground/node_modules/.vite/deps/chunk-HNCLEOC5.js +4376 -0
  42. package/playground/node_modules/.vite/deps/chunk-HNCLEOC5.js.map +7 -0
  43. package/playground/node_modules/.vite/deps/chunk-JICYXBFU.js +688 -0
  44. package/playground/node_modules/.vite/deps/chunk-JICYXBFU.js.map +7 -0
  45. package/playground/node_modules/.vite/deps/chunk-KCUTL6DD.js +5099 -0
  46. package/playground/node_modules/.vite/deps/chunk-KCUTL6DD.js.map +7 -0
  47. package/playground/node_modules/.vite/deps/chunk-ZP4UNCSN.js +23 -0
  48. package/playground/node_modules/.vite/deps/chunk-ZP4UNCSN.js.map +7 -0
  49. package/playground/node_modules/.vite/deps/chunk-ZREFNRZZ.js +148 -0
  50. package/playground/node_modules/.vite/deps/chunk-ZREFNRZZ.js.map +7 -0
  51. package/playground/node_modules/.vite/deps/package.json +3 -0
  52. package/playground/node_modules/.vite/deps/smol-toml.js +843 -0
  53. package/playground/node_modules/.vite/deps/smol-toml.js.map +7 -0
  54. package/playground/node_modules/.vite/deps/svelte.js +55 -0
  55. package/playground/node_modules/.vite/deps/svelte.js.map +7 -0
  56. package/playground/node_modules/.vite/deps/svelte___clsx.js +9 -0
  57. package/playground/node_modules/.vite/deps/svelte___clsx.js.map +7 -0
  58. package/playground/node_modules/.vite/deps/svelte_animate.js +57 -0
  59. package/playground/node_modules/.vite/deps/svelte_animate.js.map +7 -0
  60. package/playground/node_modules/.vite/deps/svelte_attachments.js +15 -0
  61. package/playground/node_modules/.vite/deps/svelte_attachments.js.map +7 -0
  62. package/playground/node_modules/.vite/deps/svelte_easing.js +67 -0
  63. package/playground/node_modules/.vite/deps/svelte_easing.js.map +7 -0
  64. package/playground/node_modules/.vite/deps/svelte_events.js +11 -0
  65. package/playground/node_modules/.vite/deps/svelte_events.js.map +7 -0
  66. package/playground/node_modules/.vite/deps/svelte_internal.js +5 -0
  67. package/playground/node_modules/.vite/deps/svelte_internal.js.map +7 -0
  68. package/playground/node_modules/.vite/deps/svelte_internal_client.js +402 -0
  69. package/playground/node_modules/.vite/deps/svelte_internal_client.js.map +7 -0
  70. package/playground/node_modules/.vite/deps/svelte_internal_disclose-version.js +10 -0
  71. package/playground/node_modules/.vite/deps/svelte_internal_disclose-version.js.map +7 -0
  72. package/playground/node_modules/.vite/deps/svelte_internal_flags_async.js +8 -0
  73. package/playground/node_modules/.vite/deps/svelte_internal_flags_async.js.map +7 -0
  74. package/playground/node_modules/.vite/deps/svelte_internal_flags_legacy.js +8 -0
  75. package/playground/node_modules/.vite/deps/svelte_internal_flags_legacy.js.map +7 -0
  76. package/playground/node_modules/.vite/deps/svelte_internal_flags_tracing.js +8 -0
  77. package/playground/node_modules/.vite/deps/svelte_internal_flags_tracing.js.map +7 -0
  78. package/playground/node_modules/.vite/deps/svelte_legacy.js +35 -0
  79. package/playground/node_modules/.vite/deps/svelte_legacy.js.map +7 -0
  80. package/playground/node_modules/.vite/deps/svelte_motion.js +545 -0
  81. package/playground/node_modules/.vite/deps/svelte_motion.js.map +7 -0
  82. package/playground/node_modules/.vite/deps/svelte_reactivity.js +29 -0
  83. package/playground/node_modules/.vite/deps/svelte_reactivity.js.map +7 -0
  84. package/playground/node_modules/.vite/deps/svelte_reactivity_window.js +127 -0
  85. package/playground/node_modules/.vite/deps/svelte_reactivity_window.js.map +7 -0
  86. package/playground/node_modules/.vite/deps/svelte_store.js +103 -0
  87. package/playground/node_modules/.vite/deps/svelte_store.js.map +7 -0
  88. package/playground/node_modules/.vite/deps/svelte_transition.js +208 -0
  89. package/playground/node_modules/.vite/deps/svelte_transition.js.map +7 -0
  90. package/playground/package.json +16 -0
  91. package/playground/pnpm-lock.yaml +3167 -0
  92. package/playground/src/content/authors/jane-doe.json +8 -0
  93. package/playground/src/content/config/build.toml +2 -0
  94. package/playground/src/content/courses/web-fundamentals.json +29 -0
  95. package/playground/src/content/docs/advanced.mdx +6 -0
  96. package/playground/src/content/docs/intro.md +6 -0
  97. package/playground/src/content/guides/getting-started.mdx +6 -0
  98. package/playground/src/content/posts/hello-world.md +7 -0
  99. package/playground/src/content/products/t-shirt.json +16 -0
  100. package/playground/src/content/recipes/pancakes.mdoc +8 -0
  101. package/playground/src/content/settings/site.yml +2 -0
  102. package/playground/src/content.config.ts +198 -0
  103. package/playground/src/env.d.ts +1 -0
  104. package/playground/src/pages/index.astro +11 -0
  105. package/playground/src/pages/nebula.astro +14 -0
  106. package/pnpm-workspace.yaml +2 -0
  107. package/scripts/subset-icons.mjs +178 -0
  108. package/src/astro/index.ts +295 -0
  109. package/src/client/Admin.svelte +283 -0
  110. package/src/client/components/BackendPicker.svelte +291 -0
  111. package/src/client/components/DraftChip.svelte +46 -0
  112. package/src/client/components/MetadataForm.svelte +56 -0
  113. package/src/client/components/ThemeToggle.svelte +18 -0
  114. package/src/client/components/dialogs/DeleteDraftDialog.svelte +51 -0
  115. package/src/client/components/dialogs/FilenameDialog.svelte +129 -0
  116. package/src/client/components/editor/EditorPane.svelte +227 -0
  117. package/src/client/components/editor/EditorTabs.svelte +81 -0
  118. package/src/client/components/editor/EditorToolbar.svelte +131 -0
  119. package/src/client/components/editor/FormatSelector.svelte +66 -0
  120. package/src/client/components/editor/Toolbar.svelte +17 -0
  121. package/src/client/components/fields/ArrayField.svelte +339 -0
  122. package/src/client/components/fields/ArrayItem.svelte +325 -0
  123. package/src/client/components/fields/BooleanField.svelte +114 -0
  124. package/src/client/components/fields/DateField.svelte +82 -0
  125. package/src/client/components/fields/EnumField.svelte +74 -0
  126. package/src/client/components/fields/FieldWrapper.svelte +96 -0
  127. package/src/client/components/fields/NumberField.svelte +99 -0
  128. package/src/client/components/fields/ObjectField.svelte +121 -0
  129. package/src/client/components/fields/SchemaField.svelte +107 -0
  130. package/src/client/components/fields/StringField.svelte +104 -0
  131. package/src/client/components/sidebar/AdminSidebar.svelte +339 -0
  132. package/src/client/components/sidebar/AdminSidebarSort.svelte +123 -0
  133. package/src/client/css/a11y.css +14 -0
  134. package/src/client/css/btn.css +113 -0
  135. package/src/client/css/dialog.css +29 -0
  136. package/src/client/css/field-input.css +39 -0
  137. package/src/client/css/reset.css +59 -0
  138. package/src/client/css/theme.css +77 -0
  139. package/src/client/index.ts +1 -0
  140. package/src/client/js/drafts/merge.svelte.ts +121 -0
  141. package/src/client/js/drafts/ops.svelte.ts +227 -0
  142. package/src/client/js/drafts/storage.ts +108 -0
  143. package/src/client/js/drafts/workers/diff.ts +40 -0
  144. package/src/client/js/editor/editor.svelte.ts +343 -0
  145. package/src/client/js/editor/languages.ts +98 -0
  146. package/src/client/js/editor/link-wrap.ts +45 -0
  147. package/src/client/js/editor/markdown-shortcuts.ts +261 -0
  148. package/src/client/js/handlers/admin.ts +246 -0
  149. package/src/client/js/state/dialogs.svelte.ts +35 -0
  150. package/src/client/js/state/router.svelte.ts +156 -0
  151. package/src/client/js/state/schema.svelte.ts +140 -0
  152. package/src/client/js/state/state.svelte.ts +334 -0
  153. package/src/client/js/state/theme.svelte.ts +173 -0
  154. package/src/client/js/storage/adapter.ts +102 -0
  155. package/src/client/js/storage/client.ts +150 -0
  156. package/src/client/js/storage/db.ts +36 -0
  157. package/src/client/js/storage/fsa.ts +110 -0
  158. package/src/client/js/storage/github.ts +297 -0
  159. package/src/client/js/storage/storage.ts +83 -0
  160. package/src/client/js/storage/workers/frontmatter.ts +320 -0
  161. package/src/client/js/storage/workers/storage.ts +177 -0
  162. package/src/client/js/storage/workers/toml-parser.ts +106 -0
  163. package/src/client/js/storage/workers/yaml-parser.ts +132 -0
  164. package/src/client/js/utils/file-types.ts +192 -0
  165. package/src/client/js/utils/format.ts +16 -0
  166. package/src/client/js/utils/frontmatter.ts +38 -0
  167. package/src/client/js/utils/schema-utils.ts +295 -0
  168. package/src/client/js/utils/slug.ts +18 -0
  169. package/src/client/js/utils/sort.ts +84 -0
  170. package/src/client/js/utils/stable-stringify.ts +27 -0
  171. package/src/client/js/utils/url-utils.ts +38 -0
  172. package/src/types.ts +25 -0
  173. package/src/virtual.d.ts +22 -0
  174. package/svelte.config.js +4 -0
  175. package/tests/astro/build.test.ts +63 -0
  176. package/tests/astro/index.test.ts +689 -0
  177. package/tests/client/components/Admin.test.ts +446 -0
  178. package/tests/client/components/BackendPicker.test.ts +239 -0
  179. package/tests/client/components/DraftChip.test.ts +53 -0
  180. package/tests/client/components/MetadataForm.test.ts +164 -0
  181. package/tests/client/components/dialogs/DeleteDraftDialog.test.ts +91 -0
  182. package/tests/client/components/dialogs/FilenameDialog.test.ts +209 -0
  183. package/tests/client/components/dialogs/dialog-stubs.ts +19 -0
  184. package/tests/client/components/editor/EditorPane.test.ts +100 -0
  185. package/tests/client/components/editor/EditorTabs.test.ts +253 -0
  186. package/tests/client/components/editor/EditorToolbar.test.ts +252 -0
  187. package/tests/client/components/editor/fixtures.ts +31 -0
  188. package/tests/client/components/fields/ArrayField.test.ts +197 -0
  189. package/tests/client/components/fields/BooleanField.test.ts +206 -0
  190. package/tests/client/components/fields/DateField.test.ts +210 -0
  191. package/tests/client/components/fields/EnumField.test.ts +246 -0
  192. package/tests/client/components/fields/NumberField.test.ts +240 -0
  193. package/tests/client/components/fields/ObjectField.test.ts +157 -0
  194. package/tests/client/components/fields/SchemaField.test.ts +190 -0
  195. package/tests/client/components/fields/StringField.test.ts +223 -0
  196. package/tests/client/components/sidebar/AdminSidebar.test.ts +285 -0
  197. package/tests/client/components/sidebar/AdminSidebarSort.test.ts +135 -0
  198. package/tests/client/components/sidebar/sort-mock.ts +23 -0
  199. package/tests/client/js/drafts/fixtures.ts +22 -0
  200. package/tests/client/js/drafts/merge.test.ts +282 -0
  201. package/tests/client/js/drafts/ops.test.ts +658 -0
  202. package/tests/client/js/drafts/storage.test.ts +200 -0
  203. package/tests/client/js/drafts/workers/diff.test.ts +165 -0
  204. package/tests/client/js/editor/editor.test.ts +616 -0
  205. package/tests/client/js/editor/link-wrap.test.ts +225 -0
  206. package/tests/client/js/editor/markdown-shortcuts.test.ts +370 -0
  207. package/tests/client/js/handlers/admin.test.ts +467 -0
  208. package/tests/client/js/state/router.test.ts +619 -0
  209. package/tests/client/js/state/schema.test.ts +266 -0
  210. package/tests/client/js/state/state.test.ts +328 -0
  211. package/tests/client/js/storage/adapter.test.ts +115 -0
  212. package/tests/client/js/storage/client.test.ts +250 -0
  213. package/tests/client/js/storage/db.test.ts +59 -0
  214. package/tests/client/js/storage/fsa.test.ts +284 -0
  215. package/tests/client/js/storage/github.test.ts +349 -0
  216. package/tests/client/js/storage/mock-port.ts +95 -0
  217. package/tests/client/js/storage/storage.test.ts +77 -0
  218. package/tests/client/js/storage/workers/frontmatter.test.ts +479 -0
  219. package/tests/client/js/storage/workers/storage.test.ts +299 -0
  220. package/tests/client/js/storage/workers/toml-parser.test.ts +169 -0
  221. package/tests/client/js/storage/workers/yaml-parser.test.ts +168 -0
  222. package/tests/client/js/utils/file-types.test.ts +268 -0
  223. package/tests/client/js/utils/frontmatter.test.ts +87 -0
  224. package/tests/client/js/utils/schema-utils.test.ts +318 -0
  225. package/tests/client/js/utils/slug.test.ts +58 -0
  226. package/tests/client/js/utils/sort.test.ts +276 -0
  227. package/tests/client/js/utils/stable-stringify.test.ts +68 -0
  228. package/tests/client/js/utils/url-utils.test.ts +70 -0
  229. package/tests/e2e/backend-connection.test.ts +301 -0
  230. package/tests/e2e/draft-lifecycle.test.ts +388 -0
  231. package/tests/e2e/editing.test.ts +355 -0
  232. package/tests/e2e/github-adapter.test.ts +330 -0
  233. package/tests/e2e/helpers/mock-adapter.ts +166 -0
  234. package/tests/e2e/helpers/test-app.ts +155 -0
  235. package/tests/e2e/navigation.test.ts +358 -0
  236. package/tests/e2e/publishing.test.ts +345 -0
  237. package/tests/e2e/unsaved-changes.test.ts +317 -0
  238. package/tests/setup.ts +2 -0
  239. package/tests/stubs/codemirror.ts +197 -0
  240. package/tsconfig.json +19 -0
  241. package/vitest.config.ts +178 -0
@@ -0,0 +1,127 @@
1
+ import {
2
+ ReactiveValue
3
+ } from "./chunk-GKDKFWC5.js";
4
+ import "./chunk-AJXJMYAF.js";
5
+ import "./chunk-HNCLEOC5.js";
6
+ import "./chunk-CNYJBM5F.js";
7
+ import "./chunk-ALJIOON6.js";
8
+ import {
9
+ on
10
+ } from "./chunk-G3C2FXJT.js";
11
+ import {
12
+ get2 as get,
13
+ set,
14
+ source,
15
+ tag
16
+ } from "./chunk-KCUTL6DD.js";
17
+ import {
18
+ true_default
19
+ } from "./chunk-DBPNBGEI.js";
20
+ import "./chunk-ZP4UNCSN.js";
21
+ import "./chunk-BUSYA2B4.js";
22
+
23
+ // ../node_modules/.pnpm/svelte@5.54.1/node_modules/svelte/src/reactivity/window/index.js
24
+ var scrollX = new ReactiveValue(
25
+ true_default ? () => window.scrollX : () => void 0,
26
+ (update) => on(window, "scroll", update)
27
+ );
28
+ var scrollY = new ReactiveValue(
29
+ true_default ? () => window.scrollY : () => void 0,
30
+ (update) => on(window, "scroll", update)
31
+ );
32
+ var innerWidth = new ReactiveValue(
33
+ true_default ? () => window.innerWidth : () => void 0,
34
+ (update) => on(window, "resize", update)
35
+ );
36
+ var innerHeight = new ReactiveValue(
37
+ true_default ? () => window.innerHeight : () => void 0,
38
+ (update) => on(window, "resize", update)
39
+ );
40
+ var outerWidth = new ReactiveValue(
41
+ true_default ? () => window.outerWidth : () => void 0,
42
+ (update) => on(window, "resize", update)
43
+ );
44
+ var outerHeight = new ReactiveValue(
45
+ true_default ? () => window.outerHeight : () => void 0,
46
+ (update) => on(window, "resize", update)
47
+ );
48
+ var screenLeft = new ReactiveValue(
49
+ true_default ? () => window.screenLeft : () => void 0,
50
+ (update) => {
51
+ let value = window.screenLeft;
52
+ let frame = requestAnimationFrame(function check() {
53
+ frame = requestAnimationFrame(check);
54
+ if (value !== (value = window.screenLeft)) {
55
+ update();
56
+ }
57
+ });
58
+ return () => {
59
+ cancelAnimationFrame(frame);
60
+ };
61
+ }
62
+ );
63
+ var screenTop = new ReactiveValue(
64
+ true_default ? () => window.screenTop : () => void 0,
65
+ (update) => {
66
+ let value = window.screenTop;
67
+ let frame = requestAnimationFrame(function check() {
68
+ frame = requestAnimationFrame(check);
69
+ if (value !== (value = window.screenTop)) {
70
+ update();
71
+ }
72
+ });
73
+ return () => {
74
+ cancelAnimationFrame(frame);
75
+ };
76
+ }
77
+ );
78
+ var online = new ReactiveValue(
79
+ true_default ? () => navigator.onLine : () => void 0,
80
+ (update) => {
81
+ const unsub_online = on(window, "online", update);
82
+ const unsub_offline = on(window, "offline", update);
83
+ return () => {
84
+ unsub_online();
85
+ unsub_offline();
86
+ };
87
+ }
88
+ );
89
+ var devicePixelRatio = new class DevicePixelRatio {
90
+ #dpr = source(true_default ? window.devicePixelRatio : void 0);
91
+ #update() {
92
+ const off = on(
93
+ window.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),
94
+ "change",
95
+ () => {
96
+ set(this.#dpr, window.devicePixelRatio);
97
+ off();
98
+ this.#update();
99
+ }
100
+ );
101
+ }
102
+ constructor() {
103
+ if (true_default) {
104
+ this.#update();
105
+ }
106
+ if (true_default) {
107
+ tag(this.#dpr, "window.devicePixelRatio");
108
+ }
109
+ }
110
+ get current() {
111
+ get(this.#dpr);
112
+ return true_default ? window.devicePixelRatio : void 0;
113
+ }
114
+ }();
115
+ export {
116
+ devicePixelRatio,
117
+ innerHeight,
118
+ innerWidth,
119
+ online,
120
+ outerHeight,
121
+ outerWidth,
122
+ screenLeft,
123
+ screenTop,
124
+ scrollX,
125
+ scrollY
126
+ };
127
+ //# sourceMappingURL=svelte_reactivity_window.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../node_modules/.pnpm/svelte@5.54.1/node_modules/svelte/src/reactivity/window/index.js"],
4
+ "sourcesContent": ["import { BROWSER, DEV } from 'esm-env';\nimport { on } from '../../events/index.js';\nimport { ReactiveValue } from '../reactive-value.js';\nimport { get } from '../../internal/client/index.js';\nimport { set, source } from '../../internal/client/reactivity/sources.js';\nimport { tag } from '../../internal/client/dev/tracing.js';\n\n/**\n * `scrollX.current` is a reactive view of `window.scrollX`. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const scrollX = new ReactiveValue(\n\tBROWSER ? () => window.scrollX : () => undefined,\n\t(update) => on(window, 'scroll', update)\n);\n\n/**\n * `scrollY.current` is a reactive view of `window.scrollY`. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const scrollY = new ReactiveValue(\n\tBROWSER ? () => window.scrollY : () => undefined,\n\t(update) => on(window, 'scroll', update)\n);\n\n/**\n * `innerWidth.current` is a reactive view of `window.innerWidth`. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const innerWidth = new ReactiveValue(\n\tBROWSER ? () => window.innerWidth : () => undefined,\n\t(update) => on(window, 'resize', update)\n);\n\n/**\n * `innerHeight.current` is a reactive view of `window.innerHeight`. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const innerHeight = new ReactiveValue(\n\tBROWSER ? () => window.innerHeight : () => undefined,\n\t(update) => on(window, 'resize', update)\n);\n\n/**\n * `outerWidth.current` is a reactive view of `window.outerWidth`. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const outerWidth = new ReactiveValue(\n\tBROWSER ? () => window.outerWidth : () => undefined,\n\t(update) => on(window, 'resize', update)\n);\n\n/**\n * `outerHeight.current` is a reactive view of `window.outerHeight`. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const outerHeight = new ReactiveValue(\n\tBROWSER ? () => window.outerHeight : () => undefined,\n\t(update) => on(window, 'resize', update)\n);\n\n/**\n * `screenLeft.current` is a reactive view of `window.screenLeft`. It is updated inside a `requestAnimationFrame` callback. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const screenLeft = new ReactiveValue(\n\tBROWSER ? () => window.screenLeft : () => undefined,\n\t(update) => {\n\t\tlet value = window.screenLeft;\n\n\t\tlet frame = requestAnimationFrame(function check() {\n\t\t\tframe = requestAnimationFrame(check);\n\n\t\t\tif (value !== (value = window.screenLeft)) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t});\n\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(frame);\n\t\t};\n\t}\n);\n\n/**\n * `screenTop.current` is a reactive view of `window.screenTop`. It is updated inside a `requestAnimationFrame` callback. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const screenTop = new ReactiveValue(\n\tBROWSER ? () => window.screenTop : () => undefined,\n\t(update) => {\n\t\tlet value = window.screenTop;\n\n\t\tlet frame = requestAnimationFrame(function check() {\n\t\t\tframe = requestAnimationFrame(check);\n\n\t\t\tif (value !== (value = window.screenTop)) {\n\t\t\t\tupdate();\n\t\t\t}\n\t\t});\n\n\t\treturn () => {\n\t\t\tcancelAnimationFrame(frame);\n\t\t};\n\t}\n);\n\n/**\n * `online.current` is a reactive view of `navigator.onLine`. On the server it is `undefined`.\n * @since 5.11.0\n */\nexport const online = new ReactiveValue(\n\tBROWSER ? () => navigator.onLine : () => undefined,\n\t(update) => {\n\t\tconst unsub_online = on(window, 'online', update);\n\t\tconst unsub_offline = on(window, 'offline', update);\n\t\treturn () => {\n\t\t\tunsub_online();\n\t\t\tunsub_offline();\n\t\t};\n\t}\n);\n\n/**\n * `devicePixelRatio.current` is a reactive view of `window.devicePixelRatio`. On the server it is `undefined`.\n * Note that behaviour differs between browsers — on Chrome it will respond to the current zoom level,\n * on Firefox and Safari it won't.\n * @type {{ get current(): number | undefined }}\n * @since 5.11.0\n */\nexport const devicePixelRatio = /* @__PURE__ */ new (class DevicePixelRatio {\n\t#dpr = source(BROWSER ? window.devicePixelRatio : undefined);\n\n\t#update() {\n\t\tconst off = on(\n\t\t\twindow.matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`),\n\t\t\t'change',\n\t\t\t() => {\n\t\t\t\tset(this.#dpr, window.devicePixelRatio);\n\n\t\t\t\toff();\n\t\t\t\tthis.#update();\n\t\t\t}\n\t\t);\n\t}\n\n\tconstructor() {\n\t\tif (BROWSER) {\n\t\t\tthis.#update();\n\t\t}\n\n\t\tif (DEV) {\n\t\t\ttag(this.#dpr, 'window.devicePixelRatio');\n\t\t}\n\t}\n\n\tget current() {\n\t\tget(this.#dpr);\n\t\treturn BROWSER ? window.devicePixelRatio : undefined;\n\t}\n})();\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAWO,IAAM,UAAU,IAAI;AAAA,EAC1B,eAAU,MAAM,OAAO,UAAU,MAAM;AAAA,EACvC,CAAC,WAAW,GAAG,QAAQ,UAAU,MAAM;AACxC;AAMO,IAAM,UAAU,IAAI;AAAA,EAC1B,eAAU,MAAM,OAAO,UAAU,MAAM;AAAA,EACvC,CAAC,WAAW,GAAG,QAAQ,UAAU,MAAM;AACxC;AAMO,IAAM,aAAa,IAAI;AAAA,EAC7B,eAAU,MAAM,OAAO,aAAa,MAAM;AAAA,EAC1C,CAAC,WAAW,GAAG,QAAQ,UAAU,MAAM;AACxC;AAMO,IAAM,cAAc,IAAI;AAAA,EAC9B,eAAU,MAAM,OAAO,cAAc,MAAM;AAAA,EAC3C,CAAC,WAAW,GAAG,QAAQ,UAAU,MAAM;AACxC;AAMO,IAAM,aAAa,IAAI;AAAA,EAC7B,eAAU,MAAM,OAAO,aAAa,MAAM;AAAA,EAC1C,CAAC,WAAW,GAAG,QAAQ,UAAU,MAAM;AACxC;AAMO,IAAM,cAAc,IAAI;AAAA,EAC9B,eAAU,MAAM,OAAO,cAAc,MAAM;AAAA,EAC3C,CAAC,WAAW,GAAG,QAAQ,UAAU,MAAM;AACxC;AAMO,IAAM,aAAa,IAAI;AAAA,EAC7B,eAAU,MAAM,OAAO,aAAa,MAAM;AAAA,EAC1C,CAAC,WAAW;AACX,QAAI,QAAQ,OAAO;AAEnB,QAAI,QAAQ,sBAAsB,SAAS,QAAQ;AAClD,cAAQ,sBAAsB,KAAK;AAEnC,UAAI,WAAW,QAAQ,OAAO,aAAa;AAC1C,eAAO;AAAA,MACR;AAAA,IACD,CAAC;AAED,WAAO,MAAM;AACZ,2BAAqB,KAAK;AAAA,IAC3B;AAAA,EACD;AACD;AAMO,IAAM,YAAY,IAAI;AAAA,EAC5B,eAAU,MAAM,OAAO,YAAY,MAAM;AAAA,EACzC,CAAC,WAAW;AACX,QAAI,QAAQ,OAAO;AAEnB,QAAI,QAAQ,sBAAsB,SAAS,QAAQ;AAClD,cAAQ,sBAAsB,KAAK;AAEnC,UAAI,WAAW,QAAQ,OAAO,YAAY;AACzC,eAAO;AAAA,MACR;AAAA,IACD,CAAC;AAED,WAAO,MAAM;AACZ,2BAAqB,KAAK;AAAA,IAC3B;AAAA,EACD;AACD;AAMO,IAAM,SAAS,IAAI;AAAA,EACzB,eAAU,MAAM,UAAU,SAAS,MAAM;AAAA,EACzC,CAAC,WAAW;AACX,UAAM,eAAe,GAAG,QAAQ,UAAU,MAAM;AAChD,UAAM,gBAAgB,GAAG,QAAQ,WAAW,MAAM;AAClD,WAAO,MAAM;AACZ,mBAAa;AACb,oBAAc;AAAA,IACf;AAAA,EACD;AACD;AASO,IAAM,mBAAmC,IAAK,MAAM,iBAAiB;AAAA,EAC3E,OAAO,OAAO,eAAU,OAAO,mBAAmB,MAAS;AAAA,EAE3D,UAAU;AACT,UAAM,MAAM;AAAA,MACX,OAAO,WAAW,gBAAgB,OAAO,gBAAgB,OAAO;AAAA,MAChE;AAAA,MACA,MAAM;AACL,YAAI,KAAK,MAAM,OAAO,gBAAgB;AAEtC,YAAI;AACJ,aAAK,QAAQ;AAAA,MACd;AAAA,IACD;AAAA,EACD;AAAA,EAEA,cAAc;AACb,QAAI,cAAS;AACZ,WAAK,QAAQ;AAAA,IACd;AAEA,QAAI,cAAK;AACR,UAAI,KAAK,MAAM,yBAAyB;AAAA,IACzC;AAAA,EACD;AAAA,EAEA,IAAI,UAAU;AACb,QAAI,KAAK,IAAI;AACb,WAAO,eAAU,OAAO,mBAAmB;AAAA,EAC5C;AACD,EAAG;",
6
+ "names": []
7
+ }
@@ -0,0 +1,103 @@
1
+ import {
2
+ active_effect,
3
+ active_reaction,
4
+ createSubscriber,
5
+ derived,
6
+ effect_root,
7
+ effect_tracking,
8
+ get,
9
+ readable,
10
+ readonly,
11
+ render_effect,
12
+ set_active_effect,
13
+ set_active_reaction,
14
+ writable
15
+ } from "./chunk-KCUTL6DD.js";
16
+ import "./chunk-DBPNBGEI.js";
17
+ import "./chunk-ZP4UNCSN.js";
18
+ import "./chunk-BUSYA2B4.js";
19
+
20
+ // ../node_modules/.pnpm/svelte@5.54.1/node_modules/svelte/src/store/index-client.js
21
+ function toStore(get2, set) {
22
+ var effect = active_effect;
23
+ var reaction = active_reaction;
24
+ var init_value = get2();
25
+ const store = writable(init_value, (set2) => {
26
+ var ran = init_value !== get2();
27
+ var teardown;
28
+ var previous_reaction = active_reaction;
29
+ var previous_effect = active_effect;
30
+ set_active_reaction(reaction);
31
+ set_active_effect(effect);
32
+ try {
33
+ teardown = effect_root(() => {
34
+ render_effect(() => {
35
+ const value = get2();
36
+ if (ran) set2(value);
37
+ });
38
+ });
39
+ } finally {
40
+ set_active_reaction(previous_reaction);
41
+ set_active_effect(previous_effect);
42
+ }
43
+ ran = true;
44
+ return teardown;
45
+ });
46
+ if (set) {
47
+ return {
48
+ set,
49
+ update: (fn) => set(fn(get2())),
50
+ subscribe: store.subscribe
51
+ };
52
+ }
53
+ return {
54
+ subscribe: store.subscribe
55
+ };
56
+ }
57
+ function fromStore(store) {
58
+ let value = (
59
+ /** @type {V} */
60
+ void 0
61
+ );
62
+ const subscribe = createSubscriber((update) => {
63
+ let ran = false;
64
+ const unsubscribe = store.subscribe((v) => {
65
+ value = v;
66
+ if (ran) update();
67
+ });
68
+ ran = true;
69
+ return unsubscribe;
70
+ });
71
+ function current() {
72
+ if (effect_tracking()) {
73
+ subscribe();
74
+ return value;
75
+ }
76
+ return get(store);
77
+ }
78
+ if ("set" in store) {
79
+ return {
80
+ get current() {
81
+ return current();
82
+ },
83
+ set current(v) {
84
+ store.set(v);
85
+ }
86
+ };
87
+ }
88
+ return {
89
+ get current() {
90
+ return current();
91
+ }
92
+ };
93
+ }
94
+ export {
95
+ derived,
96
+ fromStore,
97
+ get,
98
+ readable,
99
+ readonly,
100
+ toStore,
101
+ writable
102
+ };
103
+ //# sourceMappingURL=svelte_store.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../node_modules/.pnpm/svelte@5.54.1/node_modules/svelte/src/store/index-client.js"],
4
+ "sourcesContent": ["/** @import { Readable, Writable } from './public.js' */\nimport {\n\teffect_root,\n\teffect_tracking,\n\trender_effect\n} from '../internal/client/reactivity/effects.js';\nimport { get, writable } from './shared/index.js';\nimport { createSubscriber } from '../reactivity/create-subscriber.js';\nimport {\n\tactive_effect,\n\tactive_reaction,\n\tset_active_effect,\n\tset_active_reaction\n} from '../internal/client/runtime.js';\n\nexport { derived, get, readable, readonly, writable } from './shared/index.js';\n\n/**\n * @template V\n * @overload\n * @param {() => V} get\n * @param {(v: V) => void} set\n * @returns {Writable<V>}\n */\n/**\n * @template V\n * @overload\n * @param {() => V} get\n * @returns {Readable<V>}\n */\n/**\n * Create a store from a function that returns state, and (to make a writable store), an\n * optional second function that sets state.\n *\n * ```ts\n * import { toStore } from 'svelte/store';\n *\n * let count = $state(0);\n *\n * const store = toStore(() => count, (v) => (count = v));\n * ```\n * @template V\n * @param {() => V} get\n * @param {(v: V) => void} [set]\n * @returns {Writable<V> | Readable<V>}\n */\nexport function toStore(get, set) {\n\tvar effect = active_effect;\n\tvar reaction = active_reaction;\n\tvar init_value = get();\n\n\tconst store = writable(init_value, (set) => {\n\t\t// If the value has changed before we call subscribe, then\n\t\t// we need to treat the value as already having run\n\t\tvar ran = init_value !== get();\n\n\t\t// TODO do we need a different implementation on the server?\n\t\tvar teardown;\n\t\t// Apply the reaction and effect at the time of toStore being called\n\t\tvar previous_reaction = active_reaction;\n\t\tvar previous_effect = active_effect;\n\t\tset_active_reaction(reaction);\n\t\tset_active_effect(effect);\n\n\t\ttry {\n\t\t\tteardown = effect_root(() => {\n\t\t\t\trender_effect(() => {\n\t\t\t\t\tconst value = get();\n\t\t\t\t\tif (ran) set(value);\n\t\t\t\t});\n\t\t\t});\n\t\t} finally {\n\t\t\tset_active_reaction(previous_reaction);\n\t\t\tset_active_effect(previous_effect);\n\t\t}\n\n\t\tran = true;\n\n\t\treturn teardown;\n\t});\n\n\tif (set) {\n\t\treturn {\n\t\t\tset,\n\t\t\tupdate: (fn) => set(fn(get())),\n\t\t\tsubscribe: store.subscribe\n\t\t};\n\t}\n\n\treturn {\n\t\tsubscribe: store.subscribe\n\t};\n}\n\n/**\n * @template V\n * @overload\n * @param {Writable<V>} store\n * @returns {{ current: V }}\n */\n/**\n * @template V\n * @overload\n * @param {Readable<V>} store\n * @returns {{ readonly current: V }}\n */\n/**\n * Convert a store to an object with a reactive `current` property. If `store`\n * is a readable store, `current` will be a readonly property.\n *\n * ```ts\n * import { fromStore, get, writable } from 'svelte/store';\n *\n * const store = writable(0);\n *\n * const count = fromStore(store);\n *\n * count.current; // 0;\n * store.set(1);\n * count.current; // 1\n *\n * count.current += 1;\n * get(store); // 2\n * ```\n * @template V\n * @param {Writable<V> | Readable<V>} store\n */\nexport function fromStore(store) {\n\tlet value = /** @type {V} */ (undefined);\n\n\tconst subscribe = createSubscriber((update) => {\n\t\tlet ran = false;\n\n\t\tconst unsubscribe = store.subscribe((v) => {\n\t\t\tvalue = v;\n\t\t\tif (ran) update();\n\t\t});\n\n\t\tran = true;\n\n\t\treturn unsubscribe;\n\t});\n\n\tfunction current() {\n\t\tif (effect_tracking()) {\n\t\t\tsubscribe();\n\t\t\treturn value;\n\t\t}\n\n\t\treturn get(store);\n\t}\n\n\tif ('set' in store) {\n\t\treturn {\n\t\t\tget current() {\n\t\t\t\treturn current();\n\t\t\t},\n\t\t\tset current(v) {\n\t\t\t\tstore.set(v);\n\t\t\t}\n\t\t};\n\t}\n\n\treturn {\n\t\tget current() {\n\t\t\treturn current();\n\t\t}\n\t};\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AA8CO,SAAS,QAAQA,MAAK,KAAK;AACjC,MAAI,SAAS;AACb,MAAI,WAAW;AACf,MAAI,aAAaA,KAAI;AAErB,QAAM,QAAQ,SAAS,YAAY,CAACC,SAAQ;AAG3C,QAAI,MAAM,eAAeD,KAAI;AAG7B,QAAI;AAEJ,QAAI,oBAAoB;AACxB,QAAI,kBAAkB;AACtB,wBAAoB,QAAQ;AAC5B,sBAAkB,MAAM;AAExB,QAAI;AACH,iBAAW,YAAY,MAAM;AAC5B,sBAAc,MAAM;AACnB,gBAAM,QAAQA,KAAI;AAClB,cAAI,IAAK,CAAAC,KAAI,KAAK;AAAA,QACnB,CAAC;AAAA,MACF,CAAC;AAAA,IACF,UAAE;AACD,0BAAoB,iBAAiB;AACrC,wBAAkB,eAAe;AAAA,IAClC;AAEA,UAAM;AAEN,WAAO;AAAA,EACR,CAAC;AAED,MAAI,KAAK;AACR,WAAO;AAAA,MACN;AAAA,MACA,QAAQ,CAAC,OAAO,IAAI,GAAGD,KAAI,CAAC,CAAC;AAAA,MAC7B,WAAW,MAAM;AAAA,IAClB;AAAA,EACD;AAEA,SAAO;AAAA,IACN,WAAW,MAAM;AAAA,EAClB;AACD;AAmCO,SAAS,UAAU,OAAO;AAChC,MAAI;AAAA;AAAA,IAA0B;AAAA;AAE9B,QAAM,YAAY,iBAAiB,CAAC,WAAW;AAC9C,QAAI,MAAM;AAEV,UAAM,cAAc,MAAM,UAAU,CAAC,MAAM;AAC1C,cAAQ;AACR,UAAI,IAAK,QAAO;AAAA,IACjB,CAAC;AAED,UAAM;AAEN,WAAO;AAAA,EACR,CAAC;AAED,WAAS,UAAU;AAClB,QAAI,gBAAgB,GAAG;AACtB,gBAAU;AACV,aAAO;AAAA,IACR;AAEA,WAAO,IAAI,KAAK;AAAA,EACjB;AAEA,MAAI,SAAS,OAAO;AACnB,WAAO;AAAA,MACN,IAAI,UAAU;AACb,eAAO,QAAQ;AAAA,MAChB;AAAA,MACA,IAAI,QAAQ,GAAG;AACd,cAAM,IAAI,CAAC;AAAA,MACZ;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AAAA,IACN,IAAI,UAAU;AACb,aAAO,QAAQ;AAAA,IAChB;AAAA,EACD;AACD;",
6
+ "names": ["get", "set"]
7
+ }
@@ -0,0 +1,208 @@
1
+ import {
2
+ transition_slide_display,
3
+ true_default
4
+ } from "./chunk-DBPNBGEI.js";
5
+ import "./chunk-BUSYA2B4.js";
6
+
7
+ // ../node_modules/.pnpm/svelte@5.54.1/node_modules/svelte/src/transition/index.js
8
+ var linear = (x) => x;
9
+ function cubic_out(t) {
10
+ const f = t - 1;
11
+ return f * f * f + 1;
12
+ }
13
+ function cubic_in_out(t) {
14
+ return t < 0.5 ? 4 * t * t * t : 0.5 * Math.pow(2 * t - 2, 3) + 1;
15
+ }
16
+ function split_css_unit(value) {
17
+ const split = typeof value === "string" && value.match(/^\s*(-?[\d.]+)([^\s]*)\s*$/);
18
+ return split ? [parseFloat(split[1]), split[2] || "px"] : [
19
+ /** @type {number} */
20
+ value,
21
+ "px"
22
+ ];
23
+ }
24
+ function blur(node, { delay = 0, duration = 400, easing = cubic_in_out, amount = 5, opacity = 0 } = {}) {
25
+ const style = getComputedStyle(node);
26
+ const target_opacity = +style.opacity;
27
+ const f = style.filter === "none" ? "" : style.filter;
28
+ const od = target_opacity * (1 - opacity);
29
+ const [value, unit] = split_css_unit(amount);
30
+ return {
31
+ delay,
32
+ duration,
33
+ easing,
34
+ css: (_t, u) => `opacity: ${target_opacity - od * u}; filter: ${f} blur(${u * value}${unit});`
35
+ };
36
+ }
37
+ function fade(node, { delay = 0, duration = 400, easing = linear } = {}) {
38
+ const o = +getComputedStyle(node).opacity;
39
+ return {
40
+ delay,
41
+ duration,
42
+ easing,
43
+ css: (t) => `opacity: ${t * o}`
44
+ };
45
+ }
46
+ function fly(node, { delay = 0, duration = 400, easing = cubic_out, x = 0, y = 0, opacity = 0 } = {}) {
47
+ const style = getComputedStyle(node);
48
+ const target_opacity = +style.opacity;
49
+ const transform = style.transform === "none" ? "" : style.transform;
50
+ const od = target_opacity * (1 - opacity);
51
+ const [x_value, x_unit] = split_css_unit(x);
52
+ const [y_value, y_unit] = split_css_unit(y);
53
+ return {
54
+ delay,
55
+ duration,
56
+ easing,
57
+ css: (t, u) => `
58
+ transform: ${transform} translate(${(1 - t) * x_value}${x_unit}, ${(1 - t) * y_value}${y_unit});
59
+ opacity: ${target_opacity - od * u}`
60
+ };
61
+ }
62
+ var slide_warning = false;
63
+ function slide(node, { delay = 0, duration = 400, easing = cubic_out, axis = "y" } = {}) {
64
+ const style = getComputedStyle(node);
65
+ if (true_default && !slide_warning && /(contents|inline|table)/.test(style.display)) {
66
+ slide_warning = true;
67
+ Promise.resolve().then(() => slide_warning = false);
68
+ transition_slide_display(style.display);
69
+ }
70
+ const opacity = +style.opacity;
71
+ const primary_property = axis === "y" ? "height" : "width";
72
+ const primary_property_value = parseFloat(style[primary_property]);
73
+ const secondary_properties = axis === "y" ? ["top", "bottom"] : ["left", "right"];
74
+ const capitalized_secondary_properties = secondary_properties.map(
75
+ (e) => (
76
+ /** @type {'Left' | 'Right' | 'Top' | 'Bottom'} */
77
+ `${e[0].toUpperCase()}${e.slice(1)}`
78
+ )
79
+ );
80
+ const padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]);
81
+ const padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]);
82
+ const margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]);
83
+ const margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]);
84
+ const border_width_start_value = parseFloat(
85
+ style[`border${capitalized_secondary_properties[0]}Width`]
86
+ );
87
+ const border_width_end_value = parseFloat(
88
+ style[`border${capitalized_secondary_properties[1]}Width`]
89
+ );
90
+ return {
91
+ delay,
92
+ duration,
93
+ easing,
94
+ css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};${primary_property}: ${t * primary_property_value}px;padding-${secondary_properties[0]}: ${t * padding_start_value}px;padding-${secondary_properties[1]}: ${t * padding_end_value}px;margin-${secondary_properties[0]}: ${t * margin_start_value}px;margin-${secondary_properties[1]}: ${t * margin_end_value}px;border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;min-${primary_property}: 0`
95
+ };
96
+ }
97
+ function scale(node, { delay = 0, duration = 400, easing = cubic_out, start = 0, opacity = 0 } = {}) {
98
+ const style = getComputedStyle(node);
99
+ const target_opacity = +style.opacity;
100
+ const transform = style.transform === "none" ? "" : style.transform;
101
+ const sd = 1 - start;
102
+ const od = target_opacity * (1 - opacity);
103
+ return {
104
+ delay,
105
+ duration,
106
+ easing,
107
+ css: (_t, u) => `
108
+ transform: ${transform} scale(${1 - sd * u});
109
+ opacity: ${target_opacity - od * u}
110
+ `
111
+ };
112
+ }
113
+ function draw(node, { delay = 0, speed, duration, easing = cubic_in_out } = {}) {
114
+ let len = node.getTotalLength();
115
+ const style = getComputedStyle(node);
116
+ if (style.strokeLinecap !== "butt") {
117
+ len += parseInt(style.strokeWidth);
118
+ }
119
+ if (duration === void 0) {
120
+ if (speed === void 0) {
121
+ duration = 800;
122
+ } else {
123
+ duration = len / speed;
124
+ }
125
+ } else if (typeof duration === "function") {
126
+ duration = duration(len);
127
+ }
128
+ return {
129
+ delay,
130
+ duration,
131
+ easing,
132
+ css: (_, u) => `
133
+ stroke-dasharray: ${len};
134
+ stroke-dashoffset: ${u * len};
135
+ `
136
+ };
137
+ }
138
+ function assign(tar, src) {
139
+ for (const k in src) tar[k] = src[k];
140
+ return (
141
+ /** @type {T & S} */
142
+ tar
143
+ );
144
+ }
145
+ function crossfade({ fallback, ...defaults }) {
146
+ const to_receive = /* @__PURE__ */ new Map();
147
+ const to_send = /* @__PURE__ */ new Map();
148
+ function crossfade2(from_node, node, params) {
149
+ const {
150
+ delay = 0,
151
+ duration = (
152
+ /** @param {number} d */
153
+ (d2) => Math.sqrt(d2) * 30
154
+ ),
155
+ easing = cubic_out
156
+ } = assign(assign({}, defaults), params);
157
+ const from = from_node.getBoundingClientRect();
158
+ const to = node.getBoundingClientRect();
159
+ const dx = from.left - to.left;
160
+ const dy = from.top - to.top;
161
+ const dw = from.width / to.width;
162
+ const dh = from.height / to.height;
163
+ const d = Math.sqrt(dx * dx + dy * dy);
164
+ const style = getComputedStyle(node);
165
+ const transform = style.transform === "none" ? "" : style.transform;
166
+ const opacity = +style.opacity;
167
+ return {
168
+ delay,
169
+ duration: typeof duration === "function" ? duration(d) : duration,
170
+ easing,
171
+ css: (t, u) => `
172
+ opacity: ${t * opacity};
173
+ transform-origin: top left;
174
+ transform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});
175
+ `
176
+ };
177
+ }
178
+ function transition(items, counterparts, intro) {
179
+ return (node, params) => {
180
+ items.set(params.key, node);
181
+ return () => {
182
+ if (counterparts.has(params.key)) {
183
+ const other_node = counterparts.get(params.key);
184
+ counterparts.delete(params.key);
185
+ return crossfade2(
186
+ /** @type {Element} */
187
+ other_node,
188
+ node,
189
+ params
190
+ );
191
+ }
192
+ items.delete(params.key);
193
+ return fallback && fallback(node, params, intro);
194
+ };
195
+ };
196
+ }
197
+ return [transition(to_send, to_receive, false), transition(to_receive, to_send, true)];
198
+ }
199
+ export {
200
+ blur,
201
+ crossfade,
202
+ draw,
203
+ fade,
204
+ fly,
205
+ scale,
206
+ slide
207
+ };
208
+ //# sourceMappingURL=svelte_transition.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../node_modules/.pnpm/svelte@5.54.1/node_modules/svelte/src/transition/index.js"],
4
+ "sourcesContent": ["/** @import { BlurParams, CrossfadeParams, DrawParams, FadeParams, FlyParams, ScaleParams, SlideParams, TransitionConfig } from './public' */\n\nimport { DEV } from 'esm-env';\nimport * as w from '../internal/client/warnings.js';\n\n/** @param {number} x */\nconst linear = (x) => x;\n\n/** @param {number} t */\nfunction cubic_out(t) {\n\tconst f = t - 1.0;\n\treturn f * f * f + 1.0;\n}\n\n/**\n * @param {number} t\n * @returns {number}\n */\nfunction cubic_in_out(t) {\n\treturn t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\n\n/** @param {number | string} value\n * @returns {[number, string]}\n */\nfunction split_css_unit(value) {\n\tconst split = typeof value === 'string' && value.match(/^\\s*(-?[\\d.]+)([^\\s]*)\\s*$/);\n\treturn split ? [parseFloat(split[1]), split[2] || 'px'] : [/** @type {number} */ (value), 'px'];\n}\n\n/**\n * Animates a `blur` filter alongside an element's opacity.\n *\n * @param {Element} node\n * @param {BlurParams} [params]\n * @returns {TransitionConfig}\n */\nexport function blur(\n\tnode,\n\t{ delay = 0, duration = 400, easing = cubic_in_out, amount = 5, opacity = 0 } = {}\n) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst f = style.filter === 'none' ? '' : style.filter;\n\tconst od = target_opacity * (1 - opacity);\n\tconst [value, unit] = split_css_unit(amount);\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (_t, u) => `opacity: ${target_opacity - od * u}; filter: ${f} blur(${u * value}${unit});`\n\t};\n}\n\n/**\n * Animates the opacity of an element from 0 to the current opacity for `in` transitions and from the current opacity to 0 for `out` transitions.\n *\n * @param {Element} node\n * @param {FadeParams} [params]\n * @returns {TransitionConfig}\n */\nexport function fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n\tconst o = +getComputedStyle(node).opacity;\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (t) => `opacity: ${t * o}`\n\t};\n}\n\n/**\n * Animates the x and y positions and the opacity of an element. `in` transitions animate from the provided values, passed as parameters to the element's default values. `out` transitions animate from the element's default values to the provided values.\n *\n * @param {Element} node\n * @param {FlyParams} [params]\n * @returns {TransitionConfig}\n */\nexport function fly(\n\tnode,\n\t{ delay = 0, duration = 400, easing = cubic_out, x = 0, y = 0, opacity = 0 } = {}\n) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst transform = style.transform === 'none' ? '' : style.transform;\n\tconst od = target_opacity * (1 - opacity);\n\tconst [x_value, x_unit] = split_css_unit(x);\n\tconst [y_value, y_unit] = split_css_unit(y);\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x_value}${x_unit}, ${(1 - t) * y_value}${y_unit});\n\t\t\topacity: ${target_opacity - od * u}`\n\t};\n}\n\nvar slide_warning = false;\n\n/**\n * Slides an element in and out.\n *\n * @param {Element} node\n * @param {SlideParams} [params]\n * @returns {TransitionConfig}\n */\nexport function slide(node, { delay = 0, duration = 400, easing = cubic_out, axis = 'y' } = {}) {\n\tconst style = getComputedStyle(node);\n\n\tif (DEV && !slide_warning && /(contents|inline|table)/.test(style.display)) {\n\t\tslide_warning = true;\n\t\tPromise.resolve().then(() => (slide_warning = false));\n\t\tw.transition_slide_display(style.display);\n\t}\n\n\tconst opacity = +style.opacity;\n\tconst primary_property = axis === 'y' ? 'height' : 'width';\n\tconst primary_property_value = parseFloat(style[primary_property]);\n\tconst secondary_properties = axis === 'y' ? ['top', 'bottom'] : ['left', 'right'];\n\tconst capitalized_secondary_properties = secondary_properties.map(\n\t\t(e) => /** @type {'Left' | 'Right' | 'Top' | 'Bottom'} */ (`${e[0].toUpperCase()}${e.slice(1)}`)\n\t);\n\tconst padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]);\n\tconst padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]);\n\tconst margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]);\n\tconst margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]);\n\tconst border_width_start_value = parseFloat(\n\t\tstyle[`border${capitalized_secondary_properties[0]}Width`]\n\t);\n\tconst border_width_end_value = parseFloat(\n\t\tstyle[`border${capitalized_secondary_properties[1]}Width`]\n\t);\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (t) =>\n\t\t\t'overflow: hidden;' +\n\t\t\t`opacity: ${Math.min(t * 20, 1) * opacity};` +\n\t\t\t`${primary_property}: ${t * primary_property_value}px;` +\n\t\t\t`padding-${secondary_properties[0]}: ${t * padding_start_value}px;` +\n\t\t\t`padding-${secondary_properties[1]}: ${t * padding_end_value}px;` +\n\t\t\t`margin-${secondary_properties[0]}: ${t * margin_start_value}px;` +\n\t\t\t`margin-${secondary_properties[1]}: ${t * margin_end_value}px;` +\n\t\t\t`border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;` +\n\t\t\t`border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;` +\n\t\t\t`min-${primary_property}: 0`\n\t};\n}\n\n/**\n * Animates the opacity and scale of an element. `in` transitions animate from the provided values, passed as parameters, to an element's current (default) values. `out` transitions animate from an element's default values to the provided values.\n *\n * @param {Element} node\n * @param {ScaleParams} [params]\n * @returns {TransitionConfig}\n */\nexport function scale(\n\tnode,\n\t{ delay = 0, duration = 400, easing = cubic_out, start = 0, opacity = 0 } = {}\n) {\n\tconst style = getComputedStyle(node);\n\tconst target_opacity = +style.opacity;\n\tconst transform = style.transform === 'none' ? '' : style.transform;\n\tconst sd = 1 - start;\n\tconst od = target_opacity * (1 - opacity);\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - sd * u});\n\t\t\topacity: ${target_opacity - od * u}\n\t\t`\n\t};\n}\n\n/**\n * Animates the stroke of an SVG element, like a snake in a tube. `in` transitions begin with the path invisible and draw the path to the screen over time. `out` transitions start in a visible state and gradually erase the path. `draw` only works with elements that have a `getTotalLength` method, like `<path>` and `<polyline>`.\n *\n * @param {SVGElement & { getTotalLength(): number }} node\n * @param {DrawParams} [params]\n * @returns {TransitionConfig}\n */\nexport function draw(node, { delay = 0, speed, duration, easing = cubic_in_out } = {}) {\n\tlet len = node.getTotalLength();\n\tconst style = getComputedStyle(node);\n\tif (style.strokeLinecap !== 'butt') {\n\t\tlen += parseInt(style.strokeWidth);\n\t}\n\tif (duration === undefined) {\n\t\tif (speed === undefined) {\n\t\t\tduration = 800;\n\t\t} else {\n\t\t\tduration = len / speed;\n\t\t}\n\t} else if (typeof duration === 'function') {\n\t\tduration = duration(len);\n\t}\n\treturn {\n\t\tdelay,\n\t\tduration,\n\t\teasing,\n\t\tcss: (_, u) => `\n\t\t\tstroke-dasharray: ${len};\n\t\t\tstroke-dashoffset: ${u * len};\n\t\t`\n\t};\n}\n\n/**\n * @template T\n * @template S\n * @param {T} tar\n * @param {S} src\n * @returns {T & S}\n */\nfunction assign(tar, src) {\n\t// @ts-ignore\n\tfor (const k in src) tar[k] = src[k];\n\treturn /** @type {T & S} */ (tar);\n}\n\n/**\n * The `crossfade` function creates a pair of [transitions](https://svelte.dev/docs/svelte/transition) called `send` and `receive`. When an element is 'sent', it looks for a corresponding element being 'received', and generates a transition that transforms the element to its counterpart's position and fades it out. When an element is 'received', the reverse happens. If there is no counterpart, the `fallback` transition is used.\n *\n * @param {CrossfadeParams & {\n * \tfallback?: (node: Element, params: CrossfadeParams, intro: boolean) => TransitionConfig;\n * }} params\n * @returns {[(node: any, params: CrossfadeParams & { key: any; }) => () => TransitionConfig, (node: any, params: CrossfadeParams & { key: any; }) => () => TransitionConfig]}\n */\nexport function crossfade({ fallback, ...defaults }) {\n\t/** @type {Map<any, Element>} */\n\tconst to_receive = new Map();\n\t/** @type {Map<any, Element>} */\n\tconst to_send = new Map();\n\n\t/**\n\t * @param {Element} from_node\n\t * @param {Element} node\n\t * @param {CrossfadeParams} params\n\t * @returns {TransitionConfig}\n\t */\n\tfunction crossfade(from_node, node, params) {\n\t\tconst {\n\t\t\tdelay = 0,\n\t\t\tduration = /** @param {number} d */ (d) => Math.sqrt(d) * 30,\n\t\t\teasing = cubic_out\n\t\t} = assign(assign({}, defaults), params);\n\t\tconst from = from_node.getBoundingClientRect();\n\t\tconst to = node.getBoundingClientRect();\n\t\tconst dx = from.left - to.left;\n\t\tconst dy = from.top - to.top;\n\t\tconst dw = from.width / to.width;\n\t\tconst dh = from.height / to.height;\n\t\tconst d = Math.sqrt(dx * dx + dy * dy);\n\t\tconst style = getComputedStyle(node);\n\t\tconst transform = style.transform === 'none' ? '' : style.transform;\n\t\tconst opacity = +style.opacity;\n\t\treturn {\n\t\t\tdelay,\n\t\t\tduration: typeof duration === 'function' ? duration(d) : duration,\n\t\t\teasing,\n\t\t\tcss: (t, u) => `\n\t\t\t opacity: ${t * opacity};\n\t\t\t transform-origin: top left;\n\t\t\t transform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${\n\t\t\t\t\t\tt + (1 - t) * dh\n\t\t\t\t\t});\n\t\t `\n\t\t};\n\t}\n\n\t/**\n\t * @param {Map<any, Element>} items\n\t * @param {Map<any, Element>} counterparts\n\t * @param {boolean} intro\n\t * @returns {(node: any, params: CrossfadeParams & { key: any; }) => () => TransitionConfig}\n\t */\n\tfunction transition(items, counterparts, intro) {\n\t\t// @ts-expect-error TODO improve typings (are the public types wrong?)\n\t\treturn (node, params) => {\n\t\t\titems.set(params.key, node);\n\t\t\treturn () => {\n\t\t\t\tif (counterparts.has(params.key)) {\n\t\t\t\t\tconst other_node = counterparts.get(params.key);\n\t\t\t\t\tcounterparts.delete(params.key);\n\t\t\t\t\treturn crossfade(/** @type {Element} */ (other_node), node, params);\n\t\t\t\t}\n\t\t\t\t// if the node is disappearing altogether\n\t\t\t\t// (i.e. wasn't claimed by the other list)\n\t\t\t\t// then we need to supply an outro\n\t\t\t\titems.delete(params.key);\n\t\t\t\treturn fallback && fallback(node, params, intro);\n\t\t\t};\n\t\t};\n\t}\n\treturn [transition(to_send, to_receive, false), transition(to_receive, to_send, true)];\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["crossfade", "d"]
7
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "name": "nebula-cms-playground",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "dev": "astro dev",
7
+ "build": "astro build",
8
+ "sync": "astro sync"
9
+ },
10
+ "dependencies": {
11
+ "nebula-cms": "link:..",
12
+ "astro": "^6.1.0",
13
+ "@astrojs/svelte": "^8.0.0",
14
+ "svelte": "^5.0.0"
15
+ }
16
+ }