@mcp-b/embedded-agent 0.0.2 → 0.0.3

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/dist/index.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, tool, useAssistantApi, useAssistantRuntime, useAssistantState, useAssistantTool, useExternalStoreRuntime } from "@assistant-ui/react";
2
+ import { ActionBarPrimitive, AssistantModalPrimitive, AssistantRuntimeProvider, AttachmentPrimitive, BranchPickerPrimitive, ComposerPrimitive, ErrorPrimitive, MessagePrimitive, ThreadPrimitive, tool, useAssistantApi, useAssistantRuntime, useAssistantState, useAssistantTool, useExternalStoreRuntime, 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, Bot, CheckCircle2, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, CopyIcon, FileText, Loader2, Mic, MicOff, PencilIcon, Phone, PhoneOff, Plug, Plus, PlusIcon, RefreshCwIcon, Square, User, Volume2, Wrench, X, XIcon } from "lucide-react";
8
- import { AnimatePresence, LazyMotion, MotionConfig, domAnimation } from "motion/react";
7
+ import { AlertCircle, ArrowDownIcon, ArrowUpIcon, Bot, CheckCircle2, CheckIcon, ChevronDown, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, Circle, CopyIcon, FileText, History, Loader2, MessageSquare, Mic, MicOff, PencilIcon, Phone, PhoneOff, Plug, Plus, PlusIcon, RefreshCwIcon, Send, Square, User, Volume2, Wrench, X, XIcon } from "lucide-react";
8
+ import { AnimatePresence, LazyMotion, MotionConfig, domAnimation, motion } 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";
@@ -23,6 +23,7 @@ import { CreateMessageRequestSchema, GetPromptResultSchema, ListPromptsResultSch
23
23
  import { TabClientTransport } from "@mcp-b/transports";
24
24
  import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
25
25
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
26
+ import ReactMarkdown from "react-markdown";
26
27
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
27
28
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
28
29
  import { useAgent } from "agents/react";
@@ -2205,7 +2206,7 @@ const useFileSrc = (file) => {
2205
2206
  return src;
2206
2207
  };
2207
2208
  const useAttachmentSrc = () => {
2208
- const { file, src: src_0 } = useAssistantState(useShallow(_temp2));
2209
+ const { file, src: src_0 } = useAssistantState(useShallow(_temp2$5));
2209
2210
  return useFileSrc(file) ?? src_0;
2210
2211
  };
2211
2212
  const AttachmentPreview = (t0) => {
@@ -2271,7 +2272,7 @@ const AttachmentPreviewDialog = (t0) => {
2271
2272
  };
2272
2273
  const AttachmentThumb = () => {
2273
2274
  const $ = c(8);
2274
- const isImage = useAssistantState(_temp3);
2275
+ const isImage = useAssistantState(_temp3$4);
2275
2276
  const src = useAttachmentSrc();
2276
2277
  let t0;
2277
2278
  if ($[0] !== src) {
@@ -2313,8 +2314,8 @@ const AttachmentThumb = () => {
2313
2314
  const AttachmentUI = () => {
2314
2315
  const $ = c(17);
2315
2316
  const isComposer = useAssistantApi().attachment.source === "composer";
2316
- const isImage = useAssistantState(_temp4);
2317
- const typeLabel = useAssistantState(_temp5);
2317
+ const isImage = useAssistantState(_temp4$4);
2318
+ const typeLabel = useAssistantState(_temp5$2);
2318
2319
  const t0 = isImage && "aui-attachment-root-composer only:[&>#attachment-tile]:size-24";
2319
2320
  let t1;
2320
2321
  if ($[0] !== t0) {
@@ -2445,26 +2446,26 @@ const ComposerAddAttachment = () => {
2445
2446
  } else t0 = $[0];
2446
2447
  return t0;
2447
2448
  };
2448
- function _temp$4(c$1) {
2449
+ function _temp$10(c$1) {
2449
2450
  return c$1.type === "image";
2450
2451
  }
2451
- function _temp2(t0) {
2452
+ function _temp2$5(t0) {
2452
2453
  const { attachment } = t0;
2453
2454
  if (attachment.type !== "image") return {};
2454
2455
  if (attachment.file) return { file: attachment.file };
2455
- const src = attachment.content?.filter(_temp$4)[0]?.image;
2456
+ const src = attachment.content?.filter(_temp$10)[0]?.image;
2456
2457
  if (!src) return {};
2457
2458
  return { src };
2458
2459
  }
2459
- function _temp3(t0) {
2460
+ function _temp3$4(t0) {
2460
2461
  const { attachment } = t0;
2461
2462
  return attachment.type === "image";
2462
2463
  }
2463
- function _temp4(t0) {
2464
+ function _temp4$4(t0) {
2464
2465
  const { attachment } = t0;
2465
2466
  return attachment.type === "image";
2466
2467
  }
2467
- function _temp5(t0) {
2468
+ function _temp5$2(t0) {
2468
2469
  const { attachment: attachment_0 } = t0;
2469
2470
  const type = attachment_0.type;
2470
2471
  switch (type) {
@@ -4230,7 +4231,7 @@ const ThreadSuggestions$1 = () => {
4230
4231
  label: "for healthy weight loss",
4231
4232
  action: "Create a meal plan for healthy weight loss"
4232
4233
  }
4233
- ].map(_temp$3)
4234
+ ].map(_temp$9)
4234
4235
  });
4235
4236
  $[0] = t0;
4236
4237
  } else t0 = $[0];
@@ -4503,7 +4504,7 @@ const BranchPicker$1 = (t0) => {
4503
4504
  } else t6 = $[11];
4504
4505
  return t6;
4505
4506
  };
4506
- function _temp$3(suggestedAction, index) {
4507
+ function _temp$9(suggestedAction, index) {
4507
4508
  return /* @__PURE__ */ jsx(m.div, {
4508
4509
  initial: {
4509
4510
  opacity: 0,
@@ -4702,6 +4703,2912 @@ const MCPToolRegistry = () => {
4702
4703
  return t1;
4703
4704
  };
4704
4705
 
4706
+ //#endregion
4707
+ //#region src/hooks/useActions.ts
4708
+ /**
4709
+ * Humanize a tool name for display
4710
+ * e.g., "search_files" -> "Searching files"
4711
+ * e.g., "readFile" -> "Reading file"
4712
+ */
4713
+ function humanizeToolName(toolName, isRunning = false) {
4714
+ const words = toolName.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/_/g, " ").toLowerCase().split(" ");
4715
+ if (words.length === 0) return toolName;
4716
+ if (isRunning) {
4717
+ const verb = words[0];
4718
+ const progressive = verb.endsWith("e") ? verb.slice(0, -1) + "ing" : verb + "ing";
4719
+ words[0] = progressive.charAt(0).toUpperCase() + progressive.slice(1);
4720
+ } else words[0] = words[0].charAt(0).toUpperCase() + words[0].slice(1);
4721
+ return words.join(" ");
4722
+ }
4723
+ /**
4724
+ * Hook to derive actions from the current thread's tool calls
4725
+ *
4726
+ * Actions are a view of tool calls - not separate state.
4727
+ * This maintains compatibility with assistant-ui's data model.
4728
+ */
4729
+ function useActions() {
4730
+ const $ = c(3);
4731
+ const messages = useThread(_temp$8);
4732
+ let t0;
4733
+ bb0: {
4734
+ if (!messages || messages.length === 0) {
4735
+ let t1;
4736
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
4737
+ t1 = [];
4738
+ $[0] = t1;
4739
+ } else t1 = $[0];
4740
+ t0 = t1;
4741
+ break bb0;
4742
+ }
4743
+ let actions;
4744
+ if ($[1] !== messages) {
4745
+ actions = [];
4746
+ for (const message of messages) {
4747
+ if (message.role !== "assistant") continue;
4748
+ for (const part of message.content) {
4749
+ if (part.type !== "tool-call") continue;
4750
+ const toolPart = part;
4751
+ const isComplete = toolPart.result !== void 0;
4752
+ const hasError = toolPart.result && typeof toolPart.result === "object" && "error" in toolPart.result;
4753
+ let status;
4754
+ if (hasError) status = "error";
4755
+ else if (isComplete) status = "success";
4756
+ else status = "running";
4757
+ actions.push({
4758
+ id: toolPart.toolCallId,
4759
+ toolName: toolPart.toolName,
4760
+ label: humanizeToolName(toolPart.toolName, status === "running"),
4761
+ status,
4762
+ args: toolPart.args,
4763
+ result: toolPart.result,
4764
+ error: hasError ? String(toolPart.result.error) : void 0
4765
+ });
4766
+ }
4767
+ }
4768
+ $[1] = messages;
4769
+ $[2] = actions;
4770
+ } else actions = $[2];
4771
+ t0 = actions;
4772
+ }
4773
+ return t0;
4774
+ }
4775
+ /**
4776
+ * Hook to get the current running action (if any)
4777
+ */
4778
+ function _temp$8(thread) {
4779
+ return thread.messages;
4780
+ }
4781
+ function useCurrentAction() {
4782
+ const $ = c(2);
4783
+ const actions = useActions();
4784
+ let t0;
4785
+ if ($[0] !== actions) {
4786
+ t0 = actions.find(_temp2$4) ?? null;
4787
+ $[0] = actions;
4788
+ $[1] = t0;
4789
+ } else t0 = $[1];
4790
+ return t0;
4791
+ }
4792
+ /**
4793
+ * Hook to get recently completed actions
4794
+ */
4795
+ function _temp2$4(a) {
4796
+ return a.status === "running";
4797
+ }
4798
+ function useRecentActions(t0) {
4799
+ const $ = c(3);
4800
+ const limit = t0 === void 0 ? 3 : t0;
4801
+ const actions = useActions();
4802
+ let t1;
4803
+ if ($[0] !== actions || $[1] !== limit) {
4804
+ t1 = actions.filter(_temp3$3).slice(-limit);
4805
+ $[0] = actions;
4806
+ $[1] = limit;
4807
+ $[2] = t1;
4808
+ } else t1 = $[2];
4809
+ return t1;
4810
+ }
4811
+ /**
4812
+ * Hook to get action summary stats
4813
+ */
4814
+ function _temp3$3(a) {
4815
+ return a.status === "success" || a.status === "error";
4816
+ }
4817
+ function useActionStats() {
4818
+ const $ = c(11);
4819
+ const actions = useActions();
4820
+ const t0 = actions.length;
4821
+ let t1;
4822
+ if ($[0] !== actions) {
4823
+ t1 = actions.filter(_temp4$3);
4824
+ $[0] = actions;
4825
+ $[1] = t1;
4826
+ } else t1 = $[1];
4827
+ const t2 = t1.length;
4828
+ let t3;
4829
+ if ($[2] !== actions) {
4830
+ t3 = actions.filter(_temp5$1);
4831
+ $[2] = actions;
4832
+ $[3] = t3;
4833
+ } else t3 = $[3];
4834
+ const t4 = t3.length;
4835
+ let t5;
4836
+ if ($[4] !== actions) {
4837
+ t5 = actions.filter(_temp6);
4838
+ $[4] = actions;
4839
+ $[5] = t5;
4840
+ } else t5 = $[5];
4841
+ let t6;
4842
+ if ($[6] !== actions.length || $[7] !== t1.length || $[8] !== t3.length || $[9] !== t5.length) {
4843
+ t6 = {
4844
+ total: t0,
4845
+ completed: t2,
4846
+ running: t4,
4847
+ failed: t5.length
4848
+ };
4849
+ $[6] = actions.length;
4850
+ $[7] = t1.length;
4851
+ $[8] = t3.length;
4852
+ $[9] = t5.length;
4853
+ $[10] = t6;
4854
+ } else t6 = $[10];
4855
+ return t6;
4856
+ }
4857
+ function _temp6(a_1) {
4858
+ return a_1.status === "error";
4859
+ }
4860
+ function _temp5$1(a_0) {
4861
+ return a_0.status === "running";
4862
+ }
4863
+ function _temp4$3(a) {
4864
+ return a.status === "success";
4865
+ }
4866
+
4867
+ //#endregion
4868
+ //#region src/components/pill/CurrentActivity.tsx
4869
+ /**
4870
+ * Displays the current action the agent is performing,
4871
+ * with optional recent completed steps shown below.
4872
+ */
4873
+ const CurrentActivity = (t0) => {
4874
+ const $ = c(13);
4875
+ const { currentAction, recentActions: t1, showRecent: t2, className } = t0;
4876
+ let t3;
4877
+ if ($[0] !== t1) {
4878
+ t3 = t1 === void 0 ? [] : t1;
4879
+ $[0] = t1;
4880
+ $[1] = t3;
4881
+ } else t3 = $[1];
4882
+ const recentActions = t3;
4883
+ const showRecent = t2 === void 0 ? true : t2;
4884
+ if (!currentAction && recentActions.length === 0) return null;
4885
+ let t4;
4886
+ if ($[2] !== className) {
4887
+ t4 = cn("space-y-2", className);
4888
+ $[2] = className;
4889
+ $[3] = t4;
4890
+ } else t4 = $[3];
4891
+ let t5;
4892
+ if ($[4] !== currentAction) {
4893
+ t5 = currentAction && /* @__PURE__ */ jsxs("div", {
4894
+ className: "flex items-center gap-2.5",
4895
+ children: [/* @__PURE__ */ jsx(ActionStatusIcon, { status: currentAction.status }), /* @__PURE__ */ jsxs("span", {
4896
+ className: "text-sm font-medium text-white",
4897
+ children: [currentAction.label, "..."]
4898
+ })]
4899
+ });
4900
+ $[4] = currentAction;
4901
+ $[5] = t5;
4902
+ } else t5 = $[5];
4903
+ let t6;
4904
+ if ($[6] !== recentActions || $[7] !== showRecent) {
4905
+ t6 = showRecent && recentActions.length > 0 && /* @__PURE__ */ jsx("div", {
4906
+ className: "ml-1 border-l border-white/20 pl-3 space-y-1",
4907
+ children: recentActions.map(_temp$7)
4908
+ });
4909
+ $[6] = recentActions;
4910
+ $[7] = showRecent;
4911
+ $[8] = t6;
4912
+ } else t6 = $[8];
4913
+ let t7;
4914
+ if ($[9] !== t4 || $[10] !== t5 || $[11] !== t6) {
4915
+ t7 = /* @__PURE__ */ jsxs("div", {
4916
+ className: t4,
4917
+ children: [t5, t6]
4918
+ });
4919
+ $[9] = t4;
4920
+ $[10] = t5;
4921
+ $[11] = t6;
4922
+ $[12] = t7;
4923
+ } else t7 = $[12];
4924
+ return t7;
4925
+ };
4926
+ /**
4927
+ * Icon component for action status
4928
+ */
4929
+ const ActionStatusIcon = (t0) => {
4930
+ const $ = c(25);
4931
+ const { status, size: t1, className } = t0;
4932
+ const sizeClass = (t1 === void 0 ? "md" : t1) === "sm" ? "h-3 w-3" : "h-4 w-4";
4933
+ switch (status) {
4934
+ case "queued": {
4935
+ let t2;
4936
+ if ($[0] !== className || $[1] !== sizeClass) {
4937
+ t2 = cn(sizeClass, "text-white/40", className);
4938
+ $[0] = className;
4939
+ $[1] = sizeClass;
4940
+ $[2] = t2;
4941
+ } else t2 = $[2];
4942
+ let t3;
4943
+ if ($[3] !== t2) {
4944
+ t3 = /* @__PURE__ */ jsx(Circle, { className: t2 });
4945
+ $[3] = t2;
4946
+ $[4] = t3;
4947
+ } else t3 = $[4];
4948
+ return t3;
4949
+ }
4950
+ case "running": {
4951
+ let t2;
4952
+ if ($[5] !== className || $[6] !== sizeClass) {
4953
+ t2 = cn(sizeClass, "text-blue-400 animate-spin", className);
4954
+ $[5] = className;
4955
+ $[6] = sizeClass;
4956
+ $[7] = t2;
4957
+ } else t2 = $[7];
4958
+ let t3;
4959
+ if ($[8] !== t2) {
4960
+ t3 = /* @__PURE__ */ jsx(Loader2, { className: t2 });
4961
+ $[8] = t2;
4962
+ $[9] = t3;
4963
+ } else t3 = $[9];
4964
+ return t3;
4965
+ }
4966
+ case "success": {
4967
+ let t2;
4968
+ if ($[10] !== className || $[11] !== sizeClass) {
4969
+ t2 = cn(sizeClass, "text-green-400", className);
4970
+ $[10] = className;
4971
+ $[11] = sizeClass;
4972
+ $[12] = t2;
4973
+ } else t2 = $[12];
4974
+ let t3;
4975
+ if ($[13] !== t2) {
4976
+ t3 = /* @__PURE__ */ jsx(CheckCircle2, { className: t2 });
4977
+ $[13] = t2;
4978
+ $[14] = t3;
4979
+ } else t3 = $[14];
4980
+ return t3;
4981
+ }
4982
+ case "error": {
4983
+ let t2;
4984
+ if ($[15] !== className || $[16] !== sizeClass) {
4985
+ t2 = cn(sizeClass, "text-red-400", className);
4986
+ $[15] = className;
4987
+ $[16] = sizeClass;
4988
+ $[17] = t2;
4989
+ } else t2 = $[17];
4990
+ let t3;
4991
+ if ($[18] !== t2) {
4992
+ t3 = /* @__PURE__ */ jsx(AlertCircle, { className: t2 });
4993
+ $[18] = t2;
4994
+ $[19] = t3;
4995
+ } else t3 = $[19];
4996
+ return t3;
4997
+ }
4998
+ default: {
4999
+ let t2;
5000
+ if ($[20] !== className || $[21] !== sizeClass) {
5001
+ t2 = cn(sizeClass, "text-white/40", className);
5002
+ $[20] = className;
5003
+ $[21] = sizeClass;
5004
+ $[22] = t2;
5005
+ } else t2 = $[22];
5006
+ let t3;
5007
+ if ($[23] !== t2) {
5008
+ t3 = /* @__PURE__ */ jsx(Circle, { className: t2 });
5009
+ $[23] = t2;
5010
+ $[24] = t3;
5011
+ } else t3 = $[24];
5012
+ return t3;
5013
+ }
5014
+ }
5015
+ };
5016
+ /**
5017
+ * Idle state indicator when no actions are running
5018
+ */
5019
+ const IdleIndicator = (t0) => {
5020
+ const $ = c(6);
5021
+ const { className } = t0;
5022
+ let t1;
5023
+ if ($[0] !== className) {
5024
+ t1 = cn("flex items-center gap-2 text-white/50", className);
5025
+ $[0] = className;
5026
+ $[1] = t1;
5027
+ } else t1 = $[1];
5028
+ let t2;
5029
+ let t3;
5030
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
5031
+ t2 = /* @__PURE__ */ jsx("div", { className: "h-2 w-2 rounded-full bg-green-400/60" });
5032
+ t3 = /* @__PURE__ */ jsx("span", {
5033
+ className: "text-xs",
5034
+ children: "Ready"
5035
+ });
5036
+ $[2] = t2;
5037
+ $[3] = t3;
5038
+ } else {
5039
+ t2 = $[2];
5040
+ t3 = $[3];
5041
+ }
5042
+ let t4;
5043
+ if ($[4] !== t1) {
5044
+ t4 = /* @__PURE__ */ jsxs("div", {
5045
+ className: t1,
5046
+ children: [t2, t3]
5047
+ });
5048
+ $[4] = t1;
5049
+ $[5] = t4;
5050
+ } else t4 = $[5];
5051
+ return t4;
5052
+ };
5053
+ function _temp$7(action) {
5054
+ return /* @__PURE__ */ jsxs("div", {
5055
+ className: "flex items-center gap-2 text-xs text-white/60",
5056
+ children: [/* @__PURE__ */ jsx(ActionStatusIcon, {
5057
+ status: action.status,
5058
+ size: "sm"
5059
+ }), /* @__PURE__ */ jsx("span", {
5060
+ className: cn(action.status === "error" && "text-red-400"),
5061
+ children: action.label
5062
+ })]
5063
+ }, action.id);
5064
+ }
5065
+
5066
+ //#endregion
5067
+ //#region src/components/pill/ActionList.tsx
5068
+ /**
5069
+ * Collapsible list of all actions (tool calls) in the current conversation.
5070
+ * Shows count in header, expands to show full list with status icons.
5071
+ */
5072
+ const ActionList = (t0) => {
5073
+ const $ = c(34);
5074
+ const { actions, defaultCollapsed: t1, className } = t0;
5075
+ const [isCollapsed, setIsCollapsed] = useState(t1 === void 0 ? true : t1);
5076
+ if (actions.length === 0) return null;
5077
+ let t2;
5078
+ if ($[0] !== actions) {
5079
+ t2 = actions.filter(_temp$6);
5080
+ $[0] = actions;
5081
+ $[1] = t2;
5082
+ } else t2 = $[1];
5083
+ const completedCount = t2.length;
5084
+ const totalCount = actions.length;
5085
+ let t3;
5086
+ if ($[2] !== className) {
5087
+ t3 = cn("", className);
5088
+ $[2] = className;
5089
+ $[3] = t3;
5090
+ } else t3 = $[3];
5091
+ let t4;
5092
+ if ($[4] !== isCollapsed) {
5093
+ t4 = () => setIsCollapsed(!isCollapsed);
5094
+ $[4] = isCollapsed;
5095
+ $[5] = t4;
5096
+ } else t4 = $[5];
5097
+ let t5;
5098
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
5099
+ t5 = cn("flex w-full items-center justify-between", "rounded-lg px-3 py-2", "bg-white/5 hover:bg-white/10", "transition-colors duration-200");
5100
+ $[6] = t5;
5101
+ } else t5 = $[6];
5102
+ const t6 = !isCollapsed;
5103
+ let t7;
5104
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
5105
+ t7 = /* @__PURE__ */ jsx("span", {
5106
+ className: "text-xs font-medium text-white/80",
5107
+ children: "Actions"
5108
+ });
5109
+ $[7] = t7;
5110
+ } else t7 = $[7];
5111
+ let t8;
5112
+ if ($[8] !== completedCount || $[9] !== totalCount) {
5113
+ t8 = /* @__PURE__ */ jsxs("div", {
5114
+ className: "flex items-center gap-2",
5115
+ children: [t7, /* @__PURE__ */ jsxs("span", {
5116
+ className: "text-xs text-white/50",
5117
+ children: [
5118
+ "(",
5119
+ completedCount,
5120
+ "/",
5121
+ totalCount,
5122
+ ")"
5123
+ ]
5124
+ })]
5125
+ });
5126
+ $[8] = completedCount;
5127
+ $[9] = totalCount;
5128
+ $[10] = t8;
5129
+ } else t8 = $[10];
5130
+ const t9 = !isCollapsed && "rotate-180";
5131
+ let t10;
5132
+ if ($[11] !== t9) {
5133
+ t10 = cn("h-4 w-4 text-white/50 transition-transform duration-200", t9);
5134
+ $[11] = t9;
5135
+ $[12] = t10;
5136
+ } else t10 = $[12];
5137
+ let t11;
5138
+ if ($[13] !== t10) {
5139
+ t11 = /* @__PURE__ */ jsx(ChevronDown, { className: t10 });
5140
+ $[13] = t10;
5141
+ $[14] = t11;
5142
+ } else t11 = $[14];
5143
+ let t12;
5144
+ if ($[15] !== t11 || $[16] !== t4 || $[17] !== t6 || $[18] !== t8) {
5145
+ t12 = /* @__PURE__ */ jsxs("button", {
5146
+ type: "button",
5147
+ onClick: t4,
5148
+ className: t5,
5149
+ "aria-expanded": t6,
5150
+ children: [t8, t11]
5151
+ });
5152
+ $[15] = t11;
5153
+ $[16] = t4;
5154
+ $[17] = t6;
5155
+ $[18] = t8;
5156
+ $[19] = t12;
5157
+ } else t12 = $[19];
5158
+ const t13 = isCollapsed ? "grid-rows-[0fr]" : "grid-rows-[1fr]";
5159
+ let t14;
5160
+ if ($[20] !== t13) {
5161
+ t14 = cn("grid transition-[grid-template-rows] duration-300 ease-out", t13);
5162
+ $[20] = t13;
5163
+ $[21] = t14;
5164
+ } else t14 = $[21];
5165
+ let t15;
5166
+ if ($[22] !== actions) {
5167
+ t15 = actions.map(_temp2$3);
5168
+ $[22] = actions;
5169
+ $[23] = t15;
5170
+ } else t15 = $[23];
5171
+ let t16;
5172
+ if ($[24] !== t15) {
5173
+ t16 = /* @__PURE__ */ jsx("div", {
5174
+ className: "overflow-hidden",
5175
+ children: /* @__PURE__ */ jsx("div", {
5176
+ className: "mt-2 max-h-48 space-y-1 overflow-y-auto px-1",
5177
+ children: t15
5178
+ })
5179
+ });
5180
+ $[24] = t15;
5181
+ $[25] = t16;
5182
+ } else t16 = $[25];
5183
+ let t17;
5184
+ if ($[26] !== isCollapsed || $[27] !== t14 || $[28] !== t16) {
5185
+ t17 = /* @__PURE__ */ jsx("div", {
5186
+ className: t14,
5187
+ "aria-hidden": isCollapsed,
5188
+ children: t16
5189
+ });
5190
+ $[26] = isCollapsed;
5191
+ $[27] = t14;
5192
+ $[28] = t16;
5193
+ $[29] = t17;
5194
+ } else t17 = $[29];
5195
+ let t18;
5196
+ if ($[30] !== t12 || $[31] !== t17 || $[32] !== t3) {
5197
+ t18 = /* @__PURE__ */ jsxs("div", {
5198
+ className: t3,
5199
+ children: [t12, t17]
5200
+ });
5201
+ $[30] = t12;
5202
+ $[31] = t17;
5203
+ $[32] = t3;
5204
+ $[33] = t18;
5205
+ } else t18 = $[33];
5206
+ return t18;
5207
+ };
5208
+ /**
5209
+ * Single action item in the list
5210
+ */
5211
+ const ActionItem = (t0) => {
5212
+ const $ = c(25);
5213
+ const { action, className } = t0;
5214
+ let t1;
5215
+ if ($[0] !== className) {
5216
+ t1 = cn("flex items-center justify-between", "rounded-md px-3 py-1.5", "hover:bg-white/5", "transition-colors duration-150", className);
5217
+ $[0] = className;
5218
+ $[1] = t1;
5219
+ } else t1 = $[1];
5220
+ let t2;
5221
+ if ($[2] !== action.status) {
5222
+ t2 = /* @__PURE__ */ jsx(ActionStatusIcon, {
5223
+ status: action.status,
5224
+ size: "sm"
5225
+ });
5226
+ $[2] = action.status;
5227
+ $[3] = t2;
5228
+ } else t2 = $[3];
5229
+ const t3 = action.status === "success" && "text-white/60";
5230
+ const t4 = action.status === "running" && "text-white";
5231
+ const t5 = action.status === "error" && "text-red-400";
5232
+ const t6 = action.status === "queued" && "text-white/40";
5233
+ let t7;
5234
+ if ($[4] !== t3 || $[5] !== t4 || $[6] !== t5 || $[7] !== t6) {
5235
+ t7 = cn("text-sm truncate", t3, t4, t5, t6);
5236
+ $[4] = t3;
5237
+ $[5] = t4;
5238
+ $[6] = t5;
5239
+ $[7] = t6;
5240
+ $[8] = t7;
5241
+ } else t7 = $[8];
5242
+ let t8;
5243
+ if ($[9] !== action.label || $[10] !== t7) {
5244
+ t8 = /* @__PURE__ */ jsx("span", {
5245
+ className: t7,
5246
+ children: action.label
5247
+ });
5248
+ $[9] = action.label;
5249
+ $[10] = t7;
5250
+ $[11] = t8;
5251
+ } else t8 = $[11];
5252
+ let t9;
5253
+ if ($[12] !== t2 || $[13] !== t8) {
5254
+ t9 = /* @__PURE__ */ jsxs("div", {
5255
+ className: "flex items-center gap-2.5 min-w-0",
5256
+ children: [t2, t8]
5257
+ });
5258
+ $[12] = t2;
5259
+ $[13] = t8;
5260
+ $[14] = t9;
5261
+ } else t9 = $[14];
5262
+ let t10;
5263
+ if ($[15] !== action.duration) {
5264
+ t10 = action.duration && /* @__PURE__ */ jsx("span", {
5265
+ className: "text-[10px] text-white/40 tabular-nums",
5266
+ children: formatDuration(action.duration)
5267
+ });
5268
+ $[15] = action.duration;
5269
+ $[16] = t10;
5270
+ } else t10 = $[16];
5271
+ let t11;
5272
+ if ($[17] !== action.error || $[18] !== action.status) {
5273
+ t11 = action.status === "error" && action.error && /* @__PURE__ */ jsx("span", {
5274
+ className: "text-[10px] text-red-400 truncate max-w-[100px]",
5275
+ title: action.error,
5276
+ children: action.error
5277
+ });
5278
+ $[17] = action.error;
5279
+ $[18] = action.status;
5280
+ $[19] = t11;
5281
+ } else t11 = $[19];
5282
+ let t12;
5283
+ if ($[20] !== t1 || $[21] !== t10 || $[22] !== t11 || $[23] !== t9) {
5284
+ t12 = /* @__PURE__ */ jsxs("div", {
5285
+ className: t1,
5286
+ children: [
5287
+ t9,
5288
+ t10,
5289
+ t11
5290
+ ]
5291
+ });
5292
+ $[20] = t1;
5293
+ $[21] = t10;
5294
+ $[22] = t11;
5295
+ $[23] = t9;
5296
+ $[24] = t12;
5297
+ } else t12 = $[24];
5298
+ return t12;
5299
+ };
5300
+ /**
5301
+ * Format duration in ms to human readable string
5302
+ */
5303
+ function formatDuration(ms) {
5304
+ if (ms < 1e3) return `${ms}ms`;
5305
+ const seconds = ms / 1e3;
5306
+ if (seconds < 60) return `${seconds.toFixed(1)}s`;
5307
+ return `${Math.floor(seconds / 60)}m ${Math.floor(seconds % 60)}s`;
5308
+ }
5309
+ /**
5310
+ * Compact inline action summary (for collapsed pill states)
5311
+ */
5312
+ const ActionSummary = (t0) => {
5313
+ const $ = c(19);
5314
+ const { actions, className } = t0;
5315
+ let t1;
5316
+ if ($[0] !== actions) {
5317
+ t1 = actions.filter(_temp3$2);
5318
+ $[0] = actions;
5319
+ $[1] = t1;
5320
+ } else t1 = $[1];
5321
+ const completed = t1.length;
5322
+ let t2;
5323
+ if ($[2] !== actions) {
5324
+ t2 = actions.filter(_temp4$2);
5325
+ $[2] = actions;
5326
+ $[3] = t2;
5327
+ } else t2 = $[3];
5328
+ const running = t2.length;
5329
+ let t3;
5330
+ if ($[4] !== actions) {
5331
+ t3 = actions.filter(_temp5);
5332
+ $[4] = actions;
5333
+ $[5] = t3;
5334
+ } else t3 = $[5];
5335
+ const failed = t3.length;
5336
+ if (actions.length === 0) return null;
5337
+ let t4;
5338
+ if ($[6] !== className) {
5339
+ t4 = cn("flex items-center gap-3 text-xs", className);
5340
+ $[6] = className;
5341
+ $[7] = t4;
5342
+ } else t4 = $[7];
5343
+ let t5;
5344
+ if ($[8] !== running) {
5345
+ t5 = running > 0 && /* @__PURE__ */ jsxs("span", {
5346
+ className: "flex items-center gap-1 text-blue-400",
5347
+ children: [
5348
+ /* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-blue-400 animate-pulse" }),
5349
+ running,
5350
+ " running"
5351
+ ]
5352
+ });
5353
+ $[8] = running;
5354
+ $[9] = t5;
5355
+ } else t5 = $[9];
5356
+ let t6;
5357
+ if ($[10] !== completed) {
5358
+ t6 = completed > 0 && /* @__PURE__ */ jsxs("span", {
5359
+ className: "text-white/50",
5360
+ children: [completed, " completed"]
5361
+ });
5362
+ $[10] = completed;
5363
+ $[11] = t6;
5364
+ } else t6 = $[11];
5365
+ let t7;
5366
+ if ($[12] !== failed) {
5367
+ t7 = failed > 0 && /* @__PURE__ */ jsxs("span", {
5368
+ className: "text-red-400",
5369
+ children: [failed, " failed"]
5370
+ });
5371
+ $[12] = failed;
5372
+ $[13] = t7;
5373
+ } else t7 = $[13];
5374
+ let t8;
5375
+ if ($[14] !== t4 || $[15] !== t5 || $[16] !== t6 || $[17] !== t7) {
5376
+ t8 = /* @__PURE__ */ jsxs("div", {
5377
+ className: t4,
5378
+ children: [
5379
+ t5,
5380
+ t6,
5381
+ t7
5382
+ ]
5383
+ });
5384
+ $[14] = t4;
5385
+ $[15] = t5;
5386
+ $[16] = t6;
5387
+ $[17] = t7;
5388
+ $[18] = t8;
5389
+ } else t8 = $[18];
5390
+ return t8;
5391
+ };
5392
+ function _temp$6(a) {
5393
+ return a.status === "success";
5394
+ }
5395
+ function _temp2$3(action) {
5396
+ return /* @__PURE__ */ jsx(ActionItem, { action }, action.id);
5397
+ }
5398
+ function _temp3$2(a) {
5399
+ return a.status === "success";
5400
+ }
5401
+ function _temp4$2(a_0) {
5402
+ return a_0.status === "running";
5403
+ }
5404
+ function _temp5(a_1) {
5405
+ return a_1.status === "error";
5406
+ }
5407
+
5408
+ //#endregion
5409
+ //#region src/components/pill/PillComposer.tsx
5410
+ /**
5411
+ * Compact composer for the pill UI.
5412
+ * Uses assistant-ui primitives for data binding.
5413
+ */
5414
+ const PillComposer = (t0) => {
5415
+ const $ = c(17);
5416
+ const { placeholder: t1, showVoiceButton: t2, isVoiceActive: t3, onVoiceToggle, className } = t0;
5417
+ const placeholder = t1 === void 0 ? "Ask something..." : t1;
5418
+ const showVoiceButton = t2 === void 0 ? false : t2;
5419
+ const isVoiceActive = t3 === void 0 ? false : t3;
5420
+ let t4;
5421
+ if ($[0] !== className) {
5422
+ t4 = cn("flex items-center gap-2", "rounded-full", "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);
5423
+ $[0] = className;
5424
+ $[1] = t4;
5425
+ } else t4 = $[1];
5426
+ let t5;
5427
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
5428
+ t5 = cn("flex-1 min-w-0", "bg-transparent", "text-sm text-white placeholder:text-white/40", "outline-none", "resize-none");
5429
+ $[2] = t5;
5430
+ } else t5 = $[2];
5431
+ let t6;
5432
+ if ($[3] !== placeholder) {
5433
+ t6 = /* @__PURE__ */ jsx(ComposerPrimitive.Input, {
5434
+ placeholder,
5435
+ className: t5,
5436
+ autoFocus: true
5437
+ });
5438
+ $[3] = placeholder;
5439
+ $[4] = t6;
5440
+ } else t6 = $[4];
5441
+ let t7;
5442
+ if ($[5] !== isVoiceActive || $[6] !== onVoiceToggle || $[7] !== showVoiceButton) {
5443
+ t7 = showVoiceButton && onVoiceToggle && /* @__PURE__ */ jsx("button", {
5444
+ type: "button",
5445
+ onClick: onVoiceToggle,
5446
+ 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"),
5447
+ "aria-label": isVoiceActive ? "Stop voice input" : "Start voice input",
5448
+ children: /* @__PURE__ */ jsx(Mic, { className: "h-4 w-4" })
5449
+ });
5450
+ $[5] = isVoiceActive;
5451
+ $[6] = onVoiceToggle;
5452
+ $[7] = showVoiceButton;
5453
+ $[8] = t7;
5454
+ } else t7 = $[8];
5455
+ let t8;
5456
+ if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
5457
+ t8 = 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");
5458
+ $[9] = t8;
5459
+ } else t8 = $[9];
5460
+ let t9;
5461
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
5462
+ t9 = /* @__PURE__ */ jsx(ThreadPrimitive.If, {
5463
+ running: false,
5464
+ children: /* @__PURE__ */ jsx(ComposerPrimitive.Send, {
5465
+ asChild: true,
5466
+ children: /* @__PURE__ */ jsx("button", {
5467
+ type: "submit",
5468
+ className: t8,
5469
+ "aria-label": "Send message",
5470
+ children: /* @__PURE__ */ jsx(Send, { className: "h-4 w-4" })
5471
+ })
5472
+ })
5473
+ });
5474
+ $[10] = t9;
5475
+ } else t9 = $[10];
5476
+ let t10;
5477
+ if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
5478
+ t10 = cn("flex-shrink-0", "p-1.5 rounded-full", "bg-red-500 text-white", "hover:bg-red-600", "transition-colors duration-200");
5479
+ $[11] = t10;
5480
+ } else t10 = $[11];
5481
+ let t11;
5482
+ if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
5483
+ t11 = /* @__PURE__ */ jsx(ThreadPrimitive.If, {
5484
+ running: true,
5485
+ children: /* @__PURE__ */ jsx(ComposerPrimitive.Cancel, {
5486
+ asChild: true,
5487
+ children: /* @__PURE__ */ jsx("button", {
5488
+ type: "button",
5489
+ className: t10,
5490
+ "aria-label": "Stop generating",
5491
+ children: /* @__PURE__ */ jsx(Square, { className: "h-3.5 w-3.5" })
5492
+ })
5493
+ })
5494
+ });
5495
+ $[12] = t11;
5496
+ } else t11 = $[12];
5497
+ let t12;
5498
+ if ($[13] !== t4 || $[14] !== t6 || $[15] !== t7) {
5499
+ t12 = /* @__PURE__ */ jsxs(ComposerPrimitive.Root, {
5500
+ className: t4,
5501
+ children: [
5502
+ t6,
5503
+ t7,
5504
+ t9,
5505
+ t11
5506
+ ]
5507
+ });
5508
+ $[13] = t4;
5509
+ $[14] = t6;
5510
+ $[15] = t7;
5511
+ $[16] = t12;
5512
+ } else t12 = $[16];
5513
+ return t12;
5514
+ };
5515
+ /**
5516
+ * Minimal composer for collapsed/hovered states
5517
+ * Just shows a clickable prompt
5518
+ */
5519
+ const MinimalComposer = (t0) => {
5520
+ const $ = c(7);
5521
+ const { onClick, className } = t0;
5522
+ let t1;
5523
+ if ($[0] !== className) {
5524
+ t1 = cn("flex items-center gap-2", "w-full px-4 py-2", "rounded-full", "bg-white/5 hover:bg-white/10", "text-sm text-white/50 hover:text-white/70", "transition-colors duration-200", className);
5525
+ $[0] = className;
5526
+ $[1] = t1;
5527
+ } else t1 = $[1];
5528
+ let t2;
5529
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
5530
+ t2 = /* @__PURE__ */ jsx("span", { children: "Ask something..." });
5531
+ $[2] = t2;
5532
+ } else t2 = $[2];
5533
+ let t3;
5534
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
5535
+ t3 = /* @__PURE__ */ jsx("span", {
5536
+ className: "ml-auto text-xs text-white/30",
5537
+ children: /* @__PURE__ */ jsx("kbd", {
5538
+ className: "rounded bg-white/10 px-1 py-0.5 font-mono text-[10px]",
5539
+ children: "⌘⇧K"
5540
+ })
5541
+ });
5542
+ $[3] = t3;
5543
+ } else t3 = $[3];
5544
+ let t4;
5545
+ if ($[4] !== onClick || $[5] !== t1) {
5546
+ t4 = /* @__PURE__ */ jsxs("button", {
5547
+ type: "button",
5548
+ onClick,
5549
+ className: t1,
5550
+ children: [t2, t3]
5551
+ });
5552
+ $[4] = onClick;
5553
+ $[5] = t1;
5554
+ $[6] = t4;
5555
+ } else t4 = $[6];
5556
+ return t4;
5557
+ };
5558
+
5559
+ //#endregion
5560
+ //#region src/components/pill/PillContainer.tsx
5561
+ const sizeSpring = {
5562
+ type: "spring",
5563
+ stiffness: 300,
5564
+ damping: 28,
5565
+ mass: .8
5566
+ };
5567
+ const containerVariants = {
5568
+ collapsed: {
5569
+ width: "40px",
5570
+ height: "3px",
5571
+ padding: "0px",
5572
+ borderRadius: "9999px"
5573
+ },
5574
+ hovered: {
5575
+ width: "180px",
5576
+ height: "32px",
5577
+ padding: "0px 12px",
5578
+ borderRadius: "9999px"
5579
+ },
5580
+ composing: {
5581
+ width: "min(360px, calc(100vw - 2rem))",
5582
+ height: "auto",
5583
+ padding: "10px 14px",
5584
+ borderRadius: "20px"
5585
+ },
5586
+ active: {
5587
+ width: "min(360px, calc(100vw - 2rem))",
5588
+ height: "auto",
5589
+ padding: "10px 14px",
5590
+ borderRadius: "20px"
5591
+ },
5592
+ expanded: {
5593
+ width: "min(400px, calc(100vw - 2rem))",
5594
+ height: "auto",
5595
+ padding: "12px 16px",
5596
+ borderRadius: "20px"
5597
+ }
5598
+ };
5599
+ const contentVariants = {
5600
+ hidden: {
5601
+ opacity: 0,
5602
+ y: 8,
5603
+ scale: .95
5604
+ },
5605
+ visible: {
5606
+ opacity: 1,
5607
+ y: 0,
5608
+ scale: 1,
5609
+ transition: {
5610
+ type: "spring",
5611
+ stiffness: 500,
5612
+ damping: 30,
5613
+ staggerChildren: .05
5614
+ }
5615
+ },
5616
+ exit: {
5617
+ opacity: 0,
5618
+ y: -4,
5619
+ scale: .98,
5620
+ transition: {
5621
+ duration: .15,
5622
+ ease: "easeOut"
5623
+ }
5624
+ }
5625
+ };
5626
+ const hintVariants = {
5627
+ hidden: {
5628
+ opacity: 0,
5629
+ scale: .9
5630
+ },
5631
+ visible: {
5632
+ opacity: 1,
5633
+ scale: 1,
5634
+ transition: {
5635
+ delay: .1,
5636
+ duration: .2
5637
+ }
5638
+ },
5639
+ exit: {
5640
+ opacity: 0,
5641
+ scale: .9,
5642
+ transition: { duration: .1 }
5643
+ }
5644
+ };
5645
+ const barVariants = {
5646
+ idle: {
5647
+ opacity: .6,
5648
+ scaleX: 1
5649
+ },
5650
+ hover: {
5651
+ opacity: 1,
5652
+ scaleX: 1.1,
5653
+ transition: { duration: .2 }
5654
+ }
5655
+ };
5656
+ /**
5657
+ * Morphing container that changes size and shape based on state.
5658
+ * Uses spring animations for smooth, natural transitions.
5659
+ *
5660
+ * States:
5661
+ * - collapsed: Tiny 4px tall bar (ambient)
5662
+ * - hovered: Medium pill with prompt
5663
+ * - composing: User is typing
5664
+ * - active: Agent is working
5665
+ * - expanded: Full panel with summary/forms
5666
+ */
5667
+ const PillContainer = (t0) => {
5668
+ const $ = c(55);
5669
+ const { mode, children, onModeChange, className } = t0;
5670
+ const [isHovered, setIsHovered] = useState(false);
5671
+ const hoverTimeoutRef = useRef(null);
5672
+ let t1;
5673
+ if ($[0] !== mode || $[1] !== onModeChange) {
5674
+ t1 = () => {
5675
+ if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
5676
+ hoverTimeoutRef.current = setTimeout(() => {
5677
+ setIsHovered(true);
5678
+ if (mode === "collapsed") onModeChange?.("hovered");
5679
+ }, 100);
5680
+ };
5681
+ $[0] = mode;
5682
+ $[1] = onModeChange;
5683
+ $[2] = t1;
5684
+ } else t1 = $[2];
5685
+ const handleMouseEnter = t1;
5686
+ let t2;
5687
+ if ($[3] !== mode || $[4] !== onModeChange) {
5688
+ t2 = () => {
5689
+ if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
5690
+ setIsHovered(false);
5691
+ if (mode === "hovered") hoverTimeoutRef.current = setTimeout(() => {
5692
+ onModeChange?.("collapsed");
5693
+ }, 50);
5694
+ };
5695
+ $[3] = mode;
5696
+ $[4] = onModeChange;
5697
+ $[5] = t2;
5698
+ } else t2 = $[5];
5699
+ const handleMouseLeave = t2;
5700
+ let t3;
5701
+ if ($[6] !== mode || $[7] !== onModeChange) {
5702
+ t3 = () => {
5703
+ if (mode === "collapsed" || mode === "hovered") onModeChange?.("composing");
5704
+ };
5705
+ $[6] = mode;
5706
+ $[7] = onModeChange;
5707
+ $[8] = t3;
5708
+ } else t3 = $[8];
5709
+ const handleClick = t3;
5710
+ let t4;
5711
+ let t5;
5712
+ if ($[9] !== mode || $[10] !== onModeChange) {
5713
+ t4 = () => {
5714
+ const handleKeyDown = (e) => {
5715
+ if ((e.ctrlKey || e.metaKey) && e.shiftKey && e.key.toLowerCase() === "k") {
5716
+ e.preventDefault();
5717
+ if (mode === "collapsed") onModeChange?.("composing");
5718
+ else if (mode === "composing" || mode === "hovered") onModeChange?.("collapsed");
5719
+ }
5720
+ };
5721
+ window.addEventListener("keydown", handleKeyDown);
5722
+ return () => window.removeEventListener("keydown", handleKeyDown);
5723
+ };
5724
+ t5 = [mode, onModeChange];
5725
+ $[9] = mode;
5726
+ $[10] = onModeChange;
5727
+ $[11] = t4;
5728
+ $[12] = t5;
5729
+ } else {
5730
+ t4 = $[11];
5731
+ t5 = $[12];
5732
+ }
5733
+ useEffect(t4, t5);
5734
+ let t6;
5735
+ let t7;
5736
+ if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
5737
+ t6 = () => () => {
5738
+ if (hoverTimeoutRef.current) clearTimeout(hoverTimeoutRef.current);
5739
+ };
5740
+ t7 = [];
5741
+ $[13] = t6;
5742
+ $[14] = t7;
5743
+ } else {
5744
+ t6 = $[13];
5745
+ t7 = $[14];
5746
+ }
5747
+ useEffect(t6, t7);
5748
+ const showContent = mode !== "collapsed" && mode !== "hovered";
5749
+ const currentVariant = containerVariants[mode];
5750
+ const t8 = mode === "collapsed" && "glass-pill-collapsed glass-shimmer";
5751
+ const t9 = mode === "hovered" && "glass-pill-hovered";
5752
+ const t10 = (mode === "composing" || mode === "expanded") && "glass-pill";
5753
+ const t11 = mode === "active" && "glass-pill glass-active";
5754
+ let t12;
5755
+ if ($[15] !== className || $[16] !== t10 || $[17] !== t11 || $[18] !== t8 || $[19] !== t9) {
5756
+ t12 = cn("relative overflow-hidden", "will-change-transform", t8, t9, t10, t11, className);
5757
+ $[15] = className;
5758
+ $[16] = t10;
5759
+ $[17] = t11;
5760
+ $[18] = t8;
5761
+ $[19] = t9;
5762
+ $[20] = t12;
5763
+ } else t12 = $[20];
5764
+ const glassClassName = t12;
5765
+ let t13;
5766
+ if ($[21] !== currentVariant.borderRadius || $[22] !== currentVariant.height || $[23] !== currentVariant.padding || $[24] !== currentVariant.width) {
5767
+ t13 = {
5768
+ width: currentVariant.width,
5769
+ height: currentVariant.height,
5770
+ padding: currentVariant.padding,
5771
+ borderRadius: currentVariant.borderRadius
5772
+ };
5773
+ $[21] = currentVariant.borderRadius;
5774
+ $[22] = currentVariant.height;
5775
+ $[23] = currentVariant.padding;
5776
+ $[24] = currentVariant.width;
5777
+ $[25] = t13;
5778
+ } else t13 = $[25];
5779
+ const t14 = mode === "collapsed" || mode === "hovered" ? "button" : void 0;
5780
+ const t15 = mode === "collapsed" || mode === "hovered" ? 0 : void 0;
5781
+ const t16 = mode === "collapsed" ? "Open assistant" : void 0;
5782
+ const t17 = showContent ? "60px" : void 0;
5783
+ let t18;
5784
+ if ($[26] !== t17) {
5785
+ t18 = { minHeight: t17 };
5786
+ $[26] = t17;
5787
+ $[27] = t18;
5788
+ } else t18 = $[27];
5789
+ let t19;
5790
+ if ($[28] !== isHovered || $[29] !== mode) {
5791
+ t19 = mode === "collapsed" && /* @__PURE__ */ jsx(motion.div, {
5792
+ className: "absolute inset-0",
5793
+ variants: barVariants,
5794
+ initial: "idle",
5795
+ animate: isHovered ? "hover" : "idle",
5796
+ exit: {
5797
+ opacity: 0,
5798
+ transition: { duration: .1 }
5799
+ },
5800
+ style: {
5801
+ background: "linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent)",
5802
+ backgroundSize: "200% 100%"
5803
+ }
5804
+ }, "collapsed-bar");
5805
+ $[28] = isHovered;
5806
+ $[29] = mode;
5807
+ $[30] = t19;
5808
+ } else t19 = $[30];
5809
+ let t20;
5810
+ if ($[31] !== t19) {
5811
+ t20 = /* @__PURE__ */ jsx(AnimatePresence, {
5812
+ mode: "wait",
5813
+ children: t19
5814
+ });
5815
+ $[31] = t19;
5816
+ $[32] = t20;
5817
+ } else t20 = $[32];
5818
+ let t21;
5819
+ if ($[33] !== mode) {
5820
+ t21 = mode === "hovered" && /* @__PURE__ */ jsx(motion.div, {
5821
+ className: "relative z-10 flex h-full w-full items-center justify-center",
5822
+ variants: hintVariants,
5823
+ initial: "hidden",
5824
+ animate: "visible",
5825
+ exit: "exit",
5826
+ children: /* @__PURE__ */ jsxs("span", {
5827
+ className: "text-xs text-white/70",
5828
+ children: [
5829
+ "Click or",
5830
+ " ",
5831
+ /* @__PURE__ */ jsx("kbd", {
5832
+ className: "rounded bg-white/10 px-1.5 py-0.5 font-mono text-[10px]",
5833
+ children: "⌘⇧K"
5834
+ })
5835
+ ]
5836
+ })
5837
+ }, "hover-hint");
5838
+ $[33] = mode;
5839
+ $[34] = t21;
5840
+ } else t21 = $[34];
5841
+ let t22;
5842
+ if ($[35] !== t21) {
5843
+ t22 = /* @__PURE__ */ jsx(AnimatePresence, {
5844
+ mode: "wait",
5845
+ children: t21
5846
+ });
5847
+ $[35] = t21;
5848
+ $[36] = t22;
5849
+ } else t22 = $[36];
5850
+ let t23;
5851
+ if ($[37] !== children || $[38] !== showContent) {
5852
+ t23 = showContent && /* @__PURE__ */ jsx(motion.div, {
5853
+ className: "relative z-10 flex flex-col gap-2",
5854
+ variants: contentVariants,
5855
+ initial: "hidden",
5856
+ animate: "visible",
5857
+ exit: "exit",
5858
+ children
5859
+ }, "content");
5860
+ $[37] = children;
5861
+ $[38] = showContent;
5862
+ $[39] = t23;
5863
+ } else t23 = $[39];
5864
+ let t24;
5865
+ if ($[40] !== t23) {
5866
+ t24 = /* @__PURE__ */ jsx(AnimatePresence, {
5867
+ mode: "wait",
5868
+ children: t23
5869
+ });
5870
+ $[40] = t23;
5871
+ $[41] = t24;
5872
+ } else t24 = $[41];
5873
+ let t25;
5874
+ if ($[42] !== glassClassName || $[43] !== handleClick || $[44] !== handleMouseEnter || $[45] !== handleMouseLeave || $[46] !== t13 || $[47] !== t14 || $[48] !== t15 || $[49] !== t16 || $[50] !== t18 || $[51] !== t20 || $[52] !== t22 || $[53] !== t24) {
5875
+ t25 = /* @__PURE__ */ jsxs(motion.div, {
5876
+ layout: true,
5877
+ className: glassClassName,
5878
+ initial: false,
5879
+ animate: t13,
5880
+ transition: sizeSpring,
5881
+ onMouseEnter: handleMouseEnter,
5882
+ onMouseLeave: handleMouseLeave,
5883
+ onClick: handleClick,
5884
+ role: t14,
5885
+ tabIndex: t15,
5886
+ "aria-label": t16,
5887
+ style: t18,
5888
+ children: [
5889
+ t20,
5890
+ t22,
5891
+ t24
5892
+ ]
5893
+ });
5894
+ $[42] = glassClassName;
5895
+ $[43] = handleClick;
5896
+ $[44] = handleMouseEnter;
5897
+ $[45] = handleMouseLeave;
5898
+ $[46] = t13;
5899
+ $[47] = t14;
5900
+ $[48] = t15;
5901
+ $[49] = t16;
5902
+ $[50] = t18;
5903
+ $[51] = t20;
5904
+ $[52] = t22;
5905
+ $[53] = t24;
5906
+ $[54] = t25;
5907
+ } else t25 = $[54];
5908
+ return t25;
5909
+ };
5910
+
5911
+ //#endregion
5912
+ //#region src/components/pill/PillVoice.tsx
5913
+ const voiceVariants = {
5914
+ hidden: {
5915
+ opacity: 0,
5916
+ scale: .95,
5917
+ y: 4
5918
+ },
5919
+ visible: {
5920
+ opacity: 1,
5921
+ scale: 1,
5922
+ y: 0,
5923
+ transition: {
5924
+ type: "spring",
5925
+ stiffness: 400,
5926
+ damping: 30
5927
+ }
5928
+ },
5929
+ exit: {
5930
+ opacity: 0,
5931
+ scale: .95,
5932
+ y: -4,
5933
+ transition: { duration: .15 }
5934
+ }
5935
+ };
5936
+ const buttonVariants$1 = {
5937
+ idle: { scale: 1 },
5938
+ hover: { scale: 1.05 },
5939
+ tap: { scale: .95 }
5940
+ };
5941
+ const transcriptVariants = {
5942
+ hidden: {
5943
+ opacity: 0,
5944
+ height: 0
5945
+ },
5946
+ visible: {
5947
+ opacity: 1,
5948
+ height: "auto",
5949
+ transition: {
5950
+ type: "spring",
5951
+ stiffness: 300,
5952
+ damping: 25
5953
+ }
5954
+ },
5955
+ exit: {
5956
+ opacity: 0,
5957
+ height: 0,
5958
+ transition: { duration: .1 }
5959
+ }
5960
+ };
5961
+ /**
5962
+ * Convert voice mode tool call status to border status
5963
+ */
5964
+ function voiceToolCallToBorderStatus(toolCall) {
5965
+ if (!toolCall) return "idle";
5966
+ if (toolCall.status === "started") return "calling";
5967
+ if (toolCall.status === "completed") return toolCall.error ? "error" : "success";
5968
+ return "idle";
5969
+ }
5970
+ /**
5971
+ * Compact voice mode UI for the pill.
5972
+ * Shows waveforms, controls, and transcript preview.
5973
+ * Uses motion animations for smooth transitions.
5974
+ */
5975
+ const PillVoice = (t0) => {
5976
+ const $ = c(98);
5977
+ const { onEnd, compact: t1, className } = t0;
5978
+ const compact = t1 === void 0 ? false : t1;
5979
+ const voiceMode = useOptionalVoiceModeContext();
5980
+ let t2;
5981
+ if ($[0] !== onEnd || $[1] !== voiceMode) {
5982
+ t2 = () => {
5983
+ voiceMode?.stopSession();
5984
+ onEnd?.();
5985
+ };
5986
+ $[0] = onEnd;
5987
+ $[1] = voiceMode;
5988
+ $[2] = t2;
5989
+ } else t2 = $[2];
5990
+ const handleEnd = t2;
5991
+ let t3;
5992
+ if ($[3] !== voiceMode) {
5993
+ t3 = () => {
5994
+ voiceMode?.toggleMute();
5995
+ };
5996
+ $[3] = voiceMode;
5997
+ $[4] = t3;
5998
+ } else t3 = $[4];
5999
+ const handleToggleMute = t3;
6000
+ if (!voiceMode || !voiceMode.isActive && !voiceMode.isConnecting && !voiceMode.isError) return null;
6001
+ const { isActive, isConnecting, isMuted, isError, error, audioLevel, transcript, toolCall } = voiceMode;
6002
+ const micLevel = audioLevel?.micLevel ?? 0;
6003
+ const speakerLevel = audioLevel?.speakerLevel ?? 0;
6004
+ let t4;
6005
+ if ($[5] !== className) {
6006
+ t4 = cn("flex flex-col gap-3", className);
6007
+ $[5] = className;
6008
+ $[6] = t4;
6009
+ } else t4 = $[6];
6010
+ const t5 = isMuted ? "bg-red-500/20 text-red-400" : "bg-white/10 text-white/80";
6011
+ let t6;
6012
+ if ($[7] !== t5) {
6013
+ t6 = cn("flex h-7 w-7 shrink-0 items-center justify-center rounded-full", t5);
6014
+ $[7] = t5;
6015
+ $[8] = t6;
6016
+ } else t6 = $[8];
6017
+ const t7 = isMuted ? .6 : 1;
6018
+ let t8;
6019
+ if ($[9] !== t7) {
6020
+ t8 = { opacity: t7 };
6021
+ $[9] = t7;
6022
+ $[10] = t8;
6023
+ } else t8 = $[10];
6024
+ let t9;
6025
+ if ($[11] !== isMuted) {
6026
+ t9 = isMuted ? /* @__PURE__ */ jsx(MicOff, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx(Mic, { className: "h-3.5 w-3.5" });
6027
+ $[11] = isMuted;
6028
+ $[12] = t9;
6029
+ } else t9 = $[12];
6030
+ let t10;
6031
+ if ($[13] !== t6 || $[14] !== t8 || $[15] !== t9) {
6032
+ t10 = /* @__PURE__ */ jsx(motion.div, {
6033
+ className: t6,
6034
+ animate: t8,
6035
+ children: t9
6036
+ });
6037
+ $[13] = t6;
6038
+ $[14] = t8;
6039
+ $[15] = t9;
6040
+ $[16] = t10;
6041
+ } else t10 = $[16];
6042
+ const t11 = compact ? "max-w-16" : "max-w-24";
6043
+ let t12;
6044
+ if ($[17] !== t11) {
6045
+ t12 = cn("h-5 flex-1", t11);
6046
+ $[17] = t11;
6047
+ $[18] = t12;
6048
+ } else t12 = $[18];
6049
+ const t13 = isActive && !isMuted;
6050
+ let t14;
6051
+ if ($[19] !== isConnecting || $[20] !== micLevel || $[21] !== t13) {
6052
+ t14 = /* @__PURE__ */ jsx(LiveWaveform, {
6053
+ active: t13,
6054
+ processing: isConnecting,
6055
+ manualAudioLevel: micLevel,
6056
+ barWidth: 2,
6057
+ barGap: 1,
6058
+ barRadius: 1,
6059
+ barColor: "rgba(255, 255, 255, 0.7)",
6060
+ height: 20,
6061
+ mode: "static",
6062
+ sensitivity: 2,
6063
+ fadeEdges: false
6064
+ });
6065
+ $[19] = isConnecting;
6066
+ $[20] = micLevel;
6067
+ $[21] = t13;
6068
+ $[22] = t14;
6069
+ } else t14 = $[22];
6070
+ let t15;
6071
+ if ($[23] !== t12 || $[24] !== t14) {
6072
+ t15 = /* @__PURE__ */ jsx("div", {
6073
+ className: t12,
6074
+ children: t14
6075
+ });
6076
+ $[23] = t12;
6077
+ $[24] = t14;
6078
+ $[25] = t15;
6079
+ } else t15 = $[25];
6080
+ let t16;
6081
+ if ($[26] !== t10 || $[27] !== t15) {
6082
+ t16 = /* @__PURE__ */ jsxs("div", {
6083
+ className: "flex flex-1 items-center gap-2",
6084
+ children: [t10, t15]
6085
+ });
6086
+ $[26] = t10;
6087
+ $[27] = t15;
6088
+ $[28] = t16;
6089
+ } else t16 = $[28];
6090
+ let t17;
6091
+ if ($[29] === Symbol.for("react.memo_cache_sentinel")) {
6092
+ t17 = /* @__PURE__ */ jsx("div", { className: "h-5 w-px bg-white/10" });
6093
+ $[29] = t17;
6094
+ } else t17 = $[29];
6095
+ const t18 = compact ? "max-w-16" : "max-w-24";
6096
+ let t19;
6097
+ if ($[30] !== t18) {
6098
+ t19 = cn("h-5 flex-1", t18);
6099
+ $[30] = t18;
6100
+ $[31] = t19;
6101
+ } else t19 = $[31];
6102
+ let t20;
6103
+ if ($[32] !== isActive || $[33] !== isConnecting || $[34] !== speakerLevel) {
6104
+ t20 = /* @__PURE__ */ jsx(LiveWaveform, {
6105
+ active: isActive,
6106
+ processing: isConnecting,
6107
+ manualAudioLevel: speakerLevel,
6108
+ barWidth: 2,
6109
+ barGap: 1,
6110
+ barRadius: 1,
6111
+ barColor: "rgba(255, 255, 255, 0.4)",
6112
+ height: 20,
6113
+ mode: "static",
6114
+ sensitivity: 2,
6115
+ fadeEdges: false
6116
+ });
6117
+ $[32] = isActive;
6118
+ $[33] = isConnecting;
6119
+ $[34] = speakerLevel;
6120
+ $[35] = t20;
6121
+ } else t20 = $[35];
6122
+ let t21;
6123
+ if ($[36] !== t19 || $[37] !== t20) {
6124
+ t21 = /* @__PURE__ */ jsx("div", {
6125
+ className: t19,
6126
+ children: t20
6127
+ });
6128
+ $[36] = t19;
6129
+ $[37] = t20;
6130
+ $[38] = t21;
6131
+ } else t21 = $[38];
6132
+ let t22;
6133
+ if ($[39] !== speakerLevel) {
6134
+ t22 = speakerLevel > .1 ? [
6135
+ 1,
6136
+ 1.2,
6137
+ 1
6138
+ ] : 1;
6139
+ $[39] = speakerLevel;
6140
+ $[40] = t22;
6141
+ } else t22 = $[40];
6142
+ const t23 = speakerLevel > .1 ? 1 : .5;
6143
+ let t24;
6144
+ if ($[41] !== t22 || $[42] !== t23) {
6145
+ t24 = {
6146
+ scale: t22,
6147
+ opacity: t23
6148
+ };
6149
+ $[41] = t22;
6150
+ $[42] = t23;
6151
+ $[43] = t24;
6152
+ } else t24 = $[43];
6153
+ let t25;
6154
+ if ($[44] === Symbol.for("react.memo_cache_sentinel")) {
6155
+ t25 = { duration: .2 };
6156
+ $[44] = t25;
6157
+ } else t25 = $[44];
6158
+ let t26;
6159
+ if ($[45] !== t24) {
6160
+ t26 = /* @__PURE__ */ jsx("div", {
6161
+ className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-white/10",
6162
+ children: /* @__PURE__ */ jsx(motion.div, {
6163
+ className: "h-2.5 w-2.5 rounded-full bg-green-400",
6164
+ animate: t24,
6165
+ transition: t25
6166
+ })
6167
+ });
6168
+ $[45] = t24;
6169
+ $[46] = t26;
6170
+ } else t26 = $[46];
6171
+ let t27;
6172
+ if ($[47] !== t21 || $[48] !== t26) {
6173
+ t27 = /* @__PURE__ */ jsxs("div", {
6174
+ className: "flex flex-1 items-center gap-2",
6175
+ children: [t21, t26]
6176
+ });
6177
+ $[47] = t21;
6178
+ $[48] = t26;
6179
+ $[49] = t27;
6180
+ } else t27 = $[49];
6181
+ let t28;
6182
+ if ($[50] === Symbol.for("react.memo_cache_sentinel")) {
6183
+ t28 = /* @__PURE__ */ jsx("div", { className: "h-5 w-px bg-white/10" });
6184
+ $[50] = t28;
6185
+ } else t28 = $[50];
6186
+ const t29 = !isActive;
6187
+ const t30 = isMuted ? "bg-red-500/20 text-red-400 hover:bg-red-500/30" : "bg-white/10 text-white/70 hover:bg-white/20 hover:text-white";
6188
+ let t31;
6189
+ if ($[51] !== t30) {
6190
+ t31 = cn("flex h-7 w-7 items-center justify-center rounded-full", "transition-colors duration-150", t30);
6191
+ $[51] = t30;
6192
+ $[52] = t31;
6193
+ } else t31 = $[52];
6194
+ const t32 = isMuted ? "Unmute microphone" : "Mute microphone";
6195
+ let t33;
6196
+ if ($[53] !== isMuted) {
6197
+ t33 = isMuted ? /* @__PURE__ */ jsx(MicOff, { className: "h-3.5 w-3.5" }) : /* @__PURE__ */ jsx(Mic, { className: "h-3.5 w-3.5" });
6198
+ $[53] = isMuted;
6199
+ $[54] = t33;
6200
+ } else t33 = $[54];
6201
+ let t34;
6202
+ if ($[55] !== handleToggleMute || $[56] !== t29 || $[57] !== t31 || $[58] !== t32 || $[59] !== t33) {
6203
+ t34 = /* @__PURE__ */ jsx(motion.button, {
6204
+ type: "button",
6205
+ onClick: handleToggleMute,
6206
+ disabled: t29,
6207
+ className: t31,
6208
+ variants: buttonVariants$1,
6209
+ initial: "idle",
6210
+ whileHover: "hover",
6211
+ whileTap: "tap",
6212
+ "aria-label": t32,
6213
+ children: t33
6214
+ });
6215
+ $[55] = handleToggleMute;
6216
+ $[56] = t29;
6217
+ $[57] = t31;
6218
+ $[58] = t32;
6219
+ $[59] = t33;
6220
+ $[60] = t34;
6221
+ } else t34 = $[60];
6222
+ let t35;
6223
+ if ($[61] === Symbol.for("react.memo_cache_sentinel")) {
6224
+ t35 = cn("flex h-7 w-7 items-center justify-center rounded-full", "bg-red-500/20 text-red-400", "hover:bg-red-500/30 hover:text-red-300", "transition-colors duration-150");
6225
+ $[61] = t35;
6226
+ } else t35 = $[61];
6227
+ let t36;
6228
+ if ($[62] === Symbol.for("react.memo_cache_sentinel")) {
6229
+ t36 = /* @__PURE__ */ jsx(PhoneOff, { className: "h-3.5 w-3.5" });
6230
+ $[62] = t36;
6231
+ } else t36 = $[62];
6232
+ let t37;
6233
+ if ($[63] !== handleEnd) {
6234
+ t37 = /* @__PURE__ */ jsx(motion.button, {
6235
+ type: "button",
6236
+ onClick: handleEnd,
6237
+ className: t35,
6238
+ variants: buttonVariants$1,
6239
+ initial: "idle",
6240
+ whileHover: "hover",
6241
+ whileTap: "tap",
6242
+ "aria-label": "End voice session",
6243
+ children: t36
6244
+ });
6245
+ $[63] = handleEnd;
6246
+ $[64] = t37;
6247
+ } else t37 = $[64];
6248
+ let t38;
6249
+ if ($[65] !== t34 || $[66] !== t37) {
6250
+ t38 = /* @__PURE__ */ jsxs("div", {
6251
+ className: "flex shrink-0 items-center gap-1.5",
6252
+ children: [t34, t37]
6253
+ });
6254
+ $[65] = t34;
6255
+ $[66] = t37;
6256
+ $[67] = t38;
6257
+ } else t38 = $[67];
6258
+ let t39;
6259
+ if ($[68] !== t16 || $[69] !== t27 || $[70] !== t38) {
6260
+ t39 = /* @__PURE__ */ jsxs("div", {
6261
+ className: "flex items-center gap-3",
6262
+ children: [
6263
+ t16,
6264
+ t17,
6265
+ t27,
6266
+ t28,
6267
+ t38
6268
+ ]
6269
+ });
6270
+ $[68] = t16;
6271
+ $[69] = t27;
6272
+ $[70] = t38;
6273
+ $[71] = t39;
6274
+ } else t39 = $[71];
6275
+ let t40;
6276
+ if ($[72] !== toolCall) {
6277
+ t40 = toolCall && /* @__PURE__ */ jsxs(motion.div, {
6278
+ className: cn("flex max-w-full items-center gap-2 rounded-full px-3 py-1.5", "text-xs", toolCall.status === "started" && "bg-blue-500/10 text-blue-400", toolCall.status === "completed" && !toolCall.error && "bg-green-500/10 text-green-400", toolCall.status === "completed" && toolCall.error && "bg-red-500/10 text-red-400"),
6279
+ initial: {
6280
+ opacity: 0,
6281
+ y: -4
6282
+ },
6283
+ animate: {
6284
+ opacity: 1,
6285
+ y: 0
6286
+ },
6287
+ exit: {
6288
+ opacity: 0,
6289
+ y: -4
6290
+ },
6291
+ transition: {
6292
+ type: "spring",
6293
+ stiffness: 400,
6294
+ damping: 30
6295
+ },
6296
+ children: [/* @__PURE__ */ jsx(motion.span, {
6297
+ className: cn("h-1.5 w-1.5 shrink-0 rounded-full", toolCall.status === "started" && "bg-blue-500", toolCall.status === "completed" && !toolCall.error && "bg-green-500", toolCall.status === "completed" && toolCall.error && "bg-red-500"),
6298
+ animate: toolCall.status === "started" ? { opacity: [
6299
+ 1,
6300
+ .5,
6301
+ 1
6302
+ ] } : {},
6303
+ transition: {
6304
+ duration: .8,
6305
+ repeat: Infinity
6306
+ }
6307
+ }), /* @__PURE__ */ jsx("span", {
6308
+ className: "min-w-0 truncate",
6309
+ children: toolCall.toolName
6310
+ })]
6311
+ });
6312
+ $[72] = toolCall;
6313
+ $[73] = t40;
6314
+ } else t40 = $[73];
6315
+ let t41;
6316
+ if ($[74] !== t40) {
6317
+ t41 = /* @__PURE__ */ jsx(AnimatePresence, { children: t40 });
6318
+ $[74] = t40;
6319
+ $[75] = t41;
6320
+ } else t41 = $[75];
6321
+ let t42;
6322
+ if ($[76] !== transcript) {
6323
+ t42 = transcript && transcript.text && /* @__PURE__ */ jsx(motion.div, {
6324
+ className: "overflow-hidden",
6325
+ variants: transcriptVariants,
6326
+ initial: "hidden",
6327
+ animate: "visible",
6328
+ exit: "exit",
6329
+ children: /* @__PURE__ */ jsxs("div", {
6330
+ className: cn("rounded-lg px-3 py-2 text-xs", transcript.type === "user" ? "bg-white/10 text-white/80" : "bg-white/5 text-white/60"),
6331
+ children: [/* @__PURE__ */ jsx("span", {
6332
+ className: "mr-1.5 shrink-0 text-white/40",
6333
+ children: transcript.type === "user" ? "You:" : "Agent:"
6334
+ }), /* @__PURE__ */ jsx("span", {
6335
+ className: cn("line-clamp-3", !transcript.isDone && "animate-pulse"),
6336
+ children: transcript.text
6337
+ })]
6338
+ })
6339
+ });
6340
+ $[76] = transcript;
6341
+ $[77] = t42;
6342
+ } else t42 = $[77];
6343
+ let t43;
6344
+ if ($[78] !== t42) {
6345
+ t43 = /* @__PURE__ */ jsx(AnimatePresence, { children: t42 });
6346
+ $[78] = t42;
6347
+ $[79] = t43;
6348
+ } else t43 = $[79];
6349
+ let t44;
6350
+ if ($[80] !== isActive || $[81] !== isConnecting) {
6351
+ t44 = isConnecting && !isActive && /* @__PURE__ */ jsxs(motion.div, {
6352
+ className: "flex items-center justify-center gap-2 py-2 text-xs text-white/50",
6353
+ initial: { opacity: 0 },
6354
+ animate: { opacity: 1 },
6355
+ exit: { opacity: 0 },
6356
+ children: [/* @__PURE__ */ jsx(motion.span, {
6357
+ className: "h-1.5 w-1.5 rounded-full bg-amber-500",
6358
+ animate: { opacity: [
6359
+ 1,
6360
+ .5,
6361
+ 1
6362
+ ] },
6363
+ transition: {
6364
+ duration: .8,
6365
+ repeat: Infinity
6366
+ }
6367
+ }), /* @__PURE__ */ jsx("span", { children: "Connecting..." })]
6368
+ });
6369
+ $[80] = isActive;
6370
+ $[81] = isConnecting;
6371
+ $[82] = t44;
6372
+ } else t44 = $[82];
6373
+ let t45;
6374
+ if ($[83] !== t44) {
6375
+ t45 = /* @__PURE__ */ jsx(AnimatePresence, { children: t44 });
6376
+ $[83] = t44;
6377
+ $[84] = t45;
6378
+ } else t45 = $[84];
6379
+ let t46;
6380
+ if ($[85] !== error || $[86] !== handleEnd || $[87] !== isError) {
6381
+ t46 = isError && error && /* @__PURE__ */ jsxs(motion.div, {
6382
+ className: "flex items-center gap-2 rounded-lg bg-red-500/10 px-3 py-2 text-xs text-red-400",
6383
+ initial: {
6384
+ opacity: 0,
6385
+ y: -4
6386
+ },
6387
+ animate: {
6388
+ opacity: 1,
6389
+ y: 0
6390
+ },
6391
+ exit: {
6392
+ opacity: 0,
6393
+ y: -4
6394
+ },
6395
+ children: [
6396
+ /* @__PURE__ */ jsx("span", { className: "h-1.5 w-1.5 shrink-0 rounded-full bg-red-500" }),
6397
+ /* @__PURE__ */ jsx("span", {
6398
+ className: "line-clamp-2",
6399
+ children: error
6400
+ }),
6401
+ /* @__PURE__ */ jsx("button", {
6402
+ type: "button",
6403
+ onClick: handleEnd,
6404
+ className: "ml-auto shrink-0 text-red-300 hover:text-red-200",
6405
+ children: "Dismiss"
6406
+ })
6407
+ ]
6408
+ });
6409
+ $[85] = error;
6410
+ $[86] = handleEnd;
6411
+ $[87] = isError;
6412
+ $[88] = t46;
6413
+ } else t46 = $[88];
6414
+ let t47;
6415
+ if ($[89] !== t46) {
6416
+ t47 = /* @__PURE__ */ jsx(AnimatePresence, { children: t46 });
6417
+ $[89] = t46;
6418
+ $[90] = t47;
6419
+ } else t47 = $[90];
6420
+ let t48;
6421
+ if ($[91] !== t39 || $[92] !== t4 || $[93] !== t41 || $[94] !== t43 || $[95] !== t45 || $[96] !== t47) {
6422
+ t48 = /* @__PURE__ */ jsxs(motion.div, {
6423
+ className: t4,
6424
+ variants: voiceVariants,
6425
+ initial: "hidden",
6426
+ animate: "visible",
6427
+ exit: "exit",
6428
+ children: [
6429
+ t39,
6430
+ t41,
6431
+ t43,
6432
+ t45,
6433
+ t47
6434
+ ]
6435
+ });
6436
+ $[91] = t39;
6437
+ $[92] = t4;
6438
+ $[93] = t41;
6439
+ $[94] = t43;
6440
+ $[95] = t45;
6441
+ $[96] = t47;
6442
+ $[97] = t48;
6443
+ } else t48 = $[97];
6444
+ return t48;
6445
+ };
6446
+ /**
6447
+ * Hook to get voice border status for the pill container
6448
+ */
6449
+ function useVoiceBorderStatus() {
6450
+ const $ = c(2);
6451
+ const voiceMode = useOptionalVoiceModeContext();
6452
+ if (!voiceMode) return "idle";
6453
+ let t0;
6454
+ if ($[0] !== voiceMode.toolCall) {
6455
+ t0 = voiceToolCallToBorderStatus(voiceMode.toolCall);
6456
+ $[0] = voiceMode.toolCall;
6457
+ $[1] = t0;
6458
+ } else t0 = $[1];
6459
+ return t0;
6460
+ }
6461
+
6462
+ //#endregion
6463
+ //#region src/components/pill/PillMarkdown.tsx
6464
+ /**
6465
+ * Markdown renderer for pill components.
6466
+ * Uses the same styling as the main MarkdownText but accepts content as a prop.
6467
+ */
6468
+ /**
6469
+ * Markdown component for rendering content within pill UI.
6470
+ * Supports GitHub-flavored markdown with compact styling option.
6471
+ */
6472
+ const PillMarkdown = memo((t0) => {
6473
+ const $ = c(33);
6474
+ const { content, className, compact } = t0;
6475
+ let t1;
6476
+ let t2;
6477
+ let t3;
6478
+ let t4;
6479
+ let t5;
6480
+ let t6;
6481
+ let t7;
6482
+ if ($[0] !== compact) {
6483
+ t1 = (t8$1) => {
6484
+ const { className: cn_, ...props } = t8$1;
6485
+ return /* @__PURE__ */ jsx("h1", {
6486
+ className: cn("aui-md-h1 mb-3 scroll-m-20 font-extrabold tracking-tight last:mb-0", compact ? "text-base" : "text-lg", cn_),
6487
+ ...props
6488
+ });
6489
+ };
6490
+ t2 = (t9$1) => {
6491
+ const { className: cn__0, ...props_0 } = t9$1;
6492
+ return /* @__PURE__ */ jsx("h2", {
6493
+ className: cn("aui-md-h2 mt-3 mb-2 scroll-m-20 font-semibold tracking-tight first:mt-0 last:mb-0", compact ? "text-sm" : "text-base", cn__0),
6494
+ ...props_0
6495
+ });
6496
+ };
6497
+ t3 = (t10$1) => {
6498
+ const { className: cn__1, ...props_1 } = t10$1;
6499
+ return /* @__PURE__ */ jsx("h3", {
6500
+ className: cn("aui-md-h3 mt-2 mb-1 scroll-m-20 font-semibold tracking-tight first:mt-0 last:mb-0", compact ? "text-sm" : "text-[15px]", cn__1),
6501
+ ...props_1
6502
+ });
6503
+ };
6504
+ t4 = (t11$1) => {
6505
+ const { className: cn__2, ...props_2 } = t11$1;
6506
+ return /* @__PURE__ */ jsx("p", {
6507
+ className: cn("aui-md-p leading-relaxed first:mt-0 last:mb-0", compact ? "text-xs my-1" : "text-sm my-2", cn__2),
6508
+ ...props_2
6509
+ });
6510
+ };
6511
+ t5 = (t12$1) => {
6512
+ const { className: cn__3, ...props_3 } = t12$1;
6513
+ return /* @__PURE__ */ jsx("a", {
6514
+ className: cn("aui-md-a font-medium text-primary underline underline-offset-4 hover:text-primary/80", compact ? "text-xs" : "text-sm", cn__3),
6515
+ ...props_3
6516
+ });
6517
+ };
6518
+ t6 = (t13$1) => {
6519
+ const { className: cn__4, ...props_4 } = t13$1;
6520
+ return /* @__PURE__ */ jsx("ul", {
6521
+ className: cn("aui-md-ul ml-4 list-disc [&>li]:mt-0.5", compact ? "text-xs my-1" : "text-sm my-2", cn__4),
6522
+ ...props_4
6523
+ });
6524
+ };
6525
+ t7 = (t14$1) => {
6526
+ const { className: cn__5, ...props_5 } = t14$1;
6527
+ return /* @__PURE__ */ jsx("ol", {
6528
+ className: cn("aui-md-ol ml-4 list-decimal [&>li]:mt-0.5", compact ? "text-xs my-1" : "text-sm my-2", cn__5),
6529
+ ...props_5
6530
+ });
6531
+ };
6532
+ $[0] = compact;
6533
+ $[1] = t1;
6534
+ $[2] = t2;
6535
+ $[3] = t3;
6536
+ $[4] = t4;
6537
+ $[5] = t5;
6538
+ $[6] = t6;
6539
+ $[7] = t7;
6540
+ } else {
6541
+ t1 = $[1];
6542
+ t2 = $[2];
6543
+ t3 = $[3];
6544
+ t4 = $[4];
6545
+ t5 = $[5];
6546
+ t6 = $[6];
6547
+ t7 = $[7];
6548
+ }
6549
+ let t10;
6550
+ let t8;
6551
+ let t9;
6552
+ if ($[8] !== compact) {
6553
+ t8 = (t11$1) => {
6554
+ const { className: cn__7, ...props_7 } = t11$1;
6555
+ return /* @__PURE__ */ jsx("blockquote", {
6556
+ className: cn("aui-md-blockquote border-l-2 border-white/20 pl-3 italic text-white/70", compact ? "text-xs" : "text-sm", cn__7),
6557
+ ...props_7
6558
+ });
6559
+ };
6560
+ t9 = (t12$1) => {
6561
+ const { className: cn__8, ...props_8 } = t12$1;
6562
+ if (!cn__8?.includes("language-")) return /* @__PURE__ */ jsx("code", {
6563
+ className: cn("aui-md-inline-code rounded bg-white/10 px-1 py-0.5 font-mono", compact ? "text-[10px]" : "text-xs", cn__8),
6564
+ ...props_8
6565
+ });
6566
+ return /* @__PURE__ */ jsx("code", {
6567
+ className: cn("aui-md-code block font-mono", compact ? "text-[10px]" : "text-xs", cn__8),
6568
+ ...props_8
6569
+ });
6570
+ };
6571
+ t10 = (t13$1) => {
6572
+ const { className: cn__9, ...props_9 } = t13$1;
6573
+ return /* @__PURE__ */ jsx("pre", {
6574
+ className: cn("aui-md-pre overflow-x-auto rounded-lg bg-black/30 p-2 my-2", compact ? "text-[10px]" : "text-xs", cn__9),
6575
+ ...props_9
6576
+ });
6577
+ };
6578
+ $[8] = compact;
6579
+ $[9] = t10;
6580
+ $[10] = t8;
6581
+ $[11] = t9;
6582
+ } else {
6583
+ t10 = $[9];
6584
+ t8 = $[10];
6585
+ t9 = $[11];
6586
+ }
6587
+ let t11;
6588
+ if ($[12] !== t1 || $[13] !== t10 || $[14] !== t2 || $[15] !== t3 || $[16] !== t4 || $[17] !== t5 || $[18] !== t6 || $[19] !== t7 || $[20] !== t8 || $[21] !== t9) {
6589
+ t11 = {
6590
+ h1: t1,
6591
+ h2: t2,
6592
+ h3: t3,
6593
+ p: t4,
6594
+ a: t5,
6595
+ ul: t6,
6596
+ ol: t7,
6597
+ li: _temp$5,
6598
+ blockquote: t8,
6599
+ code: t9,
6600
+ pre: t10,
6601
+ hr: _temp2$2,
6602
+ strong: _temp3$1,
6603
+ em: _temp4$1
6604
+ };
6605
+ $[12] = t1;
6606
+ $[13] = t10;
6607
+ $[14] = t2;
6608
+ $[15] = t3;
6609
+ $[16] = t4;
6610
+ $[17] = t5;
6611
+ $[18] = t6;
6612
+ $[19] = t7;
6613
+ $[20] = t8;
6614
+ $[21] = t9;
6615
+ $[22] = t11;
6616
+ } else t11 = $[22];
6617
+ const components = t11;
6618
+ const t12 = compact && "pill-markdown-compact";
6619
+ let t13;
6620
+ if ($[23] !== className || $[24] !== t12) {
6621
+ t13 = cn("aui-md pill-markdown", t12, className);
6622
+ $[23] = className;
6623
+ $[24] = t12;
6624
+ $[25] = t13;
6625
+ } else t13 = $[25];
6626
+ let t14;
6627
+ if ($[26] === Symbol.for("react.memo_cache_sentinel")) {
6628
+ t14 = [remarkGfm];
6629
+ $[26] = t14;
6630
+ } else t14 = $[26];
6631
+ let t15;
6632
+ if ($[27] !== components || $[28] !== content) {
6633
+ t15 = /* @__PURE__ */ jsx(ReactMarkdown, {
6634
+ remarkPlugins: t14,
6635
+ components,
6636
+ children: content
6637
+ });
6638
+ $[27] = components;
6639
+ $[28] = content;
6640
+ $[29] = t15;
6641
+ } else t15 = $[29];
6642
+ let t16;
6643
+ if ($[30] !== t13 || $[31] !== t15) {
6644
+ t16 = /* @__PURE__ */ jsx("div", {
6645
+ className: t13,
6646
+ children: t15
6647
+ });
6648
+ $[30] = t13;
6649
+ $[31] = t15;
6650
+ $[32] = t16;
6651
+ } else t16 = $[32];
6652
+ return t16;
6653
+ });
6654
+ PillMarkdown.displayName = "PillMarkdown";
6655
+ function _temp$5(t0) {
6656
+ const { className: cn__6, ...props_6 } = t0;
6657
+ return /* @__PURE__ */ jsx("li", {
6658
+ className: cn("aui-md-li", cn__6),
6659
+ ...props_6
6660
+ });
6661
+ }
6662
+ function _temp2$2(t0) {
6663
+ const { className: cn__10, ...props_10 } = t0;
6664
+ return /* @__PURE__ */ jsx("hr", {
6665
+ className: cn("aui-md-hr my-2 border-white/10", cn__10),
6666
+ ...props_10
6667
+ });
6668
+ }
6669
+ function _temp3$1(t0) {
6670
+ const { className: cn__11, ...props_11 } = t0;
6671
+ return /* @__PURE__ */ jsx("strong", {
6672
+ className: cn("aui-md-strong font-semibold", cn__11),
6673
+ ...props_11
6674
+ });
6675
+ }
6676
+ function _temp4$1(t0) {
6677
+ const { className: cn__12, ...props_12 } = t0;
6678
+ return /* @__PURE__ */ jsx("em", {
6679
+ className: cn("aui-md-em italic", cn__12),
6680
+ ...props_12
6681
+ });
6682
+ }
6683
+
6684
+ //#endregion
6685
+ //#region src/components/pill/SummaryBlock.tsx
6686
+ /**
6687
+ * Summary block showing the agent's synthesized output.
6688
+ * Displayed after task completion instead of token streaming.
6689
+ */
6690
+ const SummaryBlock = (t0) => {
6691
+ const $ = c(17);
6692
+ const { summary, isSuccess, isError, actions, className } = t0;
6693
+ const t1 = isSuccess && "bg-green-500/10 border border-green-500/20";
6694
+ const t2 = isError && "bg-red-500/10 border border-red-500/20";
6695
+ const t3 = !isSuccess && !isError && "bg-white/5 border border-white/10";
6696
+ let t4;
6697
+ if ($[0] !== className || $[1] !== t1 || $[2] !== t2 || $[3] !== t3) {
6698
+ t4 = cn("rounded-xl p-4", t1, t2, t3, className);
6699
+ $[0] = className;
6700
+ $[1] = t1;
6701
+ $[2] = t2;
6702
+ $[3] = t3;
6703
+ $[4] = t4;
6704
+ } else t4 = $[4];
6705
+ let t5;
6706
+ if ($[5] !== isError || $[6] !== isSuccess) {
6707
+ t5 = (isSuccess || isError) && /* @__PURE__ */ jsxs("div", {
6708
+ className: "flex items-center gap-2 mb-3",
6709
+ children: [
6710
+ isSuccess && /* @__PURE__ */ jsx(CheckCircle2, { className: "h-4 w-4 text-green-400" }),
6711
+ isError && /* @__PURE__ */ jsx(AlertCircle, { className: "h-4 w-4 text-red-400" }),
6712
+ /* @__PURE__ */ jsx("span", {
6713
+ className: cn("text-sm font-medium", isSuccess && "text-green-400", isError && "text-red-400"),
6714
+ children: isSuccess ? "Task Complete" : "Error"
6715
+ })
6716
+ ]
6717
+ });
6718
+ $[5] = isError;
6719
+ $[6] = isSuccess;
6720
+ $[7] = t5;
6721
+ } else t5 = $[7];
6722
+ let t6;
6723
+ if ($[8] !== summary) {
6724
+ t6 = /* @__PURE__ */ jsx(PillMarkdown, {
6725
+ content: summary,
6726
+ className: "text-white/90"
6727
+ });
6728
+ $[8] = summary;
6729
+ $[9] = t6;
6730
+ } else t6 = $[9];
6731
+ let t7;
6732
+ if ($[10] !== actions) {
6733
+ t7 = actions && actions.length > 0 && /* @__PURE__ */ jsx("div", {
6734
+ className: "flex flex-wrap gap-2 mt-4 pt-3 border-t border-white/10",
6735
+ children: actions.map(_temp$4)
6736
+ });
6737
+ $[10] = actions;
6738
+ $[11] = t7;
6739
+ } else t7 = $[11];
6740
+ let t8;
6741
+ if ($[12] !== t4 || $[13] !== t5 || $[14] !== t6 || $[15] !== t7) {
6742
+ t8 = /* @__PURE__ */ jsxs("div", {
6743
+ className: t4,
6744
+ children: [
6745
+ t5,
6746
+ t6,
6747
+ t7
6748
+ ]
6749
+ });
6750
+ $[12] = t4;
6751
+ $[13] = t5;
6752
+ $[14] = t6;
6753
+ $[15] = t7;
6754
+ $[16] = t8;
6755
+ } else t8 = $[16];
6756
+ return t8;
6757
+ };
6758
+ /**
6759
+ * Hook to get the latest summary from the thread
6760
+ * Returns the last text content from the last assistant message
6761
+ */
6762
+ function useLatestSummary() {
6763
+ const $ = c(2);
6764
+ const messages = useThread(_temp2$1);
6765
+ let t0;
6766
+ if ($[0] !== messages) {
6767
+ bb0: {
6768
+ if (!messages || messages.length === 0) {
6769
+ t0 = null;
6770
+ break bb0;
6771
+ }
6772
+ const lastAssistantMessage = [...messages].reverse().find(_temp3);
6773
+ if (!lastAssistantMessage) {
6774
+ t0 = null;
6775
+ break bb0;
6776
+ }
6777
+ const lastText = lastAssistantMessage.content.filter(_temp4).at(-1);
6778
+ if (!lastText) {
6779
+ t0 = null;
6780
+ break bb0;
6781
+ }
6782
+ t0 = lastText.text;
6783
+ }
6784
+ $[0] = messages;
6785
+ $[1] = t0;
6786
+ } else t0 = $[1];
6787
+ return t0;
6788
+ }
6789
+ /**
6790
+ * Welcome message for empty state
6791
+ */
6792
+ function _temp4(c$1) {
6793
+ return c$1.type === "text";
6794
+ }
6795
+ function _temp3(m$1) {
6796
+ return m$1.role === "assistant";
6797
+ }
6798
+ function _temp2$1(thread) {
6799
+ return thread.messages;
6800
+ }
6801
+ const WelcomeMessage = (t0) => {
6802
+ const $ = c(6);
6803
+ const { className } = t0;
6804
+ let t1;
6805
+ if ($[0] !== className) {
6806
+ t1 = cn("text-center py-4", className);
6807
+ $[0] = className;
6808
+ $[1] = t1;
6809
+ } else t1 = $[1];
6810
+ let t2;
6811
+ let t3;
6812
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
6813
+ t2 = /* @__PURE__ */ jsx("h3", {
6814
+ className: "text-lg font-semibold text-white mb-1",
6815
+ children: "Hello!"
6816
+ });
6817
+ t3 = /* @__PURE__ */ jsx("p", {
6818
+ className: "text-sm text-white/60",
6819
+ children: "How can I help you today?"
6820
+ });
6821
+ $[2] = t2;
6822
+ $[3] = t3;
6823
+ } else {
6824
+ t2 = $[2];
6825
+ t3 = $[3];
6826
+ }
6827
+ let t4;
6828
+ if ($[4] !== t1) {
6829
+ t4 = /* @__PURE__ */ jsxs("div", {
6830
+ className: t1,
6831
+ children: [t2, t3]
6832
+ });
6833
+ $[4] = t1;
6834
+ $[5] = t4;
6835
+ } else t4 = $[5];
6836
+ return t4;
6837
+ };
6838
+ function _temp$4(action, i) {
6839
+ return /* @__PURE__ */ jsx("button", {
6840
+ onClick: action.onClick,
6841
+ className: cn("px-3 py-1.5 rounded-lg text-sm 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"),
6842
+ children: action.label
6843
+ }, i);
6844
+ }
6845
+
6846
+ //#endregion
6847
+ //#region src/components/pill/ToolStatusBorder.tsx
6848
+ const borderVariants = {
6849
+ idle: {
6850
+ opacity: 0,
6851
+ scale: 1
6852
+ },
6853
+ calling: {
6854
+ opacity: 1,
6855
+ scale: 1,
6856
+ transition: { opacity: { duration: .15 } }
6857
+ },
6858
+ error: {
6859
+ opacity: 1,
6860
+ scale: 1,
6861
+ transition: { opacity: { duration: .1 } }
6862
+ }
6863
+ };
6864
+ const shakeAnimation = {
6865
+ x: [
6866
+ 0,
6867
+ -2,
6868
+ 2,
6869
+ -2,
6870
+ 2,
6871
+ 0
6872
+ ],
6873
+ transition: {
6874
+ duration: .3,
6875
+ ease: [
6876
+ .25,
6877
+ .1,
6878
+ .25,
6879
+ 1
6880
+ ]
6881
+ }
6882
+ };
6883
+ /**
6884
+ * Minimal animated border for tool execution status.
6885
+ *
6886
+ * - idle/success: clean, no border (success is the default state)
6887
+ * - calling: subtle animated gradient
6888
+ * - error: brief red flash with shake
6889
+ */
6890
+ const ToolStatusBorder = (t0) => {
6891
+ const $ = c(17);
6892
+ const { status, children, className, borderRadius: t1 } = t0;
6893
+ const borderRadius = t1 === void 0 ? "20px" : t1;
6894
+ const effectiveStatus = status === "success" ? "idle" : status;
6895
+ let t2;
6896
+ if ($[0] !== className) {
6897
+ t2 = cn("relative", className);
6898
+ $[0] = className;
6899
+ $[1] = t2;
6900
+ } else t2 = $[1];
6901
+ const t3 = effectiveStatus === "error" ? shakeAnimation : void 0;
6902
+ let t4;
6903
+ if ($[2] !== borderRadius || $[3] !== effectiveStatus) {
6904
+ t4 = effectiveStatus !== "idle" && /* @__PURE__ */ jsx(motion.div, {
6905
+ className: cn("absolute -inset-[1px] pointer-events-none", effectiveStatus === "calling" && "tool-border-calling", effectiveStatus === "error" && "tool-border-error"),
6906
+ style: { borderRadius },
6907
+ variants: borderVariants,
6908
+ initial: "idle",
6909
+ animate: effectiveStatus,
6910
+ exit: {
6911
+ opacity: 0,
6912
+ transition: { duration: .15 }
6913
+ }
6914
+ });
6915
+ $[2] = borderRadius;
6916
+ $[3] = effectiveStatus;
6917
+ $[4] = t4;
6918
+ } else t4 = $[4];
6919
+ let t5;
6920
+ if ($[5] !== t4) {
6921
+ t5 = /* @__PURE__ */ jsx(AnimatePresence, { children: t4 });
6922
+ $[5] = t4;
6923
+ $[6] = t5;
6924
+ } else t5 = $[6];
6925
+ let t6;
6926
+ if ($[7] !== borderRadius) {
6927
+ t6 = { borderRadius };
6928
+ $[7] = borderRadius;
6929
+ $[8] = t6;
6930
+ } else t6 = $[8];
6931
+ let t7;
6932
+ if ($[9] !== children || $[10] !== t6) {
6933
+ t7 = /* @__PURE__ */ jsx("div", {
6934
+ className: "relative",
6935
+ style: t6,
6936
+ children
6937
+ });
6938
+ $[9] = children;
6939
+ $[10] = t6;
6940
+ $[11] = t7;
6941
+ } else t7 = $[11];
6942
+ let t8;
6943
+ if ($[12] !== t2 || $[13] !== t3 || $[14] !== t5 || $[15] !== t7) {
6944
+ t8 = /* @__PURE__ */ jsxs(motion.div, {
6945
+ className: t2,
6946
+ animate: t3,
6947
+ children: [t5, t7]
6948
+ });
6949
+ $[12] = t2;
6950
+ $[13] = t3;
6951
+ $[14] = t5;
6952
+ $[15] = t7;
6953
+ $[16] = t8;
6954
+ } else t8 = $[16];
6955
+ return t8;
6956
+ };
6957
+ /**
6958
+ * Hook to manage tool border status based on actions.
6959
+ * Minimalist approach: success returns to idle immediately.
6960
+ */
6961
+ function useToolBorderStatus(hasRunningAction, lastActionStatus) {
6962
+ const $ = c(4);
6963
+ const [status, setStatus] = useState("idle");
6964
+ const timeoutRef = useRef(null);
6965
+ let t0;
6966
+ let t1;
6967
+ if ($[0] !== hasRunningAction || $[1] !== lastActionStatus) {
6968
+ t0 = () => {
6969
+ if (timeoutRef.current) {
6970
+ clearTimeout(timeoutRef.current);
6971
+ timeoutRef.current = null;
6972
+ }
6973
+ if (hasRunningAction) setStatus("calling");
6974
+ else if (lastActionStatus === "error") {
6975
+ setStatus("error");
6976
+ timeoutRef.current = setTimeout(() => {
6977
+ setStatus("idle");
6978
+ }, 400);
6979
+ } else setStatus("idle");
6980
+ return () => {
6981
+ if (timeoutRef.current) clearTimeout(timeoutRef.current);
6982
+ };
6983
+ };
6984
+ t1 = [hasRunningAction, lastActionStatus];
6985
+ $[0] = hasRunningAction;
6986
+ $[1] = lastActionStatus;
6987
+ $[2] = t0;
6988
+ $[3] = t1;
6989
+ } else {
6990
+ t0 = $[2];
6991
+ t1 = $[3];
6992
+ }
6993
+ useEffect(t0, t1);
6994
+ return status;
6995
+ }
6996
+
6997
+ //#endregion
6998
+ //#region src/components/pill/AgentPill.tsx
6999
+ /**
7000
+ * Action-first agent pill UI.
7001
+ *
7002
+ * A compact, morphing interface that shows:
7003
+ * - Current activity when agent is working
7004
+ * - Action list (collapsible)
7005
+ * - Summary when complete
7006
+ * - Input composer
7007
+ *
7008
+ * Uses assistant-ui primitives for data binding.
7009
+ */
7010
+ const AgentPill = (t0) => {
7011
+ const $ = c(69);
7012
+ const { position: t1, onOpenHistory, showVoiceButton: t2, isVoiceActive: t3, onVoiceToggle, className } = t0;
7013
+ const position = t1 === void 0 ? "bottom-center" : t1;
7014
+ const showVoiceButton = t2 === void 0 ? false : t2;
7015
+ const isVoiceActive = t3 === void 0 ? false : t3;
7016
+ const [userMode, setUserMode] = useState("collapsed");
7017
+ const messages = useThread(_temp$3);
7018
+ const voiceMode = useOptionalVoiceModeContext();
7019
+ const voiceBorderStatus = useVoiceBorderStatus();
7020
+ const isVoiceModeActive = voiceMode?.isActive || voiceMode?.isConnecting || voiceMode?.isError || isVoiceActive;
7021
+ const actions = useActions();
7022
+ const currentAction = useCurrentAction();
7023
+ const recentActions = useRecentActions(3);
7024
+ const summary = useLatestSummary();
7025
+ const hasMessages = (messages?.length ?? 0) > 0;
7026
+ let t4;
7027
+ bb0: {
7028
+ if (!messages || messages.length === 0) {
7029
+ t4 = false;
7030
+ break bb0;
7031
+ }
7032
+ let t5$1;
7033
+ if ($[0] !== messages) {
7034
+ t5$1 = messages.at(-1);
7035
+ $[0] = messages;
7036
+ $[1] = t5$1;
7037
+ } else t5$1 = $[1];
7038
+ const lastMessage = t5$1;
7039
+ t4 = lastMessage?.role === "assistant" && lastMessage.status?.type !== "complete";
7040
+ }
7041
+ const isRunning = t4;
7042
+ let t5;
7043
+ if ($[2] !== actions) {
7044
+ t5 = actions.filter(_temp2).at(-1);
7045
+ $[2] = actions;
7046
+ $[3] = t5;
7047
+ } else t5 = $[3];
7048
+ const lastCompletedAction = t5;
7049
+ const textBorderStatus = useToolBorderStatus(!!currentAction, lastCompletedAction?.status === "success" ? "success" : lastCompletedAction?.status === "error" ? "error" : null);
7050
+ const borderStatus = isVoiceModeActive ? voiceBorderStatus : textBorderStatus;
7051
+ let t6;
7052
+ bb1: {
7053
+ if (isVoiceModeActive) {
7054
+ t6 = "active";
7055
+ break bb1;
7056
+ }
7057
+ if (userMode === "collapsed") {
7058
+ t6 = "collapsed";
7059
+ break bb1;
7060
+ }
7061
+ if (userMode === "hovered") {
7062
+ t6 = "hovered";
7063
+ break bb1;
7064
+ }
7065
+ if (isRunning) {
7066
+ t6 = "active";
7067
+ break bb1;
7068
+ }
7069
+ if (hasMessages) {
7070
+ t6 = "expanded";
7071
+ break bb1;
7072
+ }
7073
+ if (userMode === "composing") {
7074
+ t6 = "composing";
7075
+ break bb1;
7076
+ }
7077
+ t6 = "collapsed";
7078
+ }
7079
+ const mode = t6;
7080
+ let t7;
7081
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
7082
+ t7 = (newMode) => {
7083
+ setUserMode(newMode);
7084
+ };
7085
+ $[4] = t7;
7086
+ } else t7 = $[4];
7087
+ const handleModeChange = t7;
7088
+ let t8;
7089
+ if ($[5] !== onVoiceToggle || $[6] !== voiceMode) {
7090
+ t8 = () => {
7091
+ if (voiceMode) if (voiceMode.isActive || voiceMode.isConnecting) voiceMode.stopSession();
7092
+ else voiceMode.startSession();
7093
+ onVoiceToggle?.();
7094
+ };
7095
+ $[5] = onVoiceToggle;
7096
+ $[6] = voiceMode;
7097
+ $[7] = t8;
7098
+ } else t8 = $[7];
7099
+ const handleVoiceToggle = t8;
7100
+ const borderRadius = mode === "collapsed" || mode === "hovered" ? "9999px" : "24px";
7101
+ const t9 = position === "bottom-center" && "bottom-4 left-1/2 -translate-x-1/2";
7102
+ const t10 = position === "bottom-right" && "bottom-4 right-4";
7103
+ let t11;
7104
+ if ($[8] !== className || $[9] !== t10 || $[10] !== t9) {
7105
+ t11 = cn("fixed z-50", t9, t10, className);
7106
+ $[8] = className;
7107
+ $[9] = t10;
7108
+ $[10] = t9;
7109
+ $[11] = t11;
7110
+ } else t11 = $[11];
7111
+ let t12;
7112
+ if ($[12] !== isVoiceModeActive || $[13] !== mode || $[14] !== onOpenHistory) {
7113
+ t12 = !isVoiceModeActive && mode !== "collapsed" && mode !== "hovered" && onOpenHistory && /* @__PURE__ */ jsx("button", {
7114
+ type: "button",
7115
+ onClick: onOpenHistory,
7116
+ className: cn("absolute top-3 right-3", "p-1.5 rounded-full", "hover:bg-white/10", "text-white/50 hover:text-white/80", "transition-colors duration-200"),
7117
+ "aria-label": "View conversation history",
7118
+ children: /* @__PURE__ */ jsx(History, { className: "h-4 w-4" })
7119
+ });
7120
+ $[12] = isVoiceModeActive;
7121
+ $[13] = mode;
7122
+ $[14] = onOpenHistory;
7123
+ $[15] = t12;
7124
+ } else t12 = $[15];
7125
+ let t13;
7126
+ if ($[16] !== handleVoiceToggle || $[17] !== isVoiceModeActive) {
7127
+ t13 = isVoiceModeActive && /* @__PURE__ */ jsx(PillVoice, { onEnd: handleVoiceToggle }, "voice-mode");
7128
+ $[16] = handleVoiceToggle;
7129
+ $[17] = isVoiceModeActive;
7130
+ $[18] = t13;
7131
+ } else t13 = $[18];
7132
+ let t14;
7133
+ if ($[19] !== t13) {
7134
+ t14 = /* @__PURE__ */ jsx(AnimatePresence, {
7135
+ mode: "wait",
7136
+ children: t13
7137
+ });
7138
+ $[19] = t13;
7139
+ $[20] = t14;
7140
+ } else t14 = $[20];
7141
+ let t15;
7142
+ if ($[21] !== hasMessages || $[22] !== isVoiceModeActive || $[23] !== mode) {
7143
+ t15 = !isVoiceModeActive && mode === "composing" && !hasMessages && /* @__PURE__ */ jsx(WelcomeMessage, {});
7144
+ $[21] = hasMessages;
7145
+ $[22] = isVoiceModeActive;
7146
+ $[23] = mode;
7147
+ $[24] = t15;
7148
+ } else t15 = $[24];
7149
+ let t16;
7150
+ if ($[25] !== currentAction || $[26] !== isVoiceModeActive || $[27] !== mode || $[28] !== recentActions) {
7151
+ t16 = !isVoiceModeActive && mode === "active" && /* @__PURE__ */ jsx(CurrentActivity, {
7152
+ currentAction,
7153
+ recentActions,
7154
+ showRecent: true
7155
+ });
7156
+ $[25] = currentAction;
7157
+ $[26] = isVoiceModeActive;
7158
+ $[27] = mode;
7159
+ $[28] = recentActions;
7160
+ $[29] = t16;
7161
+ } else t16 = $[29];
7162
+ let t17;
7163
+ if ($[30] !== isRunning || $[31] !== isVoiceModeActive || $[32] !== lastCompletedAction?.error || $[33] !== mode || $[34] !== summary) {
7164
+ t17 = !isVoiceModeActive && mode === "expanded" && !isRunning && summary && /* @__PURE__ */ jsx(SummaryBlock, {
7165
+ summary,
7166
+ isSuccess: !lastCompletedAction?.error
7167
+ });
7168
+ $[30] = isRunning;
7169
+ $[31] = isVoiceModeActive;
7170
+ $[32] = lastCompletedAction?.error;
7171
+ $[33] = mode;
7172
+ $[34] = summary;
7173
+ $[35] = t17;
7174
+ } else t17 = $[35];
7175
+ let t18;
7176
+ if ($[36] !== isRunning || $[37] !== isVoiceModeActive || $[38] !== mode || $[39] !== summary) {
7177
+ t18 = !isVoiceModeActive && mode === "expanded" && !isRunning && !summary && /* @__PURE__ */ jsx(IdleIndicator, {});
7178
+ $[36] = isRunning;
7179
+ $[37] = isVoiceModeActive;
7180
+ $[38] = mode;
7181
+ $[39] = summary;
7182
+ $[40] = t18;
7183
+ } else t18 = $[40];
7184
+ let t19;
7185
+ if ($[41] !== actions || $[42] !== isVoiceModeActive || $[43] !== mode) {
7186
+ t19 = !isVoiceModeActive && (mode === "active" || mode === "expanded") && actions.length > 0 && /* @__PURE__ */ jsx(ActionList, {
7187
+ actions,
7188
+ defaultCollapsed: mode === "active"
7189
+ });
7190
+ $[41] = actions;
7191
+ $[42] = isVoiceModeActive;
7192
+ $[43] = mode;
7193
+ $[44] = t19;
7194
+ } else t19 = $[44];
7195
+ let t20;
7196
+ if ($[45] !== handleVoiceToggle || $[46] !== isVoiceActive || $[47] !== isVoiceModeActive || $[48] !== mode || $[49] !== showVoiceButton || $[50] !== voiceMode?.isSupported) {
7197
+ t20 = !isVoiceModeActive && (mode === "composing" || mode === "active" || mode === "expanded") && /* @__PURE__ */ jsx(PillComposer, {
7198
+ showVoiceButton: showVoiceButton || !!voiceMode?.isSupported,
7199
+ isVoiceActive,
7200
+ onVoiceToggle: handleVoiceToggle
7201
+ });
7202
+ $[45] = handleVoiceToggle;
7203
+ $[46] = isVoiceActive;
7204
+ $[47] = isVoiceModeActive;
7205
+ $[48] = mode;
7206
+ $[49] = showVoiceButton;
7207
+ $[50] = voiceMode?.isSupported;
7208
+ $[51] = t20;
7209
+ } else t20 = $[51];
7210
+ let t21;
7211
+ if ($[52] !== mode || $[53] !== t12 || $[54] !== t14 || $[55] !== t15 || $[56] !== t16 || $[57] !== t17 || $[58] !== t18 || $[59] !== t19 || $[60] !== t20) {
7212
+ t21 = /* @__PURE__ */ jsxs(PillContainer, {
7213
+ mode,
7214
+ onModeChange: handleModeChange,
7215
+ children: [
7216
+ t12,
7217
+ t14,
7218
+ t15,
7219
+ t16,
7220
+ t17,
7221
+ t18,
7222
+ t19,
7223
+ t20
7224
+ ]
7225
+ });
7226
+ $[52] = mode;
7227
+ $[53] = t12;
7228
+ $[54] = t14;
7229
+ $[55] = t15;
7230
+ $[56] = t16;
7231
+ $[57] = t17;
7232
+ $[58] = t18;
7233
+ $[59] = t19;
7234
+ $[60] = t20;
7235
+ $[61] = t21;
7236
+ } else t21 = $[61];
7237
+ let t22;
7238
+ if ($[62] !== borderRadius || $[63] !== borderStatus || $[64] !== t21) {
7239
+ t22 = /* @__PURE__ */ jsx(ToolStatusBorder, {
7240
+ status: borderStatus,
7241
+ borderRadius,
7242
+ children: t21
7243
+ });
7244
+ $[62] = borderRadius;
7245
+ $[63] = borderStatus;
7246
+ $[64] = t21;
7247
+ $[65] = t22;
7248
+ } else t22 = $[65];
7249
+ let t23;
7250
+ if ($[66] !== t11 || $[67] !== t22) {
7251
+ t23 = /* @__PURE__ */ jsx(ThreadPrimitive.Root, {
7252
+ className: t11,
7253
+ children: t22
7254
+ });
7255
+ $[66] = t11;
7256
+ $[67] = t22;
7257
+ $[68] = t23;
7258
+ } else t23 = $[68];
7259
+ return t23;
7260
+ };
7261
+ function _temp$3(thread) {
7262
+ return thread.messages;
7263
+ }
7264
+ function _temp2(a) {
7265
+ return a.status === "success" || a.status === "error";
7266
+ }
7267
+
7268
+ //#endregion
7269
+ //#region src/components/pill/HistorySidebar.tsx
7270
+ /**
7271
+ * Sidebar panel showing conversation history and full thread view.
7272
+ * Opens from the right side of the screen.
7273
+ */
7274
+ const HistorySidebar = (t0) => {
7275
+ const $ = c(30);
7276
+ const { isOpen, onClose, conversations: t1, selectedId, onSelectConversation, className } = t0;
7277
+ let t2;
7278
+ if ($[0] !== t1) {
7279
+ t2 = t1 === void 0 ? [] : t1;
7280
+ $[0] = t1;
7281
+ $[1] = t2;
7282
+ } else t2 = $[1];
7283
+ const conversations = t2;
7284
+ const [showFullThread, setShowFullThread] = useState(false);
7285
+ let t3;
7286
+ if ($[2] !== isOpen || $[3] !== onClose) {
7287
+ t3 = isOpen && /* @__PURE__ */ jsx("div", {
7288
+ className: "fixed inset-0 z-40 bg-black/50 backdrop-blur-sm",
7289
+ onClick: onClose,
7290
+ "aria-hidden": "true"
7291
+ });
7292
+ $[2] = isOpen;
7293
+ $[3] = onClose;
7294
+ $[4] = t3;
7295
+ } else t3 = $[4];
7296
+ const t4 = isOpen ? "translate-x-0" : "translate-x-full";
7297
+ let t5;
7298
+ if ($[5] !== className || $[6] !== t4) {
7299
+ t5 = cn("fixed top-0 right-0 z-50", "h-full w-full max-w-md", "bg-slate-900/95 backdrop-blur-xl", "border-l border-white/10", "shadow-2xl", "transform transition-transform duration-300 ease-out", t4, className);
7300
+ $[5] = className;
7301
+ $[6] = t4;
7302
+ $[7] = t5;
7303
+ } else t5 = $[7];
7304
+ let t6;
7305
+ if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
7306
+ t6 = /* @__PURE__ */ jsx(MessageSquare, { className: "h-5 w-5 text-white/70" });
7307
+ $[8] = t6;
7308
+ } else t6 = $[8];
7309
+ const t7 = showFullThread ? "Conversation" : "History";
7310
+ let t8;
7311
+ if ($[9] !== t7) {
7312
+ t8 = /* @__PURE__ */ jsxs("div", {
7313
+ className: "flex items-center gap-2",
7314
+ children: [t6, /* @__PURE__ */ jsx("h2", {
7315
+ className: "text-lg font-semibold text-white",
7316
+ children: t7
7317
+ })]
7318
+ });
7319
+ $[9] = t7;
7320
+ $[10] = t8;
7321
+ } else t8 = $[10];
7322
+ let t9;
7323
+ if ($[11] === Symbol.for("react.memo_cache_sentinel")) {
7324
+ t9 = cn("p-1.5 rounded-lg", "hover:bg-white/10", "text-white/60 hover:text-white", "transition-colors duration-200");
7325
+ $[11] = t9;
7326
+ } else t9 = $[11];
7327
+ let t10;
7328
+ if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
7329
+ t10 = /* @__PURE__ */ jsx(X, { className: "h-5 w-5" });
7330
+ $[12] = t10;
7331
+ } else t10 = $[12];
7332
+ let t11;
7333
+ if ($[13] !== onClose) {
7334
+ t11 = /* @__PURE__ */ jsx("button", {
7335
+ type: "button",
7336
+ onClick: onClose,
7337
+ className: t9,
7338
+ "aria-label": "Close sidebar",
7339
+ children: t10
7340
+ });
7341
+ $[13] = onClose;
7342
+ $[14] = t11;
7343
+ } else t11 = $[14];
7344
+ let t12;
7345
+ if ($[15] !== t11 || $[16] !== t8) {
7346
+ t12 = /* @__PURE__ */ jsxs("div", {
7347
+ className: "flex items-center justify-between px-4 py-3 border-b border-white/10",
7348
+ children: [t8, t11]
7349
+ });
7350
+ $[15] = t11;
7351
+ $[16] = t8;
7352
+ $[17] = t12;
7353
+ } else t12 = $[17];
7354
+ let t13;
7355
+ if ($[18] !== conversations || $[19] !== onSelectConversation || $[20] !== selectedId || $[21] !== showFullThread) {
7356
+ t13 = /* @__PURE__ */ jsx("div", {
7357
+ className: "flex flex-col h-[calc(100%-60px)] overflow-hidden",
7358
+ children: showFullThread && selectedId ? /* @__PURE__ */ jsxs("div", {
7359
+ className: "flex-1 overflow-y-auto",
7360
+ children: [/* @__PURE__ */ jsx("button", {
7361
+ type: "button",
7362
+ onClick: () => setShowFullThread(false),
7363
+ className: "px-4 py-2 text-sm text-primary hover:underline",
7364
+ children: "← Back to history"
7365
+ }), /* @__PURE__ */ jsx(FullThreadView, {})]
7366
+ }) : /* @__PURE__ */ jsx("div", {
7367
+ className: "flex-1 overflow-y-auto p-4",
7368
+ children: conversations.length === 0 ? /* @__PURE__ */ jsx(EmptyHistory, {}) : /* @__PURE__ */ jsx(ConversationList, {
7369
+ conversations,
7370
+ selectedId,
7371
+ onSelect: (id) => {
7372
+ onSelectConversation?.(id);
7373
+ setShowFullThread(true);
7374
+ }
7375
+ })
7376
+ })
7377
+ });
7378
+ $[18] = conversations;
7379
+ $[19] = onSelectConversation;
7380
+ $[20] = selectedId;
7381
+ $[21] = showFullThread;
7382
+ $[22] = t13;
7383
+ } else t13 = $[22];
7384
+ let t14;
7385
+ if ($[23] !== t12 || $[24] !== t13 || $[25] !== t5) {
7386
+ t14 = /* @__PURE__ */ jsxs("div", {
7387
+ className: t5,
7388
+ role: "dialog",
7389
+ "aria-modal": "true",
7390
+ "aria-label": "Conversation history",
7391
+ children: [t12, t13]
7392
+ });
7393
+ $[23] = t12;
7394
+ $[24] = t13;
7395
+ $[25] = t5;
7396
+ $[26] = t14;
7397
+ } else t14 = $[26];
7398
+ let t15;
7399
+ if ($[27] !== t14 || $[28] !== t3) {
7400
+ t15 = /* @__PURE__ */ jsxs(Fragment, { children: [t3, t14] });
7401
+ $[27] = t14;
7402
+ $[28] = t3;
7403
+ $[29] = t15;
7404
+ } else t15 = $[29];
7405
+ return t15;
7406
+ };
7407
+ /**
7408
+ * Empty state when no conversations exist
7409
+ */
7410
+ const EmptyHistory = () => {
7411
+ const $ = c(1);
7412
+ let t0;
7413
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
7414
+ t0 = /* @__PURE__ */ jsxs("div", {
7415
+ className: "flex flex-col items-center justify-center h-full text-center px-8",
7416
+ children: [
7417
+ /* @__PURE__ */ jsx(MessageSquare, { className: "h-12 w-12 text-white/20 mb-4" }),
7418
+ /* @__PURE__ */ jsx("h3", {
7419
+ className: "text-lg font-medium text-white/80 mb-2",
7420
+ children: "No conversations yet"
7421
+ }),
7422
+ /* @__PURE__ */ jsx("p", {
7423
+ className: "text-sm text-white/50",
7424
+ children: "Your conversation history will appear here."
7425
+ })
7426
+ ]
7427
+ });
7428
+ $[0] = t0;
7429
+ } else t0 = $[0];
7430
+ return t0;
7431
+ };
7432
+ /**
7433
+ * List of conversations grouped by date
7434
+ */
7435
+ const ConversationList = (t0) => {
7436
+ const $ = c(11);
7437
+ const { conversations, selectedId, onSelect } = t0;
7438
+ let t1;
7439
+ let t2;
7440
+ if ($[0] !== conversations || $[1] !== onSelect || $[2] !== selectedId) {
7441
+ const grouped = groupByDate(conversations);
7442
+ t1 = "space-y-6";
7443
+ let t3$1;
7444
+ if ($[5] !== onSelect || $[6] !== selectedId) {
7445
+ t3$1 = (t4) => {
7446
+ const [date, convos] = t4;
7447
+ return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
7448
+ className: "text-xs font-medium text-white/50 uppercase tracking-wide mb-2",
7449
+ children: date
7450
+ }), /* @__PURE__ */ jsx("div", {
7451
+ className: "space-y-1",
7452
+ children: convos.map((convo) => /* @__PURE__ */ jsxs("button", {
7453
+ type: "button",
7454
+ onClick: () => onSelect(convo.id),
7455
+ className: cn("w-full text-left p-3 rounded-lg", "hover:bg-white/10", "transition-colors duration-200", selectedId === convo.id && "bg-white/10"),
7456
+ children: [
7457
+ /* @__PURE__ */ jsx("div", {
7458
+ className: "font-medium text-white truncate",
7459
+ children: convo.title
7460
+ }),
7461
+ /* @__PURE__ */ jsx("div", {
7462
+ className: "text-xs text-white/50 truncate mt-0.5",
7463
+ children: convo.preview
7464
+ }),
7465
+ /* @__PURE__ */ jsxs("div", {
7466
+ className: "text-[10px] text-white/30 mt-1",
7467
+ children: [
7468
+ convo.messageCount,
7469
+ " messages • ",
7470
+ formatRelativeTime(convo.timestamp)
7471
+ ]
7472
+ })
7473
+ ]
7474
+ }, convo.id))
7475
+ })] }, date);
7476
+ };
7477
+ $[5] = onSelect;
7478
+ $[6] = selectedId;
7479
+ $[7] = t3$1;
7480
+ } else t3$1 = $[7];
7481
+ t2 = grouped.map(t3$1);
7482
+ $[0] = conversations;
7483
+ $[1] = onSelect;
7484
+ $[2] = selectedId;
7485
+ $[3] = t1;
7486
+ $[4] = t2;
7487
+ } else {
7488
+ t1 = $[3];
7489
+ t2 = $[4];
7490
+ }
7491
+ let t3;
7492
+ if ($[8] !== t1 || $[9] !== t2) {
7493
+ t3 = /* @__PURE__ */ jsx("div", {
7494
+ className: t1,
7495
+ children: t2
7496
+ });
7497
+ $[8] = t1;
7498
+ $[9] = t2;
7499
+ $[10] = t3;
7500
+ } else t3 = $[10];
7501
+ return t3;
7502
+ };
7503
+ /**
7504
+ * Full thread view using assistant-ui primitives
7505
+ */
7506
+ const FullThreadView = () => {
7507
+ const $ = c(1);
7508
+ let t0;
7509
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
7510
+ t0 = /* @__PURE__ */ jsx(ThreadPrimitive.Root, {
7511
+ className: "flex flex-col h-full",
7512
+ children: /* @__PURE__ */ jsx(ThreadPrimitive.Viewport, {
7513
+ className: "flex-1 overflow-y-auto px-4 py-4",
7514
+ children: /* @__PURE__ */ jsx(ThreadPrimitive.Messages, { components: {
7515
+ UserMessage: HistoryUserMessage,
7516
+ AssistantMessage: HistoryAssistantMessage
7517
+ } })
7518
+ })
7519
+ });
7520
+ $[0] = t0;
7521
+ } else t0 = $[0];
7522
+ return t0;
7523
+ };
7524
+ /**
7525
+ * User message component for history view
7526
+ */
7527
+ const HistoryUserMessage = () => {
7528
+ const $ = c(1);
7529
+ let t0;
7530
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
7531
+ t0 = /* @__PURE__ */ jsx(MessagePrimitive.Root, {
7532
+ asChild: true,
7533
+ children: /* @__PURE__ */ jsx("div", {
7534
+ className: "flex justify-end mb-4",
7535
+ children: /* @__PURE__ */ jsx("div", {
7536
+ className: "max-w-[80%] rounded-2xl bg-primary px-4 py-2 text-sm text-primary-foreground",
7537
+ children: /* @__PURE__ */ jsx(MessagePrimitive.Parts, {})
7538
+ })
7539
+ })
7540
+ });
7541
+ $[0] = t0;
7542
+ } else t0 = $[0];
7543
+ return t0;
7544
+ };
7545
+ /**
7546
+ * Assistant message component for history view
7547
+ */
7548
+ const HistoryAssistantMessage = () => {
7549
+ const $ = c(1);
7550
+ let t0;
7551
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
7552
+ t0 = /* @__PURE__ */ jsx(MessagePrimitive.Root, {
7553
+ asChild: true,
7554
+ children: /* @__PURE__ */ jsx("div", {
7555
+ className: "mb-4",
7556
+ children: /* @__PURE__ */ jsx("div", {
7557
+ className: "text-sm text-white/90",
7558
+ children: /* @__PURE__ */ jsx(MessagePrimitive.Parts, { components: {
7559
+ Text: MarkdownText,
7560
+ tools: { Fallback: ToolFallback }
7561
+ } })
7562
+ })
7563
+ })
7564
+ });
7565
+ $[0] = t0;
7566
+ } else t0 = $[0];
7567
+ return t0;
7568
+ };
7569
+ /**
7570
+ * Group conversations by date
7571
+ */
7572
+ function groupByDate(conversations) {
7573
+ const groups = /* @__PURE__ */ new Map();
7574
+ const today = /* @__PURE__ */ new Date();
7575
+ today.setHours(0, 0, 0, 0);
7576
+ const yesterday = new Date(today);
7577
+ yesterday.setDate(yesterday.getDate() - 1);
7578
+ for (const convo of conversations) {
7579
+ const convoDate = new Date(convo.timestamp);
7580
+ convoDate.setHours(0, 0, 0, 0);
7581
+ let dateKey;
7582
+ if (convoDate.getTime() === today.getTime()) dateKey = "Today";
7583
+ else if (convoDate.getTime() === yesterday.getTime()) dateKey = "Yesterday";
7584
+ else if (convoDate.getTime() > today.getTime() - 10080 * 60 * 1e3) dateKey = "This Week";
7585
+ else dateKey = convoDate.toLocaleDateString("en-US", {
7586
+ month: "long",
7587
+ year: "numeric"
7588
+ });
7589
+ if (!groups.has(dateKey)) groups.set(dateKey, []);
7590
+ groups.get(dateKey).push(convo);
7591
+ }
7592
+ return Array.from(groups.entries());
7593
+ }
7594
+ /**
7595
+ * Format relative time
7596
+ */
7597
+ function formatRelativeTime(date) {
7598
+ const diffMs = (/* @__PURE__ */ new Date()).getTime() - date.getTime();
7599
+ const diffMins = Math.floor(diffMs / 6e4);
7600
+ const diffHours = Math.floor(diffMs / 36e5);
7601
+ const diffDays = Math.floor(diffMs / 864e5);
7602
+ if (diffMins < 1) return "just now";
7603
+ if (diffMins < 60) return `${diffMins} min ago`;
7604
+ if (diffHours < 24) return `${diffHours} hr ago`;
7605
+ if (diffDays < 7) return `${diffDays} days ago`;
7606
+ return date.toLocaleDateString("en-US", {
7607
+ month: "short",
7608
+ day: "numeric"
7609
+ });
7610
+ }
7611
+
4705
7612
  //#endregion
4706
7613
  //#region src/generated/inline-styles.ts
4707
7614
  /**
@@ -4710,7 +7617,7 @@ const MCPToolRegistry = () => {
4710
7617
  *
4711
7618
  * Contains the compiled CSS for the web component standalone build.
4712
7619
  */
4713
- 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-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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}}}@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-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-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--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-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-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}.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-0{inset:calc(var(--spacing)*0)}.-top-12{top:calc(var(--spacing)*-12)}.top-1\\.5{top:calc(var(--spacing)*1.5)}.top-1\\/2{top:50%}.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-4{right:calc(var(--spacing)*4)}.right-6{right:calc(var(--spacing)*6)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-6{bottom:calc(var(--spacing)*6)}.left-0{left:calc(var(--spacing)*0)}.left-\\[50\\%\\]{left:50%}.z-10{z-index:10}.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-2{margin-block:calc(var(--spacing)*2)}.my-auto{margin-block:auto}.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-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}.block{display:block}.flex{display:flex}.grid{display:grid}.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-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-\\[600px\\]{height:600px}.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-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-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.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-\\[80\\%\\]{max-width:80%}.max-w-\\[80px\\]{max-width:80px}.max-w-\\[85\\%\\]{max-width:85%}.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%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-1{flex:1}.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-full{--tw-translate-x:-100%;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-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}.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}.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-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)))}.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\\/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\\/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-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\\/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-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-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-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.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-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\\.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-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-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-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-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-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-white{color:var(--color-white)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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)}.\\[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-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))}.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)}.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)}}.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\\: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-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\\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\\:text-destructive:hover{color:var(--destructive)}.hover\\:text-foreground:hover{color:var(--foreground)}.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-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 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}@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-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-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}}";
7620
+ 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}}";
4714
7621
  /**
4715
7622
  * Inject the WebMCP styles into the document head.
4716
7623
  * This is called automatically when registering the web component.
@@ -4761,67 +7668,117 @@ function injectStyles() {
4761
7668
  * EmbeddedAgent React Component
4762
7669
  *
4763
7670
  * A fully self-contained chat widget with MCP tool support and optional voice mode.
7671
+ * Supports two view modes:
7672
+ * - 'pill': Action-first compact UI (default)
7673
+ * - 'modal': Traditional chat modal
7674
+ *
4764
7675
  * Can be used as a React component or converted to a web component.
4765
7676
  */
