@jant/core 0.1.2 → 0.2.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 (288) hide show
  1. package/dist/app.d.ts +34 -0
  2. package/dist/app.d.ts.map +1 -0
  3. package/dist/app.js +474 -0
  4. package/dist/assets/datastar.min.js +1775 -0
  5. package/dist/auth.d.ts +23 -0
  6. package/dist/auth.d.ts.map +1 -0
  7. package/dist/auth.js +34 -0
  8. package/{src/client.ts → dist/client.d.ts} +1 -1
  9. package/dist/client.d.ts.map +1 -0
  10. package/dist/client.js +4 -0
  11. package/dist/db/index.d.ts +10 -0
  12. package/dist/db/index.d.ts.map +1 -0
  13. package/dist/db/index.js +10 -0
  14. package/dist/db/schema.d.ts +1507 -0
  15. package/dist/db/schema.d.ts.map +1 -0
  16. package/dist/db/schema.js +183 -0
  17. package/{src/i18n/Trans.tsx → dist/i18n/Trans.d.ts} +4 -10
  18. package/dist/i18n/Trans.d.ts.map +1 -0
  19. package/dist/i18n/Trans.js +24 -0
  20. package/dist/i18n/context.d.ts +69 -0
  21. package/dist/i18n/context.d.ts.map +1 -0
  22. package/dist/i18n/context.js +61 -0
  23. package/dist/i18n/detect.d.ts +31 -0
  24. package/dist/i18n/detect.d.ts.map +1 -0
  25. package/dist/i18n/detect.js +77 -0
  26. package/{src/i18n/i18n.ts → dist/i18n/i18n.d.ts} +5 -25
  27. package/dist/i18n/i18n.d.ts.map +1 -0
  28. package/dist/i18n/i18n.js +55 -0
  29. package/dist/i18n/index.d.ts +41 -0
  30. package/dist/i18n/index.d.ts.map +1 -0
  31. package/{src/i18n/index.ts → dist/i18n/index.js} +3 -24
  32. package/dist/i18n/locales/en.d.ts +3 -0
  33. package/dist/i18n/locales/en.d.ts.map +1 -0
  34. package/dist/i18n/locales/en.js +1 -0
  35. package/dist/i18n/locales/zh-Hans.d.ts +3 -0
  36. package/dist/i18n/locales/zh-Hans.d.ts.map +1 -0
  37. package/dist/i18n/locales/zh-Hans.js +1 -0
  38. package/dist/i18n/locales/zh-Hant.d.ts +3 -0
  39. package/dist/i18n/locales/zh-Hant.d.ts.map +1 -0
  40. package/dist/i18n/locales/zh-Hant.js +1 -0
  41. package/dist/i18n/locales.d.ts +11 -0
  42. package/dist/i18n/locales.d.ts.map +1 -0
  43. package/dist/i18n/locales.js +13 -0
  44. package/dist/i18n/middleware.d.ts +24 -0
  45. package/dist/i18n/middleware.d.ts.map +1 -0
  46. package/dist/i18n/middleware.js +41 -0
  47. package/dist/index.d.ts +16 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/{src/index.ts → dist/index.js} +1 -28
  50. package/dist/lib/assets.d.ts +19 -0
  51. package/dist/lib/assets.d.ts.map +1 -0
  52. package/dist/lib/assets.js +33 -0
  53. package/dist/lib/constants.d.ts +36 -0
  54. package/dist/lib/constants.d.ts.map +1 -0
  55. package/dist/lib/constants.js +50 -0
  56. package/{src/lib/image.ts → dist/lib/image.d.ts} +13 -47
  57. package/dist/lib/image.d.ts.map +1 -0
  58. package/dist/lib/image.js +77 -0
  59. package/{src/lib/index.ts → dist/lib/index.d.ts} +1 -1
  60. package/dist/lib/index.d.ts.map +1 -0
  61. package/dist/lib/index.js +7 -0
  62. package/dist/lib/markdown.d.ts +60 -0
  63. package/dist/lib/markdown.d.ts.map +1 -0
  64. package/{src/lib/markdown.ts → dist/lib/markdown.js} +16 -26
  65. package/dist/lib/schemas.d.ts +113 -0
  66. package/dist/lib/schemas.d.ts.map +1 -0
  67. package/dist/lib/schemas.js +71 -0
  68. package/dist/lib/sqid.d.ts +60 -0
  69. package/dist/lib/sqid.d.ts.map +1 -0
  70. package/{src/lib/sqid.ts → dist/lib/sqid.js} +15 -22
  71. package/dist/lib/sse.d.ts +95 -0
  72. package/dist/lib/sse.d.ts.map +1 -0
  73. package/dist/lib/sse.js +81 -0
  74. package/dist/lib/time.d.ts +90 -0
  75. package/dist/lib/time.d.ts.map +1 -0
  76. package/{src/lib/time.ts → dist/lib/time.js} +20 -33
  77. package/{src/lib/url.ts → dist/lib/url.d.ts} +5 -30
  78. package/dist/lib/url.d.ts.map +1 -0
  79. package/dist/lib/url.js +89 -0
  80. package/dist/middleware/auth.d.ts +24 -0
  81. package/dist/middleware/auth.d.ts.map +1 -0
  82. package/dist/middleware/auth.js +52 -0
  83. package/dist/routes/api/posts.d.ts +13 -0
  84. package/dist/routes/api/posts.d.ts.map +1 -0
  85. package/dist/routes/api/posts.js +124 -0
  86. package/dist/routes/api/search.d.ts +13 -0
  87. package/dist/routes/api/search.d.ts.map +1 -0
  88. package/dist/routes/api/search.js +49 -0
  89. package/dist/routes/api/upload.d.ts +16 -0
  90. package/dist/routes/api/upload.d.ts.map +1 -0
  91. package/dist/routes/api/upload.js +227 -0
  92. package/dist/routes/dash/collections.d.ts +13 -0
  93. package/dist/routes/dash/collections.d.ts.map +1 -0
  94. package/dist/routes/dash/collections.js +512 -0
  95. package/dist/routes/dash/index.d.ts +15 -0
  96. package/dist/routes/dash/index.d.ts.map +1 -0
  97. package/dist/routes/dash/index.js +117 -0
  98. package/dist/routes/dash/media.d.ts +16 -0
  99. package/dist/routes/dash/media.d.ts.map +1 -0
  100. package/dist/routes/dash/media.js +589 -0
  101. package/dist/routes/dash/pages.d.ts +15 -0
  102. package/dist/routes/dash/pages.d.ts.map +1 -0
  103. package/dist/routes/dash/pages.js +290 -0
  104. package/dist/routes/dash/posts.d.ts +13 -0
  105. package/dist/routes/dash/posts.d.ts.map +1 -0
  106. package/dist/routes/dash/posts.js +226 -0
  107. package/dist/routes/dash/redirects.d.ts +13 -0
  108. package/dist/routes/dash/redirects.d.ts.map +1 -0
  109. package/dist/routes/dash/redirects.js +237 -0
  110. package/dist/routes/dash/settings.d.ts +13 -0
  111. package/dist/routes/dash/settings.d.ts.map +1 -0
  112. package/dist/routes/dash/settings.js +154 -0
  113. package/dist/routes/feed/rss.d.ts +13 -0
  114. package/dist/routes/feed/rss.d.ts.map +1 -0
  115. package/dist/routes/feed/rss.js +95 -0
  116. package/dist/routes/feed/sitemap.d.ts +13 -0
  117. package/dist/routes/feed/sitemap.d.ts.map +1 -0
  118. package/dist/routes/feed/sitemap.js +59 -0
  119. package/dist/routes/pages/archive.d.ts +15 -0
  120. package/dist/routes/pages/archive.d.ts.map +1 -0
  121. package/dist/routes/pages/archive.js +255 -0
  122. package/dist/routes/pages/collection.d.ts +13 -0
  123. package/dist/routes/pages/collection.d.ts.map +1 -0
  124. package/dist/routes/pages/collection.js +93 -0
  125. package/dist/routes/pages/home.d.ts +13 -0
  126. package/dist/routes/pages/home.d.ts.map +1 -0
  127. package/dist/routes/pages/home.js +122 -0
  128. package/dist/routes/pages/page.d.ts +15 -0
  129. package/dist/routes/pages/page.d.ts.map +1 -0
  130. package/dist/routes/pages/page.js +69 -0
  131. package/dist/routes/pages/post.d.ts +13 -0
  132. package/dist/routes/pages/post.d.ts.map +1 -0
  133. package/dist/routes/pages/post.js +90 -0
  134. package/dist/routes/pages/search.d.ts +13 -0
  135. package/dist/routes/pages/search.d.ts.map +1 -0
  136. package/dist/routes/pages/search.js +180 -0
  137. package/dist/services/collection.d.ts +31 -0
  138. package/dist/services/collection.d.ts.map +1 -0
  139. package/dist/services/collection.js +108 -0
  140. package/dist/services/index.d.ts +28 -0
  141. package/dist/services/index.d.ts.map +1 -0
  142. package/dist/services/index.js +20 -0
  143. package/dist/services/media.d.ts +27 -0
  144. package/dist/services/media.d.ts.map +1 -0
  145. package/dist/services/media.js +62 -0
  146. package/dist/services/post.d.ts +31 -0
  147. package/dist/services/post.d.ts.map +1 -0
  148. package/dist/services/post.js +191 -0
  149. package/dist/services/redirect.d.ts +15 -0
  150. package/dist/services/redirect.d.ts.map +1 -0
  151. package/dist/services/redirect.js +48 -0
  152. package/dist/services/search.d.ts +26 -0
  153. package/dist/services/search.d.ts.map +1 -0
  154. package/dist/services/search.js +61 -0
  155. package/dist/services/settings.d.ts +17 -0
  156. package/dist/services/settings.d.ts.map +1 -0
  157. package/dist/services/settings.js +65 -0
  158. package/dist/theme/components/ActionButtons.d.ts +43 -0
  159. package/dist/theme/components/ActionButtons.d.ts.map +1 -0
  160. package/dist/theme/components/ActionButtons.js +50 -0
  161. package/dist/theme/components/CrudPageHeader.d.ts +23 -0
  162. package/dist/theme/components/CrudPageHeader.d.ts.map +1 -0
  163. package/dist/theme/components/CrudPageHeader.js +22 -0
  164. package/dist/theme/components/DangerZone.d.ts +36 -0
  165. package/dist/theme/components/DangerZone.d.ts.map +1 -0
  166. package/dist/theme/components/DangerZone.js +39 -0
  167. package/dist/theme/components/EmptyState.d.ts +27 -0
  168. package/dist/theme/components/EmptyState.d.ts.map +1 -0
  169. package/dist/theme/components/EmptyState.js +27 -0
  170. package/dist/theme/components/ListItemRow.d.ts +15 -0
  171. package/dist/theme/components/ListItemRow.d.ts.map +1 -0
  172. package/dist/theme/components/ListItemRow.js +21 -0
  173. package/dist/theme/components/PageForm.d.ts +14 -0
  174. package/dist/theme/components/PageForm.d.ts.map +1 -0
  175. package/dist/theme/components/PageForm.js +173 -0
  176. package/dist/theme/components/Pagination.d.ts +46 -0
  177. package/dist/theme/components/Pagination.d.ts.map +1 -0
  178. package/dist/theme/components/Pagination.js +159 -0
  179. package/dist/theme/components/PostForm.d.ts +12 -0
  180. package/dist/theme/components/PostForm.d.ts.map +1 -0
  181. package/dist/theme/components/PostForm.js +230 -0
  182. package/dist/theme/components/PostList.d.ts +10 -0
  183. package/dist/theme/components/PostList.d.ts.map +1 -0
  184. package/dist/theme/components/PostList.js +73 -0
  185. package/dist/theme/components/ThreadView.d.ts +15 -0
  186. package/dist/theme/components/ThreadView.d.ts.map +1 -0
  187. package/dist/theme/components/ThreadView.js +111 -0
  188. package/dist/theme/components/TypeBadge.d.ts +12 -0
  189. package/dist/theme/components/TypeBadge.d.ts.map +1 -0
  190. package/dist/theme/components/TypeBadge.js +39 -0
  191. package/dist/theme/components/VisibilityBadge.d.ts +12 -0
  192. package/dist/theme/components/VisibilityBadge.d.ts.map +1 -0
  193. package/dist/theme/components/VisibilityBadge.js +37 -0
  194. package/{src/theme/components/index.ts → dist/theme/components/index.d.ts} +1 -0
  195. package/dist/theme/components/index.d.ts.map +1 -0
  196. package/dist/theme/components/index.js +12 -0
  197. package/dist/theme/index.d.ts +21 -0
  198. package/dist/theme/index.d.ts.map +1 -0
  199. package/{src/theme/index.ts → dist/theme/index.js} +1 -4
  200. package/dist/theme/layouts/BaseLayout.d.ts +16 -0
  201. package/dist/theme/layouts/BaseLayout.d.ts.map +1 -0
  202. package/dist/theme/layouts/BaseLayout.js +58 -0
  203. package/dist/theme/layouts/DashLayout.d.ts +15 -0
  204. package/dist/theme/layouts/DashLayout.d.ts.map +1 -0
  205. package/dist/theme/layouts/DashLayout.js +139 -0
  206. package/{src/theme/layouts/index.ts → dist/theme/layouts/index.d.ts} +1 -0
  207. package/dist/theme/layouts/index.d.ts.map +1 -0
  208. package/dist/theme/layouts/index.js +2 -0
  209. package/dist/theme/styles/main.css +2 -0
  210. package/dist/types.d.ts +179 -0
  211. package/dist/types.d.ts.map +1 -0
  212. package/dist/types.js +19 -0
  213. package/package.json +26 -26
  214. package/drizzle.config.ts +0 -10
  215. package/lingui.config.ts +0 -16
  216. package/src/app.tsx +0 -377
  217. package/src/assets/datastar.min.js +0 -8
  218. package/src/auth.ts +0 -38
  219. package/src/db/index.ts +0 -14
  220. package/src/db/migrations/0000_solid_moon_knight.sql +0 -118
  221. package/src/db/migrations/0001_add_search_fts.sql +0 -40
  222. package/src/db/migrations/0002_collection_path.sql +0 -2
  223. package/src/db/migrations/0003_collection_path_nullable.sql +0 -21
  224. package/src/db/migrations/0004_media_uuid.sql +0 -35
  225. package/src/db/migrations/meta/0000_snapshot.json +0 -784
  226. package/src/db/migrations/meta/_journal.json +0 -41
  227. package/src/db/schema.ts +0 -159
  228. package/src/i18n/EXAMPLES.md +0 -235
  229. package/src/i18n/README.md +0 -296
  230. package/src/i18n/context.tsx +0 -101
  231. package/src/i18n/detect.ts +0 -100
  232. package/src/i18n/locales/en.po +0 -875
  233. package/src/i18n/locales/en.ts +0 -1
  234. package/src/i18n/locales/zh-Hans.po +0 -875
  235. package/src/i18n/locales/zh-Hans.ts +0 -1
  236. package/src/i18n/locales/zh-Hant.po +0 -875
  237. package/src/i18n/locales/zh-Hant.ts +0 -1
  238. package/src/i18n/locales.ts +0 -14
  239. package/src/i18n/middleware.ts +0 -59
  240. package/src/lib/assets.ts +0 -47
  241. package/src/lib/constants.ts +0 -67
  242. package/src/lib/schemas.ts +0 -92
  243. package/src/lib/sse.ts +0 -152
  244. package/src/middleware/auth.ts +0 -59
  245. package/src/routes/api/posts.ts +0 -127
  246. package/src/routes/api/search.ts +0 -53
  247. package/src/routes/api/upload.ts +0 -240
  248. package/src/routes/dash/collections.tsx +0 -341
  249. package/src/routes/dash/index.tsx +0 -89
  250. package/src/routes/dash/media.tsx +0 -551
  251. package/src/routes/dash/pages.tsx +0 -245
  252. package/src/routes/dash/posts.tsx +0 -202
  253. package/src/routes/dash/redirects.tsx +0 -155
  254. package/src/routes/dash/settings.tsx +0 -93
  255. package/src/routes/feed/rss.ts +0 -119
  256. package/src/routes/feed/sitemap.ts +0 -75
  257. package/src/routes/pages/archive.tsx +0 -223
  258. package/src/routes/pages/collection.tsx +0 -79
  259. package/src/routes/pages/home.tsx +0 -93
  260. package/src/routes/pages/page.tsx +0 -64
  261. package/src/routes/pages/post.tsx +0 -81
  262. package/src/routes/pages/search.tsx +0 -162
  263. package/src/services/collection.ts +0 -180
  264. package/src/services/index.ts +0 -40
  265. package/src/services/media.ts +0 -97
  266. package/src/services/post.ts +0 -279
  267. package/src/services/redirect.ts +0 -74
  268. package/src/services/search.ts +0 -117
  269. package/src/services/settings.ts +0 -76
  270. package/src/theme/components/ActionButtons.tsx +0 -98
  271. package/src/theme/components/CrudPageHeader.tsx +0 -48
  272. package/src/theme/components/DangerZone.tsx +0 -77
  273. package/src/theme/components/EmptyState.tsx +0 -56
  274. package/src/theme/components/ListItemRow.tsx +0 -24
  275. package/src/theme/components/PageForm.tsx +0 -114
  276. package/src/theme/components/Pagination.tsx +0 -196
  277. package/src/theme/components/PostForm.tsx +0 -122
  278. package/src/theme/components/PostList.tsx +0 -68
  279. package/src/theme/components/ThreadView.tsx +0 -118
  280. package/src/theme/components/TypeBadge.tsx +0 -28
  281. package/src/theme/components/VisibilityBadge.tsx +0 -33
  282. package/src/theme/layouts/BaseLayout.tsx +0 -49
  283. package/src/theme/layouts/DashLayout.tsx +0 -108
  284. package/src/theme/styles/main.css +0 -52
  285. package/src/types.ts +0 -222
  286. package/tsconfig.json +0 -16
  287. package/vite.config.ts +0 -82
  288. package/wrangler.toml +0 -21
