@rool-dev/extension 0.3.8 → 0.3.9-dev.0d3e086

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.
@@ -313,6 +313,19 @@ function set_component_context(context) {
313
313
  component_context = context;
314
314
  }
315
315
  /**
316
+ * Retrieves the context that belongs to the closest parent component with the specified `key`.
317
+ * Must be called during component initialisation.
318
+ *
319
+ * [`createContext`](https://svelte.dev/docs/svelte/svelte#createContext) is a type-safe alternative.
320
+ *
321
+ * @template T
322
+ * @param {any} key
323
+ * @returns {T}
324
+ */
325
+ function getContext(key) {
326
+ return get_or_init_context_map("getContext").get(key);
327
+ }
328
+ /**
316
329
  * @param {Record<string, unknown>} props
317
330
  * @param {any} runes
318
331
  * @param {Function} [fn]
@@ -355,6 +368,27 @@ function pop(component) {
355
368
  function is_runes() {
356
369
  return !legacy_mode_flag || component_context !== null && component_context.l === null;
357
370
  }
371
+ /**
372
+ * @param {string} name
373
+ * @returns {Map<unknown, unknown>}
374
+ */
375
+ function get_or_init_context_map(name) {
376
+ if (component_context === null) lifecycle_outside_component(name);
377
+ return component_context.c ??= new Map(get_parent_context(component_context) || void 0);
378
+ }
379
+ /**
380
+ * @param {ComponentContext} component_context
381
+ * @returns {Map<unknown, unknown> | null}
382
+ */
383
+ function get_parent_context(component_context) {
384
+ let parent = component_context.p;
385
+ while (parent !== null) {
386
+ const context_map = parent.c;
387
+ if (context_map !== null) return context_map;
388
+ parent = parent.p;
389
+ }
390
+ return null;
391
+ }
358
392
  //#endregion
359
393
  //#region ../../node_modules/.pnpm/svelte@5.54.0/node_modules/svelte/src/internal/client/dom/task.js
360
394
  /** @type {Array<() => void>} */
@@ -3179,6 +3213,52 @@ function from_html(content, flags) {
3179
3213
  };
3180
3214
  }
3181
3215
  /**
3216
+ * @param {string} content
3217
+ * @param {number} flags
3218
+ * @param {'svg' | 'math'} ns
3219
+ * @returns {() => Node | Node[]}
3220
+ */
3221
+ /* @__NO_SIDE_EFFECTS__ */
3222
+ function from_namespace(content, flags, ns = "svg") {
3223
+ /**
3224
+ * Whether or not the first item is a text/element node. If not, we need to
3225
+ * create an additional comment node to act as `effect.nodes.start`
3226
+ */
3227
+ var has_start = !content.startsWith("<!>");
3228
+ var is_fragment = (flags & 1) !== 0;
3229
+ var wrapped = `<${ns}>${has_start ? content : "<!>" + content}</${ns}>`;
3230
+ /** @type {Element | DocumentFragment} */
3231
+ var node;
3232
+ return () => {
3233
+ if (hydrating) {
3234
+ assign_nodes(hydrate_node, null);
3235
+ return hydrate_node;
3236
+ }
3237
+ if (!node) {
3238
+ var root = /* @__PURE__ */ get_first_child(create_fragment_from_html(wrapped));
3239
+ if (is_fragment) {
3240
+ node = document.createDocumentFragment();
3241
+ while (/* @__PURE__ */ get_first_child(root)) node.appendChild(/* @__PURE__ */ get_first_child(root));
3242
+ } else node = /* @__PURE__ */ get_first_child(root);
3243
+ }
3244
+ var clone = node.cloneNode(true);
3245
+ if (is_fragment) {
3246
+ var start = /* @__PURE__ */ get_first_child(clone);
3247
+ var end = clone.lastChild;
3248
+ assign_nodes(start, end);
3249
+ } else assign_nodes(clone, clone);
3250
+ return clone;
3251
+ };
3252
+ }
3253
+ /**
3254
+ * @param {string} content
3255
+ * @param {number} flags
3256
+ */
3257
+ /* @__NO_SIDE_EFFECTS__ */
3258
+ function from_svg(content, flags) {
3259
+ return /* @__PURE__ */ from_namespace(content, flags, "svg");
3260
+ }
3261
+ /**
3182
3262
  * Don't mark this as side-effect-free, hydration needs to walk all nodes
3183
3263
  * @param {any} value
3184
3264
  */
