@rool-dev/extension 0.3.8-dev.b3f8671 → 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.
- package/README.md +29 -7
- package/dist/cli/build-pipeline.js +1 -1
- package/dist/cli/dev.js +1 -1
- package/dist/cli/init.js +1 -1
- package/dist/dev/DevHostController.d.ts +4 -0
- package/dist/dev/DevHostController.d.ts.map +1 -1
- package/dist/dev/DevHostController.js +18 -1
- package/dist/dev/HostShell.svelte +3 -0
- package/dist/dev/HostShell.svelte.d.ts.map +1 -1
- package/dist/dev/Sidebar.svelte +14 -1
- package/dist/dev/Sidebar.svelte.d.ts +1 -0
- package/dist/dev/Sidebar.svelte.d.ts.map +1 -1
- package/dist/dev/app.css +1 -0
- package/dist/dev/host-shell.js +104 -14
- package/dist/dev/host-shell.js.map +1 -1
- package/dist/host.d.ts +6 -1
- package/dist/host.d.ts.map +1 -1
- package/dist/host.js +11 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/protocol.d.ts +3 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/reactive.svelte.d.ts +2 -1
- package/dist/reactive.svelte.d.ts.map +1 -1
- package/dist/reactive.svelte.js +15 -1
- package/package.json +2 -2
package/dist/dev/host-shell.js
CHANGED
|
@@ -3213,6 +3213,52 @@ function from_html(content, flags) {
|
|
|
3213
3213
|
};
|
|
3214
3214
|
}
|
|
3215
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
|
+
/**
|
|
3216
3262
|
* Don't mark this as side-effect-free, hydration needs to walk all nodes
|
|
3217
3263
|
* @param {any} value
|
|
3218
3264
|
*/
|
|
@@ -8462,14 +8508,10 @@ var RoolClient = class extends EventEmitter {
|
|
|
8462
8508
|
this.authManager.initialize();
|
|
8463
8509
|
const authenticated = await this.isAuthenticated();
|
|
8464
8510
|
if (authenticated) {
|
|
8465
|
-
|
|
8466
|
-
|
|
8467
|
-
|
|
8468
|
-
|
|
8469
|
-
this.saveStorageCache();
|
|
8470
|
-
} catch (error) {
|
|
8471
|
-
this.logger.warn("[RoolClient] Failed to sync user storage:", error);
|
|
8472
|
-
}
|
|
8511
|
+
const user = await this.getCurrentUser();
|
|
8512
|
+
this._currentUser = user;
|
|
8513
|
+
this._storageCache = user.storage ?? {};
|
|
8514
|
+
this.saveStorageCache();
|
|
8473
8515
|
await this.ensureSubscribed();
|
|
8474
8516
|
}
|
|
8475
8517
|
return authenticated;
|
|
@@ -9003,12 +9045,14 @@ var BridgeHost = class {
|
|
|
9003
9045
|
channel;
|
|
9004
9046
|
iframe;
|
|
9005
9047
|
user;
|
|
9048
|
+
_colorScheme;
|
|
9006
9049
|
eventCleanups = [];
|
|
9007
9050
|
_destroyed = false;
|
|
9008
9051
|
constructor(options) {
|
|
9009
9052
|
this.channel = options.channel;
|
|
9010
9053
|
this.iframe = options.iframe;
|
|
9011
9054
|
this.user = options.user;
|
|
9055
|
+
this._colorScheme = options.colorScheme ?? "light";
|
|
9012
9056
|
window.addEventListener("message", this._onMessage);
|
|
9013
9057
|
for (const eventName of FORWARDED_EVENTS) {
|
|
9014
9058
|
const handler = (data) => {
|
|
@@ -9034,6 +9078,7 @@ var BridgeHost = class {
|
|
|
9034
9078
|
linkAccess: this.channel.linkAccess,
|
|
9035
9079
|
userId: this.channel.userId,
|
|
9036
9080
|
user: this.user,
|
|
9081
|
+
colorScheme: this._colorScheme,
|
|
9037
9082
|
schema: this.channel.getSchema(),
|
|
9038
9083
|
metadata: this.channel.getAllMetadata()
|
|
9039
9084
|
};
|
|
@@ -9089,6 +9134,15 @@ var BridgeHost = class {
|
|
|
9089
9134
|
});
|
|
9090
9135
|
}
|
|
9091
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
|
+
}
|
|
9092
9146
|
_postToApp(message) {
|
|
9093
9147
|
if (this._destroyed) return;
|
|
9094
9148
|
this.iframe.contentWindow?.postMessage(message, "*");
|
|
@@ -9176,6 +9230,7 @@ var DevHostController = class {
|
|
|
9176
9230
|
publishedExtensions = [];
|
|
9177
9231
|
installedExtensionIds = [];
|
|
9178
9232
|
sidebarCollapsed = false;
|
|
9233
|
+
colorScheme = "light";
|
|
9179
9234
|
publishState = "idle";
|
|
9180
9235
|
publishMessage = null;
|
|
9181
9236
|
publishUrl = null;
|
|
@@ -9195,6 +9250,7 @@ var DevHostController = class {
|
|
|
9195
9250
|
this._spaceKey = `rool-devhost:${options.channelId}:space`;
|
|
9196
9251
|
this.env = this._getSavedEnv();
|
|
9197
9252
|
this.sidebarCollapsed = storageGet("rool-devhost:collapsed") === "true";
|
|
9253
|
+
this.colorScheme = this._getSavedColorScheme();
|
|
9198
9254
|
}
|
|
9199
9255
|
get tabs() {
|
|
9200
9256
|
return [{
|
|
@@ -9396,6 +9452,12 @@ var DevHostController = class {
|
|
|
9396
9452
|
storageSet("rool-devhost:collapsed", String(this.sidebarCollapsed));
|
|
9397
9453
|
this._onChange();
|
|
9398
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
|
+
}
|
|
9399
9461
|
registerIframe(tabId, el) {
|
|
9400
9462
|
this.iframeEls[tabId] = el;
|
|
9401
9463
|
this._bindBridge(tabId);
|
|
@@ -9421,7 +9483,8 @@ var DevHostController = class {
|
|
|
9421
9483
|
if (el && ch && !this.bridgeHosts[tabId]) this.bridgeHosts[tabId] = createBridgeHost({
|
|
9422
9484
|
channel: ch,
|
|
9423
9485
|
iframe: el,
|
|
9424
|
-
user: this._bridgeUser
|
|
9486
|
+
user: this._bridgeUser,
|
|
9487
|
+
colorScheme: this.colorScheme
|
|
9425
9488
|
});
|
|
9426
9489
|
}
|
|
9427
9490
|
_bindAllBridges() {
|
|
@@ -9464,6 +9527,11 @@ var DevHostController = class {
|
|
|
9464
9527
|
if (saved === "local" || saved === "dev" || saved === "prod") return saved;
|
|
9465
9528
|
return "prod";
|
|
9466
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
|
+
}
|
|
9467
9535
|
};
|
|
9468
9536
|
//#endregion
|
|
9469
9537
|
//#region src/dev/Sidebar.svelte
|
|
@@ -9490,7 +9558,9 @@ var root_19 = /* @__PURE__ */ from_html(`<div class="absolute top-full mt-1 left
|
|
|
9490
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>`);
|
|
9491
9559
|
var root_29 = /* @__PURE__ */ from_html(`<div class="text-[11px] text-red-500 mt-1.5"> </div>`);
|
|
9492
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>`);
|
|
9493
|
-
var
|
|
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>`);
|
|
9494
9564
|
function Sidebar($$anchor, $$props) {
|
|
9495
9565
|
push($$props, true);
|
|
9496
9566
|
let dropdownOpen = prop($$props, "dropdownOpen", 15);
|
|
@@ -9511,7 +9581,7 @@ function Sidebar($$anchor, $$props) {
|
|
|
9511
9581
|
delegated("click", button, () => $$props.controller.toggleSidebar());
|
|
9512
9582
|
append($$anchor, div);
|
|
9513
9583
|
};
|
|
9514
|
-
var
|
|
9584
|
+
var alternate_3 = ($$anchor) => {
|
|
9515
9585
|
var div_2 = root_2$1();
|
|
9516
9586
|
var div_3 = child(div_2);
|
|
9517
9587
|
var div_4 = child(div_3);
|
|
@@ -9818,6 +9888,19 @@ function Sidebar($$anchor, $$props) {
|
|
|
9818
9888
|
});
|
|
9819
9889
|
var div_38 = sibling(node_14, 2);
|
|
9820
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);
|
|
9821
9904
|
reset(div_38);
|
|
9822
9905
|
reset(div_2);
|
|
9823
9906
|
template_effect(() => {
|
|
@@ -9829,6 +9912,7 @@ function Sidebar($$anchor, $$props) {
|
|
|
9829
9912
|
set_text(text_12, `${get(selectedSpace)?.name ?? "Select a space..." ?? ""} `);
|
|
9830
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"}`);
|
|
9831
9914
|
set_text(text_14, ` ${$$props.statusText ?? ""}`);
|
|
9915
|
+
set_attribute(button_8, "title", $$props.colorScheme === "light" ? "Switch to dark mode" : "Switch to light mode");
|
|
9832
9916
|
});
|
|
9833
9917
|
delegated("click", button_1, () => $$props.controller.toggleSidebar());
|
|
9834
9918
|
delegated("click", button_2, () => $$props.controller.switchEnv("local"));
|
|
@@ -9838,12 +9922,13 @@ function Sidebar($$anchor, $$props) {
|
|
|
9838
9922
|
e.stopPropagation();
|
|
9839
9923
|
dropdownOpen(!dropdownOpen());
|
|
9840
9924
|
});
|
|
9841
|
-
delegated("click", button_8, () => $$props.controller.
|
|
9925
|
+
delegated("click", button_8, () => $$props.controller.toggleColorScheme());
|
|
9926
|
+
delegated("click", button_9, () => $$props.controller.logout());
|
|
9842
9927
|
append($$anchor, div_2);
|
|
9843
9928
|
};
|
|
9844
9929
|
if_block(node, ($$render) => {
|
|
9845
9930
|
if ($$props.sidebarCollapsed) $$render(consequent);
|
|
9846
|
-
else $$render(
|
|
9931
|
+
else $$render(alternate_3, -1);
|
|
9847
9932
|
});
|
|
9848
9933
|
append($$anchor, fragment);
|
|
9849
9934
|
pop();
|
|
@@ -15247,6 +15332,7 @@ function HostShell($$anchor, $$props) {
|
|
|
15247
15332
|
let publishedExtensions = /* @__PURE__ */ state(proxy([]));
|
|
15248
15333
|
let installedExtensionIds = /* @__PURE__ */ state(proxy([]));
|
|
15249
15334
|
let tabs = /* @__PURE__ */ state(proxy([]));
|
|
15335
|
+
let colorScheme = /* @__PURE__ */ state("light");
|
|
15250
15336
|
let publishState = /* @__PURE__ */ state("idle");
|
|
15251
15337
|
let publishMessage = /* @__PURE__ */ state(null);
|
|
15252
15338
|
let publishUrl = /* @__PURE__ */ state(null);
|
|
@@ -15264,6 +15350,7 @@ function HostShell($$anchor, $$props) {
|
|
|
15264
15350
|
set(statusState, controller.statusState, true);
|
|
15265
15351
|
set(placeholderText, controller.placeholderText, true);
|
|
15266
15352
|
set(sidebarCollapsed, controller.sidebarCollapsed, true);
|
|
15353
|
+
set(colorScheme, controller.colorScheme, true);
|
|
15267
15354
|
set(env, controller.env, true);
|
|
15268
15355
|
set(publishedExtensions, controller.publishedExtensions, true);
|
|
15269
15356
|
set(installedExtensionIds, controller.installedExtensionIds, true);
|
|
@@ -15312,6 +15399,9 @@ function HostShell($$anchor, $$props) {
|
|
|
15312
15399
|
get sidebarCollapsed() {
|
|
15313
15400
|
return get(sidebarCollapsed);
|
|
15314
15401
|
},
|
|
15402
|
+
get colorScheme() {
|
|
15403
|
+
return get(colorScheme);
|
|
15404
|
+
},
|
|
15315
15405
|
get publishState() {
|
|
15316
15406
|
return get(publishState);
|
|
15317
15407
|
},
|
|
@@ -15362,7 +15452,7 @@ function HostShell($$anchor, $$props) {
|
|
|
15362
15452
|
}
|
|
15363
15453
|
//#endregion
|
|
15364
15454
|
//#region src/dev/app.css?inline
|
|
15365
|
-
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";
|
|
15366
15456
|
//#endregion
|
|
15367
15457
|
//#region ../../node_modules/.pnpm/gridstack@12.4.2/node_modules/gridstack/dist/gridstack.css?inline
|
|
15368
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}";
|