@@ -0,0 +1,1775 @@
1
+ /**
2
+ * Minified by jsDelivr using Terser v5.19.2.
3
+ * Original file: /npm/@sudodevnull/datastar@0.19.9/dist/datastar.js
4
+ *
5
+ * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
6
+ */ function ze(e) {
7
+ return e instanceof HTMLElement || e instanceof SVGElement ? e : null;
8
+ }
9
+ function ue() {
10
+ throw new Error("Cycle detected");
11
+ }
12
+ function Et() {
13
+ throw new Error("Computed cannot have side-effects");
14
+ }
15
+ const _t = Symbol.for("preact-signals"), O = 1, B = 2, Y = 4, W = 8, J = 16, H = 32;
16
+ function fe() {
17
+ G++;
18
+ }
19
+ function de() {
20
+ if (G > 1) return void G--;
21
+ let e, t = !1;
22
+ for(; void 0 !== K;){
23
+ let n = K;
24
+ for(K = void 0, we++; void 0 !== n;){
25
+ const s = n._nextBatchedEffect;
26
+ if (n._nextBatchedEffect = void 0, n._flags &= ~B, !(n._flags & W) && Qe(n)) try {
27
+ n._callback();
28
+ } catch (n) {
29
+ t || (e = n, t = !0);
30
+ }
31
+ n = s;
32
+ }
33
+ }
34
+ if (we = 0, G--, t) throw e;
35
+ }
36
+ function St(e) {
37
+ if (G > 0) return e();
38
+ fe();
39
+ try {
40
+ return e();
41
+ } finally{
42
+ de();
43
+ }
44
+ }
45
+ let _, K, G = 0, we = 0, le = 0;
46
+ function Ze(e) {
47
+ if (void 0 === _) return;
48
+ let t = e._node;
49
+ return void 0 === t || t._target !== _ ? (t = {
50
+ _version: 0,
51
+ _source: e,
52
+ _prevSource: _._sources,
53
+ _nextSource: void 0,
54
+ _target: _,
55
+ _prevTarget: void 0,
56
+ _nextTarget: void 0,
57
+ _rollbackNode: t
58
+ }, void 0 !== _._sources && (_._sources._nextSource = t), _._sources = t, e._node = t, _._flags & H && e._subscribe(t), t) : -1 === t._version ? (t._version = 0, void 0 !== t._nextSource && (t._nextSource._prevSource = t._prevSource, void 0 !== t._prevSource && (t._prevSource._nextSource = t._nextSource), t._prevSource = _._sources, t._nextSource = void 0, _._sources._nextSource = t, _._sources = t), t) : void 0;
59
+ }
60
+ function T(e) {
61
+ this._value = e, this._version = 0, this._node = void 0, this._targets = void 0;
62
+ }
63
+ function Xe(e) {
64
+ return new T(e);
65
+ }
66
+ function Qe(e) {
67
+ for(let t = e._sources; void 0 !== t; t = t._nextSource)if (t._source._version !== t._version || !t._source._refresh() || t._source._version !== t._version) return !0;
68
+ return !1;
69
+ }
70
+ function et(e) {
71
+ for(let t = e._sources; void 0 !== t; t = t._nextSource){
72
+ const n = t._source._node;
73
+ if (void 0 !== n && (t._rollbackNode = n), t._source._node = t, t._version = -1, void 0 === t._nextSource) {
74
+ e._sources = t;
75
+ break;
76
+ }
77
+ }
78
+ }
79
+ function tt(e) {
80
+ let t, n = e._sources;
81
+ for(; void 0 !== n;){
82
+ const e = n._prevSource;
83
+ -1 === n._version ? (n._source._unsubscribe(n), void 0 !== e && (e._nextSource = n._nextSource), void 0 !== n._nextSource && (n._nextSource._prevSource = e)) : t = n, n._source._node = n._rollbackNode, void 0 !== n._rollbackNode && (n._rollbackNode = void 0), n = e;
84
+ }
85
+ e._sources = t;
86
+ }
87
+ function R(e) {
88
+ T.call(this, void 0), this._compute = e, this._sources = void 0, this._globalVersion = le - 1, this._flags = Y;
89
+ }
90
+ function Tt(e) {
91
+ return new R(e);
92
+ }
93
+ function st(e) {
94
+ const t = e._cleanup;
95
+ if (e._cleanup = void 0, "function" == typeof t) {
96
+ fe();
97
+ const n = _;
98
+ _ = void 0;
99
+ try {
100
+ t();
101
+ } catch (t) {
102
+ throw e._flags &= ~O, e._flags |= W, Ne(e), t;
103
+ } finally{
104
+ _ = n, de();
105
+ }
106
+ }
107
+ }
108
+ function Ne(e) {
109
+ for(let t = e._sources; void 0 !== t; t = t._nextSource)t._source._unsubscribe(t);
110
+ e._compute = void 0, e._sources = void 0, st(e);
111
+ }
112
+ function At(e) {
113
+ if (_ !== this) throw new Error("Out-of-order effect");
114
+ tt(this), _ = e, this._flags &= ~O, this._flags & W && Ne(this), de();
115
+ }
116
+ function X(e) {
117
+ this._compute = e, this._cleanup = void 0, this._sources = void 0, this._nextBatchedEffect = void 0, this._flags = H;
118
+ }
119
+ function nt(e) {
120
+ const t = new X(e);
121
+ try {
122
+ t._callback();
123
+ } catch (e) {
124
+ throw t._dispose(), e;
125
+ }
126
+ return t._dispose.bind(t);
127
+ }
128
+ T.prototype.brand = _t, T.prototype._refresh = function() {
129
+ return !0;
130
+ }, T.prototype._subscribe = function(e) {
131
+ this._targets !== e && void 0 === e._prevTarget && (e._nextTarget = this._targets, void 0 !== this._targets && (this._targets._prevTarget = e), this._targets = e);
132
+ }, T.prototype._unsubscribe = function(e) {
133
+ if (void 0 !== this._targets) {
134
+ const t = e._prevTarget, n = e._nextTarget;
135
+ void 0 !== t && (t._nextTarget = n, e._prevTarget = void 0), void 0 !== n && (n._prevTarget = t, e._nextTarget = void 0), e === this._targets && (this._targets = n);
136
+ }
137
+ }, T.prototype.subscribe = function(e) {
138
+ const t = this;
139
+ return nt(function() {
140
+ const n = t.value, s = this._flags & H;
141
+ this._flags &= ~H;
142
+ try {
143
+ e(n);
144
+ } finally{
145
+ this._flags |= s;
146
+ }
147
+ });
148
+ }, T.prototype.valueOf = function() {
149
+ return this.value;
150
+ }, T.prototype.toString = function() {
151
+ return this.value + "";
152
+ }, T.prototype.toJSON = function() {
153
+ return this.value;
154
+ }, T.prototype.peek = function() {
155
+ return this._value;
156
+ }, Object.defineProperty(T.prototype, "value", {
157
+ get () {
158
+ const e = Ze(this);
159
+ return void 0 !== e && (e._version = this._version), this._value;
160
+ },
161
+ set (e) {
162
+ if (_ instanceof R && Et(), e !== this._value) {
163
+ we > 100 && ue(), this._value = e, this._version++, le++, fe();
164
+ try {
165
+ for(let e = this._targets; void 0 !== e; e = e._nextTarget)e._target._notify();
166
+ } finally{
167
+ de();
168
+ }
169
+ }
170
+ }
171
+ }), R.prototype = new T, R.prototype._refresh = function() {
172
+ if (this._flags &= ~B, this._flags & O) return !1;
173
+ if ((this._flags & (Y | H)) === H || (this._flags &= ~Y, this._globalVersion === le)) return !0;
174
+ if (this._globalVersion = le, this._flags |= O, this._version > 0 && !Qe(this)) return this._flags &= ~O, !0;
175
+ const e = _;
176
+ try {
177
+ et(this), _ = this;
178
+ const e = this._compute();
179
+ (this._flags & J || this._value !== e || 0 === this._version) && (this._value = e, this._flags &= ~J, this._version++);
180
+ } catch (e) {
181
+ this._value = e, this._flags |= J, this._version++;
182
+ }
183
+ return _ = e, tt(this), this._flags &= ~O, !0;
184
+ }, R.prototype._subscribe = function(e) {
185
+ if (void 0 === this._targets) {
186
+ this._flags |= Y | H;
187
+ for(let e = this._sources; void 0 !== e; e = e._nextSource)e._source._subscribe(e);
188
+ }
189
+ T.prototype._subscribe.call(this, e);
190
+ }, R.prototype._unsubscribe = function(e) {
191
+ if (void 0 !== this._targets && (T.prototype._unsubscribe.call(this, e), void 0 === this._targets)) {
192
+ this._flags &= ~H;
193
+ for(let e = this._sources; void 0 !== e; e = e._nextSource)e._source._unsubscribe(e);
194
+ }
195
+ }, R.prototype._notify = function() {
196
+ if (!(this._flags & B)) {
197
+ this._flags |= Y | B;
198
+ for(let e = this._targets; void 0 !== e; e = e._nextTarget)e._target._notify();
199
+ }
200
+ }, R.prototype.peek = function() {
201
+ if (this._refresh() || ue(), this._flags & J) throw this._value;
202
+ return this._value;
203
+ }, Object.defineProperty(R.prototype, "value", {
204
+ get () {
205
+ this._flags & O && ue();
206
+ const e = Ze(this);
207
+ if (this._refresh(), void 0 !== e && (e._version = this._version), this._flags & J) throw this._value;
208
+ return this._value;
209
+ }
210
+ }), X.prototype._callback = function() {
211
+ const e = this._start();
212
+ try {
213
+ if (this._flags & W || void 0 === this._compute) return;
214
+ const e = this._compute();
215
+ "function" == typeof e && (this._cleanup = e);
216
+ } finally{
217
+ e();
218
+ }
219
+ }, X.prototype._start = function() {
220
+ this._flags & O && ue(), this._flags |= O, this._flags &= ~W, st(this), et(this), fe();
221
+ const e = _;
222
+ return _ = this, At.bind(this, e);
223
+ }, X.prototype._notify = function() {
224
+ this._flags & B || (this._flags |= B, this._nextBatchedEffect = K, K = this);
225
+ }, X.prototype._dispose = function() {
226
+ this._flags |= W, this._flags & O || Ne(this);
227
+ };
228
+ class rt {
229
+ get value() {
230
+ return Ee(this);
231
+ }
232
+ set value(e) {
233
+ St(()=>Nt(this, e));
234
+ }
235
+ peek() {
236
+ return Ee(this, {
237
+ peek: !0
238
+ });
239
+ }
240
+ }
241
+ const oe = (e)=>Object.assign(new rt, Object.entries(e).reduce((e, [t, n])=>{
242
+ if ([
243
+ "value",
244
+ "peek"
245
+ ].some((e)=>e === t)) throw new Error(`${t} is a reserved property name`);
246
+ return "object" != typeof n || null === n || Array.isArray(n) ? e[t] = Xe(n) : e[t] = oe(n), e;
247
+ }, {})), Nt = (e, t)=>Object.keys(t).forEach((n)=>e[n].value = t[n]), Ee = (e, { peek: t = !1 } = {})=>Object.entries(e).reduce((e, [n, s])=>(s instanceof T ? e[n] = t ? s.peek() : s.value : s instanceof rt && (e[n] = Ee(s, {
248
+ peek: t
249
+ })), e), {});
250
+ function ot(e, t) {
251
+ if ("object" != typeof t || Array.isArray(t) || !t) return t;
252
+ if ("object" == typeof t && void 0 !== t.toJSON && "function" == typeof t.toJSON) return t.toJSON();
253
+ let n = e;
254
+ return "object" != typeof e && (n = {
255
+ ...t
256
+ }), Object.keys(t).forEach((e)=>{
257
+ n.hasOwnProperty(e) || (n[e] = t[e]), null === t[e] ? delete n[e] : n[e] = ot(n[e], t[e]);
258
+ }), n;
259
+ }
260
+ const q = "datastar-event", it = "[a-zA-Z_$]+", Lt = it + "[0-9a-zA-Z_$.]*";
261
+ function Le(e, t, n, s = !0) {
262
+ return new RegExp(`(?<whole>\\${e}(?<${t}>${s ? Lt : it})${n})`, "g");
263
+ }
264
+ const kt = {
265
+ regexp: Le("$", "signal", "(?<method>\\([^\\)]*\\))?"),
266
+ replacer: (e)=>{
267
+ const { signal: t, method: n } = e, s = "ctx.store()";
268
+ if (!n?.length) return `${s}.${t}.value`;
269
+ const o = t.split("."), r = o.pop();
270
+ return `${s}.${o.join(".")}.value.${r}${n}`;
271
+ }
272
+ }, Mt = {
273
+ regexp: Le("$\\$", "action", "(?<call>\\((?<args>.*)\\))?"),
274
+ replacer: ({ action: e, args: t })=>{
275
+ const n = [
276
+ "ctx"
277
+ ];
278
+ t && n.push(...t.split(",").map((e)=>e.trim()));
279
+ return `ctx.actions.${e}(${n.join(",")})`;
280
+ }
281
+ }, Pt = {
282
+ regexp: Le("~", "ref", "", !1),
283
+ replacer: ({ ref: e })=>`document.querySelector(ctx.store()._dsPlugins.refs.${e})`
284
+ }, $t = [
285
+ Mt,
286
+ kt,
287
+ Pt
288
+ ], Ot = {
289
+ prefix: "store",
290
+ removeNewLines: !0,
291
+ preprocessors: {
292
+ pre: [
293
+ {
294
+ regexp: /(?<whole>.+)/g,
295
+ replacer: (e)=>{
296
+ const { whole: t } = e;
297
+ return `Object.assign({...ctx.store()}, ${t})`;
298
+ }
299
+ }
300
+ ]
301
+ },
302
+ allowedModifiers: new Set([
303
+ "local",
304
+ "session",
305
+ "ifmissing"
306
+ ]),
307
+ onLoad: (e)=>{
308
+ let t = "";
309
+ const n = (n)=>{
310
+ const s = e.store(), o = JSON.stringify(s);
311
+ o !== t && (window.localStorage.setItem(U, o), t = o);
312
+ }, s = e.modifiers.has("local");
313
+ if (s) {
314
+ window.addEventListener(q, n);
315
+ const t = window.localStorage.getItem(U) || "{}", s = JSON.parse(t);
316
+ e.mergeStore(s);
317
+ }
318
+ const o = e.modifiers.has("session"), r = (t)=>{
319
+ const n = e.store(), s = JSON.stringify(n);
320
+ window.sessionStorage.setItem(U, s);
321
+ };
322
+ if (o) {
323
+ window.addEventListener(q, r);
324
+ const t = window.sessionStorage.getItem(U) || "{}", n = JSON.parse(t);
325
+ e.mergeStore(n);
326
+ }
327
+ const i = e.expressionFn(e), a = lt(e.store(), i, e.modifiers.has("ifmissing"));
328
+ return e.mergeStore(a), delete e.el.dataset[e.rawKey], ()=>{
329
+ s && window.removeEventListener(q, n), o && window.removeEventListener(q, r);
330
+ };
331
+ }
332
+ }, It = {
333
+ prefix: "computed",
334
+ mustNotEmptyKey: !0,
335
+ onLoad: (e)=>(e.store()[e.key] = e.reactivity.computed(()=>e.expressionFn(e)), ()=>{
336
+ delete e.store()[e.key];
337
+ })
338
+ }, Rt = {
339
+ prefix: "ref",
340
+ mustHaveEmptyKey: !0,
341
+ mustNotEmptyExpression: !0,
342
+ bypassExpressionFunctionCreation: ()=>!0,
343
+ onLoad: (e)=>{
344
+ e.upsertIfMissingFromStore("_dsPlugins.refs", {});
345
+ const { el: t, expression: n } = e, s = {
346
+ _dsPlugins: {
347
+ refs: {
348
+ ...e.store()._dsPlugins.refs.value,
349
+ [n]: at(t)
350
+ }
351
+ }
352
+ };
353
+ return e.mergeStore(s), ()=>{
354
+ const t = e.store(), s = {
355
+ ...t._dsPlugins.refs.value
356
+ };
357
+ delete s[n], t._dsPlugins.refs = s;
358
+ };
359
+ }
360
+ }, Ct = [
361
+ Ot,
362
+ It,
363
+ Rt
364
+ ];
365
+ function at(e) {
366
+ if (!e) return "null";
367
+ if ("string" == typeof e) return e;
368
+ if (e instanceof Window) return "Window";
369
+ if (e instanceof Document) return "Document";
370
+ if ("BODY" === e.tagName) return "BODY";
371
+ const t = [];
372
+ for(; e.parentElement && "BODY" !== e.tagName;){
373
+ if (e.id) {
374
+ t.unshift("#" + e.getAttribute("id"));
375
+ break;
376
+ }
377
+ {
378
+ let n = 1, s = e;
379
+ for(; s.previousElementSibling; s = s.previousElementSibling, n++);
380
+ t.unshift(e.tagName + ":nth-child(" + n + ")");
381
+ }
382
+ e = e.parentElement;
383
+ }
384
+ return t.join(">");
385
+ }
386
+ function lt(e, t, n) {
387
+ const s = {};
388
+ if (n) for(const n in t){
389
+ const o = e[n]?.value;
390
+ null == o && (s[n] = t[n]);
391
+ }
392
+ else Object.assign(s, t);
393
+ return s;
394
+ }
395
+ const U = "datastar", k = `${U}-`;
396
+ class Dt {
397
+ constructor(e = {}, ...t){
398
+ if (this.plugins = [], this.store = oe({
399
+ _dsPlugins: {}
400
+ }), this.actions = {}, this.refs = {}, this.reactivity = {
401
+ signal: Xe,
402
+ computed: Tt,
403
+ effect: nt
404
+ }, this.parentID = "", this.missingIDNext = 0, this.removals = new Map, this.mergeRemovals = new Array, this.actions = Object.assign(this.actions, e), !(t = [
405
+ ...Ct,
406
+ ...t
407
+ ]).length) throw new Error("No plugins provided");
408
+ const n = new Set;
409
+ for (const e of t){
410
+ if (e.requiredPluginPrefixes) {
411
+ for (const t of e.requiredPluginPrefixes)if (!n.has(t)) throw new Error(`${e.prefix} requires ${t}`);
412
+ }
413
+ this.plugins.push(e), n.add(e.prefix);
414
+ }
415
+ }
416
+ run() {
417
+ new MutationObserver((e, t)=>{
418
+ N("core", "dom", "mutation", document.body, document.body.outerHTML);
419
+ }).observe(document.body, {
420
+ attributes: !0,
421
+ childList: !0,
422
+ subtree: !0
423
+ }), this.plugins.forEach((e)=>{
424
+ e.onGlobalInit && (e.onGlobalInit({
425
+ actions: this.actions,
426
+ reactivity: this.reactivity,
427
+ mergeStore: this.mergeStore.bind(this),
428
+ store: this.store
429
+ }), N("core", "plugins", "registration", "BODY", `On prefix ${e.prefix}`));
430
+ }), this.applyPlugins(document.body);
431
+ }
432
+ cleanupElementRemovals(e) {
433
+ const t = this.removals.get(e);
434
+ if (t) {
435
+ for (const e of t.set)e();
436
+ this.removals.delete(e);
437
+ }
438
+ }
439
+ mergeStore(e) {
440
+ this.mergeRemovals.forEach((e)=>e()), this.mergeRemovals = this.mergeRemovals.slice(0);
441
+ const t = ot(this.store.value, e);
442
+ this.store = oe(t), this.mergeRemovals.push(this.reactivity.effect(()=>{
443
+ N("core", "store", "merged", "STORE", JSON.stringify(this.store.value));
444
+ }));
445
+ }
446
+ removeFromStore(...e) {
447
+ const t = {
448
+ ...this.store.value
449
+ };
450
+ for (const n of e){
451
+ const e = n.split(".");
452
+ let s = e[0], o = t;
453
+ for(let t = 1; t < e.length; t++){
454
+ const n = e[t];
455
+ o[s] || (o[s] = {}), o = o[s], s = n;
456
+ }
457
+ delete o[s];
458
+ }
459
+ this.store = oe(t), this.applyPlugins(document.body);
460
+ }
461
+ upsertIfMissingFromStore(e, t) {
462
+ const n = e.split(".");
463
+ let s = this.store;
464
+ for(let e = 0; e < n.length - 1; e++){
465
+ const t = n[e];
466
+ s[t] || (s[t] = {}), s = s[t];
467
+ }
468
+ const o = n[n.length - 1];
469
+ s[o] || (s[o] = this.reactivity.signal(t), N("core", "store", "upsert", e, t));
470
+ }
471
+ signalByName(e) {
472
+ return this.store[e];
473
+ }
474
+ applyPlugins(e) {
475
+ const t = new Set;
476
+ this.plugins.forEach((n, s)=>{
477
+ this.walkDownDOM(e, (e)=>{
478
+ s || this.cleanupElementRemovals(e);
479
+ for(const s in e.dataset){
480
+ const o = e.dataset[s] || "";
481
+ let r = o;
482
+ if (!s.startsWith(n.prefix)) continue;
483
+ if (0 === e.id.length && (e.id = `ds-${this.parentID}-${this.missingIDNext++}`), t.clear(), n.allowedTagRegexps) {
484
+ const t = e.tagName.toLowerCase();
485
+ if (![
486
+ ...n.allowedTagRegexps
487
+ ].some((e)=>t.match(e))) throw new Error(`'${e.tagName}' not allowed for '${s}', allowed ${[
488
+ [
489
+ ...n.allowedTagRegexps
490
+ ].map((e)=>`'${e}'`)
491
+ ].join(", ")}`);
492
+ }
493
+ let i = s.slice(n.prefix.length), [a, ...l] = i.split(".");
494
+ if (n.mustHaveEmptyKey && a.length > 0) throw new Error(`'${s}' must have empty key`);
495
+ if (n.mustNotEmptyKey && 0 === a.length) throw new Error(`'${s}' must have non-empty key`);
496
+ a.length && (a = a[0].toLowerCase() + a.slice(1));
497
+ const c = l.map((e)=>{
498
+ const [t, ...n] = e.split("_");
499
+ return {
500
+ label: t,
501
+ args: n
502
+ };
503
+ });
504
+ if (n.allowedModifiers) {
505
+ for (const e of c)if (!n.allowedModifiers.has(e.label)) throw new Error(`'${e.label}' is not allowed`);
506
+ }
507
+ const u = new Map;
508
+ for (const e of c)u.set(e.label, e.args);
509
+ if (n.mustHaveEmptyExpression && r.length) throw new Error(`'${s}' must have empty expression`);
510
+ if (n.mustNotEmptyExpression && !r.length) throw new Error(`'${s}' must have non-empty expression`);
511
+ const d = /;|\n/;
512
+ n.removeNewLines && (r = r.split("\n").map((e)=>e.trim()).join(" "));
513
+ const f = [
514
+ ...n.preprocessors?.pre || [],
515
+ ...$t,
516
+ ...n.preprocessors?.post || []
517
+ ];
518
+ for (const e of f){
519
+ if (t.has(e)) continue;
520
+ t.add(e);
521
+ const n = r.split(d), s = [];
522
+ n.forEach((t)=>{
523
+ let n = t;
524
+ const o = [
525
+ ...n.matchAll(e.regexp)
526
+ ];
527
+ if (o.length) for (const t of o){
528
+ if (!t.groups) continue;
529
+ const { groups: s } = t, { whole: o } = s;
530
+ n = n.replace(o, e.replacer(s));
531
+ }
532
+ s.push(n);
533
+ }), r = s.join("; ");
534
+ }
535
+ const h = {
536
+ store: ()=>this.store,
537
+ mergeStore: this.mergeStore.bind(this),
538
+ upsertIfMissingFromStore: this.upsertIfMissingFromStore.bind(this),
539
+ removeFromStore: this.removeFromStore.bind(this),
540
+ applyPlugins: this.applyPlugins.bind(this),
541
+ cleanupElementRemovals: this.cleanupElementRemovals.bind(this),
542
+ walkSignals: this.walkSignals.bind(this),
543
+ actions: this.actions,
544
+ reactivity: this.reactivity,
545
+ el: e,
546
+ rawKey: s,
547
+ key: a,
548
+ rawExpression: o,
549
+ expression: r,
550
+ expressionFn: ()=>{
551
+ throw new Error("Expression function not created");
552
+ },
553
+ modifiers: u,
554
+ sendDatastarEvent: N
555
+ };
556
+ if (!n.bypassExpressionFunctionCreation?.(h) && !n.mustHaveEmptyExpression && r.length) {
557
+ const e = r.split(d).map((e)=>e.trim()).filter((e)=>e.length);
558
+ e[e.length - 1] = `return ${e[e.length - 1]}`;
559
+ const t = e.map((e)=>` ${e}`).join(";\n"), o = `\ntry {\n const _datastarExpression = () => {\n${t}\n }\n const _datastarReturnVal = _datastarExpression()\n ctx.sendDatastarEvent('core', 'attributes', 'expr_eval', ctx.el, '${s} equals ' + JSON.stringify(_datastarReturnVal))\n return _datastarReturnVal\n} catch (e) {\n const msg = \`\nError evaluating Datastar expression:\n${t.replaceAll("`", "\\`")}\n\nError: \${e.message}\n\nCheck if the expression is valid before raising an issue.\n\`.trim()\n ctx.sendDatastarEvent('core', 'attributes', 'expr_eval_err', ctx.el, msg)\n console.error(msg)\n debugger\n}\n `;
560
+ try {
561
+ const e = n.argumentNames || [], t = new Function("ctx", ...e, o);
562
+ h.expressionFn = t;
563
+ } catch (e) {
564
+ const t = new Error(`Error creating expression function for '${o}', error: ${e}`);
565
+ N("core", "attributes", "expr_construction_err", h.el, String(t)), console.error(t);
566
+ }
567
+ }
568
+ const p = n.onLoad(h);
569
+ p && (this.removals.has(e) || this.removals.set(e, {
570
+ id: e.id,
571
+ set: new Set
572
+ }), this.removals.get(e).set.add(p));
573
+ }
574
+ });
575
+ });
576
+ }
577
+ walkSignalsStore(e, t) {
578
+ const n = Object.keys(e);
579
+ for(let s = 0; s < n.length; s++){
580
+ const o = n[s], r = e[o], i = r instanceof T, a = "object" == typeof r && Object.keys(r).length > 0;
581
+ i ? t(o, r) : a && this.walkSignalsStore(r, t);
582
+ }
583
+ }
584
+ walkSignals(e) {
585
+ this.walkSignalsStore(this.store, e);
586
+ }
587
+ walkDownDOM(e, t, n = 0) {
588
+ if (!e) return;
589
+ const s = ze(e);
590
+ if (s) for(t(s), n = 0, e = e.firstElementChild; e;)this.walkDownDOM(e, t, n++), e = e.nextElementSibling;
591
+ }
592
+ }
593
+ const ct = (e)=>e.replace(/[A-Z]+(?![a-z])|[A-Z]/g, (e, t)=>(t ? "-" : "") + e.toLowerCase()), Ft = {
594
+ prefix: "bind",
595
+ mustNotEmptyKey: !0,
596
+ mustNotEmptyExpression: !0,
597
+ onLoad: (e)=>e.reactivity.effect(async ()=>{
598
+ const t = ct(e.key), n = e.expressionFn(e);
599
+ let s;
600
+ s = "string" == typeof n ? n : JSON.stringify(n), s && "false" !== s && "null" !== s && "undefined" !== s ? e.el.setAttribute(t, s) : e.el.removeAttribute(t);
601
+ })
602
+ }, Ht = /^data:(?<mime>[^;]+);base64,(?<contents>.*)$/, te = [
603
+ "change",
604
+ "input",
605
+ "keydown"
606
+ ], Vt = {
607
+ prefix: "model",
608
+ mustHaveEmptyKey: !0,
609
+ preprocessors: {
610
+ post: [
611
+ {
612
+ regexp: /(?<whole>.+)/g,
613
+ replacer: (e)=>{
614
+ const { whole: t } = e;
615
+ return `ctx.store().${t}`;
616
+ }
617
+ }
618
+ ]
619
+ },
620
+ onLoad: (e)=>{
621
+ const { el: t, expression: n } = e, s = e.expressionFn(e), o = t.tagName.toLowerCase();
622
+ if (n.startsWith("ctx.store().ctx.store()")) throw new Error(`Model attribute on #${t.id} must have a signal name, you probably prefixed with $ by accident`);
623
+ const r = o.includes("input"), i = t.getAttribute("type"), a = o.includes("checkbox") || r && "checkbox" === i, l = o.includes("select"), c = o.includes("radio") || r && "radio" === i, u = r && "file" === i, d = n.replaceAll("ctx.store().", "");
624
+ c && (t.getAttribute("name")?.length || t.setAttribute("name", d));
625
+ const f = e.reactivity.effect(()=>{
626
+ if (!s) throw new Error(`Signal ${d} not found`);
627
+ const e = "value" in t, n = s.value;
628
+ if (a || c) {
629
+ const e = t;
630
+ a ? e.checked = n : c && (e.checked = `${n}` === e.value);
631
+ } else if (!u) if (l) {
632
+ const e = t;
633
+ if (e.multiple) {
634
+ const t = s.value;
635
+ Array.from(e.options).forEach((e)=>{
636
+ e?.disabled || (e.selected = t.includes(e.value));
637
+ });
638
+ } else e.value = `${n}`;
639
+ } else e ? t.value = `${n}` : t.setAttribute("value", `${n}`);
640
+ }), h = async ()=>{
641
+ if (u) {
642
+ const n = [
643
+ ...t?.files || []
644
+ ], o = [], r = [], i = [];
645
+ await Promise.all(n.map((e)=>new Promise((t)=>{
646
+ const n = new FileReader;
647
+ n.onload = ()=>{
648
+ if ("string" != typeof n.result) throw new Error("Invalid result type: " + typeof n.result);
649
+ const t = n.result.match(Ht);
650
+ if (!t?.groups) throw new Error(`Invalid data URI: ${n.result}`);
651
+ o.push(t.groups.contents), r.push(t.groups.mime), i.push(e.name);
652
+ }, n.onloadend = ()=>t(void 0), n.readAsDataURL(e);
653
+ }))), s.value = o;
654
+ const a = e.store(), l = `${d}Mimes`, c = `${d}Names`;
655
+ return l in a && (a[`${l}`].value = r), void (c in a && (a[`${c}`].value = i));
656
+ }
657
+ const n = s.value, o = t || t;
658
+ if ("number" == typeof n) s.value = Number(o.value || o.getAttribute("value"));
659
+ else if ("string" == typeof n) s.value = o.value || o.getAttribute("value") || "";
660
+ else if ("boolean" == typeof n) s.value = a ? o.checked || "true" === o.getAttribute("checked") : !(!o.value && !o.getAttribute("value"));
661
+ else if (!(typeof n > "u")) if ("bigint" == typeof n) s.value = BigInt(o.value || o.getAttribute("value") || "0");
662
+ else {
663
+ if (!Array.isArray(n)) throw console.log(typeof n), new Error(`Unsupported type ${typeof n} for signal ${d}`);
664
+ if (l) {
665
+ const e = [
666
+ ...t.selectedOptions
667
+ ].map((e)=>e.value);
668
+ s.value = e;
669
+ } else s.value = JSON.parse(o.value).split(",");
670
+ console.log(o.value);
671
+ }
672
+ }, p = t.tagName.split("-");
673
+ if (p.length > 1) {
674
+ const e = p[0].toLowerCase();
675
+ te.forEach((t)=>{
676
+ te.push(`${e}-${t}`);
677
+ });
678
+ }
679
+ return te.forEach((e)=>t.addEventListener(e, h)), ()=>{
680
+ f(), te.forEach((e)=>t.removeEventListener(e, h));
681
+ };
682
+ }
683
+ }, xt = {
684
+ prefix: "text",
685
+ mustHaveEmptyKey: !0,
686
+ onLoad: (e)=>{
687
+ const { el: t, expressionFn: n } = e;
688
+ if (!(t instanceof HTMLElement)) throw new Error("Element is not HTMLElement");
689
+ return e.reactivity.effect(()=>{
690
+ const s = n(e);
691
+ t.textContent = `${s}`;
692
+ });
693
+ }
694
+ };
695
+ let $e = "";
696
+ const jt = new Set([
697
+ "window",
698
+ "once",
699
+ "passive",
700
+ "capture",
701
+ "debounce",
702
+ "throttle",
703
+ "remote",
704
+ "outside"
705
+ ]), Ut = {
706
+ prefix: "on",
707
+ mustNotEmptyKey: !0,
708
+ mustNotEmptyExpression: !0,
709
+ argumentNames: [
710
+ "evt"
711
+ ],
712
+ onLoad: (e)=>{
713
+ const { el: t, key: n, expressionFn: s } = e;
714
+ let o = e.el;
715
+ e.modifiers.get("window") && (o = window);
716
+ let r = (t)=>{
717
+ N("plugin", "event", n, o, "triggered"), s(e, t);
718
+ };
719
+ const i = e.modifiers.get("debounce");
720
+ if (i) {
721
+ const e = _e(i), t = se(i, "leading", !1), n = se(i, "noTrail", !0);
722
+ r = Jt(r, e, t, n);
723
+ }
724
+ const a = e.modifiers.get("throttle");
725
+ if (a) {
726
+ const e = _e(a), t = se(a, "noLead", !0), n = se(a, "noTrail", !1);
727
+ r = Kt(r, e, t, n);
728
+ }
729
+ const l = {
730
+ capture: !0,
731
+ passive: !1,
732
+ once: !1
733
+ };
734
+ e.modifiers.has("capture") || (l.capture = !1), e.modifiers.has("passive") && (l.passive = !0), e.modifiers.has("once") && (l.once = !0), [
735
+ ...e.modifiers.keys()
736
+ ].filter((e)=>!jt.has(e)).forEach((s)=>{
737
+ const o = e.modifiers.get(s) || [], i = r;
738
+ r = ()=>{
739
+ const e = event, r = e[s];
740
+ let a;
741
+ if ("function" == typeof r) a = r(...o);
742
+ else if ("boolean" == typeof r) a = r;
743
+ else {
744
+ if ("string" != typeof r) {
745
+ const e = `Invalid value for ${s} modifier on ${n} on ${t}`;
746
+ throw console.error(e), new Error(e);
747
+ }
748
+ a = r.toLowerCase().trim() === o.join("").toLowerCase().trim();
749
+ }
750
+ a && i(e);
751
+ };
752
+ });
753
+ const c = ct(n).toLowerCase();
754
+ switch(c){
755
+ case "load":
756
+ return r(), delete e.el.dataset.onLoad, ()=>{};
757
+ case "raf":
758
+ let n1;
759
+ const s1 = ()=>{
760
+ r(), n1 = requestAnimationFrame(s1);
761
+ };
762
+ return n1 = requestAnimationFrame(s1), ()=>{
763
+ n1 && cancelAnimationFrame(n1);
764
+ };
765
+ case "store-change":
766
+ return e.reactivity.effect(()=>{
767
+ let t = e.store().value;
768
+ e.modifiers.has("remote") && (t = he(t));
769
+ const n = JSON.stringify(t);
770
+ $e !== n && ($e = n, r());
771
+ });
772
+ default:
773
+ if (e.modifiers.has("outside")) {
774
+ o = document;
775
+ const e = r;
776
+ let n = !1;
777
+ r = (s)=>{
778
+ const o = s?.target;
779
+ if (!o) return;
780
+ const r = t.id === o.id;
781
+ r && n && (n = !1), !r && !n && (e(s), n = !0);
782
+ };
783
+ }
784
+ return o.addEventListener(c, r, l), ()=>{
785
+ o.removeEventListener(c, r);
786
+ };
787
+ }
788
+ }
789
+ };
790
+ function he(e) {
791
+ const t = {};
792
+ for (const [n, s] of Object.entries(e))n.startsWith("_") || ("object" != typeof s || Array.isArray(s) ? t[n] = s : t[n] = he(s));
793
+ return t;
794
+ }
795
+ const Bt = {
796
+ prefix: "class",
797
+ mustHaveEmptyKey: !0,
798
+ mustNotEmptyExpression: !0,
799
+ onLoad: (e)=>e.reactivity.effect(()=>{
800
+ const t = e.expressionFn(e);
801
+ for (const [n, s] of Object.entries(t))s ? e.el.classList.add(n) : e.el.classList.remove(n);
802
+ return ()=>{
803
+ e.el.classList.remove(...Object.keys(t));
804
+ };
805
+ })
806
+ }, Wt = [
807
+ Ft,
808
+ Vt,
809
+ xt,
810
+ Ut,
811
+ Bt
812
+ ], qt = {
813
+ remote: async (e)=>he(e.store().value)
814
+ };
815
+ function _e(e) {
816
+ if (!e || 0 === e?.length) return 0;
817
+ for (const t of e){
818
+ if (t.endsWith("ms")) return Number(t.replace("ms", ""));
819
+ if (t.endsWith("s")) return 1e3 * Number(t.replace("s", ""));
820
+ try {
821
+ return parseFloat(t);
822
+ } catch {}
823
+ }
824
+ return 0;
825
+ }
826
+ function se(e, t, n = !1) {
827
+ return !!e && (e.includes(t) || n);
828
+ }
829
+ function Jt(e, t, n = !1, s = !0) {
830
+ let o;
831
+ const r = ()=>o && clearTimeout(o);
832
+ return function(...i) {
833
+ r(), n && !o && e(...i), o = setTimeout(()=>{
834
+ s && e(...i), r();
835
+ }, t);
836
+ };
837
+ }
838
+ function Kt(e, t, n = !0, s = !1) {
839
+ let o = !1;
840
+ return function(...r) {
841
+ o || (n && e(...r), o = !0, setTimeout(()=>{
842
+ o = !1, s && e(...r);
843
+ }, t));
844
+ };
845
+ }
846
+ function Gt(e, { signal: t, headers: n, onopen: s, onmessage: o, onclose: r, onerror: i, openWhenHidden: a, ...l }) {
847
+ return new Promise((c, u)=>{
848
+ let d = 0;
849
+ const f = {
850
+ ...n
851
+ };
852
+ let h;
853
+ function p() {
854
+ h.abort(), document.hidden || y();
855
+ }
856
+ f.accept || (f.accept = Se), a || document.addEventListener("visibilitychange", p);
857
+ let m = Oe, g = 0;
858
+ function v() {
859
+ document.removeEventListener("visibilitychange", p), window.clearTimeout(g), h.abort();
860
+ }
861
+ t?.addEventListener("abort", ()=>{
862
+ v(), c();
863
+ });
864
+ const b = s ?? Zt;
865
+ async function y() {
866
+ h = new AbortController;
867
+ try {
868
+ const t = await fetch(e, {
869
+ ...l,
870
+ headers: f,
871
+ signal: h.signal
872
+ });
873
+ await b(t), await Xt(t.body, Qt(es((e)=>{
874
+ e ? f[Ie] = e : delete f[Ie];
875
+ }, (e)=>{
876
+ m = e;
877
+ }, o))), r?.(), v(), c();
878
+ } catch (e) {
879
+ if (!h.signal.aborted) try {
880
+ const t = i?.(e) ?? m;
881
+ window.clearTimeout(g), g = window.setTimeout(y, t), m *= 1.5, m = Math.min(m, Yt), d++, d >= zt ? (v(), u(new Error("Max retries hit, check your server or network connection."))) : console.error(`Error fetching event source, retrying in ${t}ms`);
882
+ } catch (e) {
883
+ v(), u(e);
884
+ }
885
+ }
886
+ }
887
+ m = Oe, y();
888
+ });
889
+ }
890
+ const Se = "text/event-stream", Oe = 100, Yt = 1e4, zt = 10, Ie = "last-event-id";
891
+ function Zt(e) {
892
+ const t = e.headers.get("content-type");
893
+ if (!t?.startsWith(Se)) throw new Error(`Expected content-type to be ${Se}, Actual: ${t}`);
894
+ }
895
+ async function Xt(e, t) {
896
+ const n = e.getReader();
897
+ for(;;){
898
+ const e = await n.read();
899
+ if (e.done) break;
900
+ t(e.value);
901
+ }
902
+ }
903
+ function Qt(e) {
904
+ let t, n, s, o = !1;
905
+ return function(r) {
906
+ void 0 === t ? (t = r, n = 0, s = -1) : t = ts(t, r);
907
+ const i = t.length;
908
+ let a = 0;
909
+ for(; n < i;){
910
+ o && (10 === t[n] && (a = ++n), o = !1);
911
+ let r = -1;
912
+ for(; n < i && -1 === r; ++n)switch(t[n]){
913
+ case 58:
914
+ -1 === s && (s = n - a);
915
+ break;
916
+ case 13:
917
+ o = !0;
918
+ case 10:
919
+ r = n;
920
+ }
921
+ if (-1 === r) break;
922
+ e(t.subarray(a, r), s), a = n, s = -1;
923
+ }
924
+ a === i ? t = void 0 : 0 !== a && (t = t.subarray(a), n -= a);
925
+ };
926
+ }
927
+ function es(e, t, n) {
928
+ let s = Re();
929
+ const o = new TextDecoder;
930
+ return function(r, i) {
931
+ if (0 === r.length) n?.(s), s = Re();
932
+ else if (i > 0) {
933
+ const n = o.decode(r.subarray(0, i)), a = i + (32 === r[i + 1] ? 2 : 1), l = o.decode(r.subarray(a));
934
+ switch(n){
935
+ case "data":
936
+ s.data = s.data ? s.data + "\n" + l : l;
937
+ break;
938
+ case "event":
939
+ s.event = l;
940
+ break;
941
+ case "id":
942
+ e(s.id = l);
943
+ break;
944
+ case "retry":
945
+ const n1 = parseInt(l, 10);
946
+ isNaN(n1) || t(s.retry = n1);
947
+ }
948
+ }
949
+ };
950
+ }
951
+ function ts(e, t) {
952
+ const n = new Uint8Array(e.length + t.length);
953
+ return n.set(e), n.set(t, e.length), n;
954
+ }
955
+ function Re() {
956
+ return {
957
+ data: "",
958
+ event: "",
959
+ id: "",
960
+ retry: void 0
961
+ };
962
+ }
963
+ const ie = new WeakSet;
964
+ function ss(e, t, n = {}) {
965
+ let s;
966
+ e instanceof Document && (e = e.documentElement), s = "string" == typeof t ? as(t) : t;
967
+ const o = ls(s);
968
+ return ut(e, o, rs(e, o, n));
969
+ }
970
+ function ut(e, t, n) {
971
+ if (n.head.block) {
972
+ const s = e.querySelector("head"), o = t.querySelector("head");
973
+ if (s && o) {
974
+ const r = dt(o, s, n);
975
+ return void Promise.all(r).then(()=>{
976
+ ut(e, t, Object.assign(n, {
977
+ head: {
978
+ block: !1,
979
+ ignore: !0
980
+ }
981
+ }));
982
+ });
983
+ }
984
+ }
985
+ if ("innerHTML" === n.morphStyle) return ft(t, e, n), e.children;
986
+ if ("outerHTML" === n.morphStyle || null == n.morphStyle) {
987
+ const s = us(t, e, n);
988
+ if (!s) throw new Error("Could not find best match");
989
+ const o = s?.previousSibling, r = s?.nextSibling, i = ae(e, s, n);
990
+ return s ? cs(o, i, r) : [];
991
+ }
992
+ throw "Do not understand how to morph style " + n.morphStyle;
993
+ }
994
+ function ae(e, t, n) {
995
+ if (!n.ignoreActive || e !== document.activeElement) {
996
+ if (null == t) {
997
+ if (!1 === n.callbacks.beforeNodeRemoved(e)) return;
998
+ return e.remove(), void n.callbacks.afterNodeRemoved(e);
999
+ }
1000
+ if (ce(e, t)) return !1 === n.callbacks.beforeNodeMorphed(e, t) ? void 0 : (e instanceof HTMLHeadElement && n.head.ignore || (t instanceof HTMLHeadElement && e instanceof HTMLHeadElement && "morph" !== n.head.style ? dt(t, e, n) : (ns(t, e), ft(t, e, n))), n.callbacks.afterNodeMorphed(e, t), e);
1001
+ if (!1 === n.callbacks.beforeNodeRemoved(e) || !1 === n.callbacks.beforeNodeAdded(t)) return;
1002
+ if (!e.parentElement) throw new Error("oldNode has no parentElement");
1003
+ return e.parentElement.replaceChild(t, e), n.callbacks.afterNodeAdded(t), n.callbacks.afterNodeRemoved(e), t;
1004
+ }
1005
+ }
1006
+ function ft(e, t, n) {
1007
+ let s, o = e.firstChild, r = t.firstChild;
1008
+ for(; o;){
1009
+ if (s = o, o = s.nextSibling, null == r) {
1010
+ if (!1 === n.callbacks.beforeNodeAdded(s)) return;
1011
+ t.appendChild(s), n.callbacks.afterNodeAdded(s), x(n, s);
1012
+ continue;
1013
+ }
1014
+ if (ht(s, r, n)) {
1015
+ ae(r, s, n), r = r.nextSibling, x(n, s);
1016
+ continue;
1017
+ }
1018
+ let i = os(e, t, s, r, n);
1019
+ if (i) {
1020
+ r = Ce(r, i, n), ae(i, s, n), x(n, s);
1021
+ continue;
1022
+ }
1023
+ let a = is(e, s, r, n);
1024
+ if (a) r = Ce(r, a, n), ae(a, s, n), x(n, s);
1025
+ else {
1026
+ if (!1 === n.callbacks.beforeNodeAdded(s)) return;
1027
+ t.insertBefore(s, r), n.callbacks.afterNodeAdded(s), x(n, s);
1028
+ }
1029
+ }
1030
+ for(; null !== r;){
1031
+ let e = r;
1032
+ r = r.nextSibling, pt(e, n);
1033
+ }
1034
+ }
1035
+ function ns(e, t) {
1036
+ let n = e.nodeType;
1037
+ if (1 === n) {
1038
+ for (const n of e.attributes)t.getAttribute(n.name) !== n.value && t.setAttribute(n.name, n.value);
1039
+ for (const n of t.attributes)e.hasAttribute(n.name) || t.removeAttribute(n.name);
1040
+ }
1041
+ if ((n === Node.COMMENT_NODE || n === Node.TEXT_NODE) && t.nodeValue !== e.nodeValue && (t.nodeValue = e.nodeValue), e instanceof HTMLInputElement && t instanceof HTMLInputElement && "file" !== e.type) t.value = e.value || "", ne(e, t, "value"), ne(e, t, "checked"), ne(e, t, "disabled");
1042
+ else if (e instanceof HTMLOptionElement) ne(e, t, "selected");
1043
+ else if (e instanceof HTMLTextAreaElement && t instanceof HTMLTextAreaElement) {
1044
+ const n = e.value;
1045
+ n !== t.value && (t.value = n), t.firstChild && t.firstChild.nodeValue !== n && (t.firstChild.nodeValue = n);
1046
+ }
1047
+ }
1048
+ function ne(e, t, n) {
1049
+ const s = e.getAttribute(n);
1050
+ s !== t.getAttribute(n) && (s ? t.setAttribute(n, s) : t.removeAttribute(n));
1051
+ }
1052
+ function dt(e, t, n) {
1053
+ const s = [], o = [], r = [], i = [], a = n.head.style, l = new Map;
1054
+ for (const t of e.children)l.set(t.outerHTML, t);
1055
+ for (const e of t.children){
1056
+ let t = l.has(e.outerHTML), s = n.head.shouldReAppend(e), c = n.head.shouldPreserve(e);
1057
+ t || c ? s ? o.push(e) : (l.delete(e.outerHTML), r.push(e)) : "append" === a ? s && (o.push(e), i.push(e)) : !1 !== n.head.shouldRemove(e) && o.push(e);
1058
+ }
1059
+ i.push(...l.values());
1060
+ const c = [];
1061
+ for (const e of i){
1062
+ const o = document.createRange().createContextualFragment(e.outerHTML).firstChild;
1063
+ if (!o) throw new Error("could not create new element from: " + e.outerHTML);
1064
+ if (n.callbacks.beforeNodeAdded(o)) {
1065
+ if (o.hasAttribute("href") || o.hasAttribute("src")) {
1066
+ let e;
1067
+ const t = new Promise((t)=>{
1068
+ e = t;
1069
+ });
1070
+ o.addEventListener("load", function() {
1071
+ e(void 0);
1072
+ }), c.push(t);
1073
+ }
1074
+ t.appendChild(o), n.callbacks.afterNodeAdded(o), s.push(o);
1075
+ }
1076
+ }
1077
+ for (const e of o)!1 !== n.callbacks.beforeNodeRemoved(e) && (t.removeChild(e), n.callbacks.afterNodeRemoved(e));
1078
+ return n.head.afterHeadMorphed(t, {
1079
+ added: s,
1080
+ kept: r,
1081
+ removed: o
1082
+ }), c;
1083
+ }
1084
+ function F() {}
1085
+ function rs(e, t, n) {
1086
+ return {
1087
+ target: e,
1088
+ newContent: t,
1089
+ config: n,
1090
+ morphStyle: n.morphStyle,
1091
+ ignoreActive: n.ignoreActive,
1092
+ idMap: ps(e, t),
1093
+ deadIds: new Set,
1094
+ callbacks: Object.assign({
1095
+ beforeNodeAdded: F,
1096
+ afterNodeAdded: F,
1097
+ beforeNodeMorphed: F,
1098
+ afterNodeMorphed: F,
1099
+ beforeNodeRemoved: F,
1100
+ afterNodeRemoved: F
1101
+ }, n.callbacks),
1102
+ head: Object.assign({
1103
+ style: "merge",
1104
+ shouldPreserve: (e)=>"true" === e.getAttribute("im-preserve"),
1105
+ shouldReAppend: (e)=>"true" === e.getAttribute("im-re-append"),
1106
+ shouldRemove: F,
1107
+ afterHeadMorphed: F
1108
+ }, n.head)
1109
+ };
1110
+ }
1111
+ function ht(e, t, n) {
1112
+ return !(!e || !t) && e.nodeType === t.nodeType && e.tagName === t.tagName && (!(!e?.id?.length || e.id !== t.id) || z(n, e, t) > 0);
1113
+ }
1114
+ function ce(e, t) {
1115
+ return !(!e || !t) && e.nodeType === t.nodeType && e.tagName === t.tagName;
1116
+ }
1117
+ function Ce(e, t, n) {
1118
+ for(; e !== t;){
1119
+ const t = e;
1120
+ if (e = e?.nextSibling, !t) throw new Error("tempNode is null");
1121
+ pt(t, n);
1122
+ }
1123
+ return x(n, t), t.nextSibling;
1124
+ }
1125
+ function os(e, t, n, s, o) {
1126
+ const r = z(o, n, t);
1127
+ let i = null;
1128
+ if (r > 0) {
1129
+ i = s;
1130
+ let t = 0;
1131
+ for(; null != i;){
1132
+ if (ht(n, i, o)) return i;
1133
+ if (t += z(o, i, e), t > r) return null;
1134
+ i = i.nextSibling;
1135
+ }
1136
+ }
1137
+ return i;
1138
+ }
1139
+ function is(e, t, n, s) {
1140
+ let o = n, r = t.nextSibling, i = 0;
1141
+ for(; o && r;){
1142
+ if (z(s, o, e) > 0) return null;
1143
+ if (ce(t, o)) return o;
1144
+ if (ce(r, o) && (i++, r = r.nextSibling, i >= 2)) return null;
1145
+ o = o.nextSibling;
1146
+ }
1147
+ return o;
1148
+ }
1149
+ const De = new DOMParser;
1150
+ function as(e) {
1151
+ const t = e.replace(/<svg(\s[^>]*>|>)([\s\S]*?)<\/svg>/gim, "");
1152
+ if (t.match(/<\/html>/) || t.match(/<\/head>/) || t.match(/<\/body>/)) {
1153
+ const n = De.parseFromString(e, "text/html");
1154
+ if (t.match(/<\/html>/)) return ie.add(n), n;
1155
+ {
1156
+ let e = n.firstChild;
1157
+ return e ? (ie.add(e), e) : null;
1158
+ }
1159
+ }
1160
+ {
1161
+ const t = De.parseFromString(`<body><template>${e}</template></body>`, "text/html").body.querySelector("template")?.content;
1162
+ if (!t) throw new Error("content is null");
1163
+ return ie.add(t), t;
1164
+ }
1165
+ }
1166
+ function ls(e) {
1167
+ if (null == e) return document.createElement("div");
1168
+ if (ie.has(e)) return e;
1169
+ if (e instanceof Node) {
1170
+ const t = document.createElement("div");
1171
+ return t.append(e), t;
1172
+ }
1173
+ {
1174
+ const t = document.createElement("div");
1175
+ for (const n of [
1176
+ ...e
1177
+ ])t.append(n);
1178
+ return t;
1179
+ }
1180
+ }
1181
+ function cs(e, t, n) {
1182
+ const s = [], o = [];
1183
+ for(; e;)s.push(e), e = e.previousSibling;
1184
+ for(; s.length > 0;){
1185
+ const e = s.pop();
1186
+ o.push(e), t?.parentElement?.insertBefore(e, t);
1187
+ }
1188
+ for(o.push(t); n;)s.push(n), o.push(n), n = n.nextSibling;
1189
+ for(; s.length;)t?.parentElement?.insertBefore(s.pop(), t.nextSibling);
1190
+ return o;
1191
+ }
1192
+ function us(e, t, n) {
1193
+ let s = e.firstChild, o = s, r = 0;
1194
+ for(; s;){
1195
+ let e = fs(s, t, n);
1196
+ e > r && (o = s, r = e), s = s.nextSibling;
1197
+ }
1198
+ return o;
1199
+ }
1200
+ function fs(e, t, n) {
1201
+ return ce(e, t) ? .5 + z(n, e, t) : 0;
1202
+ }
1203
+ function pt(e, t) {
1204
+ x(t, e), !1 !== t.callbacks.beforeNodeRemoved(e) && (e.remove(), t.callbacks.afterNodeRemoved(e));
1205
+ }
1206
+ function ds(e, t) {
1207
+ return !e.deadIds.has(t);
1208
+ }
1209
+ function hs(e, t, n) {
1210
+ return e.idMap.get(n)?.has(t) || !1;
1211
+ }
1212
+ function x(e, t) {
1213
+ const n = e.idMap.get(t);
1214
+ if (n) for (const t of n)e.deadIds.add(t);
1215
+ }
1216
+ function z(e, t, n) {
1217
+ const s = e.idMap.get(t);
1218
+ if (!s) return 0;
1219
+ let o = 0;
1220
+ for (const t of s)ds(e, t) && hs(e, t, n) && ++o;
1221
+ return o;
1222
+ }
1223
+ function Fe(e, t) {
1224
+ const n = e.parentElement, s = e.querySelectorAll("[id]");
1225
+ for (const e of s){
1226
+ let s = e;
1227
+ for(; s !== n && s;){
1228
+ let n = t.get(s);
1229
+ null == n && (n = new Set, t.set(s, n)), n.add(e.id), s = s.parentElement;
1230
+ }
1231
+ }
1232
+ }
1233
+ function ps(e, t) {
1234
+ const n = new Map;
1235
+ return Fe(e, n), Fe(t, n), n;
1236
+ }
1237
+ const ge = "display", He = "none", ve = "important", Ve = "duration", ms = "show", be = `${k}showing`, ye = `${k}hiding`, xe = `${k}show-transition-style`, gs = {
1238
+ prefix: ms,
1239
+ allowedModifiers: new Set([
1240
+ ve,
1241
+ Ve
1242
+ ]),
1243
+ onLoad: (e)=>{
1244
+ const { el: t, modifiers: n, expressionFn: s, reactivity: o } = e, r = n.has(ve) ? ve : void 0;
1245
+ let i, a;
1246
+ const l = e.modifiers.get(Ve);
1247
+ if (l) {
1248
+ let e = document.getElementById(xe);
1249
+ if (!e) {
1250
+ e = document.createElement("style"), e.id = xe, document.head.appendChild(e);
1251
+ const t = _e(l) || "300";
1252
+ e.innerHTML = `\n .${be} {\n visibility: visible;\n transition: opacity ${t}ms linear;\n }\n .${ye} {\n visibility: hidden;\n transition: visibility 0s ${t}ms, opacity ${t}ms linear;\n }\n `;
1253
+ }
1254
+ const n = (e)=>(s)=>{
1255
+ s.target === t && (t.classList.remove(e), t.removeEventListener("transitionend", n(e)));
1256
+ };
1257
+ i = ()=>{
1258
+ t.addEventListener("transitionend", n(be)), t.classList.add(be), requestAnimationFrame(()=>{
1259
+ t.style.setProperty("opacity", "1", r);
1260
+ });
1261
+ }, a = ()=>{
1262
+ t.addEventListener("transitionend", n(ye)), t.classList.add(ye), requestAnimationFrame(()=>{
1263
+ t.style.setProperty("opacity", "0", r);
1264
+ });
1265
+ };
1266
+ } else i = ()=>{
1267
+ 1 === t.style.length && t.style.display === He ? t.style.removeProperty(ge) : t.style.setProperty(ge, "", r);
1268
+ }, a = ()=>{
1269
+ t.style.setProperty(ge, He, r);
1270
+ };
1271
+ return o.effect(async ()=>{
1272
+ await s(e) ? i() : a();
1273
+ });
1274
+ }
1275
+ }, vs = "intersects", je = "once", Ue = "half", Be = "full", bs = {
1276
+ prefix: vs,
1277
+ allowedModifiers: new Set([
1278
+ je,
1279
+ Ue,
1280
+ Be
1281
+ ]),
1282
+ mustHaveEmptyKey: !0,
1283
+ onLoad: (e)=>{
1284
+ const { modifiers: t } = e, n = {
1285
+ threshold: 0
1286
+ };
1287
+ t.has(Be) ? n.threshold = 1 : t.has(Ue) && (n.threshold = .5);
1288
+ const s = new IntersectionObserver((n)=>{
1289
+ n.forEach((n)=>{
1290
+ n.isIntersecting && (e.expressionFn(e), t.has(je) && (s.disconnect(), delete e.el.dataset[e.rawKey]));
1291
+ });
1292
+ }, n);
1293
+ return s.observe(e.el), ()=>s.disconnect();
1294
+ }
1295
+ }, We = "prepend", qe = "append", Je = new Error("Target element must have a parent if using prepend or append"), ys = {
1296
+ prefix: "teleport",
1297
+ allowedModifiers: new Set([
1298
+ We,
1299
+ qe
1300
+ ]),
1301
+ allowedTagRegexps: new Set([
1302
+ "template"
1303
+ ]),
1304
+ bypassExpressionFunctionCreation: ()=>!0,
1305
+ onLoad: (e)=>{
1306
+ const { el: t, modifiers: n, expression: s } = e;
1307
+ if (!(t instanceof HTMLTemplateElement)) throw new Error("el must be a template element");
1308
+ const o = document.querySelector(s);
1309
+ if (!o) throw new Error(`Target element not found: ${s}`);
1310
+ if (!t.content) throw new Error("Template element must have content");
1311
+ const r = t.content.cloneNode(!0);
1312
+ if (ze(r)?.firstElementChild) throw new Error("Empty template");
1313
+ if (n.has(We)) {
1314
+ if (!o.parentNode) throw Je;
1315
+ o.parentNode.insertBefore(r, o);
1316
+ } else if (n.has(qe)) {
1317
+ if (!o.parentNode) throw Je;
1318
+ o.parentNode.insertBefore(r, o.nextSibling);
1319
+ } else o.appendChild(r);
1320
+ }
1321
+ }, ws = {
1322
+ prefix: "scrollIntoView",
1323
+ mustHaveEmptyKey: !0,
1324
+ mustHaveEmptyExpression: !0,
1325
+ allowedModifiers: new Set([
1326
+ "smooth",
1327
+ "instant",
1328
+ "auto",
1329
+ "hstart",
1330
+ "hcenter",
1331
+ "hend",
1332
+ "hnearest",
1333
+ "vstart",
1334
+ "vcenter",
1335
+ "vend",
1336
+ "vnearest",
1337
+ "focus"
1338
+ ]),
1339
+ onLoad: ({ el: e, modifiers: t, rawKey: n })=>{
1340
+ e.tabIndex || e.setAttribute("tabindex", "0");
1341
+ const s = {
1342
+ behavior: "smooth",
1343
+ block: "center",
1344
+ inline: "center"
1345
+ };
1346
+ return t.has("smooth") && (s.behavior = "smooth"), t.has("instant") && (s.behavior = "instant"), t.has("auto") && (s.behavior = "auto"), t.has("hstart") && (s.inline = "start"), t.has("hcenter") && (s.inline = "center"), t.has("hend") && (s.inline = "end"), t.has("hnearest") && (s.inline = "nearest"), t.has("vstart") && (s.block = "start"), t.has("vcenter") && (s.block = "center"), t.has("vend") && (s.block = "end"), t.has("vnearest") && (s.block = "nearest"), vt(e, s, t.has("focus")), delete e.dataset[n], ()=>{};
1347
+ }
1348
+ }, mt = document, gt = !!mt.startViewTransition, Es = {
1349
+ prefix: "viewTransition",
1350
+ onGlobalInit () {
1351
+ let e = !1;
1352
+ if (document.head.childNodes.forEach((t)=>{
1353
+ t instanceof HTMLMetaElement && "view-transition" === t.name && (e = !0);
1354
+ }), !e) {
1355
+ const e = document.createElement("meta");
1356
+ e.name = "view-transition", e.content = "same-origin", document.head.appendChild(e);
1357
+ }
1358
+ },
1359
+ onLoad: (e)=>{
1360
+ if (gt) return e.reactivity.effect(()=>{
1361
+ const { el: t, expressionFn: n } = e;
1362
+ let s = n(e);
1363
+ if (!s) return;
1364
+ t.style.viewTransitionName = s;
1365
+ });
1366
+ console.error("Browser does not support view transitions");
1367
+ }
1368
+ }, _s = [
1369
+ gs,
1370
+ bs,
1371
+ ys,
1372
+ ws,
1373
+ Es
1374
+ ], Ss = {
1375
+ scroll: async (e, t, n)=>{
1376
+ const s = Object.assign({
1377
+ behavior: "smooth",
1378
+ vertical: "center",
1379
+ horizontal: "center",
1380
+ shouldFocus: !0
1381
+ }, n);
1382
+ vt(document.querySelector(t), s);
1383
+ }
1384
+ };
1385
+ function vt(e, t, n = !0) {
1386
+ if (!(e instanceof HTMLElement || e instanceof SVGElement)) throw new Error("Element not found");
1387
+ e.tabIndex || e.setAttribute("tabindex", "0"), e.scrollIntoView(t), n && e.focus();
1388
+ }
1389
+ const Ts = 500, As = !0, Ns = "morph", Ls = "Content-Type", ks = `${U}-request`, Ms = "application/json", Ps = "true", $s = `${k}fragment`, Os = `${k}signal`, Is = `${k}delete`, Rs = `${k}redirect`, Cs = `${k}console`, Z = `${k}indicator`, Te = `${Z}-loading`, Ke = `${k}settling`, re = `${k}swapping`, Ds = "self", Fs = "get", Hs = "post", Vs = "put", xs = "patch", js = "delete", I = {
1390
+ MorphElement: "morph",
1391
+ InnerElement: "inner",
1392
+ OuterElement: "outer",
1393
+ PrependElement: "prepend",
1394
+ AppendElement: "append",
1395
+ BeforeElement: "before",
1396
+ AfterElement: "after",
1397
+ UpsertAttributes: "upsert_attributes"
1398
+ }, Us = {
1399
+ prefix: "fetchIndicator",
1400
+ mustHaveEmptyKey: !0,
1401
+ mustNotEmptyExpression: !0,
1402
+ onGlobalInit: ()=>{
1403
+ const e = document.createElement("style");
1404
+ e.innerHTML = `\n.${Z}{\n opacity:0;\n transition: opacity 300ms ease-out;\n}\n.${Te} {\n opacity:1;\n transition: opacity 300ms ease-in;\n}\n`, document.head.appendChild(e);
1405
+ },
1406
+ onLoad: (e)=>e.reactivity.effect(()=>{
1407
+ e.upsertIfMissingFromStore("_dsPlugins.fetch.indicatorElements", {}), e.upsertIfMissingFromStore("_dsPlugins.fetch.indicatorsVisible", []);
1408
+ const t = e.reactivity.computed(()=>`${e.expressionFn(e)}`), n = e.store(), s = document.querySelectorAll(t.value);
1409
+ if (0 === s.length) throw new Error("No indicator found");
1410
+ return s.forEach((e)=>{
1411
+ e.classList.add(Z);
1412
+ }), n._dsPlugins.fetch.indicatorElements[e.el.id] = e.reactivity.signal(s), ()=>{
1413
+ delete n._dsPlugins.fetch.indicatorElements[e.el.id];
1414
+ };
1415
+ })
1416
+ }, Bs = {
1417
+ prefix: "header",
1418
+ mustNotEmptyKey: !0,
1419
+ mustNotEmptyExpression: !0,
1420
+ preprocessors: {
1421
+ post: [
1422
+ {
1423
+ regexp: /(?<whole>.+)/g,
1424
+ replacer: (e)=>{
1425
+ const { whole: t } = e;
1426
+ return `'${t}'`;
1427
+ }
1428
+ }
1429
+ ]
1430
+ },
1431
+ onLoad: (e)=>{
1432
+ e.upsertIfMissingFromStore("_dsPlugins.fetch.headers", {});
1433
+ const t = e.key.replace(/([a-z](?=[A-Z]))/g, "$1-").toUpperCase(), n = e.expressionFn(e);
1434
+ return e.store()._dsPlugins.fetch.headers[t] = n, ()=>{
1435
+ delete e.store()._dsPlugins.fetch.headers[t];
1436
+ };
1437
+ }
1438
+ }, Ws = [
1439
+ Us,
1440
+ Bs
1441
+ ];
1442
+ async function qs(e, t, n, s = !0) {
1443
+ const o = n.store();
1444
+ if (!t) throw new Error(`No signal for ${e} on ${t}`);
1445
+ let r = {
1446
+ ...o.value
1447
+ };
1448
+ s && (r = he(r));
1449
+ const i = JSON.stringify(r), a = n.el;
1450
+ N("plugin", "backend", "fetch_start", a, JSON.stringify({
1451
+ method: e,
1452
+ urlExpression: t,
1453
+ onlyRemote: s,
1454
+ storeJSON: i
1455
+ }));
1456
+ const l = o?._dsPlugins?.fetch?.indicatorElements && o._dsPlugins.fetch.indicatorElements[a.id]?.value || [], c = o?._dsPlugins.fetch?.indicatorsVisible;
1457
+ l?.forEach && l.forEach((e)=>{
1458
+ if (!e || !c) return;
1459
+ const t = c.value.findIndex((t)=>!!t && e.isSameNode(t.el));
1460
+ if (t > -1) {
1461
+ const n = c.value[t], s = [
1462
+ ...c.value
1463
+ ];
1464
+ delete s[t], c.value = [
1465
+ ...s.filter((e)=>!!e),
1466
+ {
1467
+ el: e,
1468
+ count: n.count + 1
1469
+ }
1470
+ ];
1471
+ } else e.classList.remove(Z), e.classList.add(Te), c.value = [
1472
+ ...c.value,
1473
+ {
1474
+ el: e,
1475
+ count: 1
1476
+ }
1477
+ ];
1478
+ });
1479
+ const u = new URL(t, window.location.origin), d = {
1480
+ method: e = e.toUpperCase(),
1481
+ headers: {
1482
+ [Ls]: Ms,
1483
+ [ks]: Ps
1484
+ },
1485
+ onmessage: (e)=>{
1486
+ if (e.event) switch(e.event.startsWith(k) || console.log(`Unknown event: ${e.event}`), e.event){
1487
+ case $s:
1488
+ const t = e.data.trim().split("\n"), s = [
1489
+ "selector",
1490
+ "merge",
1491
+ "settle",
1492
+ "fragment",
1493
+ "vt"
1494
+ ];
1495
+ let o = "", r = Ns, i = Ts, a = As, l = !1, c = "", u = "";
1496
+ for(let e = 0; e < t.length; e++){
1497
+ let n = t[e];
1498
+ if (!n?.length) continue;
1499
+ const d = n.split(" ", 1)[0];
1500
+ if (s.includes(d) && d !== u) switch(u = d, n = n.slice(d.length + 1), u){
1501
+ case "selector":
1502
+ c = n;
1503
+ break;
1504
+ case "merge":
1505
+ if (r = n, l = Object.values(I).includes(r), !l) throw new Error(`Unknown merge option: ${r}`);
1506
+ break;
1507
+ case "settle":
1508
+ i = parseInt(n);
1509
+ break;
1510
+ case "fragment":
1511
+ break;
1512
+ case "vt":
1513
+ a = "true" === n;
1514
+ break;
1515
+ default:
1516
+ throw new Error("Unknown data type");
1517
+ }
1518
+ "fragment" === u && (o += n + "\n");
1519
+ }
1520
+ o?.length || (o = "<div></div>"), Js(n, c, r, o, i, a), N("plugin", "backend", "merge", c, JSON.stringify({
1521
+ fragment: o,
1522
+ settleTime: i,
1523
+ useViewTransition: a
1524
+ }));
1525
+ break;
1526
+ case Os:
1527
+ let d = !1, f = "";
1528
+ const h = e.data.trim().split("\n");
1529
+ for(let e = 0; e < h.length; e++){
1530
+ const t = h[e], [n, ...s] = t.split(" "), o = s.join(" ");
1531
+ switch(n){
1532
+ case "onlyIfMissing":
1533
+ d = "true" === o.trim();
1534
+ break;
1535
+ case "store":
1536
+ f += `${o}\n`;
1537
+ break;
1538
+ default:
1539
+ throw new Error(`Unknown signal type: ${n}`);
1540
+ }
1541
+ }
1542
+ const p = ` return Object.assign({...ctx.store()}, ${f})`;
1543
+ try {
1544
+ const e = new Function("ctx", p)(n), t = lt(n.store(), e, d);
1545
+ n.mergeStore(t), n.applyPlugins(document.body);
1546
+ } catch (e) {
1547
+ console.log(p), console.error(e);
1548
+ }
1549
+ break;
1550
+ case Is:
1551
+ const [m, ...g] = e.data.trim().split(" ");
1552
+ switch(m){
1553
+ case "selector":
1554
+ const e1 = g.join(" ");
1555
+ document.querySelectorAll(e1).forEach((e)=>e.remove());
1556
+ break;
1557
+ case "paths":
1558
+ const t1 = g.join(" ").split(" ");
1559
+ n.removeFromStore(...t1);
1560
+ break;
1561
+ default:
1562
+ throw new Error(`Unknown delete prefix: ${m}`);
1563
+ }
1564
+ break;
1565
+ case Rs:
1566
+ const [v, ...b] = e.data.trim().split(" ");
1567
+ if ("url" !== v) throw new Error(`Unknown redirect selector: ${v}`);
1568
+ const y = b.join(" ");
1569
+ N("plugin", "backend", "redirect", "WINDOW", y), window.location.href = y;
1570
+ break;
1571
+ case Cs:
1572
+ const [w, ..._] = e.data.trim().split(" "), E = _.join(" ");
1573
+ switch(w){
1574
+ case "debug":
1575
+ case "error":
1576
+ case "info":
1577
+ case "group":
1578
+ case "groupEnd":
1579
+ case "log":
1580
+ case "warn":
1581
+ console[w](E);
1582
+ break;
1583
+ default:
1584
+ throw new Error(`Unknown console mode: '${w}', message: '${E}'`);
1585
+ }
1586
+ }
1587
+ },
1588
+ onerror: (e)=>{
1589
+ console.error(e);
1590
+ },
1591
+ onclose: ()=>{
1592
+ try {
1593
+ const e = n.store(), t = e?._dsPlugins?.fetch?.indicatorsVisible || [], s = e?._dsPlugins?.fetch?.indicatorElements && e._dsPlugins.fetch.indicatorElements[a.id]?.value || [], o = [];
1594
+ s?.forEach && s.forEach((e)=>{
1595
+ if (!e || !t) return;
1596
+ const n = t.value, s = n.findIndex((t)=>!!t && e.isSameNode(t.el)), r = n[s];
1597
+ r && (r.count < 2 ? (o.push(new Promise(()=>setTimeout(()=>{
1598
+ e.classList.remove(Te), e.classList.add(Z);
1599
+ }, 300))), delete n[s]) : s > -1 && (n[s].count = n[s].count - 1), t.value = n.filter((e)=>!!e));
1600
+ }), Promise.all(o);
1601
+ } catch (e) {
1602
+ console.error(e);
1603
+ } finally{
1604
+ N("plugin", "backend", "fetch_end", a, JSON.stringify({
1605
+ method: e,
1606
+ urlExpression: t
1607
+ }));
1608
+ }
1609
+ }
1610
+ };
1611
+ if ("GET" === e) {
1612
+ const e = new URLSearchParams(u.search);
1613
+ e.append("datastar", i), u.search = e.toString();
1614
+ } else d.body = i;
1615
+ const f = o?._dsPlugins?.fetch?.headers || {};
1616
+ if (d.headers) for (const [e, t] of Object.entries(f))e.startsWith("_") || (d.headers[e] = `${t}`);
1617
+ Gt(u, d);
1618
+ }
1619
+ const Ge = document.createElement("template");
1620
+ function Js(e, t, n, s, o, r) {
1621
+ const { el: i } = e;
1622
+ Ge.innerHTML = s.trim(), [
1623
+ ...Ge.content.children
1624
+ ].forEach((s)=>{
1625
+ if (!(s instanceof Element)) throw new Error("No fragment found");
1626
+ const a = (t)=>{
1627
+ for (const r of t){
1628
+ r.classList.add(re);
1629
+ const t = r.outerHTML;
1630
+ let i = r;
1631
+ switch(n){
1632
+ case I.MorphElement:
1633
+ const t1 = ss(i, s, {
1634
+ callbacks: {
1635
+ beforeNodeRemoved: (t, n)=>(e.cleanupElementRemovals(t), !0)
1636
+ }
1637
+ });
1638
+ if (!t1?.length) throw new Error("No morph result");
1639
+ i = t1[0];
1640
+ break;
1641
+ case I.InnerElement:
1642
+ i.innerHTML = s.innerHTML;
1643
+ break;
1644
+ case I.OuterElement:
1645
+ i.replaceWith(s);
1646
+ break;
1647
+ case I.PrependElement:
1648
+ i.prepend(s);
1649
+ break;
1650
+ case I.AppendElement:
1651
+ i.append(s);
1652
+ break;
1653
+ case I.BeforeElement:
1654
+ i.before(s);
1655
+ break;
1656
+ case I.AfterElement:
1657
+ i.after(s);
1658
+ break;
1659
+ case I.UpsertAttributes:
1660
+ s.getAttributeNames().forEach((e)=>{
1661
+ const t = s.getAttribute(e);
1662
+ i.setAttribute(e, t);
1663
+ });
1664
+ break;
1665
+ default:
1666
+ throw new Error(`Unknown merge type: ${n}`);
1667
+ }
1668
+ e.cleanupElementRemovals(i), i.classList.add(re), e.applyPlugins(document.body), setTimeout(()=>{
1669
+ r.classList.remove(re), i.classList.remove(re);
1670
+ }, o);
1671
+ t !== i.outerHTML && (i.classList.add(Ke), setTimeout(()=>{
1672
+ i.classList.remove(Ke);
1673
+ }, o));
1674
+ }
1675
+ };
1676
+ let l;
1677
+ if (t === Ds) l = [
1678
+ i
1679
+ ];
1680
+ else {
1681
+ const e = t || `#${s.getAttribute("id")}`;
1682
+ if (l = document.querySelectorAll(e) || [], !l) throw new Error(`No targets found for ${e}`);
1683
+ }
1684
+ const c = [
1685
+ ...l
1686
+ ];
1687
+ if (!c.length) throw new Error(`No targets found for ${t}`);
1688
+ gt && r ? mt.startViewTransition(()=>a(c)) : a(c);
1689
+ });
1690
+ }
1691
+ const Ks = [
1692
+ Fs,
1693
+ Hs,
1694
+ Vs,
1695
+ xs,
1696
+ js
1697
+ ].reduce((e, t)=>(e[t] = (e, n, s)=>{
1698
+ const o = [
1699
+ "true",
1700
+ !0,
1701
+ void 0
1702
+ ].includes(s);
1703
+ qs(t, n, e, o);
1704
+ }, e), {
1705
+ isFetching: (e, t)=>{
1706
+ const n = [
1707
+ ...document.querySelectorAll(t)
1708
+ ], s = e.store()?._dsPlugins?.fetch.indicatorsVisible?.value || [];
1709
+ return !!n.length && n.some((e)=>s.filter((e)=>!!e).some((t)=>t.el.isSameNode(e) && t.count > 0));
1710
+ }
1711
+ }), Ye = "0.19.9", ke = (e, t, n, s, o, r)=>(t - n) / (s - n) * (r - o) + o, Gs = (e, t, n, s, o, r)=>Math.round(ke(0, t, n, s, o, r)), bt = (e, t, n, s, o, r)=>Math.max(o, Math.min(r, ke(0, t, n, s, o, r))), Ys = (e, t, n, s, o, r)=>Math.round(bt(0, t, n, s, o, r)), zs = {
1712
+ setAll: (e, t, n)=>{
1713
+ const s = new RegExp(t);
1714
+ e.walkSignals((e, t)=>s.test(e) && (t.value = n));
1715
+ },
1716
+ toggleAll: (e, t)=>{
1717
+ const n = new RegExp(t);
1718
+ e.walkSignals((e, t)=>n.test(e) && (t.value = !t.value));
1719
+ },
1720
+ clipboard: (e, t)=>{
1721
+ if (!navigator.clipboard) throw new Error("Clipboard API not available");
1722
+ navigator.clipboard.writeText(t);
1723
+ },
1724
+ fit: ke,
1725
+ fitInt: Gs,
1726
+ clampFit: bt,
1727
+ clampFitInt: Ys
1728
+ };
1729
+ function Zs(e = {}, ...t) {
1730
+ const n = new Dt(e, ...t);
1731
+ return n.run(), n;
1732
+ }
1733
+ function Xs(e = {}, ...t) {
1734
+ return Zs(Object.assign({}, zs, qt, Ks, Ss, e), ...[
1735
+ ...Ws,
1736
+ ..._s,
1737
+ ...Wt,
1738
+ ...t
1739
+ ]);
1740
+ }
1741
+ const Qs = {
1742
+ bubbles: !0,
1743
+ cancelable: !0,
1744
+ composed: !0
1745
+ }, Ae = window, N = (e, t, n, s, o, r = Qs)=>{
1746
+ Ae.dispatchEvent(new CustomEvent(q, Object.assign({
1747
+ detail: {
1748
+ time: new Date,
1749
+ category: e,
1750
+ subcategory: t,
1751
+ type: n,
1752
+ target: at(s),
1753
+ message: o
1754
+ }
1755
+ }, r)));
1756
+ };
1757
+ Ae.ds || setTimeout(()=>{
1758
+ N("core", "init", "start", document.body, `Datastar v${Ye} loading`);
1759
+ const e = performance.now();
1760
+ Ae.ds = Xs();
1761
+ const t = performance.now();
1762
+ N("core", "init", "end", document.body, `Datastar v${Ye} loaded and attached to all DOM elements in ${(t - e).toFixed(2)}ms`);
1763
+ const n = document.createElement("style");
1764
+ n.innerHTML = "\n.datastar-inspector-highlight {\n border: 2px solid blue;\n}\n", document.head.appendChild(n), window.addEventListener("datastar-inspector-event", (e)=>{
1765
+ if ("detail" in e && "object" == typeof e.detail && e.detail) {
1766
+ const { detail: t } = e;
1767
+ if ("script" in t && "string" == typeof t.script) try {
1768
+ new Function(t.script)();
1769
+ } catch (e) {
1770
+ console.error(e);
1771
+ }
1772
+ }
1773
+ });
1774
+ }, 0);
1775
+ export { qt as AttributeActions, Wt as AttributePlugins, Ks as BackendActions, Ws as BackendPlugins, Ft as BindAttributePlugin, Bt as ClassPlugin, Ct as CorePlugins, $t as CorePreprocessors, k as DATASTAR_CLASS_PREFIX, U as DATASTAR_STR, Dt as Datastar, Ut as EventPlugin, Us as FetchIndicatorPlugin, Bs as HeadersPlugin, bs as IntersectionPlugin, ws as ScrollIntoViewPlugin, gs as ShowPlugin, ys as TeleportPlugin, xt as TextPlugin, Vt as TwoWayBindingModelPlugin, Es as ViewTransitionPlugin, Ss as VisibilityActions, _s as VisibilityPlugins, ot as apply, se as argsHas, _e as argsToMs, q as datastarEventName, mt as docWithViewTransitionAPI, at as elemToSelector, Js as mergeHTMLFragment, he as remoteSignals, Zs as runDatastarWith, Xs as runDatastarWithAllPlugins, N as sendDatastarEvent, lt as storeFromPossibleContents, gt as supportsViewTransitions, ze as toHTMLorSVGElement }; //# sourceMappingURL=/sm/f6f92b3ab2fb83c5537b1f460774e082dabf5f4b2965609c51fc3065ab07633d.map