@drfed/web 0.1.0-dev.565 → 0.2.0-dev.567

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 (91) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/.vite/manifest.json +181 -181
  3. package/.output/public/_build/assets/{ActorDetailQuery.graphql-D96mwq1k.js → ActorDetailQuery.graphql-BifVLgri.js} +1 -1
  4. package/.output/public/_build/assets/{ActorDetailQuery.graphql-DrxSNh1X.js → ActorDetailQuery.graphql-CCzXciWe.js} +1 -1
  5. package/.output/public/_build/assets/{CompleteLoginChallenge.graphql-C5Zq3wNh.js → CompleteLoginChallenge.graphql-BuIODTQe.js} +1 -1
  6. package/.output/public/_build/assets/{CopyButton-B2l484wE.js → CopyButton-BPA_AsfQ.js} +1 -1
  7. package/.output/public/_build/assets/{CreateInstanceMutation.graphql-B4CRy6cl.js → CreateInstanceMutation.graphql-BeuI_m9K.js} +1 -1
  8. package/.output/public/_build/assets/{CreateObjectMutation.graphql-B4A01dgV.js → CreateObjectMutation.graphql-slDMnVjt.js} +1 -1
  9. package/.output/public/_build/assets/{GenerateActorsMutation.graphql-mlHJNIbe.js → GenerateActorsMutation.graphql-vkoqVyL8.js} +1 -1
  10. package/.output/public/_build/assets/{GetHostQuery.graphql-CuzDdOdW.js → GetHostQuery.graphql-BzusRJ7N.js} +1 -1
  11. package/.output/public/_build/assets/{GetHostQuery.graphql-o9K0Qkg0.js → GetHostQuery.graphql-CKu9xX8-.js} +1 -1
  12. package/.output/public/_build/assets/{HomeViewerQuery.graphql-B903WWKs.js → HomeViewerQuery.graphql-BEP_urQ1.js} +1 -1
  13. package/.output/public/_build/assets/HttpStatusCode-FQmr-LGM.js +1 -0
  14. package/.output/public/_build/assets/{InstanceActorListQuery.graphql-paa7teUO.js → InstanceActorListQuery.graphql-ADOUh67G.js} +1 -1
  15. package/.output/public/_build/assets/{InstanceActorListQuery.graphql-DmNwiEhM.js → InstanceActorListQuery.graphql-Dmh71GI5.js} +1 -1
  16. package/.output/public/_build/assets/{InstanceDetailQuery.graphql-B52nR132.js → InstanceDetailQuery.graphql-BVIsRDhB.js} +1 -1
  17. package/.output/public/_build/assets/{InstanceDetailQuery.graphql-DSA2BcAV.js → InstanceDetailQuery.graphql-YvCDX6Vx.js} +1 -1
  18. package/.output/public/_build/assets/JNCCF6MP-C_2GhSaE.js +1 -0
  19. package/.output/public/_build/assets/{LP6E37CW-Cwv6G3n1.js → LP6E37CW-BBu2j5XX.js} +1 -1
  20. package/.output/public/_build/assets/{SignInMutation.graphql-BalZYNFu.js → SignInMutation.graphql-D-K99qj-.js} +1 -1
  21. package/.output/public/_build/assets/TSB6MOZK-D4_kp7T4.js +1 -0
  22. package/.output/public/_build/assets/Toast-tZxI6Kk3.js +1 -0
  23. package/.output/public/_build/assets/{WorkspaceQuery.graphql-UoI7QDs4.js → WorkspaceQuery.graphql-9H5uLyBt.js} +1 -1
  24. package/.output/public/_build/assets/_...404_-DMz-AmEz.js +1 -0
  25. package/.output/public/_build/assets/{_challengeId_-Dk-0l7zl.js → _challengeId_-BK-xeuYX.js} +1 -1
  26. package/.output/public/_build/assets/{_id_-bpxdclBj.js → _id_-Q9HBJzaf.js} +1 -1
  27. package/.output/public/_build/assets/_slug_-DrTnyM7j.js +200 -0
  28. package/.output/public/_build/assets/{about-DIrbzRsi.js → about-DtTGI6TG.js} +1 -1
  29. package/.output/public/_build/assets/actors-LmFNJfl8.js +24 -0
  30. package/.output/public/_build/assets/{client-CGFoRcqH.js → client-BVl87rV7.js} +2 -2
  31. package/.output/public/_build/assets/{components-5MVu7IcD.js → components-D1sEsgws.js} +1 -1
  32. package/.output/public/_build/assets/dist-CMub1v5w.js +1 -0
  33. package/.output/public/_build/assets/{dist-BrJ_B8nU.js → dist-DUCXQy4t.js} +1 -1
  34. package/.output/public/_build/assets/{dist-WrlGlK67.js → dist-IMcx10bF.js} +1 -1
  35. package/.output/public/_build/assets/{entry-client-Do7ocrsL.js → entry-client-DyU5h6Kf.js} +3 -3
  36. package/.output/public/_build/assets/form.module-DZJVksrR.js +1 -0
  37. package/.output/public/_build/assets/{index-BHn6sAgH.js → index-CsGHD4_w.js} +1 -1
  38. package/.output/public/_build/assets/{index-BSLqnqN7.js → index-xrNvEFEe.js} +1 -1
  39. package/.output/public/_build/assets/instance-CD2GuEFF.js +35 -0
  40. package/.output/public/_build/assets/objects-CSDLRgba.js +25 -0
  41. package/.output/public/_build/assets/relay-runtime-CW2Fi-vu.js +7 -0
  42. package/.output/public/_build/assets/routing-BOJUm5FP.js +1 -0
  43. package/.output/public/_build/assets/sign-in-6aWEq4t1.js +10 -0
  44. package/.output/public/_build/assets/web-BjwKY0xb.js +1 -0
  45. package/.output/server/{_...404_-DDEH5apf.mjs → _...404_-DM28Kka3.mjs} +2 -3
  46. package/.output/server/{_challengeId_-C_n_Bww9.mjs → _challengeId_-CHkjsE_y.mjs} +5 -5
  47. package/.output/server/_chunks/ssr-renderer.mjs +3 -3
  48. package/.output/server/{_id_-DqytvZEf.mjs → _id_-BjLFsMir.mjs} +3 -4
  49. package/.output/server/_libs/@shikijs/core+[...].mjs +24 -22
  50. package/.output/server/_libs/@shikijs/engine-javascript+[...].mjs +45 -40
  51. package/.output/server/_libs/faker-js__faker.mjs +6 -12
  52. package/.output/server/_libs/relay-runtime.mjs +189 -177
  53. package/.output/server/_libs/seroval-plugins.mjs +45 -43
  54. package/.output/server/_libs/seroval.mjs +16 -11
  55. package/.output/server/_libs/solid-js.mjs +28 -19
  56. package/.output/server/_libs/solid-relay+tiny-invariant.mjs +1 -3
  57. package/.output/server/_libs/valibot.mjs +5 -44
  58. package/.output/server/_runtime.mjs +1 -1
  59. package/.output/server/{_slug_-CBOaSqoF.mjs → _slug_-CamNffYc.mjs} +3 -4
  60. package/.output/server/_ssr/{LP6E37CW-D2Ih_b_K.mjs → LP6E37CW-Bs07BPsK.mjs} +2 -2
  61. package/.output/server/_ssr/{TSB6MOZK-D06WZb6o.mjs → TSB6MOZK-Dz16RpiS.mjs} +10 -6
  62. package/.output/server/_ssr/{about-CD3QIgf_.mjs → about-K4E3_OxN.mjs} +2 -2
  63. package/.output/server/_ssr/{actors-CMWf-xQU.mjs → actors-DQIzbpiq.mjs} +21 -21
  64. package/.output/server/_ssr/{form.module-CTvIl1lm.mjs → form.module-B3iJri2-.mjs} +8 -5
  65. package/.output/server/_ssr/{index-yuhuc6-X.mjs → index-DQYLULEn.mjs} +2 -2
  66. package/.output/server/_ssr/{index-C4crD6q-.mjs → index-DU0kuIH3.mjs} +2 -3
  67. package/.output/server/_ssr/{instance-ZYWGeWd3.mjs → instance-BXwV77PI.mjs} +5 -7
  68. package/.output/server/_ssr/{objects-D5MVukzB.mjs → objects-DNPuxUtN.mjs} +55 -38
  69. package/.output/server/_ssr/{sign-in-CNHZb_zL.mjs → sign-in-KJ_TNq1o.mjs} +5 -6
  70. package/.output/server/_ssr/ssr.mjs +2303 -224
  71. package/.output/server/index.mjs +246 -246
  72. package/package.json +9 -9
  73. package/.output/public/_build/assets/HttpStatusCode-bgaVzuLy.js +0 -1
  74. package/.output/public/_build/assets/JNCCF6MP-CNMywyiC.js +0 -1
  75. package/.output/public/_build/assets/TSB6MOZK-CpiH97G1.js +0 -1
  76. package/.output/public/_build/assets/Toast-C1zr9crB.js +0 -1
  77. package/.output/public/_build/assets/_...404_-WZ8kAljY.js +0 -1
  78. package/.output/public/_build/assets/_slug_-DXfRknzJ.js +0 -200
  79. package/.output/public/_build/assets/actors-HfZh_afh.js +0 -24
  80. package/.output/public/_build/assets/dist-DVo0HS5G.js +0 -1
  81. package/.output/public/_build/assets/form.module-BecmEfV_.js +0 -1
  82. package/.output/public/_build/assets/instance-tpMrvJNZ.js +0 -35
  83. package/.output/public/_build/assets/objects-DR9TfL-V.js +0 -25
  84. package/.output/public/_build/assets/relay-runtime-BX3uubtA.js +0 -7
  85. package/.output/public/_build/assets/routing-DMN2NHu6.js +0 -1
  86. package/.output/public/_build/assets/sign-in-B67sv7z8.js +0 -10
  87. package/.output/public/_build/assets/web-DB_Nkq2D.js +0 -1
  88. package/.output/server/_ssr/JNCCF6MP-BAZlBnvx.mjs +0 -419
  89. package/.output/server/_ssr/Toast-Bb1gcxED.mjs +0 -947
  90. package/.output/server/_ssr/dist-D6rgyh-L.mjs +0 -81
  91. package/.output/server/_ssr/routing-DKTLkkbY.mjs +0 -620
@@ -1,24 +1,665 @@
1
- import { r as __toESM } from "../_runtime.mjs";
1
+ import { n as __exportAll$1, r as __toESM } from "../_runtime.mjs";
2
2
  import { n as require_relay_runtime } from "../_libs/relay-runtime.mjs";
3
- import { $ as splitProps, B as createRoot, C as ErrorBoundary, D as Show, F as createContext, G as lazy, J as onCleanup, K as mergeProps, L as createMemo, M as children, N as createComponent, O as Suspense, Q as sharedConfig, S as $TRACK, U as getListener, V as createSignal, W as getOwner, _ as ssrElement, c as NoHydration, d as getRequestEvent, et as startTransition, g as ssrAttribute, h as ssr, j as catchError, m as renderToString, o as Hydration, p as renderToStream, q as on, s as HydrationScript, t as provideRequestEvent, tt as untrack, u as escape, v as ssrHydrationKey, x as useAssets } from "../_libs/solid-js.mjs";
3
+ import { $ as splitProps, A as batch, B as createRoot, C as ErrorBoundary, D as Show, F as createContext, G as lazy, H as createUniqueId, I as createEffect, J as onCleanup, K as mergeProps, L as createMemo, M as children, N as createComponent, O as Suspense, Q as sharedConfig, R as createRenderEffect, S as $TRACK, U as getListener, V as createSignal, W as getOwner, X as resetErrorBoundaries, Y as onMount, Z as runWithOwner, _ as ssrElement, a as Dynamic, c as NoHydration, d as getRequestEvent, et as startTransition, g as ssrAttribute, h as ssr, j as catchError, l as Portal, m as renderToString, n as createStore, nt as useContext, o as Hydration, p as renderToStream, q as on, s as HydrationScript, t as provideRequestEvent, tt as untrack, u as escape, v as ssrHydrationKey, w as For, x as useAssets } from "../_libs/solid-js.mjs";
4
4
  import { a as fromCrossJSON, i as createStream, o as toCrossJSONStream, r as createPlugin, t as Feature } from "../_libs/seroval.mjs";
5
- import { n as Title, t as MetaProvider } from "./dist-D6rgyh-L.mjs";
6
- import { S as useRouter, _ as useHref, a as createRouteContext, c as getIntent, d as mockBase, f as normalizePath$1, g as setInPreloadFn, h as setFunctionName, i as createBranches, l as getRouteMatches, n as RouterContextObj, o as createRouterContext, s as getInPreloadFn, t as RouteContextObj, v as useLocation, x as useResolvedPath, y as useNavigate } from "./routing-DKTLkkbY.mjs";
7
- import { c as node$6, n as ToastRegion } from "./Toast-Bb1gcxED.mjs";
8
- import { t as Button } from "./JNCCF6MP-BAZlBnvx.mjs";
9
5
  import { c as useRelayEnvironment, r as createLazyLoadQuery, s as loadQuery, t as RelayEnvironmentProvider } from "../_libs/solid-relay+tiny-invariant.mjs";
6
+ import { _ as safeParse, b as string, d as object, h as pipe, l as nonEmpty, m as picklist, p as parseJson } from "../_libs/valibot.mjs";
10
7
  import { PassThrough, Readable } from "node:stream";
11
8
  import { getPublicOrigin } from "@drfed/web/bridge";
