@mcp-b/embedded-agent 0.0.3 → 0.0.5
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 +315 -14
- package/dist/index.d.ts +811 -605
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6686 -5735
- package/dist/index.js.map +1 -1
- package/dist/styles/globals.css +1 -1
- package/dist/web-component-standalone.iife.js +3 -3
- package/dist/web-component.js +971 -418
- package/dist/web-component.js.map +1 -1
- package/package.json +1 -1
package/dist/web-component.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { c } from "react/compiler-runtime";
|
|
2
|
-
import { ActionBarPrimitive, AssistantModalPrimitive, AssistantRuntimeProvider, AttachmentPrimitive, BranchPickerPrimitive, ComposerPrimitive, ErrorPrimitive, MessagePrimitive, ThreadPrimitive, useAssistantApi, useAssistantState, useAssistantTool, useThread } from "@assistant-ui/react";
|
|
2
|
+
import { ActionBarPrimitive, AssistantModalPrimitive, AssistantRuntimeProvider, AttachmentPrimitive, BranchPickerPrimitive, ComposerPrimitive, ErrorPrimitive, MessagePrimitive, ThreadPrimitive, useAssistantApi, useAssistantState, useAssistantTool, useComposer, useThread } from "@assistant-ui/react";
|
|
3
3
|
import { AssistantChatTransport, useChatRuntime } from "@assistant-ui/react-ai-sdk";
|
|
4
4
|
import r2wc from "@r2wc/react-to-web-component";
|
|
5
5
|
import { lastAssistantMessageIsCompleteWithToolCalls } from "ai";
|
|
6
6
|
import { createContext, forwardRef, memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
7
|
-
import { AlertCircle, ArrowDownIcon, ArrowUpIcon, CheckCircle2, CheckIcon, ChevronDown, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Circle, CopyIcon, FileText, History, Loader2, MessageSquare, Mic, MicOff, PencilIcon, Phone, PhoneOff, Plug, Plus, PlusIcon, RefreshCwIcon, Send, Square, Volume2, X, XIcon } from "lucide-react";
|
|
8
|
-
import { AnimatePresence, LazyMotion, MotionConfig, domAnimation, motion } from "motion/react";
|
|
7
|
+
import { AlertCircle, ArrowDownIcon, ArrowUpIcon, Check, CheckCircle2, CheckIcon, ChevronDown, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Circle, Copy, CopyIcon, FileText, GripHorizontal, History, Loader2, MessageSquare, Mic, MicOff, PencilIcon, Phone, PhoneOff, Plug, Plus, PlusIcon, RefreshCwIcon, Send, Square, Volume2, X, XIcon } from "lucide-react";
|
|
8
|
+
import { AnimatePresence, LazyMotion, MotionConfig, domAnimation, motion, useDragControls, useReducedMotion } from "motion/react";
|
|
9
9
|
import * as m from "motion/react-m";
|
|
10
10
|
import { clsx } from "clsx";
|
|
11
11
|
import { twMerge } from "tailwind-merge";
|
|
@@ -54,6 +54,10 @@ const RESPONSE_REQUEST_DELAY_MS = 150;
|
|
|
54
54
|
const TOOL_CALL_DISPLAY_DURATION_MS = 1500;
|
|
55
55
|
/** Duration to show failed tool calls before clearing (error) */
|
|
56
56
|
const TOOL_CALL_ERROR_DISPLAY_DURATION_MS = 3e3;
|
|
57
|
+
/** Duration to retain voice actions after session ends (for display) */
|
|
58
|
+
const VOICE_ACTIONS_RETENTION_MS = 3e3;
|
|
59
|
+
/** Duration to retain voice summary after session ends */
|
|
60
|
+
const VOICE_SUMMARY_RETENTION_MS = 3e4;
|
|
57
61
|
/**
|
|
58
62
|
* Enable debug logging for development.
|
|
59
63
|
* Can be enabled by setting window.__WEBMCP_DEBUG__ = true in the browser console.
|
|
@@ -2372,14 +2376,14 @@ const ComposerAddAttachment = () => {
|
|
|
2372
2376
|
} else t0 = $[0];
|
|
2373
2377
|
return t0;
|
|
2374
2378
|
};
|
|
2375
|
-
function _temp$
|
|
2379
|
+
function _temp$9(c$1) {
|
|
2376
2380
|
return c$1.type === "image";
|
|
2377
2381
|
}
|
|
2378
2382
|
function _temp2$5(t0) {
|
|
2379
2383
|
const { attachment } = t0;
|
|
2380
2384
|
if (attachment.type !== "image") return {};
|
|
2381
2385
|
if (attachment.file) return { file: attachment.file };
|
|
2382
|
-
const src = attachment.content?.filter(_temp$
|
|
2386
|
+
const src = attachment.content?.filter(_temp$9)[0]?.image;
|
|
2383
2387
|
if (!src) return {};
|
|
2384
2388
|
return { src };
|
|
2385
2389
|
}
|
|
@@ -4127,7 +4131,7 @@ const ThreadSuggestions = () => {
|
|
|
4127
4131
|
label: "for healthy weight loss",
|
|
4128
4132
|
action: "Create a meal plan for healthy weight loss"
|
|
4129
4133
|
}
|
|
4130
|
-
].map(_temp$
|
|
4134
|
+
].map(_temp$8)
|
|
4131
4135
|
});
|
|
4132
4136
|
$[0] = t0;
|
|
4133
4137
|
} else t0 = $[0];
|
|
@@ -4400,7 +4404,7 @@ const BranchPicker = (t0) => {
|
|
|
4400
4404
|
} else t6 = $[11];
|
|
4401
4405
|
return t6;
|
|
4402
4406
|
};
|
|
4403
|
-
function _temp$
|
|
4407
|
+
function _temp$8(suggestedAction, index) {
|
|
4404
4408
|
return /* @__PURE__ */ jsx(m.div, {
|
|
4405
4409
|
initial: {
|
|
4406
4410
|
opacity: 0,
|
|
@@ -4624,7 +4628,7 @@ function humanizeToolName(toolName, isRunning = false) {
|
|
|
4624
4628
|
*/
|
|
4625
4629
|
function useActions() {
|
|
4626
4630
|
const $ = c(3);
|
|
4627
|
-
const messages = useThread(_temp$
|
|
4631
|
+
const messages = useThread(_temp$7);
|
|
4628
4632
|
let t0;
|
|
4629
4633
|
bb0: {
|
|
4630
4634
|
if (!messages || messages.length === 0) {
|
|
@@ -4671,7 +4675,7 @@ function useActions() {
|
|
|
4671
4675
|
/**
|
|
4672
4676
|
* Hook to get the current running action (if any)
|
|
4673
4677
|
*/
|
|
4674
|
-
function _temp$
|
|
4678
|
+
function _temp$7(thread) {
|
|
4675
4679
|
return thread.messages;
|
|
4676
4680
|
}
|
|
4677
4681
|
function useCurrentAction() {
|
|
@@ -4711,6 +4715,197 @@ function _temp3$2(a) {
|
|
|
4711
4715
|
return a.status === "success" || a.status === "error";
|
|
4712
4716
|
}
|
|
4713
4717
|
|
|
4718
|
+
//#endregion
|
|
4719
|
+
//#region src/hooks/useVoiceActions.ts
|
|
4720
|
+
/**
|
|
4721
|
+
* Voice Mode Actions Hook
|
|
4722
|
+
*
|
|
4723
|
+
* Tracks tool calls from voice mode as actions.
|
|
4724
|
+
* Maintains a list of actions during the voice session.
|
|
4725
|
+
*/
|
|
4726
|
+
/**
|
|
4727
|
+
* Hook to track voice mode tool calls as actions
|
|
4728
|
+
* Returns actions array that persists during the voice session
|
|
4729
|
+
*/
|
|
4730
|
+
let actionIdCounter = 0;
|
|
4731
|
+
function useVoiceActions() {
|
|
4732
|
+
const $ = c(11);
|
|
4733
|
+
const voiceMode = useOptionalVoiceModeContext();
|
|
4734
|
+
let t0;
|
|
4735
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
4736
|
+
t0 = [];
|
|
4737
|
+
$[0] = t0;
|
|
4738
|
+
} else t0 = $[0];
|
|
4739
|
+
const [actions, setActions] = useState(t0);
|
|
4740
|
+
const lastToolCallRef = useRef(null);
|
|
4741
|
+
const pendingActionIdRef = useRef(null);
|
|
4742
|
+
let t1;
|
|
4743
|
+
if ($[1] !== voiceMode?.isActive || $[2] !== voiceMode?.isConnecting) {
|
|
4744
|
+
t1 = () => {
|
|
4745
|
+
if (!voiceMode?.isActive && !voiceMode?.isConnecting) {
|
|
4746
|
+
const timeout = setTimeout(() => {
|
|
4747
|
+
setActions([]);
|
|
4748
|
+
lastToolCallRef.current = null;
|
|
4749
|
+
}, VOICE_ACTIONS_RETENTION_MS);
|
|
4750
|
+
return () => clearTimeout(timeout);
|
|
4751
|
+
}
|
|
4752
|
+
};
|
|
4753
|
+
$[1] = voiceMode?.isActive;
|
|
4754
|
+
$[2] = voiceMode?.isConnecting;
|
|
4755
|
+
$[3] = t1;
|
|
4756
|
+
} else t1 = $[3];
|
|
4757
|
+
const t2 = voiceMode?.isActive;
|
|
4758
|
+
const t3 = voiceMode?.isConnecting;
|
|
4759
|
+
let t4;
|
|
4760
|
+
if ($[4] !== t2 || $[5] !== t3) {
|
|
4761
|
+
t4 = [t2, t3];
|
|
4762
|
+
$[4] = t2;
|
|
4763
|
+
$[5] = t3;
|
|
4764
|
+
$[6] = t4;
|
|
4765
|
+
} else t4 = $[6];
|
|
4766
|
+
useEffect(t1, t4);
|
|
4767
|
+
let t5;
|
|
4768
|
+
if ($[7] !== voiceMode) {
|
|
4769
|
+
t5 = () => {
|
|
4770
|
+
if (!voiceMode?.toolCall) return;
|
|
4771
|
+
const { toolName, status, error } = voiceMode.toolCall;
|
|
4772
|
+
if (status === "started") {
|
|
4773
|
+
if (lastToolCallRef.current === toolName) return;
|
|
4774
|
+
lastToolCallRef.current = toolName;
|
|
4775
|
+
actionIdCounter = actionIdCounter + 1;
|
|
4776
|
+
const actionId = `voice-action-${actionIdCounter}`;
|
|
4777
|
+
pendingActionIdRef.current = actionId;
|
|
4778
|
+
const newAction = {
|
|
4779
|
+
id: actionId,
|
|
4780
|
+
toolName,
|
|
4781
|
+
label: humanizeToolName(toolName, true),
|
|
4782
|
+
status: "running",
|
|
4783
|
+
startedAt: Date.now()
|
|
4784
|
+
};
|
|
4785
|
+
setActions((prev) => [...prev, newAction]);
|
|
4786
|
+
} else if (status === "completed") {
|
|
4787
|
+
const actionId_0 = pendingActionIdRef.current;
|
|
4788
|
+
if (!actionId_0) return;
|
|
4789
|
+
setActions((prev_0) => {
|
|
4790
|
+
const updated = [...prev_0];
|
|
4791
|
+
const runningIndex = updated.findIndex((a) => a.id === actionId_0);
|
|
4792
|
+
if (runningIndex !== -1) {
|
|
4793
|
+
const action = updated[runningIndex];
|
|
4794
|
+
updated[runningIndex] = {
|
|
4795
|
+
...action,
|
|
4796
|
+
status: error ? "error" : "success",
|
|
4797
|
+
error,
|
|
4798
|
+
label: humanizeToolName(toolName, false),
|
|
4799
|
+
duration: action.startedAt ? Date.now() - action.startedAt : void 0
|
|
4800
|
+
};
|
|
4801
|
+
}
|
|
4802
|
+
return updated;
|
|
4803
|
+
});
|
|
4804
|
+
lastToolCallRef.current = null;
|
|
4805
|
+
pendingActionIdRef.current = null;
|
|
4806
|
+
}
|
|
4807
|
+
};
|
|
4808
|
+
$[7] = voiceMode;
|
|
4809
|
+
$[8] = t5;
|
|
4810
|
+
} else t5 = $[8];
|
|
4811
|
+
const t6 = voiceMode?.toolCall;
|
|
4812
|
+
let t7;
|
|
4813
|
+
if ($[9] !== t6) {
|
|
4814
|
+
t7 = [t6];
|
|
4815
|
+
$[9] = t6;
|
|
4816
|
+
$[10] = t7;
|
|
4817
|
+
} else t7 = $[10];
|
|
4818
|
+
useEffect(t5, t7);
|
|
4819
|
+
return actions;
|
|
4820
|
+
}
|
|
4821
|
+
|
|
4822
|
+
//#endregion
|
|
4823
|
+
//#region src/hooks/useVoiceSummary.ts
|
|
4824
|
+
/**
|
|
4825
|
+
* Voice Summary Hook
|
|
4826
|
+
*
|
|
4827
|
+
* Tracks the last assistant response from voice mode for display as a summary.
|
|
4828
|
+
* Maintains the summary for a short time after the voice session ends.
|
|
4829
|
+
*/
|
|
4830
|
+
/**
|
|
4831
|
+
* Hook to get the latest voice session summary
|
|
4832
|
+
* Returns the last assistant transcript from the voice session
|
|
4833
|
+
*/
|
|
4834
|
+
function useVoiceSummary() {
|
|
4835
|
+
const $ = c(13);
|
|
4836
|
+
const voiceMode = useOptionalVoiceModeContext();
|
|
4837
|
+
const [summary, setSummary] = useState(null);
|
|
4838
|
+
const wasActiveRef = useRef(false);
|
|
4839
|
+
const lastTranscriptRef = useRef("");
|
|
4840
|
+
let t0;
|
|
4841
|
+
if ($[0] !== voiceMode) {
|
|
4842
|
+
t0 = () => {
|
|
4843
|
+
if (!voiceMode?.transcript) return;
|
|
4844
|
+
if (voiceMode.transcript.type === "assistant" && voiceMode.transcript.text) lastTranscriptRef.current = voiceMode.transcript.text;
|
|
4845
|
+
};
|
|
4846
|
+
$[0] = voiceMode;
|
|
4847
|
+
$[1] = t0;
|
|
4848
|
+
} else t0 = $[1];
|
|
4849
|
+
const t1 = voiceMode?.transcript;
|
|
4850
|
+
let t2;
|
|
4851
|
+
if ($[2] !== t1) {
|
|
4852
|
+
t2 = [t1];
|
|
4853
|
+
$[2] = t1;
|
|
4854
|
+
$[3] = t2;
|
|
4855
|
+
} else t2 = $[3];
|
|
4856
|
+
useEffect(t0, t2);
|
|
4857
|
+
let t3;
|
|
4858
|
+
if ($[4] !== voiceMode?.isActive || $[5] !== voiceMode?.isConnecting) {
|
|
4859
|
+
t3 = () => {
|
|
4860
|
+
const isActive = voiceMode?.isActive || voiceMode?.isConnecting;
|
|
4861
|
+
if (wasActiveRef.current && !isActive) {
|
|
4862
|
+
if (lastTranscriptRef.current) setSummary({
|
|
4863
|
+
text: lastTranscriptRef.current,
|
|
4864
|
+
timestamp: Date.now()
|
|
4865
|
+
});
|
|
4866
|
+
}
|
|
4867
|
+
if (!wasActiveRef.current && isActive) {
|
|
4868
|
+
setSummary(null);
|
|
4869
|
+
lastTranscriptRef.current = "";
|
|
4870
|
+
}
|
|
4871
|
+
wasActiveRef.current = !!isActive;
|
|
4872
|
+
};
|
|
4873
|
+
$[4] = voiceMode?.isActive;
|
|
4874
|
+
$[5] = voiceMode?.isConnecting;
|
|
4875
|
+
$[6] = t3;
|
|
4876
|
+
} else t3 = $[6];
|
|
4877
|
+
const t4 = voiceMode?.isActive;
|
|
4878
|
+
const t5 = voiceMode?.isConnecting;
|
|
4879
|
+
let t6;
|
|
4880
|
+
if ($[7] !== t4 || $[8] !== t5) {
|
|
4881
|
+
t6 = [t4, t5];
|
|
4882
|
+
$[7] = t4;
|
|
4883
|
+
$[8] = t5;
|
|
4884
|
+
$[9] = t6;
|
|
4885
|
+
} else t6 = $[9];
|
|
4886
|
+
useEffect(t3, t6);
|
|
4887
|
+
let t7;
|
|
4888
|
+
let t8;
|
|
4889
|
+
if ($[10] !== summary) {
|
|
4890
|
+
t7 = () => {
|
|
4891
|
+
if (!summary) return;
|
|
4892
|
+
const timeout = setTimeout(() => {
|
|
4893
|
+
setSummary(null);
|
|
4894
|
+
}, VOICE_SUMMARY_RETENTION_MS);
|
|
4895
|
+
return () => clearTimeout(timeout);
|
|
4896
|
+
};
|
|
4897
|
+
t8 = [summary];
|
|
4898
|
+
$[10] = summary;
|
|
4899
|
+
$[11] = t7;
|
|
4900
|
+
$[12] = t8;
|
|
4901
|
+
} else {
|
|
4902
|
+
t7 = $[11];
|
|
4903
|
+
t8 = $[12];
|
|
4904
|
+
}
|
|
4905
|
+
useEffect(t7, t8);
|
|
4906
|
+
return summary;
|
|
4907
|
+
}
|
|
4908
|
+
|
|
4714
4909
|
//#endregion
|
|
4715
4910
|
//#region src/components/pill/CurrentActivity.tsx
|
|
4716
4911
|
/**
|
|
@@ -4728,7 +4923,6 @@ const CurrentActivity = (t0) => {
|
|
|
4728
4923
|
} else t3 = $[1];
|
|
4729
4924
|
const recentActions = t3;
|
|
4730
4925
|
const showRecent = t2 === void 0 ? true : t2;
|
|
4731
|
-
if (!currentAction && recentActions.length === 0) return null;
|
|
4732
4926
|
let t4;
|
|
4733
4927
|
if ($[2] !== className) {
|
|
4734
4928
|
t4 = cn("space-y-2", className);
|
|
@@ -4737,12 +4931,18 @@ const CurrentActivity = (t0) => {
|
|
|
4737
4931
|
} else t4 = $[3];
|
|
4738
4932
|
let t5;
|
|
4739
4933
|
if ($[4] !== currentAction) {
|
|
4740
|
-
t5 = currentAction
|
|
4934
|
+
t5 = currentAction ? /* @__PURE__ */ jsxs("div", {
|
|
4741
4935
|
className: "flex items-center gap-2.5",
|
|
4742
4936
|
children: [/* @__PURE__ */ jsx(ActionStatusIcon, { status: currentAction.status }), /* @__PURE__ */ jsxs("span", {
|
|
4743
4937
|
className: "text-sm font-medium text-white",
|
|
4744
4938
|
children: [currentAction.label, "..."]
|
|
4745
4939
|
})]
|
|
4940
|
+
}) : /* @__PURE__ */ jsxs("div", {
|
|
4941
|
+
className: "flex items-center gap-2.5",
|
|
4942
|
+
children: [/* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 text-blue-400 animate-spin" }), /* @__PURE__ */ jsx("span", {
|
|
4943
|
+
className: "text-sm font-medium text-white/80",
|
|
4944
|
+
children: "Thinking..."
|
|
4945
|
+
})]
|
|
4746
4946
|
});
|
|
4747
4947
|
$[4] = currentAction;
|
|
4748
4948
|
$[5] = t5;
|
|
@@ -4751,7 +4951,7 @@ const CurrentActivity = (t0) => {
|
|
|
4751
4951
|
if ($[6] !== recentActions || $[7] !== showRecent) {
|
|
4752
4952
|
t6 = showRecent && recentActions.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
4753
4953
|
className: "ml-1 border-l border-white/20 pl-3 space-y-1",
|
|
4754
|
-
children: recentActions.map(_temp$
|
|
4954
|
+
children: recentActions.map(_temp$6)
|
|
4755
4955
|
});
|
|
4756
4956
|
$[6] = recentActions;
|
|
4757
4957
|
$[7] = showRecent;
|
|
@@ -4897,7 +5097,7 @@ const IdleIndicator = (t0) => {
|
|
|
4897
5097
|
} else t4 = $[5];
|
|
4898
5098
|
return t4;
|
|
4899
5099
|
};
|
|
4900
|
-
function _temp$
|
|
5100
|
+
function _temp$6(action) {
|
|
4901
5101
|
return /* @__PURE__ */ jsxs("div", {
|
|
4902
5102
|
className: "flex items-center gap-2 text-xs text-white/60",
|
|
4903
5103
|
children: [/* @__PURE__ */ jsx(ActionStatusIcon, {
|
|
@@ -4923,7 +5123,7 @@ const ActionList = (t0) => {
|
|
|
4923
5123
|
if (actions.length === 0) return null;
|
|
4924
5124
|
let t2;
|
|
4925
5125
|
if ($[0] !== actions) {
|
|
4926
|
-
t2 = actions.filter(_temp$
|
|
5126
|
+
t2 = actions.filter(_temp$5);
|
|
4927
5127
|
$[0] = actions;
|
|
4928
5128
|
$[1] = t2;
|
|
4929
5129
|
} else t2 = $[1];
|
|
@@ -5153,7 +5353,7 @@ function formatDuration(ms) {
|
|
|
5153
5353
|
if (seconds < 60) return `${seconds.toFixed(1)}s`;
|
|
5154
5354
|
return `${Math.floor(seconds / 60)}m ${Math.floor(seconds % 60)}s`;
|
|
5155
5355
|
}
|
|
5156
|
-
function _temp$
|
|
5356
|
+
function _temp$5(a) {
|
|
5157
5357
|
return a.status === "success";
|
|
5158
5358
|
}
|
|
5159
5359
|
function _temp2$3(action) {
|
|
@@ -5162,124 +5362,168 @@ function _temp2$3(action) {
|
|
|
5162
5362
|
|
|
5163
5363
|
//#endregion
|
|
5164
5364
|
//#region src/components/pill/PillComposer.tsx
|
|
5365
|
+
const MAX_CHARS = 4e3;
|
|
5366
|
+
/**
|
|
5367
|
+
* Character count indicator
|
|
5368
|
+
*/
|
|
5369
|
+
const CharacterCount = () => {
|
|
5370
|
+
const $ = c(5);
|
|
5371
|
+
const charCount = useComposer(_temp$4)?.length ?? 0;
|
|
5372
|
+
if (charCount < MAX_CHARS * .8) return null;
|
|
5373
|
+
const isOver = charCount > MAX_CHARS;
|
|
5374
|
+
const remaining = MAX_CHARS - charCount;
|
|
5375
|
+
const t0 = isOver ? "text-red-400" : "text-white/40";
|
|
5376
|
+
let t1;
|
|
5377
|
+
if ($[0] !== t0) {
|
|
5378
|
+
t1 = cn("text-[10px] tabular-nums", t0);
|
|
5379
|
+
$[0] = t0;
|
|
5380
|
+
$[1] = t1;
|
|
5381
|
+
} else t1 = $[1];
|
|
5382
|
+
let t2;
|
|
5383
|
+
if ($[2] !== remaining || $[3] !== t1) {
|
|
5384
|
+
t2 = /* @__PURE__ */ jsx("span", {
|
|
5385
|
+
className: t1,
|
|
5386
|
+
children: remaining
|
|
5387
|
+
});
|
|
5388
|
+
$[2] = remaining;
|
|
5389
|
+
$[3] = t1;
|
|
5390
|
+
$[4] = t2;
|
|
5391
|
+
} else t2 = $[4];
|
|
5392
|
+
return t2;
|
|
5393
|
+
};
|
|
5165
5394
|
/**
|
|
5166
5395
|
* Compact composer for the pill UI.
|
|
5167
5396
|
* Uses assistant-ui primitives for data binding.
|
|
5397
|
+
* Features auto-growing textarea and character count.
|
|
5168
5398
|
*/
|
|
5169
5399
|
const PillComposer = (t0) => {
|
|
5170
|
-
const $ = c(
|
|
5171
|
-
const { placeholder: t1, showVoiceButton: t2, isVoiceActive: t3, onVoiceToggle, className } = t0;
|
|
5400
|
+
const $ = c(20);
|
|
5401
|
+
const { placeholder: t1, showVoiceButton: t2, isVoiceActive: t3, onVoiceToggle, showCharCount: t4, className } = t0;
|
|
5172
5402
|
const placeholder = t1 === void 0 ? "Ask something..." : t1;
|
|
5173
5403
|
const showVoiceButton = t2 === void 0 ? false : t2;
|
|
5174
5404
|
const isVoiceActive = t3 === void 0 ? false : t3;
|
|
5175
|
-
|
|
5405
|
+
const showCharCount = t4 === void 0 ? true : t4;
|
|
5406
|
+
let t5;
|
|
5176
5407
|
if ($[0] !== className) {
|
|
5177
|
-
|
|
5408
|
+
t5 = cn("flex items-end gap-2", "rounded-2xl", "bg-white/10 border border-white/10", "px-3 py-2", "focus-within:border-white/20 focus-within:bg-white/15", "transition-colors duration-200", className);
|
|
5178
5409
|
$[0] = className;
|
|
5179
|
-
$[1] =
|
|
5180
|
-
} else
|
|
5181
|
-
let t5;
|
|
5182
|
-
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
5183
|
-
t5 = cn("flex-1 min-w-0", "bg-transparent", "text-sm text-white placeholder:text-white/40", "outline-none", "resize-none");
|
|
5184
|
-
$[2] = t5;
|
|
5185
|
-
} else t5 = $[2];
|
|
5410
|
+
$[1] = t5;
|
|
5411
|
+
} else t5 = $[1];
|
|
5186
5412
|
let t6;
|
|
5413
|
+
if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
|
|
5414
|
+
t6 = cn("flex-1 min-w-0", "bg-transparent", "text-sm text-white placeholder:text-white/40", "outline-none", "resize-none", "max-h-32 overflow-y-auto");
|
|
5415
|
+
$[2] = t6;
|
|
5416
|
+
} else t6 = $[2];
|
|
5417
|
+
let t7;
|
|
5187
5418
|
if ($[3] !== placeholder) {
|
|
5188
|
-
|
|
5419
|
+
t7 = /* @__PURE__ */ jsx(ComposerPrimitive.Input, {
|
|
5189
5420
|
placeholder,
|
|
5190
|
-
className:
|
|
5191
|
-
autoFocus: true
|
|
5421
|
+
className: t6,
|
|
5422
|
+
autoFocus: true,
|
|
5423
|
+
rows: 1
|
|
5192
5424
|
});
|
|
5193
5425
|
$[3] = placeholder;
|
|
5194
|
-
$[4] =
|
|
5195
|
-
} else
|
|
5196
|
-
let
|
|
5197
|
-
if ($[5] !==
|
|
5198
|
-
|
|
5426
|
+
$[4] = t7;
|
|
5427
|
+
} else t7 = $[4];
|
|
5428
|
+
let t8;
|
|
5429
|
+
if ($[5] !== showCharCount) {
|
|
5430
|
+
t8 = showCharCount && /* @__PURE__ */ jsx(CharacterCount, {});
|
|
5431
|
+
$[5] = showCharCount;
|
|
5432
|
+
$[6] = t8;
|
|
5433
|
+
} else t8 = $[6];
|
|
5434
|
+
let t9;
|
|
5435
|
+
if ($[7] !== isVoiceActive || $[8] !== onVoiceToggle || $[9] !== showVoiceButton) {
|
|
5436
|
+
t9 = showVoiceButton && onVoiceToggle && /* @__PURE__ */ jsx("button", {
|
|
5199
5437
|
type: "button",
|
|
5200
5438
|
onClick: onVoiceToggle,
|
|
5201
5439
|
className: cn("flex-shrink-0", "p-1.5 rounded-full", "transition-colors duration-200", isVoiceActive ? "bg-red-500 text-white" : "hover:bg-white/10 text-white/60 hover:text-white"),
|
|
5202
5440
|
"aria-label": isVoiceActive ? "Stop voice input" : "Start voice input",
|
|
5203
5441
|
children: /* @__PURE__ */ jsx(Mic, { className: "h-4 w-4" })
|
|
5204
5442
|
});
|
|
5205
|
-
$[
|
|
5206
|
-
$[
|
|
5207
|
-
$[
|
|
5208
|
-
$[
|
|
5209
|
-
} else
|
|
5210
|
-
let
|
|
5211
|
-
if ($[
|
|
5212
|
-
|
|
5213
|
-
$[
|
|
5214
|
-
} else
|
|
5215
|
-
let
|
|
5216
|
-
if ($[
|
|
5217
|
-
|
|
5443
|
+
$[7] = isVoiceActive;
|
|
5444
|
+
$[8] = onVoiceToggle;
|
|
5445
|
+
$[9] = showVoiceButton;
|
|
5446
|
+
$[10] = t9;
|
|
5447
|
+
} else t9 = $[10];
|
|
5448
|
+
let t10;
|
|
5449
|
+
if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
|
|
5450
|
+
t10 = cn("flex-shrink-0", "p-1.5 rounded-full", "bg-primary text-primary-foreground", "hover:bg-primary/90", "disabled:opacity-50 disabled:cursor-not-allowed", "transition-colors duration-200");
|
|
5451
|
+
$[11] = t10;
|
|
5452
|
+
} else t10 = $[11];
|
|
5453
|
+
let t11;
|
|
5454
|
+
if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
|
|
5455
|
+
t11 = /* @__PURE__ */ jsx(ThreadPrimitive.If, {
|
|
5218
5456
|
running: false,
|
|
5219
5457
|
children: /* @__PURE__ */ jsx(ComposerPrimitive.Send, {
|
|
5220
5458
|
asChild: true,
|
|
5221
5459
|
children: /* @__PURE__ */ jsx("button", {
|
|
5222
5460
|
type: "submit",
|
|
5223
|
-
className:
|
|
5461
|
+
className: t10,
|
|
5224
5462
|
"aria-label": "Send message",
|
|
5225
5463
|
children: /* @__PURE__ */ jsx(Send, { className: "h-4 w-4" })
|
|
5226
5464
|
})
|
|
5227
5465
|
})
|
|
5228
5466
|
});
|
|
5229
|
-
$[
|
|
5230
|
-
} else
|
|
5231
|
-
let
|
|
5232
|
-
if ($[
|
|
5233
|
-
|
|
5234
|
-
$[
|
|
5235
|
-
} else
|
|
5236
|
-
let
|
|
5237
|
-
if ($[
|
|
5238
|
-
|
|
5467
|
+
$[12] = t11;
|
|
5468
|
+
} else t11 = $[12];
|
|
5469
|
+
let t12;
|
|
5470
|
+
if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
|
|
5471
|
+
t12 = cn("flex-shrink-0", "p-1.5 rounded-full", "bg-red-500 text-white", "hover:bg-red-600", "transition-colors duration-200");
|
|
5472
|
+
$[13] = t12;
|
|
5473
|
+
} else t12 = $[13];
|
|
5474
|
+
let t13;
|
|
5475
|
+
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
|
5476
|
+
t13 = /* @__PURE__ */ jsx(ThreadPrimitive.If, {
|
|
5239
5477
|
running: true,
|
|
5240
5478
|
children: /* @__PURE__ */ jsx(ComposerPrimitive.Cancel, {
|
|
5241
5479
|
asChild: true,
|
|
5242
5480
|
children: /* @__PURE__ */ jsx("button", {
|
|
5243
5481
|
type: "button",
|
|
5244
|
-
className:
|
|
5482
|
+
className: t12,
|
|
5245
5483
|
"aria-label": "Stop generating",
|
|
5246
5484
|
children: /* @__PURE__ */ jsx(Square, { className: "h-3.5 w-3.5" })
|
|
5247
5485
|
})
|
|
5248
5486
|
})
|
|
5249
5487
|
});
|
|
5250
|
-
$[
|
|
5251
|
-
} else
|
|
5252
|
-
let
|
|
5253
|
-
if ($[
|
|
5254
|
-
|
|
5255
|
-
className:
|
|
5488
|
+
$[14] = t13;
|
|
5489
|
+
} else t13 = $[14];
|
|
5490
|
+
let t14;
|
|
5491
|
+
if ($[15] !== t5 || $[16] !== t7 || $[17] !== t8 || $[18] !== t9) {
|
|
5492
|
+
t14 = /* @__PURE__ */ jsxs(ComposerPrimitive.Root, {
|
|
5493
|
+
className: t5,
|
|
5256
5494
|
children: [
|
|
5257
|
-
t6,
|
|
5258
5495
|
t7,
|
|
5496
|
+
t8,
|
|
5259
5497
|
t9,
|
|
5260
|
-
t11
|
|
5498
|
+
t11,
|
|
5499
|
+
t13
|
|
5261
5500
|
]
|
|
5262
5501
|
});
|
|
5263
|
-
$[
|
|
5264
|
-
$[
|
|
5265
|
-
$[
|
|
5266
|
-
$[
|
|
5267
|
-
|
|
5268
|
-
|
|
5502
|
+
$[15] = t5;
|
|
5503
|
+
$[16] = t7;
|
|
5504
|
+
$[17] = t8;
|
|
5505
|
+
$[18] = t9;
|
|
5506
|
+
$[19] = t14;
|
|
5507
|
+
} else t14 = $[19];
|
|
5508
|
+
return t14;
|
|
5269
5509
|
};
|
|
5510
|
+
function _temp$4(c$1) {
|
|
5511
|
+
return c$1.text;
|
|
5512
|
+
}
|
|
5270
5513
|
|
|
5271
5514
|
//#endregion
|
|
5272
5515
|
//#region src/components/pill/PillContainer.tsx
|
|
5273
5516
|
const sizeSpring = {
|
|
5274
5517
|
type: "spring",
|
|
5275
|
-
stiffness:
|
|
5276
|
-
damping:
|
|
5518
|
+
stiffness: 400,
|
|
5519
|
+
damping: 35,
|
|
5277
5520
|
mass: .8
|
|
5278
5521
|
};
|
|
5522
|
+
const reducedMotionTransition = { duration: 0 };
|
|
5279
5523
|
const containerVariants = {
|
|
5280
5524
|
collapsed: {
|
|
5281
|
-
width: "
|
|
5282
|
-
height: "
|
|
5525
|
+
width: "80px",
|
|
5526
|
+
height: "8px",
|
|
5283
5527
|
padding: "0px",
|
|
5284
5528
|
borderRadius: "9999px"
|
|
5285
5529
|
},
|
|
@@ -5296,62 +5540,44 @@ const containerVariants = {
|
|
|
5296
5540
|
borderRadius: "20px"
|
|
5297
5541
|
},
|
|
5298
5542
|
active: {
|
|
5299
|
-
width: "min(
|
|
5543
|
+
width: "min(420px, calc(100vw - 2rem))",
|
|
5300
5544
|
height: "auto",
|
|
5301
5545
|
padding: "10px 14px",
|
|
5302
5546
|
borderRadius: "20px"
|
|
5303
5547
|
},
|
|
5304
5548
|
expanded: {
|
|
5305
|
-
width: "min(
|
|
5549
|
+
width: "min(440px, calc(100vw - 2rem))",
|
|
5306
5550
|
height: "auto",
|
|
5307
5551
|
padding: "12px 16px",
|
|
5308
5552
|
borderRadius: "20px"
|
|
5309
5553
|
}
|
|
5310
5554
|
};
|
|
5311
5555
|
const contentVariants = {
|
|
5312
|
-
hidden: {
|
|
5313
|
-
opacity: 0,
|
|
5314
|
-
y: 8,
|
|
5315
|
-
scale: .95
|
|
5316
|
-
},
|
|
5556
|
+
hidden: { opacity: 0 },
|
|
5317
5557
|
visible: {
|
|
5318
5558
|
opacity: 1,
|
|
5319
|
-
y: 0,
|
|
5320
|
-
scale: 1,
|
|
5321
5559
|
transition: {
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
damping: 30,
|
|
5325
|
-
staggerChildren: .05
|
|
5560
|
+
duration: .15,
|
|
5561
|
+
delay: .1
|
|
5326
5562
|
}
|
|
5327
5563
|
},
|
|
5328
5564
|
exit: {
|
|
5329
5565
|
opacity: 0,
|
|
5330
|
-
|
|
5331
|
-
scale: .98,
|
|
5332
|
-
transition: {
|
|
5333
|
-
duration: .15,
|
|
5334
|
-
ease: "easeOut"
|
|
5335
|
-
}
|
|
5566
|
+
transition: { duration: .1 }
|
|
5336
5567
|
}
|
|
5337
5568
|
};
|
|
5338
5569
|
const hintVariants = {
|
|
5339
|
-
hidden: {
|
|
5340
|
-
opacity: 0,
|
|
5341
|
-
scale: .9
|
|
5342
|
-
},
|
|
5570
|
+
hidden: { opacity: 0 },
|
|
5343
5571
|
visible: {
|
|
5344
5572
|
opacity: 1,
|
|
5345
|
-
scale: 1,
|
|
5346
5573
|
transition: {
|
|
5347
|
-
delay: .
|
|
5348
|
-
duration: .
|
|
5574
|
+
delay: .05,
|
|
5575
|
+
duration: .15
|
|
5349
5576
|
}
|
|
5350
5577
|
},
|
|
5351
5578
|
exit: {
|
|
5352
5579
|
opacity: 0,
|
|
5353
|
-
|
|
5354
|
-
transition: { duration: .1 }
|
|
5580
|
+
transition: { duration: .08 }
|
|
5355
5581
|
}
|
|
5356
5582
|
};
|
|
5357
5583
|
const barVariants = {
|
|
@@ -5381,6 +5607,7 @@ const PillContainer = (t0) => {
|
|
|
5381
5607
|
const { mode, children, onModeChange, className } = t0;
|
|
5382
5608
|
const [isHovered, setIsHovered] = useState(false);
|
|
5383
5609
|
const hoverTimeoutRef = useRef(null);
|
|
5610
|
+
const prefersReducedMotion = useReducedMotion();
|
|
5384
5611
|
let t1;
|
|
5385
5612
|
if ($[0] !== mode || $[1] !== onModeChange) {
|
|
5386
5613
|
t1 = () => {
|
|
@@ -5424,11 +5651,17 @@ const PillContainer = (t0) => {
|
|
|
5424
5651
|
if ($[9] !== mode || $[10] !== onModeChange) {
|
|
5425
5652
|
t4 = () => {
|
|
5426
5653
|
const handleKeyDown = (e) => {
|
|
5427
|
-
|
|
5654
|
+
const isShortcut = (e.ctrlKey || e.metaKey) && e.shiftKey && e.key.toLowerCase() === "k";
|
|
5655
|
+
const isEscape = e.key === "Escape";
|
|
5656
|
+
if (isShortcut) {
|
|
5428
5657
|
e.preventDefault();
|
|
5429
5658
|
if (mode === "collapsed") onModeChange?.("composing");
|
|
5430
5659
|
else if (mode === "composing" || mode === "hovered") onModeChange?.("collapsed");
|
|
5431
5660
|
}
|
|
5661
|
+
if (isEscape && (mode === "composing" || mode === "expanded" || mode === "hovered")) {
|
|
5662
|
+
e.preventDefault();
|
|
5663
|
+
onModeChange?.("collapsed");
|
|
5664
|
+
}
|
|
5432
5665
|
};
|
|
5433
5666
|
window.addEventListener("keydown", handleKeyDown);
|
|
5434
5667
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
|
@@ -5459,47 +5692,44 @@ const PillContainer = (t0) => {
|
|
|
5459
5692
|
useEffect(t6, t7);
|
|
5460
5693
|
const showContent = mode !== "collapsed" && mode !== "hovered";
|
|
5461
5694
|
const currentVariant = containerVariants[mode];
|
|
5462
|
-
const t8 =
|
|
5463
|
-
const t9 = mode === "
|
|
5464
|
-
const t10 =
|
|
5465
|
-
const t11 = mode === "
|
|
5466
|
-
|
|
5467
|
-
|
|
5468
|
-
|
|
5695
|
+
const t8 = !prefersReducedMotion && "will-change-transform";
|
|
5696
|
+
const t9 = mode === "collapsed" && "glass-pill-collapsed glass-shimmer";
|
|
5697
|
+
const t10 = mode === "hovered" && "glass-pill-hovered";
|
|
5698
|
+
const t11 = (mode === "composing" || mode === "expanded") && "glass-pill";
|
|
5699
|
+
const t12 = mode === "active" && "glass-pill glass-active";
|
|
5700
|
+
let t13;
|
|
5701
|
+
if ($[15] !== className || $[16] !== t10 || $[17] !== t11 || $[18] !== t12 || $[19] !== t8 || $[20] !== t9) {
|
|
5702
|
+
t13 = cn("relative overflow-hidden", t8, "focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30 focus-visible:ring-offset-2 focus-visible:ring-offset-transparent", t9, t10, t11, t12, className);
|
|
5469
5703
|
$[15] = className;
|
|
5470
5704
|
$[16] = t10;
|
|
5471
5705
|
$[17] = t11;
|
|
5472
|
-
$[18] =
|
|
5473
|
-
$[19] =
|
|
5474
|
-
$[20] =
|
|
5475
|
-
|
|
5476
|
-
|
|
5477
|
-
|
|
5478
|
-
|
|
5479
|
-
|
|
5706
|
+
$[18] = t12;
|
|
5707
|
+
$[19] = t8;
|
|
5708
|
+
$[20] = t9;
|
|
5709
|
+
$[21] = t13;
|
|
5710
|
+
} else t13 = $[21];
|
|
5711
|
+
const glassClassName = t13;
|
|
5712
|
+
const transition = prefersReducedMotion ? reducedMotionTransition : sizeSpring;
|
|
5713
|
+
const t14 = !prefersReducedMotion;
|
|
5714
|
+
let t15;
|
|
5715
|
+
if ($[22] !== currentVariant.borderRadius || $[23] !== currentVariant.height || $[24] !== currentVariant.padding || $[25] !== currentVariant.width) {
|
|
5716
|
+
t15 = {
|
|
5480
5717
|
width: currentVariant.width,
|
|
5481
5718
|
height: currentVariant.height,
|
|
5482
5719
|
padding: currentVariant.padding,
|
|
5483
5720
|
borderRadius: currentVariant.borderRadius
|
|
5484
5721
|
};
|
|
5485
|
-
$[
|
|
5486
|
-
$[
|
|
5487
|
-
$[
|
|
5488
|
-
$[
|
|
5489
|
-
$[
|
|
5490
|
-
} else
|
|
5491
|
-
const
|
|
5492
|
-
const
|
|
5493
|
-
const
|
|
5494
|
-
const t17 = showContent ? "60px" : void 0;
|
|
5495
|
-
let t18;
|
|
5496
|
-
if ($[26] !== t17) {
|
|
5497
|
-
t18 = { minHeight: t17 };
|
|
5498
|
-
$[26] = t17;
|
|
5499
|
-
$[27] = t18;
|
|
5500
|
-
} else t18 = $[27];
|
|
5722
|
+
$[22] = currentVariant.borderRadius;
|
|
5723
|
+
$[23] = currentVariant.height;
|
|
5724
|
+
$[24] = currentVariant.padding;
|
|
5725
|
+
$[25] = currentVariant.width;
|
|
5726
|
+
$[26] = t15;
|
|
5727
|
+
} else t15 = $[26];
|
|
5728
|
+
const t16 = mode === "collapsed" || mode === "hovered" ? "button" : void 0;
|
|
5729
|
+
const t17 = mode === "collapsed" || mode === "hovered" ? 0 : void 0;
|
|
5730
|
+
const t18 = mode === "collapsed" ? "Open assistant" : void 0;
|
|
5501
5731
|
let t19;
|
|
5502
|
-
if ($[
|
|
5732
|
+
if ($[27] !== isHovered || $[28] !== mode) {
|
|
5503
5733
|
t19 = mode === "collapsed" && /* @__PURE__ */ jsx(motion.div, {
|
|
5504
5734
|
className: "absolute inset-0",
|
|
5505
5735
|
variants: barVariants,
|
|
@@ -5514,21 +5744,21 @@ const PillContainer = (t0) => {
|
|
|
5514
5744
|
backgroundSize: "200% 100%"
|
|
5515
5745
|
}
|
|
5516
5746
|
}, "collapsed-bar");
|
|
5517
|
-
$[
|
|
5518
|
-
$[
|
|
5519
|
-
$[
|
|
5520
|
-
} else t19 = $[
|
|
5747
|
+
$[27] = isHovered;
|
|
5748
|
+
$[28] = mode;
|
|
5749
|
+
$[29] = t19;
|
|
5750
|
+
} else t19 = $[29];
|
|
5521
5751
|
let t20;
|
|
5522
|
-
if ($[
|
|
5752
|
+
if ($[30] !== t19) {
|
|
5523
5753
|
t20 = /* @__PURE__ */ jsx(AnimatePresence, {
|
|
5524
5754
|
mode: "wait",
|
|
5525
5755
|
children: t19
|
|
5526
5756
|
});
|
|
5527
|
-
$[
|
|
5528
|
-
$[
|
|
5529
|
-
} else t20 = $[
|
|
5757
|
+
$[30] = t19;
|
|
5758
|
+
$[31] = t20;
|
|
5759
|
+
} else t20 = $[31];
|
|
5530
5760
|
let t21;
|
|
5531
|
-
if ($[
|
|
5761
|
+
if ($[32] !== mode) {
|
|
5532
5762
|
t21 = mode === "hovered" && /* @__PURE__ */ jsx(motion.div, {
|
|
5533
5763
|
className: "relative z-10 flex h-full w-full items-center justify-center",
|
|
5534
5764
|
variants: hintVariants,
|
|
@@ -5547,20 +5777,20 @@ const PillContainer = (t0) => {
|
|
|
5547
5777
|
]
|
|
5548
5778
|
})
|
|
5549
5779
|
}, "hover-hint");
|
|
5550
|
-
$[
|
|
5551
|
-
$[
|
|
5552
|
-
} else t21 = $[
|
|
5780
|
+
$[32] = mode;
|
|
5781
|
+
$[33] = t21;
|
|
5782
|
+
} else t21 = $[33];
|
|
5553
5783
|
let t22;
|
|
5554
|
-
if ($[
|
|
5784
|
+
if ($[34] !== t21) {
|
|
5555
5785
|
t22 = /* @__PURE__ */ jsx(AnimatePresence, {
|
|
5556
5786
|
mode: "wait",
|
|
5557
5787
|
children: t21
|
|
5558
5788
|
});
|
|
5559
|
-
$[
|
|
5560
|
-
$[
|
|
5561
|
-
} else t22 = $[
|
|
5789
|
+
$[34] = t21;
|
|
5790
|
+
$[35] = t22;
|
|
5791
|
+
} else t22 = $[35];
|
|
5562
5792
|
let t23;
|
|
5563
|
-
if ($[
|
|
5793
|
+
if ($[36] !== children || $[37] !== showContent) {
|
|
5564
5794
|
t23 = showContent && /* @__PURE__ */ jsx(motion.div, {
|
|
5565
5795
|
className: "relative z-10 flex flex-col gap-2",
|
|
5566
5796
|
variants: contentVariants,
|
|
@@ -5569,52 +5799,52 @@ const PillContainer = (t0) => {
|
|
|
5569
5799
|
exit: "exit",
|
|
5570
5800
|
children
|
|
5571
5801
|
}, "content");
|
|
5572
|
-
$[
|
|
5573
|
-
$[
|
|
5574
|
-
$[
|
|
5575
|
-
} else t23 = $[
|
|
5802
|
+
$[36] = children;
|
|
5803
|
+
$[37] = showContent;
|
|
5804
|
+
$[38] = t23;
|
|
5805
|
+
} else t23 = $[38];
|
|
5576
5806
|
let t24;
|
|
5577
|
-
if ($[
|
|
5807
|
+
if ($[39] !== t23) {
|
|
5578
5808
|
t24 = /* @__PURE__ */ jsx(AnimatePresence, {
|
|
5579
5809
|
mode: "wait",
|
|
5580
5810
|
children: t23
|
|
5581
5811
|
});
|
|
5582
|
-
$[
|
|
5583
|
-
$[
|
|
5584
|
-
} else t24 = $[
|
|
5812
|
+
$[39] = t23;
|
|
5813
|
+
$[40] = t24;
|
|
5814
|
+
} else t24 = $[40];
|
|
5585
5815
|
let t25;
|
|
5586
|
-
if ($[
|
|
5816
|
+
if ($[41] !== glassClassName || $[42] !== handleClick || $[43] !== handleMouseEnter || $[44] !== handleMouseLeave || $[45] !== t14 || $[46] !== t15 || $[47] !== t16 || $[48] !== t17 || $[49] !== t18 || $[50] !== t20 || $[51] !== t22 || $[52] !== t24 || $[53] !== transition) {
|
|
5587
5817
|
t25 = /* @__PURE__ */ jsxs(motion.div, {
|
|
5588
|
-
layout:
|
|
5818
|
+
layout: t14,
|
|
5589
5819
|
className: glassClassName,
|
|
5590
5820
|
initial: false,
|
|
5591
|
-
animate:
|
|
5592
|
-
transition
|
|
5821
|
+
animate: t15,
|
|
5822
|
+
transition,
|
|
5593
5823
|
onMouseEnter: handleMouseEnter,
|
|
5594
5824
|
onMouseLeave: handleMouseLeave,
|
|
5595
5825
|
onClick: handleClick,
|
|
5596
|
-
role:
|
|
5597
|
-
tabIndex:
|
|
5598
|
-
"aria-label":
|
|
5599
|
-
style: t18,
|
|
5826
|
+
role: t16,
|
|
5827
|
+
tabIndex: t17,
|
|
5828
|
+
"aria-label": t18,
|
|
5600
5829
|
children: [
|
|
5601
5830
|
t20,
|
|
5602
5831
|
t22,
|
|
5603
5832
|
t24
|
|
5604
5833
|
]
|
|
5605
5834
|
});
|
|
5606
|
-
$[
|
|
5607
|
-
$[
|
|
5608
|
-
$[
|
|
5609
|
-
$[
|
|
5610
|
-
$[
|
|
5611
|
-
$[
|
|
5612
|
-
$[
|
|
5613
|
-
$[
|
|
5614
|
-
$[
|
|
5615
|
-
$[
|
|
5616
|
-
$[
|
|
5617
|
-
$[
|
|
5835
|
+
$[41] = glassClassName;
|
|
5836
|
+
$[42] = handleClick;
|
|
5837
|
+
$[43] = handleMouseEnter;
|
|
5838
|
+
$[44] = handleMouseLeave;
|
|
5839
|
+
$[45] = t14;
|
|
5840
|
+
$[46] = t15;
|
|
5841
|
+
$[47] = t16;
|
|
5842
|
+
$[48] = t17;
|
|
5843
|
+
$[49] = t18;
|
|
5844
|
+
$[50] = t20;
|
|
5845
|
+
$[51] = t22;
|
|
5846
|
+
$[52] = t24;
|
|
5847
|
+
$[53] = transition;
|
|
5618
5848
|
$[54] = t25;
|
|
5619
5849
|
} else t25 = $[54];
|
|
5620
5850
|
return t25;
|
|
@@ -6398,74 +6628,121 @@ function _temp4$1(t0) {
|
|
|
6398
6628
|
/**
|
|
6399
6629
|
* Summary block showing the agent's synthesized output.
|
|
6400
6630
|
* Displayed after task completion instead of token streaming.
|
|
6631
|
+
* Uses compact styling with max-height and scrolling for long responses.
|
|
6401
6632
|
*/
|
|
6402
6633
|
const SummaryBlock = (t0) => {
|
|
6403
|
-
const $ = c(
|
|
6634
|
+
const $ = c(27);
|
|
6404
6635
|
const { summary, isSuccess, isError, actions, className } = t0;
|
|
6405
|
-
const
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
|
|
6636
|
+
const [copied, setCopied] = useState(false);
|
|
6637
|
+
let t1;
|
|
6638
|
+
if ($[0] !== summary) {
|
|
6639
|
+
t1 = async () => {
|
|
6640
|
+
try {
|
|
6641
|
+
await navigator.clipboard.writeText(summary);
|
|
6642
|
+
setCopied(true);
|
|
6643
|
+
setTimeout(() => setCopied(false), 2e3);
|
|
6644
|
+
} catch {}
|
|
6645
|
+
};
|
|
6646
|
+
$[0] = summary;
|
|
6412
6647
|
$[1] = t1;
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6648
|
+
} else t1 = $[1];
|
|
6649
|
+
const handleCopy = t1;
|
|
6650
|
+
const t2 = isSuccess && "bg-green-500/10 border border-green-500/20";
|
|
6651
|
+
const t3 = isError && "bg-red-500/10 border border-red-500/20";
|
|
6652
|
+
const t4 = !isSuccess && !isError && "bg-white/5 border border-white/10";
|
|
6417
6653
|
let t5;
|
|
6418
|
-
if ($[
|
|
6419
|
-
t5 = (
|
|
6420
|
-
|
|
6654
|
+
if ($[2] !== className || $[3] !== t2 || $[4] !== t3 || $[5] !== t4) {
|
|
6655
|
+
t5 = cn("rounded-xl p-3 relative group", t2, t3, t4, className);
|
|
6656
|
+
$[2] = className;
|
|
6657
|
+
$[3] = t2;
|
|
6658
|
+
$[4] = t3;
|
|
6659
|
+
$[5] = t4;
|
|
6660
|
+
$[6] = t5;
|
|
6661
|
+
} else t5 = $[6];
|
|
6662
|
+
let t6;
|
|
6663
|
+
if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
|
|
6664
|
+
t6 = cn("absolute top-2 right-2 z-10", "p-1 rounded", "opacity-0 group-hover:opacity-100", "hover:bg-white/10", "text-white/40 hover:text-white/70", "transition-all duration-150");
|
|
6665
|
+
$[7] = t6;
|
|
6666
|
+
} else t6 = $[7];
|
|
6667
|
+
const t7 = copied ? "Copied!" : "Copy response";
|
|
6668
|
+
let t8;
|
|
6669
|
+
if ($[8] !== copied) {
|
|
6670
|
+
t8 = copied ? /* @__PURE__ */ jsx(Check, { className: "h-3.5 w-3.5 text-green-400" }) : /* @__PURE__ */ jsx(Copy, { className: "h-3.5 w-3.5" });
|
|
6671
|
+
$[8] = copied;
|
|
6672
|
+
$[9] = t8;
|
|
6673
|
+
} else t8 = $[9];
|
|
6674
|
+
let t9;
|
|
6675
|
+
if ($[10] !== handleCopy || $[11] !== t7 || $[12] !== t8) {
|
|
6676
|
+
t9 = /* @__PURE__ */ jsx("button", {
|
|
6677
|
+
type: "button",
|
|
6678
|
+
onClick: handleCopy,
|
|
6679
|
+
className: t6,
|
|
6680
|
+
"aria-label": t7,
|
|
6681
|
+
children: t8
|
|
6682
|
+
});
|
|
6683
|
+
$[10] = handleCopy;
|
|
6684
|
+
$[11] = t7;
|
|
6685
|
+
$[12] = t8;
|
|
6686
|
+
$[13] = t9;
|
|
6687
|
+
} else t9 = $[13];
|
|
6688
|
+
let t10;
|
|
6689
|
+
if ($[14] !== isError || $[15] !== isSuccess) {
|
|
6690
|
+
t10 = (isSuccess || isError) && /* @__PURE__ */ jsxs("div", {
|
|
6691
|
+
className: "flex items-center gap-2 mb-2",
|
|
6421
6692
|
children: [
|
|
6422
6693
|
isSuccess && /* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 text-green-400" }),
|
|
6423
6694
|
isError && /* @__PURE__ */ jsx(AlertCircle, { className: "h-4 w-4 text-red-400" }),
|
|
6424
6695
|
/* @__PURE__ */ jsx("span", {
|
|
6425
|
-
className: cn("text-
|
|
6426
|
-
children: isSuccess ? "
|
|
6696
|
+
className: cn("text-xs font-medium", isSuccess && "text-green-400", isError && "text-red-400"),
|
|
6697
|
+
children: isSuccess ? "Done" : "Error"
|
|
6427
6698
|
})
|
|
6428
6699
|
]
|
|
6429
6700
|
});
|
|
6430
|
-
$[
|
|
6431
|
-
$[
|
|
6432
|
-
$[
|
|
6433
|
-
} else
|
|
6434
|
-
let
|
|
6435
|
-
if ($[
|
|
6436
|
-
|
|
6437
|
-
|
|
6438
|
-
|
|
6701
|
+
$[14] = isError;
|
|
6702
|
+
$[15] = isSuccess;
|
|
6703
|
+
$[16] = t10;
|
|
6704
|
+
} else t10 = $[16];
|
|
6705
|
+
let t11;
|
|
6706
|
+
if ($[17] !== summary) {
|
|
6707
|
+
t11 = /* @__PURE__ */ jsx("div", {
|
|
6708
|
+
className: "max-h-32 overflow-y-auto pr-1 scrollbar-thin",
|
|
6709
|
+
children: /* @__PURE__ */ jsx(PillMarkdown, {
|
|
6710
|
+
content: summary,
|
|
6711
|
+
className: "text-white/90",
|
|
6712
|
+
compact: true
|
|
6713
|
+
})
|
|
6439
6714
|
});
|
|
6440
|
-
$[
|
|
6441
|
-
$[
|
|
6442
|
-
} else
|
|
6443
|
-
let
|
|
6444
|
-
if ($[
|
|
6445
|
-
|
|
6446
|
-
className: "flex flex-wrap gap-2 mt-
|
|
6715
|
+
$[17] = summary;
|
|
6716
|
+
$[18] = t11;
|
|
6717
|
+
} else t11 = $[18];
|
|
6718
|
+
let t12;
|
|
6719
|
+
if ($[19] !== actions) {
|
|
6720
|
+
t12 = actions && actions.length > 0 && /* @__PURE__ */ jsx("div", {
|
|
6721
|
+
className: "flex flex-wrap gap-2 mt-3 pt-2 border-t border-white/10",
|
|
6447
6722
|
children: actions.map(_temp$2)
|
|
6448
6723
|
});
|
|
6449
|
-
$[
|
|
6450
|
-
$[
|
|
6451
|
-
} else
|
|
6452
|
-
let
|
|
6453
|
-
if ($[
|
|
6454
|
-
|
|
6455
|
-
className:
|
|
6724
|
+
$[19] = actions;
|
|
6725
|
+
$[20] = t12;
|
|
6726
|
+
} else t12 = $[20];
|
|
6727
|
+
let t13;
|
|
6728
|
+
if ($[21] !== t10 || $[22] !== t11 || $[23] !== t12 || $[24] !== t5 || $[25] !== t9) {
|
|
6729
|
+
t13 = /* @__PURE__ */ jsxs("div", {
|
|
6730
|
+
className: t5,
|
|
6456
6731
|
children: [
|
|
6457
|
-
|
|
6458
|
-
|
|
6459
|
-
|
|
6732
|
+
t9,
|
|
6733
|
+
t10,
|
|
6734
|
+
t11,
|
|
6735
|
+
t12
|
|
6460
6736
|
]
|
|
6461
6737
|
});
|
|
6462
|
-
$[
|
|
6463
|
-
$[
|
|
6464
|
-
$[
|
|
6465
|
-
$[
|
|
6466
|
-
$[
|
|
6467
|
-
|
|
6468
|
-
|
|
6738
|
+
$[21] = t10;
|
|
6739
|
+
$[22] = t11;
|
|
6740
|
+
$[23] = t12;
|
|
6741
|
+
$[24] = t5;
|
|
6742
|
+
$[25] = t9;
|
|
6743
|
+
$[26] = t13;
|
|
6744
|
+
} else t13 = $[26];
|
|
6745
|
+
return t13;
|
|
6469
6746
|
};
|
|
6470
6747
|
/**
|
|
6471
6748
|
* Hook to get the latest summary from the thread
|
|
@@ -6550,7 +6827,7 @@ const WelcomeMessage = (t0) => {
|
|
|
6550
6827
|
function _temp$2(action, i) {
|
|
6551
6828
|
return /* @__PURE__ */ jsx("button", {
|
|
6552
6829
|
onClick: action.onClick,
|
|
6553
|
-
className: cn("px-
|
|
6830
|
+
className: cn("px-2.5 py-1 rounded-lg text-xs font-medium", "transition-colors duration-200", action.variant === "primary" ? "bg-primary text-primary-foreground hover:bg-primary/90" : "bg-white/10 text-white/80 hover:bg-white/20"),
|
|
6554
6831
|
children: action.label
|
|
6555
6832
|
}, i);
|
|
6556
6833
|
}
|
|
@@ -6708,6 +6985,7 @@ function useToolBorderStatus(hasRunningAction, lastActionStatus) {
|
|
|
6708
6985
|
|
|
6709
6986
|
//#endregion
|
|
6710
6987
|
//#region src/components/pill/AgentPill.tsx
|
|
6988
|
+
const AUTO_COLLAPSE_TIMEOUT = 3e4;
|
|
6711
6989
|
/**
|
|
6712
6990
|
* Action-first agent pill UI.
|
|
6713
6991
|
*
|
|
@@ -6720,255 +6998,461 @@ function useToolBorderStatus(hasRunningAction, lastActionStatus) {
|
|
|
6720
6998
|
* Uses assistant-ui primitives for data binding.
|
|
6721
6999
|
*/
|
|
6722
7000
|
const AgentPill = (t0) => {
|
|
6723
|
-
const $ = c(
|
|
6724
|
-
const { position: t1, onOpenHistory, showVoiceButton: t2, isVoiceActive: t3, onVoiceToggle, className } = t0;
|
|
7001
|
+
const $ = c(105);
|
|
7002
|
+
const { position: t1, onOpenHistory, showVoiceButton: t2, isVoiceActive: t3, onVoiceToggle, autoCollapse: t4, className } = t0;
|
|
6725
7003
|
const position = t1 === void 0 ? "bottom-center" : t1;
|
|
6726
7004
|
const showVoiceButton = t2 === void 0 ? false : t2;
|
|
6727
7005
|
const isVoiceActive = t3 === void 0 ? false : t3;
|
|
7006
|
+
const autoCollapse = t4 === void 0 ? true : t4;
|
|
6728
7007
|
const [userMode, setUserMode] = useState("collapsed");
|
|
7008
|
+
const [hasUnread, setHasUnread] = useState(false);
|
|
7009
|
+
let t5;
|
|
7010
|
+
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7011
|
+
t5 = {
|
|
7012
|
+
x: 0,
|
|
7013
|
+
y: 0
|
|
7014
|
+
};
|
|
7015
|
+
$[0] = t5;
|
|
7016
|
+
} else t5 = $[0];
|
|
7017
|
+
const [dragPosition, setDragPosition] = useState(t5);
|
|
7018
|
+
const dragControls = useDragControls();
|
|
7019
|
+
const constraintsRef = useRef(null);
|
|
7020
|
+
const autoCollapseTimeoutRef = useRef(null);
|
|
7021
|
+
const lastMessageCountRef = useRef(0);
|
|
6729
7022
|
const messages = useThread(_temp$1);
|
|
7023
|
+
let t6;
|
|
7024
|
+
if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7025
|
+
t6 = (_, info) => {
|
|
7026
|
+
setDragPosition((prev) => ({
|
|
7027
|
+
x: prev.x + info.offset.x,
|
|
7028
|
+
y: prev.y + info.offset.y
|
|
7029
|
+
}));
|
|
7030
|
+
};
|
|
7031
|
+
$[1] = t6;
|
|
7032
|
+
} else t6 = $[1];
|
|
7033
|
+
const handleDragEnd = t6;
|
|
7034
|
+
let t7;
|
|
7035
|
+
if ($[2] !== messages?.length || $[3] !== userMode) {
|
|
7036
|
+
t7 = () => {
|
|
7037
|
+
const currentCount = messages?.length ?? 0;
|
|
7038
|
+
if (userMode === "collapsed" && currentCount > lastMessageCountRef.current) setHasUnread(true);
|
|
7039
|
+
lastMessageCountRef.current = currentCount;
|
|
7040
|
+
};
|
|
7041
|
+
$[2] = messages?.length;
|
|
7042
|
+
$[3] = userMode;
|
|
7043
|
+
$[4] = t7;
|
|
7044
|
+
} else t7 = $[4];
|
|
7045
|
+
const t8 = messages?.length;
|
|
7046
|
+
let t9;
|
|
7047
|
+
if ($[5] !== t8 || $[6] !== userMode) {
|
|
7048
|
+
t9 = [t8, userMode];
|
|
7049
|
+
$[5] = t8;
|
|
7050
|
+
$[6] = userMode;
|
|
7051
|
+
$[7] = t9;
|
|
7052
|
+
} else t9 = $[7];
|
|
7053
|
+
useEffect(t7, t9);
|
|
7054
|
+
let t10;
|
|
7055
|
+
let t11;
|
|
7056
|
+
if ($[8] !== userMode) {
|
|
7057
|
+
t10 = () => {
|
|
7058
|
+
if (userMode !== "collapsed") setHasUnread(false);
|
|
7059
|
+
};
|
|
7060
|
+
t11 = [userMode];
|
|
7061
|
+
$[8] = userMode;
|
|
7062
|
+
$[9] = t10;
|
|
7063
|
+
$[10] = t11;
|
|
7064
|
+
} else {
|
|
7065
|
+
t10 = $[9];
|
|
7066
|
+
t11 = $[10];
|
|
7067
|
+
}
|
|
7068
|
+
useEffect(t10, t11);
|
|
6730
7069
|
const voiceMode = useOptionalVoiceModeContext();
|
|
6731
7070
|
const voiceBorderStatus = useVoiceBorderStatus();
|
|
6732
7071
|
const isVoiceModeActive = voiceMode?.isActive || voiceMode?.isConnecting || voiceMode?.isError || isVoiceActive;
|
|
6733
|
-
const
|
|
7072
|
+
const textActions = useActions();
|
|
7073
|
+
const voiceActions = useVoiceActions();
|
|
7074
|
+
const actions = isVoiceModeActive ? voiceActions : textActions;
|
|
6734
7075
|
const currentAction = useCurrentAction();
|
|
6735
7076
|
const recentActions = useRecentActions(3);
|
|
6736
|
-
const
|
|
6737
|
-
const
|
|
6738
|
-
|
|
7077
|
+
const textSummary = useLatestSummary();
|
|
7078
|
+
const voiceSummary = useVoiceSummary();
|
|
7079
|
+
const summary = !isVoiceModeActive && voiceSummary ? voiceSummary.text : textSummary;
|
|
7080
|
+
const hasMessages = (messages?.length ?? 0) > 0 || !!voiceSummary;
|
|
7081
|
+
let t12;
|
|
6739
7082
|
bb0: {
|
|
6740
7083
|
if (!messages || messages.length === 0) {
|
|
6741
|
-
|
|
7084
|
+
t12 = false;
|
|
6742
7085
|
break bb0;
|
|
6743
7086
|
}
|
|
6744
|
-
let
|
|
6745
|
-
if ($[
|
|
6746
|
-
|
|
6747
|
-
$[
|
|
6748
|
-
$[
|
|
6749
|
-
} else
|
|
6750
|
-
const lastMessage =
|
|
6751
|
-
|
|
7087
|
+
let t13$1;
|
|
7088
|
+
if ($[11] !== messages) {
|
|
7089
|
+
t13$1 = messages.at(-1);
|
|
7090
|
+
$[11] = messages;
|
|
7091
|
+
$[12] = t13$1;
|
|
7092
|
+
} else t13$1 = $[12];
|
|
7093
|
+
const lastMessage = t13$1;
|
|
7094
|
+
t12 = lastMessage?.role === "assistant" && lastMessage.status?.type !== "complete";
|
|
6752
7095
|
}
|
|
6753
|
-
const isRunning =
|
|
6754
|
-
let
|
|
6755
|
-
if ($[
|
|
6756
|
-
|
|
6757
|
-
$[
|
|
6758
|
-
$[
|
|
6759
|
-
} else
|
|
6760
|
-
const lastCompletedAction =
|
|
7096
|
+
const isRunning = t12;
|
|
7097
|
+
let t13;
|
|
7098
|
+
if ($[13] !== actions) {
|
|
7099
|
+
t13 = actions.filter(_temp2).at(-1);
|
|
7100
|
+
$[13] = actions;
|
|
7101
|
+
$[14] = t13;
|
|
7102
|
+
} else t13 = $[14];
|
|
7103
|
+
const lastCompletedAction = t13;
|
|
6761
7104
|
const textBorderStatus = useToolBorderStatus(!!currentAction, lastCompletedAction?.status === "success" ? "success" : lastCompletedAction?.status === "error" ? "error" : null);
|
|
6762
7105
|
const borderStatus = isVoiceModeActive ? voiceBorderStatus : textBorderStatus;
|
|
6763
|
-
let
|
|
7106
|
+
let t14;
|
|
6764
7107
|
bb1: {
|
|
6765
7108
|
if (isVoiceModeActive) {
|
|
6766
|
-
|
|
7109
|
+
t14 = "active";
|
|
6767
7110
|
break bb1;
|
|
6768
7111
|
}
|
|
6769
7112
|
if (userMode === "collapsed") {
|
|
6770
|
-
|
|
7113
|
+
t14 = "collapsed";
|
|
6771
7114
|
break bb1;
|
|
6772
7115
|
}
|
|
6773
7116
|
if (userMode === "hovered") {
|
|
6774
|
-
|
|
7117
|
+
t14 = "hovered";
|
|
6775
7118
|
break bb1;
|
|
6776
7119
|
}
|
|
6777
7120
|
if (isRunning) {
|
|
6778
|
-
|
|
7121
|
+
t14 = "active";
|
|
6779
7122
|
break bb1;
|
|
6780
7123
|
}
|
|
6781
7124
|
if (hasMessages) {
|
|
6782
|
-
|
|
7125
|
+
t14 = "expanded";
|
|
6783
7126
|
break bb1;
|
|
6784
7127
|
}
|
|
6785
7128
|
if (userMode === "composing") {
|
|
6786
|
-
|
|
7129
|
+
t14 = "composing";
|
|
6787
7130
|
break bb1;
|
|
6788
7131
|
}
|
|
6789
|
-
|
|
7132
|
+
t14 = "collapsed";
|
|
6790
7133
|
}
|
|
6791
|
-
const mode =
|
|
6792
|
-
let
|
|
6793
|
-
if ($[
|
|
6794
|
-
|
|
7134
|
+
const mode = t14;
|
|
7135
|
+
let t15;
|
|
7136
|
+
if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7137
|
+
t15 = (newMode) => {
|
|
6795
7138
|
setUserMode(newMode);
|
|
6796
7139
|
};
|
|
6797
|
-
$[
|
|
6798
|
-
} else
|
|
6799
|
-
const handleModeChange =
|
|
6800
|
-
let
|
|
6801
|
-
if ($[
|
|
6802
|
-
|
|
7140
|
+
$[15] = t15;
|
|
7141
|
+
} else t15 = $[15];
|
|
7142
|
+
const handleModeChange = t15;
|
|
7143
|
+
let t16;
|
|
7144
|
+
if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7145
|
+
t16 = () => {
|
|
7146
|
+
setUserMode("collapsed");
|
|
7147
|
+
};
|
|
7148
|
+
$[16] = t16;
|
|
7149
|
+
} else t16 = $[16];
|
|
7150
|
+
const handleCollapse = t16;
|
|
7151
|
+
let t17;
|
|
7152
|
+
let t18;
|
|
7153
|
+
if ($[17] !== mode) {
|
|
7154
|
+
t17 = () => {
|
|
7155
|
+
if (mode === "collapsed" || mode === "hovered") setDragPosition({
|
|
7156
|
+
x: 0,
|
|
7157
|
+
y: 0
|
|
7158
|
+
});
|
|
7159
|
+
};
|
|
7160
|
+
t18 = [mode];
|
|
7161
|
+
$[17] = mode;
|
|
7162
|
+
$[18] = t17;
|
|
7163
|
+
$[19] = t18;
|
|
7164
|
+
} else {
|
|
7165
|
+
t17 = $[18];
|
|
7166
|
+
t18 = $[19];
|
|
7167
|
+
}
|
|
7168
|
+
useEffect(t17, t18);
|
|
7169
|
+
let t19;
|
|
7170
|
+
let t20;
|
|
7171
|
+
if ($[20] !== autoCollapse || $[21] !== isRunning || $[22] !== mode) {
|
|
7172
|
+
t19 = () => {
|
|
7173
|
+
if (!autoCollapse) return;
|
|
7174
|
+
if (autoCollapseTimeoutRef.current) {
|
|
7175
|
+
clearTimeout(autoCollapseTimeoutRef.current);
|
|
7176
|
+
autoCollapseTimeoutRef.current = null;
|
|
7177
|
+
}
|
|
7178
|
+
if (mode === "composing" || mode === "expanded" && !isRunning) autoCollapseTimeoutRef.current = setTimeout(() => {
|
|
7179
|
+
setUserMode("collapsed");
|
|
7180
|
+
}, AUTO_COLLAPSE_TIMEOUT);
|
|
7181
|
+
return () => {
|
|
7182
|
+
if (autoCollapseTimeoutRef.current) clearTimeout(autoCollapseTimeoutRef.current);
|
|
7183
|
+
};
|
|
7184
|
+
};
|
|
7185
|
+
t20 = [
|
|
7186
|
+
mode,
|
|
7187
|
+
isRunning,
|
|
7188
|
+
autoCollapse
|
|
7189
|
+
];
|
|
7190
|
+
$[20] = autoCollapse;
|
|
7191
|
+
$[21] = isRunning;
|
|
7192
|
+
$[22] = mode;
|
|
7193
|
+
$[23] = t19;
|
|
7194
|
+
$[24] = t20;
|
|
7195
|
+
} else {
|
|
7196
|
+
t19 = $[23];
|
|
7197
|
+
t20 = $[24];
|
|
7198
|
+
}
|
|
7199
|
+
useEffect(t19, t20);
|
|
7200
|
+
let t21;
|
|
7201
|
+
if ($[25] !== onVoiceToggle || $[26] !== voiceMode) {
|
|
7202
|
+
t21 = () => {
|
|
6803
7203
|
if (voiceMode) if (voiceMode.isActive || voiceMode.isConnecting) voiceMode.stopSession();
|
|
6804
7204
|
else voiceMode.startSession();
|
|
6805
7205
|
onVoiceToggle?.();
|
|
6806
7206
|
};
|
|
6807
|
-
$[
|
|
6808
|
-
$[
|
|
6809
|
-
$[
|
|
6810
|
-
} else
|
|
6811
|
-
const handleVoiceToggle =
|
|
6812
|
-
const borderRadius = mode === "collapsed" || mode === "hovered" ? "9999px" : "
|
|
6813
|
-
const
|
|
6814
|
-
|
|
6815
|
-
|
|
6816
|
-
|
|
6817
|
-
|
|
6818
|
-
|
|
6819
|
-
|
|
6820
|
-
$[
|
|
6821
|
-
|
|
6822
|
-
|
|
6823
|
-
|
|
6824
|
-
|
|
6825
|
-
|
|
6826
|
-
|
|
6827
|
-
|
|
6828
|
-
|
|
6829
|
-
|
|
6830
|
-
|
|
6831
|
-
|
|
6832
|
-
|
|
6833
|
-
|
|
6834
|
-
|
|
6835
|
-
$[
|
|
6836
|
-
} else
|
|
6837
|
-
let
|
|
6838
|
-
if ($[
|
|
6839
|
-
|
|
6840
|
-
|
|
6841
|
-
|
|
6842
|
-
|
|
6843
|
-
|
|
6844
|
-
|
|
6845
|
-
|
|
6846
|
-
|
|
7207
|
+
$[25] = onVoiceToggle;
|
|
7208
|
+
$[26] = voiceMode;
|
|
7209
|
+
$[27] = t21;
|
|
7210
|
+
} else t21 = $[27];
|
|
7211
|
+
const handleVoiceToggle = t21;
|
|
7212
|
+
const borderRadius = mode === "collapsed" || mode === "hovered" ? "9999px" : "20px";
|
|
7213
|
+
const canCollapse = mode === "composing" || mode === "active" || mode === "expanded";
|
|
7214
|
+
let t22;
|
|
7215
|
+
if ($[28] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7216
|
+
t22 = /* @__PURE__ */ jsx("div", {
|
|
7217
|
+
ref: constraintsRef,
|
|
7218
|
+
className: "fixed inset-0 pointer-events-none"
|
|
7219
|
+
});
|
|
7220
|
+
$[28] = t22;
|
|
7221
|
+
} else t22 = $[28];
|
|
7222
|
+
const t23 = position === "bottom-center" && "bottom-4 left-1/2 -translate-x-1/2";
|
|
7223
|
+
const t24 = position === "bottom-right" && "bottom-4 right-4";
|
|
7224
|
+
let t25;
|
|
7225
|
+
if ($[29] !== className || $[30] !== t23 || $[31] !== t24) {
|
|
7226
|
+
t25 = cn("fixed z-50", t23, t24, className);
|
|
7227
|
+
$[29] = className;
|
|
7228
|
+
$[30] = t23;
|
|
7229
|
+
$[31] = t24;
|
|
7230
|
+
$[32] = t25;
|
|
7231
|
+
} else t25 = $[32];
|
|
7232
|
+
let t26;
|
|
7233
|
+
if ($[33] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7234
|
+
t26 = { scale: 1.02 };
|
|
7235
|
+
$[33] = t26;
|
|
7236
|
+
} else t26 = $[33];
|
|
7237
|
+
let t27;
|
|
7238
|
+
if ($[34] !== dragPosition.x || $[35] !== dragPosition.y) {
|
|
7239
|
+
t27 = {
|
|
7240
|
+
x: dragPosition.x,
|
|
7241
|
+
y: dragPosition.y
|
|
7242
|
+
};
|
|
7243
|
+
$[34] = dragPosition.x;
|
|
7244
|
+
$[35] = dragPosition.y;
|
|
7245
|
+
$[36] = t27;
|
|
7246
|
+
} else t27 = $[36];
|
|
7247
|
+
let t28;
|
|
7248
|
+
if ($[37] === Symbol.for("react.memo_cache_sentinel")) {
|
|
7249
|
+
t28 = {
|
|
7250
|
+
type: "spring",
|
|
7251
|
+
stiffness: 400,
|
|
7252
|
+
damping: 30
|
|
7253
|
+
};
|
|
7254
|
+
$[37] = t28;
|
|
7255
|
+
} else t28 = $[37];
|
|
7256
|
+
let t29;
|
|
7257
|
+
if ($[38] !== hasUnread || $[39] !== mode) {
|
|
7258
|
+
t29 = mode === "collapsed" && hasUnread && /* @__PURE__ */ jsx(motion.div, {
|
|
7259
|
+
initial: { scale: 0 },
|
|
7260
|
+
animate: { scale: 1 },
|
|
7261
|
+
className: "absolute -top-1 -right-1 w-2 h-2 bg-blue-500 rounded-full"
|
|
7262
|
+
});
|
|
7263
|
+
$[38] = hasUnread;
|
|
7264
|
+
$[39] = mode;
|
|
7265
|
+
$[40] = t29;
|
|
7266
|
+
} else t29 = $[40];
|
|
7267
|
+
let t30;
|
|
7268
|
+
if ($[41] !== canCollapse || $[42] !== dragControls || $[43] !== handleVoiceToggle || $[44] !== isVoiceModeActive || $[45] !== onOpenHistory) {
|
|
7269
|
+
t30 = (isVoiceModeActive || canCollapse) && /* @__PURE__ */ jsxs("div", {
|
|
7270
|
+
className: "flex items-center justify-between mb-1 -mt-1",
|
|
7271
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
7272
|
+
className: "flex items-center gap-1 text-white/30 cursor-grab active:cursor-grabbing",
|
|
7273
|
+
onPointerDown: (e) => dragControls.start(e),
|
|
7274
|
+
children: /* @__PURE__ */ jsx(GripHorizontal, { className: "h-3 w-3" })
|
|
7275
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
7276
|
+
className: "flex items-center gap-1",
|
|
7277
|
+
children: [onOpenHistory && /* @__PURE__ */ jsx("button", {
|
|
7278
|
+
type: "button",
|
|
7279
|
+
onClick: onOpenHistory,
|
|
7280
|
+
className: cn("p-1 rounded-full", "hover:bg-white/10", "text-white/40 hover:text-white/70", "transition-colors duration-150"),
|
|
7281
|
+
"aria-label": "View history",
|
|
7282
|
+
children: /* @__PURE__ */ jsx(History, { className: "h-3.5 w-3.5" })
|
|
7283
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
7284
|
+
type: "button",
|
|
7285
|
+
onClick: isVoiceModeActive ? handleVoiceToggle : handleCollapse,
|
|
7286
|
+
className: cn("p-1 rounded-full", "hover:bg-white/10", "text-white/40 hover:text-white/70", "transition-colors duration-150"),
|
|
7287
|
+
"aria-label": isVoiceModeActive ? "End voice session" : "Close",
|
|
7288
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5" })
|
|
7289
|
+
})]
|
|
7290
|
+
})]
|
|
7291
|
+
});
|
|
7292
|
+
$[41] = canCollapse;
|
|
7293
|
+
$[42] = dragControls;
|
|
7294
|
+
$[43] = handleVoiceToggle;
|
|
7295
|
+
$[44] = isVoiceModeActive;
|
|
7296
|
+
$[45] = onOpenHistory;
|
|
7297
|
+
$[46] = t30;
|
|
7298
|
+
} else t30 = $[46];
|
|
7299
|
+
let t31;
|
|
7300
|
+
if ($[47] !== handleVoiceToggle || $[48] !== isVoiceModeActive) {
|
|
7301
|
+
t31 = isVoiceModeActive && /* @__PURE__ */ jsx(PillVoice, { onEnd: handleVoiceToggle }, "voice-mode");
|
|
7302
|
+
$[47] = handleVoiceToggle;
|
|
7303
|
+
$[48] = isVoiceModeActive;
|
|
7304
|
+
$[49] = t31;
|
|
7305
|
+
} else t31 = $[49];
|
|
7306
|
+
let t32;
|
|
7307
|
+
if ($[50] !== t31) {
|
|
7308
|
+
t32 = /* @__PURE__ */ jsx(AnimatePresence, {
|
|
6847
7309
|
mode: "wait",
|
|
6848
|
-
children:
|
|
7310
|
+
children: t31
|
|
6849
7311
|
});
|
|
6850
|
-
$[
|
|
6851
|
-
$[
|
|
6852
|
-
} else
|
|
6853
|
-
let
|
|
6854
|
-
if ($[
|
|
6855
|
-
|
|
6856
|
-
$[
|
|
6857
|
-
$[
|
|
6858
|
-
$[
|
|
6859
|
-
$[
|
|
6860
|
-
} else
|
|
6861
|
-
let
|
|
6862
|
-
if ($[
|
|
6863
|
-
|
|
7312
|
+
$[50] = t31;
|
|
7313
|
+
$[51] = t32;
|
|
7314
|
+
} else t32 = $[51];
|
|
7315
|
+
let t33;
|
|
7316
|
+
if ($[52] !== hasMessages || $[53] !== isVoiceModeActive || $[54] !== mode) {
|
|
7317
|
+
t33 = !isVoiceModeActive && mode === "composing" && !hasMessages && /* @__PURE__ */ jsx(WelcomeMessage, {});
|
|
7318
|
+
$[52] = hasMessages;
|
|
7319
|
+
$[53] = isVoiceModeActive;
|
|
7320
|
+
$[54] = mode;
|
|
7321
|
+
$[55] = t33;
|
|
7322
|
+
} else t33 = $[55];
|
|
7323
|
+
let t34;
|
|
7324
|
+
if ($[56] !== currentAction || $[57] !== isVoiceModeActive || $[58] !== mode || $[59] !== recentActions) {
|
|
7325
|
+
t34 = !isVoiceModeActive && mode === "active" && /* @__PURE__ */ jsx(CurrentActivity, {
|
|
6864
7326
|
currentAction,
|
|
6865
7327
|
recentActions,
|
|
6866
7328
|
showRecent: true
|
|
6867
7329
|
});
|
|
6868
|
-
$[
|
|
6869
|
-
$[
|
|
6870
|
-
$[
|
|
6871
|
-
$[
|
|
6872
|
-
$[
|
|
6873
|
-
} else
|
|
6874
|
-
let
|
|
6875
|
-
if ($[
|
|
6876
|
-
|
|
7330
|
+
$[56] = currentAction;
|
|
7331
|
+
$[57] = isVoiceModeActive;
|
|
7332
|
+
$[58] = mode;
|
|
7333
|
+
$[59] = recentActions;
|
|
7334
|
+
$[60] = t34;
|
|
7335
|
+
} else t34 = $[60];
|
|
7336
|
+
let t35;
|
|
7337
|
+
if ($[61] !== isRunning || $[62] !== isVoiceModeActive || $[63] !== lastCompletedAction?.error || $[64] !== mode || $[65] !== summary) {
|
|
7338
|
+
t35 = !isVoiceModeActive && mode === "expanded" && !isRunning && summary && /* @__PURE__ */ jsx(SummaryBlock, {
|
|
6877
7339
|
summary,
|
|
6878
7340
|
isSuccess: !lastCompletedAction?.error
|
|
6879
7341
|
});
|
|
6880
|
-
$[
|
|
6881
|
-
$[
|
|
6882
|
-
$[
|
|
6883
|
-
$[
|
|
6884
|
-
$[
|
|
6885
|
-
$[
|
|
6886
|
-
} else
|
|
6887
|
-
let
|
|
6888
|
-
if ($[
|
|
6889
|
-
|
|
6890
|
-
$[
|
|
6891
|
-
$[
|
|
6892
|
-
$[
|
|
6893
|
-
$[
|
|
6894
|
-
$[
|
|
6895
|
-
} else
|
|
6896
|
-
let
|
|
6897
|
-
if ($[
|
|
6898
|
-
|
|
7342
|
+
$[61] = isRunning;
|
|
7343
|
+
$[62] = isVoiceModeActive;
|
|
7344
|
+
$[63] = lastCompletedAction?.error;
|
|
7345
|
+
$[64] = mode;
|
|
7346
|
+
$[65] = summary;
|
|
7347
|
+
$[66] = t35;
|
|
7348
|
+
} else t35 = $[66];
|
|
7349
|
+
let t36;
|
|
7350
|
+
if ($[67] !== isRunning || $[68] !== isVoiceModeActive || $[69] !== mode || $[70] !== summary) {
|
|
7351
|
+
t36 = !isVoiceModeActive && mode === "expanded" && !isRunning && !summary && /* @__PURE__ */ jsx(IdleIndicator, {});
|
|
7352
|
+
$[67] = isRunning;
|
|
7353
|
+
$[68] = isVoiceModeActive;
|
|
7354
|
+
$[69] = mode;
|
|
7355
|
+
$[70] = summary;
|
|
7356
|
+
$[71] = t36;
|
|
7357
|
+
} else t36 = $[71];
|
|
7358
|
+
let t37;
|
|
7359
|
+
if ($[72] !== actions || $[73] !== isVoiceModeActive || $[74] !== mode) {
|
|
7360
|
+
t37 = (mode === "active" || mode === "expanded" || isVoiceModeActive) && actions.length > 0 && /* @__PURE__ */ jsx(ActionList, {
|
|
6899
7361
|
actions,
|
|
6900
7362
|
defaultCollapsed: mode === "active"
|
|
6901
7363
|
});
|
|
6902
|
-
$[
|
|
6903
|
-
$[
|
|
6904
|
-
$[
|
|
6905
|
-
$[
|
|
6906
|
-
} else
|
|
6907
|
-
let
|
|
6908
|
-
if ($[
|
|
6909
|
-
|
|
7364
|
+
$[72] = actions;
|
|
7365
|
+
$[73] = isVoiceModeActive;
|
|
7366
|
+
$[74] = mode;
|
|
7367
|
+
$[75] = t37;
|
|
7368
|
+
} else t37 = $[75];
|
|
7369
|
+
let t38;
|
|
7370
|
+
if ($[76] !== handleVoiceToggle || $[77] !== isVoiceActive || $[78] !== isVoiceModeActive || $[79] !== mode || $[80] !== showVoiceButton || $[81] !== voiceMode?.isSupported) {
|
|
7371
|
+
t38 = !isVoiceModeActive && (mode === "composing" || mode === "active" || mode === "expanded") && /* @__PURE__ */ jsx(PillComposer, {
|
|
6910
7372
|
showVoiceButton: showVoiceButton || !!voiceMode?.isSupported,
|
|
6911
7373
|
isVoiceActive,
|
|
6912
7374
|
onVoiceToggle: handleVoiceToggle
|
|
6913
7375
|
});
|
|
6914
|
-
$[
|
|
6915
|
-
$[
|
|
6916
|
-
$[
|
|
6917
|
-
$[
|
|
6918
|
-
$[
|
|
6919
|
-
$[
|
|
6920
|
-
$[
|
|
6921
|
-
} else
|
|
6922
|
-
let
|
|
6923
|
-
if ($[
|
|
6924
|
-
|
|
7376
|
+
$[76] = handleVoiceToggle;
|
|
7377
|
+
$[77] = isVoiceActive;
|
|
7378
|
+
$[78] = isVoiceModeActive;
|
|
7379
|
+
$[79] = mode;
|
|
7380
|
+
$[80] = showVoiceButton;
|
|
7381
|
+
$[81] = voiceMode?.isSupported;
|
|
7382
|
+
$[82] = t38;
|
|
7383
|
+
} else t38 = $[82];
|
|
7384
|
+
let t39;
|
|
7385
|
+
if ($[83] !== mode || $[84] !== t30 || $[85] !== t32 || $[86] !== t33 || $[87] !== t34 || $[88] !== t35 || $[89] !== t36 || $[90] !== t37 || $[91] !== t38) {
|
|
7386
|
+
t39 = /* @__PURE__ */ jsxs(PillContainer, {
|
|
6925
7387
|
mode,
|
|
6926
7388
|
onModeChange: handleModeChange,
|
|
6927
7389
|
children: [
|
|
6928
|
-
|
|
6929
|
-
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
|
|
6933
|
-
|
|
6934
|
-
|
|
6935
|
-
|
|
7390
|
+
t30,
|
|
7391
|
+
t32,
|
|
7392
|
+
t33,
|
|
7393
|
+
t34,
|
|
7394
|
+
t35,
|
|
7395
|
+
t36,
|
|
7396
|
+
t37,
|
|
7397
|
+
t38
|
|
6936
7398
|
]
|
|
6937
7399
|
});
|
|
6938
|
-
$[
|
|
6939
|
-
$[
|
|
6940
|
-
$[
|
|
6941
|
-
$[
|
|
6942
|
-
$[
|
|
6943
|
-
$[
|
|
6944
|
-
$[
|
|
6945
|
-
$[
|
|
6946
|
-
$[
|
|
6947
|
-
$[
|
|
6948
|
-
} else
|
|
6949
|
-
let
|
|
6950
|
-
if ($[
|
|
6951
|
-
|
|
7400
|
+
$[83] = mode;
|
|
7401
|
+
$[84] = t30;
|
|
7402
|
+
$[85] = t32;
|
|
7403
|
+
$[86] = t33;
|
|
7404
|
+
$[87] = t34;
|
|
7405
|
+
$[88] = t35;
|
|
7406
|
+
$[89] = t36;
|
|
7407
|
+
$[90] = t37;
|
|
7408
|
+
$[91] = t38;
|
|
7409
|
+
$[92] = t39;
|
|
7410
|
+
} else t39 = $[92];
|
|
7411
|
+
let t40;
|
|
7412
|
+
if ($[93] !== borderRadius || $[94] !== borderStatus || $[95] !== t39) {
|
|
7413
|
+
t40 = /* @__PURE__ */ jsx(ToolStatusBorder, {
|
|
6952
7414
|
status: borderStatus,
|
|
6953
7415
|
borderRadius,
|
|
6954
|
-
children:
|
|
7416
|
+
children: t39
|
|
6955
7417
|
});
|
|
6956
|
-
$[
|
|
6957
|
-
$[
|
|
6958
|
-
$[
|
|
6959
|
-
$[
|
|
6960
|
-
} else
|
|
6961
|
-
let
|
|
6962
|
-
if ($[
|
|
6963
|
-
|
|
6964
|
-
|
|
6965
|
-
|
|
6966
|
-
|
|
6967
|
-
|
|
6968
|
-
|
|
6969
|
-
|
|
6970
|
-
|
|
6971
|
-
|
|
7418
|
+
$[93] = borderRadius;
|
|
7419
|
+
$[94] = borderStatus;
|
|
7420
|
+
$[95] = t39;
|
|
7421
|
+
$[96] = t40;
|
|
7422
|
+
} else t40 = $[96];
|
|
7423
|
+
let t41;
|
|
7424
|
+
if ($[97] !== dragControls || $[98] !== t27 || $[99] !== t29 || $[100] !== t40) {
|
|
7425
|
+
t41 = /* @__PURE__ */ jsxs(motion.div, {
|
|
7426
|
+
drag: true,
|
|
7427
|
+
dragControls,
|
|
7428
|
+
dragConstraints: constraintsRef,
|
|
7429
|
+
dragElastic: .1,
|
|
7430
|
+
dragMomentum: false,
|
|
7431
|
+
whileDrag: t26,
|
|
7432
|
+
onDragEnd: handleDragEnd,
|
|
7433
|
+
initial: false,
|
|
7434
|
+
animate: t27,
|
|
7435
|
+
transition: t28,
|
|
7436
|
+
className: "cursor-grab active:cursor-grabbing relative",
|
|
7437
|
+
children: [t29, t40]
|
|
7438
|
+
});
|
|
7439
|
+
$[97] = dragControls;
|
|
7440
|
+
$[98] = t27;
|
|
7441
|
+
$[99] = t29;
|
|
7442
|
+
$[100] = t40;
|
|
7443
|
+
$[101] = t41;
|
|
7444
|
+
} else t41 = $[101];
|
|
7445
|
+
let t42;
|
|
7446
|
+
if ($[102] !== t25 || $[103] !== t41) {
|
|
7447
|
+
t42 = /* @__PURE__ */ jsxs(Fragment, { children: [t22, /* @__PURE__ */ jsx(ThreadPrimitive.Root, {
|
|
7448
|
+
className: t25,
|
|
7449
|
+
children: t41
|
|
7450
|
+
})] });
|
|
7451
|
+
$[102] = t25;
|
|
7452
|
+
$[103] = t41;
|
|
7453
|
+
$[104] = t42;
|
|
7454
|
+
} else t42 = $[104];
|
|
7455
|
+
return t42;
|
|
6972
7456
|
};
|
|
6973
7457
|
function _temp$1(thread) {
|
|
6974
7458
|
return thread.messages;
|
|
@@ -7329,7 +7813,7 @@ function formatRelativeTime(date) {
|
|
|
7329
7813
|
*
|
|
7330
7814
|
* Contains the compiled CSS for the web component standalone build.
|
|
7331
7815
|
*/
|
|
7332
|
-
const WEBMCP_STYLES = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tool-border-angle:0deg}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-500:oklch(69.6% .17 162.48);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--drop-shadow-xl:0 9px 7px #0000001a;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;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\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--radius:.75rem;--background:oklch(100% 0 0);--foreground:oklch(14.1% .005 285.823);--card:oklch(100% 0 0);--card-foreground:oklch(14.1% .005 285.823);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.1% .005 285.823);--primary:oklch(21% .006 285.885);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.7% .001 286.375);--muted-foreground:oklch(55.2% .016 285.938);--accent:oklch(96.7% .001 286.375);--accent-foreground:oklch(21% .006 285.885);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(92% .004 286.32);--input:oklch(92% .004 286.32);--ring:oklch(70.5% .015 286.067)}.dark{--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92% .004 286.32);--primary-foreground:oklch(21% .006 285.885);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.2% .016 285.938)}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklch,var(--ring),transparent 50%)}}body{background-color:var(--background);color:var(--foreground)}}@layer components{.app-shell{z-index:0;background-color:var(--background);background-image:radial-gradient(80% 60% at -10% -10%,oklch(82% .15 270/.15),#0000),radial-gradient(60% 50% at 110% 10%,oklch(85% .1 220/.12),#0000),radial-gradient(50% 45% at 50% 120%,oklch(95% .02 250/.08),#0000);position:relative}.dark .app-shell{background-image:radial-gradient(80% 60% at -10% -10%,oklch(55% .14 270/.25),#0000),radial-gradient(60% 50% at 110% 15%,oklch(60% .12 220/.22),#0000),radial-gradient(50% 45% at 50% 120%,oklch(35% .04 250/.16),#0000)}.app-shell:before,.app-shell:after{content:\"\";pointer-events:none;filter:blur(32px);opacity:.6;z-index:-1;border-radius:9999px;position:absolute;inset:auto}.app-shell:before{background:radial-gradient(60% 60% at 40% 40%,oklch(80% .12 270/.3),#0000);width:260px;height:260px;top:-60px;left:-80px}.app-shell:after{background:radial-gradient(60% 60% at 60% 60%,oklch(84% .1 220/.25),#0000);width:300px;height:300px;bottom:-80px;right:-60px}.toolbar-surface{border-top:1px solid var(--border);background:linear-gradient(to right,var(--background),var(--background),var(--background))}@supports (color:color-mix(in lab, red, red)){.toolbar-surface{background:linear-gradient(to right,var(--background),color-mix(in oklch,var(--background),transparent 5%),var(--background))}}.toolbar-surface{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.toolbar-surface{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.toolbar-surface{background:color-mix(in oklch,var(--background),transparent 20%)}}}.toolbar-surface-top{border-bottom:1px solid var(--border);background:linear-gradient(to right,var(--background),var(--background),var(--background))}@supports (color:color-mix(in lab, red, red)){.toolbar-surface-top{background:linear-gradient(to right,var(--background),color-mix(in oklch,var(--background),transparent 5%),var(--background))}}.toolbar-surface-top{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.toolbar-surface-top{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.toolbar-surface-top{background:color-mix(in oklch,var(--background),transparent 20%)}}}.toolbar-inner{justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.toolbar-card{background:var(--card);justify-content:space-between;align-items:center;gap:.5rem;display:flex}@supports (color:color-mix(in lab, red, red)){.toolbar-card{background:color-mix(in oklch,var(--card),transparent 60%)}}.toolbar-card{border:1px solid var(--border);border-radius:.75rem;padding:.5rem .75rem}.toolbar-group{align-items:center;gap:.25rem;display:flex}.btn-toolbar-primary{background:linear-gradient(to right,var(--primary),var(--primary));border-radius:.75rem;align-items:center;gap:.5rem;height:2.25rem;padding:0 .75rem;display:flex}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary{background:linear-gradient(to right,color-mix(in oklch,var(--primary),transparent 95%),color-mix(in oklch,var(--primary),transparent 90%))}}.btn-toolbar-primary{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary{border:1px solid color-mix(in oklch,var(--primary),transparent 80%)}}.btn-toolbar-primary{transition:all .2s}.btn-toolbar-primary:hover{background:linear-gradient(to right,var(--primary),var(--primary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary:hover{background:linear-gradient(to right,color-mix(in oklch,var(--primary),transparent 90%),color-mix(in oklch,var(--primary),transparent 80%))}}.btn-toolbar-icon-primary{background:linear-gradient(to bottom right,var(--primary),var(--primary));border-radius:9999px;width:2rem;height:2rem;padding:0}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary{background:linear-gradient(to bottom right,color-mix(in oklch,var(--primary),transparent 90%),color-mix(in oklch,var(--primary),transparent 80%))}}.btn-toolbar-icon-primary{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary{border:1px solid color-mix(in oklch,var(--primary),transparent 70%)}}.btn-toolbar-icon-primary{transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-toolbar-icon-primary:hover{background:linear-gradient(to bottom right,var(--primary),var(--primary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary:hover{background:linear-gradient(to bottom right,color-mix(in oklch,var(--primary),transparent 80%),color-mix(in oklch,var(--primary),transparent 70%))}}.btn-toolbar-icon-secondary{background:linear-gradient(to bottom right,var(--secondary),var(--secondary));border-radius:9999px;width:2rem;height:2rem;padding:0}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary{background:linear-gradient(to bottom right,color-mix(in oklch,var(--secondary),transparent 90%),color-mix(in oklch,var(--secondary),transparent 80%))}}.btn-toolbar-icon-secondary{border:1px solid var(--secondary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary{border:1px solid color-mix(in oklch,var(--secondary),transparent 70%)}}.btn-toolbar-icon-secondary{transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-toolbar-icon-secondary:hover{background:linear-gradient(to bottom right,var(--secondary),var(--secondary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary:hover{background:linear-gradient(to bottom right,color-mix(in oklch,var(--secondary),transparent 80%),color-mix(in oklch,var(--secondary),transparent 70%))}}.badge-compact{height:1.25rem;padding:0 .5rem;font-size:10px}.badge-mini{height:1rem;padding:0 .375rem;font-size:10px}@keyframes shimmer-bg{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer{background:linear-gradient(90deg,#0000,#ffffff1a,#0000) 0 0/1000px 100%;animation:3s linear infinite shimmer-bg}.animate-shimmer{animation:2s linear infinite shimmer}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(var(--primary),.1)}50%{box-shadow:0 0 30px rgba(var(--primary),.2)}}.pulse-glow{animation:2s ease-in-out infinite pulse-glow}@keyframes gradient-x{0%,to{background-position:0%}50%{background-position:100%}}.animate-gradient-x{animation:8s ease-in-out infinite gradient-x}.gradient-text{background:linear-gradient(to right,var(--foreground),var(--foreground))}@supports (color:color-mix(in lab, red, red)){.gradient-text{background:linear-gradient(to right,var(--foreground),color-mix(in oklch,var(--foreground),transparent 30%))}}.gradient-text{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.glass{background:color-mix(in oklch,var(--background),transparent 50%)}}.glass{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border)}@supports (color:color-mix(in lab, red, red)){.glass{border:1px solid color-mix(in oklch,var(--border),transparent 50%)}}.tool-card{transition:all .3s ease-out}.tool-card:hover{transform:scale(1.02);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.scrollbar-thin{scrollbar-width:thin}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.scrollbar-thin::-webkit-scrollbar-thumb{background-color:color-mix(in oklch,var(--primary),transparent 80%)}}.scrollbar-thin::-webkit-scrollbar-thumb{border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:color-mix(in oklch,var(--primary),transparent 70%)}}}@layer utilities{.\\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-inset-\\[1px\\]{inset:-1px}.inset-0{inset:calc(var(--spacing)*0)}.-top-12{top:calc(var(--spacing)*-12)}.top-0{top:calc(var(--spacing)*0)}.top-1\\.5{top:calc(var(--spacing)*1.5)}.top-1\\/2{top:50%}.top-3{top:calc(var(--spacing)*3)}.top-4{top:calc(var(--spacing)*4)}.top-\\[50\\%\\]{top:50%}.right-0{right:calc(var(--spacing)*0)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-6{bottom:calc(var(--spacing)*6)}.left-0{left:calc(var(--spacing)*0)}.left-1\\/2,.left-\\[50\\%\\]{left:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-auto{margin-block:auto}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.-mr-1{margin-right:calc(var(--spacing)*-1)}.mr-1\\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.-ml-2{margin-left:calc(var(--spacing)*-2)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2\\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-14{width:calc(var(--spacing)*14);height:calc(var(--spacing)*14)}.size-\\[34px\\]{width:34px;height:34px}.size-full{width:100%;height:100%}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-\\[600px\\]{height:600px}.h-\\[calc\\(100\\%-60px\\)\\]{height:calc(100% - 60px)}.h-auto{height:auto}.h-full{height:100%}.max-h-24{max-height:calc(var(--spacing)*24)}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-\\[80dvh\\]{max-height:80dvh}.max-h-\\[80vh\\]{max-height:80vh}.min-h-8{min-height:calc(var(--spacing)*8)}.min-h-\\[60px\\]{min-height:60px}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-\\[500px\\]{width:500px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-7\\/8{max-width:87.5%}.max-w-16{max-width:calc(var(--spacing)*16)}.max-w-24{max-width:calc(var(--spacing)*24)}.max-w-\\[80\\%\\]{max-width:80%}.max-w-\\[80px\\]{max-width:80px}.max-w-\\[85\\%\\]{max-width:85%}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.max-w-\\[var\\(--thread-max-width\\)\\]{max-width:var(--thread-max-width)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y)}.origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[-50\\%\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.scroll-m-20{scroll-margin:calc(var(--spacing)*20)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.auto-rows-auto{grid-auto-rows:auto}.grid-cols-\\[minmax\\(72px\\,1fr\\)_auto\\]{grid-template-columns:minmax(72px,1fr) auto}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-y-2{row-gap:calc(var(--spacing)*2)}.self-center{align-self:center}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[2px\\]{border-radius:2px}.rounded-\\[14px\\]{border-radius:14px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.\\!rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-blue-500\\/40{border-color:#3080ff66}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/40{border-color:color-mix(in oklab,var(--color-blue-500)40%,transparent)}}.border-blue-500\\/60{border-color:#3080ff99}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/60{border-color:color-mix(in oklab,var(--color-blue-500)60%,transparent)}}.border-border,.border-border\\/20{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\\/20{border-color:color-mix(in oklab,var(--border)20%,transparent)}}.border-border\\/40{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\\/40{border-color:color-mix(in oklab,var(--border)40%,transparent)}}.border-border\\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-destructive,.border-destructive\\/60{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\\/60{border-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.border-foreground\\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\\/20{border-color:color-mix(in oklab,var(--foreground)20%,transparent)}}.border-green-500\\/20{border-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/20{border-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.border-green-500\\/40{border-color:#00c75866}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/40{border-color:color-mix(in oklab,var(--color-green-500)40%,transparent)}}.border-green-500\\/60{border-color:#00c75899}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/60{border-color:color-mix(in oklab,var(--color-green-500)60%,transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground\\/20{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\\/20{border-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.border-primary\\/60{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\\/60{border-color:color-mix(in oklab,var(--primary)60%,transparent)}}.border-red-500\\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.border-red-500\\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/40{border-color:color-mix(in oklab,var(--color-red-500)40%,transparent)}}.border-red-500\\/60{border-color:#fb2c3699}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/60{border-color:color-mix(in oklab,var(--color-red-500)60%,transparent)}}.border-transparent{border-color:#0000}.border-white\\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\\[color-mix\\(in_oklab\\,rgb\\(var\\(--background\\)\\)_20\\%\\,transparent\\)\\]{background-color:rgb(var(--background))}@supports (color:color-mix(in lab, red, red)){.bg-\\[color-mix\\(in_oklab\\,rgb\\(var\\(--background\\)\\)_20\\%\\,transparent\\)\\]{background-color:color-mix(in oklab,rgb(var(--background))20%,transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background,.bg-background\\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\\/50{background-color:color-mix(in oklab,var(--background)50%,transparent)}}.bg-background\\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\\/80{background-color:color-mix(in oklab,var(--background)80%,transparent)}}.bg-background\\/95{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/5{background-color:#3080ff0d}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/5{background-color:color-mix(in oklab,var(--color-blue-500)5%,transparent)}}.bg-blue-500\\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-border{background-color:var(--border)}.bg-destructive,.bg-destructive\\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-400\\/60{background-color:#05df7299}@supports (color:color-mix(in lab, red, red)){.bg-green-400\\/60{background-color:color-mix(in oklab,var(--color-green-400)60%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/5{background-color:#00c7580d}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/5{background-color:color-mix(in oklab,var(--color-green-500)5%,transparent)}}.bg-green-500\\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\\/15{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\\/15{background-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.bg-muted\\/5{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/5{background-color:color-mix(in oklab,var(--muted)5%,transparent)}}.bg-muted\\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-popover\\/95{background-color:var(--popover)}@supports (color:color-mix(in lab, red, red)){.bg-popover\\/95{background-color:color-mix(in oklab,var(--popover)95%,transparent)}}.bg-primary,.bg-primary\\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/5{background-color:color-mix(in oklab,var(--color-red-500)5%,transparent)}}.bg-red-500\\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-500\\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-slate-900\\/95{background-color:#0f172bf2}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\\/95{background-color:color-mix(in oklab,var(--color-slate-900)95%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.fill-foreground{fill:var(--foreground)}.stroke-\\[1\\.5px\\]{stroke-width:1.5px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-px{padding:1px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pt-0\\.5{padding-top:calc(var(--spacing)*.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pt-3{padding-top:calc(var(--spacing)*3)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.text-\\[17px\\]{font-size:17px}.text-\\[19px\\]{font-size:19px}.text-\\[21px\\]{font-size:21px}.text-\\[25px\\]{font-size:25px}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-background{color:var(--background)}.text-blue-400{color:var(--color-blue-400)}.text-blue-600{color:var(--color-blue-600)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground,.text-foreground\\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}}.text-green-400{color:var(--color-green-400)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground,.text-muted-foreground\\/65{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/65{color:color-mix(in oklab,var(--muted-foreground)65%,transparent)}}.text-muted-foreground\\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/70{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.text-white\\/20{color:#fff3}@supports (color:color-mix(in lab, red, red)){.text-white\\/20{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.text-white\\/30{color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.text-white\\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\\/40{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.text-white\\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_12px_rgba\\(34\\,197\\,94\\,0\\.3\\)\\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#22c55e4d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_12px_rgba\\(59\\,130\\,246\\,0\\.3\\)\\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#3b82f64d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_12px_rgba\\(239\\,68\\,68\\,0\\.3\\)\\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#ef44444d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_12px_24px_-16px_rgba\\(37\\,99\\,235\\,0\\.55\\)\\]{--tw-shadow:0 12px 24px -16px var(--tw-shadow-color,#2563eb8c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_12px_24px_-18px_rgba\\(220\\,38\\,38\\,0\\.55\\)\\]{--tw-shadow:0 12px 24px -18px var(--tw-shadow-color,#dc26268c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\\[box-shadow\\:inset_0_1px_2px_0_rgba\\(255\\,255\\,255\\,0\\.15\\)\\]{box-shadow:inset 0 1px 2px #ffffff26}.shadow-black\\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.shadow-black\\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)20%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow-xl{--tw-drop-shadow-size:drop-shadow(0 9px 7px var(--tw-drop-shadow-color,#0000001a));--tw-drop-shadow:drop-shadow(var(--drop-shadow-xl));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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\\:text-muted-foreground::placeholder,.placeholder\\:text-muted-foreground\\/70::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.placeholder\\:text-muted-foreground\\/70::placeholder{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}}.placeholder\\:text-white\\/40::placeholder{color:#fff6}@supports (color:color-mix(in lab, red, red)){.placeholder\\:text-white\\/40::placeholder{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.first\\:mt-0:first-child{margin-top:calc(var(--spacing)*0)}.first\\:mt-3:first-child{margin-top:calc(var(--spacing)*3)}.first\\:mt-4:first-child{margin-top:calc(var(--spacing)*4)}.first\\:rounded-tl-lg:first-child{border-top-left-radius:var(--radius)}.first\\:border-t:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.last\\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\\:mb-5:last-child{margin-bottom:calc(var(--spacing)*5)}.last\\:mb-24:last-child{margin-bottom:calc(var(--spacing)*24)}.last\\:rounded-tr-lg:last-child{border-top-right-radius:var(--radius)}.last\\:border-r:last-child{border-right-style:var(--tw-border-style);border-right-width:1px}.empty\\:hidden:empty{display:none}.focus-within\\:border-ring\\/50:focus-within{border-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-within\\:border-ring\\/50:focus-within{border-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-within\\:border-white\\/20:focus-within{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.focus-within\\:border-white\\/20:focus-within{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.focus-within\\:bg-white\\/15:focus-within{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.focus-within\\:bg-white\\/15:focus-within{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.focus-within\\:shadow-2xl:focus-within{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\\:shadow-md:focus-within{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\\:shadow-black\\/30:focus-within{--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.focus-within\\:shadow-black\\/30:focus-within{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)30%,transparent)var(--tw-shadow-alpha),transparent)}}.focus-within\\:ring-ring:focus-within{--tw-ring-color:var(--ring)}.focus-within\\:ring-offset-2:focus-within{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:border-accent:hover{border-color:var(--accent)}.hover\\:border-border\\/60:hover{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.hover\\:border-border\\/60:hover{border-color:color-mix(in oklab,var(--border)60%,transparent)}}.hover\\:border-white\\/15:hover{border-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.hover\\:border-white\\/15:hover{border-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.hover\\:\\!bg-white:hover{background-color:var(--color-white)!important}.hover\\:bg-accent:hover,.hover\\:bg-accent\\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\\:bg-destructive\\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/10:hover{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.hover\\:bg-destructive\\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/80:hover{background-color:color-mix(in oklab,var(--destructive)80%,transparent)}}.hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\\:bg-muted-foreground\\/15:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-muted-foreground\\/15:hover{background-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.hover\\:bg-primary\\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/80:hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\\:bg-red-500\\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/30:hover{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.hover\\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\\:bg-transparent:hover{background-color:#0000}.hover\\:bg-white\\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:bg-white\\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-foreground:hover{color:var(--foreground)}.hover\\:text-primary\\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-primary\\/80:hover{color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\\:text-red-200:hover{color:var(--color-red-200)}.hover\\:text-red-300:hover{color:var(--color-red-300)}.hover\\:text-white:hover{color:var(--color-white)}.hover\\:text-white\\/70:hover{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/70:hover{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.hover\\:text-white\\/80:hover{color:#fffc}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/80:hover{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-75:hover{opacity:.75}.hover\\:opacity-100:hover{opacity:1}.hover\\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-\\[0_14px_24px_-14px_rgba\\(37\\,99\\,235\\,0\\.6\\)\\]:hover{--tw-shadow:0 14px 24px -14px var(--tw-shadow-color,#2563eb99);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-\\[0_14px_24px_-16px_rgba\\(220\\,38\\,38\\,0\\.6\\)\\]:hover{--tw-shadow:0 14px 24px -16px var(--tw-shadow-color,#dc262699);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:drop-shadow-2xl:hover{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\\:ring-destructive\\/40:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/40:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.focus-visible\\:ring-primary\\/40:focus-visible{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-primary\\/40:focus-visible{--tw-ring-color:color-mix(in oklab,var(--primary)40%,transparent)}}.focus-visible\\:ring-ring:focus-visible,.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:invisible:disabled{visibility:hidden}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-floating\\:absolute[data-floating]{position:absolute}.data-floating\\:rounded-md[data-floating]{border-radius:calc(var(--radius) - 2px)}.data-floating\\:border[data-floating]{border-style:var(--tw-border-style);border-width:1px}.data-floating\\:bg-background[data-floating]{background-color:var(--background)}.data-floating\\:p-1[data-floating]{padding:calc(var(--spacing)*1)}.data-floating\\:shadow-sm[data-floating]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.data-\\[state\\=closed\\]\\:scale-0[data-state=closed]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\\[state\\=closed\\]\\:scale-100[data-state=closed]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\\[state\\=closed\\]\\:-rotate-90[data-state=closed]{rotate:-90deg}.data-\\[state\\=closed\\]\\:rotate-0[data-state=closed]{rotate:none}.data-\\[state\\=open\\]\\:scale-0[data-state=open]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\\[state\\=open\\]\\:scale-100[data-state=open]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\\[state\\=open\\]\\:rotate-0[data-state=open]{rotate:none}.data-\\[state\\=open\\]\\:rotate-90[data-state=open]{rotate:90deg}.data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}@media (min-width:40rem){.sm\\:max-w-3xl{max-width:var(--container-3xl)}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:max-w-md{max-width:var(--container-md)}.sm\\:flex-row{flex-direction:row}.sm\\:justify-end{justify-content:flex-end}.sm\\:text-left{text-align:left}}@media (min-width:48rem){.md\\:pb-6{padding-bottom:calc(var(--spacing)*6)}}@container (min-width:28rem){.\\@md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\\@md\\:flex-col{flex-direction:column}}.dark\\:border-input:is(.dark *){border-color:var(--input)}.dark\\:border-muted-foreground\\/15:is(.dark *){border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:border-muted-foreground\\/15:is(.dark *){border-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.dark\\:bg-background:is(.dark *){background-color:var(--background)}.dark\\:bg-destructive\\/5:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/5:is(.dark *){background-color:color-mix(in oklab,var(--destructive)5%,transparent)}}.dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\\:bg-muted-foreground\\/20:is(.dark *){background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-muted-foreground\\/20:is(.dark *){background-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.dark\\:stroke-\\[2\\.5px\\]:is(.dark *){stroke-width:2.5px}.dark\\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\\:text-red-200:is(.dark *){color:var(--color-red-200)}@media (hover:hover){.dark\\:hover\\:bg-accent:is(.dark *):hover,.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\\:hover\\:bg-accent\\/60:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/60:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)60%,transparent)}}.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\\:hover\\:bg-muted-foreground\\/30:is(.dark *):hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-muted-foreground\\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}}.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\]\\:text-background svg{color:var(--background)}.\\[\\&_svg\\]\\:text-black svg{color:var(--color-black)}@media (hover:hover){.hover\\:\\[\\&_svg\\]\\:text-destructive:hover svg{color:var(--destructive)}}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\\[\\&\\:last-child\\>td\\:first-child\\]\\:rounded-bl-lg:last-child>td:first-child{border-bottom-left-radius:var(--radius)}.\\[\\&\\:last-child\\>td\\:last-child\\]\\:rounded-br-lg:last-child>td:last-child{border-bottom-right-radius:var(--radius)}.\\[\\&\\:nth-child\\(n\\+3\\)\\]\\:hidden:nth-child(n+3){display:none}@container (min-width:28rem){.\\@md\\:\\[\\&\\:nth-child\\(n\\+3\\)\\]\\:block:nth-child(n+3){display:block}}.\\[\\&\\:where\\(\\>\\*\\)\\]\\:col-start-2:where(){grid-column-start:2}.only\\:\\[\\&\\>\\#attachment-tile\\]\\:size-24:only-child>#attachment-tile{width:calc(var(--spacing)*24);height:calc(var(--spacing)*24)}.\\[\\&\\>\\.aui-thread-root\\]\\:bg-inherit>.aui-thread-root{background-color:inherit}.\\[\\&\\>a\\]\\:text-xs>a{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\[\\&\\>a\\]\\:no-underline>a{text-decoration-line:none}.\\[\\&\\>button\\]\\:rounded-full>button{border-radius:3.40282e38px}.\\[\\&\\>button\\]\\:bg-foreground\\/60>button{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.\\[\\&\\>button\\]\\:bg-foreground\\/60>button{background-color:color-mix(in oklab,var(--foreground)60%,transparent)}}.\\[\\&\\>button\\]\\:p-1>button{padding:calc(var(--spacing)*1)}.\\[\\&\\>button\\]\\:opacity-100>button{opacity:1}.\\[\\&\\>button\\]\\:\\!ring-0>button{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}@media (hover:hover){.\\[\\&\\>button\\]\\:hover\\:\\[\\&_svg\\]\\:text-destructive>button:hover svg{color:var(--destructive)}}.\\[\\&\\>li\\]\\:mt-0\\.5>li{margin-top:calc(var(--spacing)*.5)}.\\[\\&\\>li\\]\\:mt-1>li{margin-top:calc(var(--spacing)*1)}.\\[\\&\\>span\\]\\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\[\\&\\[align\\=center\\]\\]\\:text-center[align=center]{text-align:center}.\\[\\&\\[align\\=right\\]\\]\\:text-right[align=right]{text-align:right}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.85}}@keyframes smooth-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gradient-shift{0%,to{transform:translate(0%)translateY(0%)}25%{transform:translate(100%)translateY(100%)}50%{transform:translate(100%)translateY(0%)}75%{transform:translate(0%)translateY(100%)}}@keyframes float{0%,to{transform:translateY(0)translate(0)}33%{transform:translateY(-30px)translate(20px)}66%{transform:translateY(20px)translate(-20px)}}@keyframes float-delayed{0%,to{transform:translateY(0)translate(0)}33%{transform:translateY(30px)translate(-30px)}66%{transform:translateY(-20px)translate(20px)}}.tool-card-transition{transition:all .4s cubic-bezier(.34,1.56,.64,1)}.tool-card-smooth{transition:all .35s cubic-bezier(.4,0,.2,1)}.animate-fadeInUp{opacity:0;animation:.5s ease-out forwards fadeInUp}.animate-gradient-shift{background-size:200% 200%;animation:20s ease-in-out infinite gradient-shift}.animate-float-slow{animation:20s ease-in-out infinite float}.animate-float-delayed{animation:25s ease-in-out 5s infinite float-delayed}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@keyframes tool-border-rotate{0%{--tool-border-angle:0deg}to{--tool-border-angle:360deg}}@property --tool-border-angle{syntax:\"<angle>\";inherits:false;initial-value:0deg}.tool-border-calling{background:conic-gradient(from var(--tool-border-angle),transparent 0deg,transparent 60deg,#3b82f680 90deg,#60a5fab3 120deg,#93c5fd80 150deg,transparent 180deg,transparent 360deg);animation:1.5s linear infinite tool-border-rotate}.tool-border-success{background:#22c55e66;box-shadow:0 0 12px #22c55e4d,inset 0 0 8px #22c55e1a}.tool-border-error{background:#ef444466;box-shadow:0 0 12px #ef44444d,inset 0 0 8px #ef44441a}@keyframes pulse-success{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.animate-pulse-success{animation:.6s ease-out pulse-success}.animate-shake{animation:.3s ease-out shake}@keyframes aui-pulse{50%{opacity:.5}}:where(.aui-md[data-status=running]):empty:after,:where(.aui-md[data-status=running])>:where(:not(ol):not(ul):not(pre)):last-child:after,:where(.aui-md[data-status=running])>pre:last-child code:after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child:not(:has(*>li))):after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child:not(:has(*>li))):after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child):after{--aui-content:\"●\";content:var(--aui-content);margin-left:.25rem;margin-right:.25rem;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;animation:2s cubic-bezier(.4,0,.6,1) infinite aui-pulse}.glass-pill{-webkit-backdrop-filter:blur(20px)saturate(150%);background:#0f172ad9;border:1px solid #ffffff0f;box-shadow:0 4px 16px #0003,inset 0 .5px #ffffff14}.glass-pill:before{content:\"\";border-radius:inherit;pointer-events:none;z-index:1;background:linear-gradient(#ffffff0a 0%,#0000 40%);position:absolute;inset:0}.glass-pill:after{display:none}.glass-pill-collapsed{-webkit-backdrop-filter:blur(12px);background:#ffffff1f;border:none;box-shadow:0 1px 4px #00000026}.glass-pill-collapsed:before,.glass-pill-collapsed:after{display:none}.glass-pill-hovered{-webkit-backdrop-filter:blur(16px)saturate(140%);background:#0f172acc;border:1px solid #ffffff0f;box-shadow:0 2px 12px #0000002e}.glass-pill-hovered:before,.glass-pill-hovered:after{display:none}@keyframes glass-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.glass-shimmer{background:linear-gradient(90deg,#ffffff14 0%,#ffffff26 50%,#ffffff14 100%) 0 0/200% 100%;animation:4s ease-in-out infinite glass-shimmer}@property --tw-border-spacing-x{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
|
|
7816
|
+
const WEBMCP_STYLES = "/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tool-border-angle:0deg}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-300:oklch(80.8% .114 19.571);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-amber-500:oklch(76.9% .188 70.08);--color-yellow-500:oklch(79.5% .184 86.047);--color-green-400:oklch(79.2% .209 151.711);--color-green-500:oklch(72.3% .219 149.579);--color-green-600:oklch(62.7% .194 149.214);--color-emerald-500:oklch(69.6% .17 162.48);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-900:oklch(20.8% .042 265.755);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height:calc(1.5/1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25/1.875);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-xs:.125rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--drop-shadow-xl:0 9px 7px #0000001a;--drop-shadow-2xl:0 25px 25px #00000026;--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--blur-sm:8px;--blur-md:12px;--blur-xl:24px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;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\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}:root{--radius:.75rem;--background:oklch(100% 0 0);--foreground:oklch(14.1% .005 285.823);--card:oklch(100% 0 0);--card-foreground:oklch(14.1% .005 285.823);--popover:oklch(100% 0 0);--popover-foreground:oklch(14.1% .005 285.823);--primary:oklch(21% .006 285.885);--primary-foreground:oklch(98.5% 0 0);--secondary:oklch(96.7% .001 286.375);--secondary-foreground:oklch(21% .006 285.885);--muted:oklch(96.7% .001 286.375);--muted-foreground:oklch(55.2% .016 285.938);--accent:oklch(96.7% .001 286.375);--accent-foreground:oklch(21% .006 285.885);--destructive:oklch(57.7% .245 27.325);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(92% .004 286.32);--input:oklch(92% .004 286.32);--ring:oklch(70.5% .015 286.067)}.dark{--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92% .004 286.32);--primary-foreground:oklch(21% .006 285.885);--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--destructive-foreground:oklch(98.5% 0 0);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.2% .016 285.938)}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklch,var(--ring),transparent 50%)}}body{background-color:var(--background);color:var(--foreground)}}@layer components{.app-shell{z-index:0;background-color:var(--background);background-image:radial-gradient(80% 60% at -10% -10%,oklch(82% .15 270/.15),#0000),radial-gradient(60% 50% at 110% 10%,oklch(85% .1 220/.12),#0000),radial-gradient(50% 45% at 50% 120%,oklch(95% .02 250/.08),#0000);position:relative}.dark .app-shell{background-image:radial-gradient(80% 60% at -10% -10%,oklch(55% .14 270/.25),#0000),radial-gradient(60% 50% at 110% 15%,oklch(60% .12 220/.22),#0000),radial-gradient(50% 45% at 50% 120%,oklch(35% .04 250/.16),#0000)}.app-shell:before,.app-shell:after{content:\"\";pointer-events:none;filter:blur(32px);opacity:.6;z-index:-1;border-radius:9999px;position:absolute;inset:auto}.app-shell:before{background:radial-gradient(60% 60% at 40% 40%,oklch(80% .12 270/.3),#0000);width:260px;height:260px;top:-60px;left:-80px}.app-shell:after{background:radial-gradient(60% 60% at 60% 60%,oklch(84% .1 220/.25),#0000);width:300px;height:300px;bottom:-80px;right:-60px}.toolbar-surface{border-top:1px solid var(--border);background:linear-gradient(to right,var(--background),var(--background),var(--background))}@supports (color:color-mix(in lab, red, red)){.toolbar-surface{background:linear-gradient(to right,var(--background),color-mix(in oklch,var(--background),transparent 5%),var(--background))}}.toolbar-surface{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.toolbar-surface{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.toolbar-surface{background:color-mix(in oklch,var(--background),transparent 20%)}}}.toolbar-surface-top{border-bottom:1px solid var(--border);background:linear-gradient(to right,var(--background),var(--background),var(--background))}@supports (color:color-mix(in lab, red, red)){.toolbar-surface-top{background:linear-gradient(to right,var(--background),color-mix(in oklch,var(--background),transparent 5%),var(--background))}}.toolbar-surface-top{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.toolbar-surface-top{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.toolbar-surface-top{background:color-mix(in oklch,var(--background),transparent 20%)}}}.toolbar-inner{justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex}.toolbar-card{background:var(--card);justify-content:space-between;align-items:center;gap:.5rem;display:flex}@supports (color:color-mix(in lab, red, red)){.toolbar-card{background:color-mix(in oklch,var(--card),transparent 60%)}}.toolbar-card{border:1px solid var(--border);border-radius:.75rem;padding:.5rem .75rem}.toolbar-group{align-items:center;gap:.25rem;display:flex}.btn-toolbar-primary{background:linear-gradient(to right,var(--primary),var(--primary));border-radius:.75rem;align-items:center;gap:.5rem;height:2.25rem;padding:0 .75rem;display:flex}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary{background:linear-gradient(to right,color-mix(in oklch,var(--primary),transparent 95%),color-mix(in oklch,var(--primary),transparent 90%))}}.btn-toolbar-primary{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary{border:1px solid color-mix(in oklch,var(--primary),transparent 80%)}}.btn-toolbar-primary{transition:all .2s}.btn-toolbar-primary:hover{background:linear-gradient(to right,var(--primary),var(--primary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-primary:hover{background:linear-gradient(to right,color-mix(in oklch,var(--primary),transparent 90%),color-mix(in oklch,var(--primary),transparent 80%))}}.btn-toolbar-icon-primary{background:linear-gradient(to bottom right,var(--primary),var(--primary));border-radius:9999px;width:2rem;height:2rem;padding:0}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary{background:linear-gradient(to bottom right,color-mix(in oklch,var(--primary),transparent 90%),color-mix(in oklch,var(--primary),transparent 80%))}}.btn-toolbar-icon-primary{border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary{border:1px solid color-mix(in oklch,var(--primary),transparent 70%)}}.btn-toolbar-icon-primary{transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-toolbar-icon-primary:hover{background:linear-gradient(to bottom right,var(--primary),var(--primary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-primary:hover{background:linear-gradient(to bottom right,color-mix(in oklch,var(--primary),transparent 80%),color-mix(in oklch,var(--primary),transparent 70%))}}.btn-toolbar-icon-secondary{background:linear-gradient(to bottom right,var(--secondary),var(--secondary));border-radius:9999px;width:2rem;height:2rem;padding:0}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary{background:linear-gradient(to bottom right,color-mix(in oklch,var(--secondary),transparent 90%),color-mix(in oklch,var(--secondary),transparent 80%))}}.btn-toolbar-icon-secondary{border:1px solid var(--secondary)}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary{border:1px solid color-mix(in oklch,var(--secondary),transparent 70%)}}.btn-toolbar-icon-secondary{transition:all .2s;box-shadow:0 1px 2px #0000000d}.btn-toolbar-icon-secondary:hover{background:linear-gradient(to bottom right,var(--secondary),var(--secondary))}@supports (color:color-mix(in lab, red, red)){.btn-toolbar-icon-secondary:hover{background:linear-gradient(to bottom right,color-mix(in oklch,var(--secondary),transparent 80%),color-mix(in oklch,var(--secondary),transparent 70%))}}.badge-compact{height:1.25rem;padding:0 .5rem;font-size:10px}.badge-mini{height:1rem;padding:0 .375rem;font-size:10px}@keyframes shimmer-bg{0%{background-position:-1000px 0}to{background-position:1000px 0}}.shimmer{background:linear-gradient(90deg,#0000,#ffffff1a,#0000) 0 0/1000px 100%;animation:3s linear infinite shimmer-bg}.animate-shimmer{animation:2s linear infinite shimmer}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px rgba(var(--primary),.1)}50%{box-shadow:0 0 30px rgba(var(--primary),.2)}}.pulse-glow{animation:2s ease-in-out infinite pulse-glow}@keyframes gradient-x{0%,to{background-position:0%}50%{background-position:100%}}.animate-gradient-x{animation:8s ease-in-out infinite gradient-x}.gradient-text{background:linear-gradient(to right,var(--foreground),var(--foreground))}@supports (color:color-mix(in lab, red, red)){.gradient-text{background:linear-gradient(to right,var(--foreground),color-mix(in oklch,var(--foreground),transparent 30%))}}.gradient-text{-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass{background:var(--background)}@supports (color:color-mix(in lab, red, red)){.glass{background:color-mix(in oklch,var(--background),transparent 50%)}}.glass{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border)}@supports (color:color-mix(in lab, red, red)){.glass{border:1px solid color-mix(in oklch,var(--border),transparent 50%)}}.tool-card{transition:all .3s ease-out}.tool-card:hover{transform:scale(1.02);box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.scrollbar-thin{scrollbar-width:thin}.scrollbar-thin::-webkit-scrollbar{width:6px;height:6px}.scrollbar-thin::-webkit-scrollbar-track{background:0 0}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.scrollbar-thin::-webkit-scrollbar-thumb{background-color:color-mix(in oklch,var(--primary),transparent 80%)}}.scrollbar-thin::-webkit-scrollbar-thumb{border-radius:3px}.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.scrollbar-thin::-webkit-scrollbar-thumb:hover{background-color:color-mix(in oklch,var(--primary),transparent 70%)}}}@layer utilities{.\\@container{container-type:inline-size}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.-inset-\\[1px\\]{inset:-1px}.inset-0{inset:calc(var(--spacing)*0)}.-top-1{top:calc(var(--spacing)*-1)}.-top-12{top:calc(var(--spacing)*-12)}.top-0{top:calc(var(--spacing)*0)}.top-1\\.5{top:calc(var(--spacing)*1.5)}.top-1\\/2{top:50%}.top-2{top:calc(var(--spacing)*2)}.top-4{top:calc(var(--spacing)*4)}.top-\\[50\\%\\]{top:50%}.-right-1{right:calc(var(--spacing)*-1)}.right-0{right:calc(var(--spacing)*0)}.right-1\\.5{right:calc(var(--spacing)*1.5)}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-4{bottom:calc(var(--spacing)*4)}.bottom-6{bottom:calc(var(--spacing)*6)}.left-0{left:calc(var(--spacing)*0)}.left-1\\/2,.left-\\[50\\%\\]{left:50%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing)*0)}.mx-2{margin-inline:calc(var(--spacing)*2)}.mx-3{margin-inline:calc(var(--spacing)*3)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.my-2{margin-block:calc(var(--spacing)*2)}.my-auto{margin-block:auto}.-mt-1{margin-top:calc(var(--spacing)*-1)}.mt-0\\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.-mr-1{margin-right:calc(var(--spacing)*-1)}.mr-1\\.5{margin-right:calc(var(--spacing)*1.5)}.mr-2{margin-right:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-3{margin-bottom:calc(var(--spacing)*3)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.-ml-2{margin-left:calc(var(--spacing)*-2)}.ml-1{margin-left:calc(var(--spacing)*1)}.ml-2{margin-left:calc(var(--spacing)*2)}.ml-4{margin-left:calc(var(--spacing)*4)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-2\\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-14{width:calc(var(--spacing)*14);height:calc(var(--spacing)*14)}.size-\\[34px\\]{width:34px;height:34px}.size-full{width:100%;height:100%}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-2{height:calc(var(--spacing)*2)}.h-2\\.5{height:calc(var(--spacing)*2.5)}.h-3{height:calc(var(--spacing)*3)}.h-3\\.5{height:calc(var(--spacing)*3.5)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-12{height:calc(var(--spacing)*12)}.h-\\[600px\\]{height:600px}.h-\\[calc\\(100\\%-60px\\)\\]{height:calc(100% - 60px)}.h-auto{height:auto}.h-full{height:100%}.max-h-24{max-height:calc(var(--spacing)*24)}.max-h-32{max-height:calc(var(--spacing)*32)}.max-h-40{max-height:calc(var(--spacing)*40)}.max-h-48{max-height:calc(var(--spacing)*48)}.max-h-60{max-height:calc(var(--spacing)*60)}.max-h-\\[80dvh\\]{max-height:80dvh}.max-h-\\[80vh\\]{max-height:80vh}.min-h-8{min-height:calc(var(--spacing)*8)}.min-h-\\[60px\\]{min-height:60px}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-2{width:calc(var(--spacing)*2)}.w-2\\.5{width:calc(var(--spacing)*2.5)}.w-3{width:calc(var(--spacing)*3)}.w-3\\.5{width:calc(var(--spacing)*3.5)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-16{width:calc(var(--spacing)*16)}.w-\\[500px\\]{width:500px}.w-auto{width:auto}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-7\\/8{max-width:87.5%}.max-w-16{max-width:calc(var(--spacing)*16)}.max-w-24{max-width:calc(var(--spacing)*24)}.max-w-\\[80\\%\\]{max-width:80%}.max-w-\\[80px\\]{max-width:80px}.max-w-\\[85\\%\\]{max-width:85%}.max-w-\\[100px\\]{max-width:100px}.max-w-\\[calc\\(100\\%-2rem\\)\\]{max-width:calc(100% - 2rem)}.max-w-\\[var\\(--thread-max-width\\)\\]{max-width:var(--thread-max-width)}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:calc(var(--spacing)*0);--tw-border-spacing-y:calc(var(--spacing)*0);border-spacing:var(--tw-border-spacing-x)var(--tw-border-spacing-y)}.origin-\\(--radix-tooltip-content-transform-origin\\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[-50\\%\\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\\[calc\\(-50\\%_-_2px\\)\\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize-none{resize:none}.scroll-m-20{scroll-margin:calc(var(--spacing)*20)}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.auto-rows-auto{grid-auto-rows:auto}.grid-cols-\\[minmax\\(72px\\,1fr\\)_auto\\]{grid-template-columns:minmax(72px,1fr) auto}.grid-rows-\\[0fr\\]{grid-template-rows:0fr}.grid-rows-\\[1fr\\]{grid-template-rows:1fr}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-y-2{row-gap:calc(var(--spacing)*2)}.self-center{align-self:center}.self-end{align-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\\[2px\\]{border-radius:2px}.rounded-\\[14px\\]{border-radius:14px}.rounded-\\[inherit\\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.\\!rounded-t-none{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-t-3xl{border-top-left-radius:var(--radius-3xl);border-top-right-radius:var(--radius-3xl)}.rounded-t-lg{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.rounded-tr-sm{border-top-right-radius:calc(var(--radius) - 4px)}.rounded-b-lg{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-dotted{--tw-border-style:dotted;border-style:dotted}.border-blue-500\\/40{border-color:#3080ff66}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/40{border-color:color-mix(in oklab,var(--color-blue-500)40%,transparent)}}.border-blue-500\\/60{border-color:#3080ff99}@supports (color:color-mix(in lab, red, red)){.border-blue-500\\/60{border-color:color-mix(in oklab,var(--color-blue-500)60%,transparent)}}.border-border,.border-border\\/20{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\\/20{border-color:color-mix(in oklab,var(--border)20%,transparent)}}.border-border\\/40{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\\/40{border-color:color-mix(in oklab,var(--border)40%,transparent)}}.border-border\\/50{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.border-border\\/50{border-color:color-mix(in oklab,var(--border)50%,transparent)}}.border-destructive,.border-destructive\\/60{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\\/60{border-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.border-foreground\\/20{border-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.border-foreground\\/20{border-color:color-mix(in oklab,var(--foreground)20%,transparent)}}.border-green-500\\/20{border-color:#00c75833}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/20{border-color:color-mix(in oklab,var(--color-green-500)20%,transparent)}}.border-green-500\\/40{border-color:#00c75866}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/40{border-color:color-mix(in oklab,var(--color-green-500)40%,transparent)}}.border-green-500\\/60{border-color:#00c75899}@supports (color:color-mix(in lab, red, red)){.border-green-500\\/60{border-color:color-mix(in oklab,var(--color-green-500)60%,transparent)}}.border-input{border-color:var(--input)}.border-muted-foreground\\/20{border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.border-muted-foreground\\/20{border-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.border-primary\\/60{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.border-primary\\/60{border-color:color-mix(in oklab,var(--primary)60%,transparent)}}.border-red-500\\/20{border-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/20{border-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.border-red-500\\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/40{border-color:color-mix(in oklab,var(--color-red-500)40%,transparent)}}.border-red-500\\/60{border-color:#fb2c3699}@supports (color:color-mix(in lab, red, red)){.border-red-500\\/60{border-color:color-mix(in oklab,var(--color-red-500)60%,transparent)}}.border-transparent{border-color:#0000}.border-white\\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.border-white\\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\\/20{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-\\[color-mix\\(in_oklab\\,rgb\\(var\\(--background\\)\\)_20\\%\\,transparent\\)\\]{background-color:rgb(var(--background))}@supports (color:color-mix(in lab, red, red)){.bg-\\[color-mix\\(in_oklab\\,rgb\\(var\\(--background\\)\\)_20\\%\\,transparent\\)\\]{background-color:color-mix(in oklab,rgb(var(--background))20%,transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-background,.bg-background\\/50{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\\/50{background-color:color-mix(in oklab,var(--background)50%,transparent)}}.bg-background\\/80{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\\/80{background-color:color-mix(in oklab,var(--background)80%,transparent)}}.bg-background\\/95{background-color:var(--background)}@supports (color:color-mix(in lab, red, red)){.bg-background\\/95{background-color:color-mix(in oklab,var(--background)95%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-black\\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-blue-500\\/5{background-color:#3080ff0d}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/5{background-color:color-mix(in oklab,var(--color-blue-500)5%,transparent)}}.bg-blue-500\\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\\/10{background-color:color-mix(in oklab,var(--color-blue-500)10%,transparent)}}.bg-border{background-color:var(--border)}.bg-destructive,.bg-destructive\\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\\/10{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.bg-foreground{background-color:var(--foreground)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-400\\/60{background-color:#05df7299}@supports (color:color-mix(in lab, red, red)){.bg-green-400\\/60{background-color:color-mix(in oklab,var(--color-green-400)60%,transparent)}}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\\/5{background-color:#00c7580d}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/5{background-color:color-mix(in oklab,var(--color-green-500)5%,transparent)}}.bg-green-500\\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\\/10{background-color:color-mix(in oklab,var(--color-green-500)10%,transparent)}}.bg-muted{background-color:var(--muted)}.bg-muted-foreground\\/15{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.bg-muted-foreground\\/15{background-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.bg-muted\\/5{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/5{background-color:color-mix(in oklab,var(--muted)5%,transparent)}}.bg-muted\\/30{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/30{background-color:color-mix(in oklab,var(--muted)30%,transparent)}}.bg-muted\\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-popover\\/95{background-color:var(--popover)}@supports (color:color-mix(in lab, red, red)){.bg-popover\\/95{background-color:color-mix(in oklab,var(--popover)95%,transparent)}}.bg-primary,.bg-primary\\/10{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\\/10{background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\\/5{background-color:#fb2c360d}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/5{background-color:color-mix(in oklab,var(--color-red-500)5%,transparent)}}.bg-red-500\\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/10{background-color:color-mix(in oklab,var(--color-red-500)10%,transparent)}}.bg-red-500\\/20{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.bg-red-500\\/20{background-color:color-mix(in oklab,var(--color-red-500)20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-slate-900\\/95{background-color:#0f172bf2}@supports (color:color-mix(in lab, red, red)){.bg-slate-900\\/95{background-color:color-mix(in oklab,var(--color-slate-900)95%,transparent)}}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-white\\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.bg-white\\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.bg-yellow-500{background-color:var(--color-yellow-500)}.fill-foreground{fill:var(--foreground)}.stroke-\\[1\\.5px\\]{stroke-width:1.5px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-px{padding:1px}.px-0{padding-inline:calc(var(--spacing)*0)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-1\\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-5{padding-inline:calc(var(--spacing)*5)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-0\\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.pt-0\\.5{padding-top:calc(var(--spacing)*.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-1{padding-right:calc(var(--spacing)*1)}.pr-2{padding-right:calc(var(--spacing)*2)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pl-3{padding-left:calc(var(--spacing)*3)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.text-\\[13px\\]{font-size:13px}.text-\\[15px\\]{font-size:15px}.text-\\[17px\\]{font-size:17px}.text-\\[19px\\]{font-size:19px}.text-\\[21px\\]{font-size:21px}.text-\\[25px\\]{font-size:25px}.leading-7{--tw-leading:calc(var(--spacing)*7);line-height:calc(var(--spacing)*7)}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-background{color:var(--background)}.text-blue-400{color:var(--color-blue-400)}.text-blue-600{color:var(--color-blue-600)}.text-destructive{color:var(--destructive)}.text-destructive-foreground{color:var(--destructive-foreground)}.text-emerald-500{color:var(--color-emerald-500)}.text-foreground,.text-foreground\\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}}.text-green-400{color:var(--color-green-400)}.text-green-600{color:var(--color-green-600)}.text-muted-foreground,.text-muted-foreground\\/65{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/65{color:color-mix(in oklab,var(--muted-foreground)65%,transparent)}}.text-muted-foreground\\/70{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.text-muted-foreground\\/70{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.text-white\\/20{color:#fff3}@supports (color:color-mix(in lab, red, red)){.text-white\\/20{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.text-white\\/30{color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.text-white\\/30{color:color-mix(in oklab,var(--color-white)30%,transparent)}}.text-white\\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\\/40{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.text-white\\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-70{opacity:.7}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_12px_rgba\\(34\\,197\\,94\\,0\\.3\\)\\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#22c55e4d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_12px_rgba\\(59\\,130\\,246\\,0\\.3\\)\\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#3b82f64d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_0_12px_rgba\\(239\\,68\\,68\\,0\\.3\\)\\]{--tw-shadow:0 0 12px var(--tw-shadow-color,#ef44444d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_12px_24px_-16px_rgba\\(37\\,99\\,235\\,0\\.55\\)\\]{--tw-shadow:0 12px 24px -16px var(--tw-shadow-color,#2563eb8c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\\[0_12px_24px_-18px_rgba\\(220\\,38\\,38\\,0\\.55\\)\\]{--tw-shadow:0 12px 24px -18px var(--tw-shadow-color,#dc26268c);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\\[box-shadow\\:inset_0_1px_2px_0_rgba\\(255\\,255\\,255\\,0\\.15\\)\\]{box-shadow:inset 0 1px 2px #ffffff26}.shadow-black\\/20{--tw-shadow-color:#0003}@supports (color:color-mix(in lab, red, red)){.shadow-black\\/20{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)20%,transparent)var(--tw-shadow-alpha),transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.drop-shadow-xl{--tw-drop-shadow-size:drop-shadow(0 9px 7px var(--tw-drop-shadow-color,#0000001a));--tw-drop-shadow:drop-shadow(var(--drop-shadow-xl));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,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-xl{--tw-backdrop-blur:blur(var(--blur-xl));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[color\\,box-shadow\\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[grid-template-rows\\]{transition-property:grid-template-rows;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}@media (hover:hover){.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.placeholder\\:text-muted-foreground::placeholder,.placeholder\\:text-muted-foreground\\/70::placeholder{color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.placeholder\\:text-muted-foreground\\/70::placeholder{color:color-mix(in oklab,var(--muted-foreground)70%,transparent)}}.placeholder\\:text-white\\/40::placeholder{color:#fff6}@supports (color:color-mix(in lab, red, red)){.placeholder\\:text-white\\/40::placeholder{color:color-mix(in oklab,var(--color-white)40%,transparent)}}.first\\:mt-0:first-child{margin-top:calc(var(--spacing)*0)}.first\\:mt-3:first-child{margin-top:calc(var(--spacing)*3)}.first\\:mt-4:first-child{margin-top:calc(var(--spacing)*4)}.first\\:rounded-tl-lg:first-child{border-top-left-radius:var(--radius)}.first\\:border-t:first-child{border-top-style:var(--tw-border-style);border-top-width:1px}.last\\:mb-0:last-child{margin-bottom:calc(var(--spacing)*0)}.last\\:mb-5:last-child{margin-bottom:calc(var(--spacing)*5)}.last\\:mb-24:last-child{margin-bottom:calc(var(--spacing)*24)}.last\\:rounded-tr-lg:last-child{border-top-right-radius:var(--radius)}.last\\:border-r:last-child{border-right-style:var(--tw-border-style);border-right-width:1px}.empty\\:hidden:empty{display:none}.focus-within\\:border-ring\\/50:focus-within{border-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-within\\:border-ring\\/50:focus-within{border-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-within\\:border-white\\/20:focus-within{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.focus-within\\:border-white\\/20:focus-within{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.focus-within\\:bg-white\\/15:focus-within{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.focus-within\\:bg-white\\/15:focus-within{background-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.focus-within\\:shadow-2xl:focus-within{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\\:shadow-md:focus-within{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\\:ring-2:focus-within{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-within\\:shadow-black\\/30:focus-within{--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.focus-within\\:shadow-black\\/30:focus-within{--tw-shadow-color:color-mix(in oklab,color-mix(in oklab,var(--color-black)30%,transparent)var(--tw-shadow-alpha),transparent)}}.focus-within\\:ring-ring:focus-within{--tw-ring-color:var(--ring)}.focus-within\\:ring-offset-2:focus-within{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}@media (hover:hover){.hover\\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.hover\\:border-accent:hover{border-color:var(--accent)}.hover\\:border-border\\/60:hover{border-color:var(--border)}@supports (color:color-mix(in lab, red, red)){.hover\\:border-border\\/60:hover{border-color:color-mix(in oklab,var(--border)60%,transparent)}}.hover\\:border-white\\/15:hover{border-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.hover\\:border-white\\/15:hover{border-color:color-mix(in oklab,var(--color-white)15%,transparent)}}.hover\\:\\!bg-white:hover{background-color:var(--color-white)!important}.hover\\:bg-accent:hover,.hover\\:bg-accent\\/50:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-accent\\/50:hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.hover\\:bg-destructive\\/10:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/10:hover{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.hover\\:bg-destructive\\/80:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/80:hover{background-color:color-mix(in oklab,var(--destructive)80%,transparent)}}.hover\\:bg-destructive\\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-destructive\\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\\:bg-muted-foreground\\/15:hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-muted-foreground\\/15:hover{background-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.hover\\:bg-primary\\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/80:hover{background-color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\\:bg-primary\\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\\:bg-red-500\\/30:hover{background-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-red-500\\/30:hover{background-color:color-mix(in oklab,var(--color-red-500)30%,transparent)}}.hover\\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\\:bg-secondary\\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-secondary\\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\\:bg-transparent:hover{background-color:#0000}.hover\\:bg-white\\/5:hover{background-color:#ffffff0d}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/5:hover{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.hover\\:bg-white\\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\\:bg-white\\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-foreground:hover{color:var(--foreground)}.hover\\:text-primary\\/80:hover{color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\\:text-primary\\/80:hover{color:color-mix(in oklab,var(--primary)80%,transparent)}}.hover\\:text-red-200:hover{color:var(--color-red-200)}.hover\\:text-red-300:hover{color:var(--color-red-300)}.hover\\:text-white:hover{color:var(--color-white)}.hover\\:text-white\\/70:hover{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.hover\\:text-white\\/70:hover{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.hover\\:underline:hover{text-decoration-line:underline}.hover\\:opacity-75:hover{opacity:.75}.hover\\:opacity-100:hover{opacity:1}.hover\\:shadow-2xl:hover{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-\\[0_14px_24px_-14px_rgba\\(37\\,99\\,235\\,0\\.6\\)\\]:hover{--tw-shadow:0 14px 24px -14px var(--tw-shadow-color,#2563eb99);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:shadow-\\[0_14px_24px_-16px_rgba\\(220\\,38\\,38\\,0\\.6\\)\\]:hover{--tw-shadow:0 14px 24px -16px var(--tw-shadow-color,#dc262699);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.hover\\:drop-shadow-2xl:hover{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));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,)}}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\\:ring-0:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-\\[3px\\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\\:ring-destructive\\/40:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-destructive\\/40:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.focus-visible\\:ring-primary\\/40:focus-visible{--tw-ring-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-primary\\/40:focus-visible{--tw-ring-color:color-mix(in oklab,var(--primary)40%,transparent)}}.focus-visible\\:ring-ring:focus-visible,.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-ring\\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\\:ring-white\\/30:focus-visible{--tw-ring-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.focus-visible\\:ring-white\\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-white)30%,transparent)}}.focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\\:ring-offset-transparent:focus-visible{--tw-ring-offset-color:transparent}.focus-visible\\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.active\\:cursor-grabbing:active{cursor:grabbing}.disabled\\:pointer-events-none:disabled{pointer-events:none}.disabled\\:invisible:disabled{visibility:hidden}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-50:disabled{opacity:.5}.has-\\[\\>svg\\]\\:px-2\\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\\[\\>svg\\]\\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\\[\\>svg\\]\\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\\:ring-destructive\\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-floating\\:absolute[data-floating]{position:absolute}.data-floating\\:rounded-md[data-floating]{border-radius:calc(var(--radius) - 2px)}.data-floating\\:border[data-floating]{border-style:var(--tw-border-style);border-width:1px}.data-floating\\:bg-background[data-floating]{background-color:var(--background)}.data-floating\\:p-1[data-floating]{padding:calc(var(--spacing)*1)}.data-floating\\:shadow-sm[data-floating]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\\[orientation\\=horizontal\\]\\:h-px[data-orientation=horizontal]{height:1px}.data-\\[orientation\\=horizontal\\]\\:w-full[data-orientation=horizontal]{width:100%}.data-\\[orientation\\=vertical\\]\\:h-full[data-orientation=vertical]{height:100%}.data-\\[orientation\\=vertical\\]\\:w-px[data-orientation=vertical]{width:1px}.data-\\[state\\=closed\\]\\:scale-0[data-state=closed]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\\[state\\=closed\\]\\:scale-100[data-state=closed]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\\[state\\=closed\\]\\:-rotate-90[data-state=closed]{rotate:-90deg}.data-\\[state\\=closed\\]\\:rotate-0[data-state=closed]{rotate:none}.data-\\[state\\=open\\]\\:scale-0[data-state=open]{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\\[state\\=open\\]\\:scale-100[data-state=open]{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.data-\\[state\\=open\\]\\:rotate-0[data-state=open]{rotate:none}.data-\\[state\\=open\\]\\:rotate-90[data-state=open]{rotate:90deg}.data-\\[state\\=open\\]\\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\\[state\\=open\\]\\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}@media (min-width:40rem){.sm\\:max-w-3xl{max-width:var(--container-3xl)}.sm\\:max-w-lg{max-width:var(--container-lg)}.sm\\:max-w-md{max-width:var(--container-md)}.sm\\:flex-row{flex-direction:row}.sm\\:justify-end{justify-content:flex-end}.sm\\:text-left{text-align:left}}@media (min-width:48rem){.md\\:pb-6{padding-bottom:calc(var(--spacing)*6)}}@container (min-width:28rem){.\\@md\\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\\@md\\:flex-col{flex-direction:column}}.dark\\:border-input:is(.dark *){border-color:var(--input)}.dark\\:border-muted-foreground\\/15:is(.dark *){border-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:border-muted-foreground\\/15:is(.dark *){border-color:color-mix(in oklab,var(--muted-foreground)15%,transparent)}}.dark\\:bg-background:is(.dark *){background-color:var(--background)}.dark\\:bg-destructive\\/5:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/5:is(.dark *){background-color:color-mix(in oklab,var(--destructive)5%,transparent)}}.dark\\:bg-destructive\\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-destructive\\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\\:bg-input\\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-input\\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\\:bg-muted-foreground\\/20:is(.dark *){background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:bg-muted-foreground\\/20:is(.dark *){background-color:color-mix(in oklab,var(--muted-foreground)20%,transparent)}}.dark\\:stroke-\\[2\\.5px\\]:is(.dark *){stroke-width:2.5px}.dark\\:text-green-400:is(.dark *){color:var(--color-green-400)}.dark\\:text-red-200:is(.dark *){color:var(--color-red-200)}@media (hover:hover){.dark\\:hover\\:bg-accent:is(.dark *):hover,.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\\:hover\\:bg-accent\\/60:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-accent\\/60:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)60%,transparent)}}.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-input\\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\\:hover\\:bg-muted-foreground\\/30:is(.dark *):hover{background-color:var(--muted-foreground)}@supports (color:color-mix(in lab, red, red)){.dark\\:hover\\:bg-muted-foreground\\/30:is(.dark *):hover{background-color:color-mix(in oklab,var(--muted-foreground)30%,transparent)}}}.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:focus-visible\\:ring-destructive\\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\\:aria-invalid\\:ring-destructive\\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.\\[\\&_svg\\]\\:text-background svg{color:var(--background)}.\\[\\&_svg\\]\\:text-black svg{color:var(--color-black)}@media (hover:hover){.hover\\:\\[\\&_svg\\]\\:text-destructive:hover svg{color:var(--destructive)}}.\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\\[\\&\\:last-child\\>td\\:first-child\\]\\:rounded-bl-lg:last-child>td:first-child{border-bottom-left-radius:var(--radius)}.\\[\\&\\:last-child\\>td\\:last-child\\]\\:rounded-br-lg:last-child>td:last-child{border-bottom-right-radius:var(--radius)}.\\[\\&\\:nth-child\\(n\\+3\\)\\]\\:hidden:nth-child(n+3){display:none}@container (min-width:28rem){.\\@md\\:\\[\\&\\:nth-child\\(n\\+3\\)\\]\\:block:nth-child(n+3){display:block}}.\\[\\&\\:where\\(\\>\\*\\)\\]\\:col-start-2:where(){grid-column-start:2}.only\\:\\[\\&\\>\\#attachment-tile\\]\\:size-24:only-child>#attachment-tile{width:calc(var(--spacing)*24);height:calc(var(--spacing)*24)}.\\[\\&\\>\\.aui-thread-root\\]\\:bg-inherit>.aui-thread-root{background-color:inherit}.\\[\\&\\>a\\]\\:text-xs>a{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\[\\&\\>a\\]\\:no-underline>a{text-decoration-line:none}.\\[\\&\\>button\\]\\:rounded-full>button{border-radius:3.40282e38px}.\\[\\&\\>button\\]\\:bg-foreground\\/60>button{background-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.\\[\\&\\>button\\]\\:bg-foreground\\/60>button{background-color:color-mix(in oklab,var(--foreground)60%,transparent)}}.\\[\\&\\>button\\]\\:p-1>button{padding:calc(var(--spacing)*1)}.\\[\\&\\>button\\]\\:opacity-100>button{opacity:1}.\\[\\&\\>button\\]\\:\\!ring-0>button{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}@media (hover:hover){.\\[\\&\\>button\\]\\:hover\\:\\[\\&_svg\\]\\:text-destructive>button:hover svg{color:var(--destructive)}}.\\[\\&\\>li\\]\\:mt-0\\.5>li{margin-top:calc(var(--spacing)*.5)}.\\[\\&\\>li\\]\\:mt-1>li{margin-top:calc(var(--spacing)*1)}.\\[\\&\\>span\\]\\:text-xs>span{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\\[\\&\\[align\\=center\\]\\]\\:text-center[align=center]{text-align:center}.\\[\\&\\[align\\=right\\]\\]\\:text-right[align=right]{text-align:right}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(200%)}}@keyframes subtle-pulse{0%,to{opacity:1}50%{opacity:.85}}@keyframes smooth-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gradient-shift{0%,to{transform:translate(0%)translateY(0%)}25%{transform:translate(100%)translateY(100%)}50%{transform:translate(100%)translateY(0%)}75%{transform:translate(0%)translateY(100%)}}@keyframes float{0%,to{transform:translateY(0)translate(0)}33%{transform:translateY(-30px)translate(20px)}66%{transform:translateY(20px)translate(-20px)}}@keyframes float-delayed{0%,to{transform:translateY(0)translate(0)}33%{transform:translateY(30px)translate(-30px)}66%{transform:translateY(-20px)translate(20px)}}.tool-card-transition{transition:all .4s cubic-bezier(.34,1.56,.64,1)}.tool-card-smooth{transition:all .35s cubic-bezier(.4,0,.2,1)}.animate-fadeInUp{opacity:0;animation:.5s ease-out forwards fadeInUp}.animate-gradient-shift{background-size:200% 200%;animation:20s ease-in-out infinite gradient-shift}.animate-float-slow{animation:20s ease-in-out infinite float}.animate-float-delayed{animation:25s ease-in-out 5s infinite float-delayed}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@keyframes tool-border-rotate{0%{--tool-border-angle:0deg}to{--tool-border-angle:360deg}}@property --tool-border-angle{syntax:\"<angle>\";inherits:false;initial-value:0deg}.tool-border-calling{background:conic-gradient(from var(--tool-border-angle),transparent 0deg,transparent 60deg,#3b82f680 90deg,#60a5fab3 120deg,#93c5fd80 150deg,transparent 180deg,transparent 360deg);animation:1.5s linear infinite tool-border-rotate}.tool-border-success{background:#22c55e66;box-shadow:0 0 12px #22c55e4d,inset 0 0 8px #22c55e1a}.tool-border-error{background:#ef444466;box-shadow:0 0 12px #ef44444d,inset 0 0 8px #ef44441a}@keyframes pulse-success{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 8px #22c55e00}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-2px)}20%,40%,60%,80%{transform:translate(2px)}}.animate-pulse-success{animation:.6s ease-out pulse-success}.animate-shake{animation:.3s ease-out shake}@keyframes aui-pulse{50%{opacity:.5}}:where(.aui-md[data-status=running]):empty:after,:where(.aui-md[data-status=running])>:where(:not(ol):not(ul):not(pre)):last-child:after,:where(.aui-md[data-status=running])>pre:last-child code:after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child:not(:has(*>li))):after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child:not(:has(*>li))):after,:where(.aui-md[data-status=running])>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child)>:where(:is(ol,ul):last-child)>:where(li:last-child):after{--aui-content:\"●\";content:var(--aui-content);margin-left:.25rem;margin-right:.25rem;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;animation:2s cubic-bezier(.4,0,.6,1) infinite aui-pulse}.glass-pill{-webkit-backdrop-filter:blur(20px)saturate(150%);background:#0f172ad9;border:1px solid #ffffff0f;box-shadow:0 4px 16px #0003,inset 0 .5px #ffffff14}.glass-pill:before{content:\"\";border-radius:inherit;pointer-events:none;z-index:1;background:linear-gradient(#ffffff0a 0%,#0000 40%);position:absolute;inset:0}.glass-pill:after{display:none}.glass-pill-collapsed{-webkit-backdrop-filter:blur(12px);background:#ffffff1f;border:none;box-shadow:0 1px 4px #00000026}.glass-pill-collapsed:before,.glass-pill-collapsed:after{display:none}.glass-pill-hovered{-webkit-backdrop-filter:blur(16px)saturate(140%);background:#0f172acc;border:1px solid #ffffff0f;box-shadow:0 2px 12px #0000002e}.glass-pill-hovered:before,.glass-pill-hovered:after{display:none}@keyframes glass-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.glass-shimmer{background:linear-gradient(90deg,#ffffff14 0%,#ffffff26 50%,#ffffff14 100%) 0 0/200% 100%;animation:4s ease-in-out infinite glass-shimmer}.scrollbar-thin{scrollbar-width:thin;scrollbar-color:#fff3 transparent}.scrollbar-thin::-webkit-scrollbar{width:4px;height:4px}.scrollbar-thin::-webkit-scrollbar-thumb{background-color:#fff3;border-radius:9999px}.scrollbar-thin::-webkit-scrollbar-track{background-color:#0000}@property --tw-border-spacing-x{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-ordinal{syntax:\"*\";inherits:false}@property --tw-slashed-zero{syntax:\"*\";inherits:false}@property --tw-numeric-figure{syntax:\"*\";inherits:false}@property --tw-numeric-spacing{syntax:\"*\";inherits:false}@property --tw-numeric-fraction{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@property --tw-scale-x{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-y{syntax:\"*\";inherits:false;initial-value:1}@property --tw-scale-z{syntax:\"*\";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}";
|
|
7333
7817
|
/**
|
|
7334
7818
|
* Inject the WebMCP styles into the document head.
|
|
7335
7819
|
* This is called automatically when registering the web component.
|
|
@@ -7344,6 +7828,75 @@ function injectStyles() {
|
|
|
7344
7828
|
document.head.appendChild(style);
|
|
7345
7829
|
}
|
|
7346
7830
|
|
|
7831
|
+
//#endregion
|
|
7832
|
+
//#region src/providers/VoiceMCPBridge.tsx
|
|
7833
|
+
/**
|
|
7834
|
+
* Convert MCP tool to RegisteredTool format for voice mode.
|
|
7835
|
+
* Both use JSON Schema for inputSchema, so conversion is straightforward.
|
|
7836
|
+
*/
|
|
7837
|
+
function convertToRegisteredTool(tool) {
|
|
7838
|
+
return {
|
|
7839
|
+
name: tool.name,
|
|
7840
|
+
description: tool.description ?? `Execute ${tool.name}`,
|
|
7841
|
+
inputSchema: tool.inputSchema
|
|
7842
|
+
};
|
|
7843
|
+
}
|
|
7844
|
+
/**
|
|
7845
|
+
* Bridge component that connects MCP tools to VoiceModeProvider.
|
|
7846
|
+
* Uses the MCP context and provides tools + executor to voice mode.
|
|
7847
|
+
*/
|
|
7848
|
+
const VoiceMCPBridge = (t0) => {
|
|
7849
|
+
const $ = c(14);
|
|
7850
|
+
const { children, tokenEndpoint, onError, onConnect, onDisconnect, onUserTranscript, onAssistantTranscript } = t0;
|
|
7851
|
+
const { tools: mcpTools, callTool } = useMCPTools();
|
|
7852
|
+
let t1;
|
|
7853
|
+
if ($[0] !== mcpTools) {
|
|
7854
|
+
t1 = mcpTools.map(convertToRegisteredTool);
|
|
7855
|
+
$[0] = mcpTools;
|
|
7856
|
+
$[1] = t1;
|
|
7857
|
+
} else t1 = $[1];
|
|
7858
|
+
const voiceTools = t1;
|
|
7859
|
+
let t2;
|
|
7860
|
+
if ($[2] !== callTool) {
|
|
7861
|
+
t2 = async (name, args) => {
|
|
7862
|
+
const result = await callTool(name, args);
|
|
7863
|
+
if (result.content && Array.isArray(result.content) && result.content.length > 0) {
|
|
7864
|
+
const firstContent = result.content[0];
|
|
7865
|
+
if (firstContent && "text" in firstContent) return firstContent.text;
|
|
7866
|
+
}
|
|
7867
|
+
return result;
|
|
7868
|
+
};
|
|
7869
|
+
$[2] = callTool;
|
|
7870
|
+
$[3] = t2;
|
|
7871
|
+
} else t2 = $[3];
|
|
7872
|
+
const toolExecutor = t2;
|
|
7873
|
+
let t3;
|
|
7874
|
+
if ($[4] !== children || $[5] !== onAssistantTranscript || $[6] !== onConnect || $[7] !== onDisconnect || $[8] !== onError || $[9] !== onUserTranscript || $[10] !== tokenEndpoint || $[11] !== toolExecutor || $[12] !== voiceTools) {
|
|
7875
|
+
t3 = /* @__PURE__ */ jsx(VoiceModeProvider, {
|
|
7876
|
+
tokenEndpoint,
|
|
7877
|
+
tools: voiceTools,
|
|
7878
|
+
toolExecutor,
|
|
7879
|
+
onError,
|
|
7880
|
+
onConnect,
|
|
7881
|
+
onDisconnect,
|
|
7882
|
+
onUserTranscript,
|
|
7883
|
+
onAssistantTranscript,
|
|
7884
|
+
children
|
|
7885
|
+
});
|
|
7886
|
+
$[4] = children;
|
|
7887
|
+
$[5] = onAssistantTranscript;
|
|
7888
|
+
$[6] = onConnect;
|
|
7889
|
+
$[7] = onDisconnect;
|
|
7890
|
+
$[8] = onError;
|
|
7891
|
+
$[9] = onUserTranscript;
|
|
7892
|
+
$[10] = tokenEndpoint;
|
|
7893
|
+
$[11] = toolExecutor;
|
|
7894
|
+
$[12] = voiceTools;
|
|
7895
|
+
$[13] = t3;
|
|
7896
|
+
} else t3 = $[13];
|
|
7897
|
+
return t3;
|
|
7898
|
+
};
|
|
7899
|
+
|
|
7347
7900
|
//#endregion
|
|
7348
7901
|
//#region src/web-component.tsx
|
|
7349
7902
|
/**
|
|
@@ -7457,7 +8010,7 @@ const EmbeddedAgent = (t0) => {
|
|
|
7457
8010
|
const renderUI = t8;
|
|
7458
8011
|
let t9;
|
|
7459
8012
|
if ($[12] !== onVoiceConnect || $[13] !== onVoiceDisconnect || $[14] !== onVoiceError || $[15] !== renderUI || $[16] !== resolvedTokenEndpoint || $[17] !== runtime) {
|
|
7460
|
-
t9 = resolvedTokenEndpoint ? /* @__PURE__ */ jsx(
|
|
8013
|
+
t9 = resolvedTokenEndpoint ? /* @__PURE__ */ jsx(VoiceMCPBridge, {
|
|
7461
8014
|
tokenEndpoint: resolvedTokenEndpoint,
|
|
7462
8015
|
onError: onVoiceError,
|
|
7463
8016
|
onConnect: onVoiceConnect,
|