@skippr/live-agent-sdk 0.67.0 → 0.68.0

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.
@@ -8,7 +8,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
8
8
 
9
9
  // src/components/LiveAgent.tsx
10
10
  import { LiveKitRoom, RoomAudioRenderer } from "@livekit/components-react";
11
- import { useCallback as useCallback14, useEffect as useEffect23, useMemo as useMemo6, useRef as useRef17, useState as useState17 } from "react";
11
+ import { useCallback as useCallback15, useEffect as useEffect24, useMemo as useMemo6, useRef as useRef17, useState as useState18 } from "react";
12
12
 
13
13
  // src/capture/useAgentCursor.ts
14
14
  import { useEffect, useState } from "react";
@@ -426,6 +426,7 @@ var HIGHLIGHT_TOPIC = "skippr.highlight";
426
426
  var PAGE_ACTIONS_TOPIC = "skippr.page-actions";
427
427
  var TEXT_MODE_TOPIC = "skippr.text-mode";
428
428
  var ACTION_CONTROL_TOPIC = "skippr.action-control";
429
+ var SESSION_HOLD_TOPIC = "skippr.session-hold";
429
430
  var PLAN_ATTR = "skippr.action-plan";
430
431
  var NAME_MAX_CHARS = 80;
431
432
 
@@ -555,6 +556,7 @@ function useSession({
555
556
  const [pendingScreenStream, setPendingScreenStream] = useState6(null);
556
557
  const [isPaused, setIsPaused] = useState6(false);
557
558
  const [isPausing, setIsPausing] = useState6(false);
559
+ const [pauseTimeoutSeconds, setPauseTimeoutSeconds] = useState6(null);
558
560
  const [historyMessages, setHistoryMessages] = useState6([]);
559
561
  const [authFailed, setAuthFailed] = useState6(false);
560
562
  const tokenRef = useRef(authToken ? { token: authToken, expiresAt: null } : null);
@@ -730,7 +732,11 @@ function useSession({
730
732
  setErrorCode(startResp.status);
731
733
  throw new Error(body?.detail || `Failed to start session: ${startResp.status}`);
732
734
  }
733
- const { session, connection: conn } = await startResp.json();
735
+ const {
736
+ session,
737
+ connection: conn,
738
+ pauseTimeoutSeconds: pauseTimeout
739
+ } = await startResp.json();
734
740
  const history2 = existingSessionId ? await fetchSessionMessages(session.id, authedFetch) : [];
735
741
  setSessionId(session.id);
736
742
  setHistoryMessages(history2);
@@ -741,6 +747,7 @@ function useSession({
741
747
  setPendingScreenStream(screenStream);
742
748
  setShouldConnect(true);
743
749
  setIsPaused(false);
750
+ setPauseTimeoutSeconds(typeof pauseTimeout === "number" ? pauseTimeout : null);
744
751
  } catch (e) {
745
752
  stopStream(screenStream);
746
753
  setError(e instanceof Error ? e.message : "Failed to start session");
@@ -810,6 +817,7 @@ function useSession({
810
817
  disconnect,
811
818
  isPaused,
812
819
  isPausing,
820
+ pauseTimeoutSeconds,
813
821
  historyMessages,
814
822
  pendingScreenStream,
815
823
  bearerToken,
@@ -1153,8 +1161,14 @@ var __iconNode21 = [
1153
1161
  ]
1154
1162
  ];
1155
1163
  var MousePointerClick = createLucideIcon("mouse-pointer-click", __iconNode21);
1156
- // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/play.js
1164
+ // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/pause.js
1157
1165
  var __iconNode22 = [
1166
+ ["rect", { x: "14", y: "3", width: "5", height: "18", rx: "1", key: "kaeet6" }],
1167
+ ["rect", { x: "5", y: "3", width: "5", height: "18", rx: "1", key: "1wsw3u" }]
1168
+ ];
1169
+ var Pause = createLucideIcon("pause", __iconNode22);
1170
+ // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/play.js
1171
+ var __iconNode23 = [
1158
1172
  [
1159
1173
  "path",
1160
1174
  {
@@ -1163,9 +1177,9 @@ var __iconNode22 = [
1163
1177
  }
1164
1178
  ]
1165
1179
  ];
1166
- var Play = createLucideIcon("play", __iconNode22);
1180
+ var Play = createLucideIcon("play", __iconNode23);
1167
1181
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/send.js
1168
- var __iconNode23 = [
1182
+ var __iconNode24 = [
1169
1183
  [
1170
1184
  "path",
1171
1185
  {
@@ -1175,18 +1189,18 @@ var __iconNode23 = [
1175
1189
  ],
1176
1190
  ["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
1177
1191
  ];
1178
- var Send = createLucideIcon("send", __iconNode23);
1192
+ var Send = createLucideIcon("send", __iconNode24);
1179
1193
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/square.js
1180
- var __iconNode24 = [
1194
+ var __iconNode25 = [
1181
1195
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
1182
1196
  ];
1183
- var Square = createLucideIcon("square", __iconNode24);
1197
+ var Square = createLucideIcon("square", __iconNode25);
1184
1198
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/x.js
1185
- var __iconNode25 = [
1199
+ var __iconNode26 = [
1186
1200
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
1187
1201
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
1188
1202
  ];
1189
- var X = createLucideIcon("x", __iconNode25);
1203
+ var X = createLucideIcon("x", __iconNode26);
1190
1204
  // src/components/AgentCursor.tsx
1191
1205
  import { useContext as useContext3, useEffect as useEffect7, useLayoutEffect, useRef as useRef2, useState as useState7 } from "react";
1192
1206
 
@@ -3703,20 +3717,114 @@ function usePhaseUpdates() {
3703
3717
  return { phases };
3704
3718
  }
3705
3719
 
3720
+ // src/hooks/useSessionHold.ts
3721
+ import { useLocalParticipant as useLocalParticipant6 } from "@livekit/components-react/hooks";
3722
+ import { useCallback as useCallback11, useEffect as useEffect17, useState as useState11 } from "react";
3723
+ var textEncoder4 = new TextEncoder;
3724
+ var FALLBACK_PAUSE_TIMEOUT_SECONDS = 120;
3725
+ function useSessionHold({
3726
+ pauseSession,
3727
+ pauseTimeoutSeconds
3728
+ }) {
3729
+ const { localParticipant } = useLocalParticipant6();
3730
+ const timeoutSeconds = pauseTimeoutSeconds ?? FALLBACK_PAUSE_TIMEOUT_SECONDS;
3731
+ const [isHeld, setIsHeld] = useState11(false);
3732
+ const [countdown, setCountdown] = useState11(timeoutSeconds);
3733
+ const publish = useCallback11(async (type) => {
3734
+ await localParticipant.publishData(textEncoder4.encode(JSON.stringify({ type })), {
3735
+ reliable: true,
3736
+ topic: SESSION_HOLD_TOPIC
3737
+ });
3738
+ }, [localParticipant]);
3739
+ const hold = useCallback11(async () => {
3740
+ try {
3741
+ await localParticipant.setMicrophoneEnabled(false);
3742
+ await publish("pause");
3743
+ setIsHeld(true);
3744
+ } catch (error) {
3745
+ console.error("Failed to hold session:", error);
3746
+ }
3747
+ }, [localParticipant, publish]);
3748
+ const release = useCallback11(async () => {
3749
+ try {
3750
+ await localParticipant.setMicrophoneEnabled(true);
3751
+ await publish("resume");
3752
+ setIsHeld(false);
3753
+ } catch (error) {
3754
+ console.error("Failed to release session:", error);
3755
+ }
3756
+ }, [localParticipant, publish]);
3757
+ useEffect17(() => {
3758
+ if (!isHeld) {
3759
+ setCountdown(timeoutSeconds);
3760
+ return;
3761
+ }
3762
+ const id = setInterval(() => {
3763
+ setCountdown((seconds) => Math.max(0, seconds - 1));
3764
+ }, 1000);
3765
+ return () => clearInterval(id);
3766
+ }, [isHeld, timeoutSeconds]);
3767
+ useEffect17(() => {
3768
+ if (isHeld && countdown === 0) {
3769
+ setIsHeld(false);
3770
+ pauseSession();
3771
+ }
3772
+ }, [isHeld, countdown, pauseSession]);
3773
+ const toggle = useCallback11(() => {
3774
+ if (isHeld) {
3775
+ release();
3776
+ } else {
3777
+ hold();
3778
+ }
3779
+ }, [isHeld, hold, release]);
3780
+ return { isHeld, countdown, toggle };
3781
+ }
3782
+
3783
+ // src/components/PausedCountdown.tsx
3784
+ import { jsxs as jsxs5 } from "react/jsx-runtime";
3785
+ function PausedCountdown({ secondsRemaining }) {
3786
+ const minutes = Math.floor(secondsRemaining / 60);
3787
+ const seconds = String(secondsRemaining % 60).padStart(2, "0");
3788
+ return /* @__PURE__ */ jsxs5("span", {
3789
+ role: "timer",
3790
+ "aria-label": `Agent closes in ${secondsRemaining} seconds`,
3791
+ className: "skippr:flex skippr:h-12 skippr:items-center skippr:whitespace-nowrap skippr:px-1 skippr:text-[13px] skippr:font-medium skippr:text-neutral-500 skippr:[animation:skippr-stage-fade_240ms_ease-out]",
3792
+ children: [
3793
+ "Agent closes in",
3794
+ /* @__PURE__ */ jsxs5("span", {
3795
+ className: "skippr:ml-1 skippr:font-semibold skippr:tabular-nums skippr:text-bubble",
3796
+ children: [
3797
+ minutes,
3798
+ ":",
3799
+ seconds
3800
+ ]
3801
+ })
3802
+ ]
3803
+ });
3804
+ }
3805
+
3706
3806
  // src/components/SessionControlBar.tsx
3707
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
3807
+ import { jsx as jsx5, jsxs as jsxs6, Fragment } from "react/jsx-runtime";
3708
3808
  var STANDBY_BAR_WIDTH = 168;
3709
- var READY_BAR_WIDTH = 176;
3809
+ var READY_BAR_WIDTH = 268;
3810
+ var PAUSED_BAR_WIDTH = 220;
3710
3811
  var TEXT_BAR_WIDTH = 64;
3711
3812
  var SCREEN_SHARE_EXTRA_WIDTH = 56;
3712
3813
  var ACTION_CONTROL_EXTRA_WIDTH = 56;
3713
- var MIC_REGION_WIDTH = 104;
3814
+ var MIC_REGION_WIDTH = 140;
3714
3815
  var MIC_SQUARE_WIDTH = 48;
3715
- var SQUARE_BUTTON = "skippr:flex skippr:size-12 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-2xl skippr:cursor-pointer skippr:transition-colors";
3816
+ var AGENT_ACTIVITY_WIDTH = 84;
3817
+ var SQUARE_BUTTON = "skippr:flex skippr:size-12 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-[12px] skippr:cursor-pointer skippr:transition-colors";
3716
3818
  var AGENT_BARS = 4;
3717
3819
  var AGENT_BAR_IDLE_HEIGHT_PX = 4;
3718
3820
  var AGENT_BAR_MAX_GROWTH_PX = 12;
3719
3821
  var AGENT_NOISE_GATE = 0;
3822
+ var AGENT_STATE_LABELS = {
3823
+ idle: "Idle",
3824
+ listening: "Listening",
3825
+ thinking: "Thinking",
3826
+ speaking: "Talking"
3827
+ };
3720
3828
  function AgentActivity({
3721
3829
  state,
3722
3830
  isActing,
@@ -3728,68 +3836,72 @@ function AgentActivity({
3728
3836
  maxGrowthPx: AGENT_BAR_MAX_GROWTH_PX,
3729
3837
  noiseGate: AGENT_NOISE_GATE
3730
3838
  });
3731
- if (isActing) {
3732
- return /* @__PURE__ */ jsx5("span", {
3733
- role: "status",
3734
- className: "skippr:flex skippr:h-5 skippr:w-12 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:text-bubble",
3735
- "aria-label": "Agent is acting",
3736
- children: /* @__PURE__ */ jsx5(MousePointerClick, {
3737
- strokeWidth: 2,
3738
- className: "skippr:size-5 skippr:[animation:skippr-finger-tap_1.1s_ease-in-out_infinite]"
3739
- })
3740
- });
3741
- }
3742
- return /* @__PURE__ */ jsxs5("span", {
3839
+ const label = isActing ? "Working" : AGENT_STATE_LABELS[state] ?? "";
3840
+ return /* @__PURE__ */ jsxs6("span", {
3743
3841
  role: "status",
3744
- className: "skippr:flex skippr:h-5 skippr:w-12 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:text-bubble",
3745
- "aria-label": `Agent is ${state}`,
3842
+ className: "skippr:flex skippr:items-center skippr:gap-1.5 skippr:text-bubble",
3843
+ "aria-label": isActing ? "Agent is acting" : `Agent is ${state}`,
3746
3844
  children: [
3747
- state === "speaking" && /* @__PURE__ */ jsx5("span", {
3748
- className: "skippr:flex skippr:h-5 skippr:items-center skippr:gap-[2px]",
3749
- children: Array.from({ length: AGENT_BARS }).map((_, index2) => /* @__PURE__ */ jsx5("span", {
3750
- ref: (el) => {
3751
- barRefs.current[index2] = el;
3752
- },
3753
- className: "skippr:w-[2px] skippr:rounded-full skippr:bg-current skippr:transition-[height] skippr:duration-75",
3754
- style: { height: AGENT_BAR_IDLE_HEIGHT_PX }
3755
- }, index2))
3756
- }),
3757
- state === "thinking" && /* @__PURE__ */ jsxs5("span", {
3758
- className: "skippr:flex skippr:items-center skippr:gap-[3px]",
3759
- children: [
3760
- /* @__PURE__ */ jsx5("span", {
3761
- className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:0ms]"
3762
- }),
3763
- /* @__PURE__ */ jsx5("span", {
3764
- className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:150ms]"
3765
- }),
3766
- /* @__PURE__ */ jsx5("span", {
3767
- className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:300ms]"
3768
- })
3769
- ]
3845
+ /* @__PURE__ */ jsx5("span", {
3846
+ className: "skippr:flex skippr:size-5 skippr:shrink-0 skippr:items-center skippr:justify-center",
3847
+ children: isActing ? /* @__PURE__ */ jsx5(MousePointerClick, {
3848
+ strokeWidth: 2,
3849
+ className: "skippr:size-5 skippr:[animation:skippr-finger-tap_1.1s_ease-in-out_infinite]"
3850
+ }) : /* @__PURE__ */ jsxs6(Fragment, {
3851
+ children: [
3852
+ state === "speaking" && /* @__PURE__ */ jsx5("span", {
3853
+ className: "skippr:flex skippr:h-5 skippr:items-center skippr:gap-[2px]",
3854
+ children: Array.from({ length: AGENT_BARS }).map((_, index2) => /* @__PURE__ */ jsx5("span", {
3855
+ ref: (el) => {
3856
+ barRefs.current[index2] = el;
3857
+ },
3858
+ className: "skippr:w-[2px] skippr:rounded-full skippr:bg-current skippr:transition-[height] skippr:duration-75",
3859
+ style: { height: AGENT_BAR_IDLE_HEIGHT_PX }
3860
+ }, index2))
3861
+ }),
3862
+ state === "thinking" && /* @__PURE__ */ jsxs6("span", {
3863
+ className: "skippr:flex skippr:items-center skippr:gap-[3px]",
3864
+ children: [
3865
+ /* @__PURE__ */ jsx5("span", {
3866
+ className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:0ms]"
3867
+ }),
3868
+ /* @__PURE__ */ jsx5("span", {
3869
+ className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:150ms]"
3870
+ }),
3871
+ /* @__PURE__ */ jsx5("span", {
3872
+ className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:300ms]"
3873
+ })
3874
+ ]
3875
+ }),
3876
+ state === "listening" && /* @__PURE__ */ jsxs6("svg", {
3877
+ viewBox: "0 0 24 24",
3878
+ className: "skippr:size-5",
3879
+ fill: "none",
3880
+ stroke: "currentColor",
3881
+ strokeWidth: "2",
3882
+ strokeLinecap: "round",
3883
+ strokeLinejoin: "round",
3884
+ "aria-hidden": "true",
3885
+ children: [
3886
+ /* @__PURE__ */ jsx5("path", {
3887
+ d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"
3888
+ }),
3889
+ /* @__PURE__ */ jsx5("circle", {
3890
+ cx: "12",
3891
+ cy: "12",
3892
+ r: "2.5",
3893
+ fill: "currentColor",
3894
+ stroke: "none",
3895
+ className: "skippr:origin-center skippr:[animation:skippr-banner-look_2.4s_ease-in-out_infinite]"
3896
+ })
3897
+ ]
3898
+ })
3899
+ ]
3900
+ })
3770
3901
  }),
3771
- state === "listening" && /* @__PURE__ */ jsxs5("svg", {
3772
- viewBox: "0 0 24 24",
3773
- className: "skippr:size-5",
3774
- fill: "none",
3775
- stroke: "currentColor",
3776
- strokeWidth: "2",
3777
- strokeLinecap: "round",
3778
- strokeLinejoin: "round",
3779
- "aria-hidden": "true",
3780
- children: [
3781
- /* @__PURE__ */ jsx5("path", {
3782
- d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"
3783
- }),
3784
- /* @__PURE__ */ jsx5("circle", {
3785
- cx: "12",
3786
- cy: "12",
3787
- r: "2.5",
3788
- fill: "currentColor",
3789
- stroke: "none",
3790
- className: "skippr:origin-center skippr:[animation:skippr-banner-look_2.4s_ease-in-out_infinite]"
3791
- })
3792
- ]
3902
+ /* @__PURE__ */ jsx5("span", {
3903
+ className: "skippr:text-[11px] skippr:font-medium skippr:capitalize",
3904
+ children: label
3793
3905
  })
3794
3906
  ]
3795
3907
  });
@@ -3811,7 +3923,15 @@ function SessionControlBar() {
3811
3923
  if (!internalCtx) {
3812
3924
  throw new Error("SessionControlBar must be used within a <LiveAgent> provider");
3813
3925
  }
3814
- const { textMode, launcherBottomPx, popsDown, controlBarRef, commitLauncherDrop, panelRef } = internalCtx;
3926
+ const {
3927
+ textMode,
3928
+ launcherBottomPx,
3929
+ popsDown,
3930
+ controlBarRef,
3931
+ commitLauncherDrop,
3932
+ panelRef,
3933
+ pauseTimeoutSeconds
3934
+ } = internalCtx;
3815
3935
  const followsPanel = variant === "floating" && isPanelOpen;
3816
3936
  const panelFollowers = followsPanel ? [panelRef] : null;
3817
3937
  const { wasDraggedRef } = useLauncherDrag(controlBarRef, commitLauncherDrop, panelFollowers);
@@ -3819,16 +3939,29 @@ function SessionControlBar() {
3819
3939
  const { state, mediaStreamTrack: agentMediaStreamTrack } = useAgentVoiceState();
3820
3940
  const { phases } = usePhaseUpdates();
3821
3941
  const { actionsActive, actionsPaused: actionsPaused2, togglePaused } = useActionControl();
3942
+ const {
3943
+ isHeld,
3944
+ countdown,
3945
+ toggle: togglePause
3946
+ } = useSessionHold({
3947
+ pauseSession,
3948
+ pauseTimeoutSeconds
3949
+ });
3822
3950
  const isReady = state === "listening" || state === "thinking" || state === "speaking";
3823
- const { barRefs, isTalking } = useMicLevel(isReady && !isMuted && !textMode);
3951
+ const { barRefs, isTalking } = useMicLevel(isReady && !isMuted && !textMode && !isHeld);
3824
3952
  const showScreenShareToggle = captureMode === "screenshare";
3825
3953
  const showActionControl = captureMode === "auto" && actionsActive;
3826
3954
  const screenShareExtra = showScreenShareToggle ? SCREEN_SHARE_EXTRA_WIDTH : 0;
3827
3955
  const actionControlExtra = showActionControl ? ACTION_CONTROL_EXTRA_WIDTH : 0;
3828
3956
  let barWidth = STANDBY_BAR_WIDTH;
3829
3957
  if (isReady) {
3830
- const base = textMode ? TEXT_BAR_WIDTH : READY_BAR_WIDTH;
3831
- barWidth = base + screenShareExtra + actionControlExtra;
3958
+ if (textMode) {
3959
+ barWidth = TEXT_BAR_WIDTH;
3960
+ } else if (isHeld) {
3961
+ barWidth = PAUSED_BAR_WIDTH;
3962
+ } else {
3963
+ barWidth = READY_BAR_WIDTH + screenShareExtra + actionControlExtra;
3964
+ }
3832
3965
  }
3833
3966
  const agendaModule = activeModule && activeModule.mode !== AGENT_MODE.AlwaysOn && activeModule.totalPhases > 0 ? activeModule : null;
3834
3967
  const agendaProgress = phases.length > 0 ? {
@@ -3856,13 +3989,13 @@ function SessionControlBar() {
3856
3989
  return;
3857
3990
  action();
3858
3991
  };
3859
- return /* @__PURE__ */ jsxs5("div", {
3992
+ return /* @__PURE__ */ jsxs6("div", {
3860
3993
  ref: controlBarRef,
3861
3994
  style: { bottom: launcherBottomPx },
3862
3995
  className: cn("skippr:fixed skippr:z-[9999] skippr:touch-none skippr:cursor-grab", position === "right" ? "skippr:right-3" : "skippr:left-3"),
3863
3996
  children: [
3864
3997
  !isPanelOpen && agendaModule && agendaProgress && /* @__PURE__ */ jsx5("div", {
3865
- className: cn("skippr:absolute", popsDown ? "skippr:top-full skippr:mt-3" : "skippr:bottom-full skippr:mb-3", position === "right" ? "skippr:right-0" : "skippr:left-0"),
3998
+ className: cn("skippr:absolute", popsDown ? "skippr:top-full skippr:mt-3" : "skippr:bottom-full skippr:mb-3", isReady ? position === "right" ? "skippr:right-7" : "skippr:left-7" : position === "right" ? "skippr:right-0" : "skippr:left-0"),
3866
3999
  children: /* @__PURE__ */ jsx5(ModulePill, {
3867
4000
  module: agendaModule,
3868
4001
  onSelect: ifNotDragged(openAgenda),
@@ -3871,14 +4004,14 @@ function SessionControlBar() {
3871
4004
  isLive: true
3872
4005
  })
3873
4006
  }),
3874
- /* @__PURE__ */ jsxs5("div", {
4007
+ /* @__PURE__ */ jsxs6("div", {
3875
4008
  style: { width: barWidth },
3876
- className: cn("skippr:group skippr:relative skippr:flex skippr:h-16 skippr:items-center skippr:justify-center skippr:gap-2", "skippr:rounded-[20px] skippr:bg-white skippr:p-2", "skippr:shadow-[0_10px_32px_rgba(0,0,0,0.18)] skippr:ring-1 skippr:ring-black/5", "skippr:transition-[width] skippr:duration-300 skippr:ease-out", "skippr:[animation:skippr-toolset-pop_440ms_cubic-bezier(0.22,1,0.36,1)]"),
4009
+ className: cn("skippr:group skippr:relative skippr:flex skippr:h-16 skippr:items-center skippr:justify-center skippr:gap-2", "skippr:rounded-[20px] skippr:bg-white skippr:p-2", "skippr:shadow-[0_10px_32px_rgba(0,0,0,0.18)] skippr:ring-1 skippr:ring-black/5", "skippr:transition-[width,margin] skippr:duration-300 skippr:ease-out", "skippr:[animation:skippr-toolset-pop_440ms_cubic-bezier(0.22,1,0.36,1)]", isReady && (position === "right" ? "skippr:mr-7" : "skippr:ml-7")),
3877
4010
  children: [
3878
- !isReady && /* @__PURE__ */ jsxs5("span", {
4011
+ !isReady && /* @__PURE__ */ jsxs6("span", {
3879
4012
  className: "skippr:flex skippr:h-12 skippr:items-center skippr:justify-center skippr:gap-2 skippr:text-[13px] skippr:font-medium skippr:text-bubble skippr:[animation:skippr-stage-fade_240ms_ease-out]",
3880
4013
  children: [
3881
- /* @__PURE__ */ jsxs5("span", {
4014
+ /* @__PURE__ */ jsxs6("span", {
3882
4015
  className: "skippr:flex skippr:items-center skippr:gap-[3px]",
3883
4016
  children: [
3884
4017
  /* @__PURE__ */ jsx5("span", {
@@ -3897,135 +4030,159 @@ function SessionControlBar() {
3897
4030
  })
3898
4031
  ]
3899
4032
  }),
3900
- isReady && /* @__PURE__ */ jsxs5("div", {
3901
- className: "skippr:flex skippr:items-center skippr:gap-2 skippr:[animation:skippr-stage-fade_240ms_ease-out]",
4033
+ isReady && /* @__PURE__ */ jsxs6("div", {
4034
+ className: cn("skippr:flex skippr:items-center skippr:gap-2 skippr:[animation:skippr-stage-fade_240ms_ease-out]", isHeld && "skippr:w-full skippr:justify-start"),
3902
4035
  children: [
3903
- !textMode && /* @__PURE__ */ jsxs5("div", {
3904
- className: "skippr:relative skippr:h-12",
3905
- style: { width: MIC_REGION_WIDTH },
3906
- children: [
3907
- !isTalking && /* @__PURE__ */ jsx5("span", {
3908
- className: "skippr:absolute skippr:inset-y-0 skippr:right-[-3px] skippr:flex skippr:w-14 skippr:items-center skippr:justify-center skippr:[animation:skippr-agent-in_200ms_ease-out_240ms_both]",
3909
- children: /* @__PURE__ */ jsx5(AgentActivity, {
3910
- state,
3911
- isActing: showActionControl && !actionsPaused2,
3912
- mediaStreamTrack: agentMediaStreamTrack
3913
- })
3914
- }),
3915
- /* @__PURE__ */ jsxs5("button", {
3916
- type: "button",
3917
- onClick: ifNotDragged(() => void toggleMute()),
3918
- "aria-label": isMuted ? "Unmute" : "Mute",
3919
- className: "skippr:group skippr:absolute skippr:top-0 skippr:left-0 skippr:z-10 skippr:flex skippr:h-12 skippr:items-center skippr:gap-2.5 skippr:overflow-hidden skippr:rounded-2xl skippr:bg-bubble skippr:pl-3.5 skippr:text-white skippr:cursor-pointer skippr:transition-[width] skippr:duration-300 skippr:ease-out",
3920
- style: { width: isTalking ? MIC_REGION_WIDTH : MIC_SQUARE_WIDTH },
3921
- children: [
3922
- /* @__PURE__ */ jsx5("span", {
3923
- className: cn("skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center skippr:transition-colors", isMuted ? "skippr:text-red-400 skippr:group-hover:text-red-300" : "skippr:text-white skippr:group-hover:text-white/80"),
3924
- children: isMuted ? /* @__PURE__ */ jsx5(MicOff, {
3925
- className: "skippr:size-5"
3926
- }) : /* @__PURE__ */ jsx5(Mic, {
3927
- className: "skippr:size-5"
3928
- })
3929
- }),
3930
- /* @__PURE__ */ jsx5("span", {
3931
- className: cn("skippr:flex skippr:h-6 skippr:flex-1 skippr:items-center skippr:justify-center skippr:gap-[3px] skippr:transition-opacity skippr:duration-200", isTalking ? "skippr:opacity-100" : "skippr:opacity-0"),
3932
- children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */ jsx5("span", {
3933
- ref: (el) => {
3934
- barRefs.current[index2] = el;
3935
- },
3936
- className: "skippr:w-[3px] skippr:rounded-full skippr:bg-white skippr:transition-[height] skippr:duration-75",
3937
- style: { height: 5 }
3938
- }, index2))
3939
- })
3940
- ]
3941
- })
3942
- ]
3943
- }),
3944
- showScreenShareToggle && /* @__PURE__ */ jsx5("button", {
3945
- type: "button",
3946
- onClick: ifNotDragged(() => void toggleScreenShare()),
3947
- "aria-label": isScreenSharing ? "Stop sharing screen" : "Share screen",
3948
- className: cn(SQUARE_BUTTON, isScreenSharing ? "skippr:bg-bubble skippr:text-white skippr:hover:bg-[#3a384b]" : "skippr:bg-neutral-100 skippr:text-neutral-700 skippr:hover:bg-neutral-200"),
3949
- children: isScreenSharing ? /* @__PURE__ */ jsx5(MonitorOff, {
3950
- className: "skippr:size-5"
3951
- }) : /* @__PURE__ */ jsx5(Monitor, {
3952
- className: "skippr:size-5"
3953
- })
3954
- }),
3955
- /* @__PURE__ */ jsx5("button", {
4036
+ !textMode && /* @__PURE__ */ jsx5("button", {
3956
4037
  type: "button",
3957
- onClick: ifNotDragged(togglePanel),
3958
- "aria-label": isPanelOpen ? "Close panel" : agendaModule && !textMode ? "Open agenda" : "Open chat",
3959
- className: cn(SQUARE_BUTTON, "skippr:text-neutral-700", textMode ? "skippr:hover:bg-neutral-100" : "skippr:bg-neutral-100 skippr:hover:bg-neutral-200"),
3960
- children: /* @__PURE__ */ jsx5(MessageSquare, {
3961
- className: "skippr:size-5"
3962
- })
3963
- }),
3964
- showActionControl && /* @__PURE__ */ jsx5("button", {
3965
- type: "button",
3966
- onClick: ifNotDragged(() => void togglePaused()),
3967
- "aria-label": actionsPaused2 ? "Resume actions" : "Stop actions",
3968
- title: actionsPaused2 ? "Resume" : "Stop",
3969
- className: cn(SQUARE_BUTTON, actionsPaused2 ? "skippr:bg-green-100 skippr:text-green-700 skippr:hover:bg-green-200" : "skippr:bg-red-100 skippr:text-red-600 skippr:hover:bg-red-200"),
3970
- children: actionsPaused2 ? /* @__PURE__ */ jsx5(Play, {
4038
+ onClick: ifNotDragged(togglePause),
4039
+ "aria-label": isHeld ? "Resume" : "Pause",
4040
+ title: isHeld ? "Resume" : "Pause",
4041
+ className: cn(SQUARE_BUTTON, isHeld ? "skippr:bg-bubble skippr:text-white skippr:hover:bg-[#3a384b]" : "skippr:bg-neutral-100 skippr:text-neutral-700 skippr:hover:bg-neutral-200"),
4042
+ children: isHeld ? /* @__PURE__ */ jsx5(Play, {
3971
4043
  className: "skippr:size-5",
3972
4044
  fill: "currentColor"
3973
- }) : /* @__PURE__ */ jsx5(Square, {
4045
+ }) : /* @__PURE__ */ jsx5(Pause, {
3974
4046
  className: "skippr:size-5",
3975
4047
  fill: "currentColor"
3976
4048
  })
3977
- })
3978
- ]
3979
- }, textMode ? "ready-text" : "ready"),
3980
- isReady && /* @__PURE__ */ jsxs5("button", {
3981
- type: "button",
3982
- onClick: ifNotDragged(() => void pauseSession()),
3983
- disabled: isPausing,
3984
- "aria-label": "Pause session",
3985
- "aria-busy": isPausing,
3986
- className: cn("skippr:absolute skippr:-top-2 skippr:-right-2 skippr:z-20 skippr:flex skippr:size-6 skippr:items-center skippr:justify-center", "skippr:rounded-full skippr:bg-bubble skippr:text-white", "skippr:shadow-[0_4px_14px_rgba(0,0,0,0.3)]", "skippr:transition-opacity skippr:duration-150", isPausing ? "skippr:cursor-default" : "skippr:cursor-pointer skippr:hover:bg-[#3a384b]"),
3987
- children: [
3988
- /* @__PURE__ */ jsx5(X, {
3989
- className: cn("skippr:size-3.5 skippr:transition-opacity skippr:duration-200", isPausing && "skippr:opacity-40"),
3990
- strokeWidth: 2.5
3991
4049
  }),
3992
- isPausing && /* @__PURE__ */ jsxs5("svg", {
3993
- viewBox: "0 0 24 24",
3994
- fill: "none",
3995
- "aria-hidden": "true",
3996
- className: "skippr:absolute skippr:inset-0 skippr:size-full skippr:animate-spin skippr:motion-reduce:hidden",
4050
+ isHeld ? /* @__PURE__ */ jsx5(PausedCountdown, {
4051
+ secondsRemaining: countdown
4052
+ }) : /* @__PURE__ */ jsxs6(Fragment, {
3997
4053
  children: [
3998
- /* @__PURE__ */ jsx5("circle", {
3999
- cx: "12",
4000
- cy: "12",
4001
- r: "10.5",
4002
- stroke: "white",
4003
- strokeOpacity: "0.2",
4004
- strokeWidth: "1.5"
4054
+ !textMode && /* @__PURE__ */ jsxs6("div", {
4055
+ className: "skippr:relative skippr:h-12",
4056
+ style: { width: MIC_REGION_WIDTH },
4057
+ children: [
4058
+ !isTalking && /* @__PURE__ */ jsx5("span", {
4059
+ className: "skippr:absolute skippr:inset-y-0 skippr:right-0 skippr:flex skippr:items-center skippr:justify-center skippr:[animation:skippr-agent-in_200ms_ease-out_240ms_both]",
4060
+ style: { width: AGENT_ACTIVITY_WIDTH },
4061
+ children: /* @__PURE__ */ jsx5(AgentActivity, {
4062
+ state,
4063
+ isActing: showActionControl && !actionsPaused2,
4064
+ mediaStreamTrack: agentMediaStreamTrack
4065
+ })
4066
+ }),
4067
+ /* @__PURE__ */ jsxs6("button", {
4068
+ type: "button",
4069
+ onClick: ifNotDragged(() => void toggleMute()),
4070
+ "aria-label": isMuted ? "Unmute" : "Mute",
4071
+ className: "skippr:group skippr:absolute skippr:top-0 skippr:left-0 skippr:z-10 skippr:flex skippr:h-12 skippr:items-center skippr:gap-2.5 skippr:overflow-hidden skippr:rounded-2xl skippr:bg-bubble skippr:pl-3.5 skippr:text-white skippr:cursor-pointer skippr:transition-[width] skippr:duration-300 skippr:ease-out",
4072
+ style: { width: isTalking ? MIC_REGION_WIDTH : MIC_SQUARE_WIDTH },
4073
+ children: [
4074
+ /* @__PURE__ */ jsx5("span", {
4075
+ className: cn("skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center skippr:transition-colors", isMuted ? "skippr:text-red-400 skippr:group-hover:text-red-300" : "skippr:text-white skippr:group-hover:text-white/80"),
4076
+ children: isMuted ? /* @__PURE__ */ jsx5(MicOff, {
4077
+ className: "skippr:size-5"
4078
+ }) : /* @__PURE__ */ jsx5(Mic, {
4079
+ className: "skippr:size-5"
4080
+ })
4081
+ }),
4082
+ /* @__PURE__ */ jsx5("span", {
4083
+ className: cn("skippr:flex skippr:h-6 skippr:flex-1 skippr:items-center skippr:justify-center skippr:gap-[3px] skippr:transition-opacity skippr:duration-200", isTalking ? "skippr:opacity-100" : "skippr:opacity-0"),
4084
+ children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */ jsx5("span", {
4085
+ ref: (el) => {
4086
+ barRefs.current[index2] = el;
4087
+ },
4088
+ className: "skippr:w-[3px] skippr:rounded-full skippr:bg-white skippr:transition-[height] skippr:duration-75",
4089
+ style: { height: 5 }
4090
+ }, index2))
4091
+ })
4092
+ ]
4093
+ })
4094
+ ]
4005
4095
  }),
4006
- /* @__PURE__ */ jsx5("circle", {
4007
- cx: "12",
4008
- cy: "12",
4009
- r: "10.5",
4010
- stroke: "white",
4011
- strokeWidth: "1.5",
4012
- strokeLinecap: "round",
4013
- strokeDasharray: "17 49"
4096
+ showScreenShareToggle && /* @__PURE__ */ jsx5("button", {
4097
+ type: "button",
4098
+ onClick: ifNotDragged(() => void toggleScreenShare()),
4099
+ "aria-label": isScreenSharing ? "Stop sharing screen" : "Share screen",
4100
+ className: cn(SQUARE_BUTTON, isScreenSharing ? "skippr:bg-bubble skippr:text-white skippr:hover:bg-[#3a384b]" : "skippr:bg-neutral-100 skippr:text-neutral-700 skippr:hover:bg-neutral-200"),
4101
+ children: isScreenSharing ? /* @__PURE__ */ jsx5(MonitorOff, {
4102
+ className: "skippr:size-5"
4103
+ }) : /* @__PURE__ */ jsx5(Monitor, {
4104
+ className: "skippr:size-5"
4105
+ })
4106
+ }),
4107
+ /* @__PURE__ */ jsx5("button", {
4108
+ type: "button",
4109
+ onClick: ifNotDragged(togglePanel),
4110
+ "aria-label": isPanelOpen ? "Close panel" : agendaModule && !textMode ? "Open agenda" : "Open chat",
4111
+ className: cn(SQUARE_BUTTON, "skippr:text-neutral-700", textMode ? "skippr:hover:bg-neutral-100" : "skippr:bg-neutral-100 skippr:hover:bg-neutral-200"),
4112
+ children: /* @__PURE__ */ jsx5(MessageSquare, {
4113
+ className: "skippr:size-5"
4114
+ })
4115
+ }),
4116
+ showActionControl && /* @__PURE__ */ jsx5("button", {
4117
+ type: "button",
4118
+ onClick: ifNotDragged(() => void togglePaused()),
4119
+ "aria-label": actionsPaused2 ? "Resume actions" : "Stop actions",
4120
+ title: actionsPaused2 ? "Resume" : "Stop",
4121
+ className: cn(SQUARE_BUTTON, actionsPaused2 ? "skippr:bg-green-100 skippr:text-green-700 skippr:hover:bg-green-200" : "skippr:bg-red-100 skippr:text-red-600 skippr:hover:bg-red-200"),
4122
+ children: actionsPaused2 ? /* @__PURE__ */ jsx5(Play, {
4123
+ className: "skippr:size-5",
4124
+ fill: "currentColor"
4125
+ }) : /* @__PURE__ */ jsx5(Square, {
4126
+ className: "skippr:size-5",
4127
+ fill: "currentColor"
4128
+ })
4014
4129
  })
4015
4130
  ]
4016
4131
  })
4017
4132
  ]
4018
- })
4133
+ }, textMode ? "ready-text" : "ready")
4019
4134
  ]
4135
+ }),
4136
+ isReady && /* @__PURE__ */ jsx5("button", {
4137
+ type: "button",
4138
+ onClick: ifNotDragged(() => void pauseSession()),
4139
+ disabled: isPausing,
4140
+ "aria-label": "End session",
4141
+ "aria-busy": isPausing,
4142
+ className: cn("skippr:absolute skippr:top-1/2 skippr:z-20 skippr:flex skippr:h-16 skippr:w-[50px] skippr:-translate-y-1/2 skippr:items-center", position === "right" ? "skippr:-right-8 skippr:justify-start skippr:pl-2.5" : "skippr:-left-8 skippr:justify-end skippr:pr-2.5", "skippr:rounded-[16px] skippr:bg-red-500 skippr:text-white", "skippr:shadow-[0_4px_14px_rgba(239,68,68,0.45)]", "skippr:transition-colors skippr:duration-150", isPausing ? "skippr:cursor-default" : "skippr:cursor-pointer skippr:hover:bg-red-600"),
4143
+ children: /* @__PURE__ */ jsxs6("span", {
4144
+ className: "skippr:relative skippr:flex skippr:size-5 skippr:items-center skippr:justify-center",
4145
+ children: [
4146
+ /* @__PURE__ */ jsx5(X, {
4147
+ className: cn("skippr:size-4 skippr:transition-opacity skippr:duration-200", isPausing && "skippr:opacity-40"),
4148
+ strokeWidth: 2.5
4149
+ }),
4150
+ isPausing && /* @__PURE__ */ jsxs6("svg", {
4151
+ viewBox: "0 0 24 24",
4152
+ fill: "none",
4153
+ "aria-hidden": "true",
4154
+ className: "skippr:absolute skippr:inset-0 skippr:size-full skippr:animate-spin skippr:motion-reduce:hidden",
4155
+ children: [
4156
+ /* @__PURE__ */ jsx5("circle", {
4157
+ cx: "12",
4158
+ cy: "12",
4159
+ r: "10.5",
4160
+ stroke: "white",
4161
+ strokeOpacity: "0.2",
4162
+ strokeWidth: "1.5"
4163
+ }),
4164
+ /* @__PURE__ */ jsx5("circle", {
4165
+ cx: "12",
4166
+ cy: "12",
4167
+ r: "10.5",
4168
+ stroke: "white",
4169
+ strokeWidth: "1.5",
4170
+ strokeLinecap: "round",
4171
+ strokeDasharray: "17 49"
4172
+ })
4173
+ ]
4174
+ })
4175
+ ]
4176
+ })
4020
4177
  })
4021
4178
  ]
4022
4179
  });
4023
4180
  }
4024
4181
 
4025
4182
  // src/components/ShadowHost.tsx
4026
- import { useLayoutEffect as useLayoutEffect2, useRef as useRef10, useState as useState11 } from "react";
4183
+ import { useLayoutEffect as useLayoutEffect2, useRef as useRef10, useState as useState12 } from "react";
4027
4184
  import { createPortal } from "react-dom";
4028
- import { jsx as jsx6, Fragment } from "react/jsx-runtime";
4185
+ import { jsx as jsx6, Fragment as Fragment2 } from "react/jsx-runtime";
4029
4186
  var PROPERTIES_STYLE_ID = "skippr-tw-properties";
4030
4187
  var PROPERTY_RULE = /@property\s+[^{]+\{[^}]*\}/g;
4031
4188
  function hoistTailwindProperties(css) {
@@ -4041,9 +4198,9 @@ function hoistTailwindProperties(css) {
4041
4198
  }
4042
4199
  function ShadowHost({ children }) {
4043
4200
  const hostRef = useRef10(null);
4044
- const [shadowRoot, setShadowRoot] = useState11(null);
4201
+ const [shadowRoot, setShadowRoot] = useState12(null);
4045
4202
  const css = `/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
4046
- @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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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-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}}}@layer theme{:root,:host{--skippr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--skippr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--skippr-color-red-50:oklch(97.1% .013 17.38);--skippr-color-red-100:oklch(93.6% .032 17.717);--skippr-color-red-200:oklch(88.5% .062 18.334);--skippr-color-red-300:oklch(80.8% .114 19.571);--skippr-color-red-400:oklch(70.4% .191 22.216);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-amber-50:oklch(98.7% .022 95.277);--skippr-color-amber-100:oklch(96.2% .059 95.617);--skippr-color-amber-400:oklch(82.8% .189 84.429);--skippr-color-amber-700:oklch(55.5% .163 48.998);--skippr-color-amber-950:oklch(27.9% .077 45.635);--skippr-color-green-100:oklch(96.2% .044 156.743);--skippr-color-green-200:oklch(92.5% .084 155.995);--skippr-color-green-700:oklch(52.7% .154 150.069);--skippr-color-emerald-400:oklch(76.5% .177 163.223);--skippr-color-emerald-500:oklch(69.6% .17 162.48);--skippr-color-neutral-100:oklch(97% 0 0);--skippr-color-neutral-200:oklch(92.2% 0 0);--skippr-color-neutral-700:oklch(37.1% 0 0);--skippr-color-black:#000;--skippr-color-white:#fff;--skippr-spacing:.25rem;--skippr-text-xs:.75rem;--skippr-text-xs--line-height:calc(1/.75);--skippr-text-sm:.875rem;--skippr-text-sm--line-height:calc(1.25/.875);--skippr-font-weight-medium:500;--skippr-font-weight-semibold:600;--skippr-leading-tight:1.25;--skippr-leading-snug:1.375;--skippr-leading-relaxed:1.625;--skippr-ease-out:cubic-bezier(0,0,.2,1);--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--skippr-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-blur-sm:8px;--skippr-default-transition-duration:.15s;--skippr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--skippr-default-font-family:var(--skippr-font-sans);--skippr-default-mono-font-family:var(--skippr-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(--skippr-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(--skippr-default-font-feature-settings,normal);font-variation-settings:var(--skippr-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(--skippr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--skippr-default-mono-font-feature-settings,normal);font-variation-settings:var(--skippr-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}}@layer components;@layer utilities{.skippr\\:pointer-events-none{pointer-events:none}.skippr\\:absolute{position:absolute}.skippr\\:fixed{position:fixed}.skippr\\:relative{position:relative}.skippr\\:sticky{position:sticky}.skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\\:inset-y-0{inset-block:calc(var(--skippr-spacing)*0)}.skippr\\:-top-2{top:calc(var(--skippr-spacing)*-2)}.skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\\:top-1\\/2{top:50%}.skippr\\:top-full{top:100%}.skippr\\:-right-2{right:calc(var(--skippr-spacing)*-2)}.skippr\\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\\:right-3{right:calc(var(--skippr-spacing)*3)}.skippr\\:right-5{right:calc(var(--skippr-spacing)*5)}.skippr\\:right-6{right:calc(var(--skippr-spacing)*6)}.skippr\\:right-\\[-3px\\]{right:-3px}.skippr\\:right-\\[24px\\]{right:24px}.skippr\\:-bottom-1{bottom:calc(var(--skippr-spacing)*-1)}.skippr\\:-bottom-9{bottom:calc(var(--skippr-spacing)*-9)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-full{bottom:100%}.skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\\:left-1\\/2{left:50%}.skippr\\:left-3{left:calc(var(--skippr-spacing)*3)}.skippr\\:left-5{left:calc(var(--skippr-spacing)*5)}.skippr\\:left-6{left:calc(var(--skippr-spacing)*6)}.skippr\\:left-\\[24px\\]{left:24px}.skippr\\:z-10{z-index:10}.skippr\\:z-20{z-index:20}.skippr\\:z-\\[9998\\]{z-index:9998}.skippr\\:z-\\[9999\\]{z-index:9999}.skippr\\:mx-auto{margin-inline:auto}.skippr\\:-mt-\\[5px\\]{margin-top:-5px}.skippr\\:mt-0\\.5{margin-top:calc(var(--skippr-spacing)*.5)}.skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\\:mt-1\\.5{margin-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:mt-3{margin-top:calc(var(--skippr-spacing)*3)}.skippr\\:mt-3\\.5{margin-top:calc(var(--skippr-spacing)*3.5)}.skippr\\:-mb-\\[5px\\]{margin-bottom:-5px}.skippr\\:mb-1\\.5{margin-bottom:calc(var(--skippr-spacing)*1.5)}.skippr\\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:mb-3{margin-bottom:calc(var(--skippr-spacing)*3)}.skippr\\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:ml-0\\.5{margin-left:calc(var(--skippr-spacing)*.5)}.skippr\\:flex{display:flex}.skippr\\:inline-flex{display:inline-flex}.skippr\\:size-1{width:calc(var(--skippr-spacing)*1);height:calc(var(--skippr-spacing)*1)}.skippr\\:size-1\\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}.skippr\\:size-2{width:calc(var(--skippr-spacing)*2);height:calc(var(--skippr-spacing)*2)}.skippr\\:size-2\\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}.skippr\\:size-3\\.5{width:calc(var(--skippr-spacing)*3.5);height:calc(var(--skippr-spacing)*3.5)}.skippr\\:size-4{width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}.skippr\\:size-5{width:calc(var(--skippr-spacing)*5);height:calc(var(--skippr-spacing)*5)}.skippr\\:size-6{width:calc(var(--skippr-spacing)*6);height:calc(var(--skippr-spacing)*6)}.skippr\\:size-7{width:calc(var(--skippr-spacing)*7);height:calc(var(--skippr-spacing)*7)}.skippr\\:size-8{width:calc(var(--skippr-spacing)*8);height:calc(var(--skippr-spacing)*8)}.skippr\\:size-9{width:calc(var(--skippr-spacing)*9);height:calc(var(--skippr-spacing)*9)}.skippr\\:size-10{width:calc(var(--skippr-spacing)*10);height:calc(var(--skippr-spacing)*10)}.skippr\\:size-12{width:calc(var(--skippr-spacing)*12);height:calc(var(--skippr-spacing)*12)}.skippr\\:size-\\[5px\\]{width:5px;height:5px}.skippr\\:size-\\[6px\\]{width:6px;height:6px}.skippr\\:size-full{width:100%;height:100%}.skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}.skippr\\:h-0\\.5{height:calc(var(--skippr-spacing)*.5)}.skippr\\:h-1{height:calc(var(--skippr-spacing)*1)}.skippr\\:h-1\\.5{height:calc(var(--skippr-spacing)*1.5)}.skippr\\:h-2{height:calc(var(--skippr-spacing)*2)}.skippr\\:h-3{height:calc(var(--skippr-spacing)*3)}.skippr\\:h-3\\.5{height:calc(var(--skippr-spacing)*3.5)}.skippr\\:h-5{height:calc(var(--skippr-spacing)*5)}.skippr\\:h-6{height:calc(var(--skippr-spacing)*6)}.skippr\\:h-7{height:calc(var(--skippr-spacing)*7)}.skippr\\:h-8{height:calc(var(--skippr-spacing)*8)}.skippr\\:h-9{height:calc(var(--skippr-spacing)*9)}.skippr\\:h-10{height:calc(var(--skippr-spacing)*10)}.skippr\\:h-12{height:calc(var(--skippr-spacing)*12)}.skippr\\:h-16{height:calc(var(--skippr-spacing)*16)}.skippr\\:h-\\[18\\.5px\\]{height:18.5px}.skippr\\:h-\\[50px\\]{height:50px}.skippr\\:h-full{height:100%}.skippr\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\\:w-3\\.5{width:calc(var(--skippr-spacing)*3.5)}.skippr\\:w-5{width:calc(var(--skippr-spacing)*5)}.skippr\\:w-6{width:calc(var(--skippr-spacing)*6)}.skippr\\:w-7{width:calc(var(--skippr-spacing)*7)}.skippr\\:w-10{width:calc(var(--skippr-spacing)*10)}.skippr\\:w-12{width:calc(var(--skippr-spacing)*12)}.skippr\\:w-14{width:calc(var(--skippr-spacing)*14)}.skippr\\:w-40{width:calc(var(--skippr-spacing)*40)}.skippr\\:w-\\[2px\\]{width:2px}.skippr\\:w-\\[3px\\]{width:3px}.skippr\\:w-\\[15\\.4px\\]{width:15.4px}.skippr\\:w-\\[50px\\]{width:50px}.skippr\\:w-full{width:100%}.skippr\\:max-w-64{max-width:calc(var(--skippr-spacing)*64)}.skippr\\:max-w-72{max-width:calc(var(--skippr-spacing)*72)}.skippr\\:max-w-\\[80\\%\\]{max-width:80%}.skippr\\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\\:flex-1{flex:1}.skippr\\:shrink-0{flex-shrink:0}.skippr\\:origin-bottom-left{transform-origin:0 100%}.skippr\\:origin-bottom-right{transform-origin:100% 100%}.skippr\\:origin-center{transform-origin:50%}.skippr\\:origin-left{transform-origin:0}.skippr\\:origin-right{transform-origin:100%}.skippr\\:origin-top-left{transform-origin:0 0}.skippr\\:origin-top-right{transform-origin:100% 0}.skippr\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-x-7{--tw-translate-x:calc(var(--skippr-spacing)*-7);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:translate-x-7{--tw-translate-x:calc(var(--skippr-spacing)*7);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:-rotate-90{rotate:-90deg}.skippr\\:rotate-45{rotate:45deg}.skippr\\:rotate-\\[225deg\\]{rotate:225deg}.skippr\\:\\[animation\\:skippr-agent-in_200ms_ease-out_240ms_both\\]{animation:.2s ease-out .24s both skippr-agent-in}.skippr\\:\\[animation\\:skippr-banner-look_2\\.4s_ease-in-out_infinite\\]{animation:2.4s ease-in-out infinite skippr-banner-look}.skippr\\:\\[animation\\:skippr-finger-tap_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-finger-tap}.skippr\\:\\[animation\\:skippr-orb-in_320ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{animation:.32s cubic-bezier(.34,1.3,.64,1) skippr-orb-in}.skippr\\:\\[animation\\:skippr-stage-fade_240ms_ease-out\\]{animation:.24s ease-out skippr-stage-fade}.skippr\\:\\[animation\\:skippr-tip-in_360ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)_backwards\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) backwards skippr-tip-in}.skippr\\:\\[animation\\:skippr-toolset-pop_440ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.44s cubic-bezier(.22,1,.36,1) skippr-toolset-pop}.skippr\\:animate-\\[skippr-banner-look_2\\.4s_ease-in-out_infinite\\]{animation:2.4s ease-in-out infinite skippr-banner-look}.skippr\\:animate-\\[skippr-bubble-in_0\\.28s_ease-out\\]{animation:.28s ease-out skippr-bubble-in}.skippr\\:animate-\\[skippr-fade-in_0\\.3s_ease-out\\]{animation:.3s ease-out skippr-fade-in}.skippr\\:animate-\\[skippr-pill-content_0\\.22s_ease-out\\]{animation:.22s ease-out skippr-pill-content}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.3s_infinite\\]{animation:1.1s ease-in-out .3s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.6s_infinite\\]{animation:1.1s ease-in-out .6s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.15s_infinite\\]{animation:1.1s ease-in-out .15s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.45s_infinite\\]{animation:1.1s ease-in-out .45s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-speak}.skippr\\:animate-bounce{animation:var(--skippr-animate-bounce)}.skippr\\:animate-ping{animation:var(--skippr-animate-ping)}.skippr\\:animate-pulse{animation:var(--skippr-animate-pulse)}.skippr\\:animate-skippr-annotation-pulse{animation:1.8s ease-in-out infinite skippr-annotation-pulse}.skippr\\:animate-skippr-click-ping{animation:.5s ease-out forwards skippr-click-ping}.skippr\\:animate-skippr-cursor-pop{animation:.22s ease-out skippr-cursor-pop}.skippr\\:animate-skippr-press{animation:.5s ease-in-out skippr-press}.skippr\\:animate-skippr-tab-fade{animation:.2s ease-out skippr-tab-fade}.skippr\\:animate-skippr-thinking-dot{animation:1.2s ease-in-out infinite skippr-thinking-dot}.skippr\\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\\:cursor-default{cursor:default}.skippr\\:cursor-grab{cursor:grab}.skippr\\:cursor-pointer{cursor:pointer}.skippr\\:touch-none{touch-action:none}.skippr\\:resize-none{resize:none}.skippr\\:flex-col{flex-direction:column}.skippr\\:flex-col-reverse{flex-direction:column-reverse}.skippr\\:items-center{align-items:center}.skippr\\:items-end{align-items:flex-end}.skippr\\:items-start{align-items:flex-start}.skippr\\:justify-between{justify-content:space-between}.skippr\\:justify-center{justify-content:center}.skippr\\:justify-end{justify-content:flex-end}.skippr\\:gap-1{gap:calc(var(--skippr-spacing)*1)}.skippr\\:gap-1\\.5{gap:calc(var(--skippr-spacing)*1.5)}.skippr\\:gap-2{gap:calc(var(--skippr-spacing)*2)}.skippr\\:gap-2\\.5{gap:calc(var(--skippr-spacing)*2.5)}.skippr\\:gap-3{gap:calc(var(--skippr-spacing)*3)}.skippr\\:gap-\\[2px\\]{gap:2px}.skippr\\:gap-\\[3px\\]{gap:3px}:where(.skippr\\:space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.skippr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skippr\\:overflow-hidden{overflow:hidden}.skippr\\:overflow-y-auto{overflow-y:auto}.skippr\\:rounded-2xl{border-radius:1.125rem}.skippr\\:rounded-\\[1rem\\]{border-radius:1rem}.skippr\\:rounded-\\[10px\\]{border-radius:10px}.skippr\\:rounded-\\[14px\\]{border-radius:14px}.skippr\\:rounded-\\[16px\\]{border-radius:16px}.skippr\\:rounded-\\[20px\\]{border-radius:20px}.skippr\\:rounded-full{border-radius:3.40282e38px}.skippr\\:rounded-lg{border-radius:.625rem}.skippr\\:rounded-md{border-radius:.5rem}.skippr\\:rounded-sm{border-radius:.375rem}.skippr\\:rounded-xl{border-radius:.875rem}.skippr\\:rounded-tl-md{border-top-left-radius:.5rem}.skippr\\:border{border-style:var(--tw-border-style);border-width:1px}.skippr\\:border-0{border-style:var(--tw-border-style);border-width:0}.skippr\\:border-2{border-style:var(--tw-border-style);border-width:2px}.skippr\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.skippr\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.skippr\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.skippr\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.skippr\\:border-\\[\\#2bc0ae\\]{border-color:#2bc0ae}.skippr\\:border-border,.skippr\\:border-input{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-primary\\/20{border-color:oklab(29.9244% .0107414 -.0305411/.2)}.skippr\\:border-r-border{border-right-color:oklch(92.3% .003 48.717)}.skippr\\:border-l-border{border-left-color:oklch(92.3% .003 48.717)}.skippr\\:bg-\\[\\#2bc0ae\\]{background-color:#2bc0ae}.skippr\\:bg-\\[\\#2bc0ae\\]\\/50{background-color:oklab(72.9347% -.121518 -.00545585/.5)}.skippr\\:bg-amber-50{background-color:var(--skippr-color-amber-50)}.skippr\\:bg-amber-400{background-color:var(--skippr-color-amber-400)}.skippr\\:bg-background{background-color:oklch(100% 0 0)}.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:color-mix(in oklab,var(--skippr-color-black)7.0%,transparent)}}.skippr\\:bg-bubble{background-color:#2d2b3d}.skippr\\:bg-bubble\\/95{background-color:oklab(29.9244% .0107414 -.0305411/.95)}.skippr\\:bg-card{background-color:oklch(100% 0 0)}.skippr\\:bg-current{background-color:currentColor}.skippr\\:bg-destructive{background-color:#d94f4f}.skippr\\:bg-emerald-400{background-color:var(--skippr-color-emerald-400)}.skippr\\:bg-emerald-500{background-color:var(--skippr-color-emerald-500)}.skippr\\:bg-foreground{background-color:oklch(14.7% .004 49.25)}.skippr\\:bg-green-100{background-color:var(--skippr-color-green-100)}.skippr\\:bg-launcher{background-color:#2d2d3f}.skippr\\:bg-muted{background-color:oklch(97% .001 106.424)}.skippr\\:bg-muted-foreground\\/20{background-color:oklab(55.3% .00687528 .0110332/.2)}.skippr\\:bg-muted-foreground\\/40{background-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:bg-muted\\/50{background-color:oklab(97% -.000282743 .000959196/.5)}.skippr\\:bg-neutral-100{background-color:var(--skippr-color-neutral-100)}.skippr\\:bg-primary{background-color:#2d2b3d}.skippr\\:bg-primary-foreground\\/20{background-color:oklab(100% 0 5.96046e-8/.2)}.skippr\\:bg-primary\\/10{background-color:oklab(29.9244% .0107414 -.0305411/.1)}.skippr\\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\\:bg-red-100{background-color:var(--skippr-color-red-100)}.skippr\\:bg-red-400{background-color:var(--skippr-color-red-400)}.skippr\\:bg-secondary{background-color:#ffdfb5}.skippr\\:bg-transparent{background-color:#0000}.skippr\\:bg-white{background-color:var(--skippr-color-white)}.skippr\\:fill-brand{fill:#2bc0ae}.skippr\\:fill-primary\\/30{fill:oklab(29.9244% .0107414 -.0305411/.3)}.skippr\\:stroke-black\\/15{stroke:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:stroke-black\\/15{stroke:color-mix(in oklab,var(--skippr-color-black)15%,transparent)}}.skippr\\:stroke-bubble{stroke:#2d2b3d}.skippr\\:p-2{padding:calc(var(--skippr-spacing)*2)}.skippr\\:p-3{padding:calc(var(--skippr-spacing)*3)}.skippr\\:p-3\\.5{padding:calc(var(--skippr-spacing)*3.5)}.skippr\\:p-4{padding:calc(var(--skippr-spacing)*4)}.skippr\\:px-1{padding-inline:calc(var(--skippr-spacing)*1)}.skippr\\:px-1\\.5{padding-inline:calc(var(--skippr-spacing)*1.5)}.skippr\\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\\:px-2\\.5{padding-inline:calc(var(--skippr-spacing)*2.5)}.skippr\\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\\:px-8{padding-inline:calc(var(--skippr-spacing)*8)}.skippr\\:py-0\\.5{padding-block:calc(var(--skippr-spacing)*.5)}.skippr\\:py-1{padding-block:calc(var(--skippr-spacing)*1)}.skippr\\:py-1\\.5{padding-block:calc(var(--skippr-spacing)*1.5)}.skippr\\:py-2{padding-block:calc(var(--skippr-spacing)*2)}.skippr\\:py-2\\.5{padding-block:calc(var(--skippr-spacing)*2.5)}.skippr\\:py-3{padding-block:calc(var(--skippr-spacing)*3)}.skippr\\:py-4{padding-block:calc(var(--skippr-spacing)*4)}.skippr\\:pt-1\\.5{padding-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:pt-2{padding-top:calc(var(--skippr-spacing)*2)}.skippr\\:pr-3{padding-right:calc(var(--skippr-spacing)*3)}.skippr\\:pb-0{padding-bottom:calc(var(--skippr-spacing)*0)}.skippr\\:pb-2{padding-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:pl-1\\.5{padding-left:calc(var(--skippr-spacing)*1.5)}.skippr\\:pl-3\\.5{padding-left:calc(var(--skippr-spacing)*3.5)}.skippr\\:text-center{text-align:center}.skippr\\:text-left{text-align:left}.skippr\\:font-mono{font-family:var(--skippr-font-mono)}.skippr\\:text-sm{font-size:var(--skippr-text-sm);line-height:var(--tw-leading,var(--skippr-text-sm--line-height))}.skippr\\:text-xs{font-size:var(--skippr-text-xs);line-height:var(--tw-leading,var(--skippr-text-xs--line-height))}.skippr\\:text-\\[10px\\]{font-size:10px}.skippr\\:text-\\[11px\\]{font-size:11px}.skippr\\:text-\\[13px\\]{font-size:13px}.skippr\\:leading-5{--tw-leading:calc(var(--skippr-spacing)*5);line-height:calc(var(--skippr-spacing)*5)}.skippr\\:leading-relaxed{--tw-leading:var(--skippr-leading-relaxed);line-height:var(--skippr-leading-relaxed)}.skippr\\:leading-snug{--tw-leading:var(--skippr-leading-snug);line-height:var(--skippr-leading-snug)}.skippr\\:leading-tight{--tw-leading:var(--skippr-leading-tight);line-height:var(--skippr-leading-tight)}.skippr\\:font-medium{--tw-font-weight:var(--skippr-font-weight-medium);font-weight:var(--skippr-font-weight-medium)}.skippr\\:font-semibold{--tw-font-weight:var(--skippr-font-weight-semibold);font-weight:var(--skippr-font-weight-semibold)}.skippr\\:whitespace-nowrap{white-space:nowrap}.skippr\\:text-\\[\\#2bc0ae\\]{color:#2bc0ae}.skippr\\:text-amber-700{color:var(--skippr-color-amber-700)}.skippr\\:text-amber-950{color:var(--skippr-color-amber-950)}.skippr\\:text-background{color:oklch(100% 0 0)}.skippr\\:text-black{color:var(--skippr-color-black)}.skippr\\:text-bubble{color:#2d2b3d}.skippr\\:text-chart-3{color:oklch(66.6% .179 58.318)}.skippr\\:text-destructive{color:#d94f4f}.skippr\\:text-foreground{color:oklch(14.7% .004 49.25)}.skippr\\:text-green-700{color:var(--skippr-color-green-700)}.skippr\\:text-muted-foreground{color:oklch(55.3% .013 58.071)}.skippr\\:text-muted-foreground\\/30{color:oklab(55.3% .00687528 .0110332/.3)}.skippr\\:text-muted-foreground\\/40{color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:text-muted-foreground\\/60{color:oklab(55.3% .00687528 .0110332/.6)}.skippr\\:text-muted-foreground\\/70{color:oklab(55.3% .00687528 .0110332/.7)}.skippr\\:text-neutral-700{color:var(--skippr-color-neutral-700)}.skippr\\:text-primary{color:#2d2b3d}.skippr\\:text-primary-foreground{color:#fff}.skippr\\:text-primary-foreground\\/70{color:oklab(100% 0 5.96046e-8/.7)}.skippr\\:text-red-400{color:var(--skippr-color-red-400)}.skippr\\:text-red-600{color:var(--skippr-color-red-600)}.skippr\\:text-red-700{color:var(--skippr-color-red-700)}.skippr\\:text-secondary-foreground{color:#613700}.skippr\\:text-white{color:var(--skippr-color-white)}.skippr\\:line-through{text-decoration-line:line-through}.skippr\\:placeholder-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}.skippr\\:opacity-0{opacity:0}.skippr\\:opacity-40{opacity:.4}.skippr\\:opacity-75{opacity:.75}.skippr\\:opacity-100{opacity:1}.skippr\\: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)}.skippr\\:shadow-\\[-6px_6px_22px_rgba\\(0\\,0\\,0\\,0\\.3\\)\\]{--tw-shadow:-6px 6px 22px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_4px_14px_rgba\\(0\\,0\\,0\\,0\\.3\\)\\]{--tw-shadow:0 4px 14px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_4px_16px_rgba\\(45\\,43\\,61\\,0\\.45\\)\\,0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:0 4px 16px var(--tw-shadow-color,#2d2b3d73),0 2px 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)}.skippr\\:shadow-\\[0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_8px_24px_rgba\\(45\\,43\\,61\\,0\\.35\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#2d2b3d59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_8px_30px_rgba\\(0\\,0\\,0\\,0\\.16\\)\\,0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#00000029),0 4px 12px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_10px_32px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 10px 32px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\: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)}.skippr\\: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)}.skippr\\:ring-1{--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)}.skippr\\:ring-2{--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)}.skippr\\:ring-black\\/5{--tw-ring-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--skippr-color-black)5%,transparent)}}.skippr\\:ring-brand{--tw-ring-color:#2bc0ae}.skippr\\:ring-foreground\\/10{--tw-ring-color:oklab(14.7% .00261104 .00303026/.1)}.skippr\\:ring-offset-background{--tw-ring-offset-color:oklch(100% 0 0)}.skippr\\:drop-shadow-\\[0_2px_5px_rgba\\(0\\,0\\,0\\,0\\.4\\)\\]{--tw-drop-shadow-size:drop-shadow(0 2px 5px var(--tw-drop-shadow-color,#0006));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.skippr\\:backdrop-blur-sm{--tw-backdrop-blur:blur(var(--skippr-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,)}.skippr\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[opacity\\,transform\\,height\\]{transition-property:opacity,transform,height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\: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(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:duration-75{--tw-duration:75ms;transition-duration:75ms}.skippr\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.skippr\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.skippr\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.skippr\\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\\:ease-out{--tw-ease:var(--skippr-ease-out);transition-timing-function:var(--skippr-ease-out)}.skippr\\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\\:select-none{-webkit-user-select:none;user-select:none}.skippr\\:\\[animation-delay\\:0ms\\]{animation-delay:0s}.skippr\\:\\[animation-delay\\:150ms\\]{animation-delay:.15s}.skippr\\:\\[animation-delay\\:200ms\\]{animation-delay:.2s}.skippr\\:\\[animation-delay\\:300ms\\]{animation-delay:.3s}.skippr\\:\\[animation-delay\\:400ms\\]{animation-delay:.4s}.skippr\\:\\[overflow-anchor\\:none\\]{overflow-anchor:none}.skippr\\:group-focus-within\\:scale-100:is(:where(.skippr\\:group):focus-within *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-focus-within\\:opacity-100:is(:where(.skippr\\:group):focus-within *){opacity:1}@media (hover:hover){.skippr\\:group-hover\\:scale-100:is(:where(.skippr\\:group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-hover\\:text-red-300:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-red-300)}.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:group-hover\\:opacity-100:is(:where(.skippr\\:group):hover *){opacity:1}}.skippr\\:placeholder\\:text-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}@media (hover:hover){.skippr\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--skippr-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:hover\\:bg-\\[\\#3a384b\\]:hover{background-color:#3a384b}.skippr\\:hover\\:bg-accent:hover{background-color:#e7e5e4}.skippr\\:hover\\:bg-amber-100:hover{background-color:var(--skippr-color-amber-100)}.skippr\\:hover\\:bg-bubble:hover{background-color:#2d2b3d}.skippr\\:hover\\:bg-destructive\\/90:hover{background-color:oklab(61.4357% .15892 .0698893/.9)}.skippr\\:hover\\:bg-green-200:hover{background-color:var(--skippr-color-green-200)}.skippr\\:hover\\:bg-muted\\/70:hover{background-color:oklab(97% -.000282743 .000959196/.7)}.skippr\\:hover\\:bg-neutral-100:hover{background-color:var(--skippr-color-neutral-100)}.skippr\\:hover\\:bg-neutral-200:hover{background-color:var(--skippr-color-neutral-200)}.skippr\\:hover\\:bg-primary-foreground\\/10:hover{background-color:oklab(100% 0 5.96046e-8/.1)}.skippr\\:hover\\:bg-primary\\/90:hover{background-color:oklab(29.9244% .0107414 -.0305411/.9)}.skippr\\:hover\\:bg-red-200:hover{background-color:var(--skippr-color-red-200)}.skippr\\:hover\\:bg-secondary\\/80:hover{background-color:oklab(91.9963% .0175391 .0626889/.8)}.skippr\\:hover\\:text-accent-foreground:hover{color:oklch(21.6% .006 56.043)}.skippr\\:hover\\:text-foreground:hover{color:oklch(14.7% .004 49.25)}.skippr\\:hover\\:text-primary-foreground:hover{color:#fff}.skippr\\:hover\\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}}.skippr\\: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)}.skippr\\:focus-visible\\:ring-bubble\\/60:focus-visible{--tw-ring-color:oklab(29.9244% .0107414 -.0305411/.6)}.skippr\\:focus-visible\\:ring-ring:focus-visible{--tw-ring-color:oklch(70.9% .01 56.259)}.skippr\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.skippr\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.skippr\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--skippr-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.skippr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.skippr\\:disabled\\:opacity-50:disabled{opacity:.5}.skippr\\:disabled\\:opacity-60:disabled{opacity:.6}@media (prefers-reduced-motion:reduce){.skippr\\:motion-reduce\\:hidden{display:none}.skippr\\:motion-reduce\\:animate-none{animation:none}}.skippr\\:\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.skippr\\:\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.skippr\\:\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}}@keyframes skippr-tap{0%{transform:scale(1)}45%{transform:scale(.7)}to{transform:scale(1)}}@keyframes skippr-press{0%{transform:scale(1)}55%{transform:scale(1)}85%{transform:scale(.68)}to{transform:scale(1)}}@keyframes skippr-cursor-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes skippr-click-ping{0%{opacity:.9;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(2.4)}}@keyframes skippr-tab-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-speak{0%,to{opacity:.6;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-thinking-dot{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes skippr-pulse-ring{0%,to{box-shadow:0 0 #2d2b3d66}50%{box-shadow:0 0 0 10px #2d2b3d00}}@keyframes skippr-annotation-pulse{0%,to{box-shadow:0 0 #2bc0ae80}50%{box-shadow:0 0 0 6px #2bc0ae00}}@keyframes skippr-speak-ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes skippr-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes skippr-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes skippr-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-wave{0%,to{opacity:.4;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-bubble-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-tip-in{0%{opacity:0;transform:translateY(14px)scale(.96)}60%{opacity:1;transform:translateY(-2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-pill-content{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes skippr-banner-look{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes skippr-finger-tap{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(2px)rotate(-6deg)}}@keyframes skippr-toolset-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes skippr-stage-fade{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes skippr-agent-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes skippr-orb-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.skippr-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.skippr-no-scrollbar::-webkit-scrollbar{display:none}:host{color:var(--color-foreground)}@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-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}@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-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-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}`;
4203
+ @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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight: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-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}}}@layer theme{:root,:host{--skippr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--skippr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--skippr-color-red-50:oklch(97.1% .013 17.38);--skippr-color-red-100:oklch(93.6% .032 17.717);--skippr-color-red-200:oklch(88.5% .062 18.334);--skippr-color-red-300:oklch(80.8% .114 19.571);--skippr-color-red-400:oklch(70.4% .191 22.216);--skippr-color-red-500:oklch(63.7% .237 25.331);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-amber-50:oklch(98.7% .022 95.277);--skippr-color-amber-100:oklch(96.2% .059 95.617);--skippr-color-amber-400:oklch(82.8% .189 84.429);--skippr-color-amber-700:oklch(55.5% .163 48.998);--skippr-color-amber-950:oklch(27.9% .077 45.635);--skippr-color-green-100:oklch(96.2% .044 156.743);--skippr-color-green-200:oklch(92.5% .084 155.995);--skippr-color-green-700:oklch(52.7% .154 150.069);--skippr-color-emerald-400:oklch(76.5% .177 163.223);--skippr-color-emerald-500:oklch(69.6% .17 162.48);--skippr-color-neutral-100:oklch(97% 0 0);--skippr-color-neutral-200:oklch(92.2% 0 0);--skippr-color-neutral-500:oklch(55.6% 0 0);--skippr-color-neutral-700:oklch(37.1% 0 0);--skippr-color-black:#000;--skippr-color-white:#fff;--skippr-spacing:.25rem;--skippr-text-xs:.75rem;--skippr-text-xs--line-height:calc(1/.75);--skippr-text-sm:.875rem;--skippr-text-sm--line-height:calc(1.25/.875);--skippr-font-weight-medium:500;--skippr-font-weight-semibold:600;--skippr-leading-tight:1.25;--skippr-leading-snug:1.375;--skippr-leading-relaxed:1.625;--skippr-ease-out:cubic-bezier(0,0,.2,1);--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--skippr-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-blur-sm:8px;--skippr-default-transition-duration:.15s;--skippr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--skippr-default-font-family:var(--skippr-font-sans);--skippr-default-mono-font-family:var(--skippr-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(--skippr-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(--skippr-default-font-feature-settings,normal);font-variation-settings:var(--skippr-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(--skippr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--skippr-default-mono-font-feature-settings,normal);font-variation-settings:var(--skippr-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}}@layer components;@layer utilities{.skippr\\:pointer-events-none{pointer-events:none}.skippr\\:absolute{position:absolute}.skippr\\:fixed{position:fixed}.skippr\\:relative{position:relative}.skippr\\:sticky{position:sticky}.skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\\:inset-y-0{inset-block:calc(var(--skippr-spacing)*0)}.skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\\:top-1\\/2{top:50%}.skippr\\:top-full{top:100%}.skippr\\:-right-8{right:calc(var(--skippr-spacing)*-8)}.skippr\\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\\:right-3{right:calc(var(--skippr-spacing)*3)}.skippr\\:right-5{right:calc(var(--skippr-spacing)*5)}.skippr\\:right-6{right:calc(var(--skippr-spacing)*6)}.skippr\\:right-7{right:calc(var(--skippr-spacing)*7)}.skippr\\:right-\\[24px\\]{right:24px}.skippr\\:-bottom-1{bottom:calc(var(--skippr-spacing)*-1)}.skippr\\:-bottom-9{bottom:calc(var(--skippr-spacing)*-9)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-full{bottom:100%}.skippr\\:-left-8{left:calc(var(--skippr-spacing)*-8)}.skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\\:left-1\\/2{left:50%}.skippr\\:left-3{left:calc(var(--skippr-spacing)*3)}.skippr\\:left-5{left:calc(var(--skippr-spacing)*5)}.skippr\\:left-6{left:calc(var(--skippr-spacing)*6)}.skippr\\:left-7{left:calc(var(--skippr-spacing)*7)}.skippr\\:left-\\[24px\\]{left:24px}.skippr\\:z-10{z-index:10}.skippr\\:z-20{z-index:20}.skippr\\:z-\\[9998\\]{z-index:9998}.skippr\\:z-\\[9999\\]{z-index:9999}.skippr\\:mx-auto{margin-inline:auto}.skippr\\:-mt-\\[5px\\]{margin-top:-5px}.skippr\\:mt-0\\.5{margin-top:calc(var(--skippr-spacing)*.5)}.skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\\:mt-1\\.5{margin-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:mt-3{margin-top:calc(var(--skippr-spacing)*3)}.skippr\\:mt-3\\.5{margin-top:calc(var(--skippr-spacing)*3.5)}.skippr\\:mr-7{margin-right:calc(var(--skippr-spacing)*7)}.skippr\\:-mb-\\[5px\\]{margin-bottom:-5px}.skippr\\:mb-1\\.5{margin-bottom:calc(var(--skippr-spacing)*1.5)}.skippr\\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:mb-3{margin-bottom:calc(var(--skippr-spacing)*3)}.skippr\\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:ml-0\\.5{margin-left:calc(var(--skippr-spacing)*.5)}.skippr\\:ml-1{margin-left:calc(var(--skippr-spacing)*1)}.skippr\\:ml-7{margin-left:calc(var(--skippr-spacing)*7)}.skippr\\:flex{display:flex}.skippr\\:inline-flex{display:inline-flex}.skippr\\:size-1{width:calc(var(--skippr-spacing)*1);height:calc(var(--skippr-spacing)*1)}.skippr\\:size-1\\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}.skippr\\:size-2{width:calc(var(--skippr-spacing)*2);height:calc(var(--skippr-spacing)*2)}.skippr\\:size-2\\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}.skippr\\:size-3\\.5{width:calc(var(--skippr-spacing)*3.5);height:calc(var(--skippr-spacing)*3.5)}.skippr\\:size-4{width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}.skippr\\:size-5{width:calc(var(--skippr-spacing)*5);height:calc(var(--skippr-spacing)*5)}.skippr\\:size-6{width:calc(var(--skippr-spacing)*6);height:calc(var(--skippr-spacing)*6)}.skippr\\:size-7{width:calc(var(--skippr-spacing)*7);height:calc(var(--skippr-spacing)*7)}.skippr\\:size-8{width:calc(var(--skippr-spacing)*8);height:calc(var(--skippr-spacing)*8)}.skippr\\:size-9{width:calc(var(--skippr-spacing)*9);height:calc(var(--skippr-spacing)*9)}.skippr\\:size-10{width:calc(var(--skippr-spacing)*10);height:calc(var(--skippr-spacing)*10)}.skippr\\:size-12{width:calc(var(--skippr-spacing)*12);height:calc(var(--skippr-spacing)*12)}.skippr\\:size-\\[5px\\]{width:5px;height:5px}.skippr\\:size-\\[6px\\]{width:6px;height:6px}.skippr\\:size-full{width:100%;height:100%}.skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}.skippr\\:h-0\\.5{height:calc(var(--skippr-spacing)*.5)}.skippr\\:h-1{height:calc(var(--skippr-spacing)*1)}.skippr\\:h-1\\.5{height:calc(var(--skippr-spacing)*1.5)}.skippr\\:h-2{height:calc(var(--skippr-spacing)*2)}.skippr\\:h-3{height:calc(var(--skippr-spacing)*3)}.skippr\\:h-3\\.5{height:calc(var(--skippr-spacing)*3.5)}.skippr\\:h-5{height:calc(var(--skippr-spacing)*5)}.skippr\\:h-6{height:calc(var(--skippr-spacing)*6)}.skippr\\:h-7{height:calc(var(--skippr-spacing)*7)}.skippr\\:h-8{height:calc(var(--skippr-spacing)*8)}.skippr\\:h-9{height:calc(var(--skippr-spacing)*9)}.skippr\\:h-10{height:calc(var(--skippr-spacing)*10)}.skippr\\:h-12{height:calc(var(--skippr-spacing)*12)}.skippr\\:h-16{height:calc(var(--skippr-spacing)*16)}.skippr\\:h-\\[18\\.5px\\]{height:18.5px}.skippr\\:h-\\[50px\\]{height:50px}.skippr\\:h-full{height:100%}.skippr\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\\:w-3\\.5{width:calc(var(--skippr-spacing)*3.5)}.skippr\\:w-5{width:calc(var(--skippr-spacing)*5)}.skippr\\:w-6{width:calc(var(--skippr-spacing)*6)}.skippr\\:w-7{width:calc(var(--skippr-spacing)*7)}.skippr\\:w-10{width:calc(var(--skippr-spacing)*10)}.skippr\\:w-40{width:calc(var(--skippr-spacing)*40)}.skippr\\:w-\\[2px\\]{width:2px}.skippr\\:w-\\[3px\\]{width:3px}.skippr\\:w-\\[15\\.4px\\]{width:15.4px}.skippr\\:w-\\[50px\\]{width:50px}.skippr\\:w-full{width:100%}.skippr\\:max-w-64{max-width:calc(var(--skippr-spacing)*64)}.skippr\\:max-w-72{max-width:calc(var(--skippr-spacing)*72)}.skippr\\:max-w-\\[80\\%\\]{max-width:80%}.skippr\\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\\:flex-1{flex:1}.skippr\\:shrink-0{flex-shrink:0}.skippr\\:origin-bottom-left{transform-origin:0 100%}.skippr\\:origin-bottom-right{transform-origin:100% 100%}.skippr\\:origin-center{transform-origin:50%}.skippr\\:origin-left{transform-origin:0}.skippr\\:origin-right{transform-origin:100%}.skippr\\:origin-top-left{transform-origin:0 0}.skippr\\:origin-top-right{transform-origin:100% 0}.skippr\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-x-7{--tw-translate-x:calc(var(--skippr-spacing)*-7);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:translate-x-7{--tw-translate-x:calc(var(--skippr-spacing)*7);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-y-1\\/2{--tw-translate-y:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:scale-0{--tw-scale-x:0%;--tw-scale-y:0%;--tw-scale-z:0%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:scale-95{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:-rotate-90{rotate:-90deg}.skippr\\:rotate-45{rotate:45deg}.skippr\\:rotate-\\[225deg\\]{rotate:225deg}.skippr\\:\\[animation\\:skippr-agent-in_200ms_ease-out_240ms_both\\]{animation:.2s ease-out .24s both skippr-agent-in}.skippr\\:\\[animation\\:skippr-banner-look_2\\.4s_ease-in-out_infinite\\]{animation:2.4s ease-in-out infinite skippr-banner-look}.skippr\\:\\[animation\\:skippr-finger-tap_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-finger-tap}.skippr\\:\\[animation\\:skippr-orb-in_320ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{animation:.32s cubic-bezier(.34,1.3,.64,1) skippr-orb-in}.skippr\\:\\[animation\\:skippr-stage-fade_240ms_ease-out\\]{animation:.24s ease-out skippr-stage-fade}.skippr\\:\\[animation\\:skippr-tip-in_360ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)_backwards\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) backwards skippr-tip-in}.skippr\\:\\[animation\\:skippr-toolset-pop_440ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.44s cubic-bezier(.22,1,.36,1) skippr-toolset-pop}.skippr\\:animate-\\[skippr-banner-look_2\\.4s_ease-in-out_infinite\\]{animation:2.4s ease-in-out infinite skippr-banner-look}.skippr\\:animate-\\[skippr-bubble-in_0\\.28s_ease-out\\]{animation:.28s ease-out skippr-bubble-in}.skippr\\:animate-\\[skippr-fade-in_0\\.3s_ease-out\\]{animation:.3s ease-out skippr-fade-in}.skippr\\:animate-\\[skippr-pill-content_0\\.22s_ease-out\\]{animation:.22s ease-out skippr-pill-content}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.3s_infinite\\]{animation:1.1s ease-in-out .3s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.6s_infinite\\]{animation:1.1s ease-in-out .6s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.15s_infinite\\]{animation:1.1s ease-in-out .15s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_0\\.45s_infinite\\]{animation:1.1s ease-in-out .45s infinite skippr-speak}.skippr\\:animate-\\[skippr-speak_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-speak}.skippr\\:animate-bounce{animation:var(--skippr-animate-bounce)}.skippr\\:animate-ping{animation:var(--skippr-animate-ping)}.skippr\\:animate-pulse{animation:var(--skippr-animate-pulse)}.skippr\\:animate-skippr-annotation-pulse{animation:1.8s ease-in-out infinite skippr-annotation-pulse}.skippr\\:animate-skippr-click-ping{animation:.5s ease-out forwards skippr-click-ping}.skippr\\:animate-skippr-cursor-pop{animation:.22s ease-out skippr-cursor-pop}.skippr\\:animate-skippr-press{animation:.5s ease-in-out skippr-press}.skippr\\:animate-skippr-tab-fade{animation:.2s ease-out skippr-tab-fade}.skippr\\:animate-skippr-thinking-dot{animation:1.2s ease-in-out infinite skippr-thinking-dot}.skippr\\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\\:cursor-default{cursor:default}.skippr\\:cursor-grab{cursor:grab}.skippr\\:cursor-pointer{cursor:pointer}.skippr\\:touch-none{touch-action:none}.skippr\\:resize-none{resize:none}.skippr\\:flex-col{flex-direction:column}.skippr\\:flex-col-reverse{flex-direction:column-reverse}.skippr\\:items-center{align-items:center}.skippr\\:items-end{align-items:flex-end}.skippr\\:items-start{align-items:flex-start}.skippr\\:justify-between{justify-content:space-between}.skippr\\:justify-center{justify-content:center}.skippr\\:justify-end{justify-content:flex-end}.skippr\\:justify-start{justify-content:flex-start}.skippr\\:gap-1{gap:calc(var(--skippr-spacing)*1)}.skippr\\:gap-1\\.5{gap:calc(var(--skippr-spacing)*1.5)}.skippr\\:gap-2{gap:calc(var(--skippr-spacing)*2)}.skippr\\:gap-2\\.5{gap:calc(var(--skippr-spacing)*2.5)}.skippr\\:gap-3{gap:calc(var(--skippr-spacing)*3)}.skippr\\:gap-\\[2px\\]{gap:2px}.skippr\\:gap-\\[3px\\]{gap:3px}:where(.skippr\\:space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.skippr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skippr\\:overflow-hidden{overflow:hidden}.skippr\\:overflow-y-auto{overflow-y:auto}.skippr\\:rounded-2xl{border-radius:1.125rem}.skippr\\:rounded-\\[1rem\\]{border-radius:1rem}.skippr\\:rounded-\\[10px\\]{border-radius:10px}.skippr\\:rounded-\\[12px\\]{border-radius:12px}.skippr\\:rounded-\\[14px\\]{border-radius:14px}.skippr\\:rounded-\\[16px\\]{border-radius:16px}.skippr\\:rounded-\\[20px\\]{border-radius:20px}.skippr\\:rounded-full{border-radius:3.40282e38px}.skippr\\:rounded-lg{border-radius:.625rem}.skippr\\:rounded-md{border-radius:.5rem}.skippr\\:rounded-sm{border-radius:.375rem}.skippr\\:rounded-xl{border-radius:.875rem}.skippr\\:rounded-tl-md{border-top-left-radius:.5rem}.skippr\\:border{border-style:var(--tw-border-style);border-width:1px}.skippr\\:border-0{border-style:var(--tw-border-style);border-width:0}.skippr\\:border-2{border-style:var(--tw-border-style);border-width:2px}.skippr\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.skippr\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.skippr\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.skippr\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.skippr\\:border-\\[\\#2bc0ae\\]{border-color:#2bc0ae}.skippr\\:border-border,.skippr\\:border-input{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-primary\\/20{border-color:oklab(29.9244% .0107414 -.0305411/.2)}.skippr\\:border-r-border{border-right-color:oklch(92.3% .003 48.717)}.skippr\\:border-l-border{border-left-color:oklch(92.3% .003 48.717)}.skippr\\:bg-\\[\\#2bc0ae\\]{background-color:#2bc0ae}.skippr\\:bg-\\[\\#2bc0ae\\]\\/50{background-color:oklab(72.9347% -.121518 -.00545585/.5)}.skippr\\:bg-amber-50{background-color:var(--skippr-color-amber-50)}.skippr\\:bg-amber-400{background-color:var(--skippr-color-amber-400)}.skippr\\:bg-background{background-color:oklch(100% 0 0)}.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:color-mix(in oklab,var(--skippr-color-black)7.0%,transparent)}}.skippr\\:bg-bubble{background-color:#2d2b3d}.skippr\\:bg-bubble\\/95{background-color:oklab(29.9244% .0107414 -.0305411/.95)}.skippr\\:bg-card{background-color:oklch(100% 0 0)}.skippr\\:bg-current{background-color:currentColor}.skippr\\:bg-destructive{background-color:#d94f4f}.skippr\\:bg-emerald-400{background-color:var(--skippr-color-emerald-400)}.skippr\\:bg-emerald-500{background-color:var(--skippr-color-emerald-500)}.skippr\\:bg-foreground{background-color:oklch(14.7% .004 49.25)}.skippr\\:bg-green-100{background-color:var(--skippr-color-green-100)}.skippr\\:bg-launcher{background-color:#2d2d3f}.skippr\\:bg-muted{background-color:oklch(97% .001 106.424)}.skippr\\:bg-muted-foreground\\/20{background-color:oklab(55.3% .00687528 .0110332/.2)}.skippr\\:bg-muted-foreground\\/40{background-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:bg-muted\\/50{background-color:oklab(97% -.000282743 .000959196/.5)}.skippr\\:bg-neutral-100{background-color:var(--skippr-color-neutral-100)}.skippr\\:bg-primary{background-color:#2d2b3d}.skippr\\:bg-primary-foreground\\/20{background-color:oklab(100% 0 5.96046e-8/.2)}.skippr\\:bg-primary\\/10{background-color:oklab(29.9244% .0107414 -.0305411/.1)}.skippr\\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\\:bg-red-100{background-color:var(--skippr-color-red-100)}.skippr\\:bg-red-400{background-color:var(--skippr-color-red-400)}.skippr\\:bg-red-500{background-color:var(--skippr-color-red-500)}.skippr\\:bg-secondary{background-color:#ffdfb5}.skippr\\:bg-transparent{background-color:#0000}.skippr\\:bg-white{background-color:var(--skippr-color-white)}.skippr\\:fill-brand{fill:#2bc0ae}.skippr\\:fill-primary\\/30{fill:oklab(29.9244% .0107414 -.0305411/.3)}.skippr\\:stroke-black\\/15{stroke:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:stroke-black\\/15{stroke:color-mix(in oklab,var(--skippr-color-black)15%,transparent)}}.skippr\\:stroke-bubble{stroke:#2d2b3d}.skippr\\:p-2{padding:calc(var(--skippr-spacing)*2)}.skippr\\:p-3{padding:calc(var(--skippr-spacing)*3)}.skippr\\:p-3\\.5{padding:calc(var(--skippr-spacing)*3.5)}.skippr\\:p-4{padding:calc(var(--skippr-spacing)*4)}.skippr\\:px-1{padding-inline:calc(var(--skippr-spacing)*1)}.skippr\\:px-1\\.5{padding-inline:calc(var(--skippr-spacing)*1.5)}.skippr\\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\\:px-2\\.5{padding-inline:calc(var(--skippr-spacing)*2.5)}.skippr\\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\\:px-8{padding-inline:calc(var(--skippr-spacing)*8)}.skippr\\:py-0\\.5{padding-block:calc(var(--skippr-spacing)*.5)}.skippr\\:py-1{padding-block:calc(var(--skippr-spacing)*1)}.skippr\\:py-1\\.5{padding-block:calc(var(--skippr-spacing)*1.5)}.skippr\\:py-2{padding-block:calc(var(--skippr-spacing)*2)}.skippr\\:py-2\\.5{padding-block:calc(var(--skippr-spacing)*2.5)}.skippr\\:py-3{padding-block:calc(var(--skippr-spacing)*3)}.skippr\\:py-4{padding-block:calc(var(--skippr-spacing)*4)}.skippr\\:pt-1\\.5{padding-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:pt-2{padding-top:calc(var(--skippr-spacing)*2)}.skippr\\:pr-2\\.5{padding-right:calc(var(--skippr-spacing)*2.5)}.skippr\\:pr-3{padding-right:calc(var(--skippr-spacing)*3)}.skippr\\:pb-0{padding-bottom:calc(var(--skippr-spacing)*0)}.skippr\\:pb-2{padding-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:pl-1\\.5{padding-left:calc(var(--skippr-spacing)*1.5)}.skippr\\:pl-2\\.5{padding-left:calc(var(--skippr-spacing)*2.5)}.skippr\\:pl-3\\.5{padding-left:calc(var(--skippr-spacing)*3.5)}.skippr\\:text-center{text-align:center}.skippr\\:text-left{text-align:left}.skippr\\:font-mono{font-family:var(--skippr-font-mono)}.skippr\\:text-sm{font-size:var(--skippr-text-sm);line-height:var(--tw-leading,var(--skippr-text-sm--line-height))}.skippr\\:text-xs{font-size:var(--skippr-text-xs);line-height:var(--tw-leading,var(--skippr-text-xs--line-height))}.skippr\\:text-\\[10px\\]{font-size:10px}.skippr\\:text-\\[11px\\]{font-size:11px}.skippr\\:text-\\[13px\\]{font-size:13px}.skippr\\:leading-5{--tw-leading:calc(var(--skippr-spacing)*5);line-height:calc(var(--skippr-spacing)*5)}.skippr\\:leading-relaxed{--tw-leading:var(--skippr-leading-relaxed);line-height:var(--skippr-leading-relaxed)}.skippr\\:leading-snug{--tw-leading:var(--skippr-leading-snug);line-height:var(--skippr-leading-snug)}.skippr\\:leading-tight{--tw-leading:var(--skippr-leading-tight);line-height:var(--skippr-leading-tight)}.skippr\\:font-medium{--tw-font-weight:var(--skippr-font-weight-medium);font-weight:var(--skippr-font-weight-medium)}.skippr\\:font-semibold{--tw-font-weight:var(--skippr-font-weight-semibold);font-weight:var(--skippr-font-weight-semibold)}.skippr\\:whitespace-nowrap{white-space:nowrap}.skippr\\:text-\\[\\#2bc0ae\\]{color:#2bc0ae}.skippr\\:text-amber-700{color:var(--skippr-color-amber-700)}.skippr\\:text-amber-950{color:var(--skippr-color-amber-950)}.skippr\\:text-background{color:oklch(100% 0 0)}.skippr\\:text-black{color:var(--skippr-color-black)}.skippr\\:text-bubble{color:#2d2b3d}.skippr\\:text-chart-3{color:oklch(66.6% .179 58.318)}.skippr\\:text-destructive{color:#d94f4f}.skippr\\:text-foreground{color:oklch(14.7% .004 49.25)}.skippr\\:text-green-700{color:var(--skippr-color-green-700)}.skippr\\:text-muted-foreground{color:oklch(55.3% .013 58.071)}.skippr\\:text-muted-foreground\\/30{color:oklab(55.3% .00687528 .0110332/.3)}.skippr\\:text-muted-foreground\\/40{color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:text-muted-foreground\\/60{color:oklab(55.3% .00687528 .0110332/.6)}.skippr\\:text-muted-foreground\\/70{color:oklab(55.3% .00687528 .0110332/.7)}.skippr\\:text-neutral-500{color:var(--skippr-color-neutral-500)}.skippr\\:text-neutral-700{color:var(--skippr-color-neutral-700)}.skippr\\:text-primary{color:#2d2b3d}.skippr\\:text-primary-foreground{color:#fff}.skippr\\:text-primary-foreground\\/70{color:oklab(100% 0 5.96046e-8/.7)}.skippr\\:text-red-400{color:var(--skippr-color-red-400)}.skippr\\:text-red-600{color:var(--skippr-color-red-600)}.skippr\\:text-red-700{color:var(--skippr-color-red-700)}.skippr\\:text-secondary-foreground{color:#613700}.skippr\\:text-white{color:var(--skippr-color-white)}.skippr\\:capitalize{text-transform:capitalize}.skippr\\: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,)}.skippr\\:line-through{text-decoration-line:line-through}.skippr\\:placeholder-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}.skippr\\:opacity-0{opacity:0}.skippr\\:opacity-40{opacity:.4}.skippr\\:opacity-75{opacity:.75}.skippr\\:opacity-100{opacity:1}.skippr\\: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)}.skippr\\:shadow-\\[-6px_6px_22px_rgba\\(0\\,0\\,0\\,0\\.3\\)\\]{--tw-shadow:-6px 6px 22px var(--tw-shadow-color,#0000004d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_4px_14px_rgba\\(239\\,68\\,68\\,0\\.45\\)\\]{--tw-shadow:0 4px 14px var(--tw-shadow-color,#ef444473);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_4px_16px_rgba\\(45\\,43\\,61\\,0\\.45\\)\\,0_2px_4px_rgba\\(0\\,0\\,0\\,0\\.1\\)\\]{--tw-shadow:0 4px 16px var(--tw-shadow-color,#2d2b3d73),0 2px 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)}.skippr\\:shadow-\\[0_8px_24px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_8px_24px_rgba\\(45\\,43\\,61\\,0\\.35\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#2d2b3d59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_8px_30px_rgba\\(0\\,0\\,0\\,0\\.16\\)\\,0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#00000029),0 4px 12px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_10px_32px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 10px 32px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\: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)}.skippr\\: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)}.skippr\\:ring-1{--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)}.skippr\\:ring-2{--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)}.skippr\\:ring-black\\/5{--tw-ring-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--skippr-color-black)5%,transparent)}}.skippr\\:ring-brand{--tw-ring-color:#2bc0ae}.skippr\\:ring-foreground\\/10{--tw-ring-color:oklab(14.7% .00261104 .00303026/.1)}.skippr\\:ring-offset-background{--tw-ring-offset-color:oklch(100% 0 0)}.skippr\\:drop-shadow-\\[0_2px_5px_rgba\\(0\\,0\\,0\\,0\\.4\\)\\]{--tw-drop-shadow-size:drop-shadow(0 2px 5px var(--tw-drop-shadow-color,#0006));--tw-drop-shadow:var(--tw-drop-shadow-size);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,)}.skippr\\:backdrop-blur-sm{--tw-backdrop-blur:blur(var(--skippr-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,)}.skippr\\:transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[opacity\\,transform\\,height\\]{transition-property:opacity,transform,height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[width\\,margin\\]{transition-property:width,margin;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\: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(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:duration-75{--tw-duration:75ms;transition-duration:75ms}.skippr\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.skippr\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.skippr\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.skippr\\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\\:ease-out{--tw-ease:var(--skippr-ease-out);transition-timing-function:var(--skippr-ease-out)}.skippr\\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\\:select-none{-webkit-user-select:none;user-select:none}.skippr\\:\\[animation-delay\\:0ms\\]{animation-delay:0s}.skippr\\:\\[animation-delay\\:150ms\\]{animation-delay:.15s}.skippr\\:\\[animation-delay\\:200ms\\]{animation-delay:.2s}.skippr\\:\\[animation-delay\\:300ms\\]{animation-delay:.3s}.skippr\\:\\[animation-delay\\:400ms\\]{animation-delay:.4s}.skippr\\:\\[overflow-anchor\\:none\\]{overflow-anchor:none}.skippr\\:group-focus-within\\:scale-100:is(:where(.skippr\\:group):focus-within *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-focus-within\\:opacity-100:is(:where(.skippr\\:group):focus-within *){opacity:1}@media (hover:hover){.skippr\\:group-hover\\:scale-100:is(:where(.skippr\\:group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-hover\\:text-red-300:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-red-300)}.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:group-hover\\:opacity-100:is(:where(.skippr\\:group):hover *){opacity:1}}.skippr\\:placeholder\\:text-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}@media (hover:hover){.skippr\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--skippr-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:hover\\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:hover\\:bg-\\[\\#3a384b\\]:hover{background-color:#3a384b}.skippr\\:hover\\:bg-accent:hover{background-color:#e7e5e4}.skippr\\:hover\\:bg-amber-100:hover{background-color:var(--skippr-color-amber-100)}.skippr\\:hover\\:bg-bubble:hover{background-color:#2d2b3d}.skippr\\:hover\\:bg-destructive\\/90:hover{background-color:oklab(61.4357% .15892 .0698893/.9)}.skippr\\:hover\\:bg-green-200:hover{background-color:var(--skippr-color-green-200)}.skippr\\:hover\\:bg-muted\\/70:hover{background-color:oklab(97% -.000282743 .000959196/.7)}.skippr\\:hover\\:bg-neutral-100:hover{background-color:var(--skippr-color-neutral-100)}.skippr\\:hover\\:bg-neutral-200:hover{background-color:var(--skippr-color-neutral-200)}.skippr\\:hover\\:bg-primary-foreground\\/10:hover{background-color:oklab(100% 0 5.96046e-8/.1)}.skippr\\:hover\\:bg-primary\\/90:hover{background-color:oklab(29.9244% .0107414 -.0305411/.9)}.skippr\\:hover\\:bg-red-200:hover{background-color:var(--skippr-color-red-200)}.skippr\\:hover\\:bg-red-600:hover{background-color:var(--skippr-color-red-600)}.skippr\\:hover\\:bg-secondary\\/80:hover{background-color:oklab(91.9963% .0175391 .0626889/.8)}.skippr\\:hover\\:text-accent-foreground:hover{color:oklch(21.6% .006 56.043)}.skippr\\:hover\\:text-foreground:hover{color:oklch(14.7% .004 49.25)}.skippr\\:hover\\:text-primary-foreground:hover{color:#fff}.skippr\\:hover\\:brightness-110:hover{--tw-brightness:brightness(110%);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,)}}.skippr\\: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)}.skippr\\:focus-visible\\:ring-bubble\\/60:focus-visible{--tw-ring-color:oklab(29.9244% .0107414 -.0305411/.6)}.skippr\\:focus-visible\\:ring-ring:focus-visible{--tw-ring-color:oklch(70.9% .01 56.259)}.skippr\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.skippr\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.skippr\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--skippr-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.skippr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.skippr\\:disabled\\:opacity-50:disabled{opacity:.5}.skippr\\:disabled\\:opacity-60:disabled{opacity:.6}@media (prefers-reduced-motion:reduce){.skippr\\:motion-reduce\\:hidden{display:none}.skippr\\:motion-reduce\\:animate-none{animation:none}}.skippr\\:\\[\\&_svg\\]\\:pointer-events-none svg{pointer-events:none}.skippr\\:\\[\\&_svg\\]\\:shrink-0 svg{flex-shrink:0}.skippr\\:\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 svg:not([class*=size-]){width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}}@keyframes skippr-tap{0%{transform:scale(1)}45%{transform:scale(.7)}to{transform:scale(1)}}@keyframes skippr-press{0%{transform:scale(1)}55%{transform:scale(1)}85%{transform:scale(.68)}to{transform:scale(1)}}@keyframes skippr-cursor-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes skippr-click-ping{0%{opacity:.9;transform:translate(-50%,-50%)scale(.4)}to{opacity:0;transform:translate(-50%,-50%)scale(2.4)}}@keyframes skippr-tab-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-speak{0%,to{opacity:.6;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-thinking-dot{0%,80%,to{opacity:.2;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}@keyframes skippr-pulse-ring{0%,to{box-shadow:0 0 #2d2b3d66}50%{box-shadow:0 0 0 10px #2d2b3d00}}@keyframes skippr-annotation-pulse{0%,to{box-shadow:0 0 #2bc0ae80}50%{box-shadow:0 0 0 6px #2bc0ae00}}@keyframes skippr-speak-ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes skippr-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes skippr-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes skippr-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-wave{0%,to{opacity:.4;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-bubble-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-tip-in{0%{opacity:0;transform:translateY(14px)scale(.96)}60%{opacity:1;transform:translateY(-2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-pill-content{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes skippr-banner-look{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes skippr-finger-tap{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(2px)rotate(-6deg)}}@keyframes skippr-toolset-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes skippr-stage-fade{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes skippr-agent-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes skippr-orb-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.skippr-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.skippr-no-scrollbar::-webkit-scrollbar{display:none}:host{color:var(--color-foreground)}@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-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}@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-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-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}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}`;
4047
4204
  useLayoutEffect2(() => {
4048
4205
  const host = hostRef.current;
4049
4206
  if (!host || !css)
@@ -4058,7 +4215,7 @@ function ShadowHost({ children }) {
4058
4215
  setShadowRoot(root);
4059
4216
  }, [css]);
4060
4217
  if (!css)
4061
- return /* @__PURE__ */ jsx6(Fragment, {
4218
+ return /* @__PURE__ */ jsx6(Fragment2, {
4062
4219
  children
4063
4220
  });
4064
4221
  return /* @__PURE__ */ jsx6("div", {
@@ -4068,13 +4225,13 @@ function ShadowHost({ children }) {
4068
4225
  }
4069
4226
 
4070
4227
  // src/components/Sidebar.tsx
4071
- import { useContext as useContext10, useEffect as useEffect22 } from "react";
4228
+ import { useContext as useContext10, useEffect as useEffect23 } from "react";
4072
4229
 
4073
4230
  // src/hooks/useCombinedMessages.ts
4074
4231
  import { useContext as useContext7, useMemo as useMemo5 } from "react";
4075
4232
 
4076
4233
  // src/hooks/useChatMessages.ts
4077
- import { useChat, useLocalParticipant as useLocalParticipant6 } from "@livekit/components-react/hooks";
4234
+ import { useChat, useLocalParticipant as useLocalParticipant7 } from "@livekit/components-react/hooks";
4078
4235
  import { useMemo as useMemo3 } from "react";
4079
4236
 
4080
4237
  // src/lib/filterSystemMessages.ts
@@ -4086,7 +4243,7 @@ function filterSystemMessages(messages) {
4086
4243
  // src/hooks/useChatMessages.ts
4087
4244
  function useChatMessages() {
4088
4245
  const { chatMessages: rawMessages, send, isSending } = useChat();
4089
- const { localParticipant } = useLocalParticipant6();
4246
+ const { localParticipant } = useLocalParticipant7();
4090
4247
  const localIdentity = localParticipant.identity;
4091
4248
  const chatMessages = useMemo3(() => {
4092
4249
  const sortedMessages = rawMessages.map((msg) => ({
@@ -4102,11 +4259,11 @@ function useChatMessages() {
4102
4259
  }
4103
4260
 
4104
4261
  // src/hooks/useStreamingTranscript.ts
4105
- import { useLocalParticipant as useLocalParticipant7, useTranscriptions } from "@livekit/components-react/hooks";
4262
+ import { useLocalParticipant as useLocalParticipant8, useTranscriptions } from "@livekit/components-react/hooks";
4106
4263
  import { useMemo as useMemo4 } from "react";
4107
4264
  function useStreamingTranscript() {
4108
4265
  const transcriptions = useTranscriptions();
4109
- const { localParticipant } = useLocalParticipant7();
4266
+ const { localParticipant } = useLocalParticipant8();
4110
4267
  const localIdentity = localParticipant.identity;
4111
4268
  const transcriptMessages = useMemo4(() => filterSystemMessages(transcriptions.filter((stream) => stream.text.trim().length > 0).map((stream) => ({
4112
4269
  id: stream.streamInfo.id,
@@ -4157,7 +4314,7 @@ function useCombinedMessages() {
4157
4314
  }
4158
4315
 
4159
4316
  // src/hooks/useSessionRemaining.ts
4160
- import { useEffect as useEffect17, useRef as useRef11, useState as useState12 } from "react";
4317
+ import { useEffect as useEffect18, useRef as useRef11, useState as useState13 } from "react";
4161
4318
 
4162
4319
  // src/lib/format.ts
4163
4320
  function formatTime(seconds) {
@@ -4174,8 +4331,8 @@ function parseNumber(s) {
4174
4331
  function useSessionRemaining() {
4175
4332
  const maxCallDuration = useAgentState("maxCallDuration", parseNumber, null);
4176
4333
  const endTimeRef = useRef11(null);
4177
- const [remaining, setRemaining] = useState12(null);
4178
- useEffect17(() => {
4334
+ const [remaining, setRemaining] = useState13(null);
4335
+ useEffect18(() => {
4179
4336
  if (maxCallDuration === null || endTimeRef.current !== null)
4180
4337
  return;
4181
4338
  const endTime = Date.now() + maxCallDuration * 1000;
@@ -4192,25 +4349,25 @@ function useSessionRemaining() {
4192
4349
  }
4193
4350
 
4194
4351
  // src/hooks/useTextMode.ts
4195
- import { useLocalParticipant as useLocalParticipant8 } from "@livekit/components-react/hooks";
4196
- import { useCallback as useCallback11, useContext as useContext8, useRef as useRef12 } from "react";
4197
- var textEncoder4 = new TextEncoder;
4352
+ import { useLocalParticipant as useLocalParticipant9 } from "@livekit/components-react/hooks";
4353
+ import { useCallback as useCallback12, useContext as useContext8, useRef as useRef12 } from "react";
4354
+ var textEncoder5 = new TextEncoder;
4198
4355
  function useTextMode() {
4199
4356
  const ctx = useContext8(LiveAgentContext);
4200
4357
  if (!ctx) {
4201
4358
  throw new Error("useTextMode must be used within a <LiveAgent> provider");
4202
4359
  }
4203
4360
  const { textMode, setTextModeState, sidebarTab, setSidebarTab } = ctx;
4204
- const { localParticipant } = useLocalParticipant8();
4361
+ const { localParticipant } = useLocalParticipant9();
4205
4362
  const confirmedTextModeRef = useRef12(false);
4206
- const toggleTextMode = useCallback11(async () => {
4363
+ const toggleTextMode = useCallback12(async () => {
4207
4364
  const next = !textMode;
4208
4365
  setTextModeState(next);
4209
4366
  if (next && sidebarTab === "agenda") {
4210
4367
  setSidebarTab("chat");
4211
4368
  }
4212
4369
  try {
4213
- await localParticipant.publishData(textEncoder4.encode(JSON.stringify({ textMode: next })), {
4370
+ await localParticipant.publishData(textEncoder5.encode(JSON.stringify({ textMode: next })), {
4214
4371
  reliable: true,
4215
4372
  topic: TEXT_MODE_TOPIC
4216
4373
  });
@@ -4228,10 +4385,10 @@ function useTextMode() {
4228
4385
  import { useContext as useContext9, useRef as useRef13 } from "react";
4229
4386
 
4230
4387
  // src/hooks/useElapsedSeconds.ts
4231
- import { useEffect as useEffect18, useState as useState13 } from "react";
4388
+ import { useEffect as useEffect19, useState as useState14 } from "react";
4232
4389
  function useElapsedSeconds(isRunning) {
4233
- const [elapsed, setElapsed] = useState13(0);
4234
- useEffect18(() => {
4390
+ const [elapsed, setElapsed] = useState14(0);
4391
+ useEffect19(() => {
4235
4392
  if (!isRunning) {
4236
4393
  setElapsed(0);
4237
4394
  return;
@@ -4247,7 +4404,7 @@ function useElapsedSeconds(isRunning) {
4247
4404
  }
4248
4405
 
4249
4406
  // src/components/ChatHeader.tsx
4250
- import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
4407
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
4251
4408
  function ChatHeader() {
4252
4409
  const ctx = useContext9(LiveAgentContext);
4253
4410
  if (!ctx) {
@@ -4268,7 +4425,7 @@ function ChatHeader() {
4268
4425
  const followsPanel = variant === "floating" && isPanelOpen;
4269
4426
  const dragFollowers = followsPanel ? [panelRef, controlBarRef] : null;
4270
4427
  const { wasDraggedRef } = useLauncherDrag(headerRef, commitLauncherDrop, dragFollowers);
4271
- return /* @__PURE__ */ jsxs6("header", {
4428
+ return /* @__PURE__ */ jsxs7("header", {
4272
4429
  ref: headerRef,
4273
4430
  className: cn("skippr:sticky skippr:top-0 skippr:z-10 skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-between skippr:border-b skippr:border-border skippr:bg-primary skippr:px-4 skippr:py-3", followsPanel && "skippr:cursor-grab skippr:touch-none skippr:select-none"),
4274
4431
  children: [
@@ -4276,13 +4433,13 @@ function ChatHeader() {
4276
4433
  className: "skippr:text-sm skippr:font-semibold skippr:text-primary-foreground",
4277
4434
  children: "Skippr"
4278
4435
  }),
4279
- /* @__PURE__ */ jsxs6("div", {
4436
+ /* @__PURE__ */ jsxs7("div", {
4280
4437
  className: "skippr:flex skippr:items-center skippr:gap-2",
4281
4438
  children: [
4282
- isConnected && /* @__PURE__ */ jsxs6("div", {
4439
+ isConnected && /* @__PURE__ */ jsxs7("div", {
4283
4440
  className: "skippr:flex skippr:items-center skippr:gap-1.5 skippr:rounded-full skippr:bg-primary-foreground/20 skippr:px-2.5 skippr:py-1",
4284
4441
  children: [
4285
- /* @__PURE__ */ jsxs6("span", {
4442
+ /* @__PURE__ */ jsxs7("span", {
4286
4443
  className: "skippr:relative skippr:flex skippr:size-1.5",
4287
4444
  children: [
4288
4445
  /* @__PURE__ */ jsx7("span", {
@@ -4325,12 +4482,12 @@ function ChatHeader() {
4325
4482
  }
4326
4483
 
4327
4484
  // src/components/LoadingDots.tsx
4328
- import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
4485
+ import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
4329
4486
  function LoadingDots({ label }) {
4330
- return /* @__PURE__ */ jsxs7("div", {
4487
+ return /* @__PURE__ */ jsxs8("div", {
4331
4488
  className: "skippr:flex skippr:items-center skippr:gap-2 skippr:py-4",
4332
4489
  children: [
4333
- /* @__PURE__ */ jsxs7("div", {
4490
+ /* @__PURE__ */ jsxs8("div", {
4334
4491
  className: "skippr:flex skippr:gap-1",
4335
4492
  children: [
4336
4493
  /* @__PURE__ */ jsx8("span", {
@@ -4353,7 +4510,7 @@ function LoadingDots({ label }) {
4353
4510
  }
4354
4511
 
4355
4512
  // src/components/LoginFlow.tsx
4356
- import { useCallback as useCallback12, useEffect as useEffect19, useRef as useRef14, useState as useState14 } from "react";
4513
+ import { useCallback as useCallback13, useEffect as useEffect20, useRef as useRef14, useState as useState15 } from "react";
4357
4514
 
4358
4515
  // src/components/ui/button.tsx
4359
4516
  import { forwardRef as forwardRef3 } from "react";
@@ -4385,24 +4542,24 @@ var Button = forwardRef3(({ className, variant = "default", size = "default", ..
4385
4542
  Button.displayName = "Button";
4386
4543
 
4387
4544
  // src/components/LoginFlow.tsx
4388
- import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
4545
+ import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
4389
4546
  var OTP_LENGTH = 6;
4390
4547
  var DIGIT_KEYS = ["d0", "d1", "d2", "d3", "d4", "d5"];
4391
4548
  function LoginFlow({ requestOtp, verifyOtp, error, isSubmitting }) {
4392
- const [step, setStep] = useState14("email");
4393
- const [email, setEmail] = useState14("");
4394
- const handleRequestOtp = useCallback12(async (emailValue) => {
4549
+ const [step, setStep] = useState15("email");
4550
+ const [email, setEmail] = useState15("");
4551
+ const handleRequestOtp = useCallback13(async (emailValue) => {
4395
4552
  const success = await requestOtp(emailValue);
4396
4553
  if (success)
4397
4554
  setStep("otp");
4398
4555
  }, [requestOtp]);
4399
- const handleVerifyOtp = useCallback12(async (code) => {
4556
+ const handleVerifyOtp = useCallback13(async (code) => {
4400
4557
  await verifyOtp(email, code);
4401
4558
  }, [verifyOtp, email]);
4402
- const handleBack = useCallback12(() => {
4559
+ const handleBack = useCallback13(() => {
4403
4560
  setStep("email");
4404
4561
  }, []);
4405
- const handleResend = useCallback12(async () => {
4562
+ const handleResend = useCallback13(async () => {
4406
4563
  await requestOtp(email);
4407
4564
  }, [requestOtp, email]);
4408
4565
  if (step === "otp") {
@@ -4429,10 +4586,10 @@ function EmailStep({ email, onEmailChange, onSubmit, error, isSubmitting }) {
4429
4586
  if (email.trim())
4430
4587
  onSubmit(email.trim());
4431
4588
  }
4432
- return /* @__PURE__ */ jsxs8("div", {
4589
+ return /* @__PURE__ */ jsxs9("div", {
4433
4590
  className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",
4434
4591
  children: [
4435
- /* @__PURE__ */ jsxs8("div", {
4592
+ /* @__PURE__ */ jsxs9("div", {
4436
4593
  className: "skippr:mb-4 skippr:text-center",
4437
4594
  children: [
4438
4595
  /* @__PURE__ */ jsx10(Mail, {
@@ -4448,7 +4605,7 @@ function EmailStep({ email, onEmailChange, onSubmit, error, isSubmitting }) {
4448
4605
  })
4449
4606
  ]
4450
4607
  }),
4451
- /* @__PURE__ */ jsxs8("form", {
4608
+ /* @__PURE__ */ jsxs9("form", {
4452
4609
  onSubmit: handleSubmit,
4453
4610
  className: "skippr:flex skippr:flex-col skippr:gap-3",
4454
4611
  children: [
@@ -4479,30 +4636,30 @@ function EmailStep({ email, onEmailChange, onSubmit, error, isSubmitting }) {
4479
4636
  });
4480
4637
  }
4481
4638
  function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
4482
- const [digits, setDigits] = useState14(Array(OTP_LENGTH).fill(""));
4483
- const [resendCooldown, setResendCooldown] = useState14(0);
4639
+ const [digits, setDigits] = useState15(Array(OTP_LENGTH).fill(""));
4640
+ const [resendCooldown, setResendCooldown] = useState15(0);
4484
4641
  const inputRefs = useRef14([]);
4485
4642
  const submittedRef = useRef14(false);
4486
- useEffect19(() => {
4643
+ useEffect20(() => {
4487
4644
  inputRefs.current[0]?.focus();
4488
4645
  }, []);
4489
- useEffect19(() => {
4646
+ useEffect20(() => {
4490
4647
  if (error)
4491
4648
  submittedRef.current = false;
4492
4649
  }, [error]);
4493
- useEffect19(() => {
4650
+ useEffect20(() => {
4494
4651
  if (resendCooldown <= 0)
4495
4652
  return;
4496
4653
  const timer = setTimeout(() => setResendCooldown((c) => c - 1), 1000);
4497
4654
  return () => clearTimeout(timer);
4498
4655
  }, [resendCooldown]);
4499
- const submitCode = useCallback12((code) => {
4656
+ const submitCode = useCallback13((code) => {
4500
4657
  if (submittedRef.current || isSubmitting)
4501
4658
  return;
4502
4659
  submittedRef.current = true;
4503
4660
  onSubmit(code);
4504
4661
  }, [onSubmit, isSubmitting]);
4505
- const handleDigitChange = useCallback12((index2, value) => {
4662
+ const handleDigitChange = useCallback13((index2, value) => {
4506
4663
  const digit = value.replace(/\D/g, "").slice(-1);
4507
4664
  const newDigits = [...digits];
4508
4665
  newDigits[index2] = digit;
@@ -4516,12 +4673,12 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
4516
4673
  submitCode(code);
4517
4674
  }
4518
4675
  }, [digits, submitCode]);
4519
- const handleKeyDown = useCallback12((index2, e) => {
4676
+ const handleKeyDown = useCallback13((index2, e) => {
4520
4677
  if (e.key === "Backspace" && !digits[index2] && index2 > 0) {
4521
4678
  inputRefs.current[index2 - 1]?.focus();
4522
4679
  }
4523
4680
  }, [digits]);
4524
- const handlePaste = useCallback12((e) => {
4681
+ const handlePaste = useCallback13((e) => {
4525
4682
  e.preventDefault();
4526
4683
  const pasted = e.clipboardData.getData("text").replace(/\D/g, "").slice(0, OTP_LENGTH);
4527
4684
  if (pasted.length > 0) {
@@ -4549,17 +4706,17 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
4549
4706
  submittedRef.current = false;
4550
4707
  inputRefs.current[0]?.focus();
4551
4708
  }
4552
- return /* @__PURE__ */ jsxs8("div", {
4709
+ return /* @__PURE__ */ jsxs9("div", {
4553
4710
  className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",
4554
4711
  children: [
4555
- /* @__PURE__ */ jsxs8("div", {
4712
+ /* @__PURE__ */ jsxs9("div", {
4556
4713
  className: "skippr:mb-4 skippr:text-center",
4557
4714
  children: [
4558
4715
  /* @__PURE__ */ jsx10("p", {
4559
4716
  className: "skippr:text-sm skippr:font-medium skippr:text-foreground",
4560
4717
  children: "Enter verification code"
4561
4718
  }),
4562
- /* @__PURE__ */ jsxs8("p", {
4719
+ /* @__PURE__ */ jsxs9("p", {
4563
4720
  className: "skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",
4564
4721
  children: [
4565
4722
  "We sent a 6-digit code to",
@@ -4572,7 +4729,7 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
4572
4729
  })
4573
4730
  ]
4574
4731
  }),
4575
- /* @__PURE__ */ jsxs8("form", {
4732
+ /* @__PURE__ */ jsxs9("form", {
4576
4733
  onSubmit: handleSubmit,
4577
4734
  className: "skippr:flex skippr:flex-col skippr:gap-3",
4578
4735
  children: [
@@ -4605,7 +4762,7 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
4605
4762
  className: "skippr:size-4 skippr:animate-spin"
4606
4763
  }) : "Verify"
4607
4764
  }),
4608
- /* @__PURE__ */ jsxs8("div", {
4765
+ /* @__PURE__ */ jsxs9("div", {
4609
4766
  className: "skippr:flex skippr:items-center skippr:justify-between skippr:text-xs",
4610
4767
  children: [
4611
4768
  /* @__PURE__ */ jsx10("button", {
@@ -4631,17 +4788,17 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
4631
4788
  }
4632
4789
 
4633
4790
  // src/components/MessageList.tsx
4634
- import { useCallback as useCallback13, useLayoutEffect as useLayoutEffect3, useRef as useRef16, useState as useState16 } from "react";
4791
+ import { useCallback as useCallback14, useLayoutEffect as useLayoutEffect3, useRef as useRef16, useState as useState17 } from "react";
4635
4792
 
4636
4793
  // src/components/ChatInput.tsx
4637
- import { useEffect as useEffect20, useRef as useRef15, useState as useState15 } from "react";
4638
- import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
4794
+ import { useEffect as useEffect21, useRef as useRef15, useState as useState16 } from "react";
4795
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
4639
4796
  var MAX_INPUT_HEIGHT = 60;
4640
4797
  function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
4641
- const [inputText, setInputText] = useState15("");
4798
+ const [inputText, setInputText] = useState16("");
4642
4799
  const textareaRef = useRef15(null);
4643
4800
  const canSend = inputText.trim().length > 0 && !isSendingChat;
4644
- useEffect20(() => {
4801
+ useEffect21(() => {
4645
4802
  if (autoFocus)
4646
4803
  textareaRef.current?.focus();
4647
4804
  }, [autoFocus]);
@@ -4675,7 +4832,7 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
4675
4832
  return /* @__PURE__ */ jsx11("form", {
4676
4833
  onSubmit: handleSubmit,
4677
4834
  className: "skippr:border-t skippr:border-border skippr:p-3",
4678
- children: /* @__PURE__ */ jsxs9("div", {
4835
+ children: /* @__PURE__ */ jsxs10("div", {
4679
4836
  className: "skippr:flex skippr:items-center skippr:gap-2 skippr:rounded-xl skippr:bg-background skippr:ring-1 skippr:ring-foreground/10 skippr:px-3 skippr:py-2",
4680
4837
  children: [
4681
4838
  /* @__PURE__ */ jsx11("textarea", {
@@ -4703,7 +4860,7 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
4703
4860
  }
4704
4861
 
4705
4862
  // src/components/ChatMessage.tsx
4706
- import { jsx as jsx12, jsxs as jsxs10 } from "react/jsx-runtime";
4863
+ import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
4707
4864
  function formatTimestamp(ts) {
4708
4865
  return new Date(ts).toLocaleTimeString("en-US", {
4709
4866
  hour: "numeric",
@@ -4713,7 +4870,7 @@ function formatTimestamp(ts) {
4713
4870
  }
4714
4871
  function ChatMessage({ message }) {
4715
4872
  const isAgent = message.role === "assistant";
4716
- return /* @__PURE__ */ jsxs10("div", {
4873
+ return /* @__PURE__ */ jsxs11("div", {
4717
4874
  className: cn("skippr:flex skippr:gap-2", isAgent ? "skippr:items-start" : "skippr:justify-end"),
4718
4875
  children: [
4719
4876
  isAgent && /* @__PURE__ */ jsx12("div", {
@@ -4722,7 +4879,7 @@ function ChatMessage({ message }) {
4722
4879
  className: "skippr:size-3.5 skippr:text-primary-foreground"
4723
4880
  })
4724
4881
  }),
4725
- /* @__PURE__ */ jsxs10("div", {
4882
+ /* @__PURE__ */ jsxs11("div", {
4726
4883
  className: cn("skippr:flex skippr:max-w-[80%] skippr:flex-col", isAgent ? "skippr:items-start" : "skippr:items-end"),
4727
4884
  children: [
4728
4885
  /* @__PURE__ */ jsx12("div", {
@@ -4740,8 +4897,8 @@ function ChatMessage({ message }) {
4740
4897
  }
4741
4898
 
4742
4899
  // src/components/PlanCard.tsx
4743
- import { useEffect as useEffect21 } from "react";
4744
- import { jsx as jsx13, jsxs as jsxs11 } from "react/jsx-runtime";
4900
+ import { useEffect as useEffect22 } from "react";
4901
+ import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
4745
4902
  var APPROVE_MESSAGE = "Yes, go ahead.";
4746
4903
  var CANCEL_MESSAGE = "No, cancel that.";
4747
4904
  var COMPLETED_CARD_VISIBLE_MS = 2500;
@@ -4767,13 +4924,13 @@ function StepIcon({ status }) {
4767
4924
  }
4768
4925
  function PlanCard({ plan, sendChatMessage, onDismiss }) {
4769
4926
  const awaitingApproval = plan.state === "proposed";
4770
- useEffect21(() => {
4927
+ useEffect22(() => {
4771
4928
  if (plan.state !== "completed")
4772
4929
  return;
4773
4930
  const timer = setTimeout(onDismiss, COMPLETED_CARD_VISIBLE_MS);
4774
4931
  return () => clearTimeout(timer);
4775
4932
  }, [plan.state, onDismiss]);
4776
- return /* @__PURE__ */ jsxs11("div", {
4933
+ return /* @__PURE__ */ jsxs12("div", {
4777
4934
  className: "skippr:rounded-2xl skippr:rounded-tl-md skippr:bg-card skippr:p-3.5 skippr:ring-2 skippr:ring-brand",
4778
4935
  children: [
4779
4936
  /* @__PURE__ */ jsx13("p", {
@@ -4782,7 +4939,7 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
4782
4939
  }),
4783
4940
  /* @__PURE__ */ jsx13("div", {
4784
4941
  className: "skippr:space-y-2",
4785
- children: plan.steps.map((step) => /* @__PURE__ */ jsxs11("div", {
4942
+ children: plan.steps.map((step) => /* @__PURE__ */ jsxs12("div", {
4786
4943
  className: "skippr:flex skippr:items-center skippr:gap-2",
4787
4944
  children: [
4788
4945
  /* @__PURE__ */ jsx13(StepIcon, {
@@ -4795,7 +4952,7 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
4795
4952
  ]
4796
4953
  }, step.index))
4797
4954
  }),
4798
- awaitingApproval && /* @__PURE__ */ jsxs11("div", {
4955
+ awaitingApproval && /* @__PURE__ */ jsxs12("div", {
4799
4956
  className: "skippr:mt-3.5 skippr:flex skippr:gap-2",
4800
4957
  children: [
4801
4958
  /* @__PURE__ */ jsx13(Button, {
@@ -4816,9 +4973,9 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
4816
4973
  }
4817
4974
 
4818
4975
  // src/components/TypingIndicator.tsx
4819
- import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
4976
+ import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
4820
4977
  function TypingIndicator() {
4821
- return /* @__PURE__ */ jsxs12("div", {
4978
+ return /* @__PURE__ */ jsxs13("div", {
4822
4979
  className: "skippr:flex skippr:items-start skippr:gap-2 skippr:animate-skippr-tab-fade",
4823
4980
  children: [
4824
4981
  /* @__PURE__ */ jsx14("div", {
@@ -4827,13 +4984,13 @@ function TypingIndicator() {
4827
4984
  className: "skippr:size-3.5 skippr:text-primary-foreground"
4828
4985
  })
4829
4986
  }),
4830
- /* @__PURE__ */ jsxs12("div", {
4987
+ /* @__PURE__ */ jsxs13("div", {
4831
4988
  className: "skippr:inline-flex skippr:items-center skippr:gap-1 skippr:rounded-2xl skippr:border skippr:border-primary/20 skippr:bg-primary/10 skippr:px-4 skippr:py-2 skippr:text-xs skippr:text-primary",
4832
4989
  children: [
4833
4990
  /* @__PURE__ */ jsx14("span", {
4834
4991
  children: "Agent is analyzing your screen"
4835
4992
  }),
4836
- /* @__PURE__ */ jsxs12("span", {
4993
+ /* @__PURE__ */ jsxs13("span", {
4837
4994
  className: "skippr:inline-flex skippr:items-center skippr:gap-[2px]",
4838
4995
  children: [
4839
4996
  /* @__PURE__ */ jsx14("span", {
@@ -4854,7 +5011,7 @@ function TypingIndicator() {
4854
5011
  }
4855
5012
 
4856
5013
  // src/components/MessageList.tsx
4857
- import { jsx as jsx15, jsxs as jsxs13 } from "react/jsx-runtime";
5014
+ import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
4858
5015
  function isPlanVisible(plan) {
4859
5016
  return !!plan && plan.steps.length > 0 && plan.state !== "abandoned";
4860
5017
  }
@@ -4868,8 +5025,8 @@ function MessageList({
4868
5025
  }) {
4869
5026
  const containerRef = useRef16(null);
4870
5027
  const lastMessage = messages.length > 0 ? messages[messages.length - 1] : undefined;
4871
- const [dismissedPlanId, setDismissedPlanId] = useState16(null);
4872
- const dismissPlan = useCallback13(() => {
5028
+ const [dismissedPlanId, setDismissedPlanId] = useState17(null);
5029
+ const dismissPlan = useCallback14(() => {
4873
5030
  if (plan)
4874
5031
  setDismissedPlanId(plan.planId);
4875
5032
  }, [plan]);
@@ -4882,10 +5039,10 @@ function MessageList({
4882
5039
  container.scrollTop = container.scrollHeight;
4883
5040
  }, [messages.length, lastMessage?.content]);
4884
5041
  const showTyping = isStreaming && lastMessage?.role === "assistant" && lastMessage.content === "";
4885
- return /* @__PURE__ */ jsxs13("div", {
5042
+ return /* @__PURE__ */ jsxs14("div", {
4886
5043
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
4887
5044
  children: [
4888
- /* @__PURE__ */ jsxs13("div", {
5045
+ /* @__PURE__ */ jsxs14("div", {
4889
5046
  ref: containerRef,
4890
5047
  className: "skippr:min-h-0 skippr:flex-1 skippr:space-y-4 skippr:overflow-y-auto skippr:p-4 skippr:[overflow-anchor:none]",
4891
5048
  children: [
@@ -4916,7 +5073,7 @@ function MessageList({
4916
5073
  }
4917
5074
 
4918
5075
  // src/components/SessionAgenda.tsx
4919
- import { jsx as jsx16, jsxs as jsxs14 } from "react/jsx-runtime";
5076
+ import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
4920
5077
  function SessionAgenda({ phases, hasStarted }) {
4921
5078
  if (phases.length === 0 || !hasStarted) {
4922
5079
  return /* @__PURE__ */ jsx16("div", {
@@ -4933,7 +5090,7 @@ function SessionAgenda({ phases, hasStarted }) {
4933
5090
  children: phases.map((phase) => {
4934
5091
  const isActive = phase.status === "active";
4935
5092
  const isCompleted = phase.status === "completed";
4936
- return /* @__PURE__ */ jsxs14("div", {
5093
+ return /* @__PURE__ */ jsxs15("div", {
4937
5094
  className: cn("skippr:flex skippr:items-start skippr:gap-2.5 skippr:rounded-lg skippr:p-2 skippr:transition-colors", isActive && "skippr:bg-primary/10"),
4938
5095
  children: [
4939
5096
  /* @__PURE__ */ jsx16("div", {
@@ -4946,7 +5103,7 @@ function SessionAgenda({ phases, hasStarted }) {
4946
5103
  className: "skippr:size-4 skippr:text-muted-foreground/30"
4947
5104
  })
4948
5105
  }),
4949
- /* @__PURE__ */ jsxs14("div", {
5106
+ /* @__PURE__ */ jsxs15("div", {
4950
5107
  className: "skippr:min-w-0 skippr:flex-1",
4951
5108
  children: [
4952
5109
  /* @__PURE__ */ jsx16("p", {
@@ -4955,7 +5112,7 @@ function SessionAgenda({ phases, hasStarted }) {
4955
5112
  }),
4956
5113
  phase.highlights.length > 0 && /* @__PURE__ */ jsx16("ul", {
4957
5114
  className: "skippr:mt-1 skippr:space-y-0.5",
4958
- children: phase.highlights.map((text) => /* @__PURE__ */ jsxs14("li", {
5115
+ children: phase.highlights.map((text) => /* @__PURE__ */ jsxs15("li", {
4959
5116
  className: cn("skippr:flex skippr:items-center skippr:gap-1.5 skippr:text-[11px] skippr:leading-tight", isCompleted ? "skippr:text-muted-foreground/40 skippr:line-through" : "skippr:text-muted-foreground/70"),
4960
5117
  children: [
4961
5118
  /* @__PURE__ */ jsx16("span", {
@@ -4988,7 +5145,7 @@ function SessionWarningBanner({ remaining }) {
4988
5145
  }
4989
5146
 
4990
5147
  // src/components/StartSessionPrompt.tsx
4991
- import { jsx as jsx18, jsxs as jsxs15 } from "react/jsx-runtime";
5148
+ import { jsx as jsx18, jsxs as jsxs16 } from "react/jsx-runtime";
4992
5149
  var PROMPT_BUTTON = "skippr:cursor-pointer skippr:rounded-xl skippr:bg-primary skippr:px-8 skippr:py-3 skippr:text-sm skippr:font-medium skippr:text-primary-foreground skippr:transition-all skippr:hover:bg-primary/90 skippr:disabled:cursor-not-allowed skippr:disabled:opacity-60";
4993
5150
  function StartSessionPrompt({
4994
5151
  onStartSession,
@@ -5000,7 +5157,7 @@ function StartSessionPrompt({
5000
5157
  canResume = false,
5001
5158
  onResume
5002
5159
  }) {
5003
- return /* @__PURE__ */ jsxs15("div", {
5160
+ return /* @__PURE__ */ jsxs16("div", {
5004
5161
  className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:justify-center skippr:gap-3 skippr:px-4",
5005
5162
  children: [
5006
5163
  canResume && onResume ? /* @__PURE__ */ jsx18("button", {
@@ -5029,7 +5186,7 @@ function StartSessionPrompt({
5029
5186
  }
5030
5187
 
5031
5188
  // src/components/Sidebar.tsx
5032
- import { jsx as jsx19, jsxs as jsxs16, Fragment as Fragment2 } from "react/jsx-runtime";
5189
+ import { jsx as jsx19, jsxs as jsxs17, Fragment as Fragment3 } from "react/jsx-runtime";
5033
5190
  var PANEL_GAP_PX = 12;
5034
5191
  var PANEL_VIEWPORT_MARGIN_PX = 24;
5035
5192
  var PANEL_MAX_HEIGHT_PX = 460;
@@ -5083,7 +5240,7 @@ function Sidebar({
5083
5240
  height: panelExpanded ? availableHeight : `min(${PANEL_MAX_HEIGHT_PX}px, ${availableHeight})`
5084
5241
  };
5085
5242
  }
5086
- useEffect22(() => {
5243
+ useEffect23(() => {
5087
5244
  if (!isSidebar)
5088
5245
  return;
5089
5246
  const prop = position === "right" ? "marginRight" : "marginLeft";
@@ -5097,7 +5254,7 @@ function Sidebar({
5097
5254
  document.body.style.transition = "";
5098
5255
  };
5099
5256
  }, [isSidebar, isPanelOpen, position]);
5100
- return /* @__PURE__ */ jsxs16("div", {
5257
+ return /* @__PURE__ */ jsxs17("div", {
5101
5258
  ref: internalCtx?.panelRef,
5102
5259
  className: cn("skippr:fixed skippr:z-[9999]", "skippr:bg-card", "skippr:flex skippr:flex-col", "skippr:overflow-hidden", isFloating && "skippr:border skippr:border-border skippr:rounded-2xl skippr:shadow-[0_8px_30px_rgba(0,0,0,0.16),0_4px_12px_rgba(0,0,0,0.08)]", isFloating && (position === "right" ? "skippr:right-6" : "skippr:left-6"), isFloating && "skippr:transition-[opacity,transform,height] skippr:duration-300 skippr:ease-in-out", isFloating && (popsDown ? position === "right" ? "skippr:origin-top-right" : "skippr:origin-top-left" : position === "right" ? "skippr:origin-bottom-right" : "skippr:origin-bottom-left"), isFloating && !isPanelOpen && "skippr:scale-0 skippr:opacity-0 skippr:pointer-events-none", isFloating && isPanelOpen && "skippr:scale-100 skippr:opacity-100", isSidebar && "skippr:top-0 skippr:h-full", isSidebar && "skippr:transition-[width] skippr:duration-300 skippr:ease-in-out", isSidebar && position === "right" && "skippr:right-0 skippr:border-l skippr:border-l-border", isSidebar && position === "left" && "skippr:left-0 skippr:border-r skippr:border-r-border", isSidebar && !isPanelOpen && "skippr:w-0 skippr:border-0"),
5103
5260
  style: { width: isPanelOpen ? SIDEBAR_WIDTH : undefined, ...floatingStyle },
@@ -5164,13 +5321,13 @@ function AuthenticatedContent({
5164
5321
  } else if (isPaused) {
5165
5322
  transitionLabel = "Paused";
5166
5323
  }
5167
- return /* @__PURE__ */ jsxs16(Fragment2, {
5324
+ return /* @__PURE__ */ jsxs17(Fragment3, {
5168
5325
  children: [
5169
5326
  isConnected && /* @__PURE__ */ jsx19(ConnectedBanner, {}),
5170
- /* @__PURE__ */ jsxs16("div", {
5327
+ /* @__PURE__ */ jsxs17("div", {
5171
5328
  className: "skippr:flex skippr:items-center skippr:gap-2 skippr:border-b skippr:border-border skippr:px-3 skippr:py-1",
5172
5329
  children: [
5173
- /* @__PURE__ */ jsxs16("button", {
5330
+ /* @__PURE__ */ jsxs17("button", {
5174
5331
  type: "button",
5175
5332
  className: cn("skippr:relative skippr:inline-flex skippr:cursor-pointer skippr:items-center skippr:gap-1.5 skippr:rounded-lg skippr:px-3 skippr:py-1.5 skippr:text-sm skippr:font-medium skippr:transition-all", activeTab === "chat" ? "skippr:text-foreground" : "skippr:text-muted-foreground skippr:hover:text-foreground"),
5176
5333
  onClick: () => onTabChange("chat"),
@@ -5184,7 +5341,7 @@ function AuthenticatedContent({
5184
5341
  })
5185
5342
  ]
5186
5343
  }),
5187
- showAgenda && /* @__PURE__ */ jsxs16("button", {
5344
+ showAgenda && /* @__PURE__ */ jsxs17("button", {
5188
5345
  type: "button",
5189
5346
  className: cn("skippr:relative skippr:inline-flex skippr:cursor-pointer skippr:items-center skippr:gap-1.5 skippr:rounded-lg skippr:px-3 skippr:py-1.5 skippr:text-sm skippr:font-medium skippr:transition-all", activeTab === "agenda" ? "skippr:text-foreground" : "skippr:text-muted-foreground skippr:hover:text-foreground"),
5190
5347
  onClick: () => onTabChange("agenda"),
@@ -5207,7 +5364,7 @@ function AuthenticatedContent({
5207
5364
  children: /* @__PURE__ */ jsx19(LoadingDots, {
5208
5365
  label: "Ending session..."
5209
5366
  })
5210
- }) : inSession ? /* @__PURE__ */ jsxs16(Fragment2, {
5367
+ }) : inSession ? /* @__PURE__ */ jsxs17(Fragment3, {
5211
5368
  children: [
5212
5369
  transitionLabel && /* @__PURE__ */ jsx19("div", {
5213
5370
  className: "skippr:shrink-0 skippr:border-b skippr:border-border skippr:bg-muted/50 skippr:px-3 skippr:py-1.5 skippr:text-center skippr:text-xs skippr:text-muted-foreground",
@@ -5232,7 +5389,7 @@ function AuthenticatedContent({
5232
5389
  })
5233
5390
  }, `${activeTab}-empty`)
5234
5391
  }),
5235
- !hideControls && /* @__PURE__ */ jsxs16("div", {
5392
+ !hideControls && /* @__PURE__ */ jsxs17("div", {
5236
5393
  className: "skippr:shrink-0 skippr:border-t skippr:border-border",
5237
5394
  children: [
5238
5395
  isConnected && !isDisconnecting && /* @__PURE__ */ jsx19(ModeToggleRow, {}),
@@ -5254,14 +5411,14 @@ function ModeToggleRow() {
5254
5411
  "aria-label": textMode ? "Switch to voice mode" : "Switch to text mode",
5255
5412
  className: "skippr:flex skippr:cursor-pointer skippr:items-center skippr:gap-2 skippr:rounded-xl skippr:bg-muted skippr:px-4 skippr:py-1.5 skippr:text-sm skippr:font-medium skippr:text-foreground skippr:transition-colors skippr:hover:bg-muted/70",
5256
5413
  onClick: () => void toggleTextMode(),
5257
- children: textMode ? /* @__PURE__ */ jsxs16(Fragment2, {
5414
+ children: textMode ? /* @__PURE__ */ jsxs17(Fragment3, {
5258
5415
  children: [
5259
5416
  /* @__PURE__ */ jsx19(Mic, {
5260
5417
  className: "skippr:size-4"
5261
5418
  }),
5262
5419
  "Voice mode"
5263
5420
  ]
5264
- }) : /* @__PURE__ */ jsxs16(Fragment2, {
5421
+ }) : /* @__PURE__ */ jsxs17(Fragment3, {
5265
5422
  children: [
5266
5423
  /* @__PURE__ */ jsx19(MessageSquare, {
5267
5424
  className: "skippr:size-4"
@@ -5273,7 +5430,7 @@ function ModeToggleRow() {
5273
5430
  });
5274
5431
  }
5275
5432
  function AuthError() {
5276
- return /* @__PURE__ */ jsxs16("div", {
5433
+ return /* @__PURE__ */ jsxs17("div", {
5277
5434
  className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:justify-center skippr:px-6 skippr:py-4 skippr:text-center",
5278
5435
  children: [
5279
5436
  /* @__PURE__ */ jsx19(CircleAlert, {
@@ -5330,9 +5487,9 @@ function ConnectedBody({
5330
5487
  import { useContext as useContext11 } from "react";
5331
5488
 
5332
5489
  // src/components/Logo.tsx
5333
- import { jsx as jsx20, jsxs as jsxs17 } from "react/jsx-runtime";
5490
+ import { jsx as jsx20, jsxs as jsxs18 } from "react/jsx-runtime";
5334
5491
  function Logo({ className }) {
5335
- return /* @__PURE__ */ jsxs17("svg", {
5492
+ return /* @__PURE__ */ jsxs18("svg", {
5336
5493
  width: "1em",
5337
5494
  height: "1em",
5338
5495
  viewBox: "0 0 200 200",
@@ -5348,7 +5505,7 @@ function Logo({ className }) {
5348
5505
  rx: "40",
5349
5506
  fill: "#2D2D3F"
5350
5507
  }),
5351
- /* @__PURE__ */ jsxs17("g", {
5508
+ /* @__PURE__ */ jsxs18("g", {
5352
5509
  transform: "translate(100 100) scale(0.8) translate(-100 -100)",
5353
5510
  children: [
5354
5511
  /* @__PURE__ */ jsx20("path", {
@@ -5401,7 +5558,7 @@ function SidebarTrigger() {
5401
5558
  }
5402
5559
 
5403
5560
  // src/components/LiveAgent.tsx
5404
- import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
5561
+ import { jsx as jsx22, jsxs as jsxs19 } from "react/jsx-runtime";
5405
5562
  function AgentCursorMount({ animated }) {
5406
5563
  return /* @__PURE__ */ jsx22(AgentCursor, {
5407
5564
  target: useAgentCursor(),
@@ -5412,7 +5569,7 @@ function PlanPanelOpener() {
5412
5569
  const plan = usePlanUpdates();
5413
5570
  const { expandPanel } = useLiveAgent();
5414
5571
  const surfacedPlanIdRef = useRef17(null);
5415
- useEffect23(() => {
5572
+ useEffect24(() => {
5416
5573
  if (plan?.state !== "proposed" || surfacedPlanIdRef.current === plan.planId)
5417
5574
  return;
5418
5575
  surfacedPlanIdRef.current = plan.planId;
@@ -5451,18 +5608,18 @@ function LiveAgent(props) {
5451
5608
  const auth = useAuth({ appKey });
5452
5609
  const usesHostAuth = !!getUserToken || !!userToken || !!authTokenProp;
5453
5610
  const effectiveAuthToken = usesHostAuth ? authTokenProp : auth.authToken ?? undefined;
5454
- const [activeModule, setActiveModule] = useState17(null);
5455
- const minimizeOnSessionStart = useCallback14(() => {
5611
+ const [activeModule, setActiveModule] = useState18(null);
5612
+ const minimizeOnSessionStart = useCallback15(() => {
5456
5613
  if (minimizable) {
5457
5614
  setIsMinimized(true);
5458
5615
  setIsPanelOpen(false);
5459
5616
  }
5460
5617
  }, [minimizable]);
5461
- const expandOnSessionStartError = useCallback14(() => {
5618
+ const expandOnSessionStartError = useCallback15(() => {
5462
5619
  setIsMinimized(false);
5463
5620
  setIsPanelOpen(true);
5464
5621
  }, []);
5465
- const minimizeOnSessionDisconnect = useCallback14(() => {
5622
+ const minimizeOnSessionDisconnect = useCallback15(() => {
5466
5623
  setActiveModule(null);
5467
5624
  if (minimizable) {
5468
5625
  setIsMinimized(true);
@@ -5481,6 +5638,7 @@ function LiveAgent(props) {
5481
5638
  pauseSession,
5482
5639
  disconnect,
5483
5640
  isPaused,
5641
+ pauseTimeoutSeconds,
5484
5642
  historyMessages,
5485
5643
  pendingScreenStream,
5486
5644
  bearerToken,
@@ -5498,28 +5656,28 @@ function LiveAgent(props) {
5498
5656
  });
5499
5657
  const teardownInFlightRef = useRef17(false);
5500
5658
  teardownInFlightRef.current = isPaused || isPausing || isDisconnecting;
5501
- const handleRoomDisconnected = useCallback14(() => {
5659
+ const handleRoomDisconnected = useCallback15(() => {
5502
5660
  if (teardownInFlightRef.current)
5503
5661
  return;
5504
5662
  disconnect();
5505
5663
  }, [disconnect]);
5506
5664
  const isSessionLive = connection !== null || isStarting || isPausing || isDisconnecting;
5507
- const [isPanelOpen, setIsPanelOpen] = useState17(defaultOpen);
5508
- const [isMinimized, setIsMinimized] = useState17(minimizable && !defaultOpen);
5509
- const [sidebarTab, setSidebarTab] = useState17("agenda");
5510
- const [phasesSnapshot, setPhasesSnapshot] = useState17([]);
5511
- const [textMode, setTextMode] = useState17(false);
5512
- const [panelExpanded, setPanelExpanded] = useState17(false);
5513
- const togglePanelExpanded = useCallback14(() => setPanelExpanded((prev) => !prev), []);
5665
+ const [isPanelOpen, setIsPanelOpen] = useState18(defaultOpen);
5666
+ const [isMinimized, setIsMinimized] = useState18(minimizable && !defaultOpen);
5667
+ const [sidebarTab, setSidebarTab] = useState18("agenda");
5668
+ const [phasesSnapshot, setPhasesSnapshot] = useState18([]);
5669
+ const [textMode, setTextMode] = useState18(false);
5670
+ const [panelExpanded, setPanelExpanded] = useState18(false);
5671
+ const togglePanelExpanded = useCallback15(() => setPanelExpanded((prev) => !prev), []);
5514
5672
  const panelRef = useRef17(null);
5515
5673
  const controlBarRef = useRef17(null);
5516
- const setTextModeState = useCallback14((enabled) => {
5674
+ const setTextModeState = useCallback15((enabled) => {
5517
5675
  setTextMode(enabled);
5518
5676
  setPanelExpanded(enabled);
5519
5677
  }, []);
5520
5678
  const isConnected = connection !== null;
5521
5679
  const showControlBar = isConnected || isStarting || isPausing;
5522
- useEffect23(() => {
5680
+ useEffect24(() => {
5523
5681
  if (!isConnected)
5524
5682
  setTextModeState(false);
5525
5683
  }, [isConnected, setTextModeState]);
@@ -5546,7 +5704,7 @@ function LiveAgent(props) {
5546
5704
  const agentMode = operatingModule?.mode ?? null;
5547
5705
  const shouldAnimateCursor = operatingModule?.uiPreferences?.animateCursor ?? animateAgentCursor;
5548
5706
  const resumableSession = useMemo6(() => getResumableSession(operatingModule), [operatingModule]);
5549
- const resumeSession = useCallback14(async () => {
5707
+ const resumeSession = useCallback15(async () => {
5550
5708
  if (!resumableSession)
5551
5709
  return;
5552
5710
  await startSession({
@@ -5555,7 +5713,7 @@ function LiveAgent(props) {
5555
5713
  existingSessionId: resumableSession.id
5556
5714
  });
5557
5715
  }, [resumableSession, startSession, agentControls]);
5558
- const selectModule = useCallback14((moduleId) => {
5716
+ const selectModule = useCallback15((moduleId) => {
5559
5717
  const found = availableModules.find((m) => m.id === moduleId);
5560
5718
  if (!found)
5561
5719
  return;
@@ -5566,7 +5724,7 @@ function LiveAgent(props) {
5566
5724
  existingSessionId: getResumableSessionId(found.currentSession, found.mode)
5567
5725
  });
5568
5726
  }, [availableModules, startSession]);
5569
- const startAdoptionSession = useCallback14((goal) => {
5727
+ const startAdoptionSession = useCallback15((goal) => {
5570
5728
  attendGoal(goal.goalId);
5571
5729
  const found = availableModules.find((m) => m.id === goal.agentId);
5572
5730
  if (found)
@@ -5577,9 +5735,9 @@ function LiveAgent(props) {
5577
5735
  adoptionGoalId: goal.goalId
5578
5736
  });
5579
5737
  }, [attendGoal, availableModules, startSession]);
5580
- const [welcomeDismissed, setWelcomeDismissed] = useState17(false);
5581
- const dismissWelcome = useCallback14(() => setWelcomeDismissed(true), []);
5582
- const [currentPosition, setCurrentPosition] = useState17(() => {
5738
+ const [welcomeDismissed, setWelcomeDismissed] = useState18(false);
5739
+ const dismissWelcome = useCallback15(() => setWelcomeDismissed(true), []);
5740
+ const [currentPosition, setCurrentPosition] = useState18(() => {
5583
5741
  try {
5584
5742
  const saved = localStorage.getItem("skippr_widget_position");
5585
5743
  if (saved === "left" || saved === "right")
@@ -5587,13 +5745,13 @@ function LiveAgent(props) {
5587
5745
  } catch {}
5588
5746
  return position;
5589
5747
  });
5590
- const setPositionWithPersist = useCallback14((pos) => {
5748
+ const setPositionWithPersist = useCallback15((pos) => {
5591
5749
  setCurrentPosition(pos);
5592
5750
  try {
5593
5751
  localStorage.setItem("skippr_widget_position", pos);
5594
5752
  } catch {}
5595
5753
  }, []);
5596
- const [launcherBottomPx, setLauncherBottomPxState] = useState17(() => {
5754
+ const [launcherBottomPx, setLauncherBottomPxState] = useState18(() => {
5597
5755
  try {
5598
5756
  const saved = Number.parseInt(localStorage.getItem("skippr_widget_bottom") ?? "", 10);
5599
5757
  if (Number.isFinite(saved) && saved > 0)
@@ -5601,8 +5759,8 @@ function LiveAgent(props) {
5601
5759
  } catch {}
5602
5760
  return DEFAULT_LAUNCHER_BOTTOM_PX;
5603
5761
  });
5604
- const [popsDown, setPopsDown] = useState17(() => launcherPopsDown(launcherBottomPx));
5605
- const setLauncherBottomPx = useCallback14((px) => {
5762
+ const [popsDown, setPopsDown] = useState18(() => launcherPopsDown(launcherBottomPx));
5763
+ const setLauncherBottomPx = useCallback15((px) => {
5606
5764
  setLauncherBottomPxState(px);
5607
5765
  setPopsDown(launcherPopsDown(px));
5608
5766
  try {
@@ -5611,11 +5769,11 @@ function LiveAgent(props) {
5611
5769
  }, []);
5612
5770
  const launcherBottomPxRef = useRef17(launcherBottomPx);
5613
5771
  launcherBottomPxRef.current = launcherBottomPx;
5614
- const commitLauncherDrop = useCallback14(({ side, bottomPx }) => {
5772
+ const commitLauncherDrop = useCallback15(({ side, bottomPx }) => {
5615
5773
  setPositionWithPersist(side);
5616
5774
  setLauncherBottomPx(bottomPx);
5617
5775
  }, [setPositionWithPersist, setLauncherBottomPx]);
5618
- useEffect23(() => {
5776
+ useEffect24(() => {
5619
5777
  const syncToViewport = () => {
5620
5778
  const clamped = clampLauncherBottom(launcherBottomPxRef.current);
5621
5779
  setLauncherBottomPxState(clamped);
@@ -5625,20 +5783,20 @@ function LiveAgent(props) {
5625
5783
  window.addEventListener("resize", syncToViewport);
5626
5784
  return () => window.removeEventListener("resize", syncToViewport);
5627
5785
  }, []);
5628
- const openPanel = useCallback14(() => setIsPanelOpen(true), []);
5629
- const closePanel = useCallback14(() => setIsPanelOpen(false), []);
5630
- const togglePanel = useCallback14(() => setIsPanelOpen((prev) => !prev), []);
5631
- const expandPanel = useCallback14(() => {
5786
+ const openPanel = useCallback15(() => setIsPanelOpen(true), []);
5787
+ const closePanel = useCallback15(() => setIsPanelOpen(false), []);
5788
+ const togglePanel = useCallback15(() => setIsPanelOpen((prev) => !prev), []);
5789
+ const expandPanel = useCallback15(() => {
5632
5790
  setIsMinimized(false);
5633
5791
  setIsPanelOpen(true);
5634
5792
  }, []);
5635
- const minimizePanel = useCallback14(() => {
5793
+ const minimizePanel = useCallback15(() => {
5636
5794
  if (!minimizable)
5637
5795
  return;
5638
5796
  setIsMinimized(true);
5639
5797
  setIsPanelOpen(false);
5640
5798
  }, [minimizable]);
5641
- const pauseSessionAndMinimize = useCallback14(async () => {
5799
+ const pauseSessionAndMinimize = useCallback15(async () => {
5642
5800
  await pauseSession();
5643
5801
  minimizePanel();
5644
5802
  }, [pauseSession, minimizePanel]);
@@ -5657,6 +5815,7 @@ function LiveAgent(props) {
5657
5815
  resumeSession,
5658
5816
  disconnect,
5659
5817
  isPaused,
5818
+ pauseTimeoutSeconds,
5660
5819
  resumableSession,
5661
5820
  historyMessages,
5662
5821
  phasesSnapshot,
@@ -5721,6 +5880,7 @@ function LiveAgent(props) {
5721
5880
  resumeSession,
5722
5881
  disconnect,
5723
5882
  isPaused,
5883
+ pauseTimeoutSeconds,
5724
5884
  resumableSession,
5725
5885
  historyMessages,
5726
5886
  phasesSnapshot,
@@ -5770,7 +5930,7 @@ function LiveAgent(props) {
5770
5930
  ]);
5771
5931
  return /* @__PURE__ */ jsx22(LiveAgentContext.Provider, {
5772
5932
  value: ctx,
5773
- children: /* @__PURE__ */ jsxs18(LiveKitRoom, {
5933
+ children: /* @__PURE__ */ jsxs19(LiveKitRoom, {
5774
5934
  serverUrl: connection?.livekitUrl,
5775
5935
  token: connection?.token,
5776
5936
  connect: shouldConnect,
@@ -5782,7 +5942,7 @@ function LiveAgent(props) {
5782
5942
  pendingScreenStream
5783
5943
  }),
5784
5944
  connection && captureMode === "auto" && /* @__PURE__ */ jsx22(DomCapture, {}),
5785
- /* @__PURE__ */ jsxs18(ShadowHost, {
5945
+ /* @__PURE__ */ jsxs19(ShadowHost, {
5786
5946
  children: [
5787
5947
  connection && captureMode === "auto" && agentControls?.highlight && /* @__PURE__ */ jsx22(HighlightOverlay, {}),
5788
5948
  connection && captureMode === "auto" && agentControls?.actions && /* @__PURE__ */ jsx22(PageActionHandler, {}),
@@ -5790,7 +5950,7 @@ function LiveAgent(props) {
5790
5950
  connection && captureMode === "auto" && (agentControls?.highlight || agentControls?.actions) && /* @__PURE__ */ jsx22(AgentCursorMount, {
5791
5951
  animated: shouldAnimateCursor
5792
5952
  }),
5793
- /* @__PURE__ */ jsxs18("div", {
5953
+ /* @__PURE__ */ jsxs19("div", {
5794
5954
  id: WIDGET_ROOT_ID,
5795
5955
  children: [
5796
5956
  isMinimized && !showControlBar && /* @__PURE__ */ jsx22(MinimizedBubble, {
@@ -5815,9 +5975,9 @@ function LiveAgent(props) {
5815
5975
  });
5816
5976
  }
5817
5977
  // src/hooks/useIsLocalSpeaking.ts
5818
- import { useIsSpeaking, useLocalParticipant as useLocalParticipant9 } from "@livekit/components-react/hooks";
5978
+ import { useIsSpeaking, useLocalParticipant as useLocalParticipant10 } from "@livekit/components-react/hooks";
5819
5979
  function useIsLocalSpeaking() {
5820
- const { localParticipant } = useLocalParticipant9();
5980
+ const { localParticipant } = useLocalParticipant10();
5821
5981
  return useIsSpeaking(localParticipant);
5822
5982
  }
5823
5983
  export {