9
+ //#region node_modules/.nitro/vite/services/ssr/_build/assets/routing-WOri2wQa.js
10
+ function createBeforeLeave() {
11
+ let listeners = /* @__PURE__ */ new Set();
12
+ function subscribe(listener) {
13
+ listeners.add(listener);
14
+ return () => listeners.delete(listener);
15
+ }
16
+ let ignore = false;
17
+ function confirm(to, options) {
18
+ if (ignore) return !(ignore = false);
19
+ const e = {
20
+ to,
21
+ options,
22
+ defaultPrevented: false,
23
+ preventDefault: () => e.defaultPrevented = true
24
+ };
25
+ for (const l of listeners) l.listener({
26
+ to,
27
+ options,
28
+ get defaultPrevented() {
29
+ return e.defaultPrevented;
30
+ },
31
+ preventDefault: e.preventDefault,
32
+ from: l.location,
33
+ retry: (force) => {
34
+ force && (ignore = true);
35
+ l.navigate(to, {
36
+ ...options,
37
+ resolve: false
38
+ });
39
+ }
40
+ });
41
+ return !e.defaultPrevented;
42
+ }
43
+ return {
44
+ subscribe,
45
+ confirm
46
+ };
47
+ }
48
+ var hasSchemeRegex = /^(?:[a-z0-9]+:)?\/\//i;
49
+ var trimPathRegex = /^\/+|(\/)\/+$/g;
50
+ var mockBase = "http://sr";
51
+ function normalizePath$1(path, omitSlash = false) {
52
+ const s = path.replace(trimPathRegex, "$1");
53
+ return s ? omitSlash || /^[?#]/.test(s) ? s : "/" + s : "";
54
+ }
55
+ function resolvePath(base, path, from) {
56
+ if (hasSchemeRegex.test(path)) return;
57
+ const basePath = normalizePath$1(base);
58
+ const fromPath = from && normalizePath$1(from);
59
+ let result = "";
60
+ if (!fromPath || path.startsWith("/")) result = basePath;
61
+ else if (fromPath.toLowerCase().indexOf(basePath.toLowerCase()) !== 0) result = basePath + fromPath;
62
+ else result = fromPath;
63
+ return (result || "/") + normalizePath$1(path, !result);
64
+ }
65
+ function invariant(value, message) {
66
+ if (value == null) throw new Error(message);
67
+ return value;
68
+ }
69
+ function joinPaths(from, to) {
70
+ return normalizePath$1(from).replace(/\/*(\*.*)?$/g, "") + normalizePath$1(to);
71
+ }
72
+ function extractSearchParams(url) {
73
+ const params = {};
74
+ url.searchParams.forEach((value, key) => {
75
+ if (key in params) {
76
+ if (Array.isArray(params[key])) params[key].push(value);
77
+ else params[key] = [params[key], value];
78
+ } else params[key] = value;
79
+ });
80
+ return params;
81
+ }
82
+ function createMatcher$1(path, partial, matchFilters) {
83
+ const [pattern, splat] = path.split("/*", 2);
84
+ const segments = pattern.split("/").filter(Boolean);
85
+ const len = segments.length;
86
+ return (location) => {
87
+ const locSegments = location.split("/");
88
+ if (locSegments[0] === "") locSegments.shift();
89
+ if (locSegments.length && locSegments[locSegments.length - 1] === "") locSegments.pop();
90
+ if (locSegments.includes("")) return null;
91
+ const lenDiff = locSegments.length - len;
92
+ if (lenDiff < 0 || lenDiff > 0 && splat === void 0 && !partial) return null;
93
+ const match = {
94
+ path: len ? "" : "/",
95
+ params: {}
96
+ };
97
+ const matchFilter = (s) => matchFilters === void 0 ? void 0 : matchFilters[s];
98
+ for (let i = 0; i < len; i++) {
99
+ const segment = segments[i];
100
+ const dynamic = segment[0] === ":";
101
+ const locSegment = dynamic ? locSegments[i] : locSegments[i].toLowerCase();
102
+ const key = dynamic ? segment.slice(1) : segment.toLowerCase();
103
+ if (dynamic && matchSegment(locSegment, matchFilter(key))) match.params[key] = locSegment;
104
+ else if (dynamic || !matchSegment(locSegment, key)) return null;
105
+ match.path += `/${locSegment}`;
106
+ }
107
+ if (splat) {
108
+ const remainder = lenDiff ? locSegments.slice(-lenDiff).join("/") : "";
109
+ if (matchSegment(remainder, matchFilter(splat))) match.params[splat] = remainder;
110
+ else return null;
111
+ }
112
+ return match;
113
+ };
114
+ }
115
+ function matchSegment(input, filter) {
116
+ const isEqual = (s) => s === input;
117
+ if (filter === void 0) return true;
118
+ else if (typeof filter === "string") return isEqual(filter);
119
+ else if (typeof filter === "function") return filter(input);
120
+ else if (Array.isArray(filter)) return filter.some(isEqual);
121
+ else if (filter instanceof RegExp) return filter.test(input);
122
+ return false;
123
+ }
124
+ function scoreRoute(route) {
125
+ const [pattern, splat] = route.pattern.split("/*", 2);
126
+ const segments = pattern.split("/").filter(Boolean);
127
+ return segments.reduce((score, segment) => score + (segment.startsWith(":") ? 2 : 3), segments.length - (splat === void 0 ? 0 : 1));
128
+ }
129
+ function createMemoObject(fn) {
130
+ const map = /* @__PURE__ */ new Map();
131
+ const owner = getOwner();
132
+ return new Proxy({}, {
133
+ get(_, property) {
134
+ if (!map.has(property)) runWithOwner(owner, () => map.set(property, createMemo(() => fn()[property])));
135
+ return map.get(property)();
136
+ },
137
+ getOwnPropertyDescriptor() {
138
+ return {
139
+ enumerable: true,
140
+ configurable: true
141
+ };
142
+ },
143
+ ownKeys() {
144
+ return Reflect.ownKeys(fn());
145
+ },
146
+ has(_, property) {
147
+ return property in fn();
148
+ }
149
+ });
150
+ }
151
+ function mergeSearchString(search, params) {
152
+ const merged = new URLSearchParams(search);
153
+ Object.entries(params).forEach(([key, value]) => {
154
+ if (value == null || value === "" || value instanceof Array && !value.length) merged.delete(key);
155
+ else if (value instanceof Array) {
156
+ merged.delete(key);
157
+ value.forEach((v) => {
158
+ merged.append(key, String(v));
159
+ });
160
+ } else merged.set(key, String(value));
161
+ });
162
+ const s = merged.toString();
163
+ return s ? `?${s}` : "";
164
+ }
165
+ function expandOptionals(pattern) {
166
+ let match = /(\/?\:[^\/]+)\?/.exec(pattern);
167
+ if (!match) return [pattern];
168
+ let prefix = pattern.slice(0, match.index);
169
+ let suffix = pattern.slice(match.index + match[0].length);
170
+ const prefixes = [prefix, prefix += match[1]];
171
+ while (match = /^(\/\:[^\/]+)\?/.exec(suffix)) {
172
+ prefixes.push(prefix += match[1]);
173
+ suffix = suffix.slice(match[0].length);
174
+ }
175
+ return expandOptionals(suffix).reduce((results, expansion) => [...results, ...prefixes.map((p) => p + expansion)], []);
176
+ }
177
+ function setFunctionName(obj, value) {
178
+ Object.defineProperty(obj, "name", {
179
+ value,
180
+ writable: false,
181
+ configurable: false
182
+ });
183
+ return obj;
184
+ }
185
+ var MAX_REDIRECTS = 100;
186
+ /** Consider this API opaque and internal. It is likely to change in the future. */
187
+ var RouterContextObj = createContext();
188
+ var RouteContextObj = createContext();
189
+ var useRouter = () => invariant(useContext(RouterContextObj), "<A> and 'use' router primitives can be only used inside a Route.");
190
+ var useRoute = () => useContext(RouteContextObj) || useRouter().base;
191
+ var useResolvedPath = (path) => {
192
+ const route = useRoute();
193
+ return createMemo(() => route.resolvePath(path()));
194
+ };
195
+ var useHref = (to) => {
196
+ const router = useRouter();
197
+ return createMemo(() => {
198
+ const to_ = to();
199
+ return to_ !== void 0 ? router.renderPath(to_) : to_;
200
+ });
201
+ };
202
+ /**
203
+ * Retrieves method to do navigation. The method accepts a path to navigate to and an optional object with the following options:
204
+ *
205
+ * - resolve (*boolean*, default `true`): resolve the path against the current route
206
+ * - replace (*boolean*, default `false`): replace the history entry
207
+ * - scroll (*boolean*, default `true`): scroll to top after navigation
208
+ * - state (*any*, default `undefined`): pass custom state to `location.state`
209
+ *
210
+ * **Note**: The state is serialized using the structured clone algorithm which does not support all object types.
211
+ *
212
+ * @example
213
+ * ```js
214
+ * const navigate = useNavigate();
215
+ *
216
+ * if (unauthorized) {
217
+ * navigate("/login", { replace: true });
218
+ * }
219
+ * ```
220
+ */
221
+ var useNavigate = () => useRouter().navigatorFactory();
222
+ /**
223
+ * Retrieves reactive `location` object useful for getting things like `pathname`.
224
+ *
225
+ * @example
226
+ * ```js
227
+ * const location = useLocation();
228
+ *
229
+ * const pathname = createMemo(() => parsePath(location.pathname));
230
+ * ```
231
+ */
232
+ var useLocation = () => useRouter().location;
233
+ /**
234
+ * Retrieves a reactive, store-like object containing the current route path parameters as defined in the Route.
235
+ *
236
+ * @example
237
+ * ```js
238
+ * const params = useParams();
239
+ *
240
+ * // fetch user based on the id path parameter
241
+ * const [user] = createResource(() => params.id, fetchUser);
242
+ * ```
243
+ */
244
+ var useParams = () => useRouter().params;
245
+ /**
246
+ * Retrieves a tuple containing a reactive object to read the current location's query parameters and a method to update them.
247
+ * The object is a proxy so you must access properties to subscribe to reactive updates.
248
+ * **Note** that values will be strings and property names will retain their casing.
249
+ *
250
+ * The setter method accepts an object whose entries will be merged into the current query string.
251
+ * Values `''`, `undefined` and `null` will remove the key from the resulting query string.
252
+ * Updates will behave just like a navigation and the setter accepts the same optional second parameter as `navigate` and auto-scrolling is disabled by default.
253
+ *
254
+ * @examples
255
+ * ```js
256
+ * const [searchParams, setSearchParams] = useSearchParams();
257
+ *
258
+ * return (
259
+ * <div>
260
+ * <span>Page: {searchParams.page}</span>
261
+ * <button
262
+ * onClick={() =>
263
+ * setSearchParams({ page: (parseInt(searchParams.page) || 0) + 1 })
264
+ * }
265
+ * >
266
+ * Next Page
267
+ * </button>
268
+ * </div>
269
+ * );
270
+ * ```
271
+ */
272
+ var useSearchParams = () => {
273
+ const router = useRouter();
274
+ const location = router.location;
275
+ const navigate = useNavigate();
276
+ const setSearchParams = (params, options) => {
277
+ const to = untrack(() => {
278
+ const pending = router.pendingTarget && new URL(router.pendingTarget.value, "http://sr");
279
+ const pathname = pending ? pending.pathname : location.pathname;
280
+ const search = pending ? pending.search : location.search;
281
+ const hash = pending ? pending.hash : location.hash;
282
+ return pathname + mergeSearchString(search, params) + hash;
283
+ });
284
+ navigate(to, {
285
+ scroll: false,
286
+ resolve: false,
287
+ ...options
288
+ });
289
+ };
290
+ return [location.query, setSearchParams];
291
+ };
292
+ var encodeSegment = (s) => encodeURIComponent(s).replace(/%(2B|40|3A|24|26|2C|3B|3D)/g, (m) => decodeURIComponent(m));
293
+ function createRoutes$1(routeDef, base = "") {
294
+ const { component, preload, load, children, info } = routeDef;
295
+ const isLeaf = !children || Array.isArray(children) && !children.length;
296
+ const shared = {
297
+ key: routeDef,
298
+ component,
299
+ preload: preload || load,
300
+ info
301
+ };
302
+ return asArray(routeDef.path).reduce((acc, originalPath) => {
303
+ for (const expandedPath of expandOptionals(originalPath)) {
304
+ const path = joinPaths(base, expandedPath);
305
+ let pattern = isLeaf ? path : path.split("/*", 1)[0];
306
+ pattern = pattern.split("/").map((s) => {
307
+ return s.startsWith(":") || s.startsWith("*") ? s : encodeSegment(s);
308
+ }).join("/");
309
+ acc.push({
310
+ ...shared,
311
+ originalPath,
312
+ pattern,
313
+ matcher: createMatcher$1(pattern, !isLeaf, routeDef.matchFilters)
314
+ });
315
+ }
316
+ return acc;
317
+ }, []);
318
+ }
319
+ function createBranch(routes, index = 0) {
320
+ return {
321
+ routes,
322
+ score: scoreRoute(routes[routes.length - 1]) * 1e4 - index,
323
+ matcher(location) {
324
+ const matches = [];
325
+ for (let i = routes.length - 1; i >= 0; i--) {
326
+ const route = routes[i];
327
+ const match = route.matcher(location);
328
+ if (!match) return null;
329
+ matches.unshift({
330
+ ...match,
331
+ route
332
+ });
333
+ }
334
+ return matches;
335
+ }
336
+ };
337
+ }
338
+ function asArray(value) {
339
+ return Array.isArray(value) ? value : [value];
340
+ }
341
+ function createBranches(routeDef, base = "", stack = [], branches = []) {
342
+ const routeDefs = asArray(routeDef);
343
+ for (let i = 0, len = routeDefs.length; i < len; i++) {
344
+ const def = routeDefs[i];
345
+ if (def && typeof def === "object") {
346
+ if (!def.hasOwnProperty("path")) def.path = "";
347
+ const routes = createRoutes$1(def, base);
348
+ for (const route of routes) {
349
+ stack.push(route);
350
+ const isEmptyArray = Array.isArray(def.children) && def.children.length === 0;
351
+ if (def.children && !isEmptyArray) createBranches(def.children, route.pattern, stack, branches);
352
+ else {
353
+ const branch = createBranch([...stack], branches.length);
354
+ branches.push(branch);
355
+ }
356
+ stack.pop();
357
+ }
358
+ }
359
+ }
360
+ return stack.length ? branches : branches.sort((a, b) => b.score - a.score);
361
+ }
362
+ function getRouteMatches(branches, location) {
363
+ for (let i = 0, len = branches.length; i < len; i++) {
364
+ const match = branches[i].matcher(location);
365
+ if (match) return match;
366
+ }
367
+ return [];
368
+ }
369
+ function createLocation(path, state, queryWrapper) {
370
+ const origin = new URL(mockBase);
371
+ const url = createMemo((prev) => {
372
+ const path_ = path();
373
+ try {
374
+ return new URL(path_[0] === "/" ? mockBase + path_ : path_, origin);
375
+ } catch (err) {
376
+ console.error(`Invalid path ${path_}`);
377
+ return prev;
378
+ }
379
+ }, origin, { equals: (a, b) => a.href === b.href });
380
+ const pathname = createMemo(() => url().pathname);
381
+ const search = createMemo(() => url().search, true);
382
+ const hash = createMemo(() => url().hash);
383
+ const key = () => "";
384
+ const queryFn = on(search, () => extractSearchParams(url()));
385
+ return {
386
+ get pathname() {
387
+ return pathname();
388
+ },
389
+ get search() {
390
+ return search();
391
+ },
392
+ get hash() {
393
+ return hash();
394
+ },
395
+ get state() {
396
+ return state();
397
+ },
398
+ get key() {
399
+ return key();
400
+ },
401
+ query: queryWrapper ? queryWrapper(queryFn) : createMemoObject(queryFn)
402
+ };
403
+ }
404
+ var intent;
405
+ function getIntent() {
406
+ return intent;
407
+ }
408
+ var inPreloadFn = false;
409
+ function getInPreloadFn() {
410
+ return inPreloadFn;
411
+ }
412
+ function setInPreloadFn(value) {
413
+ inPreloadFn = value;
414
+ }
415
+ function createRouterContext(integration, branches, getContext, options = {}) {
416
+ const { signal: [source, setSource], utils = {} } = integration;
417
+ const parsePath = utils.parsePath || ((p) => p);
418
+ const renderPath = utils.renderPath || ((p) => p);
419
+ const beforeLeave = utils.beforeLeave || createBeforeLeave();
420
+ const basePath = resolvePath("", options.base || "");
421
+ if (basePath === void 0) throw new Error(`${basePath} is not a valid base path`);
422
+ else if (basePath && !source().value) setSource({
423
+ value: basePath,
424
+ replace: true,
425
+ scroll: false
426
+ });
427
+ const [isRouting, setIsRouting] = createSignal(false);
428
+ let lastTransitionTarget;
429
+ const transition = (newIntent, newTarget) => {
430
+ if (newTarget.value === reference() && newTarget.state === state()) return;
431
+ if (lastTransitionTarget === void 0) setIsRouting(true);
432
+ intent = newIntent;
433
+ lastTransitionTarget = newTarget;
434
+ startTransition(() => {
435
+ if (lastTransitionTarget !== newTarget) return;
436
+ setReference(lastTransitionTarget.value);
437
+ setState(lastTransitionTarget.state);
438
+ resetErrorBoundaries();
439
+ }).finally(() => {
440
+ if (lastTransitionTarget !== newTarget) return;
441
+ batch(() => {
442
+ intent = void 0;
443
+ if (newIntent === "navigate") navigateEnd(lastTransitionTarget);
444
+ setIsRouting(false);
445
+ lastTransitionTarget = void 0;
446
+ });
447
+ });
448
+ };
449
+ const [reference, setReference] = createSignal(source().value);
450
+ const [state, setState] = createSignal(source().state);
451
+ const location = createLocation(reference, state, utils.queryWrapper);
452
+ const referrers = [];
453
+ const submissions = createSignal(initFromFlash());
454
+ const matches = createMemo(() => {
455
+ if (typeof options.transformUrl === "function") return getRouteMatches(branches(), options.transformUrl(location.pathname));
456
+ return getRouteMatches(branches(), location.pathname);
457
+ });
458
+ const buildParams = () => {
459
+ const m = matches();
460
+ const params = {};
461
+ for (let i = 0; i < m.length; i++) Object.assign(params, m[i].params);
462
+ return params;
463
+ };
464
+ const params = utils.paramsWrapper ? utils.paramsWrapper(buildParams, branches) : createMemoObject(buildParams);
465
+ const baseRoute = {
466
+ pattern: basePath,
467
+ path: () => basePath,
468
+ outlet: () => null,
469
+ resolvePath(to) {
470
+ return resolvePath(basePath, to);
471
+ }
472
+ };
473
+ createRenderEffect(on(source, (source) => transition("native", source), { defer: true }));
474
+ return {
475
+ base: baseRoute,
476
+ location,
477
+ params,
478
+ isRouting,
479
+ get pendingTarget() {
480
+ return lastTransitionTarget;
481
+ },
482
+ renderPath,
483
+ parsePath,
484
+ navigatorFactory,
485
+ matches,
486
+ beforeLeave,
487
+ preloadRoute,
488
+ singleFlight: options.singleFlight === void 0 ? true : options.singleFlight,
489
+ submissions
490
+ };
491
+ function navigateFromRoute(route, to, options) {
492
+ untrack(() => {
493
+ if (typeof to === "number") {
494
+ if (!to) {} else if (utils.go) utils.go(to);
495
+ else console.warn("Router integration does not support relative routing");
496
+ return;
497
+ }
498
+ const queryOnly = !to || to[0] === "?";
499
+ const { replace, resolve, scroll, state: nextState } = {
500
+ replace: false,
501
+ resolve: !queryOnly,
502
+ scroll: true,
503
+ ...options
504
+ };
505
+ const resolvedTo = resolve ? route.resolvePath(to) : resolvePath(queryOnly && location.pathname || "", to);
506
+ if (resolvedTo === void 0) throw new Error(`Path '${to}' is not a routable path`);
507
+ else if (referrers.length >= MAX_REDIRECTS) throw new Error("Too many redirects");
508
+ if (resolvedTo !== reference() || nextState !== state()) {
509
+ const e = getRequestEvent();
510
+ e && (e.response = {
511
+ status: 302,
512
+ headers: new Headers({ Location: resolvedTo })
513
+ });
514
+ setSource({
515
+ value: resolvedTo,
516
+ replace,
517
+ scroll,
518
+ state: nextState
519
+ });
520
+ }
521
+ });
522
+ }
523
+ function navigatorFactory(route) {
524
+ route = route || useContext(RouteContextObj) || baseRoute;
525
+ return (to, options) => navigateFromRoute(route, to, options);
526
+ }
527
+ function navigateEnd(next) {
528
+ const first = referrers[0];
529
+ if (first) {
530
+ setSource({
531
+ ...next,
532
+ replace: first.replace,
533
+ scroll: first.scroll
534
+ });
535
+ referrers.length = 0;
536
+ }
537
+ }
538
+ function preloadRoute(url, preloadData) {
539
+ const matches = getRouteMatches(branches(), url.pathname);
540
+ const prevIntent = intent;
541
+ intent = "preload";
542
+ for (let match in matches) {
543
+ const { route, params } = matches[match];
544
+ route.component && route.component.preload && route.component.preload();
545
+ const { preload } = route;
546
+ inPreloadFn = true;
547
+ preloadData && preload && runWithOwner(getContext(), () => preload({
548
+ params,
549
+ location: {
550
+ pathname: url.pathname,
551
+ search: url.search,
552
+ hash: url.hash,
553
+ query: extractSearchParams(url),
554
+ state: null,
555
+ key: ""
556
+ },
557
+ intent: "preload"
558
+ }));
559
+ inPreloadFn = false;
560
+ }
561
+ intent = prevIntent;
562
+ }
563
+ function initFromFlash() {
564
+ const e = getRequestEvent();
565
+ return e && e.router && e.router.submission ? [e.router.submission] : [];
566
+ }
567
+ }
568
+ function createRouteContext(router, parent, outlet, match) {
569
+ const { base, location, params } = router;
570
+ const { pattern, component, preload } = match().route;
571
+ const path = createMemo(() => match().path);
572
+ component && component.preload && component.preload();
573
+ inPreloadFn = true;
574
+ const data = preload ? preload({
575
+ params,
576
+ location,
577
+ intent: intent || "initial"
578
+ }) : void 0;
579
+ inPreloadFn = false;
580
+ return {
581
+ parent,
582
+ pattern,
583
+ path,
584
+ outlet: () => component ? createComponent(component, {
585
+ params,
586
+ location,
587
+ data,
588
+ get children() {
589
+ return outlet();
590
+ }
591
+ }) : outlet(),
592
+ resolvePath(to) {
593
+ return resolvePath(base.path(), to, path());
594
+ }
595
+ };
596
+ }
597
+ //#endregion
12
598
  //#region node_modules/.nitro/vite/services/ssr/index.js
599
+ var ssr_exports = /* @__PURE__ */ __exportAll$1({
600
+ A: () => isFocusable,
601
+ B: () => snapValueToStep,
602
+ C: () => getAllTabbableIn,
603
+ D: () => getWindow,
604
+ E: () => getPrecision,
605
+ F: () => isWebKit,
606
+ G: () => node$3,
607
+ H: () => combineStyle,
608
+ I: () => mergeDefaultProps,
609
+ J: () => node$6,
610
+ K: () => node$4,
611
+ L: () => noop,
612
+ M: () => isMac,
613
+ N: () => isNumber,
614
+ O: () => isAppleDevice,
615
+ P: () => isString,
616
+ Q: () => Title,
617
+ R: () => removeItemFromArray,
618
+ S: () => getActiveElement,
619
+ T: () => getFocusableTreeWalker,
620
+ U: () => cloneServerReference,
621
+ V: () => visuallyHiddenStyles,
622
+ W: () => createServerReference,
623
+ X: () => action,
624
+ Y: () => A,
625
+ Z: () => useAction,
626
+ _: () => callHandler,
627
+ a: () => access,
628
+ b: () => createGenerateId,
629
+ c: () => layerStack,
630
+ d: () => Button,
631
+ default: () => protectedHandler,
632
+ f: () => ButtonRoot,
633
+ g: () => EventKey,
634
+ h: () => createTagName,
635
+ i: () => index_default,
636
+ j: () => isFunction,
637
+ k: () => isCtrlKey,
638
+ l: () => setSessionCookie,
639
+ m: () => Polymorphic,
640
+ n: () => HttpStatusCode,
641
+ o: () => createRegisterId,
642
+ p: () => __export,
643
+ q: () => node$5,
644
+ r: () => navigateWithToast,
645
+ s: () => DATA_TOP_LAYER_ATTR,
646
+ t: () => node,
647
+ u: () => createRelayEnvironment,
648
+ v: () => composeEventHandlers,
649
+ w: () => getDocument,
650
+ x: () => focusWithoutScrolling,
651
+ y: () => contains,
652
+ z: () => scrollIntoView
653
+ });
13
654
  var import_relay_runtime = /* @__PURE__ */ __toESM(require_relay_runtime());
14
- var __defProp = Object.defineProperty;
655
+ var __defProp$1 = Object.defineProperty;
15
656
  var __exportAll = (all, no_symbols) => {
16
657
  let target = {};
17
- for (var name in all) __defProp(target, name, {
658
+ for (var name in all) __defProp$1(target, name, {
18
659
  get: all[name],
19
660
  enumerable: true
20
661
  });
21
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
662
+ if (!no_symbols) __defProp$1(target, Symbol.toStringTag, { value: "Module" });
22
663
  return target;
23
664
  };
24
665
  var _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
@@ -115,146 +756,146 @@ var isAbsolute = function(p) {
115
756
  return _IS_ABSOLUTE_RE.test(p);
116
757
  };
117
758
  var clientViteManifest = {
118
- "_ActorDetailQuery.graphql-D96mwq1k.js": {
119
- "file": "_build/assets/ActorDetailQuery.graphql-D96mwq1k.js",
759
+ "_ActorDetailQuery.graphql-BifVLgri.js": {
760
+ "file": "_build/assets/ActorDetailQuery.graphql-BifVLgri.js",
120
761
  "name": "ActorDetailQuery.graphql",
121
- "imports": ["_relay-runtime-BX3uubtA.js"]
762
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
122
763
  },
123
- "_CopyButton-B2l484wE.js": {
124
- "file": "_build/assets/CopyButton-B2l484wE.js",
764
+ "_CopyButton-BPA_AsfQ.js": {
765
+ "file": "_build/assets/CopyButton-BPA_AsfQ.js",
125
766
  "name": "CopyButton",
126
- "imports": ["_web-DB_Nkq2D.js"],
767
+ "imports": ["_web-BjwKY0xb.js"],
127
768
  "css": ["_build/assets/CopyButton-Bi-ZR8x9.css"]
128
769
  },
129
770
  "_CopyButton-Bi-ZR8x9.css": {
130
771
  "file": "_build/assets/CopyButton-Bi-ZR8x9.css",
131
772
  "src": "_CopyButton-Bi-ZR8x9.css"
132
773
  },
133
- "_GetHostQuery.graphql-o9K0Qkg0.js": {
134
- "file": "_build/assets/GetHostQuery.graphql-o9K0Qkg0.js",
774
+ "_GetHostQuery.graphql-CKu9xX8-.js": {
775
+ "file": "_build/assets/GetHostQuery.graphql-CKu9xX8-.js",
135
776
  "name": "GetHostQuery.graphql",
136
- "imports": ["_relay-runtime-BX3uubtA.js"]
777
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
137
778
  },
138
- "_HttpStatusCode-bgaVzuLy.js": {
139
- "file": "_build/assets/HttpStatusCode-bgaVzuLy.js",
779
+ "_HttpStatusCode-FQmr-LGM.js": {
780
+ "file": "_build/assets/HttpStatusCode-FQmr-LGM.js",
140
781
  "name": "HttpStatusCode",
141
- "imports": ["_web-DB_Nkq2D.js"]
782
+ "imports": ["_web-BjwKY0xb.js"]
142
783
  },
143
- "_InstanceActorListQuery.graphql-DmNwiEhM.js": {
144
- "file": "_build/assets/InstanceActorListQuery.graphql-DmNwiEhM.js",
784
+ "_InstanceActorListQuery.graphql-Dmh71GI5.js": {
785
+ "file": "_build/assets/InstanceActorListQuery.graphql-Dmh71GI5.js",
145
786
  "name": "InstanceActorListQuery.graphql",
146
- "imports": ["_relay-runtime-BX3uubtA.js"]
787
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
147
788
  },
148
- "_InstanceDetailQuery.graphql-B52nR132.js": {
149
- "file": "_build/assets/InstanceDetailQuery.graphql-B52nR132.js",
789
+ "_InstanceDetailQuery.graphql-BVIsRDhB.js": {
790
+ "file": "_build/assets/InstanceDetailQuery.graphql-BVIsRDhB.js",
150
791
  "name": "InstanceDetailQuery.graphql",
151
- "imports": ["_relay-runtime-BX3uubtA.js"]
792
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
152
793
  },
153
- "_JNCCF6MP-CNMywyiC.js": {
154
- "file": "_build/assets/JNCCF6MP-CNMywyiC.js",
794
+ "_JNCCF6MP-C_2GhSaE.js": {
795
+ "file": "_build/assets/JNCCF6MP-C_2GhSaE.js",
155
796
  "name": "JNCCF6MP",
156
- "imports": ["_web-DB_Nkq2D.js"]
797
+ "imports": ["_web-BjwKY0xb.js"]
157
798
  },
158
- "_LP6E37CW-Cwv6G3n1.js": {
159
- "file": "_build/assets/LP6E37CW-Cwv6G3n1.js",
799
+ "_LP6E37CW-BBu2j5XX.js": {
800
+ "file": "_build/assets/LP6E37CW-BBu2j5XX.js",
160
801
  "name": "LP6E37CW",
161
- "imports": ["_web-DB_Nkq2D.js", "_JNCCF6MP-CNMywyiC.js"]
802
+ "imports": ["_web-BjwKY0xb.js", "_JNCCF6MP-C_2GhSaE.js"]
162
803
  },
163
- "_TSB6MOZK-CpiH97G1.js": {
164
- "file": "_build/assets/TSB6MOZK-CpiH97G1.js",
804
+ "_TSB6MOZK-D4_kp7T4.js": {
805
+ "file": "_build/assets/TSB6MOZK-D4_kp7T4.js",
165
806
  "name": "TSB6MOZK",
166
807
  "imports": [
167
- "_web-DB_Nkq2D.js",
168
- "_JNCCF6MP-CNMywyiC.js",
169
- "_form.module-BecmEfV_.js"
808
+ "_web-BjwKY0xb.js",
809
+ "_JNCCF6MP-C_2GhSaE.js",
810
+ "_form.module-DZJVksrR.js"
170
811
  ]
171
812
  },
172
813
  "_Toast-3-eXCAKc.css": {
173
814
  "file": "_build/assets/Toast-3-eXCAKc.css",
174
815
  "src": "_Toast-3-eXCAKc.css"
175
816
  },
176
- "_Toast-C1zr9crB.js": {
177
- "file": "_build/assets/Toast-C1zr9crB.js",
817
+ "_Toast-tZxI6Kk3.js": {
818
+ "file": "_build/assets/Toast-tZxI6Kk3.js",
178
819
  "name": "Toast",
179
820
  "imports": [
180
- "_web-DB_Nkq2D.js",
181
- "_dist-DVo0HS5G.js",
182
- "_JNCCF6MP-CNMywyiC.js"
821
+ "_web-BjwKY0xb.js",
822
+ "_dist-CMub1v5w.js",
823
+ "_JNCCF6MP-C_2GhSaE.js"
183
824
  ],
184
825
  "css": ["_build/assets/Toast-3-eXCAKc.css"]
185
826
  },
186
- "_client-CGFoRcqH.js": {
187
- "file": "_build/assets/client-CGFoRcqH.js",
827
+ "_client-BVl87rV7.js": {
828
+ "file": "_build/assets/client-BVl87rV7.js",
188
829
  "name": "client",
189
- "imports": ["_web-DB_Nkq2D.js", "_routing-DMN2NHu6.js"]
830
+ "imports": ["_web-BjwKY0xb.js", "_routing-BOJUm5FP.js"]
190
831
  },
191
- "_components-5MVu7IcD.js": {
192
- "file": "_build/assets/components-5MVu7IcD.js",
832
+ "_components-D1sEsgws.js": {
833
+ "file": "_build/assets/components-D1sEsgws.js",
193
834
  "name": "components",
194
- "imports": ["_web-DB_Nkq2D.js", "_routing-DMN2NHu6.js"]
835
+ "imports": ["_web-BjwKY0xb.js", "_routing-BOJUm5FP.js"]
195
836
  },
196
- "_dist-BrJ_B8nU.js": {
197
- "file": "_build/assets/dist-BrJ_B8nU.js",
837
+ "_dist-CMub1v5w.js": {
838
+ "file": "_build/assets/dist-CMub1v5w.js",
198
839
  "name": "dist",
199
- "imports": ["_web-DB_Nkq2D.js"]
840
+ "imports": ["_relay-runtime-CW2Fi-vu.js", "_web-BjwKY0xb.js"]
200
841
  },
201
- "_dist-DVo0HS5G.js": {
202
- "file": "_build/assets/dist-DVo0HS5G.js",
842
+ "_dist-DUCXQy4t.js": {
843
+ "file": "_build/assets/dist-DUCXQy4t.js",
203
844
  "name": "dist",
204
- "imports": ["_relay-runtime-BX3uubtA.js", "_web-DB_Nkq2D.js"]
845
+ "imports": ["_web-BjwKY0xb.js"]
205
846
  },
206
- "_dist-WrlGlK67.js": {
207
- "file": "_build/assets/dist-WrlGlK67.js",
847
+ "_dist-IMcx10bF.js": {
848
+ "file": "_build/assets/dist-IMcx10bF.js",
208
849
  "name": "dist",
209
- "imports": ["_web-DB_Nkq2D.js", "_JNCCF6MP-CNMywyiC.js"]
850
+ "imports": ["_web-BjwKY0xb.js", "_JNCCF6MP-C_2GhSaE.js"]
210
851
  },
211
852
  "_form-BxigYd7J.css": {
212
853
  "file": "_build/assets/form-BxigYd7J.css",
213
854
  "src": "_form-BxigYd7J.css"
214
855
  },
215
- "_form.module-BecmEfV_.js": {
216
- "file": "_build/assets/form.module-BecmEfV_.js",
856
+ "_form.module-DZJVksrR.js": {
857
+ "file": "_build/assets/form.module-DZJVksrR.js",
217
858
  "name": "form.module",
218
- "imports": ["_web-DB_Nkq2D.js", "_JNCCF6MP-CNMywyiC.js"],
859
+ "imports": ["_web-BjwKY0xb.js", "_JNCCF6MP-C_2GhSaE.js"],
219
860
  "css": ["_build/assets/form-BxigYd7J.css"]
220
861
  },
221
862
  "_label-Mv8GZ4jc.js": {
222
863
  "file": "_build/assets/label-Mv8GZ4jc.js",
223
864
  "name": "label"
224
865
  },
225
- "_relay-runtime-BX3uubtA.js": {
226
- "file": "_build/assets/relay-runtime-BX3uubtA.js",
866
+ "_relay-runtime-CW2Fi-vu.js": {
867
+ "file": "_build/assets/relay-runtime-CW2Fi-vu.js",
227
868
  "name": "relay-runtime"
228
869
  },
229
- "_routing-DMN2NHu6.js": {
230
- "file": "_build/assets/routing-DMN2NHu6.js",
870
+ "_routing-BOJUm5FP.js": {
871
+ "file": "_build/assets/routing-BOJUm5FP.js",
231
872
  "name": "routing",
232
- "imports": ["_web-DB_Nkq2D.js"]
873
+ "imports": ["_web-BjwKY0xb.js"]
233
874
  },
234
- "_web-DB_Nkq2D.js": {
235
- "file": "_build/assets/web-DB_Nkq2D.js",
875
+ "_web-BjwKY0xb.js": {
876
+ "file": "_build/assets/web-BjwKY0xb.js",
236
877
  "name": "web"
237
878
  },
238
879
  "src/entry-client.tsx": {
239
- "file": "_build/assets/entry-client-Do7ocrsL.js",
880
+ "file": "_build/assets/entry-client-DyU5h6Kf.js",
240
881
  "name": "entry-client",
241
882
  "src": "src/entry-client.tsx",
242
883
  "isEntry": true,
243
884
  "imports": [
244
- "_relay-runtime-BX3uubtA.js",
245
- "_web-DB_Nkq2D.js",
246
- "_dist-BrJ_B8nU.js",
247
- "_routing-DMN2NHu6.js",
248
- "_client-CGFoRcqH.js",
249
- "_components-5MVu7IcD.js",
250
- "_dist-DVo0HS5G.js",
251
- "_ActorDetailQuery.graphql-D96mwq1k.js",
252
- "_InstanceDetailQuery.graphql-B52nR132.js",
253
- "_GetHostQuery.graphql-o9K0Qkg0.js",
254
- "_JNCCF6MP-CNMywyiC.js",
255
- "_InstanceActorListQuery.graphql-DmNwiEhM.js",
256
- "_Toast-C1zr9crB.js",
257
- "_HttpStatusCode-bgaVzuLy.js"
885
+ "_relay-runtime-CW2Fi-vu.js",
886
+ "_web-BjwKY0xb.js",
887
+ "_dist-DUCXQy4t.js",
888
+ "_routing-BOJUm5FP.js",
889
+ "_client-BVl87rV7.js",
890
+ "_components-D1sEsgws.js",
891
+ "_dist-CMub1v5w.js",
892
+ "_ActorDetailQuery.graphql-BifVLgri.js",
893
+ "_InstanceDetailQuery.graphql-BVIsRDhB.js",
894
+ "_GetHostQuery.graphql-CKu9xX8-.js",
895
+ "_JNCCF6MP-C_2GhSaE.js",
896
+ "_InstanceActorListQuery.graphql-Dmh71GI5.js",
897
+ "_Toast-tZxI6Kk3.js",
898
+ "_HttpStatusCode-FQmr-LGM.js"
258
899
  ],
259
900
  "dynamicImports": [
260
901
  "src/routes/[...404].tsx?pick=default&pick=$css&lang.tsx",
@@ -283,239 +924,239 @@ var clientViteManifest = {
283
924
  "css": ["_build/assets/entry-client-BurSTYr9.css"]
284
925
  },
285
926
  "src/routes/[...404].tsx?pick=default&pick=$css&lang.tsx": {
286
- "file": "_build/assets/_...404_-WZ8kAljY.js",
927
+ "file": "_build/assets/_...404_-DMz-AmEz.js",
287
928
  "name": "_...404_",
288
929
  "src": "src/routes/[...404].tsx?pick=default&pick=$css&lang.tsx",
289
930
  "isEntry": true,
290
931
  "imports": [
291
- "_web-DB_Nkq2D.js",
292
- "_dist-BrJ_B8nU.js",
293
- "_HttpStatusCode-bgaVzuLy.js"
932
+ "_web-BjwKY0xb.js",
933
+ "_dist-DUCXQy4t.js",
934
+ "_HttpStatusCode-FQmr-LGM.js"
294
935
  ]
295
936
  },
296
937
  "src/routes/__generated__/HomeViewerQuery.graphql.ts?pick=default&pick=$css&lang.ts": {
297
- "file": "_build/assets/HomeViewerQuery.graphql-B903WWKs.js",
938
+ "file": "_build/assets/HomeViewerQuery.graphql-BEP_urQ1.js",
298
939
  "name": "HomeViewerQuery.graphql",
299
940
  "src": "src/routes/__generated__/HomeViewerQuery.graphql.ts?pick=default&pick=$css&lang.ts",
300
941
  "isEntry": true,
301
- "imports": ["_relay-runtime-BX3uubtA.js"]
942
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
302
943
  },
303
944
  "src/routes/__generated__/SignInMutation.graphql.ts?pick=default&pick=$css&lang.ts": {
304
- "file": "_build/assets/SignInMutation.graphql-BalZYNFu.js",
945
+ "file": "_build/assets/SignInMutation.graphql-D-K99qj-.js",
305
946
  "name": "SignInMutation.graphql",
306
947
  "src": "src/routes/__generated__/SignInMutation.graphql.ts?pick=default&pick=$css&lang.ts",
307
948
  "isEntry": true,
308
- "imports": ["_relay-runtime-BX3uubtA.js"]
949
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
309
950
  },
310
951
  "src/routes/about.tsx?pick=default&pick=$css&lang.tsx": {
311
- "file": "_build/assets/about-DIrbzRsi.js",
952
+ "file": "_build/assets/about-DtTGI6TG.js",
312
953
  "name": "about",
313
954
  "src": "src/routes/about.tsx?pick=default&pick=$css&lang.tsx",
314
955
  "isEntry": true,
315
- "imports": ["_web-DB_Nkq2D.js", "_dist-BrJ_B8nU.js"]
956
+ "imports": ["_web-BjwKY0xb.js", "_dist-DUCXQy4t.js"]
316
957
  },
317
958
  "src/routes/actor/[id].tsx?pick=default&pick=$css&lang.tsx": {
318
- "file": "_build/assets/_id_-bpxdclBj.js",
959
+ "file": "_build/assets/_id_-Q9HBJzaf.js",
319
960
  "name": "_id_",
320
961
  "src": "src/routes/actor/[id].tsx?pick=default&pick=$css&lang.tsx",
321
962
  "isEntry": true,
322
963
  "imports": [
323
- "_relay-runtime-BX3uubtA.js",
324
- "_web-DB_Nkq2D.js",
325
- "_dist-BrJ_B8nU.js",
326
- "_components-5MVu7IcD.js",
327
- "_dist-DVo0HS5G.js",
328
- "_ActorDetailQuery.graphql-D96mwq1k.js",
964
+ "_relay-runtime-CW2Fi-vu.js",
965
+ "_web-BjwKY0xb.js",
966
+ "_dist-DUCXQy4t.js",
967
+ "_components-D1sEsgws.js",
968
+ "_dist-CMub1v5w.js",
969
+ "_ActorDetailQuery.graphql-BifVLgri.js",
329
970
  "_label-Mv8GZ4jc.js",
330
- "_CopyButton-B2l484wE.js"
971
+ "_CopyButton-BPA_AsfQ.js"
331
972
  ],
332
973
  "css": ["_build/assets/_id_-YcZZShAv.css"]
333
974
  },
334
975
  "src/routes/actor/__generated__/ActorDetailQuery.graphql.ts?pick=default&pick=$css&lang.ts": {
335
- "file": "_build/assets/ActorDetailQuery.graphql-DrxSNh1X.js",
976
+ "file": "_build/assets/ActorDetailQuery.graphql-CCzXciWe.js",
336
977
  "name": "ActorDetailQuery.graphql",
337
978
  "src": "src/routes/actor/__generated__/ActorDetailQuery.graphql.ts?pick=default&pick=$css&lang.ts",
338
979
  "isEntry": true,
339
- "imports": ["_relay-runtime-BX3uubtA.js"]
980
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
340
981
  },
341
982
  "src/routes/confirm/[challengeId].tsx?pick=default&pick=$css&lang.tsx": {
342
- "file": "_build/assets/_challengeId_-Dk-0l7zl.js",
983
+ "file": "_build/assets/_challengeId_-BK-xeuYX.js",
343
984
  "name": "_challengeId_",
344
985
  "src": "src/routes/confirm/[challengeId].tsx?pick=default&pick=$css&lang.tsx",
345
986
  "isEntry": true,
346
987
  "imports": [
347
- "_web-DB_Nkq2D.js",
348
- "_routing-DMN2NHu6.js",
349
- "_client-CGFoRcqH.js"
988
+ "_web-BjwKY0xb.js",
989
+ "_routing-BOJUm5FP.js",
990
+ "_client-BVl87rV7.js"
350
991
  ]
351
992
  },
352
993
  "src/routes/confirm/__generated__/CompleteLoginChallenge.graphql.ts?pick=default&pick=$css&lang.ts": {
353
- "file": "_build/assets/CompleteLoginChallenge.graphql-C5Zq3wNh.js",
994
+ "file": "_build/assets/CompleteLoginChallenge.graphql-BuIODTQe.js",
354
995
  "name": "CompleteLoginChallenge.graphql",
355
996
  "src": "src/routes/confirm/__generated__/CompleteLoginChallenge.graphql.ts?pick=default&pick=$css&lang.ts",
356
997
  "isEntry": true,
357
- "imports": ["_relay-runtime-BX3uubtA.js"]
998
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
358
999
  },
359
1000
  "src/routes/index.tsx?pick=default&pick=$css&lang.tsx": {
360
- "file": "_build/assets/index-BSLqnqN7.js",
1001
+ "file": "_build/assets/index-xrNvEFEe.js",
361
1002
  "name": "index",
362
1003
  "src": "src/routes/index.tsx?pick=default&pick=$css&lang.tsx",
363
1004
  "isEntry": true,
364
1005
  "imports": [
365
- "_relay-runtime-BX3uubtA.js",
366
- "_web-DB_Nkq2D.js",
367
- "_dist-BrJ_B8nU.js",
368
- "_dist-DVo0HS5G.js"
1006
+ "_relay-runtime-CW2Fi-vu.js",
1007
+ "_web-BjwKY0xb.js",
1008
+ "_dist-DUCXQy4t.js",
1009
+ "_dist-CMub1v5w.js"
369
1010
  ]
370
1011
  },
371
1012
  "src/routes/instance/[slug].tsx?pick=default&pick=$css&lang.tsx": {
372
- "file": "_build/assets/_slug_-DXfRknzJ.js",
1013
+ "file": "_build/assets/_slug_-DrTnyM7j.js",
373
1014
  "name": "_slug_",
374
1015
  "src": "src/routes/instance/[slug].tsx?pick=default&pick=$css&lang.tsx",
375
1016
  "isEntry": true,
376
1017
  "imports": [
377
- "_relay-runtime-BX3uubtA.js",
378
- "_web-DB_Nkq2D.js",
379
- "_dist-BrJ_B8nU.js",
380
- "_components-5MVu7IcD.js",
381
- "_dist-DVo0HS5G.js",
382
- "_InstanceDetailQuery.graphql-B52nR132.js",
1018
+ "_relay-runtime-CW2Fi-vu.js",
1019
+ "_web-BjwKY0xb.js",
1020
+ "_dist-DUCXQy4t.js",
1021
+ "_components-D1sEsgws.js",
1022
+ "_dist-CMub1v5w.js",
1023
+ "_InstanceDetailQuery.graphql-BVIsRDhB.js",
383
1024
  "_label-Mv8GZ4jc.js",
384
- "_CopyButton-B2l484wE.js"
1025
+ "_CopyButton-BPA_AsfQ.js"
385
1026
  ],
386
1027
  "css": ["_build/assets/_slug_-CyTA2aW7.css"]
387
1028
  },
388
1029
  "src/routes/instance/__generated__/InstanceDetailQuery.graphql.ts?pick=default&pick=$css&lang.ts": {
389
- "file": "_build/assets/InstanceDetailQuery.graphql-DSA2BcAV.js",
1030
+ "file": "_build/assets/InstanceDetailQuery.graphql-YvCDX6Vx.js",
390
1031
  "name": "InstanceDetailQuery.graphql",
391
1032
  "src": "src/routes/instance/__generated__/InstanceDetailQuery.graphql.ts?pick=default&pick=$css&lang.ts",
392
1033
  "isEntry": true,
393
- "imports": ["_relay-runtime-BX3uubtA.js"]
1034
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
394
1035
  },
395
1036
  "src/routes/sign-in.tsx?pick=default&pick=$css&lang.tsx": {
396
- "file": "_build/assets/sign-in-B67sv7z8.js",
1037
+ "file": "_build/assets/sign-in-6aWEq4t1.js",
397
1038
  "name": "sign-in",
398
1039
  "src": "src/routes/sign-in.tsx?pick=default&pick=$css&lang.tsx",
399
1040
  "isEntry": true,
400
1041
  "imports": [
401
- "_relay-runtime-BX3uubtA.js",
402
- "_web-DB_Nkq2D.js",
403
- "_dist-BrJ_B8nU.js",
404
- "_dist-DVo0HS5G.js",
405
- "_JNCCF6MP-CNMywyiC.js",
406
- "_dist-WrlGlK67.js",
407
- "_form.module-BecmEfV_.js",
408
- "_TSB6MOZK-CpiH97G1.js"
1042
+ "_relay-runtime-CW2Fi-vu.js",
1043
+ "_web-BjwKY0xb.js",
1044
+ "_dist-DUCXQy4t.js",
1045
+ "_dist-CMub1v5w.js",
1046
+ "_JNCCF6MP-C_2GhSaE.js",
1047
+ "_dist-IMcx10bF.js",
1048
+ "_form.module-DZJVksrR.js",
1049
+ "_TSB6MOZK-D4_kp7T4.js"
409
1050
  ]
410
1051
  },
411
1052
  "src/routes/workspace/__generated__/WorkspaceQuery.graphql.ts?pick=default&pick=$css&lang.ts": {
412
- "file": "_build/assets/WorkspaceQuery.graphql-UoI7QDs4.js",
1053
+ "file": "_build/assets/WorkspaceQuery.graphql-9H5uLyBt.js",
413
1054
  "name": "WorkspaceQuery.graphql",
414
1055
  "src": "src/routes/workspace/__generated__/WorkspaceQuery.graphql.ts?pick=default&pick=$css&lang.ts",
415
1056
  "isEntry": true,
416
- "imports": ["_relay-runtime-BX3uubtA.js"]
1057
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
417
1058
  },
418
1059
  "src/routes/workspace/create/[instance_id]/__generated__/CreateObjectMutation.graphql.ts?pick=default&pick=$css&lang.ts": {
419
- "file": "_build/assets/CreateObjectMutation.graphql-B4A01dgV.js",
1060
+ "file": "_build/assets/CreateObjectMutation.graphql-slDMnVjt.js",
420
1061
  "name": "CreateObjectMutation.graphql",
421
1062
  "src": "src/routes/workspace/create/[instance_id]/__generated__/CreateObjectMutation.graphql.ts?pick=default&pick=$css&lang.ts",
422
1063
  "isEntry": true,
423
- "imports": ["_relay-runtime-BX3uubtA.js"]
1064
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
424
1065
  },
425
1066
  "src/routes/workspace/create/[instance_id]/__generated__/GenerateActorsMutation.graphql.ts?pick=default&pick=$css&lang.ts": {
426
- "file": "_build/assets/GenerateActorsMutation.graphql-mlHJNIbe.js",
1067
+ "file": "_build/assets/GenerateActorsMutation.graphql-vkoqVyL8.js",
427
1068
  "name": "GenerateActorsMutation.graphql",
428
1069
  "src": "src/routes/workspace/create/[instance_id]/__generated__/GenerateActorsMutation.graphql.ts?pick=default&pick=$css&lang.ts",
429
1070
  "isEntry": true,
430
- "imports": ["_relay-runtime-BX3uubtA.js"]
1071
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
431
1072
  },
432
1073
  "src/routes/workspace/create/[instance_id]/__generated__/GetHostQuery.graphql.ts?pick=default&pick=$css&lang.ts": {
433
- "file": "_build/assets/GetHostQuery.graphql-CuzDdOdW.js",
1074
+ "file": "_build/assets/GetHostQuery.graphql-BzusRJ7N.js",
434
1075
  "name": "GetHostQuery.graphql",
435
1076
  "src": "src/routes/workspace/create/[instance_id]/__generated__/GetHostQuery.graphql.ts?pick=default&pick=$css&lang.ts",
436
1077
  "isEntry": true,
437
- "imports": ["_relay-runtime-BX3uubtA.js"]
1078
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
438
1079
  },
439
1080
  "src/routes/workspace/create/[instance_id]/__generated__/InstanceActorListQuery.graphql.ts?pick=default&pick=$css&lang.ts": {
440
- "file": "_build/assets/InstanceActorListQuery.graphql-paa7teUO.js",
1081
+ "file": "_build/assets/InstanceActorListQuery.graphql-ADOUh67G.js",
441
1082
  "name": "InstanceActorListQuery.graphql",
442
1083
  "src": "src/routes/workspace/create/[instance_id]/__generated__/InstanceActorListQuery.graphql.ts?pick=default&pick=$css&lang.ts",
443
1084
  "isEntry": true,
444
- "imports": ["_relay-runtime-BX3uubtA.js"]
1085
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
445
1086
  },
446
1087
  "src/routes/workspace/create/[instance_id]/actors.tsx?pick=default&pick=$css&lang.tsx": {
447
- "file": "_build/assets/actors-HfZh_afh.js",
1088
+ "file": "_build/assets/actors-LmFNJfl8.js",
448
1089
  "name": "actors",
449
1090
  "src": "src/routes/workspace/create/[instance_id]/actors.tsx?pick=default&pick=$css&lang.tsx",
450
1091
  "isEntry": true,
451
1092
  "imports": [
452
- "_relay-runtime-BX3uubtA.js",
453
- "_web-DB_Nkq2D.js",
454
- "_dist-BrJ_B8nU.js",
455
- "_dist-DVo0HS5G.js",
456
- "_GetHostQuery.graphql-o9K0Qkg0.js",
457
- "_JNCCF6MP-CNMywyiC.js",
458
- "_dist-WrlGlK67.js",
459
- "_Toast-C1zr9crB.js",
460
- "_form.module-BecmEfV_.js",
461
- "_LP6E37CW-Cwv6G3n1.js"
1093
+ "_relay-runtime-CW2Fi-vu.js",
1094
+ "_web-BjwKY0xb.js",
1095
+ "_dist-DUCXQy4t.js",
1096
+ "_dist-CMub1v5w.js",
1097
+ "_GetHostQuery.graphql-CKu9xX8-.js",
1098
+ "_JNCCF6MP-C_2GhSaE.js",
1099
+ "_dist-IMcx10bF.js",
1100
+ "_Toast-tZxI6Kk3.js",
1101
+ "_form.module-DZJVksrR.js",
1102
+ "_LP6E37CW-BBu2j5XX.js"
462
1103
  ]
463
1104
  },
464
1105
  "src/routes/workspace/create/[instance_id]/objects.tsx?pick=default&pick=$css&lang.tsx": {
465
- "file": "_build/assets/objects-DR9TfL-V.js",
1106
+ "file": "_build/assets/objects-CSDLRgba.js",
466
1107
  "name": "objects",
467
1108
  "src": "src/routes/workspace/create/[instance_id]/objects.tsx?pick=default&pick=$css&lang.tsx",
468
1109
  "isEntry": true,
469
1110
  "imports": [
470
- "_relay-runtime-BX3uubtA.js",
471
- "_web-DB_Nkq2D.js",
472
- "_dist-BrJ_B8nU.js",
473
- "_dist-DVo0HS5G.js",
474
- "_JNCCF6MP-CNMywyiC.js",
475
- "_InstanceActorListQuery.graphql-DmNwiEhM.js",
476
- "_Toast-C1zr9crB.js",
477
- "_form.module-BecmEfV_.js",
478
- "_TSB6MOZK-CpiH97G1.js",
1111
+ "_relay-runtime-CW2Fi-vu.js",
1112
+ "_web-BjwKY0xb.js",
1113
+ "_dist-DUCXQy4t.js",
1114
+ "_dist-CMub1v5w.js",
1115
+ "_JNCCF6MP-C_2GhSaE.js",
1116
+ "_InstanceActorListQuery.graphql-Dmh71GI5.js",
1117
+ "_Toast-tZxI6Kk3.js",
1118
+ "_form.module-DZJVksrR.js",
1119
+ "_TSB6MOZK-D4_kp7T4.js",
479
1120
  "_label-Mv8GZ4jc.js",
480
- "_LP6E37CW-Cwv6G3n1.js"
1121
+ "_LP6E37CW-BBu2j5XX.js"
481
1122
  ],
482
1123
  "css": ["_build/assets/objects-DPb8DI8A.css"]
483
1124
  },
484
1125
  "src/routes/workspace/create/__generated__/CreateInstanceMutation.graphql.ts?pick=default&pick=$css&lang.ts": {
485
- "file": "_build/assets/CreateInstanceMutation.graphql-B4CRy6cl.js",
1126
+ "file": "_build/assets/CreateInstanceMutation.graphql-BeuI_m9K.js",
486
1127
  "name": "CreateInstanceMutation.graphql",
487
1128
  "src": "src/routes/workspace/create/__generated__/CreateInstanceMutation.graphql.ts?pick=default&pick=$css&lang.ts",
488
1129
  "isEntry": true,
489
- "imports": ["_relay-runtime-BX3uubtA.js"]
1130
+ "imports": ["_relay-runtime-CW2Fi-vu.js"]
490
1131
  },
491
1132
  "src/routes/workspace/create/instance.tsx?pick=default&pick=$css&lang.tsx": {
492
- "file": "_build/assets/instance-tpMrvJNZ.js",
1133
+ "file": "_build/assets/instance-CD2GuEFF.js",
493
1134
  "name": "instance",
494
1135
  "src": "src/routes/workspace/create/instance.tsx?pick=default&pick=$css&lang.tsx",
495
1136
  "isEntry": true,
496
1137
  "imports": [
497
- "_relay-runtime-BX3uubtA.js",
498
- "_web-DB_Nkq2D.js",
499
- "_dist-BrJ_B8nU.js",
500
- "_routing-DMN2NHu6.js",
501
- "_dist-DVo0HS5G.js",
502
- "_JNCCF6MP-CNMywyiC.js",
503
- "_dist-WrlGlK67.js",
504
- "_form.module-BecmEfV_.js",
505
- "_TSB6MOZK-CpiH97G1.js"
1138
+ "_relay-runtime-CW2Fi-vu.js",
1139
+ "_web-BjwKY0xb.js",
1140
+ "_dist-DUCXQy4t.js",
1141
+ "_routing-BOJUm5FP.js",
1142
+ "_dist-CMub1v5w.js",
1143
+ "_JNCCF6MP-C_2GhSaE.js",
1144
+ "_dist-IMcx10bF.js",
1145
+ "_form.module-DZJVksrR.js",
1146
+ "_TSB6MOZK-D4_kp7T4.js"
506
1147
  ]
507
1148
  },
508
1149
  "src/routes/workspace/index.tsx?pick=default&pick=$css&lang.tsx": {
509
- "file": "_build/assets/index-BHn6sAgH.js",
1150
+ "file": "_build/assets/index-CsGHD4_w.js",
510
1151
  "name": "index",
511
1152
  "src": "src/routes/workspace/index.tsx?pick=default&pick=$css&lang.tsx",
512
1153
  "isEntry": true,
513
1154
  "imports": [
514
- "_relay-runtime-BX3uubtA.js",
515
- "_web-DB_Nkq2D.js",
516
- "_dist-BrJ_B8nU.js",
517
- "_components-5MVu7IcD.js",
518
- "_dist-DVo0HS5G.js"
1155
+ "_relay-runtime-CW2Fi-vu.js",
1156
+ "_web-BjwKY0xb.js",
1157
+ "_dist-DUCXQy4t.js",
1158
+ "_components-D1sEsgws.js",
1159
+ "_dist-CMub1v5w.js"
519
1160
  ],
520
1161
  "css": ["_build/assets/index-B_xLBDOo.css"]
521
1162
  }
@@ -582,14 +1223,14 @@ function findAssetsInViteManifest(manifest, id, assetMap = /* @__PURE__ */ new M
582
1223
  function getSsrManifest(target) {
583
1224
  return getSsrProdManifest();
584
1225
  }
585
- var _tmpl$$4 = " ";
1226
+ var _tmpl$$5 = " ";
586
1227
  var assetMap = {
587
1228
  style: (props) => ssrElement("style", props.attrs, () => props.children, true),
588
1229
  link: (props) => ssrElement("link", props.attrs, void 0, true),
589
1230
  script: (props) => {
590
1231
  return props.attrs.src ? ssrElement("script", mergeProps(() => props.attrs, { get id() {
591
1232
  return props.key;
592
- } }), () => ssr(_tmpl$$4), true) : null;
1233
+ } }), () => ssr(_tmpl$$5), true) : null;
593
1234
  },
594
1235
  noscript: (props) => ssrElement("noscript", props.attrs, () => escape(props.children), true)
595
1236
  };
@@ -672,6 +1313,83 @@ var withAssets = function(fn) {
672
1313
  return wrapper;
673
1314
  };
674
1315
  var lazy$1 = (fn) => lazy(withAssets(fn));
1316
+ var MetaContext = createContext();
1317
+ var cascadingTags = ["title", "meta"];
1318
+ var titleTagProperties = [];
1319
+ var metaTagProperties = [
1320
+ "name",
1321
+ "http-equiv",
1322
+ "content",
1323
+ "charset",
1324
+ "media"
1325
+ ].concat(["property"]);
1326
+ var getTagKey = (tag, properties) => {
1327
+ const tagProps = Object.fromEntries(Object.entries(tag.props).filter(([k]) => properties.includes(k)).sort());
1328
+ if (Object.hasOwn(tagProps, "name") || Object.hasOwn(tagProps, "property")) {
1329
+ tagProps.name = tagProps.name || tagProps.property;
1330
+ delete tagProps.property;
1331
+ }
1332
+ return tag.tag + JSON.stringify(tagProps);
1333
+ };
1334
+ function initServerProvider() {
1335
+ const tags = [];
1336
+ useAssets(() => ssr(renderTags(tags)));
1337
+ return {
1338
+ addTag(tagDesc) {
1339
+ if (cascadingTags.indexOf(tagDesc.tag) !== -1) {
1340
+ const properties = tagDesc.tag === "title" ? titleTagProperties : metaTagProperties;
1341
+ const tagDescKey = getTagKey(tagDesc, properties);
1342
+ const index = tags.findIndex((prev) => prev.tag === tagDesc.tag && getTagKey(prev, properties) === tagDescKey);
1343
+ if (index !== -1) tags.splice(index, 1);
1344
+ }
1345
+ tags.push(tagDesc);
1346
+ return tags.length;
1347
+ },
1348
+ removeTag(tag, index) {}
1349
+ };
1350
+ }
1351
+ var MetaProvider = (props) => {
1352
+ const actions = initServerProvider();
1353
+ return createComponent(MetaContext.Provider, {
1354
+ value: actions,
1355
+ get children() {
1356
+ return props.children;
1357
+ }
1358
+ });
1359
+ };
1360
+ var MetaTag = (tag, props, setting) => {
1361
+ useHead({
1362
+ tag,
1363
+ props,
1364
+ setting,
1365
+ id: createUniqueId(),
1366
+ get name() {
1367
+ return props.name || props.property;
1368
+ }
1369
+ });
1370
+ return null;
1371
+ };
1372
+ function useHead(tagDesc) {
1373
+ const c = useContext(MetaContext);
1374
+ if (!c) throw new Error("<MetaProvider /> should be in the tree");
1375
+ createRenderEffect(() => {
1376
+ const index = c.addTag(tagDesc);
1377
+ onCleanup(() => c.removeTag(tagDesc, index));
1378
+ });
1379
+ }
1380
+ function renderTags(tags) {
1381
+ return tags.map((tag) => {
1382
+ const props = Object.keys(tag.props).map((k) => k === "children" ? "" : ` ${k}="${escape(tag.props[k], true)}"`).join("");
1383
+ let children = tag.props.children;
1384
+ if (Array.isArray(children)) children = children.join("");
1385
+ if (tag.setting?.close) return `<${tag.tag} data-sm="${tag.id}"${props}>${tag.setting?.escape ? escape(children) : children || ""}</${tag.tag}>`;
1386
+ return `<${tag.tag} data-sm="${tag.id}"${props}/>`;
1387
+ }).join("");
1388
+ }
1389
+ var Title = (props) => MetaTag("title", props, {
1390
+ escape: true,
1391
+ close: true
1392
+ });
675
1393
  var createRouterComponent = (router) => (props) => {
676
1394
  const { base } = props;
677
1395
  const routeDefs = children(() => props.children);
@@ -1140,9 +1858,9 @@ function A(props) {
1140
1858
  * @generated SignedSource<<bf8e855050f5ef7df7504668193ca2c2>>
1141
1859
  * @lightSyntaxTransform
1142
1860
  */
1143
- var { ConcreteRequest: ConcreteRequest$5 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1861
+ var { ConcreteRequest: ConcreteRequest$6 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1144
1862
  var { FragmentRefs: FragmentRefs$1 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1145
- var node$5 = function() {
1863
+ var node$6 = function() {
1146
1864
  var v0 = [{
1147
1865
  "defaultValue": null,
1148
1866
  "kind": "LocalArgument",
@@ -1412,9 +2130,9 @@ var node$5 = function() {
1412
2130
  }
1413
2131
  };
1414
2132
  }();
1415
- node$5.hash = "20d8c7fdb09be89399833e2a4efbe037";
2133
+ node$6.hash = "20d8c7fdb09be89399833e2a4efbe037";
1416
2134
  var { graphql: graphql$5 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1417
- var actorDetailQuery = node$5;
2135
+ var actorDetailQuery = node$6;
1418
2136
  var loadActorDetailQuery = query((id) => loadQuery(useRelayEnvironment()(), actorDetailQuery, { id }), "ActorDetailQuery");
1419
2137
  var route$3 = { preload({ params }) {
1420
2138
  if (params.id === void 0) throw new Error("Missing actor ID route parameter.");
@@ -1424,9 +2142,9 @@ var route$3 = { preload({ params }) {
1424
2142
  * @generated SignedSource<<e44e4e6365fb5fc529055e6fcb8043e1>>
1425
2143
  * @lightSyntaxTransform
1426
2144
  */
1427
- var { ConcreteRequest: ConcreteRequest$4 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
2145
+ var { ConcreteRequest: ConcreteRequest$5 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1428
2146
  var { FragmentRefs } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1429
- var node$4 = function() {
2147
+ var node$5 = function() {
1430
2148
  var v0 = [{
1431
2149
  "defaultValue": null,
1432
2150
  "kind": "LocalArgument",
@@ -1780,9 +2498,9 @@ var node$4 = function() {
1780
2498
  }
1781
2499
  };
1782
2500
  }();
1783
- node$4.hash = "ba59c6d61d32cdbbd33bfc39e31c9c2e";
2501
+ node$5.hash = "ba59c6d61d32cdbbd33bfc39e31c9c2e";
1784
2502
  var { graphql: graphql$4 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1785
- var instanceDetailQuery = node$4;
2503
+ var instanceDetailQuery = node$5;
1786
2504
  /**
1787
2505
  * The federation endpoints worth linking to from an instance's page.
1788
2506
  *
@@ -1801,8 +2519,8 @@ var route$2 = { preload({ params }) {
1801
2519
  * @generated SignedSource<<3115dd3a793e1fb51919e7a3c8208a24>>
1802
2520
  * @lightSyntaxTransform
1803
2521
  */
1804
- var { ConcreteRequest: ConcreteRequest$3 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1805
- var node$3 = function() {
2522
+ var { ConcreteRequest: ConcreteRequest$4 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
2523
+ var node$4 = function() {
1806
2524
  var v0 = [{
1807
2525
  "defaultValue": null,
1808
2526
  "kind": "LocalArgument",
@@ -1917,16 +2635,177 @@ var node$3 = function() {
1917
2635
  }
1918
2636
  };
1919
2637
  }();
1920
- node$3.hash = "d621aaae2916cf779ebcf3e9877700cb";
2638
+ node$4.hash = "d621aaae2916cf779ebcf3e9877700cb";
1921
2639
  var { graphql: graphql$3 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1922
- var getHostQuery = node$3;
2640
+ var getHostQuery = node$4;
1923
2641
  var loadInstanceQuery = query((instanceId) => loadQuery(useRelayEnvironment()(), getHostQuery, { instanceId }), "GetHostQuery");
1924
2642
  var route$1 = { preload({ params }) {
1925
2643
  if (params.instance_id === void 0) throw new Error("Missing instance_id route parameter.");
1926
2644
  return loadInstanceQuery(params.instance_id);
1927
2645
  } };
2646
+ /**
2647
+ * @generated SignedSource<<2cf63a91cd9704068a66b688800ac78d>>
2648
+ * @lightSyntaxTransform
2649
+ */
2650
+ var { ConcreteRequest: ConcreteRequest$3 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
2651
+ var node$3 = function() {
2652
+ var v0 = [{
2653
+ "defaultValue": null,
2654
+ "kind": "LocalArgument",
2655
+ "name": "instanceId"
2656
+ }], v1 = [{
2657
+ "kind": "Variable",
2658
+ "name": "id",
2659
+ "variableName": "instanceId"
2660
+ }], v2 = {
2661
+ "alias": null,
2662
+ "args": null,
2663
+ "kind": "ScalarField",
2664
+ "name": "id",
2665
+ "storageKey": null
2666
+ }, v3 = {
2667
+ "alias": null,
2668
+ "args": null,
2669
+ "kind": "ScalarField",
2670
+ "name": "host",
2671
+ "storageKey": null
2672
+ }, v4 = {
2673
+ "alias": null,
2674
+ "args": null,
2675
+ "kind": "ScalarField",
2676
+ "name": "url",
2677
+ "storageKey": null
2678
+ }, v5 = {
2679
+ "alias": null,
2680
+ "args": [{
2681
+ "kind": "Literal",
2682
+ "name": "first",
2683
+ "value": 100
2684
+ }],
2685
+ "concreteType": "InstanceActorsConnection",
2686
+ "kind": "LinkedField",
2687
+ "name": "actors",
2688
+ "plural": false,
2689
+ "selections": [{
2690
+ "alias": null,
2691
+ "args": null,
2692
+ "kind": "ScalarField",
2693
+ "name": "totalCount",
2694
+ "storageKey": null
2695
+ }, {
2696
+ "alias": null,
2697
+ "args": null,
2698
+ "concreteType": "InstanceActorsConnectionEdge",
2699
+ "kind": "LinkedField",
2700
+ "name": "edges",
2701
+ "plural": true,
2702
+ "selections": [{
2703
+ "alias": null,
2704
+ "args": null,
2705
+ "concreteType": "Actor",
2706
+ "kind": "LinkedField",
2707
+ "name": "node",
2708
+ "plural": false,
2709
+ "selections": [
2710
+ {
2711
+ "alias": null,
2712
+ "args": null,
2713
+ "kind": "ScalarField",
2714
+ "name": "handle",
2715
+ "storageKey": null
2716
+ },
2717
+ {
2718
+ "alias": null,
2719
+ "args": null,
2720
+ "kind": "ScalarField",
2721
+ "name": "iri",
2722
+ "storageKey": null
2723
+ },
2724
+ v2
2725
+ ],
2726
+ "storageKey": null
2727
+ }],
2728
+ "storageKey": null
2729
+ }],
2730
+ "storageKey": "actors(first:100)"
2731
+ };
2732
+ return {
2733
+ "fragment": {
2734
+ "argumentDefinitions": v0,
2735
+ "kind": "Fragment",
2736
+ "metadata": null,
2737
+ "name": "InstanceActorListQuery",
2738
+ "selections": [{
2739
+ "alias": "instance",
2740
+ "args": v1,
2741
+ "concreteType": null,
2742
+ "kind": "LinkedField",
2743
+ "name": "node",
2744
+ "plural": false,
2745
+ "selections": [{
2746
+ "kind": "InlineFragment",
2747
+ "selections": [
2748
+ v2,
2749
+ v3,
2750
+ v4,
2751
+ v5
2752
+ ],
2753
+ "type": "Instance",
2754
+ "abstractKey": null
2755
+ }],
2756
+ "storageKey": null
2757
+ }],
2758
+ "type": "Query",
2759
+ "abstractKey": null
2760
+ },
2761
+ "kind": "Request",
2762
+ "operation": {
2763
+ "argumentDefinitions": v0,
2764
+ "kind": "Operation",
2765
+ "name": "InstanceActorListQuery",
2766
+ "selections": [{
2767
+ "alias": "instance",
2768
+ "args": v1,
2769
+ "concreteType": null,
2770
+ "kind": "LinkedField",
2771
+ "name": "node",
2772
+ "plural": false,
2773
+ "selections": [
2774
+ {
2775
+ "alias": null,
2776
+ "args": null,
2777
+ "kind": "ScalarField",
2778
+ "name": "__typename",
2779
+ "storageKey": null
2780
+ },
2781
+ v2,
2782
+ {
2783
+ "kind": "InlineFragment",
2784
+ "selections": [
2785
+ v3,
2786
+ v4,
2787
+ v5
2788
+ ],
2789
+ "type": "Instance",
2790
+ "abstractKey": null
2791
+ }
2792
+ ],
2793
+ "storageKey": null
2794
+ }]
2795
+ },
2796
+ "params": {
2797
+ "cacheID": "2362d2d169cd79f7485c1243b70c22d7",
2798
+ "id": null,
2799
+ "metadata": {},
2800
+ "name": "InstanceActorListQuery",
2801
+ "operationKind": "query",
2802
+ "text": "query InstanceActorListQuery(\n $instanceId: ID!\n) {\n instance: node(id: $instanceId) {\n __typename\n ... on Instance {\n id\n host\n url\n actors(first: 100) {\n totalCount\n edges {\n node {\n handle\n iri\n id\n }\n }\n }\n }\n id\n }\n}\n"
2803
+ }
2804
+ };
2805
+ }();
2806
+ node$3.hash = "dfa1afc83b486dcdebbeb32921ca4595";
1928
2807
  var { graphql: graphql$2 } = import_relay_runtime?.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime?.default?.__esModule ? import_relay_runtime.default : import_relay_runtime;
1929
- var instanceActorListQuery = node$6;
2808
+ var instanceActorListQuery = node$3;
1930
2809
  var loadInstanceActorListQuery = query((instanceId) => loadQuery(useRelayEnvironment()(), instanceActorListQuery, { instanceId }), "InstanceActorListQuery");
1931
2810
  var route = { preload({ params }) {
1932
2811
  if (params.instance_id === void 0) throw new Error("Missing instance_id route parameter.");
@@ -1937,8 +2816,8 @@ var solid_start_routes_default = [
1937
2816
  "page": true,
1938
2817
  "$component": {
1939
2818
  "src": "src/routes/[...404].tsx?pick=default&pick=$css&lang.tsx",
1940
- "build": () => import("../_...404_-DDEH5apf.mjs"),
1941
- "import": () => import("../_...404_-DDEH5apf.mjs")
2819
+ "build": () => import("../_...404_-DM28Kka3.mjs"),
2820
+ "import": () => import("../_...404_-DM28Kka3.mjs")
1942
2821
  },
1943
2822
  "path": "/*404"
1944
2823
  },
@@ -1946,8 +2825,8 @@ var solid_start_routes_default = [
1946
2825
  "page": true,
1947
2826
  "$component": {
1948
2827
  "src": "src/routes/about.tsx?pick=default&pick=$css&lang.tsx",
1949
- "build": () => import("./about-CD3QIgf_.mjs"),
1950
- "import": () => import("./about-CD3QIgf_.mjs")
2828
+ "build": () => import("./about-K4E3_OxN.mjs"),
2829
+ "import": () => import("./about-K4E3_OxN.mjs")
1951
2830
  },
1952
2831
  "path": "/about"
1953
2832
  },
@@ -1955,8 +2834,8 @@ var solid_start_routes_default = [
1955
2834
  "page": true,
1956
2835
  "$component": {
1957
2836
  "src": "src/routes/index.tsx?pick=default&pick=$css&lang.tsx",
1958
- "build": () => import("./index-yuhuc6-X.mjs"),
1959
- "import": () => import("./index-yuhuc6-X.mjs")
2837
+ "build": () => import("./index-DQYLULEn.mjs"),
2838
+ "import": () => import("./index-DQYLULEn.mjs")
1960
2839
  },
1961
2840
  "path": "/"
1962
2841
  },
@@ -1964,8 +2843,8 @@ var solid_start_routes_default = [
1964
2843
  "page": true,
1965
2844
  "$component": {
1966
2845
  "src": "src/routes/sign-in.tsx?pick=default&pick=$css&lang.tsx",
1967
- "build": () => import("./sign-in-CNHZb_zL.mjs"),
1968
- "import": () => import("./sign-in-CNHZb_zL.mjs")
2846
+ "build": () => import("./sign-in-KJ_TNq1o.mjs"),
2847
+ "import": () => import("./sign-in-KJ_TNq1o.mjs")
1969
2848
  },
1970
2849
  "path": "/sign-in"
1971
2850
  },
@@ -1991,8 +2870,8 @@ var solid_start_routes_default = [
1991
2870
  "page": true,
1992
2871
  "$component": {
1993
2872
  "src": "src/routes/actor/[id].tsx?pick=default&pick=$css&lang.tsx",
1994
- "build": () => import("../_id_-DqytvZEf.mjs"),
1995
- "import": () => import("../_id_-DqytvZEf.mjs")
2873
+ "build": () => import("../_id_-BjLFsMir.mjs"),
2874
+ "import": () => import("../_id_-BjLFsMir.mjs")
1996
2875
  },
1997
2876
  "$$route": { "require": () => ({ "route": route$3 }) },
1998
2877
  "path": "/actor/:id"
@@ -2001,8 +2880,8 @@ var solid_start_routes_default = [
2001
2880
  "page": true,
2002
2881
  "$component": {
2003
2882
  "src": "src/routes/confirm/[challengeId].tsx?pick=default&pick=$css&lang.tsx",
2004
- "build": () => import("../_challengeId_-C_n_Bww9.mjs"),
2005
- "import": () => import("../_challengeId_-C_n_Bww9.mjs")
2883
+ "build": () => import("../_challengeId_-CHkjsE_y.mjs"),
2884
+ "import": () => import("../_challengeId_-CHkjsE_y.mjs")
2006
2885
  },
2007
2886
  "path": "/confirm/:challengeId"
2008
2887
  },
@@ -2010,8 +2889,8 @@ var solid_start_routes_default = [
2010
2889
  "page": true,
2011
2890
  "$component": {
2012
2891
  "src": "src/routes/instance/[slug].tsx?pick=default&pick=$css&lang.tsx",
2013
- "build": () => import("../_slug_-CBOaSqoF.mjs"),
2014
- "import": () => import("../_slug_-CBOaSqoF.mjs")
2892
+ "build": () => import("../_slug_-CamNffYc.mjs"),
2893
+ "import": () => import("../_slug_-CamNffYc.mjs")
2015
2894
  },
2016
2895
  "$$route": { "require": () => ({ "route": route$2 }) },
2017
2896
  "path": "/instance/:slug"
@@ -2020,8 +2899,8 @@ var solid_start_routes_default = [
2020
2899
  "page": true,
2021
2900
  "$component": {
2022
2901
  "src": "src/routes/workspace/index.tsx?pick=default&pick=$css&lang.tsx",
2023
- "build": () => import("./index-C4crD6q-.mjs"),
2024
- "import": () => import("./index-C4crD6q-.mjs")
2902
+ "build": () => import("./index-DU0kuIH3.mjs"),
2903
+ "import": () => import("./index-DU0kuIH3.mjs")
2025
2904
  },
2026
2905
  "path": "/workspace/"
2027
2906
  },
@@ -2065,8 +2944,8 @@ var solid_start_routes_default = [
2065
2944
  "page": true,
2066
2945
  "$component": {
2067
2946
  "src": "src/routes/workspace/create/instance.tsx?pick=default&pick=$css&lang.tsx",
2068
- "build": () => import("./instance-ZYWGeWd3.mjs"),
2069
- "import": () => import("./instance-ZYWGeWd3.mjs")
2947
+ "build": () => import("./instance-BXwV77PI.mjs"),
2948
+ "import": () => import("./instance-BXwV77PI.mjs")
2070
2949
  },
2071
2950
  "path": "/workspace/create/instance"
2072
2951
  },
@@ -2074,8 +2953,8 @@ var solid_start_routes_default = [
2074
2953
  "page": true,
2075
2954
  "$component": {
2076
2955
  "src": "src/routes/workspace/create/[instance_id]/actors.tsx?pick=default&pick=$css&lang.tsx",
2077
- "build": () => import("./actors-CMWf-xQU.mjs"),
2078
- "import": () => import("./actors-CMWf-xQU.mjs")
2956
+ "build": () => import("./actors-DQIzbpiq.mjs"),
2957
+ "import": () => import("./actors-DQIzbpiq.mjs")
2079
2958
  },
2080
2959
  "$$route": { "require": () => ({ "route": route$1 }) },
2081
2960
  "path": "/workspace/create/:instance_id/actors"
@@ -2084,8 +2963,8 @@ var solid_start_routes_default = [
2084
2963
  "page": true,
2085
2964
  "$component": {
2086
2965
  "src": "src/routes/workspace/create/[instance_id]/objects.tsx?pick=default&pick=$css&lang.tsx",
2087
- "build": () => import("./objects-D5MVukzB.mjs"),
2088
- "import": () => import("./objects-D5MVukzB.mjs")
2966
+ "build": () => import("./objects-DNPuxUtN.mjs"),
2967
+ "import": () => import("./objects-DNPuxUtN.mjs")
2089
2968
  },
2090
2969
  "$$route": { "require": () => ({ "route": route }) },
2091
2970
  "path": "/workspace/create/:instance_id/objects"
@@ -2153,7 +3032,7 @@ function createRouter$1(options = {}) {
2153
3032
  ctx,
2154
3033
  lookup: (path) => lookup(ctx, normalizeTrailingSlash(path)),
2155
3034
  insert: (path, data) => insert(ctx, normalizeTrailingSlash(path), data),
2156
- remove: (path) => remove(ctx, normalizeTrailingSlash(path))
3035
+ remove: (path) => remove$1(ctx, normalizeTrailingSlash(path))
2157
3036
  };
2158
3037
  }
2159
3038
  function lookup(ctx, path) {
@@ -2228,7 +3107,7 @@ function insert(ctx, path, data) {
2228
3107
  if (isStaticRoute === true) ctx.staticRoutesMap[path] = node;
2229
3108
  return node;
2230
3109
  }
2231
- function remove(ctx, path) {
3110
+ function remove$1(ctx, path) {
2232
3111
  let success = false;
2233
3112
  const sections = path.split("/");
2234
3113
  let node = ctx.rootNode;
@@ -2488,6 +3367,443 @@ function cloneServerReference({ id, fn }) {
2488
3367
  }
2489
3368
  });
2490
3369
  }
3370
+ var extractCSSregex = /((?:--)?(?:\w+-?)+)\s*:\s*([^;]*)/g;
3371
+ /**
3372
+ * converts inline string styles to object form
3373
+ * @example
3374
+ * const styles = stringStyleToObject("margin: 24px; border: 1px solid #121212");
3375
+ * styles; // { margin: "24px", border: "1px solid #121212" }
3376
+ * */
3377
+ function stringStyleToObject(style) {
3378
+ const object = {};
3379
+ let match;
3380
+ while (match = extractCSSregex.exec(style)) object[match[1]] = match[2];
3381
+ return object;
3382
+ }
3383
+ function combineStyle(a, b) {
3384
+ if (typeof a === "string") {
3385
+ if (typeof b === "string") return `${a};${b}`;
3386
+ a = stringStyleToObject(a);
3387
+ } else if (typeof b === "string") b = stringStyleToObject(b);
3388
+ return {
3389
+ ...a,
3390
+ ...b
3391
+ };
3392
+ }
3393
+ function removeItemFromArray(array, item) {
3394
+ const updatedArray = [...array];
3395
+ const index = updatedArray.indexOf(item);
3396
+ if (index !== -1) updatedArray.splice(index, 1);
3397
+ return updatedArray;
3398
+ }
3399
+ function isNumber(value) {
3400
+ return typeof value === "number";
3401
+ }
3402
+ function isString(value) {
3403
+ return Object.prototype.toString.call(value) === "[object String]";
3404
+ }
3405
+ function isFunction(value) {
3406
+ return typeof value === "function";
3407
+ }
3408
+ function createGenerateId(baseId) {
3409
+ return (suffix) => `${baseId()}-${suffix}`;
3410
+ }
3411
+ function contains(parent, child) {
3412
+ if (!parent) return false;
3413
+ return parent === child || parent.contains(child);
3414
+ }
3415
+ function getActiveElement(node, activeDescendant = false) {
3416
+ const { activeElement } = getDocument(node);
3417
+ if (!activeElement?.nodeName) return null;
3418
+ if (isFrame(activeElement) && activeElement.contentDocument) return getActiveElement(activeElement.contentDocument.body, activeDescendant);
3419
+ if (activeDescendant) {
3420
+ const id = activeElement.getAttribute("aria-activedescendant");
3421
+ if (id) {
3422
+ const element = getDocument(activeElement).getElementById(id);
3423
+ if (element) return element;
3424
+ }
3425
+ }
3426
+ return activeElement;
3427
+ }
3428
+ function getWindow(node) {
3429
+ return getDocument(node).defaultView || window;
3430
+ }
3431
+ function getDocument(node) {
3432
+ return node ? node.ownerDocument || node : document;
3433
+ }
3434
+ function isFrame(element) {
3435
+ return element.tagName === "IFRAME";
3436
+ }
3437
+ var EventKey = /* @__PURE__ */ ((EventKey2) => {
3438
+ EventKey2["Escape"] = "Escape";
3439
+ EventKey2["Enter"] = "Enter";
3440
+ EventKey2["Tab"] = "Tab";
3441
+ EventKey2["Space"] = " ";
3442
+ EventKey2["ArrowDown"] = "ArrowDown";
3443
+ EventKey2["ArrowLeft"] = "ArrowLeft";
3444
+ EventKey2["ArrowRight"] = "ArrowRight";
3445
+ EventKey2["ArrowUp"] = "ArrowUp";
3446
+ EventKey2["End"] = "End";
3447
+ EventKey2["Home"] = "Home";
3448
+ EventKey2["PageDown"] = "PageDown";
3449
+ EventKey2["PageUp"] = "PageUp";
3450
+ return EventKey2;
3451
+ })(EventKey || {});
3452
+ function testUserAgent(re) {
3453
+ if (typeof window === "undefined" || window.navigator == null) return false;
3454
+ return window.navigator.userAgentData?.brands.some((brand) => re.test(brand.brand)) || re.test(window.navigator.userAgent);
3455
+ }
3456
+ function testPlatform(re) {
3457
+ return typeof window !== "undefined" && window.navigator != null ? re.test(window.navigator.userAgentData?.platform || window.navigator.platform) : false;
3458
+ }
3459
+ function isMac() {
3460
+ return testPlatform(/^Mac/i);
3461
+ }
3462
+ function isIPhone() {
3463
+ return testPlatform(/^iPhone/i);
3464
+ }
3465
+ function isIPad() {
3466
+ return testPlatform(/^iPad/i) || isMac() && navigator.maxTouchPoints > 1;
3467
+ }
3468
+ function isIOS() {
3469
+ return isIPhone() || isIPad();
3470
+ }
3471
+ function isAppleDevice() {
3472
+ return isMac() || isIOS();
3473
+ }
3474
+ function isWebKit() {
3475
+ return testUserAgent(/AppleWebKit/i) && !isChrome();
3476
+ }
3477
+ function isChrome() {
3478
+ return testUserAgent(/Chrome/i);
3479
+ }
3480
+ function callHandler(event, handler) {
3481
+ if (handler) {
3482
+ if (isFunction(handler)) handler(event);
3483
+ else handler[0](handler[1], event);
3484
+ }
3485
+ return event?.defaultPrevented;
3486
+ }
3487
+ function composeEventHandlers(handlers) {
3488
+ return (event) => {
3489
+ for (const handler of handlers) callHandler(event, handler);
3490
+ };
3491
+ }
3492
+ function isCtrlKey(e) {
3493
+ if (isMac()) return e.metaKey && !e.ctrlKey;
3494
+ return e.ctrlKey && !e.metaKey;
3495
+ }
3496
+ function focusWithoutScrolling(element) {
3497
+ if (!element) return;
3498
+ if (supportsPreventScroll()) element.focus({ preventScroll: true });
3499
+ else {
3500
+ const scrollableElements = getScrollableElements(element);
3501
+ element.focus();
3502
+ restoreScrollPosition(scrollableElements);
3503
+ }
3504
+ }
3505
+ var supportsPreventScrollCached = null;
3506
+ function supportsPreventScroll() {
3507
+ if (supportsPreventScrollCached == null) {
3508
+ supportsPreventScrollCached = false;
3509
+ try {
3510
+ document.createElement("div").focus({ get preventScroll() {
3511
+ supportsPreventScrollCached = true;
3512
+ return true;
3513
+ } });
3514
+ } catch (e) {}
3515
+ }
3516
+ return supportsPreventScrollCached;
3517
+ }
3518
+ function getScrollableElements(element) {
3519
+ let parent = element.parentNode;
3520
+ const scrollableElements = [];
3521
+ const rootScrollingElement = document.scrollingElement || document.documentElement;
3522
+ while (parent instanceof HTMLElement && parent !== rootScrollingElement) {
3523
+ if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) scrollableElements.push({
3524
+ element: parent,
3525
+ scrollTop: parent.scrollTop,
3526
+ scrollLeft: parent.scrollLeft
3527
+ });
3528
+ parent = parent.parentNode;
3529
+ }
3530
+ if (rootScrollingElement instanceof HTMLElement) scrollableElements.push({
3531
+ element: rootScrollingElement,
3532
+ scrollTop: rootScrollingElement.scrollTop,
3533
+ scrollLeft: rootScrollingElement.scrollLeft
3534
+ });
3535
+ return scrollableElements;
3536
+ }
3537
+ function restoreScrollPosition(scrollableElements) {
3538
+ for (const { element, scrollTop, scrollLeft } of scrollableElements) {
3539
+ element.scrollTop = scrollTop;
3540
+ element.scrollLeft = scrollLeft;
3541
+ }
3542
+ }
3543
+ var focusableElements = [
3544
+ "input:not([type='hidden']):not([disabled])",
3545
+ "select:not([disabled])",
3546
+ "textarea:not([disabled])",
3547
+ "button:not([disabled])",
3548
+ "a[href]",
3549
+ "area[href]",
3550
+ "[tabindex]",
3551
+ "iframe",
3552
+ "object",
3553
+ "embed",
3554
+ "audio[controls]",
3555
+ "video[controls]",
3556
+ "[contenteditable]:not([contenteditable='false'])"
3557
+ ];
3558
+ var tabbableElements = [...focusableElements, "[tabindex]:not([tabindex=\"-1\"]):not([disabled])"];
3559
+ var FOCUSABLE_ELEMENT_SELECTOR = `${focusableElements.join(":not([hidden]),")},[tabindex]:not([disabled]):not([hidden])`;
3560
+ var TABBABLE_ELEMENT_SELECTOR = tabbableElements.join(":not([hidden]):not([tabindex=\"-1\"]),");
3561
+ function getAllTabbableIn(container, includeContainer) {
3562
+ const tabbableElements2 = Array.from(container.querySelectorAll(FOCUSABLE_ELEMENT_SELECTOR)).filter(isTabbable);
3563
+ if (includeContainer && isTabbable(container)) tabbableElements2.unshift(container);
3564
+ tabbableElements2.forEach((element, i) => {
3565
+ if (isFrame(element) && element.contentDocument) {
3566
+ const frameBody = element.contentDocument.body;
3567
+ const allFrameTabbable = getAllTabbableIn(frameBody, false);
3568
+ tabbableElements2.splice(i, 1, ...allFrameTabbable);
3569
+ }
3570
+ });
3571
+ return tabbableElements2;
3572
+ }
3573
+ function isTabbable(element) {
3574
+ return isFocusable(element) && !hasNegativeTabIndex(element);
3575
+ }
3576
+ function isFocusable(element) {
3577
+ return element.matches(FOCUSABLE_ELEMENT_SELECTOR) && isElementVisible(element);
3578
+ }
3579
+ function hasNegativeTabIndex(element) {
3580
+ return Number.parseInt(element.getAttribute("tabindex") || "0", 10) < 0;
3581
+ }
3582
+ function isElementVisible(element, childElement) {
3583
+ return element.nodeName !== "#comment" && isStyleVisible(element) && isAttributeVisible(element, childElement) && (!element.parentElement || isElementVisible(element.parentElement, element));
3584
+ }
3585
+ function isStyleVisible(element) {
3586
+ if (!(element instanceof HTMLElement) && !(element instanceof SVGElement)) return false;
3587
+ const { display, visibility } = element.style;
3588
+ let isVisible = display !== "none" && visibility !== "hidden" && visibility !== "collapse";
3589
+ if (isVisible) {
3590
+ if (!element.ownerDocument.defaultView) return isVisible;
3591
+ const { getComputedStyle } = element.ownerDocument.defaultView;
3592
+ const { display: computedDisplay, visibility: computedVisibility } = getComputedStyle(element);
3593
+ isVisible = computedDisplay !== "none" && computedVisibility !== "hidden" && computedVisibility !== "collapse";
3594
+ }
3595
+ return isVisible;
3596
+ }
3597
+ function isAttributeVisible(element, childElement) {
3598
+ return !element.hasAttribute("hidden") && (element.nodeName === "DETAILS" && childElement && childElement.nodeName !== "SUMMARY" ? element.hasAttribute("open") : true);
3599
+ }
3600
+ function isElementInScope(element, scope) {
3601
+ return scope.some((node) => node.contains(element));
3602
+ }
3603
+ function getFocusableTreeWalker(root, opts, scope) {
3604
+ const selector = opts?.tabbable ? TABBABLE_ELEMENT_SELECTOR : FOCUSABLE_ELEMENT_SELECTOR;
3605
+ const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, { acceptNode(node) {
3606
+ if (opts?.from?.contains(node)) return NodeFilter.FILTER_REJECT;
3607
+ if (node.matches(selector) && isElementVisible(node) && (!scope || isElementInScope(node, scope)) && (!opts?.accept || opts.accept(node))) return NodeFilter.FILTER_ACCEPT;
3608
+ return NodeFilter.FILTER_SKIP;
3609
+ } });
3610
+ if (opts?.from) walker.currentNode = opts.from;
3611
+ return walker;
3612
+ }
3613
+ function noop() {}
3614
+ function snapValueToStep(value, min, max, step) {
3615
+ const remainder = (value - (Number.isNaN(min) ? 0 : min)) % step;
3616
+ let snappedValue = Math.abs(remainder) * 2 >= step ? value + Math.sign(remainder) * (step - Math.abs(remainder)) : value - remainder;
3617
+ if (!Number.isNaN(min)) {
3618
+ if (snappedValue < min) snappedValue = min;
3619
+ else if (!Number.isNaN(max) && snappedValue > max) snappedValue = min + Math.floor((max - min) / step) * step;
3620
+ } else if (!Number.isNaN(max) && snappedValue > max) snappedValue = Math.floor(max / step) * step;
3621
+ const string = step.toString();
3622
+ const index = string.indexOf(".");
3623
+ const precision = index >= 0 ? string.length - index : 0;
3624
+ if (precision > 0) {
3625
+ const pow = 10 ** precision;
3626
+ snappedValue = Math.round(snappedValue * pow) / pow;
3627
+ }
3628
+ return snappedValue;
3629
+ }
3630
+ var getPrecision = (n) => {
3631
+ let e = 1;
3632
+ let precision = 0;
3633
+ while (Math.round(n * e) / e !== n) {
3634
+ e *= 10;
3635
+ precision++;
3636
+ }
3637
+ return precision;
3638
+ };
3639
+ function mergeDefaultProps(defaultProps, props) {
3640
+ return mergeProps(defaultProps, props);
3641
+ }
3642
+ var transitionsByElement = /* @__PURE__ */ new Map();
3643
+ var transitionCallbacks = /* @__PURE__ */ new Set();
3644
+ function setupGlobalEvents() {
3645
+ if (typeof window === "undefined" || document.body === null) return;
3646
+ const onTransitionStart = (e) => {
3647
+ if (!e.target) return;
3648
+ let transitions = transitionsByElement.get(e.target);
3649
+ if (!transitions) {
3650
+ transitions = /* @__PURE__ */ new Set();
3651
+ transitionsByElement.set(e.target, transitions);
3652
+ e.target.addEventListener("transitioncancel", onTransitionEnd);
3653
+ }
3654
+ transitions.add(e.propertyName);
3655
+ };
3656
+ const onTransitionEnd = (e) => {
3657
+ if (!e.target) return;
3658
+ const properties = transitionsByElement.get(e.target);
3659
+ if (!properties) return;
3660
+ properties.delete(e.propertyName);
3661
+ if (properties.size === 0) {
3662
+ e.target.removeEventListener("transitioncancel", onTransitionEnd);
3663
+ transitionsByElement.delete(e.target);
3664
+ }
3665
+ if (transitionsByElement.size === 0) {
3666
+ for (const cb of transitionCallbacks) cb();
3667
+ transitionCallbacks.clear();
3668
+ }
3669
+ };
3670
+ document.body.addEventListener("transitionrun", onTransitionStart);
3671
+ document.body.addEventListener("transitionend", onTransitionEnd);
3672
+ }
3673
+ if (typeof document !== "undefined") {
3674
+ if (document.readyState !== "loading") setupGlobalEvents();
3675
+ else document.addEventListener("DOMContentLoaded", setupGlobalEvents);
3676
+ }
3677
+ function scrollIntoView(scrollView, element) {
3678
+ const offsetX = relativeOffset(scrollView, element, "left");
3679
+ const offsetY = relativeOffset(scrollView, element, "top");
3680
+ const width = element.offsetWidth;
3681
+ const height = element.offsetHeight;
3682
+ let x = scrollView.scrollLeft;
3683
+ let y = scrollView.scrollTop;
3684
+ const maxX = x + scrollView.offsetWidth;
3685
+ const maxY = y + scrollView.offsetHeight;
3686
+ if (offsetX <= x) x = offsetX;
3687
+ else if (offsetX + width > maxX) x += offsetX + width - maxX;
3688
+ if (offsetY <= y) y = offsetY;
3689
+ else if (offsetY + height > maxY) y += offsetY + height - maxY;
3690
+ scrollView.scrollLeft = x;
3691
+ scrollView.scrollTop = y;
3692
+ }
3693
+ function relativeOffset(ancestor, child, axis) {
3694
+ const prop = axis === "left" ? "offsetLeft" : "offsetTop";
3695
+ let sum = 0;
3696
+ while (child.offsetParent) {
3697
+ sum += child[prop];
3698
+ if (child.offsetParent === ancestor) break;
3699
+ if (child.offsetParent.contains(ancestor)) {
3700
+ sum -= ancestor[prop];
3701
+ break;
3702
+ }
3703
+ child = child.offsetParent;
3704
+ }
3705
+ return sum;
3706
+ }
3707
+ var visuallyHiddenStyles = {
3708
+ border: "0",
3709
+ clip: "rect(0 0 0 0)",
3710
+ "clip-path": "inset(50%)",
3711
+ height: "1px",
3712
+ margin: "0 -1px -1px 0",
3713
+ overflow: "hidden",
3714
+ padding: "0",
3715
+ position: "absolute",
3716
+ width: "1px",
3717
+ "white-space": "nowrap"
3718
+ };
3719
+ function createTagName(ref, fallback) {
3720
+ const [tagName, setTagName] = createSignal(stringOrUndefined(fallback?.()));
3721
+ createEffect(() => {
3722
+ setTagName(ref()?.tagName.toLowerCase() || stringOrUndefined(fallback?.()));
3723
+ });
3724
+ return tagName;
3725
+ }
3726
+ function stringOrUndefined(value) {
3727
+ return isString(value) ? value : void 0;
3728
+ }
3729
+ function Polymorphic(props) {
3730
+ const [local, others] = splitProps(props, ["as"]);
3731
+ if (!local.as) throw new Error("[kobalte]: Polymorphic is missing the required `as` prop.");
3732
+ return createComponent(Dynamic, mergeProps(others, { get component() {
3733
+ return local.as;
3734
+ } }));
3735
+ }
3736
+ var __defProp = Object.defineProperty;
3737
+ var __export = (target, all) => {
3738
+ for (var name in all) __defProp(target, name, {
3739
+ get: all[name],
3740
+ enumerable: true
3741
+ });
3742
+ };
3743
+ __export({}, {
3744
+ Button: () => Button,
3745
+ Root: () => ButtonRoot
3746
+ });
3747
+ var BUTTON_INPUT_TYPES = [
3748
+ "button",
3749
+ "color",
3750
+ "file",
3751
+ "image",
3752
+ "reset",
3753
+ "submit"
3754
+ ];
3755
+ function isButton(element) {
3756
+ const tagName = element.tagName.toLowerCase();
3757
+ if (tagName === "button") return true;
3758
+ if (tagName === "input" && element.type) return BUTTON_INPUT_TYPES.indexOf(element.type) !== -1;
3759
+ return false;
3760
+ }
3761
+ function ButtonRoot(props) {
3762
+ let ref;
3763
+ const mergedProps = mergeDefaultProps({ type: "button" }, props);
3764
+ const [local, others] = splitProps(mergedProps, [
3765
+ "ref",
3766
+ "type",
3767
+ "disabled"
3768
+ ]);
3769
+ const tagName = createTagName(() => ref, () => "button");
3770
+ const isNativeButton = createMemo(() => {
3771
+ const elementTagName = tagName();
3772
+ if (elementTagName == null) return false;
3773
+ return isButton({
3774
+ tagName: elementTagName,
3775
+ type: local.type
3776
+ });
3777
+ });
3778
+ const isNativeInput = createMemo(() => {
3779
+ return tagName() === "input";
3780
+ });
3781
+ const isNativeLink = createMemo(() => {
3782
+ return tagName() === "a" && false;
3783
+ });
3784
+ return createComponent(Polymorphic, mergeProps({
3785
+ as: "button",
3786
+ get type() {
3787
+ return isNativeButton() || isNativeInput() ? local.type : void 0;
3788
+ },
3789
+ get role() {
3790
+ return !isNativeButton() && !isNativeLink() ? "button" : void 0;
3791
+ },
3792
+ get tabIndex() {
3793
+ return !isNativeButton() && !isNativeLink() && !local.disabled ? 0 : void 0;
3794
+ },
3795
+ get disabled() {
3796
+ return isNativeButton() || isNativeInput() ? local.disabled : void 0;
3797
+ },
3798
+ get ["aria-disabled"]() {
3799
+ return !isNativeButton() && !isNativeInput() && local.disabled ? true : void 0;
3800
+ },
3801
+ get ["data-disabled"]() {
3802
+ return local.disabled ? "" : void 0;
3803
+ }
3804
+ }, others));
3805
+ }
3806
+ var Button = ButtonRoot;
2491
3807
  var NullProtoObj = /* @__PURE__ */ (() => {
2492
3808
  const e = function() {};
2493
3809
  return e.prototype = Object.create(null), Object.freeze(e.prototype), e;
@@ -4398,6 +5714,768 @@ var signOutAction = action(cloneServerReference(createServerReference("a48619c4-
4398
5714
  });
4399
5715
  });
4400
5716
  })), "sign-out");
5717
+ var DATA_TOP_LAYER_ATTR = "data-kb-top-layer";
5718
+ var originalBodyPointerEvents;
5719
+ var hasDisabledBodyPointerEvents = false;
5720
+ var layers = [];
5721
+ function indexOf(node) {
5722
+ return layers.findIndex((layer) => layer.node === node);
5723
+ }
5724
+ function find(node) {
5725
+ return layers[indexOf(node)];
5726
+ }
5727
+ function isTopMostLayer(node) {
5728
+ return layers.length > 0 && layers[layers.length - 1].node === node;
5729
+ }
5730
+ function getPointerBlockingLayers() {
5731
+ return layers.filter((layer) => layer.isPointerBlocking);
5732
+ }
5733
+ function getTopMostPointerBlockingLayer() {
5734
+ return [...getPointerBlockingLayers()].slice(-1)[0];
5735
+ }
5736
+ function hasPointerBlockingLayer() {
5737
+ return getPointerBlockingLayers().length > 0;
5738
+ }
5739
+ function isBelowPointerBlockingLayer(node) {
5740
+ const highestBlockingIndex = indexOf(getTopMostPointerBlockingLayer()?.node);
5741
+ return indexOf(node) < highestBlockingIndex;
5742
+ }
5743
+ function addLayer(layer) {
5744
+ layers.push(layer);
5745
+ }
5746
+ function removeLayer(node) {
5747
+ const index = indexOf(node);
5748
+ if (index < 0) return;
5749
+ layers.splice(index, 1);
5750
+ }
5751
+ function assignPointerEventToLayers() {
5752
+ for (const { node } of layers) node.style.pointerEvents = isBelowPointerBlockingLayer(node) ? "none" : "auto";
5753
+ }
5754
+ function disableBodyPointerEvents(node) {
5755
+ if (hasPointerBlockingLayer() && !hasDisabledBodyPointerEvents) {
5756
+ const ownerDocument = getDocument(node);
5757
+ originalBodyPointerEvents = document.body.style.pointerEvents;
5758
+ ownerDocument.body.style.pointerEvents = "none";
5759
+ hasDisabledBodyPointerEvents = true;
5760
+ }
5761
+ }
5762
+ function restoreBodyPointerEvents(node) {
5763
+ if (hasPointerBlockingLayer()) return;
5764
+ const ownerDocument = getDocument(node);
5765
+ ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
5766
+ if (ownerDocument.body.style.length === 0) ownerDocument.body.removeAttribute("style");
5767
+ hasDisabledBodyPointerEvents = false;
5768
+ }
5769
+ var layerStack = {
5770
+ layers,
5771
+ isTopMostLayer,
5772
+ hasPointerBlockingLayer,
5773
+ isBelowPointerBlockingLayer,
5774
+ addLayer,
5775
+ removeLayer,
5776
+ indexOf,
5777
+ find,
5778
+ assignPointerEventToLayers,
5779
+ disableBodyPointerEvents,
5780
+ restoreBodyPointerEvents
5781
+ };
5782
+ function createRegisterId(setter) {
5783
+ return (id) => {
5784
+ setter(id);
5785
+ return () => setter(void 0);
5786
+ };
5787
+ }
5788
+ var access = (v) => typeof v === "function" ? v() : v;
5789
+ var createPresence = (props) => {
5790
+ const refStyles = createMemo(() => {
5791
+ const element = access(props.element);
5792
+ if (!element) return;
5793
+ return getComputedStyle(element);
5794
+ });
5795
+ const getAnimationName = () => {
5796
+ return refStyles()?.animationName ?? "none";
5797
+ };
5798
+ const [presentState, setPresentStateInternal] = createSignal(access(props.show) ? "present" : "hidden");
5799
+ const setPresentState = (state) => {
5800
+ setPresentStateInternal(state);
5801
+ props.onStateChange?.(state);
5802
+ };
5803
+ let animationName = "none";
5804
+ createEffect((prevShow) => {
5805
+ const show = access(props.show);
5806
+ untrack(() => {
5807
+ if (prevShow === show) return show;
5808
+ const prevAnimationName = animationName;
5809
+ const currentAnimationName = getAnimationName();
5810
+ if (show) setPresentState("present");
5811
+ else if (currentAnimationName === "none" || refStyles()?.display === "none") setPresentState("hidden");
5812
+ else if (prevShow === true && prevAnimationName !== currentAnimationName) setPresentState("hiding");
5813
+ else setPresentState("hidden");
5814
+ });
5815
+ return show;
5816
+ }, access(props.show));
5817
+ createEffect(() => {
5818
+ const element = access(props.element);
5819
+ if (!element) return;
5820
+ const handleAnimationStart = (event) => {
5821
+ if (event.target === element) animationName = getAnimationName();
5822
+ };
5823
+ const handleAnimationEnd = (event) => {
5824
+ const isCurrentAnimation = getAnimationName().includes(event.animationName);
5825
+ if (event.target === element && isCurrentAnimation && presentState() === "hiding") setPresentState("hidden");
5826
+ };
5827
+ element.addEventListener("animationstart", handleAnimationStart);
5828
+ element.addEventListener("animationcancel", handleAnimationEnd);
5829
+ element.addEventListener("animationend", handleAnimationEnd);
5830
+ onCleanup(() => {
5831
+ element.removeEventListener("animationstart", handleAnimationStart);
5832
+ element.removeEventListener("animationcancel", handleAnimationEnd);
5833
+ element.removeEventListener("animationend", handleAnimationEnd);
5834
+ });
5835
+ });
5836
+ return {
5837
+ present: () => presentState() === "present" || presentState() === "hiding",
5838
+ state: presentState
5839
+ };
5840
+ };
5841
+ var index_default = createPresence;
5842
+ __export({}, {
5843
+ CloseButton: () => ToastCloseButton,
5844
+ Description: () => ToastDescription,
5845
+ List: () => ToastList,
5846
+ ProgressFill: () => ToastProgressFill,
5847
+ ProgressTrack: () => ToastProgressTrack,
5848
+ Region: () => ToastRegion$1,
5849
+ Root: () => ToastRoot,
5850
+ Title: () => ToastTitle,
5851
+ Toast: () => Toast,
5852
+ toaster: () => toaster,
5853
+ useToastContext: () => useToastContext
5854
+ });
5855
+ var ToastContext = createContext();
5856
+ function useToastContext() {
5857
+ const context = useContext(ToastContext);
5858
+ if (context === void 0) throw new Error("[kobalte]: `useToastContext` must be used within a `Toast.Root` component");
5859
+ return context;
5860
+ }
5861
+ function ToastCloseButton(props) {
5862
+ const context = useToastContext();
5863
+ const [local, others] = splitProps(props, ["aria-label", "onClick"]);
5864
+ const onClick = (e) => {
5865
+ callHandler(e, local.onClick);
5866
+ context.close();
5867
+ };
5868
+ return createComponent(ButtonRoot, mergeProps({
5869
+ get ["aria-label"]() {
5870
+ return local["aria-label"] || context.translations().close;
5871
+ },
5872
+ onClick
5873
+ }, others));
5874
+ }
5875
+ function ToastDescription(props) {
5876
+ const context = useToastContext();
5877
+ const mergedProps = mergeDefaultProps({ id: context.generateId("description") }, props);
5878
+ const [local, others] = splitProps(mergedProps, ["id"]);
5879
+ createEffect(() => onCleanup(context.registerDescriptionId(local.id)));
5880
+ return createComponent(Polymorphic, mergeProps({
5881
+ as: "div",
5882
+ get id() {
5883
+ return local.id;
5884
+ }
5885
+ }, others));
5886
+ }
5887
+ var ToastRegionContext = createContext();
5888
+ function useToastRegionContext() {
5889
+ const context = useContext(ToastRegionContext);
5890
+ if (context === void 0) throw new Error("[kobalte]: `useToastRegionContext` must be used within a `Toast.Region` component");
5891
+ return context;
5892
+ }
5893
+ function ToastList(props) {
5894
+ let ref;
5895
+ const context = useToastRegionContext();
5896
+ const [local, others] = splitProps(props, [
5897
+ "ref",
5898
+ "onFocusIn",
5899
+ "onFocusOut",
5900
+ "onPointerMove",
5901
+ "onPointerLeave"
5902
+ ]);
5903
+ const onFocusIn = (e) => {
5904
+ callHandler(e, local.onFocusIn);
5905
+ if (context.pauseOnInteraction() && !context.isPaused()) context.pauseAllTimer();
5906
+ };
5907
+ const onFocusOut = (e) => {
5908
+ callHandler(e, local.onFocusOut);
5909
+ if (!contains(ref, e.relatedTarget)) context.resumeAllTimer();
5910
+ };
5911
+ const onPointerMove = (e) => {
5912
+ callHandler(e, local.onPointerMove);
5913
+ if (context.pauseOnInteraction() && !context.isPaused()) context.pauseAllTimer();
5914
+ };
5915
+ const onPointerLeave = (e) => {
5916
+ callHandler(e, local.onPointerLeave);
5917
+ if (!contains(ref, getDocument(ref).activeElement)) context.resumeAllTimer();
5918
+ };
5919
+ createEffect(on([() => ref, () => context.hotkey()], ([ref2, hotkey]) => {}));
5920
+ createEffect(() => {
5921
+ if (!context.pauseOnPageIdle()) return;
5922
+ const win = getWindow(ref);
5923
+ win.addEventListener("blur", context.pauseAllTimer);
5924
+ win.addEventListener("focus", context.resumeAllTimer);
5925
+ onCleanup(() => {
5926
+ win.removeEventListener("blur", context.pauseAllTimer);
5927
+ win.removeEventListener("focus", context.resumeAllTimer);
5928
+ });
5929
+ });
5930
+ return createComponent(Polymorphic, mergeProps({
5931
+ as: "ol",
5932
+ tabIndex: -1,
5933
+ onFocusIn,
5934
+ onFocusOut,
5935
+ onPointerMove,
5936
+ onPointerLeave
5937
+ }, others, { get children() {
5938
+ return createComponent(For, {
5939
+ get each() {
5940
+ return context.toasts();
5941
+ },
5942
+ children: (toast) => toast.toastComponent({ get toastId() {
5943
+ return toast.id;
5944
+ } })
5945
+ });
5946
+ } }));
5947
+ }
5948
+ function ToastProgressFill(props) {
5949
+ const rootContext = useToastRegionContext();
5950
+ const context = useToastContext();
5951
+ const [local, others] = splitProps(props, ["style"]);
5952
+ const [lifeTime, setLifeTime] = createSignal(100);
5953
+ let totalElapsedTime = 0;
5954
+ createEffect(() => {
5955
+ if (rootContext.isPaused() || context.isPersistent()) return;
5956
+ const intervalId = setInterval(() => {
5957
+ const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - context.closeTimerStartTime() + totalElapsedTime;
5958
+ const life = Math.trunc(100 - elapsedTime / context.duration() * 100);
5959
+ setLifeTime(life < 0 ? 0 : life);
5960
+ });
5961
+ onCleanup(() => {
5962
+ totalElapsedTime += (/* @__PURE__ */ new Date()).getTime() - context.closeTimerStartTime();
5963
+ clearInterval(intervalId);
5964
+ });
5965
+ });
5966
+ return createComponent(Polymorphic, mergeProps({
5967
+ as: "div",
5968
+ get style() {
5969
+ return combineStyle({ "--kb-toast-progress-fill-width": `${lifeTime()}%` }, local.style);
5970
+ }
5971
+ }, others));
5972
+ }
5973
+ function ToastProgressTrack(props) {
5974
+ return createComponent(Polymorphic, mergeProps({
5975
+ as: "div",
5976
+ "aria-hidden": "true",
5977
+ role: "presentation"
5978
+ }, props));
5979
+ }
5980
+ var [state, setState] = createStore({ toasts: [] });
5981
+ function add(toast) {
5982
+ setState("toasts", (prev) => [...prev, toast]);
5983
+ }
5984
+ function get(id) {
5985
+ return state.toasts.find((toast) => toast.id === id);
5986
+ }
5987
+ function update(id, toast) {
5988
+ const index = state.toasts.findIndex((toast2) => toast2.id === id);
5989
+ if (index !== -1) setState("toasts", (prev) => [
5990
+ ...prev.slice(0, index),
5991
+ toast,
5992
+ ...prev.slice(index + 1)
5993
+ ]);
5994
+ }
5995
+ function dismiss(id) {
5996
+ setState("toasts", (toast) => toast.id === id, "dismiss", true);
5997
+ }
5998
+ function remove(id) {
5999
+ setState("toasts", (prev) => prev.filter((toast) => toast.id !== id));
6000
+ }
6001
+ function clear() {
6002
+ setState("toasts", []);
6003
+ }
6004
+ var toastStore = {
6005
+ toasts: () => state.toasts,
6006
+ add,
6007
+ get,
6008
+ update,
6009
+ dismiss,
6010
+ remove,
6011
+ clear
6012
+ };
6013
+ var TOAST_HOTKEY_PLACEHOLDER = "{hotkey}";
6014
+ var TOAST_INTL_TRANSLATIONS = { close: "Close" };
6015
+ var TOAST_REGION_INTL_TRANSLATIONS = { notifications: (hotkeyPlaceholder) => `Notifications (${hotkeyPlaceholder})` };
6016
+ function ToastRegion$1(props) {
6017
+ const mergedProps = mergeDefaultProps({
6018
+ id: `toast-region-${createUniqueId()}`,
6019
+ hotkey: ["altKey", "KeyT"],
6020
+ duration: 5e3,
6021
+ limit: 3,
6022
+ swipeDirection: "right",
6023
+ swipeThreshold: 50,
6024
+ pauseOnInteraction: true,
6025
+ pauseOnPageIdle: true,
6026
+ topLayer: true,
6027
+ translations: TOAST_REGION_INTL_TRANSLATIONS
6028
+ }, props);
6029
+ const [local, others] = splitProps(mergedProps, [
6030
+ "translations",
6031
+ "style",
6032
+ "hotkey",
6033
+ "duration",
6034
+ "limit",
6035
+ "swipeDirection",
6036
+ "swipeThreshold",
6037
+ "pauseOnInteraction",
6038
+ "pauseOnPageIdle",
6039
+ "topLayer",
6040
+ "aria-label",
6041
+ "regionId"
6042
+ ]);
6043
+ const toasts = createMemo(() => toastStore.toasts().filter((toast) => toast.region === local.regionId && toast.dismiss === false).slice(0, local.limit));
6044
+ const [isPaused, setIsPaused] = createSignal(false);
6045
+ const hasToasts = () => toasts().length > 0;
6046
+ const hotkeyLabel = () => {
6047
+ return local.hotkey.join("+").replace(/Key/g, "").replace(/Digit/g, "");
6048
+ };
6049
+ const ariaLabel = () => {
6050
+ return (local["aria-label"] || local.translations.notifications(TOAST_HOTKEY_PLACEHOLDER)).replace(TOAST_HOTKEY_PLACEHOLDER, hotkeyLabel());
6051
+ };
6052
+ const topLayerAttr = () => ({ [DATA_TOP_LAYER_ATTR]: local.topLayer ? "" : void 0 });
6053
+ const context = {
6054
+ isPaused,
6055
+ toasts,
6056
+ hotkey: () => local.hotkey,
6057
+ duration: () => local.duration,
6058
+ swipeDirection: () => local.swipeDirection,
6059
+ swipeThreshold: () => local.swipeThreshold,
6060
+ pauseOnInteraction: () => local.pauseOnInteraction,
6061
+ pauseOnPageIdle: () => local.pauseOnPageIdle,
6062
+ pauseAllTimer: () => setIsPaused(true),
6063
+ resumeAllTimer: () => setIsPaused(false),
6064
+ generateId: createGenerateId(() => others.id)
6065
+ };
6066
+ return createComponent(ToastRegionContext.Provider, {
6067
+ value: context,
6068
+ get children() {
6069
+ return createComponent(Polymorphic, mergeProps({
6070
+ as: "div",
6071
+ role: "region",
6072
+ tabIndex: -1,
6073
+ get ["aria-label"]() {
6074
+ return ariaLabel();
6075
+ },
6076
+ get style() {
6077
+ return combineStyle({ "pointer-events": hasToasts() ? local.topLayer ? "auto" : void 0 : "none" }, local.style);
6078
+ }
6079
+ }, topLayerAttr, others));
6080
+ }
6081
+ });
6082
+ }
6083
+ var TOAST_SWIPE_START_EVENT = "toast.swipeStart";
6084
+ var TOAST_SWIPE_MOVE_EVENT = "toast.swipeMove";
6085
+ var TOAST_SWIPE_CANCEL_EVENT = "toast.swipeCancel";
6086
+ var TOAST_SWIPE_END_EVENT = "toast.swipeEnd";
6087
+ function ToastRoot(props) {
6088
+ const rootContext = useToastRegionContext();
6089
+ const mergedProps = mergeDefaultProps({
6090
+ id: `toast-${createUniqueId()}`,
6091
+ priority: "high",
6092
+ translations: TOAST_INTL_TRANSLATIONS
6093
+ }, props);
6094
+ const [local, others] = splitProps(mergedProps, [
6095
+ "ref",
6096
+ "translations",
6097
+ "toastId",
6098
+ "style",
6099
+ "priority",
6100
+ "duration",
6101
+ "persistent",
6102
+ "onPause",
6103
+ "onResume",
6104
+ "onSwipeStart",
6105
+ "onSwipeMove",
6106
+ "onSwipeCancel",
6107
+ "onSwipeEnd",
6108
+ "onEscapeKeyDown",
6109
+ "onKeyDown",
6110
+ "onPointerDown",
6111
+ "onPointerMove",
6112
+ "onPointerUp"
6113
+ ]);
6114
+ const [isOpen, setIsOpen] = createSignal(true);
6115
+ const [titleId, setTitleId] = createSignal();
6116
+ const [descriptionId, setDescriptionId] = createSignal();
6117
+ const [isAnimationEnabled, setIsAnimationEnabled] = createSignal(true);
6118
+ const [ref, setRef] = createSignal();
6119
+ const { present } = index_default({
6120
+ show: isOpen,
6121
+ element: () => ref() ?? null
6122
+ });
6123
+ const duration = createMemo(() => local.duration || rootContext.duration());
6124
+ let closeTimerId;
6125
+ let closeTimerStartTime = 0;
6126
+ let closeTimerRemainingTime = duration();
6127
+ let pointerStart = null;
6128
+ let swipeDelta = null;
6129
+ const close = () => {
6130
+ setIsOpen(false);
6131
+ setIsAnimationEnabled(true);
6132
+ };
6133
+ const deleteToast = () => {
6134
+ toastStore.remove(local.toastId);
6135
+ };
6136
+ const startTimer = (duration2) => {
6137
+ if (!duration2 || local.persistent) return;
6138
+ window.clearTimeout(closeTimerId);
6139
+ closeTimerStartTime = (/* @__PURE__ */ new Date()).getTime();
6140
+ closeTimerId = window.setTimeout(close, duration2);
6141
+ };
6142
+ const resumeTimer = () => {
6143
+ startTimer(closeTimerRemainingTime);
6144
+ local.onResume?.();
6145
+ };
6146
+ const pauseTimer = () => {
6147
+ const elapsedTime = (/* @__PURE__ */ new Date()).getTime() - closeTimerStartTime;
6148
+ closeTimerRemainingTime = closeTimerRemainingTime - elapsedTime;
6149
+ window.clearTimeout(closeTimerId);
6150
+ local.onPause?.();
6151
+ };
6152
+ const onKeyDown = (e) => {
6153
+ callHandler(e, local.onKeyDown);
6154
+ if (e.key !== "Escape") return;
6155
+ local.onEscapeKeyDown?.(e);
6156
+ if (!e.defaultPrevented) close();
6157
+ };
6158
+ const onPointerDown = (e) => {
6159
+ callHandler(e, local.onPointerDown);
6160
+ if (e.button !== 0) return;
6161
+ pointerStart = {
6162
+ x: e.clientX,
6163
+ y: e.clientY
6164
+ };
6165
+ };
6166
+ const onPointerMove = (e) => {
6167
+ callHandler(e, local.onPointerMove);
6168
+ if (!pointerStart) return;
6169
+ const x = e.clientX - pointerStart.x;
6170
+ const y = e.clientY - pointerStart.y;
6171
+ const hasSwipeMoveStarted = Boolean(swipeDelta);
6172
+ const isHorizontalSwipe = ["left", "right"].includes(rootContext.swipeDirection());
6173
+ const clamp = ["left", "up"].includes(rootContext.swipeDirection()) ? Math.min : Math.max;
6174
+ const clampedX = isHorizontalSwipe ? clamp(0, x) : 0;
6175
+ const clampedY = !isHorizontalSwipe ? clamp(0, y) : 0;
6176
+ const moveStartBuffer = e.pointerType === "touch" ? 10 : 2;
6177
+ const delta = {
6178
+ x: clampedX,
6179
+ y: clampedY
6180
+ };
6181
+ const eventDetail = {
6182
+ originalEvent: e,
6183
+ delta
6184
+ };
6185
+ if (hasSwipeMoveStarted) {
6186
+ swipeDelta = delta;
6187
+ handleAndDispatchCustomEvent(TOAST_SWIPE_MOVE_EVENT, local.onSwipeMove, eventDetail);
6188
+ const { x: x2, y: y2 } = delta;
6189
+ e.currentTarget.setAttribute("data-swipe", "move");
6190
+ e.currentTarget.style.setProperty("--kb-toast-swipe-move-x", `${x2}px`);
6191
+ e.currentTarget.style.setProperty("--kb-toast-swipe-move-y", `${y2}px`);
6192
+ } else if (isDeltaInDirection(delta, rootContext.swipeDirection(), moveStartBuffer)) {
6193
+ swipeDelta = delta;
6194
+ handleAndDispatchCustomEvent(TOAST_SWIPE_START_EVENT, local.onSwipeStart, eventDetail);
6195
+ e.currentTarget.setAttribute("data-swipe", "start");
6196
+ e.target.setPointerCapture(e.pointerId);
6197
+ } else if (Math.abs(x) > moveStartBuffer || Math.abs(y) > moveStartBuffer) pointerStart = null;
6198
+ };
6199
+ const onPointerUp = (e) => {
6200
+ callHandler(e, local.onPointerUp);
6201
+ const delta = swipeDelta;
6202
+ const target = e.target;
6203
+ if (target.hasPointerCapture(e.pointerId)) target.releasePointerCapture(e.pointerId);
6204
+ swipeDelta = null;
6205
+ pointerStart = null;
6206
+ if (delta) {
6207
+ const toast = e.currentTarget;
6208
+ const eventDetail = {
6209
+ originalEvent: e,
6210
+ delta
6211
+ };
6212
+ if (isDeltaInDirection(delta, rootContext.swipeDirection(), rootContext.swipeThreshold())) {
6213
+ handleAndDispatchCustomEvent(TOAST_SWIPE_END_EVENT, local.onSwipeEnd, eventDetail);
6214
+ const { x, y } = delta;
6215
+ e.currentTarget.setAttribute("data-swipe", "end");
6216
+ e.currentTarget.style.removeProperty("--kb-toast-swipe-move-x");
6217
+ e.currentTarget.style.removeProperty("--kb-toast-swipe-move-y");
6218
+ e.currentTarget.style.setProperty("--kb-toast-swipe-end-x", `${x}px`);
6219
+ e.currentTarget.style.setProperty("--kb-toast-swipe-end-y", `${y}px`);
6220
+ close();
6221
+ } else {
6222
+ handleAndDispatchCustomEvent(TOAST_SWIPE_CANCEL_EVENT, local.onSwipeCancel, eventDetail);
6223
+ e.currentTarget.setAttribute("data-swipe", "cancel");
6224
+ e.currentTarget.style.removeProperty("--kb-toast-swipe-move-x");
6225
+ e.currentTarget.style.removeProperty("--kb-toast-swipe-move-y");
6226
+ e.currentTarget.style.removeProperty("--kb-toast-swipe-end-x");
6227
+ e.currentTarget.style.removeProperty("--kb-toast-swipe-end-y");
6228
+ }
6229
+ toast.addEventListener("click", (event) => event.preventDefault(), { once: true });
6230
+ }
6231
+ };
6232
+ onMount(() => {
6233
+ if (rootContext.toasts().find((toast) => toast.id === local.toastId && toast.update)) setIsAnimationEnabled(false);
6234
+ });
6235
+ createEffect(on(() => rootContext.isPaused(), (isPaused) => {
6236
+ if (isPaused) pauseTimer();
6237
+ else resumeTimer();
6238
+ }, { defer: true }));
6239
+ createEffect(on([isOpen, duration], ([isOpen2, duration2]) => {
6240
+ if (isOpen2 && !rootContext.isPaused()) startTimer(duration2);
6241
+ }));
6242
+ createEffect(on(() => toastStore.get(local.toastId)?.dismiss, (dismiss3) => dismiss3 && close()));
6243
+ createEffect(on(() => present(), (isPresent) => !isPresent && deleteToast()));
6244
+ const context = {
6245
+ translations: () => local.translations,
6246
+ close,
6247
+ duration,
6248
+ isPersistent: () => local.persistent ?? false,
6249
+ closeTimerStartTime: () => closeTimerStartTime,
6250
+ generateId: createGenerateId(() => others.id),
6251
+ registerTitleId: createRegisterId(setTitleId),
6252
+ registerDescriptionId: createRegisterId(setDescriptionId)
6253
+ };
6254
+ return createComponent(Show, {
6255
+ get when() {
6256
+ return present();
6257
+ },
6258
+ get children() {
6259
+ return createComponent(ToastContext.Provider, {
6260
+ value: context,
6261
+ get children() {
6262
+ return createComponent(Polymorphic, mergeProps({
6263
+ as: "li",
6264
+ role: "status",
6265
+ tabIndex: 0,
6266
+ get style() {
6267
+ return combineStyle({
6268
+ animation: isAnimationEnabled() ? void 0 : "none",
6269
+ "user-select": "none",
6270
+ "touch-action": "none"
6271
+ }, local.style);
6272
+ },
6273
+ get ["aria-live"]() {
6274
+ return local.priority === "high" ? "assertive" : "polite";
6275
+ },
6276
+ "aria-atomic": "true",
6277
+ get ["aria-labelledby"]() {
6278
+ return titleId();
6279
+ },
6280
+ get ["aria-describedby"]() {
6281
+ return descriptionId();
6282
+ },
6283
+ get ["data-opened"]() {
6284
+ return isOpen() ? "" : void 0;
6285
+ },
6286
+ get ["data-closed"]() {
6287
+ return !isOpen() ? "" : void 0;
6288
+ },
6289
+ get ["data-swipe-direction"]() {
6290
+ return rootContext.swipeDirection();
6291
+ },
6292
+ onKeyDown,
6293
+ onPointerDown,
6294
+ onPointerMove,
6295
+ onPointerUp
6296
+ }, others));
6297
+ }
6298
+ });
6299
+ }
6300
+ });
6301
+ }
6302
+ function isDeltaInDirection(delta, direction, threshold = 0) {
6303
+ const deltaX = Math.abs(delta.x);
6304
+ const deltaY = Math.abs(delta.y);
6305
+ const isDeltaX = deltaX > deltaY;
6306
+ if (direction === "left" || direction === "right") return isDeltaX && deltaX > threshold;
6307
+ return !isDeltaX && deltaY > threshold;
6308
+ }
6309
+ function handleAndDispatchCustomEvent(name, handler, detail) {
6310
+ const currentTarget = detail.originalEvent.currentTarget;
6311
+ const event = new CustomEvent(name, {
6312
+ bubbles: true,
6313
+ cancelable: true,
6314
+ detail
6315
+ });
6316
+ if (handler) currentTarget.addEventListener(name, handler, { once: true });
6317
+ currentTarget.dispatchEvent(event);
6318
+ }
6319
+ function ToastTitle(props) {
6320
+ const context = useToastContext();
6321
+ const mergedProps = mergeDefaultProps({ id: context.generateId("title") }, props);
6322
+ const [local, others] = splitProps(mergedProps, ["id"]);
6323
+ createEffect(() => onCleanup(context.registerTitleId(local.id)));
6324
+ return createComponent(Polymorphic, mergeProps({
6325
+ as: "div",
6326
+ get id() {
6327
+ return local.id;
6328
+ }
6329
+ }, others));
6330
+ }
6331
+ var toastsCounter = 0;
6332
+ function show(toastComponent, options) {
6333
+ const id = toastsCounter++;
6334
+ toastStore.add({
6335
+ id,
6336
+ toastComponent,
6337
+ dismiss: false,
6338
+ update: false,
6339
+ region: options?.region
6340
+ });
6341
+ return id;
6342
+ }
6343
+ function update2(id, toastComponent) {
6344
+ toastStore.update(id, {
6345
+ id,
6346
+ toastComponent,
6347
+ dismiss: false,
6348
+ update: true
6349
+ });
6350
+ }
6351
+ function promise(promise2, toastComponent, options) {
6352
+ const id = show((props) => {
6353
+ return toastComponent({
6354
+ get toastId() {
6355
+ return props.toastId;
6356
+ },
6357
+ state: "pending"
6358
+ });
6359
+ }, options);
6360
+ (isFunction(promise2) ? promise2() : promise2).then((data) => update2(id, (props) => {
6361
+ return toastComponent({
6362
+ get toastId() {
6363
+ return props.toastId;
6364
+ },
6365
+ state: "fulfilled",
6366
+ data
6367
+ });
6368
+ })).catch((error) => update2(id, (props) => {
6369
+ return toastComponent({
6370
+ get toastId() {
6371
+ return props.toastId;
6372
+ },
6373
+ state: "rejected",
6374
+ error
6375
+ });
6376
+ }));
6377
+ return id;
6378
+ }
6379
+ function dismiss2(id) {
6380
+ toastStore.dismiss(id);
6381
+ return id;
6382
+ }
6383
+ function clear2() {
6384
+ toastStore.clear();
6385
+ }
6386
+ var toaster = {
6387
+ show,
6388
+ update: update2,
6389
+ promise,
6390
+ dismiss: dismiss2,
6391
+ clear: clear2
6392
+ };
6393
+ var Toast = Object.assign(ToastRoot, {
6394
+ CloseButton: ToastCloseButton,
6395
+ Description: ToastDescription,
6396
+ List: ToastList,
6397
+ ProgressFill: ToastProgressFill,
6398
+ ProgressTrack: ToastProgressTrack,
6399
+ Region: ToastRegion$1,
6400
+ Title: ToastTitle,
6401
+ toaster
6402
+ });
6403
+ var toast_module_default = {
6404
+ region: "_region_3lsca_19",
6405
+ list: "_list_3lsca_27",
6406
+ toast: "_toast_3lsca_36",
6407
+ success: "_success_3lsca_48",
6408
+ fail: "_fail_3lsca_52",
6409
+ title: "_title_3lsca_56",
6410
+ close: "_close_3lsca_62"
6411
+ };
6412
+ var _tmpl$$4 = ["<span", " aria-hidden=\"true\">×</span>"];
6413
+ var pendingToastKey = "drfed:toast:";
6414
+ var toastMessage = pipe(string(), nonEmpty());
6415
+ var storedToastSchema = pipe(string(), parseJson(), object({
6416
+ message: toastMessage,
6417
+ status: picklist(["success", "fail"])
6418
+ }));
6419
+ function ToastRegion() {
6420
+ onMount(() => {
6421
+ const key = pendingToastKey + globalThis.location.pathname;
6422
+ try {
6423
+ const stored = sessionStorage.getItem(key);
6424
+ sessionStorage.removeItem(key);
6425
+ const result = safeParse(storedToastSchema, stored);
6426
+ if (result.success) showToast(result.output.message, result.output.status);
6427
+ } catch {}
6428
+ });
6429
+ return createComponent(Portal, { get children() {
6430
+ return createComponent(Toast.Region, {
6431
+ get ["class"]() {
6432
+ return toast_module_default.region;
6433
+ },
6434
+ duration: 5e3,
6435
+ get children() {
6436
+ return createComponent(Toast.List, { get ["class"]() {
6437
+ return toast_module_default.list;
6438
+ } });
6439
+ }
6440
+ });
6441
+ } });
6442
+ }
6443
+ function showToast(message, status) {
6444
+ return toaster.show((props) => createComponent(Toast, {
6445
+ get toastId() {
6446
+ return props.toastId;
6447
+ },
6448
+ get ["class"]() {
6449
+ return `${toast_module_default.toast} ${toast_module_default[status]}`;
6450
+ },
6451
+ get children() {
6452
+ return [createComponent(Toast.Title, {
6453
+ get ["class"]() {
6454
+ return toast_module_default.title;
6455
+ },
6456
+ children: message
6457
+ }), createComponent(Toast.CloseButton, {
6458
+ get ["class"]() {
6459
+ return toast_module_default.close;
6460
+ },
6461
+ "aria-label": "Dismiss notification",
6462
+ get children() {
6463
+ return ssr(_tmpl$$4, ssrHydrationKey());
6464
+ }
6465
+ })];
6466
+ }
6467
+ }));
6468
+ }
6469
+ /** Load a fresh page and show a one-time notification there. */
6470
+ function navigateWithToast(path, message, status) {
6471
+ try {
6472
+ sessionStorage.setItem(pendingToastKey + path, JSON.stringify({
6473
+ message,
6474
+ status
6475
+ }));
6476
+ } catch {}
6477
+ globalThis.location.assign(path);
6478
+ }
4401
6479
  var app_exports = /* @__PURE__ */ __exportAll({
4402
6480
  default: () => App$1,
4403
6481
  id$$: () => id$$
@@ -4418,8 +6496,9 @@ var _tmpl$3 = [
4418
6496
  "</div></div>"
4419
6497
  ];
4420
6498
  function App$1() {
6499
+ const environment = createRelayEnvironment();
4421
6500
  return createComponent(RelayEnvironmentProvider, {
4422
- environment: createRelayEnvironment(),
6501
+ environment,
4423
6502
  get children() {
4424
6503
  return createComponent(Router, {
4425
6504
  root: (props) => createComponent(MetaProvider, { get children() {
@@ -6118,4 +8197,4 @@ var protectedHandler = { async fetch(request) {
6118
8197
  return prepared instanceof Response ? prepared : handler.fetch(prepared);
6119
8198
  } };
6120
8199
  //#endregion
6121
- export { cloneServerReference as a, node$4 as c, action as d, protectedHandler as default, useAction as f, createRelayEnvironment as i, node$5 as l, HttpStatusCode as n, createServerReference as o, setSessionCookie as r, node$3 as s, node as t, A as u };
8200
+ export { ssr_exports as $, isFocusable as A, snapValueToStep as B, getAllTabbableIn as C, getWindow as D, getPrecision as E, isWebKit as F, node$3 as G, combineStyle as H, mergeDefaultProps as I, node$6 as J, node$4 as K, noop as L, isMac as M, isNumber as N, isAppleDevice as O, isString as P, Title as Q, removeItemFromArray as R, getActiveElement as S, getFocusableTreeWalker as T, cloneServerReference as U, visuallyHiddenStyles as V, createServerReference as W, action as X, A as Y, useAction as Z, callHandler as _, access as a, createGenerateId as b, layerStack as c, Button as d, protectedHandler as default, useNavigate as et, ButtonRoot as f, EventKey as g, createTagName as h, index_default as i, isFunction as j, isCtrlKey as k, setSessionCookie as l, Polymorphic as m, HttpStatusCode as n, useSearchParams as nt, createRegisterId as o, __export as p, node$5 as q, navigateWithToast as r, DATA_TOP_LAYER_ATTR as s, node as t, useParams as tt, createRelayEnvironment as u, composeEventHandlers as v, getDocument as w, focusWithoutScrolling as x, contains as y, scrollIntoView as z };