4766
7677
  const EmbeddedAgent = (t0) => {
4767
- const $ = c(14);
4768
- const { appId, apiBase, tokenEndpoint, autoConnectLocal: t1, onToolsChange, onVoiceError, onVoiceConnect, onVoiceDisconnect } = t0;
7678
+ const $ = c(23);
7679
+ const { appId, apiBase, tokenEndpoint, autoConnectLocal: t1, viewMode: t2, onToolsChange, onVoiceError, onVoiceConnect, onVoiceDisconnect } = t0;
4769
7680
  const autoConnectLocal = t1 === void 0 ? true : t1;
7681
+ const viewMode = t2 === void 0 ? "pill" : t2;
4770
7682
  const chatApi = apiBase ? `${apiBase}/api/chat` : "/api/chat";
4771
- let t2;
7683
+ let t3;
4772
7684
  if ($[0] !== chatApi) {
4773
- t2 = new AssistantChatTransport({ api: chatApi });
7685
+ t3 = new AssistantChatTransport({ api: chatApi });
4774
7686
  $[0] = chatApi;
4775
- $[1] = t2;
4776
- } else t2 = $[1];
4777
- const transport = t2;
4778
- let t3;
7687
+ $[1] = t3;
7688
+ } else t3 = $[1];
7689
+ const transport = t3;
7690
+ let t4;
4779
7691
  if ($[2] !== transport) {
4780
- t3 = {
7692
+ t4 = {
4781
7693
  transport,
4782
7694
  sendAutomaticallyWhen: _temp$2
4783
7695
  };
4784
7696
  $[2] = transport;
4785
- $[3] = t3;
4786
- } else t3 = $[3];
4787
- const runtime = useChatRuntime(t3);
7697
+ $[3] = t4;
7698
+ } else t4 = $[3];
7699
+ const runtime = useChatRuntime(t4);
7700
+ const [isHistoryOpen, setIsHistoryOpen] = useState(false);
7701
+ let t5;
7702
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
7703
+ t5 = [];
7704
+ $[4] = t5;
7705
+ } else t5 = $[4];
7706
+ const [conversations] = useState(t5);
7707
+ let t6;
7708
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
7709
+ t6 = () => {
7710
+ setIsHistoryOpen(true);
7711
+ };
7712
+ $[5] = t6;
7713
+ } else t6 = $[5];
7714
+ const handleOpenHistory = t6;
7715
+ let t7;
7716
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
7717
+ t7 = () => {
7718
+ setIsHistoryOpen(false);
7719
+ };
7720
+ $[6] = t7;
7721
+ } else t7 = $[6];
7722
+ const handleCloseHistory = t7;
4788
7723
  const resolvedTokenEndpoint = tokenEndpoint || (apiBase ? `${apiBase}/api/realtime/session` : void 0);
