@skippr/live-agent-sdk 0.89.0 → 0.90.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 useCallback27, useEffect as useEffect45, useMemo as useMemo7, useRef as useRef39, useState as useState35 } from "react";
11
+ import { useCallback as useCallback30, useEffect as useEffect47, useMemo as useMemo7, useRef as useRef41, useState as useState37 } from "react";
12
12
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/createLucideIcon.js
13
13
  import { forwardRef as forwardRef2, createElement as createElement3 } from "react";
14
14
 
@@ -149,8 +149,21 @@ var ChevronRight = createLucideIcon("chevron-right", __iconNode9);
149
149
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/circle.js
150
150
  var __iconNode10 = [["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }]];
151
151
  var Circle = createLucideIcon("circle", __iconNode10);
152
- // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/keyboard.js
152
+ // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/copy.js
153
153
  var __iconNode11 = [
154
+ ["rect", { width: "14", height: "14", x: "8", y: "8", rx: "2", ry: "2", key: "17jyea" }],
155
+ ["path", { d: "M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2", key: "zix9uf" }]
156
+ ];
157
+ var Copy = createLucideIcon("copy", __iconNode11);
158
+ // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/external-link.js
159
+ var __iconNode12 = [
160
+ ["path", { d: "M15 3h6v6", key: "1q9fwt" }],
161
+ ["path", { d: "M10 14 21 3", key: "gplh6r" }],
162
+ ["path", { d: "M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6", key: "a6xqqp" }]
163
+ ];
164
+ var ExternalLink = createLucideIcon("external-link", __iconNode12);
165
+ // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/keyboard.js
166
+ var __iconNode13 = [
154
167
  ["path", { d: "M10 8h.01", key: "1r9ogq" }],
155
168
  ["path", { d: "M12 12h.01", key: "1mp3jc" }],
156
169
  ["path", { d: "M14 8h.01", key: "1primd" }],
@@ -161,9 +174,9 @@ var __iconNode11 = [
161
174
  ["path", { d: "M8 12h.01", key: "czm47f" }],
162
175
  ["rect", { width: "20", height: "16", x: "2", y: "4", rx: "2", key: "18n3k1" }]
163
176
  ];
164
- var Keyboard = createLucideIcon("keyboard", __iconNode11);
177
+ var Keyboard = createLucideIcon("keyboard", __iconNode13);
165
178
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/lightbulb.js
166
- var __iconNode12 = [
179
+ var __iconNode14 = [
167
180
  [
168
181
  "path",
169
182
  {
@@ -174,15 +187,15 @@ var __iconNode12 = [
174
187
  ["path", { d: "M9 18h6", key: "x1upvd" }],
175
188
  ["path", { d: "M10 22h4", key: "ceow96" }]
176
189
  ];
177
- var Lightbulb = createLucideIcon("lightbulb", __iconNode12);
190
+ var Lightbulb = createLucideIcon("lightbulb", __iconNode14);
178
191
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/mail.js
179
- var __iconNode13 = [
192
+ var __iconNode15 = [
180
193
  ["path", { d: "m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7", key: "132q7q" }],
181
194
  ["rect", { x: "2", y: "4", width: "20", height: "16", rx: "2", key: "izxlao" }]
182
195
  ];
183
- var Mail = createLucideIcon("mail", __iconNode13);
196
+ var Mail = createLucideIcon("mail", __iconNode15);
184
197
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/message-square.js
185
- var __iconNode14 = [
198
+ var __iconNode16 = [
186
199
  [
187
200
  "path",
188
201
  {
@@ -191,9 +204,9 @@ var __iconNode14 = [
191
204
  }
192
205
  ]
193
206
  ];
194
- var MessageSquare = createLucideIcon("message-square", __iconNode14);
207
+ var MessageSquare = createLucideIcon("message-square", __iconNode16);
195
208
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/mic-off.js
196
- var __iconNode15 = [
209
+ var __iconNode17 = [
197
210
  ["path", { d: "M12 19v3", key: "npa21l" }],
198
211
  ["path", { d: "M15 9.34V5a3 3 0 0 0-5.68-1.33", key: "1gzdoj" }],
199
212
  ["path", { d: "M16.95 16.95A7 7 0 0 1 5 12v-2", key: "cqa7eg" }],
@@ -201,32 +214,32 @@ var __iconNode15 = [
201
214
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
202
215
  ["path", { d: "M9 9v3a3 3 0 0 0 5.12 2.12", key: "r2i35w" }]
203
216
  ];
204
- var MicOff = createLucideIcon("mic-off", __iconNode15);
217
+ var MicOff = createLucideIcon("mic-off", __iconNode17);
205
218
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/mic.js
206
- var __iconNode16 = [
219
+ var __iconNode18 = [
207
220
  ["path", { d: "M12 19v3", key: "npa21l" }],
208
221
  ["path", { d: "M19 10v2a7 7 0 0 1-14 0v-2", key: "1vc78b" }],
209
222
  ["rect", { x: "9", y: "2", width: "6", height: "13", rx: "3", key: "s6n7sd" }]
210
223
  ];
211
- var Mic = createLucideIcon("mic", __iconNode16);
224
+ var Mic = createLucideIcon("mic", __iconNode18);
212
225
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/monitor-off.js
213
- var __iconNode17 = [
226
+ var __iconNode19 = [
214
227
  ["path", { d: "M12 17v4", key: "1riwvh" }],
215
228
  ["path", { d: "M17 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 1.184-1.826", key: "cv7jms" }],
216
229
  ["path", { d: "m2 2 20 20", key: "1ooewy" }],
217
230
  ["path", { d: "M8 21h8", key: "1ev6f3" }],
218
231
  ["path", { d: "M8.656 3H20a2 2 0 0 1 2 2v10a2 2 0 0 1-.293 1.042", key: "z8ni2w" }]
219
232
  ];
220
- var MonitorOff = createLucideIcon("monitor-off", __iconNode17);
233
+ var MonitorOff = createLucideIcon("monitor-off", __iconNode19);
221
234
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/monitor.js
222
- var __iconNode18 = [
235
+ var __iconNode20 = [
223
236
  ["rect", { width: "20", height: "14", x: "2", y: "3", rx: "2", key: "48i651" }],
224
237
  ["line", { x1: "8", x2: "16", y1: "21", y2: "21", key: "1svkeh" }],
225
238
  ["line", { x1: "12", x2: "12", y1: "17", y2: "21", key: "vw1qmm" }]
226
239
  ];
227
- var Monitor = createLucideIcon("monitor", __iconNode18);
240
+ var Monitor = createLucideIcon("monitor", __iconNode20);
228
241
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/mouse-pointer-2.js
229
- var __iconNode19 = [
242
+ var __iconNode21 = [
230
243
  [
231
244
  "path",
232
245
  {
@@ -235,9 +248,9 @@ var __iconNode19 = [
235
248
  }
236
249
  ]
237
250
  ];
238
- var MousePointer2 = createLucideIcon("mouse-pointer-2", __iconNode19);
251
+ var MousePointer2 = createLucideIcon("mouse-pointer-2", __iconNode21);
239
252
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/mouse-pointer-click.js
240
- var __iconNode20 = [
253
+ var __iconNode22 = [
241
254
  ["path", { d: "M14 4.1 12 6", key: "ita8i4" }],
242
255
  ["path", { d: "m5.1 8-2.9-.8", key: "1go3kf" }],
243
256
  ["path", { d: "m6 12-1.9 2", key: "mnht97" }],
@@ -250,15 +263,15 @@ var __iconNode20 = [
250
263
  }
251
264
  ]
252
265
  ];
253
- var MousePointerClick = createLucideIcon("mouse-pointer-click", __iconNode20);
266
+ var MousePointerClick = createLucideIcon("mouse-pointer-click", __iconNode22);
254
267
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/pause.js
255
- var __iconNode21 = [
268
+ var __iconNode23 = [
256
269
  ["rect", { x: "14", y: "3", width: "5", height: "18", rx: "1", key: "kaeet6" }],
257
270
  ["rect", { x: "5", y: "3", width: "5", height: "18", rx: "1", key: "1wsw3u" }]
258
271
  ];
259
- var Pause = createLucideIcon("pause", __iconNode21);
272
+ var Pause = createLucideIcon("pause", __iconNode23);
260
273
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/play.js
261
- var __iconNode22 = [
274
+ var __iconNode24 = [
262
275
  [
263
276
  "path",
264
277
  {
@@ -267,18 +280,18 @@ var __iconNode22 = [
267
280
  }
268
281
  ]
269
282
  ];
270
- var Play = createLucideIcon("play", __iconNode22);
283
+ var Play = createLucideIcon("play", __iconNode24);
271
284
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/radio.js
272
- var __iconNode23 = [
285
+ var __iconNode25 = [
273
286
  ["path", { d: "M16.247 7.761a6 6 0 0 1 0 8.478", key: "1fwjs5" }],
274
287
  ["path", { d: "M19.075 4.933a10 10 0 0 1 0 14.134", key: "ehdyv1" }],
275
288
  ["path", { d: "M4.925 19.067a10 10 0 0 1 0-14.134", key: "1q22gi" }],
276
289
  ["path", { d: "M7.753 16.239a6 6 0 0 1 0-8.478", key: "r2q7qm" }],
277
290
  ["circle", { cx: "12", cy: "12", r: "2", key: "1c9p78" }]
278
291
  ];
279
- var Radio = createLucideIcon("radio", __iconNode23);
292
+ var Radio = createLucideIcon("radio", __iconNode25);
280
293
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/send.js
281
- var __iconNode24 = [
294
+ var __iconNode26 = [
282
295
  [
283
296
  "path",
284
297
  {
@@ -288,18 +301,18 @@ var __iconNode24 = [
288
301
  ],
289
302
  ["path", { d: "m21.854 2.147-10.94 10.939", key: "12cjpa" }]
290
303
  ];
291
- var Send = createLucideIcon("send", __iconNode24);
304
+ var Send = createLucideIcon("send", __iconNode26);
292
305
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/square.js
293
- var __iconNode25 = [
306
+ var __iconNode27 = [
294
307
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }]
295
308
  ];
296
- var Square = createLucideIcon("square", __iconNode25);
309
+ var Square = createLucideIcon("square", __iconNode27);
297
310
  // ../../node_modules/.bun/lucide-react@1.8.0+83d5fd7b249dbeef/node_modules/lucide-react/dist/esm/icons/x.js
298
- var __iconNode26 = [
311
+ var __iconNode28 = [
299
312
  ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
300
313
  ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
301
314
  ];
302
- var X = createLucideIcon("x", __iconNode26);
315
+ var X = createLucideIcon("x", __iconNode28);
303
316
  // src/buddy/BuddyVoiceBar.tsx
304
317
  import { useCallback as useCallback6, useContext as useContext2, useEffect as useEffect7, useRef as useRef8, useState as useState5 } from "react";
305
318
 
@@ -404,6 +417,7 @@ var NOTIFICATION_KIND = {
404
417
  Module: "module"
405
418
  };
406
419
  var PLAN_ATTR = "skippr.action-plan";
420
+ var LINK_CARD_ATTR = "skippr.link-card";
407
421
  var NAME_MAX_CHARS = 80;
408
422
 
409
423
  // src/context/LiveAgentContext.tsx
@@ -3090,6 +3104,7 @@ function useSession({
3090
3104
  appKey,
3091
3105
  getUserToken,
3092
3106
  userToken,
3107
+ userContext,
3093
3108
  onStart,
3094
3109
  onStartError,
3095
3110
  onDisconnect
@@ -3260,6 +3275,8 @@ function useSession({
3260
3275
  if (isRequestResponseMicMode(micMode))
3261
3276
  enabledControls.micMode = micMode;
3262
3277
  const requestAgentControls = Object.keys(enabledControls).length > 0 ? enabledControls : undefined;
3278
+ const primitiveContextEntries = Object.entries(userContext ?? {}).filter(([, value]) => typeof value === "string" || typeof value === "boolean" || typeof value === "number" && Number.isFinite(value));
3279
+ const requestUserContext = primitiveContextEntries.length > 0 ? Object.fromEntries(primitiveContextEntries) : undefined;
3263
3280
  try {
3264
3281
  let resolvedSessionId = existingSessionId;
3265
3282
  if (!resolvedSessionId) {
@@ -3287,7 +3304,8 @@ function useSession({
3287
3304
  captureMode,
3288
3305
  agentControls: requestAgentControls,
3289
3306
  adoptionGoalId,
3290
- autoStarted
3307
+ autoStarted,
3308
+ userContext: requestUserContext
3291
3309
  })
3292
3310
  });
3293
3311
  if (!startResp.ok) {
@@ -3319,7 +3337,7 @@ function useSession({
3319
3337
  isStartingRef.current = false;
3320
3338
  setIsStarting(false);
3321
3339
  }
3322
- }, [captureMode, bearerToken, authedFetch, onStart, onStartError]);
3340
+ }, [captureMode, bearerToken, authedFetch, onStart, onStartError, userContext]);
3323
3341
  const pauseSession = useCallback13(async () => {
3324
3342
  if (!sessionId || !bearerToken)
3325
3343
  return;
@@ -6837,7 +6855,7 @@ function ShadowHost({
6837
6855
  const hostRef = useRef23(null);
6838
6856
  const [shadowRoot, setShadowRoot] = useState20(null);
6839
6857
  const css = `/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
6840
- @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-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid}}}@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-emerald-400:oklch(76.5% .177 163.223);--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-font-weight-bold:700;--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-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-\\[3px\\]{inset:-3px}.skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\\:inset-y-0{inset-block:calc(var(--skippr-spacing)*0)}.skippr\\:-top-1{top:calc(var(--skippr-spacing)*-1)}.skippr\\:-top-6{top:calc(var(--skippr-spacing)*-6)}.skippr\\:-top-8{top:calc(var(--skippr-spacing)*-8)}.skippr\\:-top-\\[2px\\]{top:-2px}.skippr\\:-top-\\[3px\\]{top:-3px}.skippr\\:-top-\\[13px\\]{top:-13px}.skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\\:top-1\\/2{top:50%}.skippr\\:top-full{top:100%}.skippr\\:-right-1{right:calc(var(--skippr-spacing)*-1)}.skippr\\:-right-8{right:calc(var(--skippr-spacing)*-8)}.skippr\\:-right-\\[2px\\]{right:-2px}.skippr\\:-right-\\[6px\\]{right:-6px}.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-\\[4px\\]{right:4px}.skippr\\:-bottom-1{bottom:calc(var(--skippr-spacing)*-1)}.skippr\\:-bottom-\\[2px\\]{bottom:-2px}.skippr\\:bottom-3{bottom:calc(var(--skippr-spacing)*3)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-\\[calc\\(100\\%\\+11px\\)\\]{bottom:calc(100% + 11px)}.skippr\\:bottom-full{bottom:100%}.skippr\\:-left-8{left:calc(var(--skippr-spacing)*-8)}.skippr\\:-left-\\[2px\\]{left:-2px}.skippr\\:-left-\\[6px\\]{left:-6px}.skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\\:left-1\\/2{left:50%}.skippr\\:left-2{left:calc(var(--skippr-spacing)*2)}.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\\:z-10{z-index:10}.skippr\\:z-20{z-index:20}.skippr\\:z-\\[1\\]{z-index:1}.skippr\\:z-\\[2\\]{z-index:2}.skippr\\:z-\\[4\\]{z-index:4}.skippr\\:z-\\[5\\]{z-index:5}.skippr\\:z-\\[6\\]{z-index:6}.skippr\\:z-\\[7\\]{z-index:7}.skippr\\:z-\\[8\\]{z-index:8}.skippr\\:z-\\[9998\\]{z-index:9998}.skippr\\:z-\\[9999\\]{z-index:9999}.skippr\\:z-\\[10000\\]{z-index:10000}.skippr\\:order-first{order:-9999}.skippr\\:order-last{order:9999}.skippr\\:mx-auto{margin-inline:auto}.skippr\\:-mt-\\[5px\\]{margin-top:-5px}.skippr\\:-mt-\\[27px\\]{margin-top:-27px}.skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\\:mt-1\\.5{margin-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:mt-2{margin-top:calc(var(--skippr-spacing)*2)}.skippr\\:mt-3{margin-top:calc(var(--skippr-spacing)*3)}.skippr\\:mt-3\\.5{margin-top:calc(var(--skippr-spacing)*3.5)}.skippr\\:mt-\\[1px\\]{margin-top:1px}.skippr\\:mt-\\[8px\\]{margin-top:8px}.skippr\\:mt-\\[9px\\]{margin-top:9px}.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\\:mb-\\[14px\\]{margin-bottom:14px}.skippr\\:-ml-\\[2px\\]{margin-left:-2px}.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\\:ml-auto{margin-left:auto}.skippr\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skippr\\:block{display:block}.skippr\\:flex{display:flex}.skippr\\:hidden{display:none}.skippr\\:inline-flex{display:inline-flex}.skippr\\:aspect-square{aspect-ratio:1}.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{width:calc(var(--skippr-spacing)*3);height:calc(var(--skippr-spacing)*3)}.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-\\[3px\\]{width:3px;height:3px}.skippr\\:size-\\[4px\\]{width:4px;height:4px}.skippr\\:size-\\[5px\\]{width:5px;height:5px}.skippr\\:size-\\[6px\\]{width:6px;height:6px}.skippr\\:size-\\[7px\\]{width:7px;height:7px}.skippr\\:size-\\[8px\\]{width:8px;height:8px}.skippr\\:size-\\[9px\\]{width:9px;height:9px}.skippr\\:size-\\[10px\\]{width:10px;height:10px}.skippr\\:size-\\[11px\\]{width:11px;height:11px}.skippr\\:size-\\[12px\\]{width:12px;height:12px}.skippr\\:size-\\[13px\\]{width:13px;height:13px}.skippr\\:size-\\[14px\\]{width:14px;height:14px}.skippr\\:size-\\[15px\\]{width:15px;height:15px}.skippr\\:size-\\[16px\\]{width:16px;height:16px}.skippr\\:size-\\[17px\\]{width:17px;height:17px}.skippr\\:size-\\[18px\\]{width:18px;height:18px}.skippr\\:size-\\[19px\\]{width:19px;height:19px}.skippr\\:size-\\[20px\\]{width:20px;height:20px}.skippr\\:size-\\[22px\\]{width:22px;height:22px}.skippr\\:size-\\[26px\\]{width:26px;height:26px}.skippr\\:size-\\[28px\\]{width:28px;height:28px}.skippr\\:size-\\[30px\\]{width:30px;height:30px}.skippr\\:size-\\[32px\\]{width:32px;height:32px}.skippr\\:size-\\[34px\\]{width:34px;height:34px}.skippr\\:size-\\[38px\\]{width:38px;height:38px}.skippr\\:size-\\[46px\\]{width:46px;height:46px}.skippr\\:size-full{width:100%;height:100%}.skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}.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-\\[5px\\]{height:5px}.skippr\\:h-\\[14px\\]{height:14px}.skippr\\:h-\\[16px\\]{height:16px}.skippr\\:h-\\[18\\.5px\\]{height:18.5px}.skippr\\:h-\\[18px\\]{height:18px}.skippr\\:h-\\[22px\\]{height:22px}.skippr\\:h-\\[24px\\]{height:24px}.skippr\\:h-\\[26px\\]{height:26px}.skippr\\:h-\\[36px\\]{height:36px}.skippr\\:h-\\[38px\\]{height:38px}.skippr\\:h-\\[48px\\]{height:48px}.skippr\\:h-\\[54px\\]{height:54px}.skippr\\:h-full{height:100%}.skippr\\:h-px{height:1px}.skippr\\:max-h-\\[132px\\]{max-height:132px}.skippr\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\\:min-h-11{min-height:calc(var(--skippr-spacing)*11)}.skippr\\:min-h-\\[16px\\]{min-height:16px}.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-\\[2\\.5px\\]{width:2.5px}.skippr\\:w-\\[2px\\]{width:2px}.skippr\\:w-\\[3px\\]{width:3px}.skippr\\:w-\\[14px\\]{width:14px}.skippr\\:w-\\[15\\.4px\\]{width:15.4px}.skippr\\:w-\\[15px\\]{width:15px}.skippr\\:w-\\[16px\\]{width:16px}.skippr\\:w-\\[22px\\]{width:22px}.skippr\\:w-\\[36px\\]{width:36px}.skippr\\:w-\\[38px\\]{width:38px}.skippr\\:w-\\[50px\\]{width:50px}.skippr\\:w-\\[148px\\]{width:148px}.skippr\\:w-\\[255px\\]{width:255px}.skippr\\:w-fit{width:fit-content}.skippr\\:w-full{width:100%}.skippr\\:w-px{width:1px}.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\\:max-w-\\[280px\\]{max-width:280px}.skippr\\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\\:min-w-11{min-width:calc(var(--skippr-spacing)*11)}.skippr\\:min-w-\\[96px\\]{min-width:96px}.skippr\\:flex-1{flex:1}.skippr\\:shrink-0{flex-shrink:0}.skippr\\:origin-bottom{transform-origin:bottom}.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{transform-origin:top}.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-3{--tw-translate-x:calc(var(--skippr-spacing)*-3);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-3{--tw-translate-x:calc(var(--skippr-spacing)*3);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\\:-translate-y-\\[4px\\]{--tw-translate-y:calc(4px*-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\\:scale-\\[0\\.94\\]{scale:.94}.skippr\\:-rotate-90{rotate:-90deg}.skippr\\:rotate-45{rotate:45deg}.skippr\\:rotate-\\[225deg\\]{rotate:225deg}.skippr\\:\\[animation\\:skippr-agent-in_200ms_ease-out\\]{animation:.2s ease-out skippr-agent-in}.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-block-reveal_320ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.32s cubic-bezier(.22,1,.36,1) skippr-block-reveal}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0\\.18s_infinite\\]{animation:1.1s ease-in-out .18s infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0\\.36s_infinite\\]{animation:1.1s ease-in-out .36s infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0s_infinite\\]{animation:1.1s ease-in-out infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-evaporate_3\\.2s_ease-in_forwards\\]{animation:3.2s ease-in forwards skippr-evaporate}.skippr\\:\\[animation\\:skippr-fade-in_0\\.2s_ease\\]{animation:.2s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.16s_ease\\]{animation:.16s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.22s_ease\\]{animation:.22s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.24s_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.24s cubic-bezier(.22,1,.36,1) skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.25s_ease\\]{animation:.25s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-out_0\\.18s_ease-in_forwards\\]{animation:.18s ease-in forwards skippr-fade-out}.skippr\\:\\[animation\\:skippr-finger-tap_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-finger-tap}.skippr\\:\\[animation\\:skippr-mote-rise_1\\.6s_ease-out_infinite\\]{animation:1.6s ease-out infinite skippr-mote-rise}.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-pop_0\\.2s_ease\\]{animation:.2s skippr-pop}.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\\)\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) skippr-tip-in}.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_280ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.28s cubic-bezier(.22,1,.36,1) skippr-toolset-pop}.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-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-flow{animation:3.6s linear infinite skippr-flow}.skippr\\:animate-skippr-press{animation:.5s ease-in-out skippr-press}.skippr\\:animate-skippr-ptt-transmit{animation:1.4s ease-out infinite skippr-ptt-transmit}.skippr\\:animate-skippr-rec-ring{animation:2s ease-out infinite skippr-rec-ring}.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-skippr-voice-pulse{animation:1.6s ease-out infinite skippr-voice-pulse}.skippr\\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\\:cursor-default{cursor:default}.skippr\\:cursor-grab{cursor:grab}.skippr\\:cursor-not-allowed{cursor:not-allowed}.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\\:flex-row{flex-direction:row}.skippr\\:flex-row-reverse{flex-direction:row-reverse}.skippr\\:items-baseline{align-items:baseline}.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-0\\.5{gap:calc(var(--skippr-spacing)*.5)}.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-\\[1px\\]{gap:1px}.skippr\\:gap-\\[2px\\]{gap:2px}.skippr\\:gap-\\[3px\\]{gap:3px}.skippr\\:gap-\\[4px\\]{gap:4px}.skippr\\:gap-\\[5px\\]{gap:5px}.skippr\\:gap-\\[6px\\]{gap:6px}.skippr\\:gap-\\[7px\\]{gap:7px}.skippr\\:gap-\\[8px\\]{gap:8px}.skippr\\:gap-\\[9px\\]{gap:9px}: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)))}:where(.skippr\\:space-y-\\[6px\\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(6px*var(--tw-space-y-reverse));margin-block-end:calc(6px*calc(1 - var(--tw-space-y-reverse)))}.skippr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skippr\\:overflow-hidden{overflow:hidden}.skippr\\:overflow-visible{overflow:visible}.skippr\\:overflow-y-auto{overflow-y:auto}.skippr\\:overscroll-contain{overscroll-behavior:contain}.skippr\\:rounded{border-radius:.25rem}.skippr\\:rounded-2xl{border-radius:1.125rem}.skippr\\:rounded-\\[1rem\\]{border-radius:1rem}.skippr\\:rounded-\\[5px\\]{border-radius:5px}.skippr\\:rounded-\\[10px\\]{border-radius:10px}.skippr\\:rounded-\\[11px\\]{border-radius:11px}.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-md{border-radius:.5rem}.skippr\\:rounded-sm{border-radius:.375rem}.skippr\\:rounded-xl{border-radius:.875rem}.skippr\\:rounded-t-\\[6px\\]{border-top-left-radius:6px;border-top-right-radius:6px}.skippr\\:rounded-t-\\[18px\\]{border-top-left-radius:18px;border-top-right-radius:18px}.skippr\\:rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.skippr\\:rounded-l-\\[6px\\]{border-top-left-radius:6px;border-bottom-left-radius:6px}.skippr\\:rounded-l-\\[18px\\]{border-top-left-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.skippr\\:rounded-tl-\\[6px\\]{border-top-left-radius:6px}.skippr\\:rounded-tl-md{border-top-left-radius:.5rem}.skippr\\:rounded-r-\\[6px\\]{border-top-right-radius:6px;border-bottom-right-radius:6px}.skippr\\:rounded-r-\\[18px\\]{border-top-right-radius:18px;border-bottom-right-radius:18px}.skippr\\:rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.skippr\\:rounded-tr-\\[6px\\]{border-top-right-radius:6px}.skippr\\:rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.skippr\\:rounded-b-\\[18px\\]{border-bottom-right-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-b-full{border-bottom-right-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.skippr\\:rounded-bl-\\[6px\\]{border-bottom-left-radius:6px}.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-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.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-none{--tw-border-style:none;border-style:none}.skippr\\:border-\\[\\#d8d3ca\\]{border-color:#d8d3ca}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.1\\)\\]{border-color:#2d2d3f1a}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{border-color:#2d2d3f0f}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.08\\)\\]{border-color:#2d2d3f14}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.12\\)\\]{border-color:#2d2d3f1f}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{border-color:#2d2d3f24}.skippr\\:border-\\[var\\(--skippr-brand-ring\\)\\]{border-color:var(--skippr-brand-ring)}.skippr\\:border-black\\/25{border-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-black\\/25{border-color:color-mix(in oklab,var(--skippr-color-black)25%,transparent)}}.skippr\\:border-border{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-brand{border-color:var(--skippr-brand,#2bc0ae)}.skippr\\:border-input{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-primary\\/20{border-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-primary\\/20{border-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)20%,transparent)}}.skippr\\:border-transparent{border-color:#0000}.skippr\\:border-white,.skippr\\:border-white\\/30{border-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-white\\/30{border-color:color-mix(in oklab,var(--skippr-color-white)30%,transparent)}}.skippr\\:border-t-brand{border-top-color:var(--skippr-brand,#2bc0ae)}.skippr\\:border-t-white{border-top-color:var(--skippr-color-white)}.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-\\[\\#2D2D3F\\]{background-color:#2d2d3f}.skippr\\:bg-\\[\\#F1EFEA\\]{background-color:#f1efea}.skippr\\:bg-\\[\\#b9b4ab\\]{background-color:#b9b4ab}.skippr\\:bg-\\[\\#dc2626\\]{background-color:#dc2626}.skippr\\:bg-\\[\\#eeeae4\\]{background-color:#eeeae4}.skippr\\:bg-\\[\\#f2f0eb\\]{background-color:#f2f0eb}.skippr\\:bg-\\[\\#f4ecd8\\]{background-color:#f4ecd8}.skippr\\:bg-\\[\\#f4f2ee\\]{background-color:#f4f2ee}.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-brand,.skippr\\:bg-brand\\/50{background-color:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-brand\\/50{background-color:color-mix(in oklab,var(--skippr-brand,#2bc0ae)50%,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-foreground{background-color:oklch(14.7% .004 49.25)}.skippr\\:bg-foreground\\/10{background-color:oklab(14.7% .00261104 .00303026/.1)}.skippr\\:bg-launcher{background-color:#2d2d3f}.skippr\\:bg-muted-foreground\\/40{background-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:bg-neutral-100{background-color:var(--skippr-color-neutral-100)}.skippr\\:bg-primary,.skippr\\:bg-primary\\/10{background-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-primary\\/10{background-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)10%,transparent)}}.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-500{background-color:var(--skippr-color-red-500)}.skippr\\:bg-secondary{background-color:#ffdfb5}.skippr\\:bg-transparent{background-color:#0000}.skippr\\:bg-white,.skippr\\:bg-white\\/40{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/40{background-color:color-mix(in oklab,var(--skippr-color-white)40%,transparent)}}.skippr\\:bg-white\\/70{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/70{background-color:color-mix(in oklab,var(--skippr-color-white)70%,transparent)}}.skippr\\:bg-white\\/80{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/80{background-color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:bg-white\\/95{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/95{background-color:color-mix(in oklab,var(--skippr-color-white)95%,transparent)}}.skippr\\:fill-brand{fill:var(--skippr-brand,#2bc0ae)}.skippr\\:fill-current{fill:currentColor}.skippr\\:fill-primary\\/30{fill:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:fill-primary\\/30{fill:color-mix(in oklab,var(--skippr-brand,#2d2b3d)30%,transparent)}}.skippr\\:fill-white{fill:var(--skippr-color-white)}.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\\:object-cover{object-fit:cover}.skippr\\:p-0{padding:calc(var(--skippr-spacing)*0)}.skippr\\:p-1\\.5{padding:calc(var(--skippr-spacing)*1.5)}.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\\:p-\\[2px\\]{padding:2px}.skippr\\:p-\\[3px\\]{padding:3px}.skippr\\:p-\\[9px\\]{padding:9px}.skippr\\:p-\\[14px\\]{padding:14px}.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-3\\.5{padding-inline:calc(var(--skippr-spacing)*3.5)}.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\\:px-\\[5px\\]{padding-inline:5px}.skippr\\:px-\\[7px\\]{padding-inline:7px}.skippr\\:px-\\[8px\\]{padding-inline:8px}.skippr\\:px-\\[9px\\]{padding-inline:9px}.skippr\\:px-\\[10px\\]{padding-inline:10px}.skippr\\:px-\\[11px\\]{padding-inline:11px}.skippr\\:px-\\[12px\\]{padding-inline:12px}.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\\:py-6{padding-block:calc(var(--skippr-spacing)*6)}.skippr\\:py-\\[1px\\]{padding-block:1px}.skippr\\:py-\\[3px\\]{padding-block:3px}.skippr\\:py-\\[4px\\]{padding-block:4px}.skippr\\:py-\\[5px\\]{padding-block:5px}.skippr\\:py-\\[6px\\]{padding-block:6px}.skippr\\:py-\\[7px\\]{padding-block:7px}.skippr\\:pt-1\\.5{padding-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:pt-\\[8px\\]{padding-top:8px}.skippr\\:pt-\\[9px\\]{padding-top:9px}.skippr\\:pr-2\\.5{padding-right:calc(var(--skippr-spacing)*2.5)}.skippr\\:pr-3{padding-right:calc(var(--skippr-spacing)*3)}.skippr\\:pr-\\[5px\\]{padding-right:5px}.skippr\\:pr-\\[6px\\]{padding-right:6px}.skippr\\:pr-\\[9px\\]{padding-right:9px}.skippr\\:pr-\\[10px\\]{padding-right:10px}.skippr\\:pb-2{padding-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:pb-\\[8px\\]{padding-bottom:8px}.skippr\\:pb-\\[10px\\]{padding-bottom:10px}.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\\:pl-\\[9px\\]{padding-left:9px}.skippr\\:pl-\\[13px\\]{padding-left:13px}.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-\\[8\\.5px\\]{font-size:8.5px}.skippr\\:text-\\[9\\.5px\\]{font-size:9.5px}.skippr\\:text-\\[9px\\]{font-size:9px}.skippr\\:text-\\[10\\.5px\\]{font-size:10.5px}.skippr\\:text-\\[10px\\]{font-size:10px}.skippr\\:text-\\[11\\.5px\\]{font-size:11.5px}.skippr\\:text-\\[11px\\]{font-size:11px}.skippr\\:text-\\[12\\.5px\\]{font-size:12.5px}.skippr\\:text-\\[12px\\]{font-size:12px}.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-\\[1\\.25\\]{--tw-leading:1.25;line-height:1.25}.skippr\\:leading-none{--tw-leading:1;line-height:1}.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\\:font-bold{--tw-font-weight:var(--skippr-font-weight-bold);font-weight:var(--skippr-font-weight-bold)}.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\\:tracking-\\[-0\\.01em\\]{--tw-tracking:-.01em;letter-spacing:-.01em}.skippr\\:tracking-\\[0\\.02em\\]{--tw-tracking:.02em;letter-spacing:.02em}.skippr\\:tracking-\\[0\\.05em\\]{--tw-tracking:.05em;letter-spacing:.05em}.skippr\\:whitespace-nowrap{white-space:nowrap}.skippr\\:text-\\[\\#2D2D3F\\]{color:#2d2d3f}.skippr\\:text-\\[\\#5a5650\\]{color:#5a5650}.skippr\\:text-\\[\\#5c5850\\]{color:#5c5850}.skippr\\:text-\\[\\#6b6660\\]{color:#6b6660}.skippr\\:text-\\[\\#8b877f\\]{color:#8b877f}.skippr\\:text-\\[\\#92400e\\]{color:#92400e}.skippr\\:text-\\[\\#a8a49c\\]{color:#a8a49c}.skippr\\:text-\\[\\#b8b4ac\\]{color:#b8b4ac}.skippr\\:text-\\[\\#c9c5bd\\]{color:#c9c5bd}.skippr\\:text-\\[\\#cbc7bf\\]{color:#cbc7bf}.skippr\\:text-\\[\\#dc2626\\]{color:#dc2626}.skippr\\:text-\\[var\\(--skippr-brand-deep\\)\\]{color:var(--skippr-brand-deep)}.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,.skippr\\:text-black\\/40{color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:text-black\\/40{color:color-mix(in oklab,var(--skippr-color-black)40%,transparent)}}.skippr\\:text-brand{color:var(--skippr-brand,#2bc0ae)}.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-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\\/60{color:oklab(55.3% .00687528 .0110332/.6)}.skippr\\:text-neutral-500{color:var(--skippr-color-neutral-500)}.skippr\\:text-neutral-700{color:var(--skippr-color-neutral-700)}.skippr\\:text-primary{color:var(--skippr-brand,#2d2b3d)}.skippr\\:text-primary-foreground{color:var(--skippr-brand-foreground,#fff)}.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,.skippr\\:text-white\\/60{color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:text-white\\/60{color:color-mix(in oklab,var(--skippr-color-white)60%,transparent)}}.skippr\\:capitalize{text-transform:capitalize}.skippr\\:uppercase{text-transform:uppercase}.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-\\[-3px_0_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:-3px 0 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[-4px_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:-4px 6px 18px var(--tw-shadow-color,#2d2d3f29);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_8px_30px_rgba\\(15\\,18\\,26\\,0\\.32\\)\\]{--tw-shadow:-6px 8px 30px var(--tw-shadow-color,#0f121a52);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_-3px_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:0 -3px 14px var(--tw-shadow-color,var(--skippr-brand-halo));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_-6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 -6px 18px var(--tw-shadow-color,#2d2d3f29);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_0_0_1\\.5px_rgba\\(255\\,255\\,255\\,0\\.85\\)\\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,#ffffffd9);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_0_0_4px_var\\(--skippr-brand-ring\\)\\]{--tw-shadow:0 0 0 4px var(--tw-shadow-color,var(--skippr-brand-ring));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_1px_2px_rgba\\(45\\,45\\,63\\,0\\.05\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#2d2d3f0d);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_1px_2px_rgba\\(45\\,45\\,63\\,0\\.08\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#2d2d3f14);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_2px_6px_rgba\\(0\\,0\\,0\\,0\\.28\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#00000047);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_2px_6px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#2d2d3f24);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_3px_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:0 3px 14px var(--tw-shadow-color,var(--skippr-brand-halo));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_12px_rgba\\(45\\,45\\,63\\,0\\.1\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#2d2d3f1a);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\\.12\\)\\]{--tw-shadow:0 4px 14px 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_6px_16px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{--tw-shadow:0 6px 16px var(--tw-shadow-color,#2d2d3f24);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_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 6px 18px var(--tw-shadow-color,#2d2d3f29);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_22px_rgba\\(45\\,45\\,63\\,0\\.12\\)\\,0_1px_3px_rgba\\(45\\,45\\,63\\,0\\.04\\)\\]{--tw-shadow:0 8px 22px var(--tw-shadow-color,#2d2d3f1f),0 1px 3px var(--tw-shadow-color,#2d2d3f0a);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\\(45\\,45\\,63\\,0\\.14\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#2d2d3f24),0 2px 6px var(--tw-shadow-color,#2d2d3f0f);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_26px_rgba\\(45\\,45\\,63\\,0\\.13\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.05\\)\\]{--tw-shadow:0 10px 26px var(--tw-shadow-color,#2d2d3f21),0 2px 6px var(--tw-shadow-color,#2d2d3f0d);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_28px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 10px 28px var(--tw-shadow-color,#2d2d3f29);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_30px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\,0_0_0_1\\.5px_var\\(--skippr-brand-ring\\)\\]{--tw-shadow:0 10px 30px var(--tw-shadow-color,#2d2d3f24),0 0 0 1.5px var(--tw-shadow-color,var(--skippr-brand-ring));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-\\[0_14px_34px_rgba\\(45\\,45\\,63\\,0\\.15\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{--tw-shadow:0 14px 34px var(--tw-shadow-color,#2d2d3f26),0 2px 6px var(--tw-shadow-color,#2d2d3f0f);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-\\[3px_0_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:3px 0 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[4px_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:4px 6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[inset_0_0_0_1\\.5px_var\\(--skippr-brand\\,\\#2bc0ae\\)\\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--skippr-brand,#2bc0ae));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-inner{--tw-shadow:inset 0 2px 4px 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\\: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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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:var(--skippr-brand,#2bc0ae)}.skippr\\:ring-white\\/15{--tw-ring-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-white\\/15{--tw-ring-color:color-mix(in oklab,var(--skippr-color-white)15%,transparent)}}.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-\\[filter\\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[gap\\]{transition-property:gap;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.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-\\[left\\]{transition-property:left;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\\,height\\,background-color\\,border-color\\]{transition-property:width,height,background-color,border-color;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-shadow{transition-property:box-shadow;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-100{--tw-duration:.1s;transition-duration:.1s}.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\\:duration-\\[400ms\\]{--tw-duration:.4s;transition-duration:.4s}.skippr\\:ease-\\[cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{--tw-ease:cubic-bezier(.22,1,.36,1);transition-timing-function:cubic-bezier(.22,1,.36,1)}.skippr\\:ease-\\[cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.3,.64,1);transition-timing-function:cubic-bezier(.34,1.3,.64,1)}.skippr\\:ease-\\[cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.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-\\[\\#b0aca4\\]::placeholder{color:#b0aca4}@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-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:hover\\:bg-\\[\\#3a384b\\]:hover{background-color:#3a384b}.skippr\\:hover\\:bg-\\[\\#3d3d52\\]:hover{background-color:#3d3d52}.skippr\\:hover\\:bg-\\[\\#f2f0eb\\]:hover{background-color:#f2f0eb}.skippr\\:hover\\:bg-\\[\\#f4f2ee\\]:hover{background-color:#f4f2ee}.skippr\\:hover\\:bg-\\[\\#f6f4f0\\]:hover{background-color:#f6f4f0}.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-foreground\\/8:hover{background-color:oklab(14.7% .00261104 .00303026/.08)}.skippr\\:hover\\:bg-muted:hover{background-color:oklch(97% .001 106.424)}.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\\/90:hover{background-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)90%,transparent)}}.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\\:bg-transparent:hover{background-color:#0000}.skippr\\:hover\\:bg-white\\/20:hover{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--skippr-color-white)20%,transparent)}}.skippr\\:hover\\:text-\\[\\#2D2D3F\\]:hover{color:#2d2d3f}.skippr\\:hover\\:text-\\[\\#5a5650\\]:hover{color:#5a5650}.skippr\\:hover\\:text-\\[\\#8b877f\\]:hover{color:#8b877f}.skippr\\:hover\\:text-\\[\\#b8b4ac\\]:hover{color:#b8b4ac}.skippr\\:hover\\:text-accent-foreground:hover{color:oklch(21.6% .006 56.043)}.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\\:hover\\:brightness-\\[1\\.04\\]:hover{--tw-brightness:brightness(1.04);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\\:hover\\:brightness-\\[1\\.06\\]:hover{--tw-brightness:brightness(1.06);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\\:border-\\[var\\(--skippr-brand-ring\\)\\]:focus-visible{border-color:var(--skippr-brand-ring)}.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-\\[var\\(--skippr-brand-ring\\)\\]:focus-visible{--tw-ring-color:var(--skippr-brand-ring)}.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-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.skippr\\:focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.skippr\\:focus-visible\\:outline-\\[var\\(--skippr-brand\\)\\]:focus-visible{outline-color:var(--skippr-brand)}.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\\:active\\:scale-\\[0\\.98\\]:active{scale:.98}.skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.skippr\\:disabled\\:cursor-default:disabled{cursor:default}.skippr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.skippr\\:disabled\\:opacity-50:disabled{opacity:.5}.skippr\\:disabled\\:opacity-60:disabled{opacity:.6}.skippr\\:disabled\\:opacity-80:disabled{opacity:.8}@media (hover:hover){.skippr\\:disabled\\:hover\\:bg-\\[\\#2D2D3F\\]:disabled:hover{background-color:#2d2d3f}.skippr\\:disabled\\:hover\\:bg-white:disabled:hover{background-color:var(--skippr-color-white)}}@media (prefers-reduced-motion:reduce){.skippr\\:motion-reduce\\:hidden{display:none}.skippr\\:motion-reduce\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.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)}}:host{--skippr-brand-active:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-active:color-mix(in srgb,var(--skippr-brand,#2bc0ae)93%,#000)}}:host{--skippr-brand-deep:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-deep:color-mix(in srgb,var(--skippr-brand,#2bc0ae)78%,#000)}}:host{--skippr-brand-ring:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-ring:color-mix(in srgb,var(--skippr-brand,#2bc0ae)22%,transparent)}}:host{--skippr-brand-halo:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-halo:color-mix(in srgb,var(--skippr-brand,#2bc0ae)40%,transparent)}}:host{--skippr-brand-glow:linear-gradient(90deg,var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae))}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-glow:linear-gradient(90deg,var(--skippr-brand,#2bc0ae),color-mix(in srgb,var(--skippr-brand,#2bc0ae)55%,#fff),color-mix(in srgb,var(--skippr-brand,#2bc0ae)72%,#fff),var(--skippr-brand,#2bc0ae),color-mix(in srgb,var(--skippr-brand,#2bc0ae)42%,#fff))}}@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-rec-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)55%,transparent)}70%{box-shadow:0 0 0 11px #0000}to{box-shadow:0 0 #0000}}@keyframes skippr-voice-pulse{0%{box-shadow:0 0 0 0 var(--skippr-pulse-color,#2bc0ae80)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}@keyframes skippr-ptt-transmit{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)60%,transparent),0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)35%,transparent)}70%{box-shadow:0 0 0 9px #0000,0 0 0 16px #0000}to{box-shadow:0 0 #0000,0 0 #0000}}@keyframes skippr-annotation-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)50%,transparent)}50%{box-shadow:0 0 0 6px #0000}}@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-evaporate{0%{opacity:1;filter:blur();transform:translateY(0)scale(1)}55%{opacity:.85;filter:blur()}to{opacity:0;filter:blur(2.5px);transform:translateY(-7px)scale(.965)}}@keyframes skippr-mote-rise{0%{opacity:0;transform:translateY(2px)scale(.5)}25%{opacity:.85}to{opacity:0;transform:translateY(-24px)scale(1)}}@keyframes skippr-flow{0%{background-position:0%}50%{background-position:100%}to{background-position: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)}}@keyframes skippr-pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes skippr-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.05)}}@keyframes skippr-buddy-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes skippr-buddy-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes skippr-buddy-pop{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes skippr-buddy-sleep{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(1px)scale(.995)}}@keyframes skippr-buddy-zfloat{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@keyframes skippr-peek-left{0%,20%{transform:translate(-58%)}46%,66%{transform:translate(0)}92%,to{transform:translate(-58%)}}@keyframes skippr-peek-right{0%,20%{transform:translate(58%)}46%,66%{transform:translate(0)}92%,to{transform:translate(58%)}}.skippr-peek-left{animation:3.6s ease-in-out infinite skippr-peek-left}.skippr-peek-right{animation:3.6s ease-in-out infinite skippr-peek-right}@keyframes skippr-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}@keyframes skippr-block-reveal{0%{opacity:0;max-height:0;transform:translateY(-4px)}55%{opacity:1}to{opacity:1;max-height:260px;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){[style*=skippr-blink],[style*=skippr-buddy-bob],[style*=skippr-buddy-breathe],[style*=skippr-buddy-pop],[style*=skippr-buddy-sleep],[style*=skippr-buddy-zfloat],.skippr-peek-left,.skippr-peek-right{animation-play-state:paused}}.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-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@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}}`;
6858
+ @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-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-outline-style:solid}}}@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-emerald-400:oklch(76.5% .177 163.223);--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-font-weight-bold:700;--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-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-\\[3px\\]{inset:-3px}.skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\\:inset-y-0{inset-block:calc(var(--skippr-spacing)*0)}.skippr\\:-top-1{top:calc(var(--skippr-spacing)*-1)}.skippr\\:-top-6{top:calc(var(--skippr-spacing)*-6)}.skippr\\:-top-8{top:calc(var(--skippr-spacing)*-8)}.skippr\\:-top-\\[2px\\]{top:-2px}.skippr\\:-top-\\[3px\\]{top:-3px}.skippr\\:-top-\\[13px\\]{top:-13px}.skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\\:top-1\\/2{top:50%}.skippr\\:top-\\[8px\\]{top:8px}.skippr\\:top-full{top:100%}.skippr\\:-right-1{right:calc(var(--skippr-spacing)*-1)}.skippr\\:-right-8{right:calc(var(--skippr-spacing)*-8)}.skippr\\:-right-\\[2px\\]{right:-2px}.skippr\\:-right-\\[6px\\]{right:-6px}.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-\\[4px\\]{right:4px}.skippr\\:right-\\[8px\\]{right:8px}.skippr\\:-bottom-1{bottom:calc(var(--skippr-spacing)*-1)}.skippr\\:-bottom-\\[2px\\]{bottom:-2px}.skippr\\:bottom-3{bottom:calc(var(--skippr-spacing)*3)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-\\[calc\\(100\\%\\+11px\\)\\]{bottom:calc(100% + 11px)}.skippr\\:bottom-full{bottom:100%}.skippr\\:-left-8{left:calc(var(--skippr-spacing)*-8)}.skippr\\:-left-\\[2px\\]{left:-2px}.skippr\\:-left-\\[6px\\]{left:-6px}.skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\\:left-1\\/2{left:50%}.skippr\\:left-2{left:calc(var(--skippr-spacing)*2)}.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\\:z-10{z-index:10}.skippr\\:z-20{z-index:20}.skippr\\:z-\\[1\\]{z-index:1}.skippr\\:z-\\[2\\]{z-index:2}.skippr\\:z-\\[4\\]{z-index:4}.skippr\\:z-\\[5\\]{z-index:5}.skippr\\:z-\\[6\\]{z-index:6}.skippr\\:z-\\[7\\]{z-index:7}.skippr\\:z-\\[8\\]{z-index:8}.skippr\\:z-\\[9998\\]{z-index:9998}.skippr\\:z-\\[9999\\]{z-index:9999}.skippr\\:z-\\[10000\\]{z-index:10000}.skippr\\:order-first{order:-9999}.skippr\\:order-last{order:9999}.skippr\\:mx-auto{margin-inline:auto}.skippr\\:-mt-1{margin-top:calc(var(--skippr-spacing)*-1)}.skippr\\:-mt-\\[5px\\]{margin-top:-5px}.skippr\\:-mt-\\[27px\\]{margin-top:-27px}.skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\\:mt-1\\.5{margin-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:mt-2{margin-top:calc(var(--skippr-spacing)*2)}.skippr\\:mt-3{margin-top:calc(var(--skippr-spacing)*3)}.skippr\\:mt-3\\.5{margin-top:calc(var(--skippr-spacing)*3.5)}.skippr\\:mt-\\[1px\\]{margin-top:1px}.skippr\\:mt-\\[8px\\]{margin-top:8px}.skippr\\:mt-\\[9px\\]{margin-top:9px}.skippr\\:-mr-1{margin-right:calc(var(--skippr-spacing)*-1)}.skippr\\:mr-7{margin-right:calc(var(--skippr-spacing)*7)}.skippr\\:mr-\\[22px\\]{margin-right:22px}.skippr\\:-mb-\\[5px\\]{margin-bottom:-5px}.skippr\\:mb-1{margin-bottom:calc(var(--skippr-spacing)*1)}.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\\:mb-\\[14px\\]{margin-bottom:14px}.skippr\\:-ml-\\[2px\\]{margin-left:-2px}.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\\:ml-auto{margin-left:auto}.skippr\\:line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.skippr\\:block{display:block}.skippr\\:flex{display:flex}.skippr\\:hidden{display:none}.skippr\\:inline-flex{display:inline-flex}.skippr\\:aspect-square{aspect-ratio:1}.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{width:calc(var(--skippr-spacing)*3);height:calc(var(--skippr-spacing)*3)}.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-\\[3px\\]{width:3px;height:3px}.skippr\\:size-\\[4px\\]{width:4px;height:4px}.skippr\\:size-\\[5px\\]{width:5px;height:5px}.skippr\\:size-\\[6px\\]{width:6px;height:6px}.skippr\\:size-\\[7px\\]{width:7px;height:7px}.skippr\\:size-\\[8px\\]{width:8px;height:8px}.skippr\\:size-\\[9px\\]{width:9px;height:9px}.skippr\\:size-\\[10px\\]{width:10px;height:10px}.skippr\\:size-\\[11px\\]{width:11px;height:11px}.skippr\\:size-\\[12px\\]{width:12px;height:12px}.skippr\\:size-\\[13px\\]{width:13px;height:13px}.skippr\\:size-\\[14px\\]{width:14px;height:14px}.skippr\\:size-\\[15px\\]{width:15px;height:15px}.skippr\\:size-\\[16px\\]{width:16px;height:16px}.skippr\\:size-\\[17px\\]{width:17px;height:17px}.skippr\\:size-\\[18px\\]{width:18px;height:18px}.skippr\\:size-\\[19px\\]{width:19px;height:19px}.skippr\\:size-\\[20px\\]{width:20px;height:20px}.skippr\\:size-\\[22px\\]{width:22px;height:22px}.skippr\\:size-\\[26px\\]{width:26px;height:26px}.skippr\\:size-\\[28px\\]{width:28px;height:28px}.skippr\\:size-\\[30px\\]{width:30px;height:30px}.skippr\\:size-\\[32px\\]{width:32px;height:32px}.skippr\\:size-\\[34px\\]{width:34px;height:34px}.skippr\\:size-\\[38px\\]{width:38px;height:38px}.skippr\\:size-\\[46px\\]{width:46px;height:46px}.skippr\\:size-full{width:100%;height:100%}.skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}.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-\\[5px\\]{height:5px}.skippr\\:h-\\[14px\\]{height:14px}.skippr\\:h-\\[16px\\]{height:16px}.skippr\\:h-\\[18\\.5px\\]{height:18.5px}.skippr\\:h-\\[18px\\]{height:18px}.skippr\\:h-\\[22px\\]{height:22px}.skippr\\:h-\\[24px\\]{height:24px}.skippr\\:h-\\[26px\\]{height:26px}.skippr\\:h-\\[36px\\]{height:36px}.skippr\\:h-\\[38px\\]{height:38px}.skippr\\:h-\\[48px\\]{height:48px}.skippr\\:h-\\[54px\\]{height:54px}.skippr\\:h-full{height:100%}.skippr\\:h-px{height:1px}.skippr\\:max-h-\\[132px\\]{max-height:132px}.skippr\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\\:min-h-11{min-height:calc(var(--skippr-spacing)*11)}.skippr\\:min-h-\\[16px\\]{min-height:16px}.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-\\[2\\.5px\\]{width:2.5px}.skippr\\:w-\\[2px\\]{width:2px}.skippr\\:w-\\[3px\\]{width:3px}.skippr\\:w-\\[14px\\]{width:14px}.skippr\\:w-\\[15\\.4px\\]{width:15.4px}.skippr\\:w-\\[15px\\]{width:15px}.skippr\\:w-\\[16px\\]{width:16px}.skippr\\:w-\\[22px\\]{width:22px}.skippr\\:w-\\[36px\\]{width:36px}.skippr\\:w-\\[38px\\]{width:38px}.skippr\\:w-\\[50px\\]{width:50px}.skippr\\:w-\\[148px\\]{width:148px}.skippr\\:w-\\[225px\\]{width:225px}.skippr\\:w-\\[255px\\]{width:255px}.skippr\\:w-fit{width:fit-content}.skippr\\:w-full{width:100%}.skippr\\:w-px{width:1px}.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\\:max-w-\\[280px\\]{max-width:280px}.skippr\\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\\:min-w-11{min-width:calc(var(--skippr-spacing)*11)}.skippr\\:min-w-\\[96px\\]{min-width:96px}.skippr\\:flex-1{flex:1}.skippr\\:shrink-0{flex-shrink:0}.skippr\\:origin-bottom{transform-origin:bottom}.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{transform-origin:top}.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-3{--tw-translate-x:calc(var(--skippr-spacing)*-3);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-3{--tw-translate-x:calc(var(--skippr-spacing)*3);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\\:-translate-y-\\[4px\\]{--tw-translate-y:calc(4px*-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\\:scale-\\[0\\.94\\]{scale:.94}.skippr\\:-rotate-90{rotate:-90deg}.skippr\\:rotate-45{rotate:45deg}.skippr\\:rotate-\\[225deg\\]{rotate:225deg}.skippr\\:\\[animation\\:skippr-agent-in_200ms_ease-out\\]{animation:.2s ease-out skippr-agent-in}.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-block-reveal_320ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.32s cubic-bezier(.22,1,.36,1) skippr-block-reveal}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0\\.18s_infinite\\]{animation:1.1s ease-in-out .18s infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0\\.36s_infinite\\]{animation:1.1s ease-in-out .36s infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-breathe_1\\.1s_ease-in-out_0s_infinite\\]{animation:1.1s ease-in-out infinite skippr-breathe}.skippr\\:\\[animation\\:skippr-evaporate_3\\.2s_ease-in_forwards\\]{animation:3.2s ease-in forwards skippr-evaporate}.skippr\\:\\[animation\\:skippr-fade-in_0\\.2s_ease\\]{animation:.2s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.16s_ease\\]{animation:.16s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.22s_ease\\]{animation:.22s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.24s_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.24s cubic-bezier(.22,1,.36,1) skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-in_0\\.25s_ease\\]{animation:.25s skippr-fade-in}.skippr\\:\\[animation\\:skippr-fade-out_0\\.18s_ease-in_forwards\\]{animation:.18s ease-in forwards skippr-fade-out}.skippr\\:\\[animation\\:skippr-finger-tap_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-finger-tap}.skippr\\:\\[animation\\:skippr-mote-rise_1\\.6s_ease-out_infinite\\]{animation:1.6s ease-out infinite skippr-mote-rise}.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-pop_0\\.2s_ease\\]{animation:.2s skippr-pop}.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\\)\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) skippr-tip-in}.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_280ms_cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{animation:.28s cubic-bezier(.22,1,.36,1) skippr-toolset-pop}.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-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-flow{animation:3.6s linear infinite skippr-flow}.skippr\\:animate-skippr-press{animation:.5s ease-in-out skippr-press}.skippr\\:animate-skippr-ptt-transmit{animation:1.4s ease-out infinite skippr-ptt-transmit}.skippr\\:animate-skippr-rec-ring{animation:2s ease-out infinite skippr-rec-ring}.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-skippr-voice-pulse{animation:1.6s ease-out infinite skippr-voice-pulse}.skippr\\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\\:cursor-default{cursor:default}.skippr\\:cursor-grab{cursor:grab}.skippr\\:cursor-not-allowed{cursor:not-allowed}.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\\:flex-row{flex-direction:row}.skippr\\:flex-row-reverse{flex-direction:row-reverse}.skippr\\:items-baseline{align-items:baseline}.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-0\\.5{gap:calc(var(--skippr-spacing)*.5)}.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-\\[1px\\]{gap:1px}.skippr\\:gap-\\[2px\\]{gap:2px}.skippr\\:gap-\\[3px\\]{gap:3px}.skippr\\:gap-\\[4px\\]{gap:4px}.skippr\\:gap-\\[5px\\]{gap:5px}.skippr\\:gap-\\[6px\\]{gap:6px}.skippr\\:gap-\\[7px\\]{gap:7px}.skippr\\:gap-\\[8px\\]{gap:8px}.skippr\\:gap-\\[9px\\]{gap:9px}: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)))}:where(.skippr\\:space-y-\\[6px\\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(6px*var(--tw-space-y-reverse));margin-block-end:calc(6px*calc(1 - var(--tw-space-y-reverse)))}.skippr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skippr\\:overflow-hidden{overflow:hidden}.skippr\\:overflow-visible{overflow:visible}.skippr\\:overflow-y-auto{overflow-y:auto}.skippr\\:overscroll-contain{overscroll-behavior:contain}.skippr\\:rounded{border-radius:.25rem}.skippr\\:rounded-2xl{border-radius:1.125rem}.skippr\\:rounded-\\[1rem\\]{border-radius:1rem}.skippr\\:rounded-\\[5px\\]{border-radius:5px}.skippr\\:rounded-\\[10px\\]{border-radius:10px}.skippr\\:rounded-\\[11px\\]{border-radius:11px}.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-md{border-radius:.5rem}.skippr\\:rounded-sm{border-radius:.375rem}.skippr\\:rounded-xl{border-radius:.875rem}.skippr\\:rounded-t-\\[6px\\]{border-top-left-radius:6px;border-top-right-radius:6px}.skippr\\:rounded-t-\\[18px\\]{border-top-left-radius:18px;border-top-right-radius:18px}.skippr\\:rounded-t-full{border-top-left-radius:3.40282e38px;border-top-right-radius:3.40282e38px}.skippr\\:rounded-l-\\[6px\\]{border-top-left-radius:6px;border-bottom-left-radius:6px}.skippr\\:rounded-l-\\[18px\\]{border-top-left-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-l-full{border-top-left-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.skippr\\:rounded-tl-\\[6px\\]{border-top-left-radius:6px}.skippr\\:rounded-tl-md{border-top-left-radius:.5rem}.skippr\\:rounded-r-\\[6px\\]{border-top-right-radius:6px;border-bottom-right-radius:6px}.skippr\\:rounded-r-\\[18px\\]{border-top-right-radius:18px;border-bottom-right-radius:18px}.skippr\\:rounded-r-full{border-top-right-radius:3.40282e38px;border-bottom-right-radius:3.40282e38px}.skippr\\:rounded-tr-\\[6px\\]{border-top-right-radius:6px}.skippr\\:rounded-b-\\[6px\\]{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.skippr\\:rounded-b-\\[18px\\]{border-bottom-right-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-b-full{border-bottom-right-radius:3.40282e38px;border-bottom-left-radius:3.40282e38px}.skippr\\:rounded-bl-\\[6px\\]{border-bottom-left-radius:6px}.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-\\[2\\.5px\\]{border-style:var(--tw-border-style);border-width:2.5px}.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-none{--tw-border-style:none;border-style:none}.skippr\\:border-\\[\\#d8d3ca\\]{border-color:#d8d3ca}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.1\\)\\]{border-color:#2d2d3f1a}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{border-color:#2d2d3f0f}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.08\\)\\]{border-color:#2d2d3f14}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.12\\)\\]{border-color:#2d2d3f1f}.skippr\\:border-\\[rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{border-color:#2d2d3f24}.skippr\\:border-\\[var\\(--skippr-brand-ring\\)\\]{border-color:var(--skippr-brand-ring)}.skippr\\:border-black\\/25{border-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-black\\/25{border-color:color-mix(in oklab,var(--skippr-color-black)25%,transparent)}}.skippr\\:border-border{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-brand{border-color:var(--skippr-brand,#2bc0ae)}.skippr\\:border-input{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-primary\\/20{border-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-primary\\/20{border-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)20%,transparent)}}.skippr\\:border-transparent{border-color:#0000}.skippr\\:border-white,.skippr\\:border-white\\/30{border-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:border-white\\/30{border-color:color-mix(in oklab,var(--skippr-color-white)30%,transparent)}}.skippr\\:border-t-brand{border-top-color:var(--skippr-brand,#2bc0ae)}.skippr\\:border-t-white{border-top-color:var(--skippr-color-white)}.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-\\[\\#2D2D3F\\]{background-color:#2d2d3f}.skippr\\:bg-\\[\\#F1EFEA\\]{background-color:#f1efea}.skippr\\:bg-\\[\\#b9b4ab\\]{background-color:#b9b4ab}.skippr\\:bg-\\[\\#dc2626\\]{background-color:#dc2626}.skippr\\:bg-\\[\\#eeeae4\\]{background-color:#eeeae4}.skippr\\:bg-\\[\\#f2f0eb\\]{background-color:#f2f0eb}.skippr\\:bg-\\[\\#f4ecd8\\]{background-color:#f4ecd8}.skippr\\:bg-\\[\\#f4f2ee\\]{background-color:#f4f2ee}.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-brand,.skippr\\:bg-brand\\/50{background-color:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-brand\\/50{background-color:color-mix(in oklab,var(--skippr-brand,#2bc0ae)50%,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-foreground{background-color:oklch(14.7% .004 49.25)}.skippr\\:bg-foreground\\/10{background-color:oklab(14.7% .00261104 .00303026/.1)}.skippr\\:bg-launcher{background-color:#2d2d3f}.skippr\\:bg-muted-foreground\\/40{background-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:bg-neutral-100{background-color:var(--skippr-color-neutral-100)}.skippr\\:bg-primary,.skippr\\:bg-primary\\/10{background-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-primary\\/10{background-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)10%,transparent)}}.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-500{background-color:var(--skippr-color-red-500)}.skippr\\:bg-secondary{background-color:#ffdfb5}.skippr\\:bg-transparent{background-color:#0000}.skippr\\:bg-white,.skippr\\:bg-white\\/40{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/40{background-color:color-mix(in oklab,var(--skippr-color-white)40%,transparent)}}.skippr\\:bg-white\\/70{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/70{background-color:color-mix(in oklab,var(--skippr-color-white)70%,transparent)}}.skippr\\:bg-white\\/80{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/80{background-color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:bg-white\\/95{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/95{background-color:color-mix(in oklab,var(--skippr-color-white)95%,transparent)}}.skippr\\:fill-brand{fill:var(--skippr-brand,#2bc0ae)}.skippr\\:fill-current{fill:currentColor}.skippr\\:fill-primary\\/30{fill:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:fill-primary\\/30{fill:color-mix(in oklab,var(--skippr-brand,#2d2b3d)30%,transparent)}}.skippr\\:fill-white{fill:var(--skippr-color-white)}.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\\:object-cover{object-fit:cover}.skippr\\:p-0{padding:calc(var(--skippr-spacing)*0)}.skippr\\:p-1\\.5{padding:calc(var(--skippr-spacing)*1.5)}.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\\:p-\\[2px\\]{padding:2px}.skippr\\:p-\\[3px\\]{padding:3px}.skippr\\:p-\\[9px\\]{padding:9px}.skippr\\:p-\\[14px\\]{padding:14px}.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-3\\.5{padding-inline:calc(var(--skippr-spacing)*3.5)}.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\\:px-\\[5px\\]{padding-inline:5px}.skippr\\:px-\\[7px\\]{padding-inline:7px}.skippr\\:px-\\[8px\\]{padding-inline:8px}.skippr\\:px-\\[9px\\]{padding-inline:9px}.skippr\\:px-\\[10px\\]{padding-inline:10px}.skippr\\:px-\\[11px\\]{padding-inline:11px}.skippr\\:px-\\[12px\\]{padding-inline:12px}.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\\:py-6{padding-block:calc(var(--skippr-spacing)*6)}.skippr\\:py-\\[1px\\]{padding-block:1px}.skippr\\:py-\\[3px\\]{padding-block:3px}.skippr\\:py-\\[4px\\]{padding-block:4px}.skippr\\:py-\\[5px\\]{padding-block:5px}.skippr\\:py-\\[6px\\]{padding-block:6px}.skippr\\:py-\\[7px\\]{padding-block:7px}.skippr\\:pt-1\\.5{padding-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:pt-\\[8px\\]{padding-top:8px}.skippr\\:pt-\\[9px\\]{padding-top:9px}.skippr\\:pt-\\[10px\\]{padding-top:10px}.skippr\\:pr-2\\.5{padding-right:calc(var(--skippr-spacing)*2.5)}.skippr\\:pr-3{padding-right:calc(var(--skippr-spacing)*3)}.skippr\\:pr-\\[5px\\]{padding-right:5px}.skippr\\:pr-\\[6px\\]{padding-right:6px}.skippr\\:pr-\\[9px\\]{padding-right:9px}.skippr\\:pr-\\[10px\\]{padding-right:10px}.skippr\\:pb-2{padding-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:pb-\\[8px\\]{padding-bottom:8px}.skippr\\:pb-\\[10px\\]{padding-bottom:10px}.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\\:pl-\\[9px\\]{padding-left:9px}.skippr\\:pl-\\[13px\\]{padding-left:13px}.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-\\[8\\.5px\\]{font-size:8.5px}.skippr\\:text-\\[9\\.5px\\]{font-size:9.5px}.skippr\\:text-\\[9px\\]{font-size:9px}.skippr\\:text-\\[10\\.5px\\]{font-size:10.5px}.skippr\\:text-\\[10px\\]{font-size:10px}.skippr\\:text-\\[11\\.5px\\]{font-size:11.5px}.skippr\\:text-\\[11px\\]{font-size:11px}.skippr\\:text-\\[12\\.5px\\]{font-size:12.5px}.skippr\\:text-\\[12px\\]{font-size:12px}.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-\\[1\\.25\\]{--tw-leading:1.25;line-height:1.25}.skippr\\:leading-none{--tw-leading:1;line-height:1}.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\\:font-bold{--tw-font-weight:var(--skippr-font-weight-bold);font-weight:var(--skippr-font-weight-bold)}.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\\:tracking-\\[-0\\.01em\\]{--tw-tracking:-.01em;letter-spacing:-.01em}.skippr\\:tracking-\\[0\\.02em\\]{--tw-tracking:.02em;letter-spacing:.02em}.skippr\\:tracking-\\[0\\.05em\\]{--tw-tracking:.05em;letter-spacing:.05em}.skippr\\:whitespace-nowrap{white-space:nowrap}.skippr\\:text-\\[\\#2D2D3F\\]{color:#2d2d3f}.skippr\\:text-\\[\\#5a5650\\]{color:#5a5650}.skippr\\:text-\\[\\#5c5850\\]{color:#5c5850}.skippr\\:text-\\[\\#6b6660\\]{color:#6b6660}.skippr\\:text-\\[\\#8b877f\\]{color:#8b877f}.skippr\\:text-\\[\\#92400e\\]{color:#92400e}.skippr\\:text-\\[\\#a8a49c\\]{color:#a8a49c}.skippr\\:text-\\[\\#b8b4ac\\]{color:#b8b4ac}.skippr\\:text-\\[\\#c9c5bd\\]{color:#c9c5bd}.skippr\\:text-\\[\\#cbc7bf\\]{color:#cbc7bf}.skippr\\:text-\\[\\#dc2626\\]{color:#dc2626}.skippr\\:text-\\[var\\(--skippr-brand-deep\\)\\]{color:var(--skippr-brand-deep)}.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,.skippr\\:text-black\\/40{color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:text-black\\/40{color:color-mix(in oklab,var(--skippr-color-black)40%,transparent)}}.skippr\\:text-brand{color:var(--skippr-brand,#2bc0ae)}.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-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\\/60{color:oklab(55.3% .00687528 .0110332/.6)}.skippr\\:text-neutral-500{color:var(--skippr-color-neutral-500)}.skippr\\:text-neutral-700{color:var(--skippr-color-neutral-700)}.skippr\\:text-primary{color:var(--skippr-brand,#2d2b3d)}.skippr\\:text-primary-foreground{color:var(--skippr-brand-foreground,#fff)}.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,.skippr\\:text-white\\/60{color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:text-white\\/60{color:color-mix(in oklab,var(--skippr-color-white)60%,transparent)}}.skippr\\:capitalize{text-transform:capitalize}.skippr\\:uppercase{text-transform:uppercase}.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-\\[-3px_0_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:-3px 0 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[-4px_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:-4px 6px 18px var(--tw-shadow-color,#2d2d3f29);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_8px_30px_rgba\\(15\\,18\\,26\\,0\\.32\\)\\]{--tw-shadow:-6px 8px 30px var(--tw-shadow-color,#0f121a52);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_-3px_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:0 -3px 14px var(--tw-shadow-color,var(--skippr-brand-halo));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_-6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 -6px 18px var(--tw-shadow-color,#2d2d3f29);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_0_0_1\\.5px_rgba\\(255\\,255\\,255\\,0\\.85\\)\\]{--tw-shadow:0 0 0 1.5px var(--tw-shadow-color,#ffffffd9);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_0_0_4px_var\\(--skippr-brand-ring\\)\\]{--tw-shadow:0 0 0 4px var(--tw-shadow-color,var(--skippr-brand-ring));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_1px_2px_rgba\\(45\\,45\\,63\\,0\\.05\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#2d2d3f0d);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_1px_2px_rgba\\(45\\,45\\,63\\,0\\.08\\)\\]{--tw-shadow:0 1px 2px var(--tw-shadow-color,#2d2d3f14);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_2px_6px_rgba\\(0\\,0\\,0\\,0\\.28\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#00000047);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_2px_6px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{--tw-shadow:0 2px 6px var(--tw-shadow-color,#2d2d3f24);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_3px_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:0 3px 14px var(--tw-shadow-color,var(--skippr-brand-halo));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_12px_rgba\\(45\\,45\\,63\\,0\\.1\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#2d2d3f1a);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\\.12\\)\\]{--tw-shadow:0 4px 14px 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_6px_16px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\]{--tw-shadow:0 6px 16px var(--tw-shadow-color,#2d2d3f24);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_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 6px 18px var(--tw-shadow-color,#2d2d3f29);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_22px_rgba\\(45\\,45\\,63\\,0\\.12\\)\\,0_1px_3px_rgba\\(45\\,45\\,63\\,0\\.04\\)\\]{--tw-shadow:0 8px 22px var(--tw-shadow-color,#2d2d3f1f),0 1px 3px var(--tw-shadow-color,#2d2d3f0a);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\\(45\\,45\\,63\\,0\\.14\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#2d2d3f24),0 2px 6px var(--tw-shadow-color,#2d2d3f0f);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_26px_rgba\\(45\\,45\\,63\\,0\\.13\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.05\\)\\]{--tw-shadow:0 10px 26px var(--tw-shadow-color,#2d2d3f21),0 2px 6px var(--tw-shadow-color,#2d2d3f0d);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_28px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:0 10px 28px var(--tw-shadow-color,#2d2d3f29);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_30px_rgba\\(45\\,45\\,63\\,0\\.14\\)\\,0_0_0_1\\.5px_var\\(--skippr-brand-ring\\)\\]{--tw-shadow:0 10px 30px var(--tw-shadow-color,#2d2d3f24),0 0 0 1.5px var(--tw-shadow-color,var(--skippr-brand-ring));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-\\[0_14px_34px_rgba\\(45\\,45\\,63\\,0\\.15\\)\\,0_2px_6px_rgba\\(45\\,45\\,63\\,0\\.06\\)\\]{--tw-shadow:0 14px 34px var(--tw-shadow-color,#2d2d3f26),0 2px 6px var(--tw-shadow-color,#2d2d3f0f);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-\\[3px_0_14px_var\\(--skippr-brand-halo\\)\\]{--tw-shadow:3px 0 14px var(--tw-shadow-color,var(--skippr-brand-halo));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-\\[4px_6px_18px_rgba\\(45\\,45\\,63\\,0\\.16\\)\\]{--tw-shadow:4px 6px 18px var(--tw-shadow-color,#2d2d3f29);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-\\[inset_0_0_0_1\\.5px_var\\(--skippr-brand\\,\\#2bc0ae\\)\\]{--tw-shadow:inset 0 0 0 1.5px var(--tw-shadow-color,var(--skippr-brand,#2bc0ae));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-inner{--tw-shadow:inset 0 2px 4px 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\\: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-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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:var(--skippr-brand,#2bc0ae)}.skippr\\:ring-white\\/15{--tw-ring-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-white\\/15{--tw-ring-color:color-mix(in oklab,var(--skippr-color-white)15%,transparent)}}.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-\\[filter\\]{transition-property:filter;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[gap\\]{transition-property:gap;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.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-\\[left\\]{transition-property:left;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\\,height\\,background-color\\,border-color\\]{transition-property:width,height,background-color,border-color;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-shadow{transition-property:box-shadow;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-100{--tw-duration:.1s;transition-duration:.1s}.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\\:duration-\\[400ms\\]{--tw-duration:.4s;transition-duration:.4s}.skippr\\:ease-\\[cubic-bezier\\(0\\.22\\,1\\,0\\.36\\,1\\)\\]{--tw-ease:cubic-bezier(.22,1,.36,1);transition-timing-function:cubic-bezier(.22,1,.36,1)}.skippr\\:ease-\\[cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.3,.64,1);transition-timing-function:cubic-bezier(.34,1.3,.64,1)}.skippr\\:ease-\\[cubic-bezier\\(0\\.34\\,1\\.56\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.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-\\[\\#b0aca4\\]::placeholder{color:#b0aca4}@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-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:hover\\:bg-\\[\\#3a384b\\]:hover{background-color:#3a384b}.skippr\\:hover\\:bg-\\[\\#3d3d52\\]:hover{background-color:#3d3d52}.skippr\\:hover\\:bg-\\[\\#f2f0eb\\]:hover{background-color:#f2f0eb}.skippr\\:hover\\:bg-\\[\\#f4f2ee\\]:hover{background-color:#f4f2ee}.skippr\\:hover\\:bg-\\[\\#f6f4f0\\]:hover{background-color:#f6f4f0}.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-foreground\\/8:hover{background-color:oklab(14.7% .00261104 .00303026/.08)}.skippr\\:hover\\:bg-muted:hover{background-color:oklch(97% .001 106.424)}.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\\/90:hover{background-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)90%,transparent)}}.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\\:bg-transparent:hover{background-color:#0000}.skippr\\:hover\\:bg-white\\/20:hover{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-white\\/20:hover{background-color:color-mix(in oklab,var(--skippr-color-white)20%,transparent)}}.skippr\\:hover\\:text-\\[\\#2D2D3F\\]:hover{color:#2d2d3f}.skippr\\:hover\\:text-\\[\\#5a5650\\]:hover{color:#5a5650}.skippr\\:hover\\:text-\\[\\#8b877f\\]:hover{color:#8b877f}.skippr\\:hover\\:text-\\[\\#b8b4ac\\]:hover{color:#b8b4ac}.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\\: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\\:hover\\:brightness-\\[1\\.04\\]:hover{--tw-brightness:brightness(1.04);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\\:hover\\:brightness-\\[1\\.06\\]:hover{--tw-brightness:brightness(1.06);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\\:border-\\[var\\(--skippr-brand-ring\\)\\]:focus-visible{border-color:var(--skippr-brand-ring)}.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-\\[var\\(--skippr-brand-ring\\)\\]:focus-visible{--tw-ring-color:var(--skippr-brand-ring)}.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-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.skippr\\:focus-visible\\:outline-offset-2:focus-visible{outline-offset:2px}.skippr\\:focus-visible\\:outline-\\[var\\(--skippr-brand\\)\\]:focus-visible{outline-color:var(--skippr-brand)}.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\\:active\\:scale-\\[0\\.98\\]:active{scale:.98}.skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.skippr\\:disabled\\:cursor-default:disabled{cursor:default}.skippr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.skippr\\:disabled\\:opacity-50:disabled{opacity:.5}.skippr\\:disabled\\:opacity-60:disabled{opacity:.6}.skippr\\:disabled\\:opacity-80:disabled{opacity:.8}@media (hover:hover){.skippr\\:disabled\\:hover\\:bg-\\[\\#2D2D3F\\]:disabled:hover{background-color:#2d2d3f}.skippr\\:disabled\\:hover\\:bg-white:disabled:hover{background-color:var(--skippr-color-white)}}@media (prefers-reduced-motion:reduce){.skippr\\:motion-reduce\\:hidden{display:none}.skippr\\:motion-reduce\\:scale-100{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.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)}}:host{--skippr-brand-active:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-active:color-mix(in srgb,var(--skippr-brand,#2bc0ae)93%,#000)}}:host{--skippr-brand-deep:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-deep:color-mix(in srgb,var(--skippr-brand,#2bc0ae)78%,#000)}}:host{--skippr-brand-ring:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-ring:color-mix(in srgb,var(--skippr-brand,#2bc0ae)22%,transparent)}}:host{--skippr-brand-halo:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-halo:color-mix(in srgb,var(--skippr-brand,#2bc0ae)40%,transparent)}}:host{--skippr-brand-glow:linear-gradient(90deg,var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae),var(--skippr-brand,#2bc0ae))}@supports (color:color-mix(in lab, red, red)){:host{--skippr-brand-glow:linear-gradient(90deg,var(--skippr-brand,#2bc0ae),color-mix(in srgb,var(--skippr-brand,#2bc0ae)55%,#fff),color-mix(in srgb,var(--skippr-brand,#2bc0ae)72%,#fff),var(--skippr-brand,#2bc0ae),color-mix(in srgb,var(--skippr-brand,#2bc0ae)42%,#fff))}}@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-rec-ring{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)55%,transparent)}70%{box-shadow:0 0 0 11px #0000}to{box-shadow:0 0 #0000}}@keyframes skippr-voice-pulse{0%{box-shadow:0 0 0 0 var(--skippr-pulse-color,#2bc0ae80)}70%{box-shadow:0 0 0 8px #0000}to{box-shadow:0 0 #0000}}@keyframes skippr-ptt-transmit{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)60%,transparent),0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)35%,transparent)}70%{box-shadow:0 0 0 9px #0000,0 0 0 16px #0000}to{box-shadow:0 0 #0000,0 0 #0000}}@keyframes skippr-annotation-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--skippr-brand,#2bc0ae)50%,transparent)}50%{box-shadow:0 0 0 6px #0000}}@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-evaporate{0%{opacity:1;filter:blur();transform:translateY(0)scale(1)}55%{opacity:.85;filter:blur()}to{opacity:0;filter:blur(2.5px);transform:translateY(-7px)scale(.965)}}@keyframes skippr-mote-rise{0%{opacity:0;transform:translateY(2px)scale(.5)}25%{opacity:.85}to{opacity:0;transform:translateY(-24px)scale(1)}}@keyframes skippr-flow{0%{background-position:0%}50%{background-position:100%}to{background-position: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)}}@keyframes skippr-pop{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:none}}@keyframes skippr-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.05)}}@keyframes skippr-buddy-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes skippr-buddy-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}@keyframes skippr-buddy-pop{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes skippr-buddy-sleep{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(1px)scale(.995)}}@keyframes skippr-buddy-zfloat{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(-10px)}}@keyframes skippr-peek-left{0%,20%{transform:translate(-58%)}46%,66%{transform:translate(0)}92%,to{transform:translate(-58%)}}@keyframes skippr-peek-right{0%,20%{transform:translate(58%)}46%,66%{transform:translate(0)}92%,to{transform:translate(58%)}}.skippr-peek-left{animation:3.6s ease-in-out infinite skippr-peek-left}.skippr-peek-right{animation:3.6s ease-in-out infinite skippr-peek-right}@keyframes skippr-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}@keyframes skippr-block-reveal{0%{opacity:0;max-height:0;transform:translateY(-4px)}55%{opacity:1}to{opacity:1;max-height:260px;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){[style*=skippr-blink],[style*=skippr-buddy-bob],[style*=skippr-buddy-breathe],[style*=skippr-buddy-pop],[style*=skippr-buddy-sleep],[style*=skippr-buddy-zfloat],.skippr-peek-left,.skippr-peek-right{animation-play-state:paused}}.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-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@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}}`;
6841
6859
  const hostStyle = accentColor && isHexColor(accentColor) ? {
6842
6860
  "--skippr-brand": accentColor,
6843
6861
  "--skippr-brand-foreground": brandForeground(accentColor)
@@ -6867,7 +6885,7 @@ function ShadowHost({
6867
6885
  }
6868
6886
 
6869
6887
  // src/components/Sidebar.tsx
6870
- import { useContext as useContext16, useEffect as useEffect34 } from "react";
6888
+ import { useContext as useContext16, useEffect as useEffect35 } from "react";
6871
6889
 
6872
6890
  // src/hooks/useCombinedMessages.ts
6873
6891
  import { useContext as useContext10, useMemo as useMemo6 } from "react";
@@ -6969,8 +6987,38 @@ function useCombinedMessages() {
6969
6987
  return { allMessages, agentState, sendChatMessage, isSendingChat };
6970
6988
  }
6971
6989
 
6990
+ // src/hooks/useLinkCard.ts
6991
+ import { useRemoteParticipants as useRemoteParticipants3 } from "@livekit/components-react/hooks";
6992
+ import { useCallback as useCallback19 } from "react";
6993
+ function isHttpUrl(url) {
6994
+ try {
6995
+ const { protocol } = new URL(url);
6996
+ return protocol === "http:" || protocol === "https:";
6997
+ } catch {
6998
+ return false;
6999
+ }
7000
+ }
7001
+ function parseLinkCard(json) {
7002
+ try {
7003
+ const data = JSON.parse(json);
7004
+ if (data.type === "link_card" && typeof data.cardId === "string" && typeof data.url === "string" && isHttpUrl(data.url)) {
7005
+ return { cardId: data.cardId, title: data.title ?? "", url: data.url };
7006
+ }
7007
+ } catch {
7008
+ return null;
7009
+ }
7010
+ return null;
7011
+ }
7012
+ function useLinkCard() {
7013
+ const parse = useCallback19(parseLinkCard, []);
7014
+ const card = useAgentState(LINK_CARD_ATTR, parse, null);
7015
+ const remoteParticipants = useRemoteParticipants3();
7016
+ const attrPresent = remoteParticipants.some((p) => p.attributes?.[LINK_CARD_ATTR]);
7017
+ return attrPresent ? card : null;
7018
+ }
7019
+
6972
7020
  // src/hooks/usePhaseUpdates.ts
6973
- import { useCallback as useCallback19, useContext as useContext11, useEffect as useEffect29 } from "react";
7021
+ import { useCallback as useCallback20, useContext as useContext11, useEffect as useEffect29 } from "react";
6974
7022
  function parsePhases(json) {
6975
7023
  try {
6976
7024
  const data = JSON.parse(json);
@@ -6981,7 +7029,7 @@ function parsePhases(json) {
6981
7029
  return null;
6982
7030
  }
6983
7031
  function usePhaseUpdates() {
6984
- const parse = useCallback19(parsePhases, []);
7032
+ const parse = useCallback20(parsePhases, []);
6985
7033
  const livePhases = useAgentState("phases", parse, []);
6986
7034
  const ctx = useContext11(LiveAgentContext);
6987
7035
  useEffect29(() => {
@@ -7032,7 +7080,7 @@ import { useContext as useContext13, useRef as useRef27 } from "react";
7032
7080
 
7033
7081
  // src/hooks/useTextMode.ts
7034
7082
  import { useLocalParticipant as useLocalParticipant11 } from "@livekit/components-react/hooks";
7035
- import { useCallback as useCallback20, useContext as useContext12, useRef as useRef26 } from "react";
7083
+ import { useCallback as useCallback21, useContext as useContext12, useRef as useRef26 } from "react";
7036
7084
  var textEncoder6 = new TextEncoder;
7037
7085
  function useTextMode() {
7038
7086
  const ctx = useContext12(LiveAgentContext);
@@ -7042,7 +7090,7 @@ function useTextMode() {
7042
7090
  const { textMode, setTextModeState, sidebarTab, setSidebarTab } = ctx;
7043
7091
  const { localParticipant } = useLocalParticipant11();
7044
7092
  const confirmedTextModeRef = useRef26(false);
7045
- const toggleTextMode = useCallback20(async () => {
7093
+ const toggleTextMode = useCallback21(async () => {
7046
7094
  const next = !textMode;
7047
7095
  setTextModeState(next);
7048
7096
  if (next && sidebarTab === "agenda") {
@@ -7196,7 +7244,7 @@ function LoadingDots({ label }) {
7196
7244
  }
7197
7245
 
7198
7246
  // src/components/LoginFlow.tsx
7199
- import { useCallback as useCallback21, useEffect as useEffect31, useRef as useRef28, useState as useState22 } from "react";
7247
+ import { useCallback as useCallback22, useEffect as useEffect31, useRef as useRef28, useState as useState22 } from "react";
7200
7248
 
7201
7249
  // src/components/ui/button.tsx
7202
7250
  import { forwardRef as forwardRef3 } from "react";
@@ -7234,18 +7282,18 @@ var DIGIT_KEYS = ["d0", "d1", "d2", "d3", "d4", "d5"];
7234
7282
  function LoginFlow({ requestOtp, verifyOtp, error, isSubmitting }) {
7235
7283
  const [step, setStep] = useState22("email");
7236
7284
  const [email, setEmail] = useState22("");
7237
- const handleRequestOtp = useCallback21(async (emailValue) => {
7285
+ const handleRequestOtp = useCallback22(async (emailValue) => {
7238
7286
  const success = await requestOtp(emailValue);
7239
7287
  if (success)
7240
7288
  setStep("otp");
7241
7289
  }, [requestOtp]);
7242
- const handleVerifyOtp = useCallback21(async (code) => {
7290
+ const handleVerifyOtp = useCallback22(async (code) => {
7243
7291
  await verifyOtp(email, code);
7244
7292
  }, [verifyOtp, email]);
7245
- const handleBack = useCallback21(() => {
7293
+ const handleBack = useCallback22(() => {
7246
7294
  setStep("email");
7247
7295
  }, []);
7248
- const handleResend = useCallback21(async () => {
7296
+ const handleResend = useCallback22(async () => {
7249
7297
  await requestOtp(email);
7250
7298
  }, [requestOtp, email]);
7251
7299
  if (step === "otp") {
@@ -7341,13 +7389,13 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
7341
7389
  const timer = setTimeout(() => setResendCooldown((c) => c - 1), 1000);
7342
7390
  return () => clearTimeout(timer);
7343
7391
  }, [resendCooldown]);
7344
- const submitCode = useCallback21((code) => {
7392
+ const submitCode = useCallback22((code) => {
7345
7393
  if (submittedRef.current || isSubmitting)
7346
7394
  return;
7347
7395
  submittedRef.current = true;
7348
7396
  onSubmit(code);
7349
7397
  }, [onSubmit, isSubmitting]);
7350
- const handleDigitChange = useCallback21((index2, value) => {
7398
+ const handleDigitChange = useCallback22((index2, value) => {
7351
7399
  const digit = value.replace(/\D/g, "").slice(-1);
7352
7400
  const newDigits = [...digits];
7353
7401
  newDigits[index2] = digit;
@@ -7361,12 +7409,12 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
7361
7409
  submitCode(code);
7362
7410
  }
7363
7411
  }, [digits, submitCode]);
7364
- const handleKeyDown = useCallback21((index2, e) => {
7412
+ const handleKeyDown = useCallback22((index2, e) => {
7365
7413
  if (e.key === "Backspace" && !digits[index2] && index2 > 0) {
7366
7414
  inputRefs.current[index2 - 1]?.focus();
7367
7415
  }
7368
7416
  }, [digits]);
7369
- const handlePaste = useCallback21((e) => {
7417
+ const handlePaste = useCallback22((e) => {
7370
7418
  e.preventDefault();
7371
7419
  const pasted = e.clipboardData.getData("text").replace(/\D/g, "").slice(0, OTP_LENGTH);
7372
7420
  if (pasted.length > 0) {
@@ -7478,7 +7526,7 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
7478
7526
  }
7479
7527
 
7480
7528
  // src/components/MessageList.tsx
7481
- import { useCallback as useCallback22, useLayoutEffect as useLayoutEffect3, useRef as useRef30, useState as useState25 } from "react";
7529
+ import { useCallback as useCallback24, useLayoutEffect as useLayoutEffect3, useRef as useRef31, useState as useState26 } from "react";
7482
7530
 
7483
7531
  // src/components/ChatInput.tsx
7484
7532
  import { useContext as useContext14, useEffect as useEffect32, useRef as useRef29, useState as useState23 } from "react";
@@ -7586,37 +7634,137 @@ function ChatMessage({ message }) {
7586
7634
  });
7587
7635
  }
7588
7636
 
7589
- // src/components/PlanCard.tsx
7590
- import { useEffect as useEffect33, useState as useState24 } from "react";
7637
+ // src/components/LinkCard.tsx
7638
+ import { useCallback as useCallback23, useEffect as useEffect33, useRef as useRef30, useState as useState24 } from "react";
7639
+
7640
+ // src/lib/clipboard.ts
7641
+ async function copyToClipboard(text) {
7642
+ try {
7643
+ await navigator.clipboard.writeText(text);
7644
+ return true;
7645
+ } catch {
7646
+ return false;
7647
+ }
7648
+ }
7649
+
7650
+ // src/components/LinkCard.tsx
7591
7651
  import { jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
7652
+ var COPIED_RESET_MS = 2000;
7653
+ var DISMISS_AFTER_COPY_MS = 3000;
7654
+ function LinkCard({ card, onDismiss }) {
7655
+ const [copied, setCopied] = useState24(false);
7656
+ const dismissTimerRef = useRef30(null);
7657
+ useEffect33(() => {
7658
+ if (!copied)
7659
+ return;
7660
+ const timer = setTimeout(() => setCopied(false), COPIED_RESET_MS);
7661
+ return () => clearTimeout(timer);
7662
+ }, [copied]);
7663
+ useEffect33(() => {
7664
+ return () => {
7665
+ if (dismissTimerRef.current)
7666
+ clearTimeout(dismissTimerRef.current);
7667
+ };
7668
+ }, []);
7669
+ const handleCopy = useCallback23(async () => {
7670
+ const ok = await copyToClipboard(card.url);
7671
+ if (!ok)
7672
+ return;
7673
+ setCopied(true);
7674
+ dismissTimerRef.current = setTimeout(onDismiss, DISMISS_AFTER_COPY_MS);
7675
+ }, [card.url, onDismiss]);
7676
+ return /* @__PURE__ */ jsxs23("div", {
7677
+ className: "skippr:rounded-2xl skippr:rounded-tl-md skippr:bg-card skippr:p-3.5 skippr:ring-2 skippr:ring-brand",
7678
+ children: [
7679
+ /* @__PURE__ */ jsxs23("div", {
7680
+ className: "skippr:mb-1 skippr:flex skippr:items-start skippr:justify-between skippr:gap-2",
7681
+ children: [
7682
+ card.title && /* @__PURE__ */ jsx28("p", {
7683
+ className: "skippr:text-sm skippr:font-semibold skippr:leading-snug skippr:text-foreground",
7684
+ children: card.title
7685
+ }),
7686
+ /* @__PURE__ */ jsx28("button", {
7687
+ type: "button",
7688
+ onClick: onDismiss,
7689
+ "aria-label": "Dismiss link",
7690
+ className: "skippr:-mr-1 skippr:-mt-1 skippr:flex skippr:size-6 skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:text-muted-foreground skippr:transition-colors skippr:hover:bg-muted skippr:hover:text-foreground",
7691
+ children: /* @__PURE__ */ jsx28(X, {
7692
+ className: "skippr:size-3.5",
7693
+ strokeWidth: 2.5
7694
+ })
7695
+ })
7696
+ ]
7697
+ }),
7698
+ /* @__PURE__ */ jsx28("p", {
7699
+ className: "skippr:mb-3 skippr:truncate skippr:text-xs skippr:text-muted-foreground",
7700
+ children: card.url
7701
+ }),
7702
+ /* @__PURE__ */ jsxs23("div", {
7703
+ className: "skippr:flex skippr:gap-2",
7704
+ children: [
7705
+ /* @__PURE__ */ jsxs23("a", {
7706
+ href: card.url,
7707
+ target: "_blank",
7708
+ rel: "noopener noreferrer",
7709
+ className: "skippr:inline-flex skippr:flex-1 skippr:items-center skippr:justify-center skippr:gap-2 skippr:rounded-md skippr:bg-primary skippr:py-2 skippr:text-sm skippr:font-medium skippr:text-primary-foreground skippr:transition-all skippr:hover:bg-primary/90 skippr:focus-visible:outline-none skippr:focus-visible:ring-2 skippr:focus-visible:ring-ring skippr:focus-visible:ring-offset-2",
7710
+ children: [
7711
+ /* @__PURE__ */ jsx28(ExternalLink, {
7712
+ className: "skippr:size-4"
7713
+ }),
7714
+ "Open"
7715
+ ]
7716
+ }),
7717
+ /* @__PURE__ */ jsxs23(Button, {
7718
+ variant: "outline",
7719
+ className: "skippr:flex-1 skippr:py-2",
7720
+ onClick: handleCopy,
7721
+ "aria-label": "Copy link",
7722
+ children: [
7723
+ copied ? /* @__PURE__ */ jsx28(Check, {
7724
+ className: "skippr:size-4"
7725
+ }) : /* @__PURE__ */ jsx28(Copy, {
7726
+ className: "skippr:size-4"
7727
+ }),
7728
+ copied ? "Copied" : "Copy link"
7729
+ ]
7730
+ })
7731
+ ]
7732
+ })
7733
+ ]
7734
+ });
7735
+ }
7736
+
7737
+ // src/components/PlanCard.tsx
7738
+ import { useEffect as useEffect34, useState as useState25 } from "react";
7739
+ import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
7592
7740
  var APPROVE_MESSAGE = "Yes, go ahead.";
7593
7741
  var CANCEL_MESSAGE = "No, cancel that.";
7594
7742
  var COMPLETED_CARD_VISIBLE_MS = 2500;
7595
7743
  var APPROVING_RESET_MS = 8000;
7596
7744
  function StepIcon({ status }) {
7597
7745
  if (status === "done") {
7598
- return /* @__PURE__ */ jsx28(CircleCheck, {
7746
+ return /* @__PURE__ */ jsx29(CircleCheck, {
7599
7747
  className: "skippr:size-4 skippr:text-chart-3"
7600
7748
  });
7601
7749
  }
7602
7750
  if (status === "failed") {
7603
- return /* @__PURE__ */ jsx28(CircleX, {
7751
+ return /* @__PURE__ */ jsx29(CircleX, {
7604
7752
  className: "skippr:size-4 skippr:text-destructive"
7605
7753
  });
7606
7754
  }
7607
7755
  if (status === "active") {
7608
- return /* @__PURE__ */ jsx28(Circle, {
7756
+ return /* @__PURE__ */ jsx29(Circle, {
7609
7757
  className: "skippr:size-4 skippr:fill-primary/30 skippr:text-primary"
7610
7758
  });
7611
7759
  }
7612
- return /* @__PURE__ */ jsx28(Circle, {
7760
+ return /* @__PURE__ */ jsx29(Circle, {
7613
7761
  className: "skippr:size-4 skippr:text-muted-foreground/30"
7614
7762
  });
7615
7763
  }
7616
7764
  function PlanCard({ plan, sendChatMessage, onDismiss }) {
7617
7765
  const awaitingApproval = plan.state === "proposed";
7618
- const [isApproving, setIsApproving] = useState24(false);
7619
- const [lastPlanId, setLastPlanId] = useState24(plan.planId);
7766
+ const [isApproving, setIsApproving] = useState25(false);
7767
+ const [lastPlanId, setLastPlanId] = useState25(plan.planId);
7620
7768
  if (plan.planId !== lastPlanId) {
7621
7769
  setLastPlanId(plan.planId);
7622
7770
  setIsApproving(false);
@@ -7628,55 +7776,55 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
7628
7776
  setIsApproving(false);
7629
7777
  });
7630
7778
  };
7631
- useEffect33(() => {
7779
+ useEffect34(() => {
7632
7780
  if (!isApproving)
7633
7781
  return;
7634
7782
  const timer = setTimeout(() => setIsApproving(false), APPROVING_RESET_MS);
7635
7783
  return () => clearTimeout(timer);
7636
7784
  }, [isApproving]);
7637
- useEffect33(() => {
7785
+ useEffect34(() => {
7638
7786
  if (plan.state !== "completed")
7639
7787
  return;
7640
7788
  const timer = setTimeout(onDismiss, COMPLETED_CARD_VISIBLE_MS);
7641
7789
  return () => clearTimeout(timer);
7642
7790
  }, [plan.state, onDismiss]);
7643
- return /* @__PURE__ */ jsxs23("div", {
7791
+ return /* @__PURE__ */ jsxs24("div", {
7644
7792
  className: "skippr:rounded-2xl skippr:rounded-tl-md skippr:bg-card skippr:p-3.5 skippr:ring-2 skippr:ring-brand",
7645
7793
  children: [
7646
- /* @__PURE__ */ jsx28("p", {
7794
+ /* @__PURE__ */ jsx29("p", {
7647
7795
  className: "skippr:mb-3 skippr:text-sm skippr:font-semibold skippr:leading-snug skippr:text-foreground",
7648
7796
  children: "Plan"
7649
7797
  }),
7650
- /* @__PURE__ */ jsx28("div", {
7798
+ /* @__PURE__ */ jsx29("div", {
7651
7799
  className: "skippr:space-y-2",
7652
- children: plan.steps.map((step) => /* @__PURE__ */ jsxs23("div", {
7800
+ children: plan.steps.map((step) => /* @__PURE__ */ jsxs24("div", {
7653
7801
  className: "skippr:flex skippr:items-center skippr:gap-2",
7654
7802
  children: [
7655
- /* @__PURE__ */ jsx28(StepIcon, {
7803
+ /* @__PURE__ */ jsx29(StepIcon, {
7656
7804
  status: step.status
7657
7805
  }),
7658
- /* @__PURE__ */ jsx28("p", {
7806
+ /* @__PURE__ */ jsx29("p", {
7659
7807
  className: cn("skippr:text-sm skippr:leading-snug", step.status === "done" && "skippr:text-muted-foreground skippr:line-through", step.status === "active" && "skippr:font-medium skippr:text-foreground", step.status === "pending" && "skippr:text-muted-foreground", step.status === "failed" && "skippr:text-destructive"),
7660
7808
  children: step.label
7661
7809
  })
7662
7810
  ]
7663
7811
  }, step.index))
7664
7812
  }),
7665
- awaitingApproval && /* @__PURE__ */ jsxs23("div", {
7813
+ awaitingApproval && /* @__PURE__ */ jsxs24("div", {
7666
7814
  className: "skippr:mt-3.5 skippr:flex skippr:gap-2",
7667
7815
  children: [
7668
- /* @__PURE__ */ jsxs23(Button, {
7816
+ /* @__PURE__ */ jsxs24(Button, {
7669
7817
  className: "skippr:flex-1 skippr:gap-1.5 skippr:py-2",
7670
7818
  disabled: isApproving,
7671
7819
  onClick: approve,
7672
7820
  children: [
7673
- isApproving && /* @__PURE__ */ jsx28("span", {
7821
+ isApproving && /* @__PURE__ */ jsx29("span", {
7674
7822
  className: "skippr:size-3 skippr:shrink-0 skippr:animate-spin skippr:rounded-full skippr:border-2 skippr:border-white/30 skippr:border-t-white"
7675
7823
  }),
7676
7824
  isApproving ? "Approving…" : "Approve"
7677
7825
  ]
7678
7826
  }),
7679
- /* @__PURE__ */ jsx28(Button, {
7827
+ /* @__PURE__ */ jsx29(Button, {
7680
7828
  variant: "outline",
7681
7829
  className: "skippr:flex-1 skippr:py-2",
7682
7830
  disabled: isApproving,
@@ -7690,26 +7838,26 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
7690
7838
  }
7691
7839
 
7692
7840
  // src/components/TypingIndicator.tsx
7693
- import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
7841
+ import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
7694
7842
  function TypingIndicator() {
7695
- return /* @__PURE__ */ jsx29("div", {
7843
+ return /* @__PURE__ */ jsx30("div", {
7696
7844
  className: "skippr:flex skippr:items-start skippr:gap-2 skippr:animate-skippr-tab-fade",
7697
- children: /* @__PURE__ */ jsxs24("div", {
7845
+ children: /* @__PURE__ */ jsxs25("div", {
7698
7846
  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",
7699
7847
  children: [
7700
- /* @__PURE__ */ jsx29("span", {
7848
+ /* @__PURE__ */ jsx30("span", {
7701
7849
  children: "Agent is analyzing your screen"
7702
7850
  }),
7703
- /* @__PURE__ */ jsxs24("span", {
7851
+ /* @__PURE__ */ jsxs25("span", {
7704
7852
  className: "skippr:inline-flex skippr:items-center skippr:gap-[2px]",
7705
7853
  children: [
7706
- /* @__PURE__ */ jsx29("span", {
7854
+ /* @__PURE__ */ jsx30("span", {
7707
7855
  className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:0ms]"
7708
7856
  }),
7709
- /* @__PURE__ */ jsx29("span", {
7857
+ /* @__PURE__ */ jsx30("span", {
7710
7858
  className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:200ms]"
7711
7859
  }),
7712
- /* @__PURE__ */ jsx29("span", {
7860
+ /* @__PURE__ */ jsx30("span", {
7713
7861
  className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:400ms]"
7714
7862
  })
7715
7863
  ]
@@ -7720,7 +7868,7 @@ function TypingIndicator() {
7720
7868
  }
7721
7869
 
7722
7870
  // src/components/MessageList.tsx
7723
- import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
7871
+ import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
7724
7872
  var BOTTOM_THRESHOLD_PX = 32;
7725
7873
  function MessageList({
7726
7874
  messages,
@@ -7728,20 +7876,26 @@ function MessageList({
7728
7876
  sendChatMessage,
7729
7877
  isSendingChat = false,
7730
7878
  plan,
7879
+ linkCard,
7731
7880
  autoFocus = false,
7732
7881
  readOnly = false
7733
7882
  }) {
7734
- const containerRef = useRef30(null);
7735
- const isPinnedToBottom = useRef30(true);
7736
- const lastSeenMessageId = useRef30(undefined);
7737
- const [showJumpToLatest, setShowJumpToLatest] = useState25(false);
7883
+ const containerRef = useRef31(null);
7884
+ const isPinnedToBottom = useRef31(true);
7885
+ const lastSeenMessageId = useRef31(undefined);
7886
+ const [showJumpToLatest, setShowJumpToLatest] = useState26(false);
7738
7887
  const lastMessage = messages.length > 0 ? messages[messages.length - 1] : undefined;
7739
- const [dismissedPlanId, setDismissedPlanId] = useState25(null);
7740
- const dismissPlan = useCallback22(() => {
7888
+ const [dismissedPlanId, setDismissedPlanId] = useState26(null);
7889
+ const dismissPlan = useCallback24(() => {
7741
7890
  if (plan)
7742
7891
  setDismissedPlanId(plan.planId);
7743
7892
  }, [plan]);
7744
- const handleScroll = useCallback22(() => {
7893
+ const [dismissedLinkCardId, setDismissedLinkCardId] = useState26(null);
7894
+ const dismissLinkCard = useCallback24(() => {
7895
+ if (linkCard)
7896
+ setDismissedLinkCardId(linkCard.cardId);
7897
+ }, [linkCard]);
7898
+ const handleScroll = useCallback24(() => {
7745
7899
  const container = containerRef.current;
7746
7900
  if (!container)
7747
7901
  return;
@@ -7750,7 +7904,7 @@ function MessageList({
7750
7904
  isPinnedToBottom.current = pinned;
7751
7905
  setShowJumpToLatest(!pinned);
7752
7906
  }, []);
7753
- const jumpToLatest = useCallback22(() => {
7907
+ const jumpToLatest = useCallback24(() => {
7754
7908
  const container = containerRef.current;
7755
7909
  if (!container)
7756
7910
  return;
@@ -7773,49 +7927,56 @@ function MessageList({
7773
7927
  container.scrollTop = container.scrollHeight;
7774
7928
  }, [messages.length, lastMessage?.content]);
7775
7929
  const showTyping = isStreaming && lastMessage?.role === "assistant" && lastMessage.content === "";
7776
- return /* @__PURE__ */ jsxs25("div", {
7930
+ return /* @__PURE__ */ jsxs26("div", {
7777
7931
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
7778
7932
  children: [
7779
- /* @__PURE__ */ jsxs25("div", {
7933
+ /* @__PURE__ */ jsxs26("div", {
7780
7934
  className: "skippr:relative skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
7781
7935
  children: [
7782
- /* @__PURE__ */ jsxs25("div", {
7936
+ /* @__PURE__ */ jsxs26("div", {
7783
7937
  ref: containerRef,
7784
7938
  onScroll: handleScroll,
7785
7939
  className: "skippr:min-h-0 skippr:flex-1 skippr:space-y-4 skippr:overflow-y-auto skippr:p-4 skippr:[overflow-anchor:none]",
7786
7940
  children: [
7787
- messages.length === 0 && !showTyping && (readOnly ? /* @__PURE__ */ jsx30("p", {
7941
+ messages.length === 0 && !showTyping && (readOnly ? /* @__PURE__ */ jsx31("p", {
7788
7942
  className: "skippr:px-2 skippr:py-6 skippr:text-center skippr:text-sm skippr:text-muted-foreground",
7789
7943
  children: "No messages in this conversation yet."
7790
- }) : /* @__PURE__ */ jsx30(LoadingDots, {
7944
+ }) : /* @__PURE__ */ jsx31(LoadingDots, {
7791
7945
  label: "Waiting for conversation to begin..."
7792
7946
  })),
7793
- messages.map((message) => /* @__PURE__ */ jsx30(ChatMessage, {
7947
+ messages.map((message) => /* @__PURE__ */ jsx31(ChatMessage, {
7794
7948
  message
7795
7949
  }, message.id)),
7796
- showTyping && /* @__PURE__ */ jsx30(TypingIndicator, {})
7950
+ showTyping && /* @__PURE__ */ jsx31(TypingIndicator, {})
7797
7951
  ]
7798
7952
  }),
7799
- showJumpToLatest && /* @__PURE__ */ jsx30("button", {
7953
+ showJumpToLatest && /* @__PURE__ */ jsx31("button", {
7800
7954
  type: "button",
7801
7955
  onClick: jumpToLatest,
7802
7956
  "aria-label": "Jump to latest message",
7803
7957
  className: "skippr:-translate-x-1/2 skippr:absolute skippr:bottom-3 skippr:left-1/2 skippr:flex skippr:min-h-11 skippr:min-w-11 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:border skippr:border-border skippr:bg-background skippr:p-1.5 skippr:text-foreground skippr:shadow-md skippr:transition-colors skippr:hover:bg-muted",
7804
- children: /* @__PURE__ */ jsx30(ChevronDown, {
7958
+ children: /* @__PURE__ */ jsx31(ChevronDown, {
7805
7959
  className: "skippr:size-4"
7806
7960
  })
7807
7961
  })
7808
7962
  ]
7809
7963
  }),
7810
- sendChatMessage && isPlanVisible(plan) && plan.planId !== dismissedPlanId && /* @__PURE__ */ jsx30("div", {
7964
+ sendChatMessage && isPlanVisible(plan) && plan.planId !== dismissedPlanId && /* @__PURE__ */ jsx31("div", {
7811
7965
  className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
7812
- children: /* @__PURE__ */ jsx30(PlanCard, {
7966
+ children: /* @__PURE__ */ jsx31(PlanCard, {
7813
7967
  plan,
7814
7968
  sendChatMessage,
7815
7969
  onDismiss: dismissPlan
7816
7970
  }, plan.planId)
7817
7971
  }),
7818
- !readOnly && sendChatMessage && /* @__PURE__ */ jsx30(ChatInput, {
7972
+ linkCard && linkCard.cardId !== dismissedLinkCardId && /* @__PURE__ */ jsx31("div", {
7973
+ className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
7974
+ children: /* @__PURE__ */ jsx31(LinkCard, {
7975
+ card: linkCard,
7976
+ onDismiss: dismissLinkCard
7977
+ }, linkCard.cardId)
7978
+ }),
7979
+ !readOnly && sendChatMessage && /* @__PURE__ */ jsx31(ChatInput, {
7819
7980
  sendChatMessage,
7820
7981
  isSendingChat,
7821
7982
  autoFocus
@@ -7826,14 +7987,14 @@ function MessageList({
7826
7987
 
7827
7988
  // src/components/SessionAgenda.tsx
7828
7989
  import { useContext as useContext15 } from "react";
7829
- import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
7990
+ import { jsx as jsx32, jsxs as jsxs27 } from "react/jsx-runtime";
7830
7991
  function SessionAgenda({ phases, hasStarted }) {
7831
7992
  const ctx = useContext15(LiveAgentContext);
7832
7993
  const title = ctx?.activeModule?.name ?? "Agenda";
7833
7994
  if (phases.length === 0 || !hasStarted) {
7834
- return /* @__PURE__ */ jsx31("div", {
7995
+ return /* @__PURE__ */ jsx32("div", {
7835
7996
  className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
7836
- children: /* @__PURE__ */ jsx31(LoadingDots, {
7997
+ children: /* @__PURE__ */ jsx32(LoadingDots, {
7837
7998
  label: "Waiting for agenda to load..."
7838
7999
  })
7839
8000
  });
@@ -7843,17 +8004,17 @@ function SessionAgenda({ phases, hasStarted }) {
7843
8004
  const activeIndex = phases.findIndex((p) => p.status === "active");
7844
8005
  const currentStep = activeIndex >= 0 ? activeIndex + 1 : Math.min(completedCount + 1, total);
7845
8006
  const progressPct = Math.round(completedCount / total * 100);
7846
- return /* @__PURE__ */ jsxs26("div", {
8007
+ return /* @__PURE__ */ jsxs27("div", {
7847
8008
  className: "skippr:flex-1 skippr:overflow-y-auto skippr:p-[14px]",
7848
8009
  children: [
7849
- /* @__PURE__ */ jsxs26("div", {
8010
+ /* @__PURE__ */ jsxs27("div", {
7850
8011
  className: "skippr:mb-2 skippr:flex skippr:items-baseline skippr:justify-between",
7851
8012
  children: [
7852
- /* @__PURE__ */ jsx31("span", {
8013
+ /* @__PURE__ */ jsx32("span", {
7853
8014
  className: "skippr:text-[12.5px] skippr:font-semibold skippr:text-[#2D2D3F]",
7854
8015
  children: title
7855
8016
  }),
7856
- /* @__PURE__ */ jsxs26("span", {
8017
+ /* @__PURE__ */ jsxs27("span", {
7857
8018
  className: "skippr:text-[11px] skippr:font-semibold skippr:text-[var(--skippr-brand-deep)]",
7858
8019
  children: [
7859
8020
  "step ",
@@ -7864,14 +8025,14 @@ function SessionAgenda({ phases, hasStarted }) {
7864
8025
  })
7865
8026
  ]
7866
8027
  }),
7867
- /* @__PURE__ */ jsx31("div", {
8028
+ /* @__PURE__ */ jsx32("div", {
7868
8029
  role: "progressbar",
7869
8030
  "aria-label": "Agenda progress",
7870
8031
  "aria-valuenow": Math.round(progressPct),
7871
8032
  "aria-valuemin": 0,
7872
8033
  "aria-valuemax": 100,
7873
8034
  className: "skippr:mb-[14px] skippr:h-[5px] skippr:overflow-hidden skippr:rounded-full skippr:bg-[#eeeae4]",
7874
- children: /* @__PURE__ */ jsx31("div", {
8035
+ children: /* @__PURE__ */ jsx32("div", {
7875
8036
  className: "skippr:h-full skippr:rounded-full skippr:bg-brand",
7876
8037
  style: { width: `${progressPct}%` }
7877
8038
  })
@@ -7879,29 +8040,29 @@ function SessionAgenda({ phases, hasStarted }) {
7879
8040
  phases.map((phase) => {
7880
8041
  const isActive = phase.status === "active";
7881
8042
  const isCompleted = phase.status === "completed";
7882
- return /* @__PURE__ */ jsxs26("div", {
8043
+ return /* @__PURE__ */ jsxs27("div", {
7883
8044
  className: "skippr:flex skippr:items-center skippr:gap-[9px] skippr:py-[5px]",
7884
8045
  children: [
7885
- isCompleted ? /* @__PURE__ */ jsx31("span", {
8046
+ isCompleted ? /* @__PURE__ */ jsx32("span", {
7886
8047
  className: "skippr:flex skippr:size-[19px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-brand",
7887
- children: /* @__PURE__ */ jsx31(Check, {
8048
+ children: /* @__PURE__ */ jsx32(Check, {
7888
8049
  className: "skippr:size-[11px]",
7889
8050
  style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
7890
8051
  strokeWidth: 3
7891
8052
  })
7892
- }) : isActive ? /* @__PURE__ */ jsx31("span", {
8053
+ }) : isActive ? /* @__PURE__ */ jsx32("span", {
7893
8054
  className: "skippr:flex skippr:size-[19px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-brand skippr:shadow-[0_0_0_4px_var(--skippr-brand-ring)]",
7894
- children: /* @__PURE__ */ jsx31("span", {
8055
+ children: /* @__PURE__ */ jsx32("span", {
7895
8056
  className: "skippr:size-[6px] skippr:rounded-full skippr:bg-white"
7896
8057
  })
7897
- }) : /* @__PURE__ */ jsx31("span", {
8058
+ }) : /* @__PURE__ */ jsx32("span", {
7898
8059
  className: "skippr:size-[19px] skippr:shrink-0 skippr:rounded-full skippr:border-2 skippr:border-[#d8d3ca] skippr:bg-white"
7899
8060
  }),
7900
- /* @__PURE__ */ jsx31("span", {
8061
+ /* @__PURE__ */ jsx32("span", {
7901
8062
  className: cn("skippr:text-[12.5px]", isActive || isCompleted ? "skippr:font-semibold skippr:text-[#2D2D3F]" : "skippr:font-medium skippr:text-[#a8a49c]"),
7902
8063
  children: phase.name
7903
8064
  }),
7904
- isActive && /* @__PURE__ */ jsx31("span", {
8065
+ isActive && /* @__PURE__ */ jsx32("span", {
7905
8066
  className: "skippr:ml-auto skippr:text-[9.5px] skippr:font-bold skippr:uppercase skippr:tracking-[0.05em] skippr:text-[var(--skippr-brand-deep)]",
7906
8067
  children: "now"
7907
8068
  })
@@ -7913,12 +8074,12 @@ function SessionAgenda({ phases, hasStarted }) {
7913
8074
  }
7914
8075
 
7915
8076
  // src/components/SessionWarningBanner.tsx
7916
- import { jsx as jsx32 } from "react/jsx-runtime";
8077
+ import { jsx as jsx33 } from "react/jsx-runtime";
7917
8078
  var SESSION_WARNING_THRESHOLD_SECS = 60;
7918
8079
  function SessionWarningBanner({ remaining }) {
7919
8080
  if (remaining === null || remaining <= 0 || remaining > SESSION_WARNING_THRESHOLD_SECS)
7920
8081
  return null;
7921
- return /* @__PURE__ */ jsx32("div", {
8082
+ return /* @__PURE__ */ jsx33("div", {
7922
8083
  "data-testid": "session-warning-banner",
7923
8084
  role: "alert",
7924
8085
  className: "skippr:bg-red-50 skippr:px-4 skippr:py-1.5 skippr:text-center skippr:text-xs skippr:font-medium skippr:text-red-700",
@@ -7927,7 +8088,7 @@ function SessionWarningBanner({ remaining }) {
7927
8088
  }
7928
8089
 
7929
8090
  // src/components/Sidebar.tsx
7930
- import { jsx as jsx33, jsxs as jsxs27, Fragment as Fragment4 } from "react/jsx-runtime";
8091
+ import { jsx as jsx34, jsxs as jsxs28, Fragment as Fragment4 } from "react/jsx-runtime";
7931
8092
  var PANEL_GAP_PX = 12;
7932
8093
  var PANEL_VIEWPORT_MARGIN_PX = 24;
7933
8094
  var PANEL_MAX_HEIGHT_PX = 460;
@@ -8003,7 +8164,7 @@ function Sidebar({
8003
8164
  };
8004
8165
  }
8005
8166
  }
8006
- useEffect34(() => {
8167
+ useEffect35(() => {
8007
8168
  if (!isSidebar)
8008
8169
  return;
8009
8170
  const prop = position === "right" ? "marginRight" : "marginLeft";
@@ -8017,13 +8178,13 @@ function Sidebar({
8017
8178
  document.body.style.transition = "";
8018
8179
  };
8019
8180
  }, [isSidebar, isPanelOpen, position]);
8020
- return /* @__PURE__ */ jsxs27("div", {
8181
+ return /* @__PURE__ */ jsxs28("div", {
8021
8182
  ref: internalCtx?.panelRef,
8022
8183
  className: cn("skippr:fixed skippr:z-[9999]", "skippr:bg-card", "skippr:flex skippr:flex-col", "skippr:overflow-hidden", isFloating && "skippr:rounded-[16px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:shadow-[0_14px_34px_rgba(45,45,63,0.15),0_2px_6px_rgba(45,45,63,0.06)]", isFloating && "skippr:transition-[opacity,transform,height] skippr:duration-300 skippr:ease-in-out", isFloating && (barIsTopBottom ? popsDown ? "skippr:origin-top" : "skippr:origin-bottom" : popsDown ? barEdge === "left" ? "skippr:origin-top-left" : "skippr:origin-top-right" : barEdge === "left" ? "skippr:origin-bottom-left" : "skippr:origin-bottom-right"), 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"),
8023
8184
  style: { width: isPanelOpen ? SIDEBAR_WIDTH : undefined, ...floatingStyle },
8024
8185
  children: [
8025
- !hideHeader && /* @__PURE__ */ jsx33(ChatHeader, {}),
8026
- authFailed ? /* @__PURE__ */ jsx33(AuthError, {}) : isAuthenticated && hasResolvedModules ? /* @__PURE__ */ jsx33(AuthenticatedContent, {
8186
+ !hideHeader && /* @__PURE__ */ jsx34(ChatHeader, {}),
8187
+ authFailed ? /* @__PURE__ */ jsx34(AuthError, {}) : isAuthenticated && hasResolvedModules ? /* @__PURE__ */ jsx34(AuthenticatedContent, {
8027
8188
  isConnected,
8028
8189
  isPaused,
8029
8190
  isPausing,
@@ -8039,12 +8200,12 @@ function Sidebar({
8039
8200
  talkLabel: startSessionLabel,
8040
8201
  talkDisabled,
8041
8202
  showTalk: !isFloating
8042
- }) : usesHostAuth || isValidating || isAuthenticated ? /* @__PURE__ */ jsx33("div", {
8203
+ }) : usesHostAuth || isValidating || isAuthenticated ? /* @__PURE__ */ jsx34("div", {
8043
8204
  className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
8044
- children: /* @__PURE__ */ jsx33(LoadingDots, {
8205
+ children: /* @__PURE__ */ jsx34(LoadingDots, {
8045
8206
  label: "Loading..."
8046
8207
  })
8047
- }) : /* @__PURE__ */ jsx33(LoginFlow, {
8208
+ }) : /* @__PURE__ */ jsx34(LoginFlow, {
8048
8209
  requestOtp,
8049
8210
  verifyOtp,
8050
8211
  error: authError,
@@ -8072,20 +8233,20 @@ function AuthenticatedContent({
8072
8233
  }) {
8073
8234
  const inSession = isConnected || isStarting || isPaused || isPausing;
8074
8235
  const effectiveTab = showAgenda ? activeTab : "chat";
8075
- return /* @__PURE__ */ jsxs27(Fragment4, {
8236
+ return /* @__PURE__ */ jsxs28(Fragment4, {
8076
8237
  children: [
8077
- isConnected && /* @__PURE__ */ jsx33(ConnectedBanner, {}),
8078
- /* @__PURE__ */ jsx33("div", {
8238
+ isConnected && /* @__PURE__ */ jsx34(ConnectedBanner, {}),
8239
+ /* @__PURE__ */ jsx34("div", {
8079
8240
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
8080
- children: isDisconnecting ? /* @__PURE__ */ jsx33("div", {
8241
+ children: isDisconnecting ? /* @__PURE__ */ jsx34("div", {
8081
8242
  className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
8082
- children: /* @__PURE__ */ jsx33(LoadingDots, {
8243
+ children: /* @__PURE__ */ jsx34(LoadingDots, {
8083
8244
  label: "Ending session..."
8084
8245
  })
8085
- }) : inSession ? /* @__PURE__ */ jsx33(ConnectedBody, {
8246
+ }) : inSession ? /* @__PURE__ */ jsx34(ConnectedBody, {
8086
8247
  activeTab: effectiveTab,
8087
8248
  autoFocusChat
8088
- }) : /* @__PURE__ */ jsx33(IdleHistory, {
8249
+ }) : /* @__PURE__ */ jsx34(IdleHistory, {
8089
8250
  activeTab: effectiveTab,
8090
8251
  history: idleHistory,
8091
8252
  onTalk,
@@ -8095,22 +8256,22 @@ function AuthenticatedContent({
8095
8256
  error
8096
8257
  })
8097
8258
  }),
8098
- !hideControls && /* @__PURE__ */ jsx33("div", {
8259
+ !hideControls && /* @__PURE__ */ jsx34("div", {
8099
8260
  className: "skippr:shrink-0 skippr:border-t skippr:border-border",
8100
- children: /* @__PURE__ */ jsxs27("div", {
8261
+ children: /* @__PURE__ */ jsxs28("div", {
8101
8262
  className: "skippr:flex skippr:items-center skippr:justify-center skippr:gap-1 skippr:px-4 skippr:pt-1.5 skippr:pb-2 skippr:text-[10px] skippr:text-muted-foreground",
8102
8263
  children: [
8103
- /* @__PURE__ */ jsxs27("svg", {
8264
+ /* @__PURE__ */ jsxs28("svg", {
8104
8265
  viewBox: "21 21 109 109",
8105
8266
  className: "skippr:size-3",
8106
8267
  fill: "none",
8107
8268
  "aria-hidden": "true",
8108
8269
  children: [
8109
- /* @__PURE__ */ jsx33("path", {
8270
+ /* @__PURE__ */ jsx34("path", {
8110
8271
  d: "M119.497 24C124.193 24 128 27.8071 128 32.5033V81.3974C128 83.0339 127.536 84.5616 126.735 85.8587L89.8936 57.4811L89.8943 57.4804C80.4203 50.1648 66.2971 56.7058 66.297 69.0147V89.9007H29.5033C24.8071 89.9007 21 86.0936 21 81.3974V32.5033C21 27.8071 24.8071 24 29.5033 24H119.497ZM76.2715 69.0147C76.2716 65.1724 80.7356 63.0111 83.7978 65.3755L115.637 89.9007H76.2715V69.0147Z",
8111
8272
  fill: "currentColor"
8112
8273
  }),
8113
- /* @__PURE__ */ jsx33("path", {
8274
+ /* @__PURE__ */ jsx34("path", {
8114
8275
  d: "M83.7979 64.8856C80.7358 62.5211 76.2716 64.6824 76.2716 68.5247V120.892C76.2716 125.27 81.8518 127.191 84.5938 123.755L97.6194 107.437C98.1001 106.836 98.7119 106.35 99.4091 106.016C100.106 105.683 100.871 105.51 101.645 105.51H122.946C127.386 105.51 129.316 99.9436 125.81 97.2466L83.7979 64.8856Z",
8115
8276
  className: "skippr:fill-brand"
8116
8277
  })
@@ -8124,17 +8285,17 @@ function AuthenticatedContent({
8124
8285
  });
8125
8286
  }
8126
8287
  function AuthError() {
8127
- return /* @__PURE__ */ jsxs27("div", {
8288
+ return /* @__PURE__ */ jsxs28("div", {
8128
8289
  className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:justify-center skippr:px-6 skippr:py-4 skippr:text-center",
8129
8290
  children: [
8130
- /* @__PURE__ */ jsx33(CircleAlert, {
8291
+ /* @__PURE__ */ jsx34(CircleAlert, {
8131
8292
  className: "skippr:mb-3 skippr:size-7 skippr:text-destructive"
8132
8293
  }),
8133
- /* @__PURE__ */ jsx33("p", {
8294
+ /* @__PURE__ */ jsx34("p", {
8134
8295
  className: "skippr:text-sm skippr:font-medium skippr:text-foreground",
8135
8296
  children: "We couldn't verify your session"
8136
8297
  }),
8137
- /* @__PURE__ */ jsx33("p", {
8298
+ /* @__PURE__ */ jsx34("p", {
8138
8299
  className: "skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",
8139
8300
  children: "Please contact administrator."
8140
8301
  })
@@ -8143,7 +8304,7 @@ function AuthError() {
8143
8304
  }
8144
8305
  function ConnectedBanner() {
8145
8306
  const remaining = useSessionRemaining();
8146
- return /* @__PURE__ */ jsx33(SessionWarningBanner, {
8307
+ return /* @__PURE__ */ jsx34(SessionWarningBanner, {
8147
8308
  remaining
8148
8309
  });
8149
8310
  }
@@ -8157,43 +8318,43 @@ function IdleHistory({
8157
8318
  error
8158
8319
  }) {
8159
8320
  if (history2.isLoading) {
8160
- return /* @__PURE__ */ jsx33("div", {
8321
+ return /* @__PURE__ */ jsx34("div", {
8161
8322
  className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
8162
- children: /* @__PURE__ */ jsx33(LoadingDots, {
8323
+ children: /* @__PURE__ */ jsx34(LoadingDots, {
8163
8324
  label: "Loading conversation..."
8164
8325
  })
8165
8326
  });
8166
8327
  }
8167
- return /* @__PURE__ */ jsxs27("div", {
8328
+ return /* @__PURE__ */ jsxs28("div", {
8168
8329
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:animate-skippr-tab-fade",
8169
8330
  children: [
8170
- activeTab === "agenda" ? /* @__PURE__ */ jsx33("div", {
8331
+ activeTab === "agenda" ? /* @__PURE__ */ jsx34("div", {
8171
8332
  className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto",
8172
- children: /* @__PURE__ */ jsx33(SessionAgenda, {
8333
+ children: /* @__PURE__ */ jsx34(SessionAgenda, {
8173
8334
  phases: history2.phases,
8174
8335
  hasStarted: history2.phases.length > 0
8175
8336
  })
8176
- }) : /* @__PURE__ */ jsx33(MessageList, {
8337
+ }) : /* @__PURE__ */ jsx34(MessageList, {
8177
8338
  messages: history2.messages,
8178
8339
  isStreaming: false,
8179
8340
  readOnly: true
8180
8341
  }),
8181
- (showTalk || error) && /* @__PURE__ */ jsxs27("div", {
8342
+ (showTalk || error) && /* @__PURE__ */ jsxs28("div", {
8182
8343
  className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
8183
8344
  children: [
8184
- showTalk && /* @__PURE__ */ jsxs27("button", {
8345
+ showTalk && /* @__PURE__ */ jsxs28("button", {
8185
8346
  type: "button",
8186
8347
  onClick: onTalk,
8187
8348
  disabled: talkDisabled,
8188
8349
  className: "skippr:flex skippr:w-full skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:gap-2 skippr:rounded-xl skippr:bg-primary skippr:px-4 skippr:py-3 skippr:font-semibold skippr:text-[13px] skippr:text-primary-foreground skippr:transition-colors skippr:hover:bg-primary/90 skippr:disabled:cursor-not-allowed skippr:disabled:opacity-50",
8189
8350
  children: [
8190
- /* @__PURE__ */ jsx33(Mic, {
8351
+ /* @__PURE__ */ jsx34(Mic, {
8191
8352
  className: "skippr:size-4"
8192
8353
  }),
8193
8354
  talkLabel
8194
8355
  ]
8195
8356
  }),
8196
- error && /* @__PURE__ */ jsx33("p", {
8357
+ error && /* @__PURE__ */ jsx34("p", {
8197
8358
  role: "alert",
8198
8359
  className: cn("skippr:text-center skippr:text-xs skippr:text-destructive", showTalk && "skippr:mt-2"),
8199
8360
  children: error
@@ -8210,25 +8371,27 @@ function ConnectedBody({
8210
8371
  const { allMessages, agentState, sendChatMessage, isSendingChat } = useCombinedMessages();
8211
8372
  const { phases } = usePhaseUpdates();
8212
8373
  const plan = usePlanUpdates();
8374
+ const linkCard = useLinkCard();
8213
8375
  const { agentControls, isPaused } = useLiveAgent();
8214
8376
  const { isHeld } = useSessionHoldContext();
8215
8377
  if (activeTab === "agenda") {
8216
- return /* @__PURE__ */ jsx33("div", {
8378
+ return /* @__PURE__ */ jsx34("div", {
8217
8379
  className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto skippr:animate-skippr-tab-fade",
8218
- children: /* @__PURE__ */ jsx33(SessionAgenda, {
8380
+ children: /* @__PURE__ */ jsx34(SessionAgenda, {
8219
8381
  phases,
8220
8382
  hasStarted: allMessages.length > 0 || agentState === "speaking"
8221
8383
  })
8222
8384
  }, "agenda");
8223
8385
  }
8224
- return /* @__PURE__ */ jsx33("div", {
8386
+ return /* @__PURE__ */ jsx34("div", {
8225
8387
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:animate-skippr-tab-fade",
8226
- children: /* @__PURE__ */ jsx33(MessageList, {
8388
+ children: /* @__PURE__ */ jsx34(MessageList, {
8227
8389
  messages: allMessages,
8228
8390
  isStreaming: agentState === "speaking",
8229
8391
  sendChatMessage,
8230
8392
  isSendingChat,
8231
8393
  plan: agentControls?.actions ? plan : null,
8394
+ linkCard,
8232
8395
  autoFocus: autoFocusChat,
8233
8396
  readOnly: isPaused || isHeld
8234
8397
  })
@@ -8239,9 +8402,9 @@ function ConnectedBody({
8239
8402
  import { useContext as useContext17 } from "react";
8240
8403
 
8241
8404
  // src/components/Logo.tsx
8242
- import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
8405
+ import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
8243
8406
  function Logo({ className }) {
8244
- return /* @__PURE__ */ jsxs28("svg", {
8407
+ return /* @__PURE__ */ jsxs29("svg", {
8245
8408
  width: "1em",
8246
8409
  height: "1em",
8247
8410
  viewBox: "0 0 200 200",
@@ -8251,20 +8414,20 @@ function Logo({ className }) {
8251
8414
  "aria-label": "Skippr",
8252
8415
  className,
8253
8416
  children: [
8254
- /* @__PURE__ */ jsx34("rect", {
8417
+ /* @__PURE__ */ jsx35("rect", {
8255
8418
  width: "200",
8256
8419
  height: "200",
8257
8420
  rx: "40",
8258
8421
  fill: "#2D2D3F"
8259
8422
  }),
8260
- /* @__PURE__ */ jsxs28("g", {
8423
+ /* @__PURE__ */ jsxs29("g", {
8261
8424
  transform: "translate(100 100) scale(0.8) translate(-100 -100)",
8262
8425
  children: [
8263
- /* @__PURE__ */ jsx34("path", {
8426
+ /* @__PURE__ */ jsx35("path", {
8264
8427
  d: "M144.497 59C149.193 59 153 62.8071 153 67.5033V116.397C153 118.034 152.536 119.562 151.735 120.859L114.894 92.4811L114.894 92.4804C105.42 85.1648 91.2971 91.7058 91.297 104.015V124.901H54.5033C49.8071 124.901 46 121.094 46 116.397V67.5033C46 62.8071 49.8071 59 54.5033 59H144.497ZM101.272 104.015C101.272 100.172 105.736 98.0111 108.798 100.375L140.637 124.901H101.272V104.015Z",
8265
8428
  fill: "white"
8266
8429
  }),
8267
- /* @__PURE__ */ jsx34("path", {
8430
+ /* @__PURE__ */ jsx35("path", {
8268
8431
  d: "M108.798 99.8856C105.736 97.5211 101.271 99.6824 101.271 103.525V155.892C101.271 160.27 106.852 162.191 109.594 158.755L122.619 142.437C123.1 141.836 123.712 141.35 124.409 141.016C125.106 140.683 125.871 140.51 126.645 140.51H147.946C152.386 140.51 154.316 134.944 150.81 132.247L108.798 99.8856Z",
8269
8432
  className: "skippr:fill-brand"
8270
8433
  })
@@ -8275,7 +8438,7 @@ function Logo({ className }) {
8275
8438
  }
8276
8439
 
8277
8440
  // src/components/SidebarTrigger.tsx
8278
- import { jsx as jsx35 } from "react/jsx-runtime";
8441
+ import { jsx as jsx36 } from "react/jsx-runtime";
8279
8442
  function SidebarTrigger() {
8280
8443
  const {
8281
8444
  isPanelOpen,
@@ -8295,27 +8458,27 @@ function SidebarTrigger() {
8295
8458
  if (isMinimized || isConnected || isStarting || isPausing)
8296
8459
  return null;
8297
8460
  const handleClick = isPanelOpen && minimizable ? minimizePanel : togglePanel;
8298
- return /* @__PURE__ */ jsx35("button", {
8461
+ return /* @__PURE__ */ jsx36("button", {
8299
8462
  type: "button",
8300
8463
  onClick: handleClick,
8301
8464
  title: isPanelOpen ? "Close chat" : "Open chat",
8302
8465
  "aria-label": isPanelOpen ? "Close chat" : "Open chat",
8303
8466
  style: { bottom: triggerBottomPx(launcherBottomPx, popsDown) },
8304
8467
  className: cn("skippr:fixed skippr:z-[9998]", "skippr:flex skippr:size-12 skippr:items-center skippr:justify-center", "skippr:shadow-[0_4px_16px_rgba(45,43,61,0.45),0_2px_4px_rgba(0,0,0,0.1)] skippr:transition-all", "skippr:cursor-pointer skippr:hover:brightness-110 skippr:hover:-translate-y-0.5 skippr:active:translate-y-0", isPanelOpen ? "skippr:rounded-[14px] skippr:bg-bubble skippr:text-white" : "skippr:rounded-[10px] skippr:overflow-hidden", position === "right" ? "skippr:right-6" : "skippr:left-6"),
8305
- children: isPanelOpen ? /* @__PURE__ */ jsx35(ChevronDown, {
8468
+ children: isPanelOpen ? /* @__PURE__ */ jsx36(ChevronDown, {
8306
8469
  className: "skippr:size-5"
8307
- }) : logoUrl ? /* @__PURE__ */ jsx35("img", {
8470
+ }) : logoUrl ? /* @__PURE__ */ jsx36("img", {
8308
8471
  src: logoUrl,
8309
8472
  alt: "",
8310
8473
  className: "skippr:size-12 skippr:object-cover"
8311
- }) : /* @__PURE__ */ jsx35(Logo, {
8474
+ }) : /* @__PURE__ */ jsx36(Logo, {
8312
8475
  className: "skippr:size-12"
8313
8476
  })
8314
8477
  });
8315
8478
  }
8316
8479
 
8317
8480
  // src/components/VoiceBar.tsx
8318
- import { useCallback as useCallback26, useContext as useContext22, useState as useState34 } from "react";
8481
+ import { useCallback as useCallback29, useContext as useContext22, useState as useState36 } from "react";
8319
8482
 
8320
8483
  // src/hooks/useBarNotifications.ts
8321
8484
  import { useContext as useContext19 } from "react";
@@ -8388,14 +8551,14 @@ function useBarNotifications() {
8388
8551
 
8389
8552
  // src/components/VoiceBarFrame.tsx
8390
8553
  import { useIsSpeaking, useLocalParticipant as useLocalParticipant12 } from "@livekit/components-react/hooks";
8391
- import { useCallback as useCallback24, useContext as useContext21, useEffect as useEffect42, useRef as useRef36, useState as useState31 } from "react";
8554
+ import { useCallback as useCallback27, useContext as useContext21, useEffect as useEffect44, useRef as useRef38, useState as useState33 } from "react";
8392
8555
 
8393
8556
  // src/hooks/useKeyboardStop.ts
8394
- import { useEffect as useEffect35, useRef as useRef31 } from "react";
8557
+ import { useEffect as useEffect36, useRef as useRef32 } from "react";
8395
8558
  function useKeyboardStop({ enabled, onStop }) {
8396
- const handler = useRef31(onStop);
8559
+ const handler = useRef32(onStop);
8397
8560
  handler.current = onStop;
8398
- useEffect35(() => {
8561
+ useEffect36(() => {
8399
8562
  if (!enabled)
8400
8563
  return;
8401
8564
  const onKeyDown = (event) => {
@@ -8412,18 +8575,18 @@ function useKeyboardStop({ enabled, onStop }) {
8412
8575
  }
8413
8576
 
8414
8577
  // src/hooks/useSessionTimer.ts
8415
- import { useEffect as useEffect37, useState as useState27 } from "react";
8578
+ import { useEffect as useEffect38, useState as useState28 } from "react";
8416
8579
 
8417
8580
  // src/hooks/useElapsedSeconds.ts
8418
- import { useEffect as useEffect36, useRef as useRef32, useState as useState26 } from "react";
8581
+ import { useEffect as useEffect37, useRef as useRef33, useState as useState27 } from "react";
8419
8582
  function useElapsedSeconds(isRunning, resetSignal) {
8420
- const [elapsed, setElapsed] = useState26(0);
8421
- const accumulatedSecondsRef = useRef32(0);
8422
- useEffect36(() => {
8583
+ const [elapsed, setElapsed] = useState27(0);
8584
+ const accumulatedSecondsRef = useRef33(0);
8585
+ useEffect37(() => {
8423
8586
  accumulatedSecondsRef.current = 0;
8424
8587
  setElapsed(0);
8425
8588
  }, [resetSignal]);
8426
- useEffect36(() => {
8589
+ useEffect37(() => {
8427
8590
  if (!isRunning)
8428
8591
  return;
8429
8592
  const resumedAt = Date.now();
@@ -8448,8 +8611,8 @@ function useSessionTimer(isRunning, resetSignal) {
8448
8611
  const active = isRunning && remaining !== null;
8449
8612
  const warning = active && remaining !== null && remaining <= SESSION_TIMER_WARNING_S;
8450
8613
  const revealCycle = !active ? null : warning ? "warning" : "normal";
8451
- const [revealed, setRevealed] = useState27(false);
8452
- useEffect37(() => {
8614
+ const [revealed, setRevealed] = useState28(false);
8615
+ useEffect38(() => {
8453
8616
  if (!revealCycle) {
8454
8617
  setRevealed(false);
8455
8618
  return;
@@ -8477,18 +8640,18 @@ function useSessionTimer(isRunning, resetSignal) {
8477
8640
  }
8478
8641
 
8479
8642
  // src/hooks/useVoiceBarDrag.ts
8480
- import { useEffect as useEffect38, useRef as useRef33 } from "react";
8643
+ import { useEffect as useEffect39, useRef as useRef34 } from "react";
8481
8644
  import { flushSync as flushSync2 } from "react-dom";
8482
8645
  var DRAG_THRESHOLD_PX2 = 5;
8483
8646
  function useVoiceBarDrag(containerRef, onDrop, followRefs, reportDragging) {
8484
- const wasDraggedRef = useRef33(false);
8485
- const onDropRef = useRef33(onDrop);
8647
+ const wasDraggedRef = useRef34(false);
8648
+ const onDropRef = useRef34(onDrop);
8486
8649
  onDropRef.current = onDrop;
8487
- const followTargetsRef = useRef33(followRefs);
8650
+ const followTargetsRef = useRef34(followRefs);
8488
8651
  followTargetsRef.current = followRefs;
8489
- const reportDraggingRef = useRef33(reportDragging);
8652
+ const reportDraggingRef = useRef34(reportDragging);
8490
8653
  reportDraggingRef.current = reportDragging;
8491
- useEffect38(() => {
8654
+ useEffect39(() => {
8492
8655
  const el = containerRef.current;
8493
8656
  if (!el)
8494
8657
  return;
@@ -8640,8 +8803,8 @@ function useVoiceBarDrag(containerRef, onDrop, followRefs, reportDragging) {
8640
8803
  }
8641
8804
 
8642
8805
  // src/components/VoiceBarChatLine.tsx
8643
- import { useCallback as useCallback23, useContext as useContext20, useEffect as useEffect39, useRef as useRef34, useState as useState28 } from "react";
8644
- import { jsx as jsx36, jsxs as jsxs29 } from "react/jsx-runtime";
8806
+ import { useCallback as useCallback25, useContext as useContext20, useEffect as useEffect40, useRef as useRef35, useState as useState29 } from "react";
8807
+ import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
8645
8808
  var IDLE_HIDE_MS = 6000;
8646
8809
  function VoiceBarChatLine({
8647
8810
  dock,
@@ -8652,19 +8815,19 @@ function VoiceBarChatLine({
8652
8815
  const { sendChatMessage, isSendingChat } = useChatMessages();
8653
8816
  const ctx = useContext20(LiveAgentContext);
8654
8817
  const reportChatActivity = ctx?.reportChatActivity;
8655
- const [localDraft, setLocalDraft] = useState28("");
8818
+ const [localDraft, setLocalDraft] = useState29("");
8656
8819
  const text = ctx?.chatDraft ?? localDraft;
8657
8820
  const setText = ctx?.setChatDraft ?? setLocalDraft;
8658
- const inputRef = useRef34(null);
8659
- const idleTimerRef = useRef34(null);
8660
- const onCloseRef = useRef34(onClose);
8821
+ const inputRef = useRef35(null);
8822
+ const idleTimerRef = useRef35(null);
8823
+ const onCloseRef = useRef35(onClose);
8661
8824
  onCloseRef.current = onClose;
8662
- const armIdle = useCallback23(() => {
8825
+ const armIdle = useCallback25(() => {
8663
8826
  if (idleTimerRef.current)
8664
8827
  clearTimeout(idleTimerRef.current);
8665
8828
  idleTimerRef.current = setTimeout(() => onCloseRef.current(), IDLE_HIDE_MS);
8666
8829
  }, []);
8667
- useEffect39(() => {
8830
+ useEffect40(() => {
8668
8831
  inputRef.current?.focus();
8669
8832
  armIdle();
8670
8833
  return () => {
@@ -8690,12 +8853,12 @@ function VoiceBarChatLine({
8690
8853
  width: 255,
8691
8854
  ...dock.edge === "top" ? { top: "calc(100% + 12px)" } : { bottom: "calc(100% + 12px)" }
8692
8855
  };
8693
- return /* @__PURE__ */ jsxs29("div", {
8856
+ return /* @__PURE__ */ jsxs30("div", {
8694
8857
  style: embedded ? undefined : style,
8695
8858
  onPointerDown: (event) => event.stopPropagation(),
8696
8859
  className: cn("skippr:flex skippr:items-center skippr:gap-[7px] skippr:py-[4px] skippr:pl-[13px] skippr:pr-[5px]", !embedded && "skippr:z-[4] skippr:rounded-[12px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:shadow-[0_10px_26px_rgba(45,45,63,0.13),0_2px_6px_rgba(45,45,63,0.05)] skippr:[animation:skippr-fade-in_0.16s_ease]"),
8697
8860
  children: [
8698
- /* @__PURE__ */ jsx36("input", {
8861
+ /* @__PURE__ */ jsx37("input", {
8699
8862
  ref: inputRef,
8700
8863
  value: text,
8701
8864
  onChange: (event) => {
@@ -8713,7 +8876,7 @@ function VoiceBarChatLine({
8713
8876
  "aria-label": "Message",
8714
8877
  className: "skippr:min-w-0 skippr:flex-1 skippr:border-none skippr:bg-transparent skippr:py-[7px] skippr:text-[13px] skippr:font-medium skippr:text-[#2D2D3F] skippr:outline-none skippr:placeholder:text-[#b0aca4]"
8715
8878
  }),
8716
- /* @__PURE__ */ jsx36("button", {
8879
+ /* @__PURE__ */ jsx37("button", {
8717
8880
  type: "button",
8718
8881
  onClick: submit,
8719
8882
  disabled: !sendReady,
@@ -8723,7 +8886,7 @@ function VoiceBarChatLine({
8723
8886
  },
8724
8887
  "aria-label": "Send",
8725
8888
  className: "skippr:flex skippr:size-[32px] skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:transition-[filter] skippr:hover:brightness-[1.06] skippr:focus-visible:outline-2 skippr:focus-visible:outline-offset-2 skippr:focus-visible:outline-[var(--skippr-brand)] skippr:disabled:cursor-not-allowed",
8726
- children: /* @__PURE__ */ jsx36(Send, {
8889
+ children: /* @__PURE__ */ jsx37(Send, {
8727
8890
  className: "skippr:size-[15px]",
8728
8891
  strokeWidth: 2
8729
8892
  })
@@ -8732,18 +8895,105 @@ function VoiceBarChatLine({
8732
8895
  });
8733
8896
  }
8734
8897
 
8898
+ // src/components/VoiceBarLinkCard.tsx
8899
+ import { useCallback as useCallback26, useEffect as useEffect41, useRef as useRef36, useState as useState30 } from "react";
8900
+ import { jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
8901
+ var COPIED_RESET_MS2 = 2000;
8902
+ var DISMISS_AFTER_COPY_MS2 = 3000;
8903
+ function VoiceBarLinkCard({ card, onDismiss }) {
8904
+ const [copied, setCopied] = useState30(false);
8905
+ const dismissTimerRef = useRef36(null);
8906
+ useEffect41(() => {
8907
+ if (!copied)
8908
+ return;
8909
+ const timer = setTimeout(() => setCopied(false), COPIED_RESET_MS2);
8910
+ return () => clearTimeout(timer);
8911
+ }, [copied]);
8912
+ useEffect41(() => {
8913
+ return () => {
8914
+ if (dismissTimerRef.current)
8915
+ clearTimeout(dismissTimerRef.current);
8916
+ };
8917
+ }, []);
8918
+ const handleCopy = useCallback26(async () => {
8919
+ const ok = await copyToClipboard(card.url);
8920
+ if (!ok)
8921
+ return;
8922
+ setCopied(true);
8923
+ dismissTimerRef.current = setTimeout(onDismiss, DISMISS_AFTER_COPY_MS2);
8924
+ }, [card.url, onDismiss]);
8925
+ return /* @__PURE__ */ jsxs31("div", {
8926
+ className: "skippr:relative skippr:w-[225px] skippr:rounded-[14px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:shadow-[0_10px_28px_rgba(45,45,63,0.16)] skippr:[animation:skippr-tip-in_360ms_cubic-bezier(0.34,1.3,0.64,1)]",
8927
+ children: [
8928
+ /* @__PURE__ */ jsx38("button", {
8929
+ type: "button",
8930
+ onClick: onDismiss,
8931
+ "aria-label": "Dismiss link",
8932
+ className: "skippr:absolute skippr:right-[8px] skippr:top-[8px] skippr:flex skippr:size-[20px] skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:text-[#b8b4ac] skippr:transition-colors skippr:hover:bg-[#f2f0eb] skippr:hover:text-[#2D2D3F]",
8933
+ children: /* @__PURE__ */ jsx38(X, {
8934
+ className: "skippr:size-[12px]",
8935
+ strokeWidth: 2.5
8936
+ })
8937
+ }),
8938
+ /* @__PURE__ */ jsxs31("div", {
8939
+ className: "skippr:px-[12px] skippr:pb-[10px] skippr:pt-[10px]",
8940
+ children: [
8941
+ /* @__PURE__ */ jsx38("p", {
8942
+ className: "skippr:mr-[22px] skippr:truncate skippr:text-[10px] skippr:text-[#8b877f]",
8943
+ children: card.url
8944
+ }),
8945
+ /* @__PURE__ */ jsxs31("div", {
8946
+ className: "skippr:mt-[9px] skippr:flex skippr:gap-[8px]",
8947
+ children: [
8948
+ /* @__PURE__ */ jsxs31("a", {
8949
+ href: card.url,
8950
+ target: "_blank",
8951
+ rel: "noopener noreferrer",
8952
+ className: "skippr:flex skippr:flex-1 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:gap-[6px] skippr:rounded-full skippr:bg-[#2D2D3F] skippr:px-[10px] skippr:py-[6px] skippr:text-[11px] skippr:font-semibold skippr:text-white skippr:transition-colors skippr:hover:bg-[#3d3d52]",
8953
+ children: [
8954
+ /* @__PURE__ */ jsx38(ExternalLink, {
8955
+ className: "skippr:size-[11px]",
8956
+ strokeWidth: 2.5
8957
+ }),
8958
+ "open"
8959
+ ]
8960
+ }),
8961
+ /* @__PURE__ */ jsxs31("button", {
8962
+ type: "button",
8963
+ onClick: handleCopy,
8964
+ "aria-label": "Copy link",
8965
+ className: "skippr:flex skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:gap-[6px] skippr:rounded-full skippr:border skippr:border-[rgba(45,45,63,0.12)] skippr:bg-white skippr:px-[10px] skippr:py-[6px] skippr:text-[11px] skippr:font-semibold skippr:text-[#2D2D3F] skippr:transition-colors skippr:hover:bg-[#f2f0eb]",
8966
+ children: [
8967
+ copied ? /* @__PURE__ */ jsx38(Check, {
8968
+ className: "skippr:size-[11px]",
8969
+ strokeWidth: 3
8970
+ }) : /* @__PURE__ */ jsx38(Copy, {
8971
+ className: "skippr:size-[11px]",
8972
+ strokeWidth: 2.5
8973
+ }),
8974
+ copied ? "copied" : "copy"
8975
+ ]
8976
+ })
8977
+ ]
8978
+ })
8979
+ ]
8980
+ })
8981
+ ]
8982
+ });
8983
+ }
8984
+
8735
8985
  // src/components/VoiceBarNotification.tsx
8736
- import { useEffect as useEffect40, useRef as useRef35, useState as useState29 } from "react";
8737
- import { jsx as jsx37, jsxs as jsxs30 } from "react/jsx-runtime";
8986
+ import { useEffect as useEffect42, useRef as useRef37, useState as useState31 } from "react";
8987
+ import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
8738
8988
  function VoiceBarNotification({
8739
8989
  notifications,
8740
8990
  dock,
8741
8991
  onDismiss
8742
8992
  }) {
8743
- const [index2, setIndex] = useState29(0);
8744
- const [paused, setPaused] = useState29(false);
8745
- const cardRef = useRef35(null);
8746
- useEffect40(() => {
8993
+ const [index2, setIndex] = useState31(0);
8994
+ const [paused, setPaused] = useState31(false);
8995
+ const cardRef = useRef37(null);
8996
+ useEffect42(() => {
8747
8997
  const el = cardRef.current;
8748
8998
  if (!el)
8749
8999
  return;
@@ -8756,7 +9006,7 @@ function VoiceBarNotification({
8756
9006
  el.removeEventListener("mouseleave", leave);
8757
9007
  };
8758
9008
  }, []);
8759
- useEffect40(() => {
9009
+ useEffect42(() => {
8760
9010
  if (paused)
8761
9011
  return;
8762
9012
  const rotate = setInterval(() => setIndex((current) => (current + 1) % notifications.length), TIP_ROTATE_MS);
@@ -8790,21 +9040,21 @@ function VoiceBarNotification({
8790
9040
  zIndex: 6,
8791
9041
  ...dock.edge === "left" ? { left: "calc(100% + 10px)" } : { right: "calc(100% + 10px)" }
8792
9042
  };
8793
- return /* @__PURE__ */ jsx37("div", {
9043
+ return /* @__PURE__ */ jsx39("div", {
8794
9044
  style: wrapperStyle,
8795
9045
  "data-skippr-no-drag": "",
8796
- children: /* @__PURE__ */ jsxs30("div", {
9046
+ children: /* @__PURE__ */ jsxs32("div", {
8797
9047
  ref: cardRef,
8798
9048
  className: "skippr:flex skippr:w-[255px] skippr:items-center skippr:gap-[8px] skippr:rounded-[14px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:px-[11px] skippr:py-[3px] skippr:shadow-[0_10px_28px_rgba(45,45,63,0.16)] skippr:[animation:skippr-tip-in_360ms_cubic-bezier(0.34,1.3,0.64,1)]",
8799
9049
  children: [
8800
- /* @__PURE__ */ jsx37("span", {
9050
+ /* @__PURE__ */ jsx39("span", {
8801
9051
  className: "skippr:flex skippr:min-h-[16px] skippr:min-w-0 skippr:flex-1 skippr:items-center skippr:text-[10px] skippr:font-medium skippr:leading-[1.25] skippr:text-[#5a5650]",
8802
- children: /* @__PURE__ */ jsx37("span", {
9052
+ children: /* @__PURE__ */ jsx39("span", {
8803
9053
  className: "skippr:line-clamp-2",
8804
9054
  children: notification.message
8805
9055
  })
8806
9056
  }),
8807
- /* @__PURE__ */ jsx37("button", {
9057
+ /* @__PURE__ */ jsx39("button", {
8808
9058
  type: "button",
8809
9059
  onClick: () => {
8810
9060
  notification.activate();
@@ -8813,7 +9063,7 @@ function VoiceBarNotification({
8813
9063
  className: "skippr:shrink-0 skippr:cursor-pointer skippr:rounded-full skippr:bg-[#2D2D3F] skippr:px-[9px] skippr:py-[3px] skippr:text-[9.5px] skippr:font-semibold skippr:text-white skippr:transition-colors skippr:hover:bg-[#3d3d52]",
8814
9064
  children: "start"
8815
9065
  }),
8816
- hasMultiple && /* @__PURE__ */ jsxs30("button", {
9066
+ hasMultiple && /* @__PURE__ */ jsxs32("button", {
8817
9067
  type: "button",
8818
9068
  onClick: () => setIndex((current) => (current + 1) % notifications.length),
8819
9069
  "aria-label": "Next",
@@ -8823,7 +9073,7 @@ function VoiceBarNotification({
8823
9073
  safeIndex + 1,
8824
9074
  "/",
8825
9075
  notifications.length,
8826
- /* @__PURE__ */ jsx37(ChevronRight, {
9076
+ /* @__PURE__ */ jsx39(ChevronRight, {
8827
9077
  className: "skippr:size-[11px]",
8828
9078
  strokeWidth: 2.5
8829
9079
  })
@@ -8835,14 +9085,14 @@ function VoiceBarNotification({
8835
9085
  }
8836
9086
 
8837
9087
  // src/components/VoiceBarPlanCard.tsx
8838
- import { useEffect as useEffect41, useState as useState30 } from "react";
8839
- import { jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
9088
+ import { useEffect as useEffect43, useState as useState32 } from "react";
9089
+ import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
8840
9090
  var APPROVING_RESET_MS2 = 8000;
8841
9091
  function StepIndicator({ step }) {
8842
9092
  if (step.status === "done") {
8843
- return /* @__PURE__ */ jsx38("span", {
9093
+ return /* @__PURE__ */ jsx40("span", {
8844
9094
  className: "skippr:flex skippr:size-[16px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-brand",
8845
- children: /* @__PURE__ */ jsx38(Check, {
9095
+ children: /* @__PURE__ */ jsx40(Check, {
8846
9096
  className: "skippr:size-[10px]",
8847
9097
  style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
8848
9098
  strokeWidth: 3
@@ -8850,15 +9100,15 @@ function StepIndicator({ step }) {
8850
9100
  });
8851
9101
  }
8852
9102
  if (step.status === "failed") {
8853
- return /* @__PURE__ */ jsx38("span", {
9103
+ return /* @__PURE__ */ jsx40("span", {
8854
9104
  className: "skippr:flex skippr:size-[16px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-[#dc2626]",
8855
- children: /* @__PURE__ */ jsx38(X, {
9105
+ children: /* @__PURE__ */ jsx40(X, {
8856
9106
  className: "skippr:size-[10px] skippr:text-white",
8857
9107
  strokeWidth: 3
8858
9108
  })
8859
9109
  });
8860
9110
  }
8861
- return /* @__PURE__ */ jsx38("span", {
9111
+ return /* @__PURE__ */ jsx40("span", {
8862
9112
  className: cn("skippr:flex skippr:size-[16px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-[#f2f0eb] skippr:text-[9px] skippr:font-bold skippr:text-[#8b877f]", step.status === "active" && "skippr:bg-white skippr:text-brand skippr:shadow-[inset_0_0_0_1.5px_var(--skippr-brand,#2bc0ae)]"),
8863
9113
  children: step.index + 1
8864
9114
  });
@@ -8870,8 +9120,8 @@ function VoiceBarPlanCard({
8870
9120
  embedded = false
8871
9121
  }) {
8872
9122
  const awaitingApproval = plan.state === "proposed";
8873
- const [isApproving, setIsApproving] = useState30(false);
8874
- const [lastPlanId, setLastPlanId] = useState30(plan.planId);
9123
+ const [isApproving, setIsApproving] = useState32(false);
9124
+ const [lastPlanId, setLastPlanId] = useState32(plan.planId);
8875
9125
  if (plan.planId !== lastPlanId) {
8876
9126
  setLastPlanId(plan.planId);
8877
9127
  setIsApproving(false);
@@ -8886,87 +9136,87 @@ function VoiceBarPlanCard({
8886
9136
  const cancel = () => {
8887
9137
  sendChatMessage(CANCEL_MESSAGE).catch((e) => console.warn("[Skippr] plan reply failed", e));
8888
9138
  };
8889
- useEffect41(() => {
9139
+ useEffect43(() => {
8890
9140
  if (!isApproving)
8891
9141
  return;
8892
9142
  const timer = setTimeout(() => setIsApproving(false), APPROVING_RESET_MS2);
8893
9143
  return () => clearTimeout(timer);
8894
9144
  }, [isApproving]);
8895
- useEffect41(() => {
9145
+ useEffect43(() => {
8896
9146
  if (plan.state !== "completed")
8897
9147
  return;
8898
9148
  const timer = setTimeout(onDismiss, COMPLETED_CARD_VISIBLE_MS);
8899
9149
  return () => clearTimeout(timer);
8900
9150
  }, [plan.state, onDismiss]);
8901
- return /* @__PURE__ */ jsxs31("div", {
9151
+ return /* @__PURE__ */ jsxs33("div", {
8902
9152
  className: cn(!embedded && "skippr:w-[255px] skippr:rounded-[14px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:shadow-[0_10px_28px_rgba(45,45,63,0.16)] skippr:[animation:skippr-tip-in_360ms_cubic-bezier(0.34,1.3,0.64,1)]"),
8903
9153
  children: [
8904
- /* @__PURE__ */ jsxs31("div", {
9154
+ /* @__PURE__ */ jsxs33("div", {
8905
9155
  className: "skippr:flex skippr:items-center skippr:justify-between skippr:border-b skippr:border-[rgba(45,45,63,0.06)] skippr:px-[12px] skippr:py-[6px]",
8906
9156
  children: [
8907
- /* @__PURE__ */ jsx38("span", {
9157
+ /* @__PURE__ */ jsx40("span", {
8908
9158
  className: "skippr:text-[11px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#2D2D3F]",
8909
9159
  children: "Plan"
8910
9160
  }),
8911
- /* @__PURE__ */ jsx38("button", {
9161
+ /* @__PURE__ */ jsx40("button", {
8912
9162
  type: "button",
8913
9163
  onClick: onDismiss,
8914
9164
  "aria-label": "Dismiss plan",
8915
9165
  className: "skippr:flex skippr:size-[20px] skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:text-[#b8b4ac] skippr:transition-colors skippr:hover:bg-[#f2f0eb] skippr:hover:text-[#2D2D3F]",
8916
- children: /* @__PURE__ */ jsx38(X, {
9166
+ children: /* @__PURE__ */ jsx40(X, {
8917
9167
  className: "skippr:size-[12px]",
8918
9168
  strokeWidth: 2.5
8919
9169
  })
8920
9170
  })
8921
9171
  ]
8922
9172
  }),
8923
- /* @__PURE__ */ jsxs31("div", {
9173
+ /* @__PURE__ */ jsxs33("div", {
8924
9174
  className: "skippr:px-[12px] skippr:pb-[10px] skippr:pt-[8px]",
8925
9175
  children: [
8926
- /* @__PURE__ */ jsx38("p", {
9176
+ /* @__PURE__ */ jsx40("p", {
8927
9177
  className: "skippr:text-[11.5px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#2D2D3F]",
8928
9178
  children: "Here's my plan"
8929
9179
  }),
8930
- awaitingApproval && /* @__PURE__ */ jsxs31("p", {
9180
+ awaitingApproval && /* @__PURE__ */ jsxs33("p", {
8931
9181
  className: "skippr:mt-[1px] skippr:text-[10px] skippr:text-[#8b877f]",
8932
9182
  children: [
8933
9183
  plan.steps.length,
8934
9184
  " steps · review and approve to run"
8935
9185
  ]
8936
9186
  }),
8937
- /* @__PURE__ */ jsx38("div", {
9187
+ /* @__PURE__ */ jsx40("div", {
8938
9188
  className: "skippr:mt-[8px] skippr:max-h-[132px] skippr:space-y-[6px] skippr:overflow-y-auto skippr:overscroll-contain",
8939
- children: plan.steps.map((step) => /* @__PURE__ */ jsxs31("div", {
9189
+ children: plan.steps.map((step) => /* @__PURE__ */ jsxs33("div", {
8940
9190
  className: "skippr:flex skippr:items-center skippr:gap-[7px]",
8941
9191
  children: [
8942
- /* @__PURE__ */ jsx38(StepIndicator, {
9192
+ /* @__PURE__ */ jsx40(StepIndicator, {
8943
9193
  step
8944
9194
  }),
8945
- /* @__PURE__ */ jsx38("p", {
9195
+ /* @__PURE__ */ jsx40("p", {
8946
9196
  className: cn("skippr:min-w-0 skippr:text-[11px] skippr:leading-snug skippr:text-[#2D2D3F]", step.status === "pending" && "skippr:text-[#8b877f]", step.status === "failed" && "skippr:text-[#dc2626]"),
8947
9197
  children: step.label
8948
9198
  })
8949
9199
  ]
8950
9200
  }, step.index))
8951
9201
  }),
8952
- /* @__PURE__ */ jsx38("div", {
9202
+ /* @__PURE__ */ jsx40("div", {
8953
9203
  className: "skippr:mt-[9px]",
8954
- children: awaitingApproval ? /* @__PURE__ */ jsxs31("div", {
9204
+ children: awaitingApproval ? /* @__PURE__ */ jsxs33("div", {
8955
9205
  className: "skippr:flex skippr:gap-[8px]",
8956
9206
  children: [
8957
- /* @__PURE__ */ jsxs31("button", {
9207
+ /* @__PURE__ */ jsxs33("button", {
8958
9208
  type: "button",
8959
9209
  disabled: isApproving,
8960
9210
  onClick: approve,
8961
9211
  className: "skippr:flex skippr:flex-1 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:gap-[6px] skippr:rounded-full skippr:bg-[#2D2D3F] skippr:px-[10px] skippr:py-[6px] skippr:text-[11px] skippr:font-semibold skippr:text-white skippr:transition-colors skippr:hover:bg-[#3d3d52] skippr:disabled:cursor-default skippr:disabled:opacity-80 skippr:disabled:hover:bg-[#2D2D3F]",
8962
9212
  children: [
8963
- isApproving && /* @__PURE__ */ jsx38("span", {
9213
+ isApproving && /* @__PURE__ */ jsx40("span", {
8964
9214
  className: "skippr:size-[10px] skippr:shrink-0 skippr:animate-spin skippr:rounded-full skippr:border-2 skippr:border-white/30 skippr:border-t-white"
8965
9215
  }),
8966
9216
  isApproving ? "approving…" : "approve plan"
8967
9217
  ]
8968
9218
  }),
8969
- /* @__PURE__ */ jsx38("button", {
9219
+ /* @__PURE__ */ jsx40("button", {
8970
9220
  type: "button",
8971
9221
  disabled: isApproving,
8972
9222
  onClick: cancel,
@@ -8974,11 +9224,11 @@ function VoiceBarPlanCard({
8974
9224
  children: "cancel"
8975
9225
  })
8976
9226
  ]
8977
- }) : /* @__PURE__ */ jsxs31("span", {
9227
+ }) : /* @__PURE__ */ jsxs33("span", {
8978
9228
  style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
8979
9229
  className: "skippr:flex skippr:items-center skippr:justify-center skippr:gap-[5px] skippr:rounded-full skippr:bg-brand skippr:px-[10px] skippr:py-[6px] skippr:text-[11px] skippr:font-semibold",
8980
9230
  children: [
8981
- /* @__PURE__ */ jsx38(Check, {
9231
+ /* @__PURE__ */ jsx40(Check, {
8982
9232
  className: "skippr:size-[11px]",
8983
9233
  strokeWidth: 3
8984
9234
  }),
@@ -8993,7 +9243,7 @@ function VoiceBarPlanCard({
8993
9243
  }
8994
9244
 
8995
9245
  // src/components/VoiceBarFrame.tsx
8996
- import { jsx as jsx39, jsxs as jsxs32, Fragment as Fragment5 } from "react/jsx-runtime";
9246
+ import { jsx as jsx41, jsxs as jsxs34, Fragment as Fragment5 } from "react/jsx-runtime";
8997
9247
  var AUTO_OFF_MOTES = [
8998
9248
  { left: "13%", delay: "0s", size: 4 },
8999
9249
  { left: "27%", delay: "0.4s", size: 3 },
@@ -9006,19 +9256,19 @@ var AUTO_OFF_MOTES = [
9006
9256
  var EDGE_BUTTON = "skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-transparent skippr:text-[#b8b4ac] skippr:cursor-pointer skippr:transition-colors skippr:hover:bg-[#f2f0eb] skippr:hover:text-[#2D2D3F]";
9007
9257
  var PILL = "skippr:relative skippr:flex skippr:h-[36px] skippr:min-w-[96px] skippr:flex-1 skippr:items-center skippr:justify-center skippr:gap-[8px] skippr:rounded-full skippr:text-[13px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-white";
9008
9258
  function LoadingAvatar({ logoUrl }) {
9009
- return /* @__PURE__ */ jsxs32("span", {
9259
+ return /* @__PURE__ */ jsxs34("span", {
9010
9260
  className: "skippr:relative skippr:size-[22px] skippr:shrink-0",
9011
9261
  children: [
9012
- /* @__PURE__ */ jsx39("span", {
9262
+ /* @__PURE__ */ jsx41("span", {
9013
9263
  className: "skippr:absolute skippr:-inset-[3px] skippr:rounded-full skippr:border-2 skippr:border-[var(--skippr-brand-ring)] skippr:border-t-brand skippr:animate-spin"
9014
9264
  }),
9015
- /* @__PURE__ */ jsx39("span", {
9265
+ /* @__PURE__ */ jsx41("span", {
9016
9266
  className: "skippr:absolute skippr:inset-0 skippr:overflow-hidden skippr:rounded-full",
9017
- children: logoUrl ? /* @__PURE__ */ jsx39("img", {
9267
+ children: logoUrl ? /* @__PURE__ */ jsx41("img", {
9018
9268
  src: logoUrl,
9019
9269
  alt: "",
9020
9270
  className: "skippr:block skippr:size-full skippr:object-cover"
9021
- }) : /* @__PURE__ */ jsx39("span", {
9271
+ }) : /* @__PURE__ */ jsx41("span", {
9022
9272
  className: "skippr:block skippr:size-full skippr:bg-launcher"
9023
9273
  })
9024
9274
  })
@@ -9026,21 +9276,21 @@ function LoadingAvatar({ logoUrl }) {
9026
9276
  });
9027
9277
  }
9028
9278
  function BusyRing({ tone }) {
9029
- return /* @__PURE__ */ jsx39("span", {
9279
+ return /* @__PURE__ */ jsx41("span", {
9030
9280
  className: cn("skippr:pointer-events-none skippr:absolute skippr:-inset-[3px] skippr:rounded-full skippr:border-2 skippr:animate-spin", tone === "white" ? "skippr:border-white/30 skippr:border-t-white" : "skippr:border-[var(--skippr-brand-ring)] skippr:border-t-brand")
9031
9281
  });
9032
9282
  }
9033
9283
  function AgentDots() {
9034
- return /* @__PURE__ */ jsxs32("span", {
9284
+ return /* @__PURE__ */ jsxs34("span", {
9035
9285
  className: "skippr:flex skippr:items-center skippr:gap-[4px]",
9036
9286
  children: [
9037
- /* @__PURE__ */ jsx39("span", {
9287
+ /* @__PURE__ */ jsx41("span", {
9038
9288
  className: "skippr:size-[4px] skippr:rounded-full skippr:bg-current skippr:[animation:skippr-breathe_1.1s_ease-in-out_0s_infinite]"
9039
9289
  }),
9040
- /* @__PURE__ */ jsx39("span", {
9290
+ /* @__PURE__ */ jsx41("span", {
9041
9291
  className: "skippr:size-[4px] skippr:rounded-full skippr:bg-current skippr:[animation:skippr-breathe_1.1s_ease-in-out_0.18s_infinite]"
9042
9292
  }),
9043
- /* @__PURE__ */ jsx39("span", {
9293
+ /* @__PURE__ */ jsx41("span", {
9044
9294
  className: "skippr:size-[4px] skippr:rounded-full skippr:bg-current skippr:[animation:skippr-breathe_1.1s_ease-in-out_0.36s_infinite]"
9045
9295
  })
9046
9296
  ]
@@ -9048,9 +9298,9 @@ function AgentDots() {
9048
9298
  }
9049
9299
  function SpeakingBars() {
9050
9300
  const { barRefs } = useMicLevel(true);
9051
- return /* @__PURE__ */ jsx39("span", {
9301
+ return /* @__PURE__ */ jsx41("span", {
9052
9302
  className: "skippr:flex skippr:h-[22px] skippr:items-center skippr:gap-[3px]",
9053
- children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */ jsx39("span", {
9303
+ children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */ jsx41("span", {
9054
9304
  ref: (el) => {
9055
9305
  barRefs.current[index2] = el;
9056
9306
  },
@@ -9070,7 +9320,7 @@ function MicLevelHalo({ enabled }) {
9070
9320
  maxGrowthPx: MIC_HALO_GROWTH_PX,
9071
9321
  noiseGate: MIC_HALO_NOISE_GATE
9072
9322
  });
9073
- return /* @__PURE__ */ jsx39("span", {
9323
+ return /* @__PURE__ */ jsx41("span", {
9074
9324
  ref: (el) => {
9075
9325
  barRefs.current[0] = el;
9076
9326
  },
@@ -9079,7 +9329,7 @@ function MicLevelHalo({ enabled }) {
9079
9329
  });
9080
9330
  }
9081
9331
  function ShortcutChip({ children }) {
9082
- return /* @__PURE__ */ jsx39("span", {
9332
+ return /* @__PURE__ */ jsx41("span", {
9083
9333
  className: "skippr:rounded-[5px] skippr:border skippr:border-[rgba(45,45,63,0.1)] skippr:bg-[#f2f0eb] skippr:px-[5px] skippr:py-[1px] skippr:font-mono skippr:text-[10px] skippr:font-semibold skippr:text-[#6b6660]",
9084
9334
  children
9085
9335
  });
@@ -9090,9 +9340,9 @@ function ShortcutHint({
9090
9340
  suppressed,
9091
9341
  children
9092
9342
  }) {
9093
- const ref = useRef36(null);
9094
- const [visible, setVisible] = useState31(false);
9095
- useEffect42(() => {
9343
+ const ref = useRef38(null);
9344
+ const [visible, setVisible] = useState33(false);
9345
+ useEffect44(() => {
9096
9346
  if (!enabled)
9097
9347
  return;
9098
9348
  const el = ref.current;
@@ -9115,56 +9365,56 @@ function ShortcutHint({
9115
9365
  el.removeEventListener("mouseleave", leave);
9116
9366
  };
9117
9367
  }, [enabled, seenRef]);
9118
- return /* @__PURE__ */ jsxs32("div", {
9368
+ return /* @__PURE__ */ jsxs34("div", {
9119
9369
  ref,
9120
9370
  className: "skippr:relative skippr:flex skippr:min-w-[96px] skippr:flex-1",
9121
9371
  children: [
9122
- enabled && visible && !suppressed && /* @__PURE__ */ jsxs32("div", {
9372
+ enabled && visible && !suppressed && /* @__PURE__ */ jsxs34("div", {
9123
9373
  className: "skippr:pointer-events-none skippr:absolute skippr:bottom-[calc(100%+11px)] skippr:left-1/2 skippr:z-[8] skippr:flex skippr:-translate-x-1/2 skippr:items-center skippr:gap-[7px] skippr:whitespace-nowrap skippr:rounded-[11px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:px-[11px] skippr:py-[6px] skippr:shadow-[0_8px_22px_rgba(45,45,63,0.12),0_1px_3px_rgba(45,45,63,0.04)] skippr:[animation:skippr-fade-in_0.22s_ease]",
9124
9374
  children: [
9125
- /* @__PURE__ */ jsxs32("span", {
9375
+ /* @__PURE__ */ jsxs34("span", {
9126
9376
  className: "skippr:flex skippr:items-center skippr:gap-[3px]",
9127
9377
  children: [
9128
- /* @__PURE__ */ jsx39(ShortcutChip, {
9378
+ /* @__PURE__ */ jsx41(ShortcutChip, {
9129
9379
  children: "Ctrl"
9130
9380
  }),
9131
- /* @__PURE__ */ jsx39("span", {
9381
+ /* @__PURE__ */ jsx41("span", {
9132
9382
  className: "skippr:text-[9px] skippr:text-[#c9c5bd]",
9133
9383
  children: "+"
9134
9384
  }),
9135
- /* @__PURE__ */ jsx39(ShortcutChip, {
9385
+ /* @__PURE__ */ jsx41(ShortcutChip, {
9136
9386
  children: "Space"
9137
9387
  })
9138
9388
  ]
9139
9389
  }),
9140
- /* @__PURE__ */ jsx39("span", {
9390
+ /* @__PURE__ */ jsx41("span", {
9141
9391
  className: "skippr:text-[10.5px] skippr:font-medium skippr:text-[#8b877f]",
9142
9392
  children: "talk"
9143
9393
  }),
9144
- /* @__PURE__ */ jsx39("span", {
9394
+ /* @__PURE__ */ jsx41("span", {
9145
9395
  className: "skippr:text-[10px] skippr:text-[#cbc7bf]",
9146
9396
  children: "·"
9147
9397
  }),
9148
- /* @__PURE__ */ jsxs32("span", {
9398
+ /* @__PURE__ */ jsxs34("span", {
9149
9399
  className: "skippr:flex skippr:items-center skippr:gap-[3px]",
9150
9400
  children: [
9151
- /* @__PURE__ */ jsx39(ShortcutChip, {
9401
+ /* @__PURE__ */ jsx41(ShortcutChip, {
9152
9402
  children: "Ctrl"
9153
9403
  }),
9154
- /* @__PURE__ */ jsx39("span", {
9404
+ /* @__PURE__ */ jsx41("span", {
9155
9405
  className: "skippr:text-[9px] skippr:text-[#c9c5bd]",
9156
9406
  children: "+"
9157
9407
  }),
9158
- /* @__PURE__ */ jsx39(ShortcutChip, {
9408
+ /* @__PURE__ */ jsx41(ShortcutChip, {
9159
9409
  children: "X"
9160
9410
  })
9161
9411
  ]
9162
9412
  }),
9163
- /* @__PURE__ */ jsx39("span", {
9413
+ /* @__PURE__ */ jsx41("span", {
9164
9414
  className: "skippr:text-[10.5px] skippr:font-medium skippr:text-[#8b877f]",
9165
9415
  children: "stop"
9166
9416
  }),
9167
- /* @__PURE__ */ jsx39("span", {
9417
+ /* @__PURE__ */ jsx41("span", {
9168
9418
  className: "skippr:absolute skippr:left-1/2 skippr:top-full skippr:size-[9px] skippr:-translate-x-1/2 skippr:-translate-y-[4px] skippr:rotate-45 skippr:border-b skippr:border-r skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white"
9169
9419
  })
9170
9420
  ]
@@ -9205,11 +9455,11 @@ function VoiceBarFrame({
9205
9455
  captureMode,
9206
9456
  chatActivityAt
9207
9457
  } = ctx;
9208
- const [bannerOpen, setBannerOpen] = useState31(false);
9458
+ const [bannerOpen, setBannerOpen] = useState33(false);
9209
9459
  const hasNotifications = notifications.length > 0;
9210
9460
  const notifAccent = notifications[0]?.accentColor;
9211
- const closeBanner = useCallback24(() => setBannerOpen(false), []);
9212
- const containerRef = useRef36(null);
9461
+ const closeBanner = useCallback27(() => setBannerOpen(false), []);
9462
+ const containerRef = useRef38(null);
9213
9463
  const dragFollowers = isPanelOpen ? [panelRef] : null;
9214
9464
  const { wasDraggedRef } = useVoiceBarDrag(containerRef, onDrop, dragFollowers, setDragging);
9215
9465
  const { isMuted, toggleMute } = useMediaControls();
@@ -9220,9 +9470,11 @@ function VoiceBarFrame({
9220
9470
  const holdPushToTalk = usePointerHold(start, commit);
9221
9471
  const { isHeld, countdown: holdCountdown, toggle: togglePause } = useSessionHoldContext();
9222
9472
  const plan = usePlanUpdates();
9473
+ const linkCard = useLinkCard();
9223
9474
  const { sendChatMessage } = useChatMessages();
9224
- const [dismissedFloatingPlanId, setDismissedFloatingPlanId] = useState31(null);
9225
- const [dismissedBlockPlanId, setDismissedBlockPlanId] = useState31(null);
9475
+ const [dismissedFloatingPlanId, setDismissedFloatingPlanId] = useState33(null);
9476
+ const [dismissedBlockPlanId, setDismissedBlockPlanId] = useState33(null);
9477
+ const [dismissedLinkCardId, setDismissedLinkCardId] = useState33(null);
9226
9478
  const micMode = agentControls?.micMode;
9227
9479
  const pushOrTap = isRequestResponseMicMode(micMode);
9228
9480
  const isPushToTalk = micMode === MIC_MODE.PushToTalk;
@@ -9231,9 +9483,9 @@ function VoiceBarFrame({
9231
9483
  const showActionControl = isConnected && captureMode === CAPTURE_MODE.Auto && actionsActive;
9232
9484
  const chatSurface = agentControls?.chat ?? DEFAULT_CHAT_SURFACE;
9233
9485
  const isRoomChat = chatSurface === CHAT_SURFACE.Room;
9234
- const [chatLineOpen, setChatLineOpen] = useState31(false);
9235
- const [chatLineMounted, setChatLineMounted] = useState31(false);
9236
- const [chatLineClosing, setChatLineClosing] = useState31(false);
9486
+ const [chatLineOpen, setChatLineOpen] = useState33(false);
9487
+ const [chatLineMounted, setChatLineMounted] = useState33(false);
9488
+ const [chatLineClosing, setChatLineClosing] = useState33(false);
9237
9489
  const chatOpen = isRoomChat ? isPanelOpen : chatLineOpen;
9238
9490
  const lineBlockOpen = !isRoomChat && chatLineMounted;
9239
9491
  const toggleChat = () => {
@@ -9243,7 +9495,7 @@ function VoiceBarFrame({
9243
9495
  setChatLineOpen((open) => !open);
9244
9496
  }
9245
9497
  };
9246
- useEffect42(() => {
9498
+ useEffect44(() => {
9247
9499
  if (chatLineOpen) {
9248
9500
  setChatLineMounted(true);
9249
9501
  setChatLineClosing(false);
@@ -9274,7 +9526,7 @@ function VoiceBarFrame({
9274
9526
  return;
9275
9527
  action();
9276
9528
  };
9277
- const [pauseSource, setPauseSource] = useState31(null);
9529
+ const [pauseSource, setPauseSource] = useState33(null);
9278
9530
  const closeBar = (source) => {
9279
9531
  if (sessionLive) {
9280
9532
  setPauseSource(source);
@@ -9284,24 +9536,24 @@ function VoiceBarFrame({
9284
9536
  }
9285
9537
  };
9286
9538
  useKeyboardStop({ enabled: sessionLive, onStop: () => closeBar("stop") });
9287
- const hintSeenRef = useRef36(false);
9539
+ const hintSeenRef = useRef38(false);
9288
9540
  const requestPillBg = isCapturingSpeech ? "var(--skippr-brand-active)" : "var(--skippr-brand, #2bc0ae)";
9289
9541
  const agentStateLabel = state === "thinking" ? "thinking…" : state === "speaking" ? "talking…" : null;
9290
9542
  const idleRequestLabel = isPushToTalk ? "push to talk" : "tap to talk";
9291
9543
  const requestLabel = agentStateLabel ?? (isCapturingSpeech ? "listening…" : idleRequestLabel);
9292
9544
  const livePillBg = agentActive && !isHeld ? "var(--skippr-brand-active)" : "var(--skippr-brand, #2bc0ae)";
9293
9545
  const glow = isConnected && !isHeld && agentActive;
9294
- const [autoOffClosing, setAutoOffClosing] = useState31(false);
9546
+ const [autoOffClosing, setAutoOffClosing] = useState33(false);
9295
9547
  const { reportActivity } = useIdleAutoOff({
9296
9548
  enabled: isConnected && !autoOffClosing,
9297
9549
  active: agentActive || isCapturingSpeech || isUserSpeaking,
9298
9550
  onExpire: () => setAutoOffClosing(true)
9299
9551
  });
9300
- useEffect42(() => {
9552
+ useEffect44(() => {
9301
9553
  if (chatActivityAt)
9302
9554
  reportActivity();
9303
9555
  }, [chatActivityAt, reportActivity]);
9304
- useEffect42(() => {
9556
+ useEffect44(() => {
9305
9557
  if (!autoOffClosing)
9306
9558
  return;
9307
9559
  if (!isConnected) {
@@ -9317,12 +9569,12 @@ function VoiceBarFrame({
9317
9569
  const floatingPlanActive = planEnabled && !isRoomChat && !lineBlockOpen && activePlan.planId !== dismissedFloatingPlanId;
9318
9570
  const planInLineBlock = planEnabled && lineBlockOpen && activePlan.planId !== dismissedBlockPlanId;
9319
9571
  const planCardActive = floatingPlanActive || planInLineBlock;
9320
- useEffect42(() => {
9572
+ useEffect44(() => {
9321
9573
  if (lineBlockOpen)
9322
9574
  setDismissedBlockPlanId(null);
9323
9575
  }, [lineBlockOpen]);
9324
- const [autoOpenedPlanId, setAutoOpenedPlanId] = useState31(null);
9325
- useEffect42(() => {
9576
+ const [autoOpenedPlanId, setAutoOpenedPlanId] = useState33(null);
9577
+ useEffect44(() => {
9326
9578
  if (!isRoomChat || !planEnabled || !activePlan)
9327
9579
  return;
9328
9580
  if (activePlan.planId === autoOpenedPlanId)
@@ -9331,6 +9583,8 @@ function VoiceBarFrame({
9331
9583
  if (!isPanelOpen)
9332
9584
  openPanel();
9333
9585
  }, [isRoomChat, planEnabled, activePlan, autoOpenedPlanId, isPanelOpen, openPanel]);
9586
+ const visibleLinkCard = linkCard && linkCard.cardId !== dismissedLinkCardId ? linkCard : null;
9587
+ const linkCardActive = !!visibleLinkCard && isConnected && !planCardActive && !(isRoomChat && chatOpen) && !isCapturingSpeech && !isHeld && !autoOffClosing;
9334
9588
  const bannerActive = hasNotifications && bannerOpen;
9335
9589
  const slotClaimed = chatOpen || bannerActive || lineBlockOpen;
9336
9590
  const autoBase = !isStarting && isConnected && !textMode && !pushOrTap && !autoOffClosing;
@@ -9361,12 +9615,12 @@ function VoiceBarFrame({
9361
9615
  ...dock.edge === "top" ? { top: "calc(100% + 12px)" } : { bottom: "calc(100% + 12px)" }
9362
9616
  };
9363
9617
  const pillEvaporate = autoOffClosing ? "skippr:[animation:skippr-evaporate_3.2s_ease-in_forwards] skippr:motion-reduce:animate-none" : "";
9364
- return /* @__PURE__ */ jsxs32("div", {
9618
+ return /* @__PURE__ */ jsxs34("div", {
9365
9619
  ref: containerRef,
9366
9620
  style: dockStyle(dock),
9367
9621
  className: "skippr:fixed skippr:z-[9999] skippr:flex skippr:w-[255px] skippr:touch-none skippr:cursor-grab skippr:items-center",
9368
9622
  children: [
9369
- glow && /* @__PURE__ */ jsx39("span", {
9623
+ glow && /* @__PURE__ */ jsx41("span", {
9370
9624
  "aria-hidden": true,
9371
9625
  className: "skippr:pointer-events-none skippr:absolute skippr:-left-[6px] skippr:-right-[6px] skippr:-top-[13px] skippr:h-[24px] skippr:rounded-full skippr:animate-skippr-flow skippr:motion-reduce:animate-none",
9372
9626
  style: {
@@ -9376,13 +9630,13 @@ function VoiceBarFrame({
9376
9630
  backgroundSize: "300% 100%"
9377
9631
  }
9378
9632
  }),
9379
- /* @__PURE__ */ jsx39("span", {
9633
+ /* @__PURE__ */ jsx41("span", {
9380
9634
  className: cn("skippr:pointer-events-none skippr:absolute skippr:inset-0 skippr:rounded-full skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:transition-shadow", glow ? "skippr:shadow-[0_10px_30px_rgba(45,45,63,0.14),0_0_0_1.5px_var(--skippr-brand-ring)]" : "skippr:shadow-[0_8px_30px_rgba(45,45,63,0.14),0_2px_6px_rgba(45,45,63,0.06)]", pillEvaporate)
9381
9635
  }),
9382
- autoOffClosing && /* @__PURE__ */ jsx39("span", {
9636
+ autoOffClosing && /* @__PURE__ */ jsx41("span", {
9383
9637
  "aria-hidden": true,
9384
9638
  className: "skippr:pointer-events-none skippr:absolute skippr:inset-0 skippr:z-[4] skippr:overflow-visible",
9385
- children: AUTO_OFF_MOTES.map((mote) => /* @__PURE__ */ jsx39("span", {
9639
+ children: AUTO_OFF_MOTES.map((mote) => /* @__PURE__ */ jsx41("span", {
9386
9640
  className: "skippr:absolute skippr:top-1/2 skippr:rounded-full skippr:bg-brand skippr:[animation:skippr-mote-rise_1.6s_ease-out_infinite] skippr:motion-reduce:animate-none",
9387
9641
  style: {
9388
9642
  left: mote.left,
@@ -9392,39 +9646,39 @@ function VoiceBarFrame({
9392
9646
  }
9393
9647
  }, mote.left))
9394
9648
  }),
9395
- showLiveStrip && /* @__PURE__ */ jsx39("div", {
9649
+ showLiveStrip && /* @__PURE__ */ jsx41("div", {
9396
9650
  style: stripStyle,
9397
9651
  className: "skippr:pointer-events-none skippr:z-[5]",
9398
- children: /* @__PURE__ */ jsxs32("div", {
9652
+ children: /* @__PURE__ */ jsxs34("div", {
9399
9653
  className: "skippr:flex skippr:items-center skippr:gap-[7px] skippr:rounded-full skippr:border skippr:border-[rgba(45,45,63,0.06)] skippr:bg-white/95 skippr:px-[12px] skippr:py-[5px] skippr:shadow-[0_4px_12px_rgba(45,45,63,0.1)] skippr:[animation:skippr-fade-in_0.25s_ease]",
9400
9654
  children: [
9401
- /* @__PURE__ */ jsx39("span", {
9655
+ /* @__PURE__ */ jsx41("span", {
9402
9656
  style: { background: livePillBg },
9403
9657
  className: "skippr:size-[7px] skippr:shrink-0 skippr:rounded-full skippr:[animation:skippr-breathe_1.1s_ease-in-out_0s_infinite]"
9404
9658
  }),
9405
- /* @__PURE__ */ jsx39("span", {
9659
+ /* @__PURE__ */ jsx41("span", {
9406
9660
  className: "skippr:whitespace-nowrap skippr:text-[12px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#5a5650]",
9407
9661
  children: liveStripLabel
9408
9662
  })
9409
9663
  ]
9410
9664
  })
9411
9665
  }),
9412
- showHeldStrip && /* @__PURE__ */ jsx39("div", {
9666
+ showHeldStrip && /* @__PURE__ */ jsx41("div", {
9413
9667
  style: stripStyle,
9414
9668
  className: "skippr:pointer-events-none skippr:z-[5]",
9415
- children: /* @__PURE__ */ jsxs32("div", {
9669
+ children: /* @__PURE__ */ jsxs34("div", {
9416
9670
  role: "timer",
9417
9671
  "aria-label": `Agent closes in ${holdCountdown} seconds`,
9418
9672
  className: "skippr:flex skippr:items-center skippr:gap-[7px] skippr:rounded-full skippr:border skippr:border-[rgba(45,45,63,0.06)] skippr:bg-white/95 skippr:px-[12px] skippr:py-[5px] skippr:shadow-[0_4px_12px_rgba(45,45,63,0.1)] skippr:[animation:skippr-fade-in_0.25s_ease]",
9419
9673
  children: [
9420
- /* @__PURE__ */ jsx39("span", {
9674
+ /* @__PURE__ */ jsx41("span", {
9421
9675
  className: "skippr:size-[7px] skippr:shrink-0 skippr:rounded-full skippr:bg-[#b9b4ab]"
9422
9676
  }),
9423
- /* @__PURE__ */ jsxs32("span", {
9677
+ /* @__PURE__ */ jsxs34("span", {
9424
9678
  className: "skippr:whitespace-nowrap skippr:text-[12px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#5a5650]",
9425
9679
  children: [
9426
9680
  "Agent closes in",
9427
- /* @__PURE__ */ jsxs32("span", {
9681
+ /* @__PURE__ */ jsxs34("span", {
9428
9682
  className: "skippr:ml-1 skippr:tabular-nums",
9429
9683
  children: [
9430
9684
  heldMinutes,
@@ -9437,51 +9691,60 @@ function VoiceBarFrame({
9437
9691
  ]
9438
9692
  })
9439
9693
  }),
9440
- showTimerStrip && sessionTimer && /* @__PURE__ */ jsx39("div", {
9694
+ showTimerStrip && sessionTimer && /* @__PURE__ */ jsx41("div", {
9441
9695
  style: stripStyle,
9442
9696
  className: "skippr:pointer-events-none skippr:z-[5]",
9443
- children: /* @__PURE__ */ jsxs32("div", {
9697
+ children: /* @__PURE__ */ jsxs34("div", {
9444
9698
  className: "skippr:flex skippr:items-center skippr:gap-[7px] skippr:rounded-full skippr:border skippr:border-[rgba(45,45,63,0.06)] skippr:bg-white/95 skippr:px-[12px] skippr:py-[5px] skippr:shadow-[0_4px_12px_rgba(45,45,63,0.1)] skippr:[animation:skippr-fade-in_0.25s_ease]",
9445
9699
  children: [
9446
- /* @__PURE__ */ jsx39("span", {
9700
+ /* @__PURE__ */ jsx41("span", {
9447
9701
  style: { background: sessionTimer.warning ? "#f59e0b" : "#b9b4ab" },
9448
9702
  className: "skippr:size-[7px] skippr:shrink-0 skippr:rounded-full"
9449
9703
  }),
9450
- /* @__PURE__ */ jsx39("span", {
9704
+ /* @__PURE__ */ jsx41("span", {
9451
9705
  className: cn("skippr:whitespace-nowrap skippr:text-[12px] skippr:font-semibold skippr:tracking-[-0.01em]", sessionTimer.warning ? "skippr:text-[#92400e]" : "skippr:text-[#5a5650]"),
9452
9706
  children: sessionTimer.label
9453
9707
  })
9454
9708
  ]
9455
9709
  })
9456
9710
  }),
9457
- showAutoOffStrip && /* @__PURE__ */ jsx39("div", {
9711
+ showAutoOffStrip && /* @__PURE__ */ jsx41("div", {
9458
9712
  role: "status",
9459
9713
  style: stripStyle,
9460
9714
  className: "skippr:pointer-events-none skippr:z-[6]",
9461
- children: /* @__PURE__ */ jsxs32("div", {
9715
+ children: /* @__PURE__ */ jsxs34("div", {
9462
9716
  className: "skippr:flex skippr:items-center skippr:gap-[7px] skippr:rounded-full skippr:border skippr:border-[rgba(45,45,63,0.06)] skippr:bg-white/95 skippr:px-[12px] skippr:py-[5px] skippr:shadow-[0_4px_12px_rgba(45,45,63,0.1)] skippr:[animation:skippr-fade-in_0.25s_ease]",
9463
9717
  children: [
9464
- /* @__PURE__ */ jsx39("span", {
9718
+ /* @__PURE__ */ jsx41("span", {
9465
9719
  className: "skippr:size-[7px] skippr:shrink-0 skippr:rounded-full skippr:bg-[#b9b4ab] skippr:[animation:skippr-breathe_1.1s_ease-in-out_0s_infinite]"
9466
9720
  }),
9467
- /* @__PURE__ */ jsx39("span", {
9721
+ /* @__PURE__ */ jsx41("span", {
9468
9722
  className: "skippr:whitespace-nowrap skippr:text-[12px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#5a5650]",
9469
9723
  children: "No activity — closing…"
9470
9724
  })
9471
9725
  ]
9472
9726
  })
9473
9727
  }),
9474
- floatingPlanActive && activePlan && /* @__PURE__ */ jsx39("div", {
9728
+ floatingPlanActive && activePlan && /* @__PURE__ */ jsx41("div", {
9475
9729
  style: planCardStyle,
9476
9730
  className: "skippr:z-[6]",
9477
9731
  "data-skippr-no-drag": "",
9478
- children: /* @__PURE__ */ jsx39(VoiceBarPlanCard, {
9732
+ children: /* @__PURE__ */ jsx41(VoiceBarPlanCard, {
9479
9733
  plan: activePlan,
9480
9734
  sendChatMessage,
9481
9735
  onDismiss: () => setDismissedFloatingPlanId(activePlan.planId)
9482
9736
  }, activePlan.planId)
9483
9737
  }),
9484
- hasNotifications && !bannerOpen && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx39("button", {
9738
+ linkCardActive && visibleLinkCard && /* @__PURE__ */ jsx41("div", {
9739
+ style: planCardStyle,
9740
+ className: "skippr:z-[6]",
9741
+ "data-skippr-no-drag": "",
9742
+ children: /* @__PURE__ */ jsx41(VoiceBarLinkCard, {
9743
+ card: visibleLinkCard,
9744
+ onDismiss: () => setDismissedLinkCardId(visibleLinkCard.cardId)
9745
+ }, visibleLinkCard.cardId)
9746
+ }),
9747
+ hasNotifications && !bannerOpen && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx41("button", {
9485
9748
  type: "button",
9486
9749
  onClick: ifNotDragged(() => setBannerOpen(true)),
9487
9750
  "aria-label": "Show notifications",
@@ -9491,61 +9754,61 @@ function VoiceBarFrame({
9491
9754
  },
9492
9755
  className: "skippr:absolute skippr:-top-[3px] skippr:right-[4px] skippr:z-[7] skippr:size-[13px] skippr:cursor-pointer skippr:rounded-full skippr:border-[2.5px] skippr:border-white skippr:animate-skippr-voice-pulse skippr:motion-reduce:animate-none"
9493
9756
  }),
9494
- bannerActive && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx39(VoiceBarNotification, {
9757
+ bannerActive && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx41(VoiceBarNotification, {
9495
9758
  notifications,
9496
9759
  dock,
9497
9760
  onDismiss: closeBanner
9498
9761
  }),
9499
- /* @__PURE__ */ jsxs32("div", {
9762
+ /* @__PURE__ */ jsxs34("div", {
9500
9763
  className: cn("skippr:relative skippr:z-[1] skippr:flex skippr:w-full skippr:items-center skippr:gap-[7px] skippr:px-[7px] skippr:py-[5px]", pillEvaporate),
9501
9764
  children: [
9502
- showClose && /* @__PURE__ */ jsxs32("button", {
9765
+ showClose && /* @__PURE__ */ jsxs34("button", {
9503
9766
  type: "button",
9504
9767
  onClick: ifNotDragged(() => closeBar("close")),
9505
9768
  disabled: isPausing || isStarting,
9506
9769
  "aria-label": sessionLive ? "End session" : "Close",
9507
9770
  className: cn(EDGE_BUTTON, "skippr:relative skippr:size-[26px]", isStarting && "skippr:cursor-not-allowed skippr:opacity-40 skippr:hover:bg-transparent skippr:hover:text-[#b8b4ac]"),
9508
9771
  children: [
9509
- isPausing && pauseSource === "close" && /* @__PURE__ */ jsx39(BusyRing, {
9772
+ isPausing && pauseSource === "close" && /* @__PURE__ */ jsx41(BusyRing, {
9510
9773
  tone: "brand"
9511
9774
  }),
9512
- /* @__PURE__ */ jsx39(X, {
9775
+ /* @__PURE__ */ jsx41(X, {
9513
9776
  className: "skippr:size-[14px]",
9514
9777
  strokeWidth: 2
9515
9778
  })
9516
9779
  ]
9517
9780
  }),
9518
- isStarting && /* @__PURE__ */ jsxs32("div", {
9781
+ isStarting && /* @__PURE__ */ jsxs34("div", {
9519
9782
  className: cn(PILL, "skippr:bg-[#F1EFEA] skippr:overflow-hidden skippr:[animation:skippr-fade-in_0.25s_ease]"),
9520
9783
  children: [
9521
- /* @__PURE__ */ jsx39(LoadingAvatar, {
9784
+ /* @__PURE__ */ jsx41(LoadingAvatar, {
9522
9785
  logoUrl
9523
9786
  }),
9524
- /* @__PURE__ */ jsx39("span", {
9787
+ /* @__PURE__ */ jsx41("span", {
9525
9788
  className: "skippr:whitespace-nowrap skippr:text-[12.5px] skippr:font-semibold skippr:text-[#5a5650]",
9526
9789
  children: "Agent is loading"
9527
9790
  }),
9528
- /* @__PURE__ */ jsxs32("span", {
9791
+ /* @__PURE__ */ jsxs34("span", {
9529
9792
  className: "skippr:flex skippr:items-end skippr:gap-[3px]",
9530
9793
  children: [
9531
- /* @__PURE__ */ jsx39("span", {
9794
+ /* @__PURE__ */ jsx41("span", {
9532
9795
  className: "skippr:size-[3px] skippr:rounded-full skippr:bg-brand skippr:[animation:skippr-breathe_1.1s_ease-in-out_0s_infinite]"
9533
9796
  }),
9534
- /* @__PURE__ */ jsx39("span", {
9797
+ /* @__PURE__ */ jsx41("span", {
9535
9798
  className: "skippr:size-[3px] skippr:rounded-full skippr:bg-brand skippr:[animation:skippr-breathe_1.1s_ease-in-out_0.18s_infinite]"
9536
9799
  }),
9537
- /* @__PURE__ */ jsx39("span", {
9800
+ /* @__PURE__ */ jsx41("span", {
9538
9801
  className: "skippr:size-[3px] skippr:rounded-full skippr:bg-brand skippr:[animation:skippr-breathe_1.1s_ease-in-out_0.36s_infinite]"
9539
9802
  })
9540
9803
  ]
9541
9804
  })
9542
9805
  ]
9543
9806
  }),
9544
- !isStarting && isConnected && !textMode && pushOrTap && /* @__PURE__ */ jsx39(ShortcutHint, {
9807
+ !isStarting && isConnected && !textMode && pushOrTap && /* @__PURE__ */ jsx41(ShortcutHint, {
9545
9808
  enabled: isPushToTalk,
9546
9809
  seenRef: hintSeenRef,
9547
9810
  suppressed: hintSuppressed,
9548
- children: /* @__PURE__ */ jsxs32("button", {
9811
+ children: /* @__PURE__ */ jsxs34("button", {
9549
9812
  type: "button",
9550
9813
  "data-skippr-no-drag": "",
9551
9814
  style: {
@@ -9564,7 +9827,7 @@ function VoiceBarFrame({
9564
9827
  "aria-label": requestLabel,
9565
9828
  className: cn(PILL, "skippr:cursor-pointer skippr:transition-[filter] skippr:hover:brightness-[1.04] skippr:active:scale-[0.98]", isCapturingSpeech && "skippr:animate-skippr-ptt-transmit skippr:motion-reduce:animate-none"),
9566
9829
  children: [
9567
- agentActive ? /* @__PURE__ */ jsx39(AgentDots, {}) : isCapturingSpeech ? /* @__PURE__ */ jsx39(SpeakingBars, {}) : /* @__PURE__ */ jsx39(AudioLines, {
9830
+ agentActive ? /* @__PURE__ */ jsx41(AgentDots, {}) : isCapturingSpeech ? /* @__PURE__ */ jsx41(SpeakingBars, {}) : /* @__PURE__ */ jsx41(AudioLines, {
9568
9831
  className: "skippr:size-[17px]",
9569
9832
  strokeWidth: 2
9570
9833
  }),
@@ -9572,60 +9835,60 @@ function VoiceBarFrame({
9572
9835
  ]
9573
9836
  })
9574
9837
  }),
9575
- !isStarting && isConnected && !textMode && !pushOrTap && /* @__PURE__ */ jsxs32("div", {
9838
+ !isStarting && isConnected && !textMode && !pushOrTap && /* @__PURE__ */ jsxs34("div", {
9576
9839
  style: { background: livePillBg, color: "var(--skippr-brand-foreground, #2d2b3d)" },
9577
9840
  className: cn(PILL, "skippr:gap-[9px] skippr:px-[8px]"),
9578
9841
  children: [
9579
- /* @__PURE__ */ jsx39("button", {
9842
+ /* @__PURE__ */ jsx41("button", {
9580
9843
  type: "button",
9581
9844
  onClick: ifNotDragged(togglePause),
9582
9845
  "aria-label": isHeld ? "Resume" : "Pause",
9583
9846
  className: "skippr:flex skippr:size-[26px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-transparent skippr:cursor-pointer skippr:transition-colors skippr:hover:bg-white/20",
9584
- children: isHeld ? /* @__PURE__ */ jsx39(Play, {
9847
+ children: isHeld ? /* @__PURE__ */ jsx41(Play, {
9585
9848
  className: "skippr:size-[13px]",
9586
9849
  fill: "currentColor",
9587
9850
  strokeWidth: 0
9588
- }) : /* @__PURE__ */ jsx39(Pause, {
9851
+ }) : /* @__PURE__ */ jsx41(Pause, {
9589
9852
  className: "skippr:size-[13px]",
9590
9853
  fill: "currentColor",
9591
9854
  strokeWidth: 0
9592
9855
  })
9593
9856
  }),
9594
- !isHeld && /* @__PURE__ */ jsxs32(Fragment5, {
9857
+ !isHeld && /* @__PURE__ */ jsxs34(Fragment5, {
9595
9858
  children: [
9596
- /* @__PURE__ */ jsxs32("span", {
9859
+ /* @__PURE__ */ jsxs34("span", {
9597
9860
  className: "skippr:relative skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center",
9598
9861
  children: [
9599
- /* @__PURE__ */ jsx39(MicLevelHalo, {
9862
+ /* @__PURE__ */ jsx41(MicLevelHalo, {
9600
9863
  enabled: !isMuted
9601
9864
  }),
9602
- /* @__PURE__ */ jsx39("button", {
9865
+ /* @__PURE__ */ jsx41("button", {
9603
9866
  type: "button",
9604
9867
  onClick: ifNotDragged(() => void toggleMute()),
9605
9868
  style: { background: "#fff", color: "var(--skippr-brand-deep)" },
9606
9869
  "aria-label": isMuted ? "Unmute" : "Mute",
9607
9870
  className: "skippr:relative skippr:flex skippr:size-[30px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:cursor-pointer skippr:transition-[filter] skippr:hover:brightness-[1.06]",
9608
- children: isMuted ? /* @__PURE__ */ jsx39(MicOff, {
9871
+ children: isMuted ? /* @__PURE__ */ jsx41(MicOff, {
9609
9872
  className: "skippr:size-[15px]",
9610
9873
  strokeWidth: 2
9611
- }) : /* @__PURE__ */ jsx39(Mic, {
9874
+ }) : /* @__PURE__ */ jsx41(Mic, {
9612
9875
  className: "skippr:size-[15px]",
9613
9876
  strokeWidth: 2
9614
9877
  })
9615
9878
  })
9616
9879
  ]
9617
9880
  }),
9618
- /* @__PURE__ */ jsxs32("button", {
9881
+ /* @__PURE__ */ jsxs34("button", {
9619
9882
  type: "button",
9620
9883
  onClick: ifNotDragged(() => closeBar("stop")),
9621
9884
  disabled: isPausing,
9622
9885
  "aria-label": "End session",
9623
9886
  className: "skippr:relative skippr:flex skippr:size-[26px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-transparent skippr:cursor-pointer skippr:transition-colors skippr:hover:bg-white/20 skippr:disabled:cursor-not-allowed",
9624
9887
  children: [
9625
- isPausing && pauseSource === "stop" && /* @__PURE__ */ jsx39(BusyRing, {
9888
+ isPausing && pauseSource === "stop" && /* @__PURE__ */ jsx41(BusyRing, {
9626
9889
  tone: "white"
9627
9890
  }),
9628
- /* @__PURE__ */ jsx39(Square, {
9891
+ /* @__PURE__ */ jsx41(Square, {
9629
9892
  className: "skippr:size-[11px]",
9630
9893
  fill: "currentColor",
9631
9894
  strokeWidth: 0
@@ -9636,17 +9899,17 @@ function VoiceBarFrame({
9636
9899
  })
9637
9900
  ]
9638
9901
  }),
9639
- !isStarting && isConnected && textMode && /* @__PURE__ */ jsxs32("div", {
9902
+ !isStarting && isConnected && textMode && /* @__PURE__ */ jsxs34("div", {
9640
9903
  className: cn(PILL, "skippr:gap-[7px] skippr:bg-[#F1EFEA] skippr:text-[#5a5650] skippr:[animation:skippr-fade-in_0.25s_ease]"),
9641
9904
  children: [
9642
- /* @__PURE__ */ jsx39(MessageSquare, {
9905
+ /* @__PURE__ */ jsx41(MessageSquare, {
9643
9906
  className: "skippr:size-[15px] skippr:text-[#8b877f]",
9644
9907
  strokeWidth: 2
9645
9908
  }),
9646
9909
  "Text mode"
9647
9910
  ]
9648
9911
  }),
9649
- !sessionLive && /* @__PURE__ */ jsxs32("button", {
9912
+ !sessionLive && /* @__PURE__ */ jsxs34("button", {
9650
9913
  type: "button",
9651
9914
  onClick: ifNotDragged(() => {
9652
9915
  if (canStart)
@@ -9657,48 +9920,48 @@ function VoiceBarFrame({
9657
9920
  style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
9658
9921
  className: cn(PILL, "skippr:cursor-pointer skippr:bg-brand skippr:px-[12px] skippr:transition-[filter] skippr:hover:brightness-[1.04] skippr:active:scale-[0.98] skippr:disabled:cursor-not-allowed skippr:disabled:opacity-60"),
9659
9922
  children: [
9660
- /* @__PURE__ */ jsx39("span", {
9923
+ /* @__PURE__ */ jsx41("span", {
9661
9924
  className: "skippr:size-[22px] skippr:shrink-0 skippr:overflow-hidden skippr:rounded-full skippr:shadow-[0_0_0_1.5px_rgba(255,255,255,0.85)]",
9662
- children: logoUrl ? /* @__PURE__ */ jsx39("img", {
9925
+ children: logoUrl ? /* @__PURE__ */ jsx41("img", {
9663
9926
  src: logoUrl,
9664
9927
  alt: "",
9665
9928
  className: "skippr:block skippr:size-full skippr:object-cover"
9666
- }) : /* @__PURE__ */ jsx39("span", {
9929
+ }) : /* @__PURE__ */ jsx41("span", {
9667
9930
  className: "skippr:block skippr:size-full skippr:bg-launcher"
9668
9931
  })
9669
9932
  }),
9670
9933
  "Talk to Agent"
9671
9934
  ]
9672
9935
  }),
9673
- (sessionLive || isRoomChat) && /* @__PURE__ */ jsx39("button", {
9936
+ (sessionLive || isRoomChat) && /* @__PURE__ */ jsx41("button", {
9674
9937
  type: "button",
9675
9938
  onClick: ifNotDragged(toggleChat),
9676
9939
  disabled: isStarting,
9677
9940
  "aria-label": "Open chat",
9678
9941
  className: cn(EDGE_BUTTON, "skippr:size-[30px] skippr:text-[#8b877f]", isStarting && "skippr:cursor-not-allowed skippr:opacity-40 skippr:hover:bg-transparent skippr:hover:text-[#8b877f]"),
9679
- children: /* @__PURE__ */ jsx39(MessageSquare, {
9942
+ children: /* @__PURE__ */ jsx41(MessageSquare, {
9680
9943
  className: "skippr:size-[15px]",
9681
9944
  strokeWidth: 2
9682
9945
  })
9683
9946
  })
9684
9947
  ]
9685
9948
  }),
9686
- lineBlockOpen && /* @__PURE__ */ jsxs32("div", {
9949
+ lineBlockOpen && /* @__PURE__ */ jsxs34("div", {
9687
9950
  style: chatBlockStyle,
9688
9951
  "data-skippr-no-drag": "",
9689
9952
  onPointerDown: (event) => event.stopPropagation(),
9690
9953
  className: cn("skippr:z-[6] skippr:overflow-hidden skippr:rounded-[14px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:shadow-[0_10px_26px_rgba(45,45,63,0.13),0_2px_6px_rgba(45,45,63,0.05)]", chatLineClosing ? "skippr:[animation:skippr-fade-out_0.18s_ease-in_forwards]" : "skippr:[animation:skippr-fade-in_0.24s_cubic-bezier(0.22,1,0.36,1)]"),
9691
9954
  children: [
9692
- planInLineBlock && activePlan && /* @__PURE__ */ jsx39("div", {
9955
+ planInLineBlock && activePlan && /* @__PURE__ */ jsx41("div", {
9693
9956
  className: "skippr:overflow-hidden skippr:border-b skippr:border-[rgba(45,45,63,0.08)] skippr:[animation:skippr-block-reveal_320ms_cubic-bezier(0.22,1,0.36,1)]",
9694
- children: /* @__PURE__ */ jsx39(VoiceBarPlanCard, {
9957
+ children: /* @__PURE__ */ jsx41(VoiceBarPlanCard, {
9695
9958
  embedded: true,
9696
9959
  plan: activePlan,
9697
9960
  sendChatMessage,
9698
9961
  onDismiss: () => setDismissedBlockPlanId(activePlan.planId)
9699
9962
  }, activePlan.planId)
9700
9963
  }),
9701
- /* @__PURE__ */ jsx39(VoiceBarChatLine, {
9964
+ /* @__PURE__ */ jsx41(VoiceBarChatLine, {
9702
9965
  embedded: true,
9703
9966
  dock,
9704
9967
  canSend: isConnected,
@@ -9711,21 +9974,21 @@ function VoiceBarFrame({
9711
9974
  }
9712
9975
 
9713
9976
  // src/components/VoiceBarLauncher.tsx
9714
- import { useCallback as useCallback25, useEffect as useEffect44, useRef as useRef38, useState as useState33 } from "react";
9977
+ import { useCallback as useCallback28, useEffect as useEffect46, useRef as useRef40, useState as useState35 } from "react";
9715
9978
 
9716
9979
  // src/components/LauncherNotification.tsx
9717
- import { useEffect as useEffect43, useRef as useRef37, useState as useState32 } from "react";
9718
- import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
9980
+ import { useEffect as useEffect45, useRef as useRef39, useState as useState34 } from "react";
9981
+ import { jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
9719
9982
  function LauncherNotification({
9720
9983
  notifications,
9721
9984
  dock,
9722
9985
  mode,
9723
9986
  onDismiss
9724
9987
  }) {
9725
- const [index2, setIndex] = useState32(0);
9726
- const [paused, setPaused] = useState32(false);
9727
- const cardRef = useRef37(null);
9728
- useEffect43(() => {
9988
+ const [index2, setIndex] = useState34(0);
9989
+ const [paused, setPaused] = useState34(false);
9990
+ const cardRef = useRef39(null);
9991
+ useEffect45(() => {
9729
9992
  const el = cardRef.current;
9730
9993
  if (!el)
9731
9994
  return;
@@ -9738,7 +10001,7 @@ function LauncherNotification({
9738
10001
  el.removeEventListener("mouseleave", leave);
9739
10002
  };
9740
10003
  }, []);
9741
- useEffect43(() => {
10004
+ useEffect45(() => {
9742
10005
  if (paused)
9743
10006
  return;
9744
10007
  const rotate = setInterval(() => setIndex((current) => (current + 1) % notifications.length), TIP_ROTATE_MS);
@@ -9767,21 +10030,21 @@ function LauncherNotification({
9767
10030
  ...dock.edge === "left" ? { left: 0 } : { right: 0 },
9768
10031
  bottom: "calc(100% + 8px)"
9769
10032
  };
9770
- return /* @__PURE__ */ jsx40("div", {
10033
+ return /* @__PURE__ */ jsx42("div", {
9771
10034
  style: wrapperStyle,
9772
10035
  "data-skippr-no-drag": "",
9773
- children: /* @__PURE__ */ jsxs33("div", {
10036
+ children: /* @__PURE__ */ jsxs35("div", {
9774
10037
  ref: cardRef,
9775
10038
  className: "skippr:flex skippr:w-[148px] skippr:items-center skippr:gap-[4px] skippr:rounded-[14px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:pr-[6px] skippr:pl-[9px] skippr:py-[3px] skippr:shadow-[0_10px_28px_rgba(45,45,63,0.16)] skippr:[animation:skippr-tip-in_360ms_cubic-bezier(0.34,1.3,0.64,1)]",
9776
10039
  children: [
9777
- /* @__PURE__ */ jsx40("span", {
10040
+ /* @__PURE__ */ jsx42("span", {
9778
10041
  className: "skippr:flex skippr:min-h-[16px] skippr:min-w-0 skippr:flex-1 skippr:items-center skippr:text-[9px] skippr:font-medium skippr:leading-[1.25] skippr:text-[#5a5650]",
9779
- children: /* @__PURE__ */ jsx40("span", {
10042
+ children: /* @__PURE__ */ jsx42("span", {
9780
10043
  className: "skippr:line-clamp-2",
9781
10044
  children: notification.message
9782
10045
  })
9783
10046
  }),
9784
- /* @__PURE__ */ jsx40("button", {
10047
+ /* @__PURE__ */ jsx42("button", {
9785
10048
  type: "button",
9786
10049
  onClick: () => {
9787
10050
  notification.activate();
@@ -9790,18 +10053,18 @@ function LauncherNotification({
9790
10053
  "aria-label": "Start",
9791
10054
  title: "Start",
9792
10055
  className: "skippr:flex skippr:size-[17px] skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-[#2D2D3F] skippr:text-white skippr:transition-colors skippr:hover:bg-[#3d3d52]",
9793
- children: /* @__PURE__ */ jsx40(Play, {
10056
+ children: /* @__PURE__ */ jsx42(Play, {
9794
10057
  className: "skippr:size-[8px] skippr:fill-current",
9795
10058
  strokeWidth: 2
9796
10059
  })
9797
10060
  }),
9798
- hasMultiple && /* @__PURE__ */ jsx40("button", {
10061
+ hasMultiple && /* @__PURE__ */ jsx42("button", {
9799
10062
  type: "button",
9800
10063
  onClick: () => setIndex((current) => (current + 1) % notifications.length),
9801
10064
  "aria-label": "Next",
9802
10065
  title: "Next",
9803
10066
  className: "skippr:-ml-[2px] skippr:flex skippr:size-[16px] skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:text-[#8b877f] skippr:transition-colors skippr:hover:bg-[#f2f0eb] skippr:hover:text-[#5a5650]",
9804
- children: /* @__PURE__ */ jsx40(ChevronRight, {
10067
+ children: /* @__PURE__ */ jsx42(ChevronRight, {
9805
10068
  className: "skippr:size-[12px]",
9806
10069
  strokeWidth: 2.5
9807
10070
  })
@@ -9812,14 +10075,14 @@ function LauncherNotification({
9812
10075
  }
9813
10076
 
9814
10077
  // src/components/VoiceBarLauncher.tsx
9815
- import { jsx as jsx41, jsxs as jsxs34, Fragment as Fragment6 } from "react/jsx-runtime";
10078
+ import { jsx as jsx43, jsxs as jsxs36, Fragment as Fragment6 } from "react/jsx-runtime";
9816
10079
  function SkipprMark2() {
9817
- return /* @__PURE__ */ jsx41("svg", {
10080
+ return /* @__PURE__ */ jsx43("svg", {
9818
10081
  viewBox: "0 0 15.4044 18.4853",
9819
10082
  className: "skippr:h-[18px] skippr:w-[15px]",
9820
10083
  fill: "none",
9821
10084
  "aria-hidden": "true",
9822
- children: /* @__PURE__ */ jsx41("path", {
10085
+ children: /* @__PURE__ */ jsx43("path", {
9823
10086
  d: "M2.25789 0.295419C1.33925 -0.413932 0 0.234459 0 1.38715V17.0972C0 18.4106 1.67407 18.987 2.49664 17.9562L6.40435 13.061C6.54853 12.8805 6.73209 12.7348 6.94126 12.6347C7.15043 12.5345 7.37978 12.4826 7.6121 12.4828H14.0025C15.3343 12.4828 15.9134 10.8128 14.8614 10.0037L2.25789 0.295419Z",
9824
10087
  className: "skippr:fill-white"
9825
10088
  })
@@ -9898,7 +10161,7 @@ function LauncherChat({
9898
10161
  onClick
9899
10162
  }) {
9900
10163
  const vertical = isHorizontalEdge(edge);
9901
- return /* @__PURE__ */ jsxs34("div", {
10164
+ return /* @__PURE__ */ jsxs36("div", {
9902
10165
  className: cn("skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center skippr:gap-[5px] skippr:overflow-hidden skippr:transition-all skippr:duration-[400ms] skippr:ease-[cubic-bezier(0.22,1,0.36,1)]", AVATAR_FLEX[edge]),
9903
10166
  style: {
9904
10167
  width: vertical ? 46 : revealed ? 52 : 0,
@@ -9906,18 +10169,18 @@ function LauncherChat({
9906
10169
  opacity: revealed ? 1 : 0
9907
10170
  },
9908
10171
  children: [
9909
- /* @__PURE__ */ jsx41("button", {
10172
+ /* @__PURE__ */ jsx43("button", {
9910
10173
  type: "button",
9911
10174
  onClick,
9912
10175
  "aria-label": "Open chat",
9913
10176
  tabIndex: revealed ? 0 : -1,
9914
10177
  className: "skippr:flex skippr:size-[46px] skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-transparent skippr:p-0 skippr:text-foreground skippr:transition-colors skippr:hover:bg-foreground/8",
9915
- children: /* @__PURE__ */ jsx41(MessageSquare, {
10178
+ children: /* @__PURE__ */ jsx43(MessageSquare, {
9916
10179
  className: "skippr:size-[18px] skippr:shrink-0",
9917
10180
  strokeWidth: 2
9918
10181
  })
9919
10182
  }),
9920
- /* @__PURE__ */ jsx41("span", {
10183
+ /* @__PURE__ */ jsx43("span", {
9921
10184
  className: cn("skippr:shrink-0 skippr:bg-foreground/10", vertical ? "skippr:h-px skippr:w-[22px]" : "skippr:h-[22px] skippr:w-px")
9922
10185
  })
9923
10186
  ]
@@ -9933,14 +10196,14 @@ function VoiceBarLauncher({
9933
10196
  onDrop,
9934
10197
  setDragging
9935
10198
  }) {
9936
- const containerRef = useRef38(null);
10199
+ const containerRef = useRef40(null);
9937
10200
  const { wasDraggedRef } = useVoiceBarDrag(containerRef, onDrop, null, setDragging);
9938
10201
  const horizontal = isHorizontalEdge(dock.edge);
9939
- const [cardOpen, setCardOpen] = useState33(false);
9940
- const [hovered, setHovered] = useState33(false);
10202
+ const [cardOpen, setCardOpen] = useState35(false);
10203
+ const [hovered, setHovered] = useState35(false);
9941
10204
  const hasNotif = notifications.length > 0;
9942
10205
  const dotColor = notifications.find((item) => item.kind === NOTIFICATION_KIND.Module)?.accentColor ?? notifications[0]?.accentColor ?? NOTIF_ACCENT_COLOR;
9943
- useEffect44(() => {
10206
+ useEffect46(() => {
9944
10207
  const el = containerRef.current;
9945
10208
  if (!el)
9946
10209
  return;
@@ -9970,53 +10233,53 @@ function VoiceBarLauncher({
9970
10233
  return;
9971
10234
  setCardOpen((open2) => !open2);
9972
10235
  };
9973
- const closeCard = useCallback25(() => setCardOpen(false), []);
10236
+ const closeCard = useCallback28(() => setCardOpen(false), []);
9974
10237
  if (mode === "strip") {
9975
10238
  const expanded = hovered && !!onChat;
9976
10239
  const length = expanded ? 84 : 40;
9977
10240
  const thickness = expanded ? 36 : 10;
9978
- return /* @__PURE__ */ jsxs34("div", {
10241
+ return /* @__PURE__ */ jsxs36("div", {
9979
10242
  ref: containerRef,
9980
10243
  style: dockStyleFlush(dock),
9981
10244
  className: "skippr:fixed skippr:z-[9999] skippr:touch-none skippr:cursor-grab",
9982
10245
  children: [
9983
- /* @__PURE__ */ jsx41("div", {
10246
+ /* @__PURE__ */ jsx43("div", {
9984
10247
  style: horizontal ? { width: length, height: thickness } : { width: thickness, height: length },
9985
10248
  className: cn("skippr:relative skippr:flex skippr:items-center skippr:justify-center skippr:gap-[6px] skippr:border-2 skippr:transition-[width,height,background-color,border-color] skippr:duration-200 skippr:ease-out", !horizontal && "skippr:flex-col", expanded ? "skippr:border-brand skippr:bg-white" : "skippr:border-transparent skippr:bg-brand", expanded ? STRIP_ROUNDING_EXPANDED[dock.edge] : STRIP_ROUNDING[dock.edge], expanded ? AVATAR_SHADOW[dock.edge] : STRIP_SHADOW[dock.edge]),
9986
- children: expanded ? /* @__PURE__ */ jsxs34(Fragment6, {
10249
+ children: expanded ? /* @__PURE__ */ jsxs36(Fragment6, {
9987
10250
  children: [
9988
- /* @__PURE__ */ jsx41("button", {
10251
+ /* @__PURE__ */ jsx43("button", {
9989
10252
  type: "button",
9990
10253
  onClick: open,
9991
10254
  "aria-label": "Open Agent",
9992
10255
  className: STRIP_ICON_BUTTON,
9993
- children: /* @__PURE__ */ jsx41(Play, {
10256
+ children: /* @__PURE__ */ jsx43(Play, {
9994
10257
  className: "skippr:size-[13px] skippr:fill-current",
9995
10258
  strokeWidth: 2
9996
10259
  })
9997
10260
  }),
9998
- /* @__PURE__ */ jsx41("span", {
10261
+ /* @__PURE__ */ jsx43("span", {
9999
10262
  className: cn("skippr:shrink-0 skippr:bg-foreground/10", horizontal ? "skippr:h-[16px] skippr:w-px" : "skippr:h-px skippr:w-[16px]")
10000
10263
  }),
10001
- /* @__PURE__ */ jsx41("button", {
10264
+ /* @__PURE__ */ jsx43("button", {
10002
10265
  type: "button",
10003
10266
  onClick: openChat,
10004
10267
  "aria-label": "Open chat",
10005
10268
  className: STRIP_ICON_BUTTON,
10006
- children: /* @__PURE__ */ jsx41(MessageSquare, {
10269
+ children: /* @__PURE__ */ jsx43(MessageSquare, {
10007
10270
  className: "skippr:size-[14px]",
10008
10271
  strokeWidth: 2
10009
10272
  })
10010
10273
  })
10011
10274
  ]
10012
- }) : /* @__PURE__ */ jsx41("button", {
10275
+ }) : /* @__PURE__ */ jsx43("button", {
10013
10276
  type: "button",
10014
10277
  onClick: open,
10015
10278
  "aria-label": "Open Agent",
10016
10279
  className: "skippr:absolute skippr:inset-0 skippr:cursor-grab skippr:bg-transparent skippr:p-0"
10017
10280
  })
10018
10281
  }),
10019
- hasNotif && (expanded ? /* @__PURE__ */ jsx41("button", {
10282
+ hasNotif && (expanded ? /* @__PURE__ */ jsx43("button", {
10020
10283
  type: "button",
10021
10284
  onClick: toggleCard,
10022
10285
  "aria-label": "Show notifications",
@@ -10025,7 +10288,7 @@ function VoiceBarLauncher({
10025
10288
  "--skippr-pulse-color": dotColor
10026
10289
  },
10027
10290
  className: cn("skippr:absolute skippr:z-[2] skippr:size-[13px] skippr:cursor-pointer skippr:rounded-full skippr:border-[2.5px] skippr:border-white skippr:animate-skippr-voice-pulse skippr:motion-reduce:animate-none", STRIP_DOT_POS[dock.edge])
10028
- }) : /* @__PURE__ */ jsx41("button", {
10291
+ }) : /* @__PURE__ */ jsx43("button", {
10029
10292
  type: "button",
10030
10293
  onClick: toggleCard,
10031
10294
  "aria-label": "Show notifications",
@@ -10035,7 +10298,7 @@ function VoiceBarLauncher({
10035
10298
  },
10036
10299
  className: cn("skippr:absolute skippr:z-[1] skippr:cursor-pointer skippr:animate-skippr-voice-pulse skippr:motion-reduce:animate-none", STRIP_NOTIF_CAP[dock.edge], STRIP_CAP_ROUNDING[dock.edge])
10037
10300
  })),
10038
- hasNotif && cardOpen && /* @__PURE__ */ jsx41(LauncherNotification, {
10301
+ hasNotif && cardOpen && /* @__PURE__ */ jsx43(LauncherNotification, {
10039
10302
  notifications,
10040
10303
  dock,
10041
10304
  mode,
@@ -10044,37 +10307,37 @@ function VoiceBarLauncher({
10044
10307
  ]
10045
10308
  });
10046
10309
  }
10047
- return /* @__PURE__ */ jsxs34("div", {
10310
+ return /* @__PURE__ */ jsxs36("div", {
10048
10311
  ref: containerRef,
10049
10312
  style: dockStyleFlush(dock),
10050
10313
  className: "skippr:fixed skippr:z-[9999] skippr:touch-none skippr:cursor-grab",
10051
10314
  children: [
10052
- /* @__PURE__ */ jsxs34("div", {
10315
+ /* @__PURE__ */ jsxs36("div", {
10053
10316
  style: { gap: onChat && hovered ? 2 : 0 },
10054
10317
  className: cn("skippr:flex skippr:items-center skippr:border-2 skippr:border-brand skippr:bg-white skippr:p-[3px] skippr:transition-[gap] skippr:duration-[400ms] skippr:ease-[cubic-bezier(0.22,1,0.36,1)]", "skippr:[animation:skippr-pop_0.2s_ease]", AVATAR_FLEX[dock.edge], VIEWPORT_ROUNDING[dock.edge], AVATAR_SHADOW[dock.edge]),
10055
10318
  children: [
10056
- onChat && /* @__PURE__ */ jsx41(LauncherChat, {
10319
+ onChat && /* @__PURE__ */ jsx43(LauncherChat, {
10057
10320
  revealed: hovered,
10058
10321
  edge: dock.edge,
10059
10322
  onClick: openChat
10060
10323
  }),
10061
- /* @__PURE__ */ jsx41("button", {
10324
+ /* @__PURE__ */ jsx43("button", {
10062
10325
  type: "button",
10063
10326
  onClick: open,
10064
10327
  "aria-label": "Open Agent",
10065
10328
  className: "skippr:block skippr:shrink-0 skippr:cursor-grab skippr:rounded-full skippr:bg-transparent skippr:p-0 skippr:transition-transform skippr:duration-200 skippr:hover:scale-105",
10066
- children: logoUrl ? /* @__PURE__ */ jsx41("img", {
10329
+ children: logoUrl ? /* @__PURE__ */ jsx43("img", {
10067
10330
  src: logoUrl,
10068
10331
  alt: "",
10069
10332
  className: "skippr:block skippr:size-[46px] skippr:rounded-full skippr:object-cover"
10070
- }) : /* @__PURE__ */ jsx41("span", {
10333
+ }) : /* @__PURE__ */ jsx43("span", {
10071
10334
  className: "skippr:flex skippr:size-[46px] skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-launcher",
10072
- children: /* @__PURE__ */ jsx41(SkipprMark2, {})
10335
+ children: /* @__PURE__ */ jsx43(SkipprMark2, {})
10073
10336
  })
10074
10337
  })
10075
10338
  ]
10076
10339
  }),
10077
- hasNotif && /* @__PURE__ */ jsx41("button", {
10340
+ hasNotif && /* @__PURE__ */ jsx43("button", {
10078
10341
  type: "button",
10079
10342
  onClick: toggleCard,
10080
10343
  "aria-label": "Show notifications",
@@ -10085,7 +10348,7 @@ function VoiceBarLauncher({
10085
10348
  },
10086
10349
  className: cn("skippr:absolute skippr:z-[2] skippr:size-[13px] skippr:cursor-pointer skippr:rounded-full skippr:border-[2.5px] skippr:border-white skippr:transition-[left] skippr:duration-300 skippr:ease-[cubic-bezier(0.34,1.3,0.64,1)] skippr:animate-skippr-voice-pulse skippr:motion-reduce:animate-none", dock.edge === "top" ? "skippr:-bottom-[2px]" : "skippr:-top-[2px]")
10087
10350
  }),
10088
- hasNotif && cardOpen && /* @__PURE__ */ jsx41(LauncherNotification, {
10351
+ hasNotif && cardOpen && /* @__PURE__ */ jsx43(LauncherNotification, {
10089
10352
  notifications,
10090
10353
  dock,
10091
10354
  mode,
@@ -10096,7 +10359,7 @@ function VoiceBarLauncher({
10096
10359
  }
10097
10360
 
10098
10361
  // src/components/VoiceBar.tsx
10099
- import { jsx as jsx42 } from "react/jsx-runtime";
10362
+ import { jsx as jsx44 } from "react/jsx-runtime";
10100
10363
  function VoiceBar({ revealed }) {
10101
10364
  const ctx = useContext22(LiveAgentContext);
10102
10365
  if (!ctx) {
@@ -10118,8 +10381,8 @@ function VoiceBar({ revealed }) {
10118
10381
  barDock,
10119
10382
  setBarDock
10120
10383
  } = ctx;
10121
- const [launcherDock, setLauncherDock] = useState34(() => readSavedDock("launcher"));
10122
- const onLauncherDrop = useCallback26((next) => {
10384
+ const [launcherDock, setLauncherDock] = useState36(() => readSavedDock("launcher"));
10385
+ const onLauncherDrop = useCallback29((next) => {
10123
10386
  setLauncherDock(next);
10124
10387
  persistDock("launcher", next);
10125
10388
  }, []);
@@ -10141,7 +10404,7 @@ function VoiceBar({ revealed }) {
10141
10404
  return null;
10142
10405
  }
10143
10406
  if (launcherMode !== LAUNCHER_MODE.None && !sessionLive && isMinimized) {
10144
- return /* @__PURE__ */ jsx42(VoiceBarLauncher, {
10407
+ return /* @__PURE__ */ jsx44(VoiceBarLauncher, {
10145
10408
  dock: effectiveLauncherDock,
10146
10409
  mode: launcherMode,
10147
10410
  logoUrl: appearance?.logoUrl ?? null,
@@ -10152,7 +10415,7 @@ function VoiceBar({ revealed }) {
10152
10415
  setDragging: setIsDragging
10153
10416
  });
10154
10417
  }
10155
- return /* @__PURE__ */ jsx42(VoiceBarFrame, {
10418
+ return /* @__PURE__ */ jsx44(VoiceBarFrame, {
10156
10419
  dock: effectiveBarDock,
10157
10420
  canFold,
10158
10421
  notifications,
@@ -10162,7 +10425,7 @@ function VoiceBar({ revealed }) {
10162
10425
  }
10163
10426
 
10164
10427
  // src/components/LiveAgent.tsx
10165
- import { jsx as jsx43, jsxs as jsxs35, Fragment as Fragment7 } from "react/jsx-runtime";
10428
+ import { jsx as jsx45, jsxs as jsxs37, Fragment as Fragment7 } from "react/jsx-runtime";
10166
10429
  function readSavedPosition() {
10167
10430
  try {
10168
10431
  const saved = localStorage.getItem("skippr_widget_position");
@@ -10180,7 +10443,7 @@ function readSavedLauncherBottom() {
10180
10443
  }
10181
10444
  }
10182
10445
  function AgentCursorMount({ animated }) {
10183
- return /* @__PURE__ */ jsx43(AgentCursor, {
10446
+ return /* @__PURE__ */ jsx45(AgentCursor, {
10184
10447
  target: useAgentCursor(),
10185
10448
  animated
10186
10449
  });
@@ -10188,8 +10451,8 @@ function AgentCursorMount({ animated }) {
10188
10451
  function PlanPanelOpener() {
10189
10452
  const plan = usePlanUpdates();
10190
10453
  const { expandPanel } = useLiveAgent();
10191
- const surfacedPlanIdRef = useRef39(null);
10192
- useEffect45(() => {
10454
+ const surfacedPlanIdRef = useRef41(null);
10455
+ useEffect47(() => {
10193
10456
  if (plan?.state !== "proposed" || surfacedPlanIdRef.current === plan.planId)
10194
10457
  return;
10195
10458
  surfacedPlanIdRef.current = plan.planId;
@@ -10204,6 +10467,7 @@ function LiveAgent(props) {
10204
10467
  appKey,
10205
10468
  getUserToken,
10206
10469
  userToken,
10470
+ userContext,
10207
10471
  verticalAlign: hostVerticalAlign,
10208
10472
  variant = "floating",
10209
10473
  minimizable = true,
@@ -10228,19 +10492,19 @@ function LiveAgent(props) {
10228
10492
  const auth = useAuth({ appKey });
10229
10493
  const usesHostAuth = !!getUserToken || !!userToken || !!authTokenProp;
10230
10494
  const effectiveAuthToken = usesHostAuth ? authTokenProp : auth.authToken ?? undefined;
10231
- const [activeModule, setActiveModule] = useState35(null);
10232
- const [sessionAgentMode, setSessionAgentMode] = useState35(null);
10233
- const minimizeOnSessionStart = useCallback27(() => {
10495
+ const [activeModule, setActiveModule] = useState37(null);
10496
+ const [sessionAgentMode, setSessionAgentMode] = useState37(null);
10497
+ const minimizeOnSessionStart = useCallback30(() => {
10234
10498
  if (minimizable) {
10235
10499
  setIsMinimized(true);
10236
10500
  setIsPanelOpen(false);
10237
10501
  }
10238
10502
  }, [minimizable]);
10239
- const expandOnSessionStartError = useCallback27(() => {
10503
+ const expandOnSessionStartError = useCallback30(() => {
10240
10504
  setIsMinimized(false);
10241
10505
  setIsPanelOpen(true);
10242
10506
  }, []);
10243
- const minimizeOnSessionDisconnect = useCallback27(() => {
10507
+ const minimizeOnSessionDisconnect = useCallback30(() => {
10244
10508
  setActiveModule(null);
10245
10509
  setSessionAgentMode(null);
10246
10510
  if (minimizable) {
@@ -10272,34 +10536,35 @@ function LiveAgent(props) {
10272
10536
  appKey,
10273
10537
  getUserToken,
10274
10538
  userToken,
10539
+ userContext,
10275
10540
  onStart: minimizeOnSessionStart,
10276
10541
  onStartError: expandOnSessionStartError,
10277
10542
  onDisconnect: minimizeOnSessionDisconnect
10278
10543
  });
10279
- const teardownInFlightRef = useRef39(false);
10544
+ const teardownInFlightRef = useRef41(false);
10280
10545
  teardownInFlightRef.current = isPaused || isPausing || isDisconnecting;
10281
- const handleRoomDisconnected = useCallback27(() => {
10546
+ const handleRoomDisconnected = useCallback30(() => {
10282
10547
  if (teardownInFlightRef.current)
10283
10548
  return;
10284
10549
  disconnect();
10285
10550
  }, [disconnect]);
10286
10551
  const isSessionLive = connection !== null || isStarting || isPausing || isDisconnecting;
10287
- const [isPanelOpen, setIsPanelOpen] = useState35(defaultOpen);
10288
- const [isMinimized, setIsMinimized] = useState35(minimizable && !defaultOpen);
10289
- const [sidebarTab, setSidebarTab] = useState35("agenda");
10290
- const [phasesSnapshot, setPhasesSnapshot] = useState35([]);
10291
- const [textMode, setTextMode] = useState35(false);
10292
- const [panelExpanded, setPanelExpanded] = useState35(false);
10293
- const togglePanelExpanded = useCallback27(() => setPanelExpanded((prev) => !prev), []);
10294
- const panelRef = useRef39(null);
10295
- const controlBarRef = useRef39(null);
10296
- const [isDragging, setIsDragging] = useState35(false);
10297
- const setTextModeState = useCallback27((enabled) => {
10552
+ const [isPanelOpen, setIsPanelOpen] = useState37(defaultOpen);
10553
+ const [isMinimized, setIsMinimized] = useState37(minimizable && !defaultOpen);
10554
+ const [sidebarTab, setSidebarTab] = useState37("agenda");
10555
+ const [phasesSnapshot, setPhasesSnapshot] = useState37([]);
10556
+ const [textMode, setTextMode] = useState37(false);
10557
+ const [panelExpanded, setPanelExpanded] = useState37(false);
10558
+ const togglePanelExpanded = useCallback30(() => setPanelExpanded((prev) => !prev), []);
10559
+ const panelRef = useRef41(null);
10560
+ const controlBarRef = useRef41(null);
10561
+ const [isDragging, setIsDragging] = useState37(false);
10562
+ const setTextModeState = useCallback30((enabled) => {
10298
10563
  setTextMode(enabled);
10299
10564
  }, []);
10300
10565
  const isConnected = connection !== null;
10301
10566
  const showControlBar = isConnected || isStarting || isPausing;
10302
- useEffect45(() => {
10567
+ useEffect47(() => {
10303
10568
  if (!isConnected)
10304
10569
  setTextModeState(false);
10305
10570
  }, [isConnected, setTextModeState]);
@@ -10330,7 +10595,7 @@ function LiveAgent(props) {
10330
10595
  const buddyActive = isBuddyActive(appearance) && variant !== "sidebar" && !hostAgentId;
10331
10596
  const buddyShape = appearance?.buddy?.shape ?? DEFAULT_BUDDY_SHAPE;
10332
10597
  const effectiveHostAgentId = buddyActive ? undefined : hostAgentId;
10333
- const startSession = useCallback27((opts) => startSessionRaw(buddyActive ? { ...opts, agentControls: buddyEffectiveControls(opts.agentControls) } : opts), [startSessionRaw, buddyActive]);
10598
+ const startSession = useCallback30((opts) => startSessionRaw(buddyActive ? { ...opts, agentControls: buddyEffectiveControls(opts.agentControls) } : opts), [startSessionRaw, buddyActive]);
10334
10599
  const defaultAgentId = buddyActive ? defaultSelection.agentId : hostAgentId ?? defaultSelection.agentId;
10335
10600
  const defaultModule = availableModules.find((m) => m.id === defaultAgentId) ?? null;
10336
10601
  const operatingModule = buddyActive ? defaultModule : activeModule ?? (effectiveHostAgentId ? availableModules[0] ?? null : null);
@@ -10341,7 +10606,7 @@ function LiveAgent(props) {
10341
10606
  const shouldAnimateCursor = operatingModule?.uiPreferences?.animateCursor ?? animateAgentCursor;
10342
10607
  const buddyDefaultMissing = buddyActive && hasResolvedModules && !modulesError && !defaultModule && !isSessionLive;
10343
10608
  const resumableSession = useMemo7(() => getResumableSession(operatingModule), [operatingModule]);
10344
- const resumeSession = useCallback27(async () => {
10609
+ const resumeSession = useCallback30(async () => {
10345
10610
  if (!resumableSession)
10346
10611
  return;
10347
10612
  if (operatingModule) {
@@ -10354,7 +10619,7 @@ function LiveAgent(props) {
10354
10619
  existingSessionId: resumableSession.id
10355
10620
  });
10356
10621
  }, [resumableSession, operatingModule, startSession, baseAgentControls]);
10357
- const selectModule = useCallback27((moduleId, opts) => {
10622
+ const selectModule = useCallback30((moduleId, opts) => {
10358
10623
  const found = availableModules.find((m) => m.id === moduleId);
10359
10624
  if (!found)
10360
10625
  return;
@@ -10367,7 +10632,7 @@ function LiveAgent(props) {
10367
10632
  autoStarted: opts?.autoStarted
10368
10633
  });
10369
10634
  }, [availableModules, startSession]);
10370
- const startAdoptionSession = useCallback27((goal) => {
10635
+ const startAdoptionSession = useCallback30((goal) => {
10371
10636
  attendGoal(goal.goalId);
10372
10637
  const found = availableModules.find((m) => m.id === goal.agentId);
10373
10638
  if (found)
@@ -10379,12 +10644,12 @@ function LiveAgent(props) {
10379
10644
  adoptionGoalId: goal.goalId
10380
10645
  });
10381
10646
  }, [attendGoal, availableModules, startSession]);
10382
- const [welcomeDismissed, setWelcomeDismissed] = useState35(false);
10383
- const dismissWelcome = useCallback27(() => setWelcomeDismissed(true), []);
10384
- const [savedPosition] = useState35(readSavedPosition);
10385
- const [currentPosition, setCurrentPosition] = useState35(savedPosition ?? "right");
10386
- const positionLockedRef = useRef39(savedPosition !== null);
10387
- const setPositionWithPersist = useCallback27((pos) => {
10647
+ const [welcomeDismissed, setWelcomeDismissed] = useState37(false);
10648
+ const dismissWelcome = useCallback30(() => setWelcomeDismissed(true), []);
10649
+ const [savedPosition] = useState37(readSavedPosition);
10650
+ const [currentPosition, setCurrentPosition] = useState37(savedPosition ?? "right");
10651
+ const positionLockedRef = useRef41(savedPosition !== null);
10652
+ const setPositionWithPersist = useCallback30((pos) => {
10388
10653
  positionLockedRef.current = true;
10389
10654
  setCurrentPosition(pos);
10390
10655
  try {
@@ -10392,18 +10657,18 @@ function LiveAgent(props) {
10392
10657
  } catch {}
10393
10658
  }, []);
10394
10659
  const serverPosition = appearance?.position ?? null;
10395
- useEffect45(() => {
10660
+ useEffect47(() => {
10396
10661
  if (!serverPosition || positionLockedRef.current)
10397
10662
  return;
10398
10663
  setCurrentPosition(serverPosition);
10399
10664
  }, [serverPosition]);
10400
- const [savedLauncherBottom] = useState35(readSavedLauncherBottom);
10401
- const hasDraggedRef = useRef39(savedLauncherBottom !== null);
10402
- const verticalAlignRef = useRef39(hostVerticalAlign ?? "bottom");
10403
- const [launcherBottomPx, setLauncherBottomPxState] = useState35(() => savedLauncherBottom !== null ? clampLauncherBottom(savedLauncherBottom) : verticalAlignToBottomPx(verticalAlignRef.current));
10404
- const [popsDown, setPopsDown] = useState35(() => launcherPopsDown(launcherBottomPx));
10665
+ const [savedLauncherBottom] = useState37(readSavedLauncherBottom);
10666
+ const hasDraggedRef = useRef41(savedLauncherBottom !== null);
10667
+ const verticalAlignRef = useRef41(hostVerticalAlign ?? "bottom");
10668
+ const [launcherBottomPx, setLauncherBottomPxState] = useState37(() => savedLauncherBottom !== null ? clampLauncherBottom(savedLauncherBottom) : verticalAlignToBottomPx(verticalAlignRef.current));
10669
+ const [popsDown, setPopsDown] = useState37(() => launcherPopsDown(launcherBottomPx));
10405
10670
  const serverVerticalAlign = appearance?.verticalAlign ?? null;
10406
- useEffect45(() => {
10671
+ useEffect47(() => {
10407
10672
  if (!serverVerticalAlign || hostVerticalAlign !== undefined || hasDraggedRef.current)
10408
10673
  return;
10409
10674
  verticalAlignRef.current = serverVerticalAlign;
@@ -10411,7 +10676,7 @@ function LiveAgent(props) {
10411
10676
  setLauncherBottomPxState(next);
10412
10677
  setPopsDown(launcherPopsDown(next));
10413
10678
  }, [serverVerticalAlign, hostVerticalAlign]);
10414
- const setLauncherBottomPx = useCallback27((px) => {
10679
+ const setLauncherBottomPx = useCallback30((px) => {
10415
10680
  hasDraggedRef.current = true;
10416
10681
  setLauncherBottomPxState(px);
10417
10682
  setPopsDown(launcherPopsDown(px));
@@ -10419,24 +10684,24 @@ function LiveAgent(props) {
10419
10684
  localStorage.setItem("skippr_widget_bottom", String(px));
10420
10685
  } catch {}
10421
10686
  }, []);
10422
- const launcherBottomPxRef = useRef39(launcherBottomPx);
10687
+ const launcherBottomPxRef = useRef41(launcherBottomPx);
10423
10688
  launcherBottomPxRef.current = launcherBottomPx;
10424
- const [chatActivityAt, setChatActivityAt] = useState35(0);
10425
- const reportChatActivity = useCallback27(() => {
10689
+ const [chatActivityAt, setChatActivityAt] = useState37(0);
10690
+ const reportChatActivity = useCallback30(() => {
10426
10691
  const now = Date.now();
10427
10692
  setChatActivityAt((last) => now - last < CHAT_ACTIVITY_THROTTLE_MS ? last : now);
10428
10693
  }, []);
10429
- const [chatDraft, setChatDraft] = useState35("");
10430
- const commitLauncherDrop = useCallback27(({ side, bottomPx }) => {
10694
+ const [chatDraft, setChatDraft] = useState37("");
10695
+ const commitLauncherDrop = useCallback30(({ side, bottomPx }) => {
10431
10696
  setPositionWithPersist(side);
10432
10697
  setLauncherBottomPx(bottomPx);
10433
10698
  }, [setPositionWithPersist, setLauncherBottomPx]);
10434
- const [barDock, setBarDockState] = useState35(() => readSavedDock("bar"));
10435
- const setBarDock = useCallback27((next) => {
10699
+ const [barDock, setBarDockState] = useState37(() => readSavedDock("bar"));
10700
+ const setBarDock = useCallback30((next) => {
10436
10701
  setBarDockState(next);
10437
10702
  persistDock("bar", next);
10438
10703
  }, []);
10439
- useEffect45(() => {
10704
+ useEffect47(() => {
10440
10705
  const syncToViewport = () => {
10441
10706
  const next = hasDraggedRef.current ? clampLauncherBottom(launcherBottomPxRef.current) : verticalAlignToBottomPx(verticalAlignRef.current);
10442
10707
  setLauncherBottomPxState(next);
@@ -10446,24 +10711,24 @@ function LiveAgent(props) {
10446
10711
  window.addEventListener("resize", syncToViewport);
10447
10712
  return () => window.removeEventListener("resize", syncToViewport);
10448
10713
  }, []);
10449
- const openPanel = useCallback27(() => setIsPanelOpen(true), []);
10450
- const closePanel = useCallback27(() => setIsPanelOpen(false), []);
10451
- const togglePanel = useCallback27(() => setIsPanelOpen((prev) => !prev), []);
10452
- const expandPanel = useCallback27(() => {
10714
+ const openPanel = useCallback30(() => setIsPanelOpen(true), []);
10715
+ const closePanel = useCallback30(() => setIsPanelOpen(false), []);
10716
+ const togglePanel = useCallback30(() => setIsPanelOpen((prev) => !prev), []);
10717
+ const expandPanel = useCallback30(() => {
10453
10718
  setIsMinimized(false);
10454
10719
  setIsPanelOpen(true);
10455
10720
  }, []);
10456
- const minimizePanel = useCallback27(() => {
10721
+ const minimizePanel = useCallback30(() => {
10457
10722
  if (!minimizable)
10458
10723
  return;
10459
10724
  setIsMinimized(true);
10460
10725
  setIsPanelOpen(false);
10461
10726
  }, [minimizable]);
10462
- const pauseSessionAndMinimize = useCallback27(async () => {
10727
+ const pauseSessionAndMinimize = useCallback30(async () => {
10463
10728
  await pauseSession();
10464
10729
  minimizePanel();
10465
10730
  }, [pauseSession, minimizePanel]);
10466
- const startDefaultSession = useCallback27(() => {
10731
+ const startDefaultSession = useCallback30(() => {
10467
10732
  const target = availableModules.find((m) => m.id === defaultAgentId);
10468
10733
  if (!target)
10469
10734
  return;
@@ -10652,66 +10917,66 @@ function LiveAgent(props) {
10652
10917
  buddyShape
10653
10918
  ]);
10654
10919
  if (noModulesAvailable || buddyDefaultMissing) {
10655
- return /* @__PURE__ */ jsx43(LiveAgentContext.Provider, {
10920
+ return /* @__PURE__ */ jsx45(LiveAgentContext.Provider, {
10656
10921
  value: ctx,
10657
10922
  children
10658
10923
  });
10659
10924
  }
10660
- return /* @__PURE__ */ jsx43(LiveAgentContext.Provider, {
10925
+ return /* @__PURE__ */ jsx45(LiveAgentContext.Provider, {
10661
10926
  value: ctx,
10662
- children: /* @__PURE__ */ jsxs35(LiveKitRoom, {
10927
+ children: /* @__PURE__ */ jsxs37(LiveKitRoom, {
10663
10928
  serverUrl: connection?.livekitUrl,
10664
10929
  token: connection?.token,
10665
10930
  connect: shouldConnect,
10666
10931
  audio: true,
10667
10932
  onDisconnected: handleRoomDisconnected,
10668
10933
  children: [
10669
- connection && !textMode && /* @__PURE__ */ jsx43(RoomAudioRenderer, {}),
10670
- /* @__PURE__ */ jsxs35(SessionHoldProvider, {
10934
+ connection && !textMode && /* @__PURE__ */ jsx45(RoomAudioRenderer, {}),
10935
+ /* @__PURE__ */ jsxs37(SessionHoldProvider, {
10671
10936
  children: [
10672
- connection && captureMode === CAPTURE_MODE.Screenshare && /* @__PURE__ */ jsx43(AutoStartMedia, {
10937
+ connection && captureMode === CAPTURE_MODE.Screenshare && /* @__PURE__ */ jsx45(AutoStartMedia, {
10673
10938
  pendingScreenStream,
10674
10939
  pushOrTapMicMode: isRequestResponseMicMode(agentControls?.micMode)
10675
10940
  }),
10676
- connection && captureMode === CAPTURE_MODE.Auto && /* @__PURE__ */ jsx43(DomCapture, {
10941
+ connection && captureMode === CAPTURE_MODE.Auto && /* @__PURE__ */ jsx45(DomCapture, {
10677
10942
  pushOrTapMicMode: isRequestResponseMicMode(agentControls?.micMode)
10678
10943
  }),
10679
- /* @__PURE__ */ jsxs35(ShadowHost, {
10944
+ /* @__PURE__ */ jsxs37(ShadowHost, {
10680
10945
  accentColor: appearance?.accentColor ?? null,
10681
10946
  children: [
10682
- connection && captureMode === CAPTURE_MODE.Auto && agentControls?.highlight && /* @__PURE__ */ jsx43(HighlightOverlay, {}),
10683
- connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx43(PageActionHandler, {}),
10684
- connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx43(PlanPanelOpener, {}),
10685
- connection && captureMode === CAPTURE_MODE.Auto && (agentControls?.highlight || agentControls?.actions) && /* @__PURE__ */ jsx43(AgentCursorMount, {
10947
+ connection && captureMode === CAPTURE_MODE.Auto && agentControls?.highlight && /* @__PURE__ */ jsx45(HighlightOverlay, {}),
10948
+ connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx45(PageActionHandler, {}),
10949
+ connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx45(PlanPanelOpener, {}),
10950
+ connection && captureMode === CAPTURE_MODE.Auto && (agentControls?.highlight || agentControls?.actions) && /* @__PURE__ */ jsx45(AgentCursorMount, {
10686
10951
  animated: shouldAnimateCursor
10687
10952
  }),
10688
- /* @__PURE__ */ jsx43(VoiceTurnProvider, {
10689
- children: /* @__PURE__ */ jsx43(TranscriptionsProvider, {
10690
- children: /* @__PURE__ */ jsx43("div", {
10953
+ /* @__PURE__ */ jsx45(VoiceTurnProvider, {
10954
+ children: /* @__PURE__ */ jsx45(TranscriptionsProvider, {
10955
+ children: /* @__PURE__ */ jsx45("div", {
10691
10956
  id: WIDGET_ROOT_ID,
10692
- children: variant === "sidebar" ? /* @__PURE__ */ jsxs35(Fragment7, {
10957
+ children: variant === "sidebar" ? /* @__PURE__ */ jsxs37(Fragment7, {
10693
10958
  children: [
10694
- isMinimized && !showControlBar && isLauncherRevealed && /* @__PURE__ */ jsx43(MinimizedBubble, {
10959
+ isMinimized && !showControlBar && isLauncherRevealed && /* @__PURE__ */ jsx45(MinimizedBubble, {
10695
10960
  welcomeMessage,
10696
10961
  welcomeDismissed,
10697
10962
  onDismissWelcome: dismissWelcome
10698
10963
  }),
10699
- showControlBar && !hideControls && /* @__PURE__ */ jsx43(SessionControlBar, {}),
10700
- /* @__PURE__ */ jsx43(SidebarTrigger, {}),
10701
- /* @__PURE__ */ jsx43(Sidebar, {
10964
+ showControlBar && !hideControls && /* @__PURE__ */ jsx45(SessionControlBar, {}),
10965
+ /* @__PURE__ */ jsx45(SidebarTrigger, {}),
10966
+ /* @__PURE__ */ jsx45(Sidebar, {
10702
10967
  hideControls,
10703
10968
  hideHeader,
10704
10969
  startSessionLabel
10705
10970
  })
10706
10971
  ]
10707
- }) : !isLauncherRevealed ? null : buddyActive ? /* @__PURE__ */ jsx43(BuddyVoiceBar, {
10972
+ }) : !isLauncherRevealed ? null : buddyActive ? /* @__PURE__ */ jsx45(BuddyVoiceBar, {
10708
10973
  revealed: isLauncherRevealed
10709
- }) : /* @__PURE__ */ jsxs35(Fragment7, {
10974
+ }) : /* @__PURE__ */ jsxs37(Fragment7, {
10710
10975
  children: [
10711
- /* @__PURE__ */ jsx43(VoiceBar, {
10976
+ /* @__PURE__ */ jsx45(VoiceBar, {
10712
10977
  revealed: isLauncherRevealed
10713
10978
  }),
10714
- (agentControls?.chat ?? DEFAULT_CHAT_SURFACE) === CHAT_SURFACE.Room && /* @__PURE__ */ jsx43(Sidebar, {
10979
+ (agentControls?.chat ?? DEFAULT_CHAT_SURFACE) === CHAT_SURFACE.Room && /* @__PURE__ */ jsx45(Sidebar, {
10715
10980
  hideControls,
10716
10981
  hideHeader,
10717
10982
  startSessionLabel