@@ -4119,48 +4199,6 @@ function bind_this(element_or_component = {}, update, get_value, get_parts) {
4119
4199
  //#region ../../node_modules/.pnpm/svelte@5.54.0/node_modules/svelte/src/internal/client/reactivity/props.js
4120
4200
  /** @import { Effect, Source } from './types.js' */
4121
4201
  /**
4122
- * The proxy handler for rest props (i.e. `const { x, ...rest } = $props()`).
4123
- * Is passed the full `$$props` object and excludes the named props.
4124
- * @type {ProxyHandler<{ props: Record<string | symbol, unknown>, exclude: Array<string | symbol>, name?: string }>}}
4125
- */
4126
- var rest_props_handler = {
4127
- get(target, key) {
4128
- if (target.exclude.includes(key)) return;
4129
- return target.props[key];
4130
- },
4131
- set(target, key) {
4132
- return false;
4133
- },
4134
- getOwnPropertyDescriptor(target, key) {
4135
- if (target.exclude.includes(key)) return;
4136
- if (key in target.props) return {
4137
- enumerable: true,
4138
- configurable: true,
4139
- value: target.props[key]
4140
- };
4141
- },
4142
- has(target, key) {
4143
- if (target.exclude.includes(key)) return false;
4144
- return key in target.props;
4145
- },
4146
- ownKeys(target) {
4147
- return Reflect.ownKeys(target.props).filter((key) => !target.exclude.includes(key));
4148
- }
4149
- };
4150
- /**
4151
- * @param {Record<string, unknown>} props
4152
- * @param {string[]} exclude
4153
- * @param {string} [name]
4154
- * @returns {Record<string, unknown>}
4155
- */
4156
- /* @__NO_SIDE_EFFECTS__ */
4157
- function rest_props(props, exclude, name) {
4158
- return new Proxy({
4159
- props,
4160
- exclude
4161
- }, rest_props_handler);
4162
- }
4163
- /**
4164
4202
  * This function is responsible for synchronizing a possibly bound prop with the inner component state.
4165
4203
  * It is used whenever the compiler sees that the component writes to the prop, or when it has a default prop_value.
4166
4204
  * @template V
@@ -8470,14 +8508,10 @@ var RoolClient = class extends EventEmitter {
8470
8508
  this.authManager.initialize();
8471
8509
  const authenticated = await this.isAuthenticated();
8472
8510
  if (authenticated) {
8473
- try {
8474
- const user = await this.getCurrentUser();
8475
- this._currentUser = user;
8476
- this._storageCache = user.storage ?? {};
8477
- this.saveStorageCache();
8478
- } catch (error) {
8479
- this.logger.warn("[RoolClient] Failed to sync user storage:", error);
8480
- }
8511
+ const user = await this.getCurrentUser();
8512
+ this._currentUser = user;
8513
+ this._storageCache = user.storage ?? {};
8514
+ this.saveStorageCache();
8481
8515
  await this.ensureSubscribed();
8482
8516
  }
8483
8517
  return authenticated;
@@ -9011,12 +9045,14 @@ var BridgeHost = class {
9011
9045
  channel;
9012
9046
  iframe;
9013
9047
  user;
9048
+ _colorScheme;
9014
9049
  eventCleanups = [];
9015
9050
  _destroyed = false;
9016
9051
  constructor(options) {
9017
9052
  this.channel = options.channel;
9018
9053
  this.iframe = options.iframe;
9019
9054
  this.user = options.user;
9055
+ this._colorScheme = options.colorScheme ?? "light";
9020
9056
  window.addEventListener("message", this._onMessage);
9021
9057
  for (const eventName of FORWARDED_EVENTS) {
9022
9058
  const handler = (data) => {
@@ -9042,6 +9078,7 @@ var BridgeHost = class {
9042
9078
  linkAccess: this.channel.linkAccess,
9043
9079
  userId: this.channel.userId,
9044
9080
  user: this.user,
9081
+ colorScheme: this._colorScheme,
9045
9082
  schema: this.channel.getSchema(),
9046
9083
  metadata: this.channel.getAllMetadata()
9047
9084
  };
@@ -9097,6 +9134,15 @@ var BridgeHost = class {
9097
9134
  });
9098
9135
  }
9099
9136
  }
9137
+ /** Update the color scheme and push to the extension iframe. */
9138
+ setColorScheme(colorScheme) {
9139
+ this._colorScheme = colorScheme;
9140
+ this._postToApp({
9141
+ type: "rool:event",
9142
+ name: "colorSchemeChanged",
9143
+ data: { colorScheme }
9144
+ });
9145
+ }
9100
9146
  _postToApp(message) {
9101
9147
  if (this._destroyed) return;
9102
9148
  this.iframe.contentWindow?.postMessage(message, "*");
@@ -9184,6 +9230,7 @@ var DevHostController = class {
9184
9230
  publishedExtensions = [];
9185
9231
  installedExtensionIds = [];
9186
9232
  sidebarCollapsed = false;
9233
+ colorScheme = "light";
9187
9234
  publishState = "idle";
9188
9235
  publishMessage = null;
9189
9236
  publishUrl = null;
@@ -9203,6 +9250,7 @@ var DevHostController = class {
9203
9250
  this._spaceKey = `rool-devhost:${options.channelId}:space`;
9204
9251
  this.env = this._getSavedEnv();
9205
9252
  this.sidebarCollapsed = storageGet("rool-devhost:collapsed") === "true";
9253
+ this.colorScheme = this._getSavedColorScheme();
9206
9254
  }
9207
9255
  get tabs() {
9208
9256
  return [{
@@ -9404,6 +9452,12 @@ var DevHostController = class {
9404
9452
  storageSet("rool-devhost:collapsed", String(this.sidebarCollapsed));
9405
9453
  this._onChange();
9406
9454
  }
9455
+ toggleColorScheme() {
9456
+ this.colorScheme = this.colorScheme === "light" ? "dark" : "light";
9457
+ storageSet("rool-devhost:colorScheme", this.colorScheme);
9458
+ for (const host of Object.values(this.bridgeHosts)) host.setColorScheme(this.colorScheme);
9459
+ this._onChange();
9460
+ }
9407
9461
  registerIframe(tabId, el) {
9408
9462
  this.iframeEls[tabId] = el;
9409
9463
  this._bindBridge(tabId);
@@ -9429,7 +9483,8 @@ var DevHostController = class {
9429
9483
  if (el && ch && !this.bridgeHosts[tabId]) this.bridgeHosts[tabId] = createBridgeHost({
9430
9484
  channel: ch,
9431
9485
  iframe: el,
9432
- user: this._bridgeUser
9486
+ user: this._bridgeUser,
9487
+ colorScheme: this.colorScheme
9433
9488
  });
9434
9489
  }
9435
9490
  _bindAllBridges() {
@@ -9472,6 +9527,11 @@ var DevHostController = class {
9472
9527
  if (saved === "local" || saved === "dev" || saved === "prod") return saved;
9473
9528
  return "prod";
9474
9529
  }
9530
+ _getSavedColorScheme() {
9531
+ const saved = storageGet("rool-devhost:colorScheme");
9532
+ if (saved === "light" || saved === "dark") return saved;
9533
+ return window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
9534
+ }
9475
9535
  };
9476
9536
  //#endregion
9477
9537
  //#region src/dev/Sidebar.svelte
@@ -9498,7 +9558,9 @@ var root_19 = /* @__PURE__ */ from_html(`<div class="absolute top-full mt-1 left
9498
9558
  var root_28 = /* @__PURE__ */ from_html(`<a target="_blank" rel="noopener noreferrer" class="block text-[11px] text-indigo-500 hover:text-indigo-600 mt-1.5 truncate"> </a>`);
9499
9559
  var root_29 = /* @__PURE__ */ from_html(`<div class="text-[11px] text-red-500 mt-1.5"> </div>`);
9500
9560
  var root_22 = /* @__PURE__ */ from_html(`<div class="px-4 py-3 border-b border-slate-100"><div class="text-[10px] font-semibold text-slate-400 uppercase tracking-wider mb-1.5">Publish</div> <button><!></button> <!></div>`);
9501
- var root_2$1 = /* @__PURE__ */ from_html(`<div class="w-[280px] shrink-0 bg-white border-r border-slate-200 flex flex-col overflow-y-auto"><div class="px-4 pt-4 pb-3 border-b border-slate-100"><div class="flex items-start justify-between mb-1"><!> <button class="p-1 -mr-1 text-slate-400 hover:text-slate-600 transition-colors shrink-0" title="Collapse sidebar"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"></path></svg></button></div> <!> <!> <!></div> <!> <!> <!> <div class="px-4 py-3 border-b border-slate-100"><div class="text-[10px] font-semibold text-slate-400 uppercase tracking-wider mb-1.5">Environment</div> <div class="flex rounded-md border border-slate-200 overflow-hidden"><button>Local</button> <button>Dev</button> <button>Prod</button></div> <div class="text-[10px] text-slate-400 mt-1 font-mono"> </div></div> <div class="px-4 py-3 border-b border-slate-100"><div class="text-[10px] font-semibold text-slate-400 uppercase tracking-wider mb-1.5">Space</div> <div class="relative" data-dropdown=""><button type="button"> <svg class="absolute right-2.5 top-1/2 -translate-y-1/2 text-slate-400 pointer-events-none" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"></path></svg></button> <!></div> <div class="text-[11px] text-slate-400 leading-normal mt-1.5"><span></span> </div></div> <!> <div class="px-4 py-3 mt-auto flex items-center justify-between"><a href="https://docs.rool.dev/app" target="_blank" rel="noopener noreferrer" class="text-[11px] text-slate-400 hover:text-indigo-500 transition-colors">Documentation</a> <button class="text-[11px] text-slate-400 hover:text-red-500 transition-colors">Sign out</button></div></div>`);
9561
+ var root_30 = /* @__PURE__ */ from_svg(`<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>`);
9562
+ var root_31 = /* @__PURE__ */ from_svg(`<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>`);
9563
+ var root_2$1 = /* @__PURE__ */ from_html(`<div class="w-[280px] shrink-0 bg-white border-r border-slate-200 flex flex-col overflow-y-auto"><div class="px-4 pt-4 pb-3 border-b border-slate-100"><div class="flex items-start justify-between mb-1"><!> <button class="p-1 -mr-1 text-slate-400 hover:text-slate-600 transition-colors shrink-0" title="Collapse sidebar"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 18l-6-6 6-6"></path></svg></button></div> <!> <!> <!></div> <!> <!> <!> <div class="px-4 py-3 border-b border-slate-100"><div class="text-[10px] font-semibold text-slate-400 uppercase tracking-wider mb-1.5">Environment</div> <div class="flex rounded-md border border-slate-200 overflow-hidden"><button>Local</button> <button>Dev</button> <button>Prod</button></div> <div class="text-[10px] text-slate-400 mt-1 font-mono"> </div></div> <div class="px-4 py-3 border-b border-slate-100"><div class="text-[10px] font-semibold text-slate-400 uppercase tracking-wider mb-1.5">Space</div> <div class="relative" data-dropdown=""><button type="button"> <svg class="absolute right-2.5 top-1/2 -translate-y-1/2 text-slate-400 pointer-events-none" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 9l6 6 6-6"></path></svg></button> <!></div> <div class="text-[11px] text-slate-400 leading-normal mt-1.5"><span></span> </div></div> <!> <div class="px-4 py-3 mt-auto flex items-center justify-between"><a href="https://docs.rool.dev/extension" target="_blank" rel="noopener noreferrer" class="text-[11px] text-slate-400 hover:text-indigo-500 transition-colors">Documentation</a> <button class="p-1 text-slate-400 hover:text-indigo-500 transition-colors"><!></button> <button class="text-[11px] text-slate-400 hover:text-red-500 transition-colors">Sign out</button></div></div>`);
9502
9564
  function Sidebar($$anchor, $$props) {
9503
9565
  push($$props, true);
9504
9566
  let dropdownOpen = prop($$props, "dropdownOpen", 15);
@@ -9519,7 +9581,7 @@ function Sidebar($$anchor, $$props) {
9519
9581
  delegated("click", button, () => $$props.controller.toggleSidebar());
9520
9582
  append($$anchor, div);
9521
9583
  };
9522
- var alternate_2 = ($$anchor) => {
9584
+ var alternate_3 = ($$anchor) => {
9523
9585
  var div_2 = root_2$1();
9524
9586
  var div_3 = child(div_2);
9525
9587
  var div_4 = child(div_3);
@@ -9826,6 +9888,19 @@ function Sidebar($$anchor, $$props) {
9826
9888
  });
9827
9889
  var div_38 = sibling(node_14, 2);
9828
9890
  var button_8 = sibling(child(div_38), 2);
9891
+ var node_17 = child(button_8);
9892
+ var consequent_22 = ($$anchor) => {
9893
+ append($$anchor, root_30());
9894
+ };
9895
+ var alternate_2 = ($$anchor) => {
9896
+ append($$anchor, root_31());
9897
+ };
9898
+ if_block(node_17, ($$render) => {
9899
+ if ($$props.colorScheme === "light") $$render(consequent_22);
9900
+ else $$render(alternate_2, -1);
9901
+ });
9902
+ reset(button_8);
9903
+ var button_9 = sibling(button_8, 2);
9829
9904
  reset(div_38);
9830
9905
  reset(div_2);
9831
9906
  template_effect(() => {
@@ -9837,6 +9912,7 @@ function Sidebar($$anchor, $$props) {
9837
9912
  set_text(text_12, `${get(selectedSpace)?.name ?? "Select a space..." ?? ""} `);
9838
9913
  set_class(span_6, 1, `inline-block w-1.5 h-1.5 rounded-full mr-1 align-middle ${$$props.statusState === "ok" ? "bg-green-500" : $$props.statusState === "loading" ? "bg-amber-500" : "bg-slate-400"}`);
9839
9914
  set_text(text_14, ` ${$$props.statusText ?? ""}`);
9915
+ set_attribute(button_8, "title", $$props.colorScheme === "light" ? "Switch to dark mode" : "Switch to light mode");
9840
9916
  });
9841
9917
  delegated("click", button_1, () => $$props.controller.toggleSidebar());
9842
9918
  delegated("click", button_2, () => $$props.controller.switchEnv("local"));
@@ -9846,12 +9922,13 @@ function Sidebar($$anchor, $$props) {
9846
9922
  e.stopPropagation();
9847
9923
  dropdownOpen(!dropdownOpen());
9848
9924
  });
9849
- delegated("click", button_8, () => $$props.controller.logout());
9925
+ delegated("click", button_8, () => $$props.controller.toggleColorScheme());
9926
+ delegated("click", button_9, () => $$props.controller.logout());
9850
9927
  append($$anchor, div_2);
9851
9928
  };
9852
9929
  if_block(node, ($$render) => {
9853
9930
  if ($$props.sidebarCollapsed) $$render(consequent);
9854
- else $$render(alternate_2, -1);
9931
+ else $$render(alternate_3, -1);
9855
9932
  });
9856
9933
  append($$anchor, fragment);
9857
9934
  pop();
@@ -15244,11 +15321,7 @@ var root_1 = /* @__PURE__ */ from_html(`<div class="flex items-center justify-ce
15244
15321
  var root$1 = /* @__PURE__ */ from_html(`<!> <div class="flex-1 min-w-0 flex flex-col"><!></div>`, 1);
15245
15322
  function HostShell($$anchor, $$props) {
15246
15323
  push($$props, true);
15247
- const props = /* @__PURE__ */ rest_props($$props, [
15248
- "$$slots",
15249
- "$$events",
15250
- "$$legacy"
15251
- ]);
15324
+ const { channelId, extensionUrl, manifest, manifestError } = getContext("hostConfig");
15252
15325
  let spaces = /* @__PURE__ */ state(proxy([]));
15253
15326
  let currentSpaceId = /* @__PURE__ */ state(null);
15254
15327
  let statusText = /* @__PURE__ */ state("Initializing...");
@@ -15259,11 +15332,17 @@ function HostShell($$anchor, $$props) {
15259
15332
  let publishedExtensions = /* @__PURE__ */ state(proxy([]));
15260
15333
  let installedExtensionIds = /* @__PURE__ */ state(proxy([]));
15261
15334
  let tabs = /* @__PURE__ */ state(proxy([]));
15335
+ let colorScheme = /* @__PURE__ */ state("light");
15262
15336
  let publishState = /* @__PURE__ */ state("idle");
15263
15337
  let publishMessage = /* @__PURE__ */ state(null);
15264
15338
  let publishUrl = /* @__PURE__ */ state(null);
15265
15339
  let dropdownOpen = /* @__PURE__ */ state(false);
15266
- const controller = new DevHostController(props, syncState, tick);
15340
+ const controller = new DevHostController({
15341
+ channelId,
15342
+ extensionUrl,
15343
+ manifest,
15344
+ manifestError
15345
+ }, syncState, tick);
15267
15346
  function syncState() {
15268
15347
  set(spaces, controller.spaces, true);
15269
15348
  set(currentSpaceId, controller.currentSpaceId, true);
@@ -15271,6 +15350,7 @@ function HostShell($$anchor, $$props) {
15271
15350
  set(statusState, controller.statusState, true);
15272
15351
  set(placeholderText, controller.placeholderText, true);
15273
15352
  set(sidebarCollapsed, controller.sidebarCollapsed, true);
15353
+ set(colorScheme, controller.colorScheme, true);
15274
15354
  set(env, controller.env, true);
15275
15355
  set(publishedExtensions, controller.publishedExtensions, true);
15276
15356
  set(installedExtensionIds, controller.installedExtensionIds, true);
@@ -15279,7 +15359,7 @@ function HostShell($$anchor, $$props) {
15279
15359
  set(publishMessage, controller.publishMessage, true);
15280
15360
  set(publishUrl, controller.publishUrl, true);
15281
15361
  }
15282
- let uninstalledExtensions = /* @__PURE__ */ user_derived(() => get(publishedExtensions).filter((ext) => ext.extensionId !== $$props.channelId && !get(installedExtensionIds).includes(ext.extensionId)));
15362
+ let uninstalledExtensions = /* @__PURE__ */ user_derived(() => get(publishedExtensions).filter((ext) => ext.extensionId !== channelId && !get(installedExtensionIds).includes(ext.extensionId)));
15283
15363
  syncState();
15284
15364
  onMount(() => {
15285
15365
  controller.boot();
@@ -15296,10 +15376,10 @@ function HostShell($$anchor, $$props) {
15296
15376
  return controller;
15297
15377
  },
15298
15378
  get manifest() {
15299
- return $$props.manifest;
15379
+ return manifest;
15300
15380
  },
15301
15381
  get manifestError() {
15302
- return $$props.manifestError;
15382
+ return manifestError;
15303
15383
  },
15304
15384
  get spaces() {
15305
15385
  return get(spaces);
@@ -15319,6 +15399,9 @@ function HostShell($$anchor, $$props) {
15319
15399
  get sidebarCollapsed() {
15320
15400
  return get(sidebarCollapsed);
15321
15401
  },
15402
+ get colorScheme() {
15403
+ return get(colorScheme);
15404
+ },
15322
15405
  get publishState() {
15323
15406
  return get(publishState);
15324
15407
  },
@@ -15369,7 +15452,7 @@ function HostShell($$anchor, $$props) {
15369
15452
  }
15370
15453
  //#endregion
15371
15454
  //#region src/dev/app.css?inline
15372
- var app_default = "/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n@layer properties {\n @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n }\n}\n\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% .013 17.38);\n --color-red-100: oklch(93.6% .032 17.717);\n --color-red-200: oklch(88.5% .062 18.334);\n --color-red-500: oklch(63.7% .237 25.331);\n --color-red-600: oklch(57.7% .245 27.325);\n --color-amber-50: oklch(98.7% .022 95.277);\n --color-amber-200: oklch(92.4% .12 95.746);\n --color-amber-500: oklch(76.9% .188 70.08);\n --color-amber-700: oklch(55.5% .163 48.998);\n --color-green-50: oklch(98.2% .018 155.826);\n --color-green-200: oklch(92.5% .084 155.995);\n --color-green-500: oklch(72.3% .219 149.579);\n --color-green-600: oklch(62.7% .194 149.214);\n --color-emerald-50: oklch(97.9% .021 166.113);\n --color-emerald-100: oklch(95% .052 163.051);\n --color-emerald-200: oklch(90.5% .093 164.15);\n --color-emerald-300: oklch(84.5% .143 164.978);\n --color-emerald-500: oklch(69.6% .17 162.48);\n --color-emerald-600: oklch(59.6% .145 163.225);\n --color-emerald-700: oklch(50.8% .118 165.612);\n --color-blue-200: oklch(88.2% .059 254.128);\n --color-blue-600: oklch(54.6% .245 262.881);\n --color-indigo-50: oklch(96.2% .018 272.314);\n --color-indigo-100: oklch(93% .034 272.788);\n --color-indigo-400: oklch(67.3% .182 276.935);\n --color-indigo-500: oklch(58.5% .233 277.117);\n --color-indigo-600: oklch(51.1% .262 276.966);\n --color-violet-600: oklch(54.1% .281 293.009);\n --color-slate-50: oklch(98.4% .003 247.858);\n --color-slate-100: oklch(96.8% .007 247.896);\n --color-slate-200: oklch(92.9% .013 255.508);\n --color-slate-300: oklch(86.9% .022 252.894);\n --color-slate-400: oklch(70.4% .04 256.788);\n --color-slate-500: oklch(55.4% .046 257.417);\n --color-slate-600: oklch(44.6% .043 257.281);\n --color-slate-700: oklch(37.2% .044 257.287);\n --color-slate-800: oklch(27.9% .041 260.031);\n --color-white: #fff;\n --spacing: .25rem;\n --text-xs: .75rem;\n --text-xs--line-height: calc(1 / .75);\n --text-sm: .875rem;\n --text-sm--line-height: calc(1.25 / .875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-wide: .025em;\n --tracking-wider: .05em;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --radius-md: .375rem;\n --radius-lg: .5rem;\n --default-transition-duration: .15s;\n --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n\n@layer base {\n *, :after, :before, ::backdrop {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n ::file-selector-button {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n html, :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n line-height: 1.5;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n\n b, strong {\n font-weight: bolder;\n }\n\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n\n small {\n font-size: 80%;\n }\n\n sub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n\n sub {\n bottom: -.25em;\n }\n\n sup {\n top: -.5em;\n }\n\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n\n :-moz-focusring {\n outline: auto;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n summary {\n display: list-item;\n }\n\n ol, ul, menu {\n list-style: none;\n }\n\n img, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n }\n\n img, video {\n max-width: 100%;\n height: auto;\n }\n\n button, input, select, optgroup, textarea {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n\n ::placeholder {\n opacity: 1;\n }\n\n @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n\n textarea {\n resize: vertical;\n }\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n\n ::-webkit-datetime-edit {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-year-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-month-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-day-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-hour-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-minute-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-second-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-millisecond-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n\n :-moz-ui-invalid {\n box-shadow: none;\n }\n\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]) {\n appearance: button;\n }\n\n ::file-selector-button {\n appearance: button;\n }\n\n ::-webkit-inner-spin-button {\n height: auto;\n }\n\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n\n@layer components;\n\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n\n .visible {\n visibility: visible;\n }\n\n .absolute {\n position: absolute;\n }\n\n .relative {\n position: relative;\n }\n\n .end {\n inset-inline-end: var(--spacing);\n }\n\n .top-1\\/2 {\n top: 50%;\n }\n\n .top-full {\n top: 100%;\n }\n\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n\n .right-2\\.5 {\n right: calc(var(--spacing) * 2.5);\n }\n\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n\n .z-10 {\n z-index: 10;\n }\n\n .z-50 {\n z-index: 50;\n }\n\n .mx-3 {\n margin-inline: calc(var(--spacing) * 3);\n }\n\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * .5);\n }\n\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n\n .mt-auto {\n margin-top: auto;\n }\n\n .-mr-1 {\n margin-right: calc(var(--spacing) * -1);\n }\n\n .mr-0\\.5 {\n margin-right: calc(var(--spacing) * .5);\n }\n\n .mr-1 {\n margin-right: calc(var(--spacing) * 1);\n }\n\n .-mb-px {\n margin-bottom: -1px;\n }\n\n .mb-0\\.5 {\n margin-bottom: calc(var(--spacing) * .5);\n }\n\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n\n .ml-1\\.5 {\n margin-left: calc(var(--spacing) * 1.5);\n }\n\n .ml-auto {\n margin-left: auto;\n }\n\n .block {\n display: block;\n }\n\n .flex {\n display: flex;\n }\n\n .grid {\n display: grid;\n }\n\n .hidden {\n display: none;\n }\n\n .inline-block {\n display: inline-block;\n }\n\n .inline-flex {\n display: inline-flex;\n }\n\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n\n .h-full {\n height: 100%;\n }\n\n .max-h-24 {\n max-height: calc(var(--spacing) * 24);\n }\n\n .max-h-60 {\n max-height: calc(var(--spacing) * 60);\n }\n\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n\n .w-1\\.5 {\n width: calc(var(--spacing) * 1.5);\n }\n\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n\n .w-\\[280px\\] {\n width: 280px;\n }\n\n .w-full {\n width: 100%;\n }\n\n .max-w-\\[360px\\] {\n max-width: 360px;\n }\n\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n\n .min-w-full {\n min-width: 100%;\n }\n\n .flex-1 {\n flex: 1;\n }\n\n .shrink {\n flex-shrink: 1;\n }\n\n .shrink-0 {\n flex-shrink: 0;\n }\n\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .cursor-grab {\n cursor: grab;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .cursor-wait {\n cursor: wait;\n }\n\n .flex-col {\n flex-direction: column;\n }\n\n .items-baseline {\n align-items: baseline;\n }\n\n .items-center {\n align-items: center;\n }\n\n .items-end {\n align-items: flex-end;\n }\n\n .items-start {\n align-items: flex-start;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n\n :where(.space-y-0\\.5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-2\\.5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n .truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .overflow-auto {\n overflow: auto;\n }\n\n .overflow-hidden {\n overflow: hidden;\n }\n\n .overflow-y-auto {\n overflow-y: auto;\n }\n\n .rounded {\n border-radius: .25rem;\n }\n\n .rounded-full {\n border-radius: 3.40282e38px;\n }\n\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n\n .rounded-md {\n border-radius: var(--radius-md);\n }\n\n .rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n }\n\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n\n .border-amber-200 {\n border-color: var(--color-amber-200);\n }\n\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n\n .border-emerald-200 {\n border-color: var(--color-emerald-200);\n }\n\n .border-emerald-300 {\n border-color: var(--color-emerald-300);\n }\n\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n\n .border-indigo-500 {\n border-color: var(--color-indigo-500);\n }\n\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n\n .border-slate-100 {\n border-color: var(--color-slate-100);\n }\n\n .border-slate-200 {\n border-color: var(--color-slate-200);\n }\n\n .border-transparent {\n border-color: #0000;\n }\n\n .border-b-white {\n border-bottom-color: var(--color-white);\n }\n\n .bg-amber-50 {\n background-color: var(--color-amber-50);\n }\n\n .bg-amber-500 {\n background-color: var(--color-amber-500);\n }\n\n .bg-blue-600 {\n background-color: var(--color-blue-600);\n }\n\n .bg-emerald-50 {\n background-color: var(--color-emerald-50);\n }\n\n .bg-emerald-100 {\n background-color: var(--color-emerald-100);\n }\n\n .bg-emerald-500 {\n background-color: var(--color-emerald-500);\n }\n\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n\n .bg-indigo-50 {\n background-color: var(--color-indigo-50);\n }\n\n .bg-indigo-100 {\n background-color: var(--color-indigo-100);\n }\n\n .bg-indigo-500 {\n background-color: var(--color-indigo-500);\n }\n\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n\n .bg-slate-50 {\n background-color: var(--color-slate-50);\n }\n\n .bg-slate-100 {\n background-color: var(--color-slate-100);\n }\n\n .bg-slate-400 {\n background-color: var(--color-slate-400);\n }\n\n .bg-transparent {\n background-color: #0000;\n }\n\n .bg-violet-600 {\n background-color: var(--color-violet-600);\n }\n\n .bg-white {\n background-color: var(--color-white);\n }\n\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n\n .p-0\\.5 {\n padding: calc(var(--spacing) * .5);\n }\n\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * .5);\n }\n\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n\n .py-px {\n padding-block: 1px;\n }\n\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n\n .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n\n .pl-2\\.5 {\n padding-left: calc(var(--spacing) * 2.5);\n }\n\n .text-center {\n text-align: center;\n }\n\n .text-left {\n text-align: left;\n }\n\n .align-middle {\n vertical-align: middle;\n }\n\n .font-mono {\n font-family: var(--font-mono);\n }\n\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n\n .text-\\[9px\\] {\n font-size: 9px;\n }\n\n .text-\\[10px\\] {\n font-size: 10px;\n }\n\n .text-\\[11px\\] {\n font-size: 11px;\n }\n\n .text-\\[12px\\] {\n font-size: 12px;\n }\n\n .text-\\[13px\\] {\n font-size: 13px;\n }\n\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n\n .text-emerald-600 {\n color: var(--color-emerald-600);\n }\n\n .text-emerald-700 {\n color: var(--color-emerald-700);\n }\n\n .text-green-600 {\n color: var(--color-green-600);\n }\n\n .text-indigo-400 {\n color: var(--color-indigo-400);\n }\n\n .text-indigo-500 {\n color: var(--color-indigo-500);\n }\n\n .text-indigo-600 {\n color: var(--color-indigo-600);\n }\n\n .text-red-500 {\n color: var(--color-red-500);\n }\n\n .text-red-600 {\n color: var(--color-red-600);\n }\n\n .text-slate-400 {\n color: var(--color-slate-400);\n }\n\n .text-slate-500 {\n color: var(--color-slate-500);\n }\n\n .text-slate-600 {\n color: var(--color-slate-600);\n }\n\n .text-slate-700 {\n color: var(--color-slate-700);\n }\n\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n\n .text-white {\n color: var(--color-white);\n }\n\n .uppercase {\n text-transform: uppercase;\n }\n\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-indigo-500\\/12 {\n --tw-ring-color: #625fff1f;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .ring-indigo-500\\/12 {\n --tw-ring-color: color-mix(in oklab, var(--color-indigo-500) 12%, transparent);\n }\n }\n\n .filter {\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n\n @media (hover: hover) {\n .hover\\:border-slate-300:hover {\n border-color: var(--color-slate-300);\n }\n\n .hover\\:bg-indigo-600:hover {\n background-color: var(--color-indigo-600);\n }\n\n .hover\\:bg-red-100:hover {\n background-color: var(--color-red-100);\n }\n\n .hover\\:bg-slate-50:hover {\n background-color: var(--color-slate-50);\n }\n\n .hover\\:bg-slate-100:hover {\n background-color: var(--color-slate-100);\n }\n\n .hover\\:text-indigo-500:hover {\n color: var(--color-indigo-500);\n }\n\n .hover\\:text-indigo-600:hover {\n color: var(--color-indigo-600);\n }\n\n .hover\\:text-red-500:hover {\n color: var(--color-red-500);\n }\n\n .hover\\:text-slate-600:hover {\n color: var(--color-slate-600);\n }\n\n .hover\\:text-slate-700:hover {\n color: var(--color-slate-700);\n }\n }\n\n .focus\\:border-indigo-500:focus {\n border-color: var(--color-indigo-500);\n }\n\n .focus\\:ring-2:focus {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus\\:ring-indigo-500\\/12:focus {\n --tw-ring-color: #625fff1f;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .focus\\:ring-indigo-500\\/12:focus {\n --tw-ring-color: color-mix(in oklab, var(--color-indigo-500) 12%, transparent);\n }\n }\n}\n\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-leading {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-blur {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-invert {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false\n}\n";
15455
+ var app_default = "/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n@layer properties {\n @supports (((-webkit-hyphens: none)) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color: rgb(from red r g b)))) {\n *, :before, :after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n }\n }\n}\n\n@layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% .013 17.38);\n --color-red-100: oklch(93.6% .032 17.717);\n --color-red-200: oklch(88.5% .062 18.334);\n --color-red-500: oklch(63.7% .237 25.331);\n --color-red-600: oklch(57.7% .245 27.325);\n --color-amber-50: oklch(98.7% .022 95.277);\n --color-amber-200: oklch(92.4% .12 95.746);\n --color-amber-500: oklch(76.9% .188 70.08);\n --color-amber-700: oklch(55.5% .163 48.998);\n --color-green-50: oklch(98.2% .018 155.826);\n --color-green-200: oklch(92.5% .084 155.995);\n --color-green-500: oklch(72.3% .219 149.579);\n --color-green-600: oklch(62.7% .194 149.214);\n --color-emerald-50: oklch(97.9% .021 166.113);\n --color-emerald-100: oklch(95% .052 163.051);\n --color-emerald-200: oklch(90.5% .093 164.15);\n --color-emerald-300: oklch(84.5% .143 164.978);\n --color-emerald-400: oklch(76.5% .177 163.223);\n --color-emerald-500: oklch(69.6% .17 162.48);\n --color-emerald-600: oklch(59.6% .145 163.225);\n --color-emerald-700: oklch(50.8% .118 165.612);\n --color-blue-200: oklch(88.2% .059 254.128);\n --color-blue-600: oklch(54.6% .245 262.881);\n --color-indigo-50: oklch(96.2% .018 272.314);\n --color-indigo-100: oklch(93% .034 272.788);\n --color-indigo-400: oklch(67.3% .182 276.935);\n --color-indigo-500: oklch(58.5% .233 277.117);\n --color-indigo-600: oklch(51.1% .262 276.966);\n --color-violet-600: oklch(54.1% .281 293.009);\n --color-slate-50: oklch(98.4% .003 247.858);\n --color-slate-100: oklch(96.8% .007 247.896);\n --color-slate-200: oklch(92.9% .013 255.508);\n --color-slate-300: oklch(86.9% .022 252.894);\n --color-slate-400: oklch(70.4% .04 256.788);\n --color-slate-500: oklch(55.4% .046 257.417);\n --color-slate-600: oklch(44.6% .043 257.281);\n --color-slate-700: oklch(37.2% .044 257.287);\n --color-slate-800: oklch(27.9% .041 260.031);\n --color-neutral-100: oklch(97% 0 0);\n --color-neutral-400: oklch(70.8% 0 0);\n --color-neutral-700: oklch(37.1% 0 0);\n --color-neutral-800: oklch(26.9% 0 0);\n --color-neutral-900: oklch(20.5% 0 0);\n --color-neutral-950: oklch(14.5% 0 0);\n --color-white: #fff;\n --spacing: .25rem;\n --text-xs: .75rem;\n --text-xs--line-height: calc(1 / .75);\n --text-sm: .875rem;\n --text-sm--line-height: calc(1.25 / .875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-2xl: 1.5rem;\n --text-2xl--line-height: calc(2 / 1.5);\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-wide: .025em;\n --tracking-wider: .05em;\n --leading-tight: 1.25;\n --leading-snug: 1.375;\n --leading-normal: 1.5;\n --radius-md: .375rem;\n --radius-lg: .5rem;\n --default-transition-duration: .15s;\n --default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n}\n\n@layer base {\n *, :after, :before, ::backdrop {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n ::file-selector-button {\n box-sizing: border-box;\n border: 0 solid;\n margin: 0;\n padding: 0;\n }\n\n html, :host {\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n line-height: 1.5;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n\n b, strong {\n font-weight: bolder;\n }\n\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n\n small {\n font-size: 80%;\n }\n\n sub, sup {\n vertical-align: baseline;\n font-size: 75%;\n line-height: 0;\n position: relative;\n }\n\n sub {\n bottom: -.25em;\n }\n\n sup {\n top: -.5em;\n }\n\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n\n :-moz-focusring {\n outline: auto;\n }\n\n progress {\n vertical-align: baseline;\n }\n\n summary {\n display: list-item;\n }\n\n ol, ul, menu {\n list-style: none;\n }\n\n img, svg, video, canvas, audio, iframe, embed, object {\n vertical-align: middle;\n display: block;\n }\n\n img, video {\n max-width: 100%;\n height: auto;\n }\n\n button, input, select, optgroup, textarea {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n opacity: 1;\n background-color: #0000;\n border-radius: 0;\n }\n\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n\n ::placeholder {\n opacity: 1;\n }\n\n @supports (not ((-webkit-appearance: -apple-pay-button))) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentColor;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n ::placeholder {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n\n textarea {\n resize: vertical;\n }\n\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n\n ::-webkit-datetime-edit {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-year-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-month-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-day-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-hour-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-minute-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-second-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-millisecond-field {\n padding-block: 0;\n }\n\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n\n :-moz-ui-invalid {\n box-shadow: none;\n }\n\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]) {\n appearance: button;\n }\n\n ::file-selector-button {\n appearance: button;\n }\n\n ::-webkit-inner-spin-button {\n height: auto;\n }\n\n ::-webkit-outer-spin-button {\n height: auto;\n }\n\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n}\n\n@layer components;\n\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n\n .visible {\n visibility: visible;\n }\n\n .absolute {\n position: absolute;\n }\n\n .relative {\n position: relative;\n }\n\n .end {\n inset-inline-end: var(--spacing);\n }\n\n .top-1\\/2 {\n top: 50%;\n }\n\n .top-full {\n top: 100%;\n }\n\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n\n .right-2\\.5 {\n right: calc(var(--spacing) * 2.5);\n }\n\n .left-0 {\n left: calc(var(--spacing) * 0);\n }\n\n .z-10 {\n z-index: 10;\n }\n\n .z-50 {\n z-index: 50;\n }\n\n .mx-3 {\n margin-inline: calc(var(--spacing) * 3);\n }\n\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * .5);\n }\n\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n\n .mt-1\\.5 {\n margin-top: calc(var(--spacing) * 1.5);\n }\n\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n\n .mt-3 {\n margin-top: calc(var(--spacing) * 3);\n }\n\n .mt-auto {\n margin-top: auto;\n }\n\n .-mr-1 {\n margin-right: calc(var(--spacing) * -1);\n }\n\n .mr-0\\.5 {\n margin-right: calc(var(--spacing) * .5);\n }\n\n .mr-1 {\n margin-right: calc(var(--spacing) * 1);\n }\n\n .-mb-px {\n margin-bottom: -1px;\n }\n\n .mb-0\\.5 {\n margin-bottom: calc(var(--spacing) * .5);\n }\n\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n\n .mb-1\\.5 {\n margin-bottom: calc(var(--spacing) * 1.5);\n }\n\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n\n .ml-1\\.5 {\n margin-left: calc(var(--spacing) * 1.5);\n }\n\n .ml-auto {\n margin-left: auto;\n }\n\n .block {\n display: block;\n }\n\n .flex {\n display: flex;\n }\n\n .grid {\n display: grid;\n }\n\n .hidden {\n display: none;\n }\n\n .inline-block {\n display: inline-block;\n }\n\n .inline-flex {\n display: inline-flex;\n }\n\n .h-1\\.5 {\n height: calc(var(--spacing) * 1.5);\n }\n\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n\n .h-6 {\n height: calc(var(--spacing) * 6);\n }\n\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n\n .h-full {\n height: 100%;\n }\n\n .max-h-24 {\n max-height: calc(var(--spacing) * 24);\n }\n\n .max-h-60 {\n max-height: calc(var(--spacing) * 60);\n }\n\n .min-h-0 {\n min-height: calc(var(--spacing) * 0);\n }\n\n .w-1\\.5 {\n width: calc(var(--spacing) * 1.5);\n }\n\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n\n .w-6 {\n width: calc(var(--spacing) * 6);\n }\n\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n\n .w-\\[280px\\] {\n width: 280px;\n }\n\n .w-full {\n width: 100%;\n }\n\n .max-w-\\[360px\\] {\n max-width: 360px;\n }\n\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n\n .min-w-\\[200px\\] {\n min-width: 200px;\n }\n\n .min-w-full {\n min-width: 100%;\n }\n\n .flex-1 {\n flex: 1;\n }\n\n .shrink {\n flex-shrink: 1;\n }\n\n .shrink-0 {\n flex-shrink: 0;\n }\n\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n\n .cursor-grab {\n cursor: grab;\n }\n\n .cursor-pointer {\n cursor: pointer;\n }\n\n .cursor-wait {\n cursor: wait;\n }\n\n .flex-col {\n flex-direction: column;\n }\n\n .items-baseline {\n align-items: baseline;\n }\n\n .items-center {\n align-items: center;\n }\n\n .items-end {\n align-items: flex-end;\n }\n\n .items-start {\n align-items: flex-start;\n }\n\n .justify-between {\n justify-content: space-between;\n }\n\n .justify-center {\n justify-content: center;\n }\n\n .gap-1\\.5 {\n gap: calc(var(--spacing) * 1.5);\n }\n\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n\n :where(.space-y-0\\.5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-1 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n :where(.space-y-2\\.5 > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)));\n }\n\n .truncate {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n }\n\n .overflow-auto {\n overflow: auto;\n }\n\n .overflow-hidden {\n overflow: hidden;\n }\n\n .overflow-y-auto {\n overflow-y: auto;\n }\n\n .rounded {\n border-radius: .25rem;\n }\n\n .rounded-full {\n border-radius: 3.40282e38px;\n }\n\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n\n .rounded-md {\n border-radius: var(--radius-md);\n }\n\n .rounded-t-md {\n border-top-left-radius: var(--radius-md);\n border-top-right-radius: var(--radius-md);\n }\n\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n\n .border-0 {\n border-style: var(--tw-border-style);\n border-width: 0;\n }\n\n .border-r {\n border-right-style: var(--tw-border-style);\n border-right-width: 1px;\n }\n\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n\n .border-l-2 {\n border-left-style: var(--tw-border-style);\n border-left-width: 2px;\n }\n\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n\n .border-amber-200 {\n border-color: var(--color-amber-200);\n }\n\n .border-blue-200 {\n border-color: var(--color-blue-200);\n }\n\n .border-emerald-200 {\n border-color: var(--color-emerald-200);\n }\n\n .border-emerald-300 {\n border-color: var(--color-emerald-300);\n }\n\n .border-green-200 {\n border-color: var(--color-green-200);\n }\n\n .border-indigo-500 {\n border-color: var(--color-indigo-500);\n }\n\n .border-red-200 {\n border-color: var(--color-red-200);\n }\n\n .border-slate-100 {\n border-color: var(--color-slate-100);\n }\n\n .border-slate-200 {\n border-color: var(--color-slate-200);\n }\n\n .border-transparent {\n border-color: #0000;\n }\n\n .border-b-white {\n border-bottom-color: var(--color-white);\n }\n\n .bg-amber-50 {\n background-color: var(--color-amber-50);\n }\n\n .bg-amber-500 {\n background-color: var(--color-amber-500);\n }\n\n .bg-blue-600 {\n background-color: var(--color-blue-600);\n }\n\n .bg-emerald-50 {\n background-color: var(--color-emerald-50);\n }\n\n .bg-emerald-100 {\n background-color: var(--color-emerald-100);\n }\n\n .bg-emerald-500 {\n background-color: var(--color-emerald-500);\n }\n\n .bg-green-50 {\n background-color: var(--color-green-50);\n }\n\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n\n .bg-indigo-50 {\n background-color: var(--color-indigo-50);\n }\n\n .bg-indigo-100 {\n background-color: var(--color-indigo-100);\n }\n\n .bg-indigo-500 {\n background-color: var(--color-indigo-500);\n }\n\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n\n .bg-slate-50 {\n background-color: var(--color-slate-50);\n }\n\n .bg-slate-100 {\n background-color: var(--color-slate-100);\n }\n\n .bg-slate-400 {\n background-color: var(--color-slate-400);\n }\n\n .bg-transparent {\n background-color: #0000;\n }\n\n .bg-violet-600 {\n background-color: var(--color-violet-600);\n }\n\n .bg-white {\n background-color: var(--color-white);\n }\n\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n\n .p-0\\.5 {\n padding: calc(var(--spacing) * .5);\n }\n\n .p-1 {\n padding: calc(var(--spacing) * 1);\n }\n\n .p-1\\.5 {\n padding: calc(var(--spacing) * 1.5);\n }\n\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n\n .px-1 {\n padding-inline: calc(var(--spacing) * 1);\n }\n\n .px-1\\.5 {\n padding-inline: calc(var(--spacing) * 1.5);\n }\n\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * .5);\n }\n\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n\n .py-1\\.5 {\n padding-block: calc(var(--spacing) * 1.5);\n }\n\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n\n .py-px {\n padding-block: 1px;\n }\n\n .pt-1 {\n padding-top: calc(var(--spacing) * 1);\n }\n\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n\n .pr-8 {\n padding-right: calc(var(--spacing) * 8);\n }\n\n .pb-3 {\n padding-bottom: calc(var(--spacing) * 3);\n }\n\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n\n .pl-2\\.5 {\n padding-left: calc(var(--spacing) * 2.5);\n }\n\n .text-center {\n text-align: center;\n }\n\n .text-left {\n text-align: left;\n }\n\n .align-middle {\n vertical-align: middle;\n }\n\n .font-mono {\n font-family: var(--font-mono);\n }\n\n .text-2xl {\n font-size: var(--text-2xl);\n line-height: var(--tw-leading, var(--text-2xl--line-height));\n }\n\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n\n .text-\\[9px\\] {\n font-size: 9px;\n }\n\n .text-\\[10px\\] {\n font-size: 10px;\n }\n\n .text-\\[11px\\] {\n font-size: 11px;\n }\n\n .text-\\[12px\\] {\n font-size: 12px;\n }\n\n .text-\\[13px\\] {\n font-size: 13px;\n }\n\n .leading-none {\n --tw-leading: 1;\n line-height: 1;\n }\n\n .leading-normal {\n --tw-leading: var(--leading-normal);\n line-height: var(--leading-normal);\n }\n\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n\n .leading-tight {\n --tw-leading: var(--leading-tight);\n line-height: var(--leading-tight);\n }\n\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n\n .tracking-wider {\n --tw-tracking: var(--tracking-wider);\n letter-spacing: var(--tracking-wider);\n }\n\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n\n .text-amber-700 {\n color: var(--color-amber-700);\n }\n\n .text-blue-600 {\n color: var(--color-blue-600);\n }\n\n .text-emerald-600 {\n color: var(--color-emerald-600);\n }\n\n .text-emerald-700 {\n color: var(--color-emerald-700);\n }\n\n .text-green-600 {\n color: var(--color-green-600);\n }\n\n .text-indigo-400 {\n color: var(--color-indigo-400);\n }\n\n .text-indigo-500 {\n color: var(--color-indigo-500);\n }\n\n .text-indigo-600 {\n color: var(--color-indigo-600);\n }\n\n .text-red-500 {\n color: var(--color-red-500);\n }\n\n .text-red-600 {\n color: var(--color-red-600);\n }\n\n .text-slate-400 {\n color: var(--color-slate-400);\n }\n\n .text-slate-500 {\n color: var(--color-slate-500);\n }\n\n .text-slate-600 {\n color: var(--color-slate-600);\n }\n\n .text-slate-700 {\n color: var(--color-slate-700);\n }\n\n .text-slate-800 {\n color: var(--color-slate-800);\n }\n\n .text-white {\n color: var(--color-white);\n }\n\n .uppercase {\n text-transform: uppercase;\n }\n\n .shadow-lg {\n --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, #0000001a), 0 4px 6px -4px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .shadow-sm {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, #0000001a), 0 1px 2px -1px var(--tw-shadow-color, #0000001a);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-2 {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .ring-indigo-500\\/12 {\n --tw-ring-color: #625fff1f;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .ring-indigo-500\\/12 {\n --tw-ring-color: color-mix(in oklab, var(--color-indigo-500) 12%, transparent);\n }\n }\n\n .filter {\n filter: var(--tw-blur, ) var(--tw-brightness, ) var(--tw-contrast, ) var(--tw-grayscale, ) var(--tw-hue-rotate, ) var(--tw-invert, ) var(--tw-saturate, ) var(--tw-sepia, ) var(--tw-drop-shadow, );\n }\n\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n\n @media (hover: hover) {\n .hover\\:border-slate-300:hover {\n border-color: var(--color-slate-300);\n }\n\n .hover\\:bg-indigo-600:hover {\n background-color: var(--color-indigo-600);\n }\n\n .hover\\:bg-red-100:hover {\n background-color: var(--color-red-100);\n }\n\n .hover\\:bg-slate-50:hover {\n background-color: var(--color-slate-50);\n }\n\n .hover\\:bg-slate-100:hover {\n background-color: var(--color-slate-100);\n }\n\n .hover\\:text-indigo-500:hover {\n color: var(--color-indigo-500);\n }\n\n .hover\\:text-indigo-600:hover {\n color: var(--color-indigo-600);\n }\n\n .hover\\:text-red-500:hover {\n color: var(--color-red-500);\n }\n\n .hover\\:text-slate-600:hover {\n color: var(--color-slate-600);\n }\n\n .hover\\:text-slate-700:hover {\n color: var(--color-slate-700);\n }\n }\n\n .focus\\:border-indigo-500:focus {\n border-color: var(--color-indigo-500);\n }\n\n .focus\\:ring-2:focus {\n --tw-ring-shadow: var(--tw-ring-inset, ) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n\n .focus\\:ring-indigo-500\\/12:focus {\n --tw-ring-color: #625fff1f;\n }\n\n @supports (color: color-mix(in lab, red, red)) {\n .focus\\:ring-indigo-500\\/12:focus {\n --tw-ring-color: color-mix(in oklab, var(--color-indigo-500) 12%, transparent);\n }\n }\n\n .dark\\:border-neutral-700:where(.dark, .dark *) {\n border-color: var(--color-neutral-700);\n }\n\n .dark\\:bg-neutral-800:where(.dark, .dark *) {\n background-color: var(--color-neutral-800);\n }\n\n .dark\\:bg-neutral-900:where(.dark, .dark *) {\n background-color: var(--color-neutral-900);\n }\n\n .dark\\:bg-neutral-950:where(.dark, .dark *) {\n background-color: var(--color-neutral-950);\n }\n\n .dark\\:text-emerald-400:where(.dark, .dark *) {\n color: var(--color-emerald-400);\n }\n\n .dark\\:text-neutral-100:where(.dark, .dark *) {\n color: var(--color-neutral-100);\n }\n\n .dark\\:text-neutral-400:where(.dark, .dark *) {\n color: var(--color-neutral-400);\n }\n}\n\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-space-y-reverse {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n\n@property --tw-leading {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0;\n}\n\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n\n@property --tw-blur {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-invert {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false\n}\n\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false\n}\n";
15373
15456
  //#endregion
15374
15457
  //#region ../../node_modules/.pnpm/gridstack@12.4.2/node_modules/gridstack/dist/gridstack.css?inline
15375
15458
  var gridstack_default = "/**\n * gridstack SASS styles 12.4.2\n * Copyright (c) 2021-2025 Alain Dumesny - see GridStack root license\n */\n.grid-stack {\n position: relative;\n}\n\n.grid-stack-rtl {\n direction: ltr;\n}\n.grid-stack-rtl > .grid-stack-item {\n direction: rtl;\n}\n\n.grid-stack-placeholder > .placeholder-content {\n background-color: rgba(0, 0, 0, 0.1);\n margin: 0;\n position: absolute;\n width: auto;\n z-index: 0 !important;\n}\n\n.grid-stack > .grid-stack-item {\n position: absolute;\n padding: 0;\n top: 0;\n left: 0;\n width: var(--gs-column-width);\n height: var(--gs-cell-height);\n}\n.grid-stack > .grid-stack-item > .grid-stack-item-content {\n margin: 0;\n position: absolute;\n width: auto;\n overflow-x: hidden;\n overflow-y: auto;\n}\n.grid-stack > .grid-stack-item.size-to-content:not(.size-to-content-max) > .grid-stack-item-content {\n overflow-y: hidden;\n}\n\n.grid-stack > .grid-stack-item > .grid-stack-item-content,\n.grid-stack > .grid-stack-placeholder > .placeholder-content {\n top: var(--gs-item-margin-top);\n right: var(--gs-item-margin-right);\n bottom: var(--gs-item-margin-bottom);\n left: var(--gs-item-margin-left);\n}\n\n.grid-stack-item > .ui-resizable-handle {\n position: absolute;\n font-size: 0.1px;\n display: block;\n -ms-touch-action: none;\n touch-action: none;\n}\n.grid-stack-item.ui-resizable-disabled > .ui-resizable-handle, .grid-stack-item.ui-resizable-autohide > .ui-resizable-handle {\n display: none;\n}\n.grid-stack-item > .ui-resizable-ne,\n.grid-stack-item > .ui-resizable-nw,\n.grid-stack-item > .ui-resizable-se,\n.grid-stack-item > .ui-resizable-sw {\n background-image: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" stroke=\"%23666\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" viewBox=\"0 0 20 20\"><path d=\"m10 3 2 2H8l2-2v14l-2-2h4l-2 2\"/></svg>');\n background-repeat: no-repeat;\n background-position: center;\n}\n.grid-stack-item > .ui-resizable-ne {\n transform: rotate(45deg);\n}\n.grid-stack-item > .ui-resizable-sw {\n transform: rotate(45deg);\n}\n.grid-stack-item > .ui-resizable-nw {\n transform: rotate(-45deg);\n}\n.grid-stack-item > .ui-resizable-se {\n transform: rotate(-45deg);\n}\n.grid-stack-item > .ui-resizable-nw {\n cursor: nw-resize;\n width: 20px;\n height: 20px;\n top: var(--gs-item-margin-top);\n left: var(--gs-item-margin-left);\n}\n.grid-stack-item > .ui-resizable-n {\n cursor: n-resize;\n height: 10px;\n top: var(--gs-item-margin-top);\n left: 25px;\n right: 25px;\n}\n.grid-stack-item > .ui-resizable-ne {\n cursor: ne-resize;\n width: 20px;\n height: 20px;\n top: var(--gs-item-margin-top);\n right: var(--gs-item-margin-right);\n}\n.grid-stack-item > .ui-resizable-e {\n cursor: e-resize;\n width: 10px;\n top: 15px;\n bottom: 15px;\n right: var(--gs-item-margin-right);\n}\n.grid-stack-item > .ui-resizable-se {\n cursor: se-resize;\n width: 20px;\n height: 20px;\n bottom: var(--gs-item-margin-bottom);\n right: var(--gs-item-margin-right);\n}\n.grid-stack-item > .ui-resizable-s {\n cursor: s-resize;\n height: 10px;\n left: 25px;\n bottom: var(--gs-item-margin-bottom);\n right: 25px;\n}\n.grid-stack-item > .ui-resizable-sw {\n cursor: sw-resize;\n width: 20px;\n height: 20px;\n bottom: var(--gs-item-margin-bottom);\n left: var(--gs-item-margin-left);\n}\n.grid-stack-item > .ui-resizable-w {\n cursor: w-resize;\n width: 10px;\n top: 15px;\n bottom: 15px;\n left: var(--gs-item-margin-left);\n}\n.grid-stack-item.ui-draggable-dragging > .ui-resizable-handle {\n display: none !important;\n}\n.grid-stack-item.ui-draggable-dragging {\n will-change: left, top;\n}\n.grid-stack-item.ui-resizable-resizing {\n will-change: width, height;\n}\n\n.ui-draggable-dragging,\n.ui-resizable-resizing {\n z-index: 10000;\n}\n.ui-draggable-dragging > .grid-stack-item-content,\n.ui-resizable-resizing > .grid-stack-item-content {\n box-shadow: 1px 4px 6px rgba(0, 0, 0, 0.2);\n opacity: 0.8;\n}\n\n.grid-stack-animate,\n.grid-stack-animate .grid-stack-item {\n transition: left 0.3s, top 0.3s, height 0.3s, width 0.3s;\n}\n\n.grid-stack-animate .grid-stack-item.ui-draggable-dragging,\n.grid-stack-animate .grid-stack-item.ui-resizable-resizing,\n.grid-stack-animate .grid-stack-item.grid-stack-placeholder {\n transition: left 0s, top 0s, height 0s, width 0s;\n}\n\n.grid-stack > .grid-stack-item[gs-y=\"0\"] {\n top: 0px;\n}\n\n.grid-stack > .grid-stack-item[gs-x=\"0\"] {\n left: 0%;\n}";
@@ -15385,14 +15468,18 @@ var style = document.createElement("style");
15385
15468
  style.textContent = app_default + "\n" + gridstack_default;
15386
15469
  document.head.appendChild(style);
15387
15470
  var root = document.getElementById("rool-host");
15471
+ var channelId = root.dataset.channelId ?? "extension-dev";
15472
+ var extensionUrl = root.dataset.extensionUrl ?? "/";
15473
+ var manifest = root.dataset.manifest ? JSON.parse(root.dataset.manifest) : null;
15474
+ var manifestError = root.dataset.manifestError ?? null;
15388
15475
  mount(HostShell, {
15389
15476
  target: root,
15390
- props: {
15391
- channelId: root.dataset.channelId ?? "extension-dev",
15392
- extensionUrl: root.dataset.extensionUrl ?? "/",
15393
- manifest: root.dataset.manifest ? JSON.parse(root.dataset.manifest) : null,
15394
- manifestError: root.dataset.manifestError ?? null
15395
- }
15477
+ context: new Map([["hostConfig", {
15478
+ channelId,
15479
+ extensionUrl,
15480
+ manifest,
15481
+ manifestError
15482
+ }]])
15396
15483
  });
15397
15484
  //#endregion
15398
15485