4789
- if (appId && typeof window !== "undefined") console.debug("[WebMCP] Initialized with app_id:", appId);
4790
- let t4;
4791
- if ($[4] !== onVoiceConnect || $[5] !== onVoiceDisconnect || $[6] !== onVoiceError || $[7] !== resolvedTokenEndpoint || $[8] !== runtime) {
4792
- t4 = resolvedTokenEndpoint ? /* @__PURE__ */ jsx(VoiceModeProvider, {
7724
+ if (appId && typeof window !== "undefined") console.debug("[WebMCP] Initialized with app_id:", appId, "viewMode:", viewMode);
7725
+ let t8;
7726
+ if ($[7] !== conversations || $[8] !== isHistoryOpen || $[9] !== resolvedTokenEndpoint || $[10] !== viewMode) {
7727
+ t8 = () => {
7728
+ if (viewMode === "pill") return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(AgentPill, {
7729
+ position: "bottom-center",
7730
+ onOpenHistory: handleOpenHistory,
7731
+ showVoiceButton: !!resolvedTokenEndpoint
7732
+ }), /* @__PURE__ */ jsx(HistorySidebar, {
7733
+ isOpen: isHistoryOpen,
7734
+ onClose: handleCloseHistory,
7735
+ conversations
7736
+ })] });
7737
+ return /* @__PURE__ */ jsx(AssistantModal, {});
7738
+ };
7739
+ $[7] = conversations;
7740
+ $[8] = isHistoryOpen;
7741
+ $[9] = resolvedTokenEndpoint;
7742
+ $[10] = viewMode;
7743
+ $[11] = t8;
7744
+ } else t8 = $[11];
7745
+ const renderUI = t8;
7746
+ let t9;
7747
+ if ($[12] !== onVoiceConnect || $[13] !== onVoiceDisconnect || $[14] !== onVoiceError || $[15] !== renderUI || $[16] !== resolvedTokenEndpoint || $[17] !== runtime) {
7748
+ t9 = resolvedTokenEndpoint ? /* @__PURE__ */ jsx(VoiceModeProvider, {
4793
7749
  tokenEndpoint: resolvedTokenEndpoint,
4794
7750
  onError: onVoiceError,
4795
7751
  onConnect: onVoiceConnect,
4796
7752
  onDisconnect: onVoiceDisconnect,
4797
7753
  children: /* @__PURE__ */ jsxs(AssistantRuntimeProvider, {
4798
7754
  runtime,
4799
- children: [/* @__PURE__ */ jsx(MCPToolRegistry, {}), /* @__PURE__ */ jsx(AssistantModal, {})]
7755
+ children: [/* @__PURE__ */ jsx(MCPToolRegistry, {}), renderUI()]
4800
7756
  })
4801
7757
  }) : /* @__PURE__ */ jsxs(AssistantRuntimeProvider, {
4802
7758
  runtime,
4803
- children: [/* @__PURE__ */ jsx(MCPToolRegistry, {}), /* @__PURE__ */ jsx(AssistantModal, {})]
4804
- });
4805
- $[4] = onVoiceConnect;
4806
- $[5] = onVoiceDisconnect;
4807
- $[6] = onVoiceError;
4808
- $[7] = resolvedTokenEndpoint;
4809
- $[8] = runtime;
4810
- $[9] = t4;
4811
- } else t4 = $[9];
4812
- let t5;
4813
- if ($[10] !== autoConnectLocal || $[11] !== onToolsChange || $[12] !== t4) {
4814
- t5 = /* @__PURE__ */ jsx(MCPToolsProvider, {
7759
+ children: [/* @__PURE__ */ jsx(MCPToolRegistry, {}), renderUI()]
7760
+ });
7761
+ $[12] = onVoiceConnect;
7762
+ $[13] = onVoiceDisconnect;
7763
+ $[14] = onVoiceError;
7764
+ $[15] = renderUI;
7765
+ $[16] = resolvedTokenEndpoint;
7766
+ $[17] = runtime;
7767
+ $[18] = t9;
7768
+ } else t9 = $[18];
7769
+ let t10;
7770
+ if ($[19] !== autoConnectLocal || $[20] !== onToolsChange || $[21] !== t9) {
7771
+ t10 = /* @__PURE__ */ jsx(MCPToolsProvider, {
4815
7772
  autoConnectLocal,
4816
7773
  onToolsChange,
4817
- children: t4
7774
+ children: t9
4818
7775
  });
4819
- $[10] = autoConnectLocal;
4820
- $[11] = onToolsChange;
4821
- $[12] = t4;
4822
- $[13] = t5;
4823
- } else t5 = $[13];
4824
- return t5;
7776
+ $[19] = autoConnectLocal;
7777
+ $[20] = onToolsChange;
7778
+ $[21] = t9;
7779
+ $[22] = t10;
7780
+ } else t10 = $[22];
7781
+ return t10;
4825
7782
  };
4826
7783
  /**
4827
7784
  * Web Component Definition
@@ -4833,7 +7790,8 @@ const WebMCPAgentElement = r2wc(EmbeddedAgent, { props: {
4833
7790
  appId: "string",
4834
7791
  apiBase: "string",
4835
7792
  tokenEndpoint: "string",
4836
- autoConnectLocal: "boolean"
7793
+ autoConnectLocal: "boolean",
7794
+ viewMode: "string"
4837
7795
  } });
4838
7796
  /**
4839
7797
  * Register the custom element
@@ -7038,5 +9996,5 @@ function useAssistantMCP(options) {
7038
9996
  }
7039
9997
 
7040
9998
  //#endregion
7041
- export { AUDIO_FREQUENCY_BINS, AssistantMessage, AssistantModal, Avatar, AvatarFallback, AvatarImage, Badge, Button, ChatRuntimeProvider, Composer, ComposerAddAttachment, ComposerAttachments, DEBUG_LOGGING_ENABLED, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, EmbeddedAgent, LiveWaveform, MCPToolRegistry, MCPToolsProvider, MCP_BASE_RECONNECT_DELAY_MS, MCP_MAX_RECONNECT_ATTEMPTS, MCP_MAX_RECONNECT_DELAY_MS, MCP_TAB_CONNECT_DELAY_MS, MarkdownText, OpenAIRealtimeService, REALTIME_DEFAULT_API_URL, REALTIME_DEFAULT_MODEL, REALTIME_DEFAULT_VOICE, RealtimeToolCard, RemoteMCPSettings, SOURCE_LOCAL, SOURCE_REMOTE, ScrollArea, ScrollBar, Separator, Thread, ThreadWithVoice, ToolFallback, Tooltip, TooltipContent, TooltipIconButton, TooltipProvider, TooltipTrigger, UserMessage, UserMessageAttachments, VoiceIndicator, VoiceModeProvider, WebMCPAgentElement, badgeVariants, buttonVariants, calculateReconnectDelay, cn, convertAssistantUIMessage, convertToAssistantUiMessages, createMCPTransport, debugLog, isAssistantTranscriptEventData, isAudioLevelData, isErrorEventData, isSessionStateEventData, isToolCallCompletedEventData, isToolCallStartedEventData, isUserTranscriptEventData, registerWebMCPAgent, shouldFallbackToSSE, useAgentChat, useAssistantMCP, useCloudflareRuntime, useMCPSource, useMCPTools, useOptionalMCPTools, useOptionalVoiceModeContext, useVoiceMode, useVoiceModeContext };
9999
+ export { AUDIO_FREQUENCY_BINS, ActionList, ActionStatusIcon, ActionSummary, AgentPill, AssistantMessage, AssistantModal, Avatar, AvatarFallback, AvatarImage, Badge, Button, ChatRuntimeProvider, Composer, ComposerAddAttachment, ComposerAttachments, CurrentActivity, DEBUG_LOGGING_ENABLED, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, EmbeddedAgent, HistorySidebar, IdleIndicator, LiveWaveform, MCPToolRegistry, MCPToolsProvider, MCP_BASE_RECONNECT_DELAY_MS, MCP_MAX_RECONNECT_ATTEMPTS, MCP_MAX_RECONNECT_DELAY_MS, MCP_TAB_CONNECT_DELAY_MS, MarkdownText, MinimalComposer, OpenAIRealtimeService, PillComposer, PillContainer, REALTIME_DEFAULT_API_URL, REALTIME_DEFAULT_MODEL, REALTIME_DEFAULT_VOICE, RealtimeToolCard, RemoteMCPSettings, SOURCE_LOCAL, SOURCE_REMOTE, ScrollArea, ScrollBar, Separator, SummaryBlock, Thread, ThreadWithVoice, ToolFallback, ToolStatusBorder, Tooltip, TooltipContent, TooltipIconButton, TooltipProvider, TooltipTrigger, UserMessage, UserMessageAttachments, VoiceIndicator, VoiceModeProvider, WebMCPAgentElement, WelcomeMessage, badgeVariants, buttonVariants, calculateReconnectDelay, cn, convertAssistantUIMessage, convertToAssistantUiMessages, createMCPTransport, debugLog, humanizeToolName, isAssistantTranscriptEventData, isAudioLevelData, isErrorEventData, isSessionStateEventData, isToolCallCompletedEventData, isToolCallStartedEventData, isUserTranscriptEventData, registerWebMCPAgent, shouldFallbackToSSE, useActionStats, useActions, useAgentChat, useAssistantMCP, useCloudflareRuntime, useCurrentAction, useMCPSource, useMCPTools, useOptionalMCPTools, useOptionalVoiceModeContext, useRecentActions, useVoiceMode, useVoiceModeContext };
7042
10000
  //# sourceMappingURL=index.js.map