@skippr/live-agent-sdk 0.107.0 → 0.109.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 { Fragment as Fragment7, useCallback as useCallback33, useEffect as useEffect49, useMemo as useMemo8, useRef as useRef42, useState as useState39 } from "react";
11
+ import { Fragment as Fragment6, useCallback as useCallback32, useEffect as useEffect48, useMemo as useMemo8, useRef as useRef42, useState as useState38 } 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
 
@@ -521,6 +521,10 @@ var LAUNCHER_MODE = {
521
521
  Template: "template"
522
522
  };
523
523
  var DEFAULT_LAUNCHER_MODE = LAUNCHER_MODE.Avatar;
524
+ var SPLASH_LAYOUT = {
525
+ Primary: "primary",
526
+ AlwaysOn: "always_on"
527
+ };
524
528
  var SPLASH_COPY_DEFAULTS = {
525
529
  howItWorksHeading: "How it works",
526
530
  lastAccomplishmentHeading: "Last accomplishment",
@@ -532,7 +536,11 @@ var SPLASH_COPY_DEFAULTS = {
532
536
  screenSubtext: "Skippr sees your screen while the session runs",
533
537
  startCta: "Start with Skippr",
534
538
  continueCta: "Continue session",
535
- dismissLabel: "Skip for now"
539
+ dismissLabel: "Skip for now",
540
+ tipsHeading: "Tips",
541
+ tipsCta: "Need help with something else?",
542
+ tipsEmptyTitle: "Ask about this page",
543
+ tipsEmptyDescription: "Get instant answers about anything you see here"
536
544
  };
537
545
  var SPLASH_SECTION_GLYPH = {
538
546
  Route: "route",
@@ -3262,6 +3270,82 @@ import { useLocalParticipant as useLocalParticipant3 } from "@livekit/components
3262
3270
  import { Track } from "livekit-client";
3263
3271
  import { useCallback as useCallback10, useEffect as useEffect11, useRef as useRef11, useState as useState9 } from "react";
3264
3272
 
3273
+ // src/capture/agentActionSignal.ts
3274
+ var isDispatchingAgentAction = false;
3275
+ function runAgentAction(dispatch) {
3276
+ isDispatchingAgentAction = true;
3277
+ try {
3278
+ dispatch();
3279
+ } finally {
3280
+ isDispatchingAgentAction = false;
3281
+ }
3282
+ }
3283
+ function isAgentActionInProgress() {
3284
+ return isDispatchingAgentAction;
3285
+ }
3286
+ var snapshotRequestHandler = null;
3287
+ function onSnapshotRequest(handler) {
3288
+ snapshotRequestHandler = handler;
3289
+ return () => {
3290
+ if (snapshotRequestHandler === handler)
3291
+ snapshotRequestHandler = null;
3292
+ };
3293
+ }
3294
+ function requestSnapshotAfterAction() {
3295
+ snapshotRequestHandler?.();
3296
+ }
3297
+ var stopSubscribers = new Set;
3298
+ function stopActions() {
3299
+ for (const subscriber of stopSubscribers)
3300
+ subscriber();
3301
+ }
3302
+ function onActionsStopped(subscriber) {
3303
+ stopSubscribers.add(subscriber);
3304
+ return () => {
3305
+ stopSubscribers.delete(subscriber);
3306
+ };
3307
+ }
3308
+ var actionsBusy = false;
3309
+ var busySubscribers = new Set;
3310
+ function setActionsBusy(busy) {
3311
+ if (actionsBusy === busy)
3312
+ return;
3313
+ actionsBusy = busy;
3314
+ for (const subscriber of busySubscribers)
3315
+ subscriber(busy);
3316
+ }
3317
+ function isActionsBusy() {
3318
+ return actionsBusy;
3319
+ }
3320
+ function subscribeActionsBusy(subscriber) {
3321
+ busySubscribers.add(subscriber);
3322
+ return () => {
3323
+ busySubscribers.delete(subscriber);
3324
+ };
3325
+ }
3326
+
3327
+ // src/capture/highlightSignal.ts
3328
+ var highlightActive = false;
3329
+ var activeSubscribers = new Set;
3330
+ function setHighlightActive(active) {
3331
+ if (highlightActive === active)
3332
+ return;
3333
+ highlightActive = active;
3334
+ for (const subscriber of activeSubscribers)
3335
+ subscriber(active);
3336
+ }
3337
+ var clearSubscribers = new Set;
3338
+ function clearHighlight() {
3339
+ for (const subscriber of clearSubscribers)
3340
+ subscriber();
3341
+ }
3342
+ function onHighlightCleared(subscriber) {
3343
+ clearSubscribers.add(subscriber);
3344
+ return () => {
3345
+ clearSubscribers.delete(subscriber);
3346
+ };
3347
+ }
3348
+
3265
3349
  // src/capture/pausedScreenTrack.ts
3266
3350
  var FALLBACK_WIDTH = 1280;
3267
3351
  var FALLBACK_HEIGHT = 720;
@@ -3365,7 +3449,7 @@ function useMediaControls() {
3365
3449
 
3366
3450
  // src/hooks/useSessionHold.ts
3367
3451
  var textEncoder2 = new TextEncoder;
3368
- var FALLBACK_PAUSE_TIMEOUT_SECONDS = 120;
3452
+ var FALLBACK_PAUSE_TIMEOUT_SECONDS = 180;
3369
3453
  function useSessionHold({
3370
3454
  pauseSession,
3371
3455
  pauseTimeoutSeconds,
@@ -3411,10 +3495,12 @@ function useSessionHold({
3411
3495
  }, [localParticipant]);
3412
3496
  const hold = useCallback10(async () => {
3413
3497
  try {
3498
+ stopActions();
3499
+ clearHighlight();
3500
+ await publish("pause");
3414
3501
  await localParticipant.setMicrophoneEnabled(false);
3415
3502
  micTrack()?.mediaStreamTrack?.stop();
3416
3503
  await pauseScreenShareForHold();
3417
- await publish("pause");
3418
3504
  setIsHeld(true);
3419
3505
  } catch (error) {
3420
3506
  console.error("Failed to hold session:", error);
@@ -3593,6 +3679,7 @@ function useAdoptionGoals({
3593
3679
  authedFetch
3594
3680
  }) {
3595
3681
  const [candidates, setCandidates] = useState10([]);
3682
+ const [hasResolved, setHasResolved] = useState10(false);
3596
3683
  const [hash, setHash] = useState10(window.location.hash);
3597
3684
  const match = useCallback11(async () => {
3598
3685
  try {
@@ -3610,11 +3697,14 @@ function useAdoptionGoals({
3610
3697
  } catch (e) {
3611
3698
  console.warn("[Skippr] adoption match failed", e);
3612
3699
  setCandidates([]);
3700
+ } finally {
3701
+ setHasResolved(true);
3613
3702
  }
3614
3703
  }, [authedFetch]);
3615
3704
  useEffect12(() => {
3616
3705
  if (!enabled || !bearerToken) {
3617
3706
  setCandidates([]);
3707
+ setHasResolved(false);
3618
3708
  return;
3619
3709
  }
3620
3710
  match();
@@ -3654,7 +3744,7 @@ function useAdoptionGoals({
3654
3744
  const attendGoal = useCallback11((goalId) => {
3655
3745
  postStatus(goalId, "attended" /* Attended */);
3656
3746
  }, [postStatus]);
3657
- return { goals, attendGoal };
3747
+ return { goals, hasResolved, attendGoal };
3658
3748
  }
3659
3749
 
3660
3750
  // src/hooks/useAuth.ts
@@ -5876,60 +5966,6 @@ function buildAccessibilityTree() {
5876
5966
  };
5877
5967
  }
5878
5968
 
5879
- // src/capture/agentActionSignal.ts
5880
- var isDispatchingAgentAction = false;
5881
- function runAgentAction(dispatch) {
5882
- isDispatchingAgentAction = true;
5883
- try {
5884
- dispatch();
5885
- } finally {
5886
- isDispatchingAgentAction = false;
5887
- }
5888
- }
5889
- function isAgentActionInProgress() {
5890
- return isDispatchingAgentAction;
5891
- }
5892
- var snapshotRequestHandler = null;
5893
- function onSnapshotRequest(handler) {
5894
- snapshotRequestHandler = handler;
5895
- return () => {
5896
- if (snapshotRequestHandler === handler)
5897
- snapshotRequestHandler = null;
5898
- };
5899
- }
5900
- function requestSnapshotAfterAction() {
5901
- snapshotRequestHandler?.();
5902
- }
5903
- var stopSubscribers = new Set;
5904
- function stopActions() {
5905
- for (const subscriber of stopSubscribers)
5906
- subscriber();
5907
- }
5908
- function onActionsStopped(subscriber) {
5909
- stopSubscribers.add(subscriber);
5910
- return () => {
5911
- stopSubscribers.delete(subscriber);
5912
- };
5913
- }
5914
- var actionsBusy = false;
5915
- var busySubscribers = new Set;
5916
- function setActionsBusy(busy) {
5917
- if (actionsBusy === busy)
5918
- return;
5919
- actionsBusy = busy;
5920
- for (const subscriber of busySubscribers)
5921
- subscriber(busy);
5922
- }
5923
- function isActionsBusy() {
5924
- return actionsBusy;
5925
- }
5926
- function subscribeActionsBusy(subscriber) {
5927
- busySubscribers.add(subscriber);
5928
- return () => {
5929
- busySubscribers.delete(subscriber);
5930
- };
5931
- }
5932
-
5933
5969
  // src/capture/domEvents.ts
5934
5970
  var MUTATION_DEBOUNCE_MS = 250;
5935
5971
  var textEncoder3 = new TextEncoder;
@@ -6107,23 +6143,51 @@ var DARK_FOREGROUND = "#2d2b3d";
6107
6143
  var LIGHT_FOREGROUND = "#ffffff";
6108
6144
  var LUMINANCE_THRESHOLD = 0.179;
6109
6145
  var HEX_COLOR = /^#([0-9a-f]{3}|[0-9a-f]{6})$/i;
6146
+ var MIN_CONTRAST_ON_WHITE = 4.5;
6147
+ var DARKENING_STEPS = 12;
6110
6148
  function isHexColor(value) {
6111
6149
  return HEX_COLOR.test(value);
6112
6150
  }
6113
- function linearChannel(hex, offset) {
6114
- const channel = Number.parseInt(hex.slice(offset, offset + 2), 16) / 255;
6115
- return channel <= 0.03928 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4;
6116
- }
6117
- function luminance(accentColor) {
6151
+ function toChannels(accentColor) {
6118
6152
  const hex = accentColor.replace("#", "");
6119
6153
  const fullHex = hex.length === 3 ? hex.split("").map((char) => char + char).join("") : hex;
6120
- return 0.2126 * linearChannel(fullHex, 0) + 0.7152 * linearChannel(fullHex, 2) + 0.0722 * linearChannel(fullHex, 4);
6154
+ return [0, 2, 4].map((offset) => Number.parseInt(fullHex.slice(offset, offset + 2), 16));
6155
+ }
6156
+ function toHex(channels) {
6157
+ return `#${channels.map((channel) => Math.round(channel).toString(16).padStart(2, "0")).join("")}`;
6158
+ }
6159
+ function linearChannel(channel) {
6160
+ const scaled = channel / 255;
6161
+ return scaled <= 0.03928 ? scaled / 12.92 : ((scaled + 0.055) / 1.055) ** 2.4;
6162
+ }
6163
+ function luminance(accentColor) {
6164
+ const [r, g, b] = toChannels(accentColor);
6165
+ return 0.2126 * linearChannel(r) + 0.7152 * linearChannel(g) + 0.0722 * linearChannel(b);
6166
+ }
6167
+ function contrastOnWhite(accentColor) {
6168
+ return 1.05 / (luminance(accentColor) + 0.05);
6169
+ }
6170
+ function darken(accentColor, factor) {
6171
+ const [r, g, b] = toChannels(accentColor);
6172
+ return toHex([r * factor, g * factor, b * factor]);
6121
6173
  }
6122
6174
  function brandForeground(accentColor) {
6123
6175
  return luminance(accentColor) > LUMINANCE_THRESHOLD ? DARK_FOREGROUND : LIGHT_FOREGROUND;
6124
6176
  }
6125
6177
  function brandOnWhite(accentColor) {
6126
- return luminance(accentColor) > LUMINANCE_THRESHOLD ? DARK_FOREGROUND : accentColor;
6178
+ if (contrastOnWhite(accentColor) >= MIN_CONTRAST_ON_WHITE)
6179
+ return toHex(toChannels(accentColor));
6180
+ let tooDark = 0;
6181
+ let tooLight = 1;
6182
+ for (let step = 0;step < DARKENING_STEPS; step++) {
6183
+ const factor = (tooDark + tooLight) / 2;
6184
+ if (contrastOnWhite(darken(accentColor, factor)) >= MIN_CONTRAST_ON_WHITE) {
6185
+ tooDark = factor;
6186
+ } else {
6187
+ tooLight = factor;
6188
+ }
6189
+ }
6190
+ return darken(accentColor, tooDark);
6127
6191
  }
6128
6192
 
6129
6193
  // src/capture/paintCursorOverlay.ts
@@ -6677,39 +6741,6 @@ function DomCapture({ pushOrTapMicMode = false, startMuted = false }) {
6677
6741
  // src/components/HighlightOverlay.tsx
6678
6742
  import { useDataChannel } from "@livekit/components-react/hooks";
6679
6743
  import { useCallback as useCallback16, useEffect as useEffect23, useRef as useRef18 } from "react";
6680
-
6681
- // src/capture/highlightSignal.ts
6682
- var highlightActive = false;
6683
- var activeSubscribers = new Set;
6684
- function setHighlightActive(active) {
6685
- if (highlightActive === active)
6686
- return;
6687
- highlightActive = active;
6688
- for (const subscriber of activeSubscribers)
6689
- subscriber(active);
6690
- }
6691
- function isHighlightActive() {
6692
- return highlightActive;
6693
- }
6694
- function subscribeHighlightActive(subscriber) {
6695
- activeSubscribers.add(subscriber);
6696
- return () => {
6697
- activeSubscribers.delete(subscriber);
6698
- };
6699
- }
6700
- var clearSubscribers = new Set;
6701
- function clearHighlight() {
6702
- for (const subscriber of clearSubscribers)
6703
- subscriber();
6704
- }
6705
- function onHighlightCleared(subscriber) {
6706
- clearSubscribers.add(subscriber);
6707
- return () => {
6708
- clearSubscribers.delete(subscriber);
6709
- };
6710
- }
6711
-
6712
- // src/components/HighlightOverlay.tsx
6713
6744
  var HIGHLIGHT_AUTO_CLEAR_MS = 25000;
6714
6745
  var textDecoder = new TextDecoder;
6715
6746
  function parseHighlightMessage(payload) {
@@ -8482,7 +8513,7 @@ function ShadowHost({
8482
8513
  const hostRef = useRef25(null);
8483
8514
  const [shadowRoot, setShadowRoot] = useState22(null);
8484
8515
  const css = `/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
8485
- @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-auto{pointer-events:auto}.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-\\[2px\\]{bottom:-2px}.skippr\\:bottom-3{bottom:calc(var(--skippr-spacing)*3)}.skippr\\:bottom-4{bottom:calc(var(--skippr-spacing)*4)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-\\[calc\\(100\\%\\+8px\\)\\]{bottom:calc(100% + 8px)}.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-\\[6px\\]{margin-top:6px}.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-\\[150px\\]{width:150px}.skippr\\:w-\\[220px\\]{width:220px}.skippr\\:w-\\[225px\\]{width:225px}.skippr\\:w-\\[240px\\]{width:240px}.skippr\\:w-\\[255px\\]{width:255px}.skippr\\:w-\\[320px\\]{width:320px}.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}.skippr\\:gap-\\[14px\\]{gap:14px}.skippr\\:gap-px{gap:1px}: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-\\[4px\\]{border-radius:4px}.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-\\[rgba\\(45\\,45\\,63\\,0\\.03\\)\\]{background-color:#2d2d3f08}.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\\/10{background-color:var(--skippr-brand,#2bc0ae)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-brand\\/10{background-color:color-mix(in oklab,var(--skippr-brand,#2bc0ae)10%,transparent)}}.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-contain{object-fit:contain}.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-5{padding-inline:calc(var(--skippr-spacing)*5)}.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\\:px-\\[18px\\]{padding-inline:18px}.skippr\\:px-\\[22px\\]{padding-inline:22px}.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\\:py-\\[13px\\]{padding-block:13px}.skippr\\:pt-1{padding-top:calc(var(--skippr-spacing)*1)}.skippr\\:pt-5{padding-top:calc(var(--skippr-spacing)*5)}.skippr\\:pt-\\[8px\\]{padding-top:8px}.skippr\\:pt-\\[9px\\]{padding-top:9px}.skippr\\:pt-\\[10px\\]{padding-top:10px}.skippr\\:pt-\\[18px\\]{padding-top:18px}.skippr\\:pt-\\[22px\\]{padding-top:22px}.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-0\\.5{padding-bottom:calc(var(--skippr-spacing)*.5)}.skippr\\:pb-1{padding-bottom:calc(var(--skippr-spacing)*1)}.skippr\\:pb-4{padding-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:pb-\\[8px\\]{padding-bottom:8px}.skippr\\:pb-\\[10px\\]{padding-bottom:10px}.skippr\\:pb-\\[22px\\]{padding-bottom:22px}.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\\:text-\\[14px\\]{font-size:14px}.skippr\\:text-\\[16px\\]{font-size:16px}.skippr\\:text-\\[18px\\]{font-size:18px}.skippr\\:leading-5{--tw-leading:calc(var(--skippr-spacing)*5);line-height:calc(var(--skippr-spacing)*5)}.skippr\\:leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.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\\.0125em\\]{--tw-tracking:-.0125em;letter-spacing:-.0125em}.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-\\[\\#6b6875\\]{color:#6b6875}.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-\\[var\\(--skippr-brand-on-white\\,\\#2d2b3d\\)\\]{color:var(--skippr-brand-on-white,#2d2b3d)}.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\\:underline{text-decoration-line:underline}.skippr\\:decoration-muted-foreground\\/40{text-decoration-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:underline-offset-2,.skippr\\:underline-offset-\\[2px\\]{text-underline-offset:2px}.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_1px_rgba\\(45\\,45\\,63\\,0\\.10\\)\\,0_1px_2px_rgba\\(45\\,45\\,63\\,0\\.04\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#2d2d3f1a),0 1px 2px 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_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\\:select-text{-webkit-user-select:text;user-select:text}.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}.skippr\\:first\\:mt-0:first-child{margin-top:calc(var(--skippr-spacing)*0)}@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\\:underline:hover{text-decoration-line:underline}.skippr\\:hover\\:decoration-muted-foreground:hover{text-decoration-color:oklch(55.3% .013 58.071)}.skippr\\:hover\\:opacity-80:hover{opacity:.8}.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\\:border-primary:focus{border-color:var(--skippr-brand,#2d2b3d)}.skippr\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:focus\\:ring-primary\\/30:focus{--tw-ring-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:focus\\:ring-primary\\/30:focus{--tw-ring-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)30%,transparent)}}.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%,40%{transform:scaleY(1)}41.3%,42%{transform:scaleY(.08)}43.3%,70%{transform:scaleY(1)}71.3%,72%{transform:scaleY(.08)}73.3%,to{transform:scaleY(1)}}.skippr-buddy-blink{transform-box:fill-box;transform-origin:50%;animation:5s linear infinite skippr-blink}@keyframes skippr-avatar-eyes-bob{0%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(0)}18%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(24px)}33.33%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-30px)}48%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-7px)}64%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-30px)}82%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(31px)}96%,to{transform:translateY(0)}}@keyframes skippr-avatar-pupil-glance{0%,21.33%{transform:translate(0)}28%,68%{transform:translate(-30px)}74%,to{transform:translate(0)}}@keyframes skippr-avatar-body-vibe{0%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}17.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}33.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}49.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}65.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}81.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}96%,to{transform:scale(1)}}@keyframes skippr-avatar-blink{0%,40%{transform:scaleY(1)}41.3%,42%{transform:scaleY(.08)}43.3%,70%{transform:scaleY(1)}71.3%,72%{transform:scaleY(.08)}73.3%,to{transform:scaleY(1)}}@keyframes skippr-avatar-bub-tail-drift{0%,10%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translate(0)}45%,60%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translate(-24px)}95%,to{transform:translate(0)}}@keyframes skippr-avatar-antenna-shake{0%,to{transform:rotate(-4deg)}25%{transform:rotate(4deg)}50%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.skippr-avatar-eyes{animation:5s infinite skippr-avatar-eyes-bob}.skippr-avatar-pupil{animation:5s linear infinite skippr-avatar-pupil-glance}.skippr-avatar-body{transform-box:fill-box;transform-origin:50% 100%;animation:5s infinite skippr-avatar-body-vibe}.skippr-avatar-blink{transform-box:fill-box;transform-origin:50%;animation:5s infinite skippr-avatar-blink}.skippr-avatar-body .skippr-avatar-antenna{transform-box:view-box;transform-origin:48px 22px;animation:1.6s ease-in-out infinite skippr-avatar-antenna-shake}.skippr-avatar-body .skippr-avatar-bub-tail{animation:5s infinite skippr-avatar-bub-tail-drift}@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%)}}@keyframes skippr-peek-top{0%,20%{transform:translateY(-58%)}46%,66%{transform:translateY(0)}92%,to{transform:translateY(-58%)}}@keyframes skippr-peek-bottom{0%,20%{transform:translateY(58%)}46%,66%{transform:translateY(0)}92%,to{transform:translateY(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}.skippr-peek-top{animation:3.6s ease-in-out infinite skippr-peek-top}.skippr-peek-bottom{animation:3.6s ease-in-out infinite skippr-peek-bottom}.skippr-peek-out{animation:none;transform:none}@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){.skippr-buddy-blink,[style*=skippr-blink],[style*=skippr-buddy-bob],[style*=skippr-buddy-breathe],[style*=skippr-buddy-pop],[style*=skippr-buddy-sleep],[style*=skippr-buddy-zfloat],.skippr-avatar-eyes,.skippr-avatar-pupil,.skippr-avatar-body,.skippr-avatar-blink,.skippr-avatar-body .skippr-avatar-antenna,.skippr-avatar-body .skippr-avatar-bub-tail,.skippr-peek-left,.skippr-peek-right,.skippr-peek-top,.skippr-peek-bottom{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}}`;
8516
+ @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-auto{pointer-events:auto}.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-\\[2px\\]{bottom:-2px}.skippr\\:bottom-3{bottom:calc(var(--skippr-spacing)*3)}.skippr\\:bottom-4{bottom:calc(var(--skippr-spacing)*4)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-\\[calc\\(100\\%\\+8px\\)\\]{bottom:calc(100% + 8px)}.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-\\[6px\\]{margin-top:6px}.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\\: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-\\[11px\\]{height:11px}.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-\\[9px\\]{width:9px}.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-\\[120px\\]{width:120px}.skippr\\:w-\\[148px\\]{width:148px}.skippr\\:w-\\[150px\\]{width:150px}.skippr\\:w-\\[156px\\]{width:156px}.skippr\\:w-\\[220px\\]{width:220px}.skippr\\:w-\\[225px\\]{width:225px}.skippr\\:w-\\[240px\\]{width:240px}.skippr\\:w-\\[255px\\]{width:255px}.skippr\\:w-\\[320px\\]{width:320px}.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-\\[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}.skippr\\:gap-\\[10px\\]{gap:10px}.skippr\\:gap-\\[14px\\]{gap:14px}.skippr\\:gap-px{gap:1px}: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-\\[4px\\]{border-radius:4px}.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-\\[rgba\\(45\\,45\\,63\\,0\\.03\\)\\]{background-color:#2d2d3f08}.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\\/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-contain{object-fit:contain}.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-5{padding-inline:calc(var(--skippr-spacing)*5)}.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-\\[9px\\]{padding-inline:9px}.skippr\\:px-\\[10px\\]{padding-inline:10px}.skippr\\:px-\\[11px\\]{padding-inline:11px}.skippr\\:px-\\[12px\\]{padding-inline:12px}.skippr\\:px-\\[18px\\]{padding-inline:18px}.skippr\\:px-\\[22px\\]{padding-inline:22px}.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\\:py-\\[13px\\]{padding-block:13px}.skippr\\:pt-1{padding-top:calc(var(--skippr-spacing)*1)}.skippr\\:pt-5{padding-top:calc(var(--skippr-spacing)*5)}.skippr\\:pt-\\[8px\\]{padding-top:8px}.skippr\\:pt-\\[9px\\]{padding-top:9px}.skippr\\:pt-\\[10px\\]{padding-top:10px}.skippr\\:pt-\\[18px\\]{padding-top:18px}.skippr\\:pt-\\[22px\\]{padding-top:22px}.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-0\\.5{padding-bottom:calc(var(--skippr-spacing)*.5)}.skippr\\:pb-1{padding-bottom:calc(var(--skippr-spacing)*1)}.skippr\\:pb-4{padding-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:pb-\\[8px\\]{padding-bottom:8px}.skippr\\:pb-\\[10px\\]{padding-bottom:10px}.skippr\\:pb-\\[22px\\]{padding-bottom:22px}.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\\:text-\\[14px\\]{font-size:14px}.skippr\\:text-\\[16px\\]{font-size:16px}.skippr\\:text-\\[18px\\]{font-size:18px}.skippr\\:leading-5{--tw-leading:calc(var(--skippr-spacing)*5);line-height:calc(var(--skippr-spacing)*5)}.skippr\\:leading-\\[1\\.2\\]{--tw-leading:1.2;line-height:1.2}.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\\.0125em\\]{--tw-tracking:-.0125em;letter-spacing:-.0125em}.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-\\[\\#6b6875\\]{color:#6b6875}.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-brand-on-white{color:var(--skippr-brand-on-white,#1e8478)}.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\\:underline{text-decoration-line:underline}.skippr\\:decoration-muted-foreground\\/40{text-decoration-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:underline-offset-2,.skippr\\:underline-offset-\\[2px\\]{text-underline-offset:2px}.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-85{opacity:.85}.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_1px_rgba\\(45\\,45\\,63\\,0\\.10\\)\\,0_1px_2px_rgba\\(45\\,45\\,63\\,0\\.04\\)\\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,#2d2d3f1a),0 1px 2px 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_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\\,color\\]{transition-property:opacity,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-\\[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\\:select-text{-webkit-user-select:text;user-select:text}.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}.skippr\\:first\\:mt-0:first-child{margin-top:calc(var(--skippr-spacing)*0)}@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-\\[rgba\\(45\\,45\\,63\\,0\\.04\\)\\]:hover{background-color:#2d2d3f0a}.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\\:text-\\[\\#2D2D3F\\]:hover{color:#2d2d3f}.skippr\\:hover\\:text-\\[\\#5a5650\\]:hover{color:#5a5650}.skippr\\:hover\\:text-accent-foreground:hover{color:oklch(21.6% .006 56.043)}.skippr\\:hover\\:text-destructive:hover{color:#d94f4f}.skippr\\:hover\\:text-foreground:hover{color:oklch(14.7% .004 49.25)}.skippr\\:hover\\:underline:hover{text-decoration-line:underline}.skippr\\:hover\\:decoration-muted-foreground:hover{text-decoration-color:oklch(55.3% .013 58.071)}.skippr\\:hover\\:opacity-80:hover{opacity:.8}.skippr\\:hover\\:opacity-100:hover{opacity:1}.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\\:border-primary:focus{border-color:var(--skippr-brand,#2d2b3d)}.skippr\\:focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:focus\\:ring-primary\\/30:focus{--tw-ring-color:var(--skippr-brand,#2d2b3d)}@supports (color:color-mix(in lab, red, red)){.skippr\\:focus\\:ring-primary\\/30:focus{--tw-ring-color:color-mix(in oklab,var(--skippr-brand,#2d2b3d)30%,transparent)}}.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%,40%{transform:scaleY(1)}41.3%,42%{transform:scaleY(.08)}43.3%,70%{transform:scaleY(1)}71.3%,72%{transform:scaleY(.08)}73.3%,to{transform:scaleY(1)}}.skippr-buddy-blink{transform-box:fill-box;transform-origin:50%;animation:5s linear infinite skippr-blink}@keyframes skippr-avatar-eyes-bob{0%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(0)}18%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(24px)}33.33%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-30px)}48%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-7px)}64%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(-30px)}82%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translateY(31px)}96%,to{transform:translateY(0)}}@keyframes skippr-avatar-pupil-glance{0%,21.33%{transform:translate(0)}28%,68%{transform:translate(-30px)}74%,to{transform:translate(0)}}@keyframes skippr-avatar-body-vibe{0%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}17.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}33.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}49.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}65.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1)}81.67%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:scale(1.08,.95)}96%,to{transform:scale(1)}}@keyframes skippr-avatar-blink{0%,40%{transform:scaleY(1)}41.3%,42%{transform:scaleY(.08)}43.3%,70%{transform:scaleY(1)}71.3%,72%{transform:scaleY(.08)}73.3%,to{transform:scaleY(1)}}@keyframes skippr-avatar-bub-tail-drift{0%,10%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translate(0)}45%,60%{animation-timing-function:cubic-bezier(.65,0,.36,1);transform:translate(-24px)}95%,to{transform:translate(0)}}@keyframes skippr-avatar-antenna-shake{0%,to{transform:rotate(-4deg)}25%{transform:rotate(4deg)}50%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.skippr-avatar-eyes{animation:5s infinite skippr-avatar-eyes-bob}.skippr-avatar-pupil{animation:5s linear infinite skippr-avatar-pupil-glance}.skippr-avatar-body{transform-box:fill-box;transform-origin:50% 100%;animation:5s infinite skippr-avatar-body-vibe}.skippr-avatar-blink{transform-box:fill-box;transform-origin:50%;animation:5s infinite skippr-avatar-blink}.skippr-avatar-body .skippr-avatar-antenna{transform-box:view-box;transform-origin:48px 22px;animation:1.6s ease-in-out infinite skippr-avatar-antenna-shake}.skippr-avatar-body .skippr-avatar-bub-tail{animation:5s infinite skippr-avatar-bub-tail-drift}@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%)}}@keyframes skippr-peek-top{0%,20%{transform:translateY(-58%)}46%,66%{transform:translateY(0)}92%,to{transform:translateY(-58%)}}@keyframes skippr-peek-bottom{0%,20%{transform:translateY(58%)}46%,66%{transform:translateY(0)}92%,to{transform:translateY(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}.skippr-peek-top{animation:3.6s ease-in-out infinite skippr-peek-top}.skippr-peek-bottom{animation:3.6s ease-in-out infinite skippr-peek-bottom}.skippr-peek-out{animation:none;transform:none}@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){.skippr-buddy-blink,[style*=skippr-blink],[style*=skippr-buddy-bob],[style*=skippr-buddy-breathe],[style*=skippr-buddy-pop],[style*=skippr-buddy-sleep],[style*=skippr-buddy-zfloat],.skippr-avatar-eyes,.skippr-avatar-pupil,.skippr-avatar-body,.skippr-avatar-blink,.skippr-avatar-body .skippr-avatar-antenna,.skippr-avatar-body .skippr-avatar-bub-tail,.skippr-peek-left,.skippr-peek-right,.skippr-peek-top,.skippr-peek-bottom{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}}`;
8486
8517
  const hostStyle = accentColor && isHexColor(accentColor) ? {
8487
8518
  "--skippr-brand": accentColor,
8488
8519
  "--skippr-brand-foreground": brandForeground(accentColor),
@@ -8865,12 +8896,36 @@ function LoadingDots({ label }) {
8865
8896
  });
8866
8897
  }
8867
8898
 
8899
+ // src/components/LogoMark.tsx
8900
+ import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
8901
+ function LogoMark({ className, decorative }) {
8902
+ return /* @__PURE__ */ jsxs24("svg", {
8903
+ viewBox: "21 21 109 109",
8904
+ fill: "none",
8905
+ xmlns: "http://www.w3.org/2000/svg",
8906
+ role: decorative ? undefined : "img",
8907
+ "aria-label": decorative ? undefined : "Skippr",
8908
+ "aria-hidden": decorative || undefined,
8909
+ className,
8910
+ children: [
8911
+ /* @__PURE__ */ jsx30("path", {
8912
+ 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",
8913
+ fill: "currentColor"
8914
+ }),
8915
+ /* @__PURE__ */ jsx30("path", {
8916
+ 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",
8917
+ className: "skippr:fill-brand"
8918
+ })
8919
+ ]
8920
+ });
8921
+ }
8922
+
8868
8923
  // src/components/MessageList.tsx
8869
8924
  import { useCallback as useCallback25, useLayoutEffect as useLayoutEffect3, useRef as useRef31, useState as useState27 } from "react";
8870
8925
 
8871
8926
  // src/components/ChatInput.tsx
8872
8927
  import { useContext as useContext16, useEffect as useEffect33, useRef as useRef29, useState as useState24 } from "react";
8873
- import { jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
8928
+ import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
8874
8929
  var MAX_INPUT_HEIGHT = 60;
8875
8930
  function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
8876
8931
  const ctx = useContext16(LiveAgentContext);
@@ -8912,12 +8967,12 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
8912
8967
  handleSubmit(e);
8913
8968
  }
8914
8969
  }
8915
- return /* @__PURE__ */ jsxs24("form", {
8970
+ return /* @__PURE__ */ jsxs25("form", {
8916
8971
  onSubmit: handleSubmit,
8917
8972
  "data-skippr-no-drag": "",
8918
8973
  className: "skippr:flex skippr:items-center skippr:gap-[7px] skippr:border-t skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:p-[9px]",
8919
8974
  children: [
8920
- /* @__PURE__ */ jsx30("textarea", {
8975
+ /* @__PURE__ */ jsx31("textarea", {
8921
8976
  ref: textareaRef,
8922
8977
  rows: 1,
8923
8978
  value: inputText,
@@ -8928,7 +8983,7 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
8928
8983
  className: "skippr:min-w-0 skippr:flex-1 skippr:resize-none skippr:overflow-y-auto skippr:rounded-[10px] skippr:border skippr:border-[rgba(45,45,63,0.14)] skippr:bg-white skippr:px-[10px] skippr:py-[7px] skippr:text-[13px] skippr:font-medium skippr:leading-5 skippr:text-[#2D2D3F] skippr:shadow-[0_1px_2px_rgba(45,45,63,0.05)] skippr:outline-none skippr:focus-visible:border-[var(--skippr-brand-ring)] skippr:focus-visible:ring-2 skippr:focus-visible:ring-[var(--skippr-brand-ring)] skippr:placeholder:text-[#b0aca4]",
8929
8984
  style: { maxHeight: `${MAX_INPUT_HEIGHT}px` }
8930
8985
  }),
8931
- /* @__PURE__ */ jsx30("button", {
8986
+ /* @__PURE__ */ jsx31("button", {
8932
8987
  type: "submit",
8933
8988
  disabled: !canSend,
8934
8989
  "aria-label": "Send message",
@@ -8937,7 +8992,7 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
8937
8992
  color: "var(--skippr-brand-foreground, #2d2b3d)"
8938
8993
  },
8939
8994
  className: cn("skippr:flex skippr:size-[34px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:transition-[filter] skippr:focus-visible:outline-2 skippr:focus-visible:outline-offset-2 skippr:focus-visible:outline-[var(--skippr-brand)]", canSend ? "skippr:cursor-pointer skippr:hover:brightness-[1.06]" : "skippr:cursor-not-allowed"),
8940
- children: /* @__PURE__ */ jsx30(Send, {
8995
+ children: /* @__PURE__ */ jsx31(Send, {
8941
8996
  className: "skippr:size-[16px]",
8942
8997
  strokeWidth: 2
8943
8998
  })
@@ -8947,7 +9002,7 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
8947
9002
  }
8948
9003
 
8949
9004
  // src/components/ChatMessage.tsx
8950
- import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
9005
+ import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
8951
9006
  function formatTimestamp(ts) {
8952
9007
  return new Date(ts).toLocaleTimeString("en-US", {
8953
9008
  hour: "numeric",
@@ -8957,16 +9012,16 @@ function formatTimestamp(ts) {
8957
9012
  }
8958
9013
  function ChatMessage({ message }) {
8959
9014
  const isAgent = message.role === "assistant";
8960
- return /* @__PURE__ */ jsx31("div", {
9015
+ return /* @__PURE__ */ jsx32("div", {
8961
9016
  className: cn("skippr:flex skippr:gap-2", isAgent ? "skippr:items-start" : "skippr:justify-end"),
8962
- children: /* @__PURE__ */ jsxs25("div", {
9017
+ children: /* @__PURE__ */ jsxs26("div", {
8963
9018
  className: cn("skippr:flex skippr:max-w-[80%] skippr:flex-col", isAgent ? "skippr:items-start" : "skippr:items-end"),
8964
9019
  children: [
8965
- /* @__PURE__ */ jsx31("div", {
9020
+ /* @__PURE__ */ jsx32("div", {
8966
9021
  className: cn("skippr:rounded-2xl skippr:px-4 skippr:py-2.5 skippr:text-sm skippr:leading-relaxed", isAgent ? "skippr:border skippr:border-border skippr:bg-card skippr:text-foreground" : "skippr:bg-primary skippr:text-primary-foreground"),
8967
9022
  children: message.content
8968
9023
  }),
8969
- message.timestamp && /* @__PURE__ */ jsx31("span", {
9024
+ message.timestamp && /* @__PURE__ */ jsx32("span", {
8970
9025
  className: "skippr:mt-1 skippr:px-1 skippr:text-[10px] skippr:text-muted-foreground/60",
8971
9026
  children: formatTimestamp(message.timestamp)
8972
9027
  })
@@ -8989,7 +9044,7 @@ async function copyToClipboard(text) {
8989
9044
  }
8990
9045
 
8991
9046
  // src/components/LinkCard.tsx
8992
- import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
9047
+ import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
8993
9048
  var COPIED_RESET_MS = 2000;
8994
9049
  var DISMISS_AFTER_COPY_MS = 3000;
8995
9050
  function LinkCard({ card, onDismiss }) {
@@ -9014,56 +9069,56 @@ function LinkCard({ card, onDismiss }) {
9014
9069
  setCopied(true);
9015
9070
  dismissTimerRef.current = setTimeout(onDismiss, DISMISS_AFTER_COPY_MS);
9016
9071
  }, [card.url, onDismiss]);
9017
- return /* @__PURE__ */ jsxs26("div", {
9072
+ return /* @__PURE__ */ jsxs27("div", {
9018
9073
  className: "skippr:rounded-2xl skippr:rounded-tl-md skippr:bg-card skippr:p-3.5 skippr:ring-2 skippr:ring-brand",
9019
9074
  children: [
9020
- /* @__PURE__ */ jsxs26("div", {
9075
+ /* @__PURE__ */ jsxs27("div", {
9021
9076
  className: "skippr:mb-1 skippr:flex skippr:items-start skippr:justify-between skippr:gap-2",
9022
9077
  children: [
9023
- card.title && /* @__PURE__ */ jsx32("p", {
9078
+ card.title && /* @__PURE__ */ jsx33("p", {
9024
9079
  className: "skippr:text-sm skippr:font-semibold skippr:leading-snug skippr:text-foreground",
9025
9080
  children: card.title
9026
9081
  }),
9027
- /* @__PURE__ */ jsx32("button", {
9082
+ /* @__PURE__ */ jsx33("button", {
9028
9083
  type: "button",
9029
9084
  onClick: onDismiss,
9030
9085
  "aria-label": "Dismiss link",
9031
9086
  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",
9032
- children: /* @__PURE__ */ jsx32(X, {
9087
+ children: /* @__PURE__ */ jsx33(X, {
9033
9088
  className: "skippr:size-3.5",
9034
9089
  strokeWidth: 2.5
9035
9090
  })
9036
9091
  })
9037
9092
  ]
9038
9093
  }),
9039
- /* @__PURE__ */ jsx32("p", {
9094
+ /* @__PURE__ */ jsx33("p", {
9040
9095
  className: "skippr:mb-3 skippr:truncate skippr:text-xs skippr:text-muted-foreground",
9041
9096
  children: card.url
9042
9097
  }),
9043
- /* @__PURE__ */ jsxs26("div", {
9098
+ /* @__PURE__ */ jsxs27("div", {
9044
9099
  className: "skippr:flex skippr:gap-2",
9045
9100
  children: [
9046
- /* @__PURE__ */ jsxs26("a", {
9101
+ /* @__PURE__ */ jsxs27("a", {
9047
9102
  href: card.url,
9048
9103
  target: "_blank",
9049
9104
  rel: "noopener noreferrer",
9050
9105
  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",
9051
9106
  children: [
9052
- /* @__PURE__ */ jsx32(ExternalLink, {
9107
+ /* @__PURE__ */ jsx33(ExternalLink, {
9053
9108
  className: "skippr:size-4"
9054
9109
  }),
9055
9110
  "Open"
9056
9111
  ]
9057
9112
  }),
9058
- /* @__PURE__ */ jsxs26(Button, {
9113
+ /* @__PURE__ */ jsxs27(Button, {
9059
9114
  variant: "outline",
9060
9115
  className: "skippr:flex-1 skippr:py-2",
9061
9116
  onClick: handleCopy,
9062
9117
  "aria-label": "Copy link",
9063
9118
  children: [
9064
- copied ? /* @__PURE__ */ jsx32(Check, {
9119
+ copied ? /* @__PURE__ */ jsx33(Check, {
9065
9120
  className: "skippr:size-4"
9066
- }) : /* @__PURE__ */ jsx32(Copy, {
9121
+ }) : /* @__PURE__ */ jsx33(Copy, {
9067
9122
  className: "skippr:size-4"
9068
9123
  }),
9069
9124
  copied ? "Copied" : "Copy link"
@@ -9077,28 +9132,28 @@ function LinkCard({ card, onDismiss }) {
9077
9132
 
9078
9133
  // src/components/PlanCard.tsx
9079
9134
  import { useEffect as useEffect35, useState as useState26 } from "react";
9080
- import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
9135
+ import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
9081
9136
  var APPROVE_MESSAGE = "Yes, go ahead.";
9082
9137
  var CANCEL_MESSAGE = "No, cancel that.";
9083
9138
  var COMPLETED_CARD_VISIBLE_MS = 2500;
9084
9139
  var APPROVING_RESET_MS = 8000;
9085
9140
  function StepIcon({ status }) {
9086
9141
  if (status === "done") {
9087
- return /* @__PURE__ */ jsx33(CircleCheck, {
9142
+ return /* @__PURE__ */ jsx34(CircleCheck, {
9088
9143
  className: "skippr:size-4 skippr:text-chart-3"
9089
9144
  });
9090
9145
  }
9091
9146
  if (status === "failed") {
9092
- return /* @__PURE__ */ jsx33(CircleX, {
9147
+ return /* @__PURE__ */ jsx34(CircleX, {
9093
9148
  className: "skippr:size-4 skippr:text-destructive"
9094
9149
  });
9095
9150
  }
9096
9151
  if (status === "active") {
9097
- return /* @__PURE__ */ jsx33(Circle, {
9152
+ return /* @__PURE__ */ jsx34(Circle, {
9098
9153
  className: "skippr:size-4 skippr:fill-primary/30 skippr:text-primary"
9099
9154
  });
9100
9155
  }
9101
- return /* @__PURE__ */ jsx33(Circle, {
9156
+ return /* @__PURE__ */ jsx34(Circle, {
9102
9157
  className: "skippr:size-4 skippr:text-muted-foreground/30"
9103
9158
  });
9104
9159
  }
@@ -9129,43 +9184,43 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
9129
9184
  const timer = setTimeout(onDismiss, COMPLETED_CARD_VISIBLE_MS);
9130
9185
  return () => clearTimeout(timer);
9131
9186
  }, [plan.state, onDismiss]);
9132
- return /* @__PURE__ */ jsxs27("div", {
9187
+ return /* @__PURE__ */ jsxs28("div", {
9133
9188
  className: "skippr:rounded-2xl skippr:rounded-tl-md skippr:bg-card skippr:p-3.5 skippr:ring-2 skippr:ring-brand",
9134
9189
  children: [
9135
- /* @__PURE__ */ jsx33("p", {
9190
+ /* @__PURE__ */ jsx34("p", {
9136
9191
  className: "skippr:mb-3 skippr:text-sm skippr:font-semibold skippr:leading-snug skippr:text-foreground",
9137
9192
  children: "Plan"
9138
9193
  }),
9139
- /* @__PURE__ */ jsx33("div", {
9194
+ /* @__PURE__ */ jsx34("div", {
9140
9195
  className: "skippr:space-y-2",
9141
- children: plan.steps.map((step) => /* @__PURE__ */ jsxs27("div", {
9196
+ children: plan.steps.map((step) => /* @__PURE__ */ jsxs28("div", {
9142
9197
  className: "skippr:flex skippr:items-center skippr:gap-2",
9143
9198
  children: [
9144
- /* @__PURE__ */ jsx33(StepIcon, {
9199
+ /* @__PURE__ */ jsx34(StepIcon, {
9145
9200
  status: step.status
9146
9201
  }),
9147
- /* @__PURE__ */ jsx33("p", {
9202
+ /* @__PURE__ */ jsx34("p", {
9148
9203
  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"),
9149
9204
  children: step.label
9150
9205
  })
9151
9206
  ]
9152
9207
  }, step.index))
9153
9208
  }),
9154
- awaitingApproval && /* @__PURE__ */ jsxs27("div", {
9209
+ awaitingApproval && /* @__PURE__ */ jsxs28("div", {
9155
9210
  className: "skippr:mt-3.5 skippr:flex skippr:gap-2",
9156
9211
  children: [
9157
- /* @__PURE__ */ jsxs27(Button, {
9212
+ /* @__PURE__ */ jsxs28(Button, {
9158
9213
  className: "skippr:flex-1 skippr:gap-1.5 skippr:py-2",
9159
9214
  disabled: isApproving,
9160
9215
  onClick: approve,
9161
9216
  children: [
9162
- isApproving && /* @__PURE__ */ jsx33("span", {
9217
+ isApproving && /* @__PURE__ */ jsx34("span", {
9163
9218
  className: "skippr:size-3 skippr:shrink-0 skippr:animate-spin skippr:rounded-full skippr:border-2 skippr:border-white/30 skippr:border-t-white"
9164
9219
  }),
9165
9220
  isApproving ? "Approving…" : "Approve"
9166
9221
  ]
9167
9222
  }),
9168
- /* @__PURE__ */ jsx33(Button, {
9223
+ /* @__PURE__ */ jsx34(Button, {
9169
9224
  variant: "outline",
9170
9225
  className: "skippr:flex-1 skippr:py-2",
9171
9226
  disabled: isApproving,
@@ -9179,26 +9234,26 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
9179
9234
  }
9180
9235
 
9181
9236
  // src/components/TypingIndicator.tsx
9182
- import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
9237
+ import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
9183
9238
  function TypingIndicator() {
9184
- return /* @__PURE__ */ jsx34("div", {
9239
+ return /* @__PURE__ */ jsx35("div", {
9185
9240
  className: "skippr:flex skippr:items-start skippr:gap-2 skippr:animate-skippr-tab-fade",
9186
- children: /* @__PURE__ */ jsxs28("div", {
9241
+ children: /* @__PURE__ */ jsxs29("div", {
9187
9242
  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",
9188
9243
  children: [
9189
- /* @__PURE__ */ jsx34("span", {
9244
+ /* @__PURE__ */ jsx35("span", {
9190
9245
  children: "Agent is analyzing your screen"
9191
9246
  }),
9192
- /* @__PURE__ */ jsxs28("span", {
9247
+ /* @__PURE__ */ jsxs29("span", {
9193
9248
  className: "skippr:inline-flex skippr:items-center skippr:gap-[2px]",
9194
9249
  children: [
9195
- /* @__PURE__ */ jsx34("span", {
9250
+ /* @__PURE__ */ jsx35("span", {
9196
9251
  className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:0ms]"
9197
9252
  }),
9198
- /* @__PURE__ */ jsx34("span", {
9253
+ /* @__PURE__ */ jsx35("span", {
9199
9254
  className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:200ms]"
9200
9255
  }),
9201
- /* @__PURE__ */ jsx34("span", {
9256
+ /* @__PURE__ */ jsx35("span", {
9202
9257
  className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:400ms]"
9203
9258
  })
9204
9259
  ]
@@ -9209,7 +9264,7 @@ function TypingIndicator() {
9209
9264
  }
9210
9265
 
9211
9266
  // src/components/MessageList.tsx
9212
- import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
9267
+ import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
9213
9268
  var BOTTOM_THRESHOLD_PX = 32;
9214
9269
  function MessageList({
9215
9270
  messages,
@@ -9268,59 +9323,59 @@ function MessageList({
9268
9323
  container.scrollTop = container.scrollHeight;
9269
9324
  }, [messages.length, lastMessage?.content]);
9270
9325
  const showTyping = isStreaming && lastMessage?.role === "assistant" && lastMessage.content === "";
9271
- return /* @__PURE__ */ jsxs29("div", {
9326
+ return /* @__PURE__ */ jsxs30("div", {
9272
9327
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
9273
9328
  children: [
9274
- /* @__PURE__ */ jsxs29("div", {
9329
+ /* @__PURE__ */ jsxs30("div", {
9275
9330
  className: "skippr:relative skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
9276
9331
  children: [
9277
- /* @__PURE__ */ jsxs29("div", {
9332
+ /* @__PURE__ */ jsxs30("div", {
9278
9333
  ref: containerRef,
9279
9334
  onScroll: handleScroll,
9280
9335
  "data-skippr-no-drag": "",
9281
9336
  className: "skippr:min-h-0 skippr:flex-1 skippr:select-text skippr:space-y-4 skippr:overflow-y-auto skippr:p-4 skippr:[overflow-anchor:none]",
9282
9337
  children: [
9283
- messages.length === 0 && !showTyping && (readOnly ? /* @__PURE__ */ jsx35("p", {
9338
+ messages.length === 0 && !showTyping && (readOnly ? /* @__PURE__ */ jsx36("p", {
9284
9339
  className: "skippr:px-2 skippr:py-6 skippr:text-center skippr:text-sm skippr:text-muted-foreground",
9285
9340
  children: "No messages in this conversation yet."
9286
- }) : /* @__PURE__ */ jsx35(LoadingDots, {
9341
+ }) : /* @__PURE__ */ jsx36(LoadingDots, {
9287
9342
  label: "Waiting for conversation to begin..."
9288
9343
  })),
9289
- messages.map((message) => /* @__PURE__ */ jsx35(ChatMessage, {
9344
+ messages.map((message) => /* @__PURE__ */ jsx36(ChatMessage, {
9290
9345
  message
9291
9346
  }, message.id)),
9292
- showTyping && /* @__PURE__ */ jsx35(TypingIndicator, {})
9347
+ showTyping && /* @__PURE__ */ jsx36(TypingIndicator, {})
9293
9348
  ]
9294
9349
  }),
9295
- showJumpToLatest && /* @__PURE__ */ jsx35("button", {
9350
+ showJumpToLatest && /* @__PURE__ */ jsx36("button", {
9296
9351
  type: "button",
9297
9352
  onClick: jumpToLatest,
9298
9353
  "aria-label": "Jump to latest message",
9299
9354
  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",
9300
- children: /* @__PURE__ */ jsx35(ChevronDown, {
9355
+ children: /* @__PURE__ */ jsx36(ChevronDown, {
9301
9356
  className: "skippr:size-4"
9302
9357
  })
9303
9358
  })
9304
9359
  ]
9305
9360
  }),
9306
- sendChatMessage && isPlanVisible(plan) && plan.planId !== dismissedPlanId && /* @__PURE__ */ jsx35("div", {
9361
+ sendChatMessage && isPlanVisible(plan) && plan.planId !== dismissedPlanId && /* @__PURE__ */ jsx36("div", {
9307
9362
  "data-skippr-no-drag": "",
9308
9363
  className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
9309
- children: /* @__PURE__ */ jsx35(PlanCard, {
9364
+ children: /* @__PURE__ */ jsx36(PlanCard, {
9310
9365
  plan,
9311
9366
  sendChatMessage,
9312
9367
  onDismiss: dismissPlan
9313
9368
  }, plan.planId)
9314
9369
  }),
9315
- linkCard && linkCard.cardId !== dismissedLinkCardId && /* @__PURE__ */ jsx35("div", {
9370
+ linkCard && linkCard.cardId !== dismissedLinkCardId && /* @__PURE__ */ jsx36("div", {
9316
9371
  "data-skippr-no-drag": "",
9317
9372
  className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
9318
- children: /* @__PURE__ */ jsx35(LinkCard, {
9373
+ children: /* @__PURE__ */ jsx36(LinkCard, {
9319
9374
  card: linkCard,
9320
9375
  onDismiss: dismissLinkCard
9321
9376
  }, linkCard.cardId)
9322
9377
  }),
9323
- !readOnly && sendChatMessage && /* @__PURE__ */ jsx35(ChatInput, {
9378
+ !readOnly && sendChatMessage && /* @__PURE__ */ jsx36(ChatInput, {
9324
9379
  sendChatMessage,
9325
9380
  isSendingChat,
9326
9381
  autoFocus
@@ -9331,14 +9386,14 @@ function MessageList({
9331
9386
 
9332
9387
  // src/components/SessionAgenda.tsx
9333
9388
  import { useContext as useContext17 } from "react";
9334
- import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
9389
+ import { jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
9335
9390
  function SessionAgenda({ phases, hasStarted }) {
9336
9391
  const ctx = useContext17(LiveAgentContext);
9337
9392
  const title = ctx?.activeModule?.name ?? "Agenda";
9338
9393
  if (phases.length === 0 || !hasStarted) {
9339
- return /* @__PURE__ */ jsx36("div", {
9394
+ return /* @__PURE__ */ jsx37("div", {
9340
9395
  className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
9341
- children: /* @__PURE__ */ jsx36(LoadingDots, {
9396
+ children: /* @__PURE__ */ jsx37(LoadingDots, {
9342
9397
  label: "Waiting for agenda to load..."
9343
9398
  })
9344
9399
  });
@@ -9348,17 +9403,17 @@ function SessionAgenda({ phases, hasStarted }) {
9348
9403
  const activeIndex = phases.findIndex((p) => p.status === "active");
9349
9404
  const currentStep = activeIndex >= 0 ? activeIndex + 1 : Math.min(completedCount + 1, total);
9350
9405
  const progressPct = Math.round(completedCount / total * 100);
9351
- return /* @__PURE__ */ jsxs30("div", {
9406
+ return /* @__PURE__ */ jsxs31("div", {
9352
9407
  className: "skippr:flex-1 skippr:overflow-y-auto skippr:p-[14px]",
9353
9408
  children: [
9354
- /* @__PURE__ */ jsxs30("div", {
9409
+ /* @__PURE__ */ jsxs31("div", {
9355
9410
  className: "skippr:mb-2 skippr:flex skippr:items-baseline skippr:justify-between",
9356
9411
  children: [
9357
- /* @__PURE__ */ jsx36("span", {
9412
+ /* @__PURE__ */ jsx37("span", {
9358
9413
  className: "skippr:text-[12.5px] skippr:font-semibold skippr:text-[#2D2D3F]",
9359
9414
  children: title
9360
9415
  }),
9361
- /* @__PURE__ */ jsxs30("span", {
9416
+ /* @__PURE__ */ jsxs31("span", {
9362
9417
  className: "skippr:text-[11px] skippr:font-semibold skippr:text-[var(--skippr-brand-deep)]",
9363
9418
  children: [
9364
9419
  "step ",
@@ -9369,14 +9424,14 @@ function SessionAgenda({ phases, hasStarted }) {
9369
9424
  })
9370
9425
  ]
9371
9426
  }),
9372
- /* @__PURE__ */ jsx36("div", {
9427
+ /* @__PURE__ */ jsx37("div", {
9373
9428
  role: "progressbar",
9374
9429
  "aria-label": "Agenda progress",
9375
9430
  "aria-valuenow": Math.round(progressPct),
9376
9431
  "aria-valuemin": 0,
9377
9432
  "aria-valuemax": 100,
9378
9433
  className: "skippr:mb-[14px] skippr:h-[5px] skippr:overflow-hidden skippr:rounded-full skippr:bg-[#eeeae4]",
9379
- children: /* @__PURE__ */ jsx36("div", {
9434
+ children: /* @__PURE__ */ jsx37("div", {
9380
9435
  className: "skippr:h-full skippr:rounded-full skippr:bg-brand",
9381
9436
  style: { width: `${progressPct}%` }
9382
9437
  })
@@ -9384,29 +9439,29 @@ function SessionAgenda({ phases, hasStarted }) {
9384
9439
  phases.map((phase) => {
9385
9440
  const isActive = phase.status === "active";
9386
9441
  const isCompleted = phase.status === "completed";
9387
- return /* @__PURE__ */ jsxs30("div", {
9442
+ return /* @__PURE__ */ jsxs31("div", {
9388
9443
  className: "skippr:flex skippr:items-center skippr:gap-[9px] skippr:py-[5px]",
9389
9444
  children: [
9390
- isCompleted ? /* @__PURE__ */ jsx36("span", {
9445
+ isCompleted ? /* @__PURE__ */ jsx37("span", {
9391
9446
  className: "skippr:flex skippr:size-[19px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-brand",
9392
- children: /* @__PURE__ */ jsx36(Check, {
9447
+ children: /* @__PURE__ */ jsx37(Check, {
9393
9448
  className: "skippr:size-[11px]",
9394
9449
  style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
9395
9450
  strokeWidth: 3
9396
9451
  })
9397
- }) : isActive ? /* @__PURE__ */ jsx36("span", {
9452
+ }) : isActive ? /* @__PURE__ */ jsx37("span", {
9398
9453
  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)]",
9399
- children: /* @__PURE__ */ jsx36("span", {
9454
+ children: /* @__PURE__ */ jsx37("span", {
9400
9455
  className: "skippr:size-[6px] skippr:rounded-full skippr:bg-white"
9401
9456
  })
9402
- }) : /* @__PURE__ */ jsx36("span", {
9457
+ }) : /* @__PURE__ */ jsx37("span", {
9403
9458
  className: "skippr:size-[19px] skippr:shrink-0 skippr:rounded-full skippr:border-2 skippr:border-[#d8d3ca] skippr:bg-white"
9404
9459
  }),
9405
- /* @__PURE__ */ jsx36("span", {
9460
+ /* @__PURE__ */ jsx37("span", {
9406
9461
  className: cn("skippr:text-[12.5px]", isActive || isCompleted ? "skippr:font-semibold skippr:text-[#2D2D3F]" : "skippr:font-medium skippr:text-[#a8a49c]"),
9407
9462
  children: phase.name
9408
9463
  }),
9409
- isActive && /* @__PURE__ */ jsx36("span", {
9464
+ isActive && /* @__PURE__ */ jsx37("span", {
9410
9465
  className: "skippr:ml-auto skippr:text-[9.5px] skippr:font-bold skippr:uppercase skippr:tracking-[0.05em] skippr:text-[var(--skippr-brand-deep)]",
9411
9466
  children: "now"
9412
9467
  })
@@ -9418,12 +9473,12 @@ function SessionAgenda({ phases, hasStarted }) {
9418
9473
  }
9419
9474
 
9420
9475
  // src/components/SessionWarningBanner.tsx
9421
- import { jsx as jsx37 } from "react/jsx-runtime";
9476
+ import { jsx as jsx38 } from "react/jsx-runtime";
9422
9477
  var SESSION_WARNING_THRESHOLD_SECS = 60;
9423
9478
  function SessionWarningBanner({ remaining }) {
9424
9479
  if (remaining === null || remaining <= 0 || remaining > SESSION_WARNING_THRESHOLD_SECS)
9425
9480
  return null;
9426
- return /* @__PURE__ */ jsx37("div", {
9481
+ return /* @__PURE__ */ jsx38("div", {
9427
9482
  "data-testid": "session-warning-banner",
9428
9483
  role: "alert",
9429
9484
  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",
@@ -9432,7 +9487,7 @@ function SessionWarningBanner({ remaining }) {
9432
9487
  }
9433
9488
 
9434
9489
  // src/components/Sidebar.tsx
9435
- import { jsx as jsx38, jsxs as jsxs31, Fragment as Fragment4 } from "react/jsx-runtime";
9490
+ import { jsx as jsx39, jsxs as jsxs32, Fragment as Fragment4 } from "react/jsx-runtime";
9436
9491
  var PANEL_GAP_PX = 12;
9437
9492
  var PANEL_VIEWPORT_MARGIN_PX = 24;
9438
9493
  var PANEL_MAX_HEIGHT_PX = 460;
@@ -9542,17 +9597,17 @@ function Sidebar({
9542
9597
  document.body.style.transition = "";
9543
9598
  };
9544
9599
  }, [isSidebar, isPanelOpen, position]);
9545
- return /* @__PURE__ */ jsxs31("div", {
9600
+ return /* @__PURE__ */ jsxs32("div", {
9546
9601
  ref: internalCtx?.panelRef,
9547
9602
  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 && (popsDown ? isLeftAligned ? "skippr:origin-top-left" : "skippr:origin-top-right" : isLeftAligned ? "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", followsPanel && "skippr:select-none", 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"),
9548
9603
  style: { width: isPanelOpen ? SIDEBAR_WIDTH : undefined, ...floatingStyle },
9549
9604
  children: [
9550
- !hideHeader && /* @__PURE__ */ jsx38(ChatHeader, {
9605
+ !hideHeader && /* @__PURE__ */ jsx39(ChatHeader, {
9551
9606
  wasDraggedRef,
9552
9607
  draggable: followsPanel,
9553
9608
  headerRef
9554
9609
  }),
9555
- authFailed ? /* @__PURE__ */ jsx38(AuthError, {}) : isAuthenticated && hasResolvedModules ? /* @__PURE__ */ jsx38(AuthenticatedContent, {
9610
+ authFailed ? /* @__PURE__ */ jsx39(AuthError, {}) : isAuthenticated && hasResolvedModules ? /* @__PURE__ */ jsx39(AuthenticatedContent, {
9556
9611
  isConnected,
9557
9612
  isPaused,
9558
9613
  isPausing,
@@ -9568,14 +9623,14 @@ function Sidebar({
9568
9623
  talkLabel: startSessionLabel,
9569
9624
  talkDisabled,
9570
9625
  showTalk: !isFloating
9571
- }) : usesHostAuth || isValidating || isAuthenticated ? /* @__PURE__ */ jsx38("div", {
9626
+ }) : usesHostAuth || isValidating || isAuthenticated ? /* @__PURE__ */ jsx39("div", {
9572
9627
  className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
9573
- children: /* @__PURE__ */ jsx38(LoadingDots, {
9628
+ children: /* @__PURE__ */ jsx39(LoadingDots, {
9574
9629
  label: "Loading..."
9575
9630
  })
9576
- }) : /* @__PURE__ */ jsx38("div", {
9631
+ }) : /* @__PURE__ */ jsx39("div", {
9577
9632
  "data-skippr-no-drag": "",
9578
- children: /* @__PURE__ */ jsx38(LoginFlow, {
9633
+ children: /* @__PURE__ */ jsx39(LoginFlow, {
9579
9634
  requestOtp,
9580
9635
  verifyOtp,
9581
9636
  error: authError,
@@ -9604,20 +9659,20 @@ function AuthenticatedContent({
9604
9659
  }) {
9605
9660
  const inSession = isConnected || isStarting || isPaused || isPausing;
9606
9661
  const effectiveTab = showAgenda ? activeTab : "chat";
9607
- return /* @__PURE__ */ jsxs31(Fragment4, {
9662
+ return /* @__PURE__ */ jsxs32(Fragment4, {
9608
9663
  children: [
9609
- isConnected && /* @__PURE__ */ jsx38(ConnectedBanner, {}),
9610
- /* @__PURE__ */ jsx38("div", {
9664
+ isConnected && /* @__PURE__ */ jsx39(ConnectedBanner, {}),
9665
+ /* @__PURE__ */ jsx39("div", {
9611
9666
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
9612
- children: isDisconnecting ? /* @__PURE__ */ jsx38("div", {
9667
+ children: isDisconnecting ? /* @__PURE__ */ jsx39("div", {
9613
9668
  className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
9614
- children: /* @__PURE__ */ jsx38(LoadingDots, {
9669
+ children: /* @__PURE__ */ jsx39(LoadingDots, {
9615
9670
  label: "Ending session..."
9616
9671
  })
9617
- }) : inSession ? /* @__PURE__ */ jsx38(ConnectedBody, {
9672
+ }) : inSession ? /* @__PURE__ */ jsx39(ConnectedBody, {
9618
9673
  activeTab: effectiveTab,
9619
9674
  autoFocusChat
9620
- }) : /* @__PURE__ */ jsx38(IdleHistory, {
9675
+ }) : /* @__PURE__ */ jsx39(IdleHistory, {
9621
9676
  activeTab: effectiveTab,
9622
9677
  history: idleHistory,
9623
9678
  onTalk,
@@ -9627,36 +9682,24 @@ function AuthenticatedContent({
9627
9682
  error
9628
9683
  })
9629
9684
  }),
9630
- !hideControls && /* @__PURE__ */ jsx38("div", {
9685
+ !hideControls && /* @__PURE__ */ jsx39("div", {
9631
9686
  "data-skippr-no-drag": "",
9632
9687
  className: "skippr:shrink-0 skippr:border-t skippr:border-border",
9633
- children: /* @__PURE__ */ jsx38("div", {
9688
+ children: /* @__PURE__ */ jsx39("div", {
9634
9689
  className: "skippr:flex skippr:items-center skippr:justify-center skippr:px-4 skippr:pt-1 skippr:pb-0.5 skippr:text-[10px] skippr:text-muted-foreground",
9635
- children: /* @__PURE__ */ jsxs31("a", {
9690
+ children: /* @__PURE__ */ jsxs32("a", {
9636
9691
  href: ATTRIBUTION_URL,
9637
9692
  target: "_blank",
9638
9693
  rel: "noopener noreferrer",
9639
9694
  className: `${FOCUS_RING2} skippr:flex skippr:w-fit skippr:items-center skippr:gap-1 skippr:rounded-[4px] skippr:transition-colors skippr:hover:text-foreground`,
9640
9695
  children: [
9641
- /* @__PURE__ */ jsxs31("svg", {
9642
- viewBox: "21 21 109 109",
9643
- className: "skippr:size-3",
9644
- fill: "none",
9645
- "aria-hidden": "true",
9646
- children: [
9647
- /* @__PURE__ */ jsx38("path", {
9648
- 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",
9649
- fill: "currentColor"
9650
- }),
9651
- /* @__PURE__ */ jsx38("path", {
9652
- 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",
9653
- className: "skippr:fill-brand"
9654
- })
9655
- ]
9696
+ /* @__PURE__ */ jsx39(LogoMark, {
9697
+ decorative: true,
9698
+ className: "skippr:size-3"
9656
9699
  }),
9657
9700
  ATTRIBUTION_PREFIX,
9658
9701
  " ",
9659
- /* @__PURE__ */ jsx38("span", {
9702
+ /* @__PURE__ */ jsx39("span", {
9660
9703
  className: "skippr:font-medium skippr:text-foreground skippr:underline skippr:underline-offset-2",
9661
9704
  children: ATTRIBUTION_BRAND
9662
9705
  })
@@ -9664,10 +9707,10 @@ function AuthenticatedContent({
9664
9707
  })
9665
9708
  })
9666
9709
  }),
9667
- /* @__PURE__ */ jsx38("div", {
9710
+ /* @__PURE__ */ jsx39("div", {
9668
9711
  "data-skippr-no-drag": "",
9669
9712
  className: `skippr:shrink-0 skippr:px-2${hideControls ? " skippr:pb-4 skippr:border-t skippr:border-border skippr:pt-1" : " skippr:pb-1"}`,
9670
- children: /* @__PURE__ */ jsx38(ConsentNotice, {
9713
+ children: /* @__PURE__ */ jsx39(ConsentNotice, {
9671
9714
  leadIn: "By continuing",
9672
9715
  determiner: "the",
9673
9716
  className: "skippr:whitespace-nowrap skippr:text-[10px]"
@@ -9677,17 +9720,17 @@ function AuthenticatedContent({
9677
9720
  });
9678
9721
  }
9679
9722
  function AuthError() {
9680
- return /* @__PURE__ */ jsxs31("div", {
9723
+ return /* @__PURE__ */ jsxs32("div", {
9681
9724
  className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:justify-center skippr:px-6 skippr:py-4 skippr:text-center",
9682
9725
  children: [
9683
- /* @__PURE__ */ jsx38(CircleAlert, {
9726
+ /* @__PURE__ */ jsx39(CircleAlert, {
9684
9727
  className: "skippr:mb-3 skippr:size-7 skippr:text-destructive"
9685
9728
  }),
9686
- /* @__PURE__ */ jsx38("p", {
9729
+ /* @__PURE__ */ jsx39("p", {
9687
9730
  className: "skippr:text-sm skippr:font-medium skippr:text-foreground",
9688
9731
  children: "We couldn't verify your session"
9689
9732
  }),
9690
- /* @__PURE__ */ jsx38("p", {
9733
+ /* @__PURE__ */ jsx39("p", {
9691
9734
  className: "skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",
9692
9735
  children: "Please contact administrator."
9693
9736
  })
@@ -9696,7 +9739,7 @@ function AuthError() {
9696
9739
  }
9697
9740
  function ConnectedBanner() {
9698
9741
  const remaining = useSessionRemaining();
9699
- return /* @__PURE__ */ jsx38(SessionWarningBanner, {
9742
+ return /* @__PURE__ */ jsx39(SessionWarningBanner, {
9700
9743
  remaining
9701
9744
  });
9702
9745
  }
@@ -9710,45 +9753,45 @@ function IdleHistory({
9710
9753
  error
9711
9754
  }) {
9712
9755
  if (history2.isLoading) {
9713
- return /* @__PURE__ */ jsx38("div", {
9756
+ return /* @__PURE__ */ jsx39("div", {
9714
9757
  className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
9715
- children: /* @__PURE__ */ jsx38(LoadingDots, {
9758
+ children: /* @__PURE__ */ jsx39(LoadingDots, {
9716
9759
  label: "Loading conversation..."
9717
9760
  })
9718
9761
  });
9719
9762
  }
9720
- return /* @__PURE__ */ jsxs31("div", {
9763
+ return /* @__PURE__ */ jsxs32("div", {
9721
9764
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:animate-skippr-tab-fade",
9722
9765
  children: [
9723
- activeTab === "agenda" ? /* @__PURE__ */ jsx38("div", {
9766
+ activeTab === "agenda" ? /* @__PURE__ */ jsx39("div", {
9724
9767
  "data-skippr-no-drag": "",
9725
9768
  className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto",
9726
- children: /* @__PURE__ */ jsx38(SessionAgenda, {
9769
+ children: /* @__PURE__ */ jsx39(SessionAgenda, {
9727
9770
  phases: history2.phases,
9728
9771
  hasStarted: history2.phases.length > 0
9729
9772
  })
9730
- }) : /* @__PURE__ */ jsx38(MessageList, {
9773
+ }) : /* @__PURE__ */ jsx39(MessageList, {
9731
9774
  messages: history2.messages,
9732
9775
  isStreaming: false,
9733
9776
  readOnly: true
9734
9777
  }),
9735
- (showTalk || error) && /* @__PURE__ */ jsxs31("div", {
9778
+ (showTalk || error) && /* @__PURE__ */ jsxs32("div", {
9736
9779
  "data-skippr-no-drag": "",
9737
9780
  className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
9738
9781
  children: [
9739
- showTalk && /* @__PURE__ */ jsxs31("button", {
9782
+ showTalk && /* @__PURE__ */ jsxs32("button", {
9740
9783
  type: "button",
9741
9784
  onClick: onTalk,
9742
9785
  disabled: talkDisabled,
9743
9786
  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",
9744
9787
  children: [
9745
- /* @__PURE__ */ jsx38(Mic, {
9788
+ /* @__PURE__ */ jsx39(Mic, {
9746
9789
  className: "skippr:size-4"
9747
9790
  }),
9748
9791
  talkLabel
9749
9792
  ]
9750
9793
  }),
9751
- error && /* @__PURE__ */ jsx38("p", {
9794
+ error && /* @__PURE__ */ jsx39("p", {
9752
9795
  role: "alert",
9753
9796
  className: cn("skippr:text-center skippr:text-xs skippr:text-destructive", showTalk && "skippr:mt-2"),
9754
9797
  children: error
@@ -9769,18 +9812,18 @@ function ConnectedBody({
9769
9812
  const { agentControls, isPaused } = useLiveAgent();
9770
9813
  const { isHeld } = useSessionHoldContext();
9771
9814
  if (activeTab === "agenda") {
9772
- return /* @__PURE__ */ jsx38("div", {
9815
+ return /* @__PURE__ */ jsx39("div", {
9773
9816
  "data-skippr-no-drag": "",
9774
9817
  className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto skippr:animate-skippr-tab-fade",
9775
- children: /* @__PURE__ */ jsx38(SessionAgenda, {
9818
+ children: /* @__PURE__ */ jsx39(SessionAgenda, {
9776
9819
  phases,
9777
9820
  hasStarted: allMessages.length > 0 || agentState === "speaking"
9778
9821
  })
9779
9822
  }, "agenda");
9780
9823
  }
9781
- return /* @__PURE__ */ jsx38("div", {
9824
+ return /* @__PURE__ */ jsx39("div", {
9782
9825
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:animate-skippr-tab-fade",
9783
- children: /* @__PURE__ */ jsx38(MessageList, {
9826
+ children: /* @__PURE__ */ jsx39(MessageList, {
9784
9827
  messages: allMessages,
9785
9828
  isStreaming: agentState === "speaking",
9786
9829
  sendChatMessage,
@@ -9797,9 +9840,9 @@ function ConnectedBody({
9797
9840
  import { useContext as useContext19 } from "react";
9798
9841
 
9799
9842
  // src/components/Logo.tsx
9800
- import { jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
9843
+ import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
9801
9844
  function Logo({ className, decorative }) {
9802
- return /* @__PURE__ */ jsxs32("svg", {
9845
+ return /* @__PURE__ */ jsxs33("svg", {
9803
9846
  width: "1em",
9804
9847
  height: "1em",
9805
9848
  viewBox: "0 0 200 200",
@@ -9810,20 +9853,20 @@ function Logo({ className, decorative }) {
9810
9853
  "aria-hidden": decorative || undefined,
9811
9854
  className,
9812
9855
  children: [
9813
- /* @__PURE__ */ jsx39("rect", {
9856
+ /* @__PURE__ */ jsx40("rect", {
9814
9857
  width: "200",
9815
9858
  height: "200",
9816
9859
  rx: "40",
9817
9860
  fill: "#2D2D3F"
9818
9861
  }),
9819
- /* @__PURE__ */ jsxs32("g", {
9862
+ /* @__PURE__ */ jsxs33("g", {
9820
9863
  transform: "translate(100 100) scale(0.8) translate(-100 -100)",
9821
9864
  children: [
9822
- /* @__PURE__ */ jsx39("path", {
9865
+ /* @__PURE__ */ jsx40("path", {
9823
9866
  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",
9824
9867
  fill: "white"
9825
9868
  }),
9826
- /* @__PURE__ */ jsx39("path", {
9869
+ /* @__PURE__ */ jsx40("path", {
9827
9870
  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",
9828
9871
  className: "skippr:fill-brand"
9829
9872
  })
@@ -9834,7 +9877,7 @@ function Logo({ className, decorative }) {
9834
9877
  }
9835
9878
 
9836
9879
  // src/components/SidebarTrigger.tsx
9837
- import { jsx as jsx40 } from "react/jsx-runtime";
9880
+ import { jsx as jsx41 } from "react/jsx-runtime";
9838
9881
  function SidebarTrigger() {
9839
9882
  const {
9840
9883
  isPanelOpen,
@@ -9854,27 +9897,27 @@ function SidebarTrigger() {
9854
9897
  if (isMinimized || isConnected || isStarting || isPausing)
9855
9898
  return null;
9856
9899
  const handleClick = isPanelOpen && minimizable ? minimizePanel : togglePanel;
9857
- return /* @__PURE__ */ jsx40("button", {
9900
+ return /* @__PURE__ */ jsx41("button", {
9858
9901
  type: "button",
9859
9902
  onClick: handleClick,
9860
9903
  title: isPanelOpen ? "Close chat" : "Open chat",
9861
9904
  "aria-label": isPanelOpen ? "Close chat" : "Open chat",
9862
9905
  style: { bottom: triggerBottomPx(launcherBottomPx, popsDown) },
9863
9906
  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"),
9864
- children: isPanelOpen ? /* @__PURE__ */ jsx40(ChevronDown, {
9907
+ children: isPanelOpen ? /* @__PURE__ */ jsx41(ChevronDown, {
9865
9908
  className: "skippr:size-5"
9866
- }) : logoUrl ? /* @__PURE__ */ jsx40("img", {
9909
+ }) : logoUrl ? /* @__PURE__ */ jsx41("img", {
9867
9910
  src: logoUrl,
9868
9911
  alt: "",
9869
9912
  className: "skippr:size-12 skippr:object-cover"
9870
- }) : /* @__PURE__ */ jsx40(Logo, {
9913
+ }) : /* @__PURE__ */ jsx41(Logo, {
9871
9914
  className: "skippr:size-12"
9872
9915
  })
9873
9916
  });
9874
9917
  }
9875
9918
 
9876
9919
  // src/components/VoiceBar.tsx
9877
- import { useCallback as useCallback32, useContext as useContext24, useState as useState38 } from "react";
9920
+ import { useCallback as useCallback31, useContext as useContext24, useState as useState37 } from "react";
9878
9921
 
9879
9922
  // src/hooks/useBarNotifications.ts
9880
9923
  import { useContext as useContext21 } from "react";
@@ -9938,37 +9981,15 @@ function useBarNotifications() {
9938
9981
  }
9939
9982
 
9940
9983
  // src/components/VoiceBarFrame.tsx
9941
- import { useIsSpeaking, useLocalParticipant as useLocalParticipant13 } from "@livekit/components-react/hooks";
9942
- import { useCallback as useCallback30, useContext as useContext23, useEffect as useEffect46, useRef as useRef39, useState as useState35 } from "react";
9943
-
9944
- // src/hooks/useHighlightControl.ts
9945
- import { useLocalParticipant as useLocalParticipant12 } from "@livekit/components-react/hooks";
9946
- import { useCallback as useCallback27, useEffect as useEffect37, useState as useState28 } from "react";
9947
- var textEncoder7 = new TextEncoder;
9948
- function useHighlightControl() {
9949
- const { localParticipant } = useLocalParticipant12();
9950
- const [active, setActive] = useState28(isHighlightActive);
9951
- useEffect37(() => subscribeHighlightActive(setActive), []);
9952
- const requestClear = useCallback27(async () => {
9953
- clearHighlight();
9954
- try {
9955
- await localParticipant.publishData(textEncoder7.encode(JSON.stringify({ type: "dismiss" })), {
9956
- reliable: true,
9957
- topic: HIGHLIGHT_TOPIC
9958
- });
9959
- } catch (error) {
9960
- console.error("Failed to send highlight dismiss:", error);
9961
- }
9962
- }, [localParticipant]);
9963
- return { highlightActive: active, clearHighlight: requestClear };
9964
- }
9984
+ import { useIsSpeaking, useLocalParticipant as useLocalParticipant12 } from "@livekit/components-react/hooks";
9985
+ import { useCallback as useCallback29, useContext as useContext23, useEffect as useEffect45, useRef as useRef39, useState as useState34 } from "react";
9965
9986
 
9966
9987
  // src/hooks/useKeyboardStop.ts
9967
- import { useEffect as useEffect38, useRef as useRef33 } from "react";
9988
+ import { useEffect as useEffect37, useRef as useRef33 } from "react";
9968
9989
  function useKeyboardStop({ enabled, onStop }) {
9969
9990
  const handler = useRef33(onStop);
9970
9991
  handler.current = onStop;
9971
- useEffect38(() => {
9992
+ useEffect37(() => {
9972
9993
  if (!enabled)
9973
9994
  return;
9974
9995
  const onKeyDown = (event) => {
@@ -9985,18 +10006,18 @@ function useKeyboardStop({ enabled, onStop }) {
9985
10006
  }
9986
10007
 
9987
10008
  // src/hooks/useSessionTimer.ts
9988
- import { useEffect as useEffect40, useState as useState30 } from "react";
10009
+ import { useEffect as useEffect39, useState as useState29 } from "react";
9989
10010
 
9990
10011
  // src/hooks/useElapsedSeconds.ts
9991
- import { useEffect as useEffect39, useRef as useRef34, useState as useState29 } from "react";
10012
+ import { useEffect as useEffect38, useRef as useRef34, useState as useState28 } from "react";
9992
10013
  function useElapsedSeconds(isRunning, resetSignal) {
9993
- const [elapsed, setElapsed] = useState29(0);
10014
+ const [elapsed, setElapsed] = useState28(0);
9994
10015
  const accumulatedSecondsRef = useRef34(0);
9995
- useEffect39(() => {
10016
+ useEffect38(() => {
9996
10017
  accumulatedSecondsRef.current = 0;
9997
10018
  setElapsed(0);
9998
10019
  }, [resetSignal]);
9999
- useEffect39(() => {
10020
+ useEffect38(() => {
10000
10021
  if (!isRunning)
10001
10022
  return;
10002
10023
  const resumedAt = Date.now();
@@ -10021,8 +10042,8 @@ function useSessionTimer(isRunning, resetSignal) {
10021
10042
  const active = isRunning && remaining !== null;
10022
10043
  const warning = active && remaining !== null && remaining <= SESSION_TIMER_WARNING_S;
10023
10044
  const revealCycle = !active ? null : warning ? "warning" : "normal";
10024
- const [revealed, setRevealed] = useState30(false);
10025
- useEffect40(() => {
10045
+ const [revealed, setRevealed] = useState29(false);
10046
+ useEffect39(() => {
10026
10047
  if (!revealCycle) {
10027
10048
  setRevealed(false);
10028
10049
  return;
@@ -10050,7 +10071,7 @@ function useSessionTimer(isRunning, resetSignal) {
10050
10071
  }
10051
10072
 
10052
10073
  // src/hooks/useVoiceBarDrag.ts
10053
- import { useEffect as useEffect41, useRef as useRef35 } from "react";
10074
+ import { useEffect as useEffect40, useRef as useRef35 } from "react";
10054
10075
  import { flushSync as flushSync2 } from "react-dom";
10055
10076
  var DRAG_THRESHOLD_PX2 = 5;
10056
10077
  function useVoiceBarDrag(containerRef, onDrop, followRefs, reportDragging) {
@@ -10061,7 +10082,7 @@ function useVoiceBarDrag(containerRef, onDrop, followRefs, reportDragging) {
10061
10082
  followTargetsRef.current = followRefs;
10062
10083
  const reportDraggingRef = useRef35(reportDragging);
10063
10084
  reportDraggingRef.current = reportDragging;
10064
- useEffect41(() => {
10085
+ useEffect40(() => {
10065
10086
  const el = containerRef.current;
10066
10087
  if (!el)
10067
10088
  return;
@@ -10211,8 +10232,8 @@ function useVoiceBarDrag(containerRef, onDrop, followRefs, reportDragging) {
10211
10232
  }
10212
10233
 
10213
10234
  // src/components/VoiceBarChatLine.tsx
10214
- import { useCallback as useCallback28, useContext as useContext22, useEffect as useEffect42, useRef as useRef36, useState as useState31 } from "react";
10215
- import { jsx as jsx41, jsxs as jsxs33 } from "react/jsx-runtime";
10235
+ import { useCallback as useCallback27, useContext as useContext22, useEffect as useEffect41, useRef as useRef36, useState as useState30 } from "react";
10236
+ import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
10216
10237
  var IDLE_HIDE_MS = 6000;
10217
10238
  function VoiceBarChatLine({
10218
10239
  popsDown,
@@ -10223,19 +10244,19 @@ function VoiceBarChatLine({
10223
10244
  const { sendChatMessage, isSendingChat } = useChatMessages();
10224
10245
  const ctx = useContext22(LiveAgentContext);
10225
10246
  const reportChatActivity = ctx?.reportChatActivity;
10226
- const [localDraft, setLocalDraft] = useState31("");
10247
+ const [localDraft, setLocalDraft] = useState30("");
10227
10248
  const text = ctx?.chatDraft ?? localDraft;
10228
10249
  const setText = ctx?.setChatDraft ?? setLocalDraft;
10229
10250
  const inputRef = useRef36(null);
10230
10251
  const idleTimerRef = useRef36(null);
10231
10252
  const onCloseRef = useRef36(onClose);
10232
10253
  onCloseRef.current = onClose;
10233
- const armIdle = useCallback28(() => {
10254
+ const armIdle = useCallback27(() => {
10234
10255
  if (idleTimerRef.current)
10235
10256
  clearTimeout(idleTimerRef.current);
10236
10257
  idleTimerRef.current = setTimeout(() => onCloseRef.current(), IDLE_HIDE_MS);
10237
10258
  }, []);
10238
- useEffect42(() => {
10259
+ useEffect41(() => {
10239
10260
  inputRef.current?.focus();
10240
10261
  armIdle();
10241
10262
  return () => {
@@ -10261,12 +10282,12 @@ function VoiceBarChatLine({
10261
10282
  width: 255,
10262
10283
  ...popsDown ? { top: "calc(100% + 12px)" } : { bottom: "calc(100% + 12px)" }
10263
10284
  };
10264
- return /* @__PURE__ */ jsxs33("div", {
10285
+ return /* @__PURE__ */ jsxs34("div", {
10265
10286
  style: embedded ? undefined : style,
10266
10287
  onPointerDown: (event) => event.stopPropagation(),
10267
10288
  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]"),
10268
10289
  children: [
10269
- /* @__PURE__ */ jsx41("input", {
10290
+ /* @__PURE__ */ jsx42("input", {
10270
10291
  ref: inputRef,
10271
10292
  value: text,
10272
10293
  onChange: (event) => {
@@ -10284,7 +10305,7 @@ function VoiceBarChatLine({
10284
10305
  "aria-label": "Message",
10285
10306
  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]"
10286
10307
  }),
10287
- /* @__PURE__ */ jsx41("button", {
10308
+ /* @__PURE__ */ jsx42("button", {
10288
10309
  type: "button",
10289
10310
  onClick: submit,
10290
10311
  disabled: !sendReady,
@@ -10294,7 +10315,7 @@ function VoiceBarChatLine({
10294
10315
  },
10295
10316
  "aria-label": "Send",
10296
10317
  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",
10297
- children: /* @__PURE__ */ jsx41(Send, {
10318
+ children: /* @__PURE__ */ jsx42(Send, {
10298
10319
  className: "skippr:size-[15px]",
10299
10320
  strokeWidth: 2
10300
10321
  })
@@ -10304,78 +10325,78 @@ function VoiceBarChatLine({
10304
10325
  }
10305
10326
 
10306
10327
  // src/components/VoiceBarLinkCard.tsx
10307
- import { useCallback as useCallback29, useEffect as useEffect43, useRef as useRef37, useState as useState32 } from "react";
10308
- import { jsx as jsx42, jsxs as jsxs34 } from "react/jsx-runtime";
10328
+ import { useCallback as useCallback28, useEffect as useEffect42, useRef as useRef37, useState as useState31 } from "react";
10329
+ import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
10309
10330
  var COPIED_RESET_MS2 = 2000;
10310
10331
  var DISMISS_AFTER_COPY_MS2 = 3000;
10311
10332
  function VoiceBarLinkCard({ card, onDismiss }) {
10312
- const [copied, setCopied] = useState32(false);
10333
+ const [copied, setCopied] = useState31(false);
10313
10334
  const dismissTimerRef = useRef37(null);
10314
- useEffect43(() => {
10335
+ useEffect42(() => {
10315
10336
  if (!copied)
10316
10337
  return;
10317
10338
  const timer = setTimeout(() => setCopied(false), COPIED_RESET_MS2);
10318
10339
  return () => clearTimeout(timer);
10319
10340
  }, [copied]);
10320
- useEffect43(() => {
10341
+ useEffect42(() => {
10321
10342
  return () => {
10322
10343
  if (dismissTimerRef.current)
10323
10344
  clearTimeout(dismissTimerRef.current);
10324
10345
  };
10325
10346
  }, []);
10326
- const handleCopy = useCallback29(async () => {
10347
+ const handleCopy = useCallback28(async () => {
10327
10348
  const ok = await copyToClipboard(card.url);
10328
10349
  if (!ok)
10329
10350
  return;
10330
10351
  setCopied(true);
10331
10352
  dismissTimerRef.current = setTimeout(onDismiss, DISMISS_AFTER_COPY_MS2);
10332
10353
  }, [card.url, onDismiss]);
10333
- return /* @__PURE__ */ jsxs34("div", {
10354
+ return /* @__PURE__ */ jsxs35("div", {
10334
10355
  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)]",
10335
10356
  children: [
10336
- /* @__PURE__ */ jsx42("button", {
10357
+ /* @__PURE__ */ jsx43("button", {
10337
10358
  type: "button",
10338
10359
  onClick: onDismiss,
10339
10360
  "aria-label": "Dismiss link",
10340
10361
  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]",
10341
- children: /* @__PURE__ */ jsx42(X, {
10362
+ children: /* @__PURE__ */ jsx43(X, {
10342
10363
  className: "skippr:size-[12px]",
10343
10364
  strokeWidth: 2.5
10344
10365
  })
10345
10366
  }),
10346
- /* @__PURE__ */ jsxs34("div", {
10367
+ /* @__PURE__ */ jsxs35("div", {
10347
10368
  className: "skippr:px-[12px] skippr:pb-[10px] skippr:pt-[10px]",
10348
10369
  children: [
10349
- /* @__PURE__ */ jsx42("p", {
10370
+ /* @__PURE__ */ jsx43("p", {
10350
10371
  className: "skippr:mr-[22px] skippr:truncate skippr:text-[10px] skippr:text-[#8b877f]",
10351
10372
  children: card.url
10352
10373
  }),
10353
- /* @__PURE__ */ jsxs34("div", {
10374
+ /* @__PURE__ */ jsxs35("div", {
10354
10375
  className: "skippr:mt-[9px] skippr:flex skippr:gap-[8px]",
10355
10376
  children: [
10356
- /* @__PURE__ */ jsxs34("a", {
10377
+ /* @__PURE__ */ jsxs35("a", {
10357
10378
  href: card.url,
10358
10379
  target: "_blank",
10359
10380
  rel: "noopener noreferrer",
10360
10381
  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]",
10361
10382
  children: [
10362
- /* @__PURE__ */ jsx42(ExternalLink, {
10383
+ /* @__PURE__ */ jsx43(ExternalLink, {
10363
10384
  className: "skippr:size-[11px]",
10364
10385
  strokeWidth: 2.5
10365
10386
  }),
10366
10387
  "open"
10367
10388
  ]
10368
10389
  }),
10369
- /* @__PURE__ */ jsxs34("button", {
10390
+ /* @__PURE__ */ jsxs35("button", {
10370
10391
  type: "button",
10371
10392
  onClick: handleCopy,
10372
10393
  "aria-label": "Copy link",
10373
10394
  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]",
10374
10395
  children: [
10375
- copied ? /* @__PURE__ */ jsx42(Check, {
10396
+ copied ? /* @__PURE__ */ jsx43(Check, {
10376
10397
  className: "skippr:size-[11px]",
10377
10398
  strokeWidth: 3
10378
- }) : /* @__PURE__ */ jsx42(Copy, {
10399
+ }) : /* @__PURE__ */ jsx43(Copy, {
10379
10400
  className: "skippr:size-[11px]",
10380
10401
  strokeWidth: 2.5
10381
10402
  }),
@@ -10391,13 +10412,13 @@ function VoiceBarLinkCard({ card, onDismiss }) {
10391
10412
  }
10392
10413
 
10393
10414
  // src/components/VoiceBarNotification.tsx
10394
- import { useEffect as useEffect44, useRef as useRef38, useState as useState33 } from "react";
10395
- import { jsx as jsx43, jsxs as jsxs35 } from "react/jsx-runtime";
10415
+ import { useEffect as useEffect43, useRef as useRef38, useState as useState32 } from "react";
10416
+ import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime";
10396
10417
  function VoiceBarNotification({ notifications, pos, onDismiss }) {
10397
- const [index2, setIndex] = useState33(0);
10398
- const [paused, setPaused] = useState33(false);
10418
+ const [index2, setIndex] = useState32(0);
10419
+ const [paused, setPaused] = useState32(false);
10399
10420
  const cardRef = useRef38(null);
10400
- useEffect44(() => {
10421
+ useEffect43(() => {
10401
10422
  const el = cardRef.current;
10402
10423
  if (!el)
10403
10424
  return;
@@ -10410,7 +10431,7 @@ function VoiceBarNotification({ notifications, pos, onDismiss }) {
10410
10431
  el.removeEventListener("mouseleave", leave);
10411
10432
  };
10412
10433
  }, []);
10413
- useEffect44(() => {
10434
+ useEffect43(() => {
10414
10435
  if (paused)
10415
10436
  return;
10416
10437
  const rotate = setInterval(() => setIndex((current) => (current + 1) % notifications.length), TIP_ROTATE_MS);
@@ -10437,21 +10458,21 @@ function VoiceBarNotification({ notifications, pos, onDismiss }) {
10437
10458
  zIndex: 6,
10438
10459
  ...popsDown ? { top: "calc(100% + 10px)" } : { bottom: "calc(100% + 10px)" }
10439
10460
  };
10440
- return /* @__PURE__ */ jsx43("div", {
10461
+ return /* @__PURE__ */ jsx44("div", {
10441
10462
  style: wrapperStyle,
10442
10463
  "data-skippr-no-drag": "",
10443
- children: /* @__PURE__ */ jsxs35("div", {
10464
+ children: /* @__PURE__ */ jsxs36("div", {
10444
10465
  ref: cardRef,
10445
10466
  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)]",
10446
10467
  children: [
10447
- /* @__PURE__ */ jsx43("span", {
10468
+ /* @__PURE__ */ jsx44("span", {
10448
10469
  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]",
10449
- children: /* @__PURE__ */ jsx43("span", {
10470
+ children: /* @__PURE__ */ jsx44("span", {
10450
10471
  className: "skippr:line-clamp-2",
10451
10472
  children: notification.message
10452
10473
  })
10453
10474
  }),
10454
- /* @__PURE__ */ jsx43("button", {
10475
+ /* @__PURE__ */ jsx44("button", {
10455
10476
  type: "button",
10456
10477
  onClick: () => {
10457
10478
  notification.activate();
@@ -10460,7 +10481,7 @@ function VoiceBarNotification({ notifications, pos, onDismiss }) {
10460
10481
  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]",
10461
10482
  children: "start"
10462
10483
  }),
10463
- hasMultiple && /* @__PURE__ */ jsxs35("button", {
10484
+ hasMultiple && /* @__PURE__ */ jsxs36("button", {
10464
10485
  type: "button",
10465
10486
  onClick: () => setIndex((current) => (current + 1) % notifications.length),
10466
10487
  "aria-label": "Next",
@@ -10470,7 +10491,7 @@ function VoiceBarNotification({ notifications, pos, onDismiss }) {
10470
10491
  safeIndex + 1,
10471
10492
  "/",
10472
10493
  notifications.length,
10473
- /* @__PURE__ */ jsx43(ChevronRight, {
10494
+ /* @__PURE__ */ jsx44(ChevronRight, {
10474
10495
  className: "skippr:size-[11px]",
10475
10496
  strokeWidth: 2.5
10476
10497
  })
@@ -10482,14 +10503,14 @@ function VoiceBarNotification({ notifications, pos, onDismiss }) {
10482
10503
  }
10483
10504
 
10484
10505
  // src/components/VoiceBarPlanCard.tsx
10485
- import { useEffect as useEffect45, useState as useState34 } from "react";
10486
- import { jsx as jsx44, jsxs as jsxs36 } from "react/jsx-runtime";
10506
+ import { useEffect as useEffect44, useState as useState33 } from "react";
10507
+ import { jsx as jsx45, jsxs as jsxs37 } from "react/jsx-runtime";
10487
10508
  var APPROVING_RESET_MS2 = 8000;
10488
10509
  function StepIndicator({ step }) {
10489
10510
  if (step.status === "done") {
10490
- return /* @__PURE__ */ jsx44("span", {
10511
+ return /* @__PURE__ */ jsx45("span", {
10491
10512
  className: "skippr:flex skippr:size-[16px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-brand",
10492
- children: /* @__PURE__ */ jsx44(Check, {
10513
+ children: /* @__PURE__ */ jsx45(Check, {
10493
10514
  className: "skippr:size-[10px]",
10494
10515
  style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
10495
10516
  strokeWidth: 3
@@ -10497,15 +10518,15 @@ function StepIndicator({ step }) {
10497
10518
  });
10498
10519
  }
10499
10520
  if (step.status === "failed") {
10500
- return /* @__PURE__ */ jsx44("span", {
10521
+ return /* @__PURE__ */ jsx45("span", {
10501
10522
  className: "skippr:flex skippr:size-[16px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-[#dc2626]",
10502
- children: /* @__PURE__ */ jsx44(X, {
10523
+ children: /* @__PURE__ */ jsx45(X, {
10503
10524
  className: "skippr:size-[10px] skippr:text-white",
10504
10525
  strokeWidth: 3
10505
10526
  })
10506
10527
  });
10507
10528
  }
10508
- return /* @__PURE__ */ jsx44("span", {
10529
+ return /* @__PURE__ */ jsx45("span", {
10509
10530
  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)]"),
10510
10531
  children: step.index + 1
10511
10532
  });
@@ -10517,8 +10538,8 @@ function VoiceBarPlanCard({
10517
10538
  embedded = false
10518
10539
  }) {
10519
10540
  const awaitingApproval = plan.state === "proposed";
10520
- const [isApproving, setIsApproving] = useState34(false);
10521
- const [lastPlanId, setLastPlanId] = useState34(plan.planId);
10541
+ const [isApproving, setIsApproving] = useState33(false);
10542
+ const [lastPlanId, setLastPlanId] = useState33(plan.planId);
10522
10543
  if (plan.planId !== lastPlanId) {
10523
10544
  setLastPlanId(plan.planId);
10524
10545
  setIsApproving(false);
@@ -10533,87 +10554,87 @@ function VoiceBarPlanCard({
10533
10554
  const cancel = () => {
10534
10555
  sendChatMessage(CANCEL_MESSAGE).catch((e) => console.warn("[Skippr] plan reply failed", e));
10535
10556
  };
10536
- useEffect45(() => {
10557
+ useEffect44(() => {
10537
10558
  if (!isApproving)
10538
10559
  return;
10539
10560
  const timer = setTimeout(() => setIsApproving(false), APPROVING_RESET_MS2);
10540
10561
  return () => clearTimeout(timer);
10541
10562
  }, [isApproving]);
10542
- useEffect45(() => {
10563
+ useEffect44(() => {
10543
10564
  if (plan.state !== "completed")
10544
10565
  return;
10545
10566
  const timer = setTimeout(onDismiss, COMPLETED_CARD_VISIBLE_MS);
10546
10567
  return () => clearTimeout(timer);
10547
10568
  }, [plan.state, onDismiss]);
10548
- return /* @__PURE__ */ jsxs36("div", {
10569
+ return /* @__PURE__ */ jsxs37("div", {
10549
10570
  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)]"),
10550
10571
  children: [
10551
- /* @__PURE__ */ jsxs36("div", {
10572
+ /* @__PURE__ */ jsxs37("div", {
10552
10573
  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]",
10553
10574
  children: [
10554
- /* @__PURE__ */ jsx44("span", {
10575
+ /* @__PURE__ */ jsx45("span", {
10555
10576
  className: "skippr:text-[11px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#2D2D3F]",
10556
10577
  children: "Plan"
10557
10578
  }),
10558
- /* @__PURE__ */ jsx44("button", {
10579
+ /* @__PURE__ */ jsx45("button", {
10559
10580
  type: "button",
10560
10581
  onClick: onDismiss,
10561
10582
  "aria-label": "Dismiss plan",
10562
10583
  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]",
10563
- children: /* @__PURE__ */ jsx44(X, {
10584
+ children: /* @__PURE__ */ jsx45(X, {
10564
10585
  className: "skippr:size-[12px]",
10565
10586
  strokeWidth: 2.5
10566
10587
  })
10567
10588
  })
10568
10589
  ]
10569
10590
  }),
10570
- /* @__PURE__ */ jsxs36("div", {
10591
+ /* @__PURE__ */ jsxs37("div", {
10571
10592
  className: "skippr:px-[12px] skippr:pb-[10px] skippr:pt-[8px]",
10572
10593
  children: [
10573
- /* @__PURE__ */ jsx44("p", {
10594
+ /* @__PURE__ */ jsx45("p", {
10574
10595
  className: "skippr:text-[11.5px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#2D2D3F]",
10575
10596
  children: "Here's my plan"
10576
10597
  }),
10577
- awaitingApproval && /* @__PURE__ */ jsxs36("p", {
10598
+ awaitingApproval && /* @__PURE__ */ jsxs37("p", {
10578
10599
  className: "skippr:mt-[1px] skippr:text-[10px] skippr:text-[#8b877f]",
10579
10600
  children: [
10580
10601
  plan.steps.length,
10581
10602
  " steps · review and approve to run"
10582
10603
  ]
10583
10604
  }),
10584
- /* @__PURE__ */ jsx44("div", {
10605
+ /* @__PURE__ */ jsx45("div", {
10585
10606
  className: "skippr:mt-[8px] skippr:max-h-[132px] skippr:space-y-[6px] skippr:overflow-y-auto skippr:overscroll-contain",
10586
- children: plan.steps.map((step) => /* @__PURE__ */ jsxs36("div", {
10607
+ children: plan.steps.map((step) => /* @__PURE__ */ jsxs37("div", {
10587
10608
  className: "skippr:flex skippr:items-center skippr:gap-[7px]",
10588
10609
  children: [
10589
- /* @__PURE__ */ jsx44(StepIndicator, {
10610
+ /* @__PURE__ */ jsx45(StepIndicator, {
10590
10611
  step
10591
10612
  }),
10592
- /* @__PURE__ */ jsx44("p", {
10613
+ /* @__PURE__ */ jsx45("p", {
10593
10614
  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]"),
10594
10615
  children: step.label
10595
10616
  })
10596
10617
  ]
10597
10618
  }, step.index))
10598
10619
  }),
10599
- /* @__PURE__ */ jsx44("div", {
10620
+ /* @__PURE__ */ jsx45("div", {
10600
10621
  className: "skippr:mt-[9px]",
10601
- children: awaitingApproval ? /* @__PURE__ */ jsxs36("div", {
10622
+ children: awaitingApproval ? /* @__PURE__ */ jsxs37("div", {
10602
10623
  className: "skippr:flex skippr:gap-[8px]",
10603
10624
  children: [
10604
- /* @__PURE__ */ jsxs36("button", {
10625
+ /* @__PURE__ */ jsxs37("button", {
10605
10626
  type: "button",
10606
10627
  disabled: isApproving,
10607
10628
  onClick: approve,
10608
10629
  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]",
10609
10630
  children: [
10610
- isApproving && /* @__PURE__ */ jsx44("span", {
10631
+ isApproving && /* @__PURE__ */ jsx45("span", {
10611
10632
  className: "skippr:size-[10px] skippr:shrink-0 skippr:animate-spin skippr:rounded-full skippr:border-2 skippr:border-white/30 skippr:border-t-white"
10612
10633
  }),
10613
10634
  isApproving ? "approving…" : "approve plan"
10614
10635
  ]
10615
10636
  }),
10616
- /* @__PURE__ */ jsx44("button", {
10637
+ /* @__PURE__ */ jsx45("button", {
10617
10638
  type: "button",
10618
10639
  disabled: isApproving,
10619
10640
  onClick: cancel,
@@ -10621,11 +10642,11 @@ function VoiceBarPlanCard({
10621
10642
  children: "cancel"
10622
10643
  })
10623
10644
  ]
10624
- }) : /* @__PURE__ */ jsxs36("span", {
10645
+ }) : /* @__PURE__ */ jsxs37("span", {
10625
10646
  style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
10626
10647
  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",
10627
10648
  children: [
10628
- /* @__PURE__ */ jsx44(Check, {
10649
+ /* @__PURE__ */ jsx45(Check, {
10629
10650
  className: "skippr:size-[11px]",
10630
10651
  strokeWidth: 3
10631
10652
  }),
@@ -10640,7 +10661,7 @@ function VoiceBarPlanCard({
10640
10661
  }
10641
10662
 
10642
10663
  // src/components/VoiceBarFrame.tsx
10643
- import { jsx as jsx45, jsxs as jsxs37, Fragment as Fragment5 } from "react/jsx-runtime";
10664
+ import { jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime";
10644
10665
  var AUTO_OFF_MOTES = [
10645
10666
  { left: "13%", delay: "0s", size: 4 },
10646
10667
  { left: "27%", delay: "0.4s", size: 3 },
@@ -10650,22 +10671,22 @@ var AUTO_OFF_MOTES = [
10650
10671
  { left: "79%", delay: "0.55s", size: 3 },
10651
10672
  { left: "90%", delay: "1.2s", size: 4 }
10652
10673
  ];
10653
- 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]";
10674
+ var EDGE_BUTTON = "skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-transparent skippr:text-[#2D2D3F] skippr:cursor-pointer skippr:transition-colors skippr:hover:bg-[#f2f0eb]";
10654
10675
  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";
10655
10676
  function LoadingAvatar({ logoUrl }) {
10656
- return /* @__PURE__ */ jsxs37("span", {
10677
+ return /* @__PURE__ */ jsxs38("span", {
10657
10678
  className: "skippr:relative skippr:size-[22px] skippr:shrink-0",
10658
10679
  children: [
10659
- /* @__PURE__ */ jsx45("span", {
10680
+ /* @__PURE__ */ jsx46("span", {
10660
10681
  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"
10661
10682
  }),
10662
- /* @__PURE__ */ jsx45("span", {
10683
+ /* @__PURE__ */ jsx46("span", {
10663
10684
  className: "skippr:absolute skippr:inset-0 skippr:overflow-hidden skippr:rounded-full",
10664
- children: logoUrl ? /* @__PURE__ */ jsx45("img", {
10685
+ children: logoUrl ? /* @__PURE__ */ jsx46("img", {
10665
10686
  src: logoUrl,
10666
10687
  alt: "",
10667
10688
  className: "skippr:block skippr:size-full skippr:object-cover"
10668
- }) : /* @__PURE__ */ jsx45("span", {
10689
+ }) : /* @__PURE__ */ jsx46("span", {
10669
10690
  className: "skippr:block skippr:size-full skippr:bg-launcher"
10670
10691
  })
10671
10692
  })
@@ -10673,39 +10694,21 @@ function LoadingAvatar({ logoUrl }) {
10673
10694
  });
10674
10695
  }
10675
10696
  function BusyRing({ tone }) {
10676
- return /* @__PURE__ */ jsx45("span", {
10697
+ return /* @__PURE__ */ jsx46("span", {
10677
10698
  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")
10678
10699
  });
10679
10700
  }
10680
- function useTransientHint(timeoutMs) {
10681
- const [visible, setVisible] = useState35(false);
10682
- const hideTimer = useRef39(null);
10683
- useEffect46(() => () => clearTimeout(hideTimer.current ?? undefined), []);
10684
- const show = () => {
10685
- setVisible(true);
10686
- clearTimeout(hideTimer.current ?? undefined);
10687
- hideTimer.current = setTimeout(() => setVisible(false), timeoutMs);
10688
- };
10689
- const hide = () => {
10690
- clearTimeout(hideTimer.current ?? undefined);
10691
- setVisible(false);
10692
- };
10693
- return {
10694
- visible,
10695
- hintProps: { onMouseEnter: show, onMouseLeave: hide, onFocus: show, onBlur: hide }
10696
- };
10697
- }
10698
10701
  function AgentDots() {
10699
- return /* @__PURE__ */ jsxs37("span", {
10702
+ return /* @__PURE__ */ jsxs38("span", {
10700
10703
  className: "skippr:flex skippr:items-center skippr:gap-[4px]",
10701
10704
  children: [
10702
- /* @__PURE__ */ jsx45("span", {
10705
+ /* @__PURE__ */ jsx46("span", {
10703
10706
  className: "skippr:size-[4px] skippr:rounded-full skippr:bg-current skippr:[animation:skippr-breathe_1.1s_ease-in-out_0s_infinite]"
10704
10707
  }),
10705
- /* @__PURE__ */ jsx45("span", {
10708
+ /* @__PURE__ */ jsx46("span", {
10706
10709
  className: "skippr:size-[4px] skippr:rounded-full skippr:bg-current skippr:[animation:skippr-breathe_1.1s_ease-in-out_0.18s_infinite]"
10707
10710
  }),
10708
- /* @__PURE__ */ jsx45("span", {
10711
+ /* @__PURE__ */ jsx46("span", {
10709
10712
  className: "skippr:size-[4px] skippr:rounded-full skippr:bg-current skippr:[animation:skippr-breathe_1.1s_ease-in-out_0.36s_infinite]"
10710
10713
  })
10711
10714
  ]
@@ -10713,9 +10716,9 @@ function AgentDots() {
10713
10716
  }
10714
10717
  function SpeakingBars() {
10715
10718
  const { barRefs } = useMicLevel(true);
10716
- return /* @__PURE__ */ jsx45("span", {
10719
+ return /* @__PURE__ */ jsx46("span", {
10717
10720
  className: "skippr:flex skippr:h-[22px] skippr:items-center skippr:gap-[3px]",
10718
- children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */ jsx45("span", {
10721
+ children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */ jsx46("span", {
10719
10722
  ref: (el) => {
10720
10723
  barRefs.current[index2] = el;
10721
10724
  },
@@ -10724,27 +10727,41 @@ function SpeakingBars() {
10724
10727
  }, index2))
10725
10728
  });
10726
10729
  }
10727
- var MIC_HALO_IDLE_PX = 30;
10728
- var MIC_HALO_GROWTH_PX = 12;
10729
- var MIC_HALO_NOISE_GATE = 0.15;
10730
- function MicLevelHalo({ enabled }) {
10731
- const { microphoneTrack } = useLocalParticipant13();
10732
- const { barRefs } = useAudioLevelBars(enabled ? microphoneTrack?.track?.mediaStreamTrack : undefined, {
10733
- barCount: 1,
10734
- idleHeightPx: MIC_HALO_IDLE_PX,
10735
- maxGrowthPx: MIC_HALO_GROWTH_PX,
10736
- noiseGate: MIC_HALO_NOISE_GATE
10737
- });
10738
- return /* @__PURE__ */ jsx45("span", {
10739
- ref: (el) => {
10740
- barRefs.current[0] = el;
10741
- },
10742
- style: { height: MIC_HALO_IDLE_PX },
10743
- className: "skippr:absolute skippr:left-1/2 skippr:top-1/2 skippr:-translate-x-1/2 skippr:-translate-y-1/2 skippr:aspect-square skippr:rounded-full skippr:bg-white/40 skippr:transition-[height] skippr:duration-75"
10730
+ var MIC_LEVEL_BARS = 3;
10731
+ var MIC_LEVEL_IDLE_PX = 3;
10732
+ var MIC_LEVEL_GROWTH_PX = 8;
10733
+ var MIC_LEVEL_NOISE_GATE = 0.15;
10734
+ function MicLevelGlyph({ muted }) {
10735
+ const { microphoneTrack } = useLocalParticipant12();
10736
+ const { barRefs, isTalking } = useAudioLevelBars(muted ? undefined : microphoneTrack?.track?.mediaStreamTrack, {
10737
+ barCount: MIC_LEVEL_BARS,
10738
+ idleHeightPx: MIC_LEVEL_IDLE_PX,
10739
+ maxGrowthPx: MIC_LEVEL_GROWTH_PX,
10740
+ noiseGate: MIC_LEVEL_NOISE_GATE
10741
+ });
10742
+ if (muted)
10743
+ return /* @__PURE__ */ jsx46(MicOff, {
10744
+ className: "skippr:size-[13px]",
10745
+ strokeWidth: 2
10746
+ });
10747
+ if (!isTalking)
10748
+ return /* @__PURE__ */ jsx46(Mic, {
10749
+ className: "skippr:size-[13px]",
10750
+ strokeWidth: 2
10751
+ });
10752
+ return /* @__PURE__ */ jsx46("span", {
10753
+ className: "skippr:flex skippr:h-[11px] skippr:w-[9px] skippr:items-center skippr:justify-between",
10754
+ children: Array.from({ length: MIC_LEVEL_BARS }).map((_, index2) => /* @__PURE__ */ jsx46("span", {
10755
+ ref: (el) => {
10756
+ barRefs.current[index2] = el;
10757
+ },
10758
+ className: "skippr:w-[2px] skippr:rounded-full skippr:bg-current skippr:transition-[height] skippr:duration-75",
10759
+ style: { height: MIC_LEVEL_IDLE_PX }
10760
+ }, index2))
10744
10761
  });
10745
10762
  }
10746
10763
  function ShortcutChip({ children }) {
10747
- return /* @__PURE__ */ jsx45("span", {
10764
+ return /* @__PURE__ */ jsx46("span", {
10748
10765
  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]",
10749
10766
  children
10750
10767
  });
@@ -10756,8 +10773,8 @@ function ShortcutHint({
10756
10773
  children
10757
10774
  }) {
10758
10775
  const ref = useRef39(null);
10759
- const [visible, setVisible] = useState35(false);
10760
- useEffect46(() => {
10776
+ const [visible, setVisible] = useState34(false);
10777
+ useEffect45(() => {
10761
10778
  if (!enabled)
10762
10779
  return;
10763
10780
  const el = ref.current;
@@ -10780,56 +10797,56 @@ function ShortcutHint({
10780
10797
  el.removeEventListener("mouseleave", leave);
10781
10798
  };
10782
10799
  }, [enabled, seenRef]);
10783
- return /* @__PURE__ */ jsxs37("div", {
10800
+ return /* @__PURE__ */ jsxs38("div", {
10784
10801
  ref,
10785
10802
  className: "skippr:relative skippr:flex skippr:min-w-[96px] skippr:flex-1",
10786
10803
  children: [
10787
- enabled && visible && !suppressed && /* @__PURE__ */ jsxs37("div", {
10804
+ enabled && visible && !suppressed && /* @__PURE__ */ jsxs38("div", {
10788
10805
  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]",
10789
10806
  children: [
10790
- /* @__PURE__ */ jsxs37("span", {
10807
+ /* @__PURE__ */ jsxs38("span", {
10791
10808
  className: "skippr:flex skippr:items-center skippr:gap-[3px]",
10792
10809
  children: [
10793
- /* @__PURE__ */ jsx45(ShortcutChip, {
10810
+ /* @__PURE__ */ jsx46(ShortcutChip, {
10794
10811
  children: "Ctrl"
10795
10812
  }),
10796
- /* @__PURE__ */ jsx45("span", {
10813
+ /* @__PURE__ */ jsx46("span", {
10797
10814
  className: "skippr:text-[9px] skippr:text-[#c9c5bd]",
10798
10815
  children: "+"
10799
10816
  }),
10800
- /* @__PURE__ */ jsx45(ShortcutChip, {
10817
+ /* @__PURE__ */ jsx46(ShortcutChip, {
10801
10818
  children: "Space"
10802
10819
  })
10803
10820
  ]
10804
10821
  }),
10805
- /* @__PURE__ */ jsx45("span", {
10822
+ /* @__PURE__ */ jsx46("span", {
10806
10823
  className: "skippr:text-[10.5px] skippr:font-medium skippr:text-[#8b877f]",
10807
10824
  children: "talk"
10808
10825
  }),
10809
- /* @__PURE__ */ jsx45("span", {
10826
+ /* @__PURE__ */ jsx46("span", {
10810
10827
  className: "skippr:text-[10px] skippr:text-[#cbc7bf]",
10811
10828
  children: "·"
10812
10829
  }),
10813
- /* @__PURE__ */ jsxs37("span", {
10830
+ /* @__PURE__ */ jsxs38("span", {
10814
10831
  className: "skippr:flex skippr:items-center skippr:gap-[3px]",
10815
10832
  children: [
10816
- /* @__PURE__ */ jsx45(ShortcutChip, {
10833
+ /* @__PURE__ */ jsx46(ShortcutChip, {
10817
10834
  children: "Ctrl"
10818
10835
  }),
10819
- /* @__PURE__ */ jsx45("span", {
10836
+ /* @__PURE__ */ jsx46("span", {
10820
10837
  className: "skippr:text-[9px] skippr:text-[#c9c5bd]",
10821
10838
  children: "+"
10822
10839
  }),
10823
- /* @__PURE__ */ jsx45(ShortcutChip, {
10840
+ /* @__PURE__ */ jsx46(ShortcutChip, {
10824
10841
  children: "X"
10825
10842
  })
10826
10843
  ]
10827
10844
  }),
10828
- /* @__PURE__ */ jsx45("span", {
10845
+ /* @__PURE__ */ jsx46("span", {
10829
10846
  className: "skippr:text-[10.5px] skippr:font-medium skippr:text-[#8b877f]",
10830
- children: "stop"
10847
+ children: "end"
10831
10848
  }),
10832
- /* @__PURE__ */ jsx45("span", {
10849
+ /* @__PURE__ */ jsx46("span", {
10833
10850
  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"
10834
10851
  })
10835
10852
  ]
@@ -10875,48 +10892,46 @@ function VoiceBarFrame({
10875
10892
  setAutoStartAfterLogin
10876
10893
  } = ctx;
10877
10894
  const needsLogin = !usesHostAuth && !isAuthenticated;
10878
- const [loginOpen, setLoginOpen] = useState35(false);
10879
- useEffect46(() => {
10895
+ const [loginOpen, setLoginOpen] = useState34(false);
10896
+ useEffect45(() => {
10880
10897
  if (!needsLogin)
10881
10898
  setLoginOpen(false);
10882
10899
  }, [needsLogin]);
10883
- const [bannerOpen, setBannerOpen] = useState35(false);
10900
+ const [bannerOpen, setBannerOpen] = useState34(false);
10884
10901
  const hasNotifications = notifications.length > 0;
10885
10902
  const notifAccent = notifications[0]?.accentColor;
10886
- const closeBanner = useCallback30(() => setBannerOpen(false), []);
10903
+ const closeBanner = useCallback29(() => setBannerOpen(false), []);
10887
10904
  const containerRef = useRef39(null);
10888
- const setContainerRefs = useCallback30((node) => {
10905
+ const setContainerRefs = useCallback29((node) => {
10889
10906
  containerRef.current = node;
10890
10907
  voiceBarRef.current = node;
10891
10908
  }, [voiceBarRef]);
10892
10909
  const dragFollowers = isPanelOpen ? [panelRef] : null;
10893
10910
  const { wasDraggedRef } = useVoiceBarDrag(containerRef, onDrop, dragFollowers, setDragging);
10894
10911
  const { isMuted, toggleMute } = useMediaControls();
10895
- const { localParticipant } = useLocalParticipant13();
10912
+ const { localParticipant } = useLocalParticipant12();
10896
10913
  const isUserSpeaking = useIsSpeaking(localParticipant);
10897
10914
  const { state } = useAgentVoiceState();
10898
10915
  const { isCapturingSpeech, toggle: toggleTapToTalk, start, commit } = useVoiceTurnContext();
10899
10916
  const holdPushToTalk = usePointerHold(start, commit);
10900
- const { isHeld, countdown: holdCountdown, toggle: togglePause } = useSessionHoldContext();
10917
+ const { isHeld, toggle: togglePause } = useSessionHoldContext();
10901
10918
  const plan = usePlanUpdates();
10902
10919
  const linkCard = useLinkCard();
10903
10920
  const { sendChatMessage } = useChatMessages();
10904
- const [dismissedFloatingPlanId, setDismissedFloatingPlanId] = useState35(null);
10905
- const [dismissedBlockPlanId, setDismissedBlockPlanId] = useState35(null);
10906
- const [dismissedLinkCardId, setDismissedLinkCardId] = useState35(null);
10921
+ const [dismissedFloatingPlanId, setDismissedFloatingPlanId] = useState34(null);
10922
+ const [dismissedBlockPlanId, setDismissedBlockPlanId] = useState34(null);
10923
+ const [dismissedLinkCardId, setDismissedLinkCardId] = useState34(null);
10907
10924
  const micMode = agentControls?.micMode;
10908
10925
  const pushOrTap = isRequestResponseMicMode(micMode);
10909
10926
  const isPushToTalk = micMode === MIC_MODE.PushToTalk;
10910
10927
  const agentActive = state === "speaking" || state === "thinking";
10911
- const { actionsActive, stopActions: stopActions2 } = useActionControl();
10912
- const { highlightActive: highlightActive2, clearHighlight: clearHighlight2 } = useHighlightControl();
10913
- const { visible: stopHintVisible, hintProps: stopHintProps } = useTransientHint(1000);
10928
+ const { actionsActive } = useActionControl();
10914
10929
  const showActionControl = isConnected && captureMode === CAPTURE_MODE.Auto && actionsActive;
10915
10930
  const chatSurface = agentControls?.chat ?? DEFAULT_CHAT_SURFACE;
10916
10931
  const isRoomChat = chatSurface === CHAT_SURFACE.Room;
10917
- const [chatLineOpen, setChatLineOpen] = useState35(false);
10918
- const [chatLineMounted, setChatLineMounted] = useState35(false);
10919
- const [chatLineClosing, setChatLineClosing] = useState35(false);
10932
+ const [chatLineOpen, setChatLineOpen] = useState34(false);
10933
+ const [chatLineMounted, setChatLineMounted] = useState34(false);
10934
+ const [chatLineClosing, setChatLineClosing] = useState34(false);
10920
10935
  const chatOpen = isRoomChat ? isPanelOpen : chatLineOpen;
10921
10936
  const lineBlockOpen = !isRoomChat && chatLineMounted;
10922
10937
  const toggleChat = () => {
@@ -10926,7 +10941,7 @@ function VoiceBarFrame({
10926
10941
  setChatLineOpen((open) => !open);
10927
10942
  }
10928
10943
  };
10929
- useEffect46(() => {
10944
+ useEffect45(() => {
10930
10945
  if (chatLineOpen) {
10931
10946
  setChatLineMounted(true);
10932
10947
  setChatLineClosing(false);
@@ -10952,6 +10967,8 @@ function VoiceBarFrame({
10952
10967
  const isLoading = isStarting || isExchanging;
10953
10968
  const canStart = isAuthenticated && (!!defaultAgentId || !!pendingStart);
10954
10969
  const showClose = canFold || sessionLive;
10970
+ const showLivePill = !isLoading && isConnected && !textMode && !pushOrTap;
10971
+ const barWidthClass = !showLivePill ? "skippr:w-[255px]" : isHeld ? "skippr:w-[120px]" : "skippr:w-[156px]";
10955
10972
  const logoUrl = appearance?.logoUrl ?? null;
10956
10973
  const ifNotDragged = (action) => () => {
10957
10974
  if (wasDraggedRef.current)
@@ -10973,17 +10990,17 @@ function VoiceBarFrame({
10973
10990
  const requestLabel = agentStateLabel ?? (isCapturingSpeech ? "listening…" : idleRequestLabel);
10974
10991
  const livePillBg = agentActive && !isHeld ? "var(--skippr-brand-active)" : "var(--skippr-brand, #2bc0ae)";
10975
10992
  const glow = isConnected && !isHeld && agentActive;
10976
- const [autoOffClosing, setAutoOffClosing] = useState35(false);
10993
+ const [autoOffClosing, setAutoOffClosing] = useState34(false);
10977
10994
  const { reportActivity } = useIdleAutoOff({
10978
10995
  enabled: isConnected && !autoOffClosing,
10979
10996
  active: agentActive || isCapturingSpeech || isUserSpeaking,
10980
10997
  onExpire: () => setAutoOffClosing(true)
10981
10998
  });
10982
- useEffect46(() => {
10999
+ useEffect45(() => {
10983
11000
  if (chatActivityAt)
10984
11001
  reportActivity();
10985
11002
  }, [chatActivityAt, reportActivity]);
10986
- useEffect46(() => {
11003
+ useEffect45(() => {
10987
11004
  if (!autoOffClosing)
10988
11005
  return;
10989
11006
  if (!isConnected) {
@@ -10999,12 +11016,12 @@ function VoiceBarFrame({
10999
11016
  const floatingPlanActive = planEnabled && !isRoomChat && !lineBlockOpen && activePlan.planId !== dismissedFloatingPlanId;
11000
11017
  const planInLineBlock = planEnabled && lineBlockOpen && activePlan.planId !== dismissedBlockPlanId;
11001
11018
  const planCardActive = floatingPlanActive || planInLineBlock;
11002
- useEffect46(() => {
11019
+ useEffect45(() => {
11003
11020
  if (lineBlockOpen)
11004
11021
  setDismissedBlockPlanId(null);
11005
11022
  }, [lineBlockOpen]);
11006
- const [autoOpenedPlanId, setAutoOpenedPlanId] = useState35(null);
11007
- useEffect46(() => {
11023
+ const [autoOpenedPlanId, setAutoOpenedPlanId] = useState34(null);
11024
+ useEffect45(() => {
11008
11025
  if (!isRoomChat || !planEnabled || !activePlan)
11009
11026
  return;
11010
11027
  if (activePlan.planId === autoOpenedPlanId)
@@ -11017,15 +11034,12 @@ function VoiceBarFrame({
11017
11034
  const linkCardActive = !!visibleLinkCard && isConnected && !planCardActive && !(isRoomChat && chatOpen) && !isCapturingSpeech && !isHeld && !autoOffClosing;
11018
11035
  const bannerActive = hasNotifications && bannerOpen;
11019
11036
  const slotClaimed = chatOpen || bannerActive || lineBlockOpen;
11020
- const autoBase = !isLoading && isConnected && !textMode && !pushOrTap && !autoOffClosing;
11021
- const showHeldStrip = !slotClaimed && autoBase && isHeld;
11037
+ const autoBase = showLivePill && !autoOffClosing;
11022
11038
  const showLiveStrip = !slotClaimed && autoBase && !isHeld && !planCardActive && (state === "thinking" || showActionControl);
11023
- const showTimerStrip = !slotClaimed && !autoOffClosing && !isCapturingSpeech && !planCardActive && !showLiveStrip && !showHeldStrip && !!sessionTimer;
11039
+ const showTimerStrip = !slotClaimed && !autoOffClosing && !isCapturingSpeech && !planCardActive && !showLiveStrip && !isHeld && !!sessionTimer;
11024
11040
  const showAutoOffStrip = !slotClaimed && autoOffClosing;
11025
- const hintSuppressed = slotClaimed || isCapturingSpeech || planCardActive || showLiveStrip || showHeldStrip || showTimerStrip || showAutoOffStrip;
11041
+ const hintSuppressed = slotClaimed || isCapturingSpeech || planCardActive || showLiveStrip || isHeld || showTimerStrip || showAutoOffStrip;
11026
11042
  const liveStripLabel = showActionControl ? "working…" : "thinking…";
11027
- const heldMinutes = Math.floor(holdCountdown / 60);
11028
- const heldSeconds = String(holdCountdown % 60).padStart(2, "0");
11029
11043
  const popsDown = barPopsDown(pos);
11030
11044
  const isLeftAligned = barLeftAligned(pos);
11031
11045
  const stripStyle = {
@@ -11047,12 +11061,12 @@ function VoiceBarFrame({
11047
11061
  ...popsDown ? { top: "calc(100% + 12px)" } : { bottom: "calc(100% + 12px)" }
11048
11062
  };
11049
11063
  const pillEvaporate = autoOffClosing ? "skippr:[animation:skippr-evaporate_3.2s_ease-in_forwards] skippr:motion-reduce:animate-none" : "";
11050
- return /* @__PURE__ */ jsxs37("div", {
11064
+ return /* @__PURE__ */ jsxs38("div", {
11051
11065
  ref: setContainerRefs,
11052
11066
  style: barPosStyle(pos),
11053
- className: "skippr:fixed skippr:z-[9999] skippr:flex skippr:w-[255px] skippr:touch-none skippr:cursor-grab skippr:items-center",
11067
+ className: cn("skippr:fixed skippr:z-[9999] skippr:flex skippr:touch-none skippr:cursor-grab skippr:items-center", barWidthClass),
11054
11068
  children: [
11055
- glow && /* @__PURE__ */ jsx45("span", {
11069
+ glow && /* @__PURE__ */ jsx46("span", {
11056
11070
  "aria-hidden": true,
11057
11071
  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",
11058
11072
  style: {
@@ -11062,13 +11076,13 @@ function VoiceBarFrame({
11062
11076
  backgroundSize: "300% 100%"
11063
11077
  }
11064
11078
  }),
11065
- /* @__PURE__ */ jsx45("span", {
11079
+ /* @__PURE__ */ jsx46("span", {
11066
11080
  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)
11067
11081
  }),
11068
- autoOffClosing && /* @__PURE__ */ jsx45("span", {
11082
+ autoOffClosing && /* @__PURE__ */ jsx46("span", {
11069
11083
  "aria-hidden": true,
11070
11084
  className: "skippr:pointer-events-none skippr:absolute skippr:inset-0 skippr:z-[4] skippr:overflow-visible",
11071
- children: AUTO_OFF_MOTES.map((mote) => /* @__PURE__ */ jsx45("span", {
11085
+ children: AUTO_OFF_MOTES.map((mote) => /* @__PURE__ */ jsx46("span", {
11072
11086
  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",
11073
11087
  style: {
11074
11088
  left: mote.left,
@@ -11078,128 +11092,100 @@ function VoiceBarFrame({
11078
11092
  }
11079
11093
  }, mote.left))
11080
11094
  }),
11081
- showLiveStrip && /* @__PURE__ */ jsx45("div", {
11095
+ showLiveStrip && /* @__PURE__ */ jsx46("div", {
11082
11096
  style: stripStyle,
11083
11097
  className: "skippr:pointer-events-none skippr:z-[5]",
11084
- children: /* @__PURE__ */ jsxs37("div", {
11098
+ children: /* @__PURE__ */ jsxs38("div", {
11085
11099
  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]",
11086
11100
  children: [
11087
- /* @__PURE__ */ jsx45("span", {
11101
+ /* @__PURE__ */ jsx46("span", {
11088
11102
  style: { background: livePillBg },
11089
11103
  className: "skippr:size-[7px] skippr:shrink-0 skippr:rounded-full skippr:[animation:skippr-breathe_1.1s_ease-in-out_0s_infinite]"
11090
11104
  }),
11091
- /* @__PURE__ */ jsx45("span", {
11105
+ /* @__PURE__ */ jsx46("span", {
11092
11106
  className: "skippr:whitespace-nowrap skippr:text-[12px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#5a5650]",
11093
11107
  children: liveStripLabel
11094
11108
  })
11095
11109
  ]
11096
11110
  })
11097
11111
  }),
11098
- showHeldStrip && /* @__PURE__ */ jsx45("div", {
11099
- style: stripStyle,
11100
- className: "skippr:pointer-events-none skippr:z-[5]",
11101
- children: /* @__PURE__ */ jsxs37("div", {
11102
- role: "timer",
11103
- "aria-label": `Agent closes in ${holdCountdown} seconds`,
11104
- 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]",
11105
- children: [
11106
- /* @__PURE__ */ jsx45("span", {
11107
- className: "skippr:size-[7px] skippr:shrink-0 skippr:rounded-full skippr:bg-[#b9b4ab]"
11108
- }),
11109
- /* @__PURE__ */ jsxs37("span", {
11110
- className: "skippr:whitespace-nowrap skippr:text-[12px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#5a5650]",
11111
- children: [
11112
- "Agent closes in",
11113
- /* @__PURE__ */ jsxs37("span", {
11114
- className: "skippr:ml-1 skippr:tabular-nums",
11115
- children: [
11116
- heldMinutes,
11117
- ":",
11118
- heldSeconds
11119
- ]
11120
- })
11121
- ]
11122
- })
11123
- ]
11124
- })
11125
- }),
11126
- showTimerStrip && sessionTimer && /* @__PURE__ */ jsx45("div", {
11112
+ showTimerStrip && sessionTimer && /* @__PURE__ */ jsx46("div", {
11127
11113
  style: stripStyle,
11128
11114
  className: "skippr:pointer-events-none skippr:z-[5]",
11129
- children: /* @__PURE__ */ jsxs37("div", {
11115
+ children: /* @__PURE__ */ jsxs38("div", {
11130
11116
  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]",
11131
11117
  children: [
11132
- /* @__PURE__ */ jsx45("span", {
11118
+ /* @__PURE__ */ jsx46("span", {
11133
11119
  style: { background: sessionTimer.warning ? "#f59e0b" : "#b9b4ab" },
11134
11120
  className: "skippr:size-[7px] skippr:shrink-0 skippr:rounded-full"
11135
11121
  }),
11136
- /* @__PURE__ */ jsx45("span", {
11122
+ /* @__PURE__ */ jsx46("span", {
11137
11123
  className: cn("skippr:whitespace-nowrap skippr:text-[12px] skippr:font-semibold skippr:tracking-[-0.01em]", sessionTimer.warning ? "skippr:text-[#92400e]" : "skippr:text-[#5a5650]"),
11138
11124
  children: sessionTimer.label
11139
11125
  })
11140
11126
  ]
11141
11127
  })
11142
11128
  }),
11143
- showAutoOffStrip && /* @__PURE__ */ jsx45("div", {
11129
+ showAutoOffStrip && /* @__PURE__ */ jsx46("div", {
11144
11130
  role: "status",
11145
11131
  style: stripStyle,
11146
11132
  className: "skippr:pointer-events-none skippr:z-[6]",
11147
- children: /* @__PURE__ */ jsxs37("div", {
11133
+ children: /* @__PURE__ */ jsxs38("div", {
11148
11134
  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]",
11149
11135
  children: [
11150
- /* @__PURE__ */ jsx45("span", {
11136
+ /* @__PURE__ */ jsx46("span", {
11151
11137
  className: "skippr:size-[7px] skippr:shrink-0 skippr:rounded-full skippr:bg-[#b9b4ab] skippr:[animation:skippr-breathe_1.1s_ease-in-out_0s_infinite]"
11152
11138
  }),
11153
- /* @__PURE__ */ jsx45("span", {
11139
+ /* @__PURE__ */ jsx46("span", {
11154
11140
  className: "skippr:whitespace-nowrap skippr:text-[12px] skippr:font-semibold skippr:tracking-[-0.01em] skippr:text-[#5a5650]",
11155
11141
  children: "No activity — closing…"
11156
11142
  })
11157
11143
  ]
11158
11144
  })
11159
11145
  }),
11160
- floatingPlanActive && activePlan && /* @__PURE__ */ jsx45("div", {
11146
+ floatingPlanActive && activePlan && /* @__PURE__ */ jsx46("div", {
11161
11147
  style: planCardStyle,
11162
11148
  className: "skippr:z-[6]",
11163
11149
  "data-skippr-no-drag": "",
11164
- children: /* @__PURE__ */ jsx45(VoiceBarPlanCard, {
11150
+ children: /* @__PURE__ */ jsx46(VoiceBarPlanCard, {
11165
11151
  plan: activePlan,
11166
11152
  sendChatMessage,
11167
11153
  onDismiss: () => setDismissedFloatingPlanId(activePlan.planId)
11168
11154
  }, activePlan.planId)
11169
11155
  }),
11170
- linkCardActive && visibleLinkCard && /* @__PURE__ */ jsx45("div", {
11156
+ linkCardActive && visibleLinkCard && /* @__PURE__ */ jsx46("div", {
11171
11157
  style: planCardStyle,
11172
11158
  className: "skippr:z-[6]",
11173
11159
  "data-skippr-no-drag": "",
11174
- children: /* @__PURE__ */ jsx45(VoiceBarLinkCard, {
11160
+ children: /* @__PURE__ */ jsx46(VoiceBarLinkCard, {
11175
11161
  card: visibleLinkCard,
11176
11162
  onDismiss: () => setDismissedLinkCardId(visibleLinkCard.cardId)
11177
11163
  }, visibleLinkCard.cardId)
11178
11164
  }),
11179
- loginOpen && needsLogin && /* @__PURE__ */ jsx45("div", {
11165
+ loginOpen && needsLogin && /* @__PURE__ */ jsx46("div", {
11180
11166
  style: planCardStyle,
11181
11167
  className: "skippr:z-[6]",
11182
11168
  "data-skippr-no-drag": "",
11183
11169
  onPointerDown: (event) => event.stopPropagation(),
11184
- children: /* @__PURE__ */ jsx45(VoiceBarLoginCard, {
11170
+ children: /* @__PURE__ */ jsx46(VoiceBarLoginCard, {
11185
11171
  onDismiss: () => {
11186
11172
  setLoginOpen(false);
11187
11173
  setAutoStartAfterLogin(false);
11188
11174
  }
11189
11175
  })
11190
11176
  }),
11191
- !sessionLive && !needsLogin && !bannerActive && /* @__PURE__ */ jsx45("div", {
11177
+ !sessionLive && !needsLogin && !bannerActive && /* @__PURE__ */ jsx46("div", {
11192
11178
  style: planCardStyle,
11193
11179
  className: "skippr:z-[6]",
11194
11180
  "data-skippr-no-drag": "",
11195
- children: /* @__PURE__ */ jsx45("div", {
11181
+ children: /* @__PURE__ */ jsx46("div", {
11196
11182
  className: "skippr:w-[220px] skippr:rounded-[14px] skippr:border skippr:border-[rgba(45,45,63,0.08)] skippr:bg-white skippr:px-3 skippr:py-2 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)]",
11197
- children: /* @__PURE__ */ jsx45(ConsentNotice, {
11183
+ children: /* @__PURE__ */ jsx46(ConsentNotice, {
11198
11184
  leadIn: "By starting a session"
11199
11185
  })
11200
11186
  })
11201
11187
  }),
11202
- hasNotifications && !bannerOpen && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx45("button", {
11188
+ hasNotifications && !bannerOpen && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx46("button", {
11203
11189
  type: "button",
11204
11190
  onClick: ifNotDragged(() => setBannerOpen(true)),
11205
11191
  "aria-label": "Show notifications",
@@ -11209,61 +11195,61 @@ function VoiceBarFrame({
11209
11195
  },
11210
11196
  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"
11211
11197
  }),
11212
- bannerActive && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx45(VoiceBarNotification, {
11198
+ bannerActive && !chatOpen && !isCapturingSpeech && !planCardActive && /* @__PURE__ */ jsx46(VoiceBarNotification, {
11213
11199
  notifications,
11214
11200
  pos,
11215
11201
  onDismiss: closeBanner
11216
11202
  }),
11217
- /* @__PURE__ */ jsxs37("div", {
11203
+ /* @__PURE__ */ jsxs38("div", {
11218
11204
  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),
11219
11205
  children: [
11220
- showClose && /* @__PURE__ */ jsxs37("button", {
11206
+ showClose && /* @__PURE__ */ jsxs38("button", {
11221
11207
  type: "button",
11222
11208
  onClick: ifNotDragged(closeBar),
11223
11209
  disabled: isPausing || isLoading,
11224
11210
  "aria-label": sessionLive ? "End session" : "Close",
11225
- className: cn(EDGE_BUTTON, "skippr:relative skippr:size-[26px]", isLoading && "skippr:cursor-not-allowed skippr:opacity-40 skippr:hover:bg-transparent skippr:hover:text-[#b8b4ac]"),
11211
+ className: cn(EDGE_BUTTON, "skippr:relative skippr:size-[26px]", isLoading && "skippr:cursor-not-allowed skippr:opacity-40 skippr:hover:bg-transparent"),
11226
11212
  children: [
11227
- isPausing && /* @__PURE__ */ jsx45(BusyRing, {
11213
+ isPausing && /* @__PURE__ */ jsx46(BusyRing, {
11228
11214
  tone: "brand"
11229
11215
  }),
11230
- /* @__PURE__ */ jsx45(X, {
11231
- className: "skippr:size-[14px]",
11216
+ /* @__PURE__ */ jsx46(X, {
11217
+ className: "skippr:size-[20px]",
11232
11218
  strokeWidth: 2
11233
11219
  })
11234
11220
  ]
11235
11221
  }),
11236
- isLoading && /* @__PURE__ */ jsxs37("div", {
11222
+ isLoading && /* @__PURE__ */ jsxs38("div", {
11237
11223
  className: cn(PILL, "skippr:bg-[#F1EFEA] skippr:overflow-hidden", !isExchanging && "skippr:[animation:skippr-fade-in_0.25s_ease]"),
11238
11224
  children: [
11239
- /* @__PURE__ */ jsx45(LoadingAvatar, {
11225
+ /* @__PURE__ */ jsx46(LoadingAvatar, {
11240
11226
  logoUrl
11241
11227
  }),
11242
- /* @__PURE__ */ jsx45("span", {
11228
+ /* @__PURE__ */ jsx46("span", {
11243
11229
  className: "skippr:whitespace-nowrap skippr:text-[12.5px] skippr:font-semibold skippr:text-[#5a5650]",
11244
11230
  children: "Agent is loading"
11245
11231
  }),
11246
- /* @__PURE__ */ jsxs37("span", {
11232
+ /* @__PURE__ */ jsxs38("span", {
11247
11233
  className: "skippr:flex skippr:items-end skippr:gap-[3px]",
11248
11234
  children: [
11249
- /* @__PURE__ */ jsx45("span", {
11235
+ /* @__PURE__ */ jsx46("span", {
11250
11236
  className: "skippr:size-[3px] skippr:rounded-full skippr:bg-brand skippr:[animation:skippr-breathe_1.1s_ease-in-out_0s_infinite]"
11251
11237
  }),
11252
- /* @__PURE__ */ jsx45("span", {
11238
+ /* @__PURE__ */ jsx46("span", {
11253
11239
  className: "skippr:size-[3px] skippr:rounded-full skippr:bg-brand skippr:[animation:skippr-breathe_1.1s_ease-in-out_0.18s_infinite]"
11254
11240
  }),
11255
- /* @__PURE__ */ jsx45("span", {
11241
+ /* @__PURE__ */ jsx46("span", {
11256
11242
  className: "skippr:size-[3px] skippr:rounded-full skippr:bg-brand skippr:[animation:skippr-breathe_1.1s_ease-in-out_0.36s_infinite]"
11257
11243
  })
11258
11244
  ]
11259
11245
  })
11260
11246
  ]
11261
11247
  }),
11262
- !isLoading && isConnected && !textMode && pushOrTap && /* @__PURE__ */ jsx45(ShortcutHint, {
11248
+ !isLoading && isConnected && !textMode && pushOrTap && /* @__PURE__ */ jsx46(ShortcutHint, {
11263
11249
  enabled: isPushToTalk,
11264
11250
  seenRef: hintSeenRef,
11265
11251
  suppressed: hintSuppressed,
11266
- children: /* @__PURE__ */ jsxs37("button", {
11252
+ children: /* @__PURE__ */ jsxs38("button", {
11267
11253
  type: "button",
11268
11254
  "data-skippr-no-drag": "",
11269
11255
  style: {
@@ -11282,7 +11268,7 @@ function VoiceBarFrame({
11282
11268
  "aria-label": requestLabel,
11283
11269
  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"),
11284
11270
  children: [
11285
- agentActive ? /* @__PURE__ */ jsx45(AgentDots, {}) : isCapturingSpeech ? /* @__PURE__ */ jsx45(SpeakingBars, {}) : /* @__PURE__ */ jsx45(AudioLines, {
11271
+ agentActive ? /* @__PURE__ */ jsx46(AgentDots, {}) : isCapturingSpeech ? /* @__PURE__ */ jsx46(SpeakingBars, {}) : /* @__PURE__ */ jsx46(AudioLines, {
11286
11272
  className: "skippr:size-[17px]",
11287
11273
  strokeWidth: 2
11288
11274
  }),
@@ -11290,90 +11276,47 @@ function VoiceBarFrame({
11290
11276
  ]
11291
11277
  })
11292
11278
  }),
11293
- !isLoading && isConnected && !textMode && !pushOrTap && /* @__PURE__ */ jsxs37("div", {
11279
+ showLivePill && /* @__PURE__ */ jsxs38("div", {
11294
11280
  style: { background: livePillBg, color: "var(--skippr-brand-foreground, #2d2b3d)" },
11295
- className: cn(PILL, "skippr:gap-[9px] skippr:px-[8px]"),
11281
+ className: cn(PILL, "skippr:min-w-0 skippr:gap-[10px] skippr:px-[5px]"),
11296
11282
  children: [
11297
- /* @__PURE__ */ jsx45("button", {
11283
+ !isHeld && /* @__PURE__ */ jsx46("button", {
11284
+ type: "button",
11285
+ onClick: ifNotDragged(() => void toggleMute()),
11286
+ "aria-label": isMuted ? "Unmute" : "Mute",
11287
+ className: "skippr:flex skippr:size-[26px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-transparent skippr:opacity-85 skippr:cursor-pointer skippr:transition-[opacity,color] skippr:hover:opacity-100 skippr:hover:text-destructive",
11288
+ children: /* @__PURE__ */ jsx46(MicLevelGlyph, {
11289
+ muted: isMuted
11290
+ })
11291
+ }),
11292
+ /* @__PURE__ */ jsx46("button", {
11298
11293
  type: "button",
11299
11294
  onClick: ifNotDragged(togglePause),
11300
- "aria-label": isHeld ? "Resume" : "Pause",
11301
- 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",
11302
- children: isHeld ? /* @__PURE__ */ jsx45(Play, {
11295
+ "aria-label": isHeld ? "Resume" : "Stop",
11296
+ className: cn("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", !isHeld && "skippr:hover:text-destructive"),
11297
+ children: isHeld ? /* @__PURE__ */ jsx46(Play, {
11303
11298
  className: "skippr:size-[13px]",
11304
11299
  fill: "currentColor",
11305
11300
  strokeWidth: 0
11306
- }) : /* @__PURE__ */ jsx45(Pause, {
11307
- className: "skippr:size-[13px]",
11301
+ }) : /* @__PURE__ */ jsx46(Square, {
11302
+ className: "skippr:size-[12px]",
11308
11303
  fill: "currentColor",
11309
11304
  strokeWidth: 0
11310
11305
  })
11311
- }),
11312
- !isHeld && /* @__PURE__ */ jsxs37(Fragment5, {
11313
- children: [
11314
- /* @__PURE__ */ jsxs37("span", {
11315
- className: "skippr:relative skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center",
11316
- children: [
11317
- /* @__PURE__ */ jsx45(MicLevelHalo, {
11318
- enabled: !isMuted
11319
- }),
11320
- /* @__PURE__ */ jsx45("button", {
11321
- type: "button",
11322
- onClick: ifNotDragged(() => void toggleMute()),
11323
- style: { background: "#fff", color: "var(--skippr-brand-deep)" },
11324
- "aria-label": isMuted ? "Unmute" : "Mute",
11325
- 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]",
11326
- children: isMuted ? /* @__PURE__ */ jsx45(MicOff, {
11327
- className: "skippr:size-[15px]",
11328
- strokeWidth: 2
11329
- }) : /* @__PURE__ */ jsx45(Mic, {
11330
- className: "skippr:size-[15px]",
11331
- strokeWidth: 2
11332
- })
11333
- })
11334
- ]
11335
- }),
11336
- /* @__PURE__ */ jsxs37("span", {
11337
- className: "skippr:relative skippr:inline-flex",
11338
- children: [
11339
- /* @__PURE__ */ jsx45("button", {
11340
- type: "button",
11341
- onClick: ifNotDragged(() => {
11342
- stopActions2();
11343
- if (highlightActive2)
11344
- clearHighlight2();
11345
- }),
11346
- ...stopHintProps,
11347
- "aria-label": "Stop live action",
11348
- className: "skippr:flex skippr:size-[26px] skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-transparent skippr:transition-colors skippr:hover:bg-white/20",
11349
- children: /* @__PURE__ */ jsx45(Square, {
11350
- className: "skippr:size-[11px]",
11351
- fill: "currentColor",
11352
- strokeWidth: 0
11353
- })
11354
- }),
11355
- stopHintVisible && /* @__PURE__ */ jsx45("span", {
11356
- className: "skippr:pointer-events-none skippr:absolute skippr:bottom-full skippr:left-1/2 skippr:z-10 skippr:mb-1.5 skippr:-translate-x-1/2 skippr:whitespace-nowrap skippr:rounded skippr:bg-foreground skippr:px-1.5 skippr:py-0.5 skippr:text-[10px] skippr:font-medium skippr:text-background",
11357
- "aria-hidden": "true",
11358
- children: "Stop live action"
11359
- })
11360
- ]
11361
- })
11362
- ]
11363
11306
  })
11364
11307
  ]
11365
11308
  }),
11366
- !isLoading && isConnected && textMode && /* @__PURE__ */ jsxs37("div", {
11309
+ !isLoading && isConnected && textMode && /* @__PURE__ */ jsxs38("div", {
11367
11310
  className: cn(PILL, "skippr:gap-[7px] skippr:bg-[#F1EFEA] skippr:text-[#5a5650] skippr:[animation:skippr-fade-in_0.25s_ease]"),
11368
11311
  children: [
11369
- /* @__PURE__ */ jsx45(MessageSquare, {
11312
+ /* @__PURE__ */ jsx46(MessageSquare, {
11370
11313
  className: "skippr:size-[15px] skippr:text-[#8b877f]",
11371
11314
  strokeWidth: 2
11372
11315
  }),
11373
11316
  "Text mode"
11374
11317
  ]
11375
11318
  }),
11376
- !sessionLive && /* @__PURE__ */ jsxs37("button", {
11319
+ !sessionLive && /* @__PURE__ */ jsxs38("button", {
11377
11320
  type: "button",
11378
11321
  onClick: ifNotDragged(() => {
11379
11322
  if (canStart) {
@@ -11388,48 +11331,48 @@ function VoiceBarFrame({
11388
11331
  style: { color: "var(--skippr-brand-foreground, #2d2b3d)" },
11389
11332
  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"),
11390
11333
  children: [
11391
- /* @__PURE__ */ jsx45("span", {
11334
+ /* @__PURE__ */ jsx46("span", {
11392
11335
  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)]",
11393
- children: logoUrl ? /* @__PURE__ */ jsx45("img", {
11336
+ children: logoUrl ? /* @__PURE__ */ jsx46("img", {
11394
11337
  src: logoUrl,
11395
11338
  alt: "",
11396
11339
  className: "skippr:block skippr:size-full skippr:object-cover"
11397
- }) : /* @__PURE__ */ jsx45("span", {
11340
+ }) : /* @__PURE__ */ jsx46("span", {
11398
11341
  className: "skippr:block skippr:size-full skippr:bg-launcher"
11399
11342
  })
11400
11343
  }),
11401
11344
  "Talk to AI Agent"
11402
11345
  ]
11403
11346
  }),
11404
- (sessionLive || isRoomChat) && /* @__PURE__ */ jsx45("button", {
11347
+ (sessionLive || isRoomChat) && /* @__PURE__ */ jsx46("button", {
11405
11348
  type: "button",
11406
11349
  onClick: ifNotDragged(toggleChat),
11407
11350
  disabled: isLoading,
11408
11351
  "aria-label": "Open chat",
11409
- className: cn(EDGE_BUTTON, "skippr:size-[30px] skippr:text-[#8b877f]", isLoading && "skippr:cursor-not-allowed skippr:opacity-40 skippr:hover:bg-transparent skippr:hover:text-[#8b877f]"),
11410
- children: /* @__PURE__ */ jsx45(MessageSquare, {
11411
- className: "skippr:size-[15px]",
11352
+ className: cn(EDGE_BUTTON, "skippr:size-[30px]", isLoading && "skippr:cursor-not-allowed skippr:opacity-40 skippr:hover:bg-transparent"),
11353
+ children: /* @__PURE__ */ jsx46(MessageSquare, {
11354
+ className: "skippr:size-[18px]",
11412
11355
  strokeWidth: 2
11413
11356
  })
11414
11357
  })
11415
11358
  ]
11416
11359
  }),
11417
- lineBlockOpen && /* @__PURE__ */ jsxs37("div", {
11360
+ lineBlockOpen && /* @__PURE__ */ jsxs38("div", {
11418
11361
  style: chatBlockStyle,
11419
11362
  "data-skippr-no-drag": "",
11420
11363
  onPointerDown: (event) => event.stopPropagation(),
11421
11364
  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)]"),
11422
11365
  children: [
11423
- planInLineBlock && activePlan && /* @__PURE__ */ jsx45("div", {
11366
+ planInLineBlock && activePlan && /* @__PURE__ */ jsx46("div", {
11424
11367
  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)]",
11425
- children: /* @__PURE__ */ jsx45(VoiceBarPlanCard, {
11368
+ children: /* @__PURE__ */ jsx46(VoiceBarPlanCard, {
11426
11369
  embedded: true,
11427
11370
  plan: activePlan,
11428
11371
  sendChatMessage,
11429
11372
  onDismiss: () => setDismissedBlockPlanId(activePlan.planId)
11430
11373
  }, activePlan.planId)
11431
11374
  }),
11432
- /* @__PURE__ */ jsx45(VoiceBarChatLine, {
11375
+ /* @__PURE__ */ jsx46(VoiceBarChatLine, {
11433
11376
  embedded: true,
11434
11377
  popsDown,
11435
11378
  canSend: isConnected,
@@ -11442,21 +11385,21 @@ function VoiceBarFrame({
11442
11385
  }
11443
11386
 
11444
11387
  // src/components/VoiceBarLauncher.tsx
11445
- import { useCallback as useCallback31, useEffect as useEffect48, useRef as useRef41, useState as useState37 } from "react";
11388
+ import { useCallback as useCallback30, useEffect as useEffect47, useRef as useRef41, useState as useState36 } from "react";
11446
11389
 
11447
11390
  // src/components/LauncherNotification.tsx
11448
- import { useEffect as useEffect47, useRef as useRef40, useState as useState36 } from "react";
11449
- import { jsx as jsx46, jsxs as jsxs38 } from "react/jsx-runtime";
11391
+ import { useEffect as useEffect46, useRef as useRef40, useState as useState35 } from "react";
11392
+ import { jsx as jsx47, jsxs as jsxs39 } from "react/jsx-runtime";
11450
11393
  function LauncherNotification({
11451
11394
  notifications,
11452
11395
  dock,
11453
11396
  mode,
11454
11397
  onDismiss
11455
11398
  }) {
11456
- const [index2, setIndex] = useState36(0);
11457
- const [paused, setPaused] = useState36(false);
11399
+ const [index2, setIndex] = useState35(0);
11400
+ const [paused, setPaused] = useState35(false);
11458
11401
  const cardRef = useRef40(null);
11459
- useEffect47(() => {
11402
+ useEffect46(() => {
11460
11403
  const el = cardRef.current;
11461
11404
  if (!el)
11462
11405
  return;
@@ -11469,7 +11412,7 @@ function LauncherNotification({
11469
11412
  el.removeEventListener("mouseleave", leave);
11470
11413
  };
11471
11414
  }, []);
11472
- useEffect47(() => {
11415
+ useEffect46(() => {
11473
11416
  if (paused)
11474
11417
  return;
11475
11418
  const rotate = setInterval(() => setIndex((current) => (current + 1) % notifications.length), TIP_ROTATE_MS);
@@ -11498,21 +11441,21 @@ function LauncherNotification({
11498
11441
  ...dock.edge === "left" ? { left: 0 } : { right: 0 },
11499
11442
  bottom: "calc(100% + 8px)"
11500
11443
  };
11501
- return /* @__PURE__ */ jsx46("div", {
11444
+ return /* @__PURE__ */ jsx47("div", {
11502
11445
  style: wrapperStyle,
11503
11446
  "data-skippr-no-drag": "",
11504
- children: /* @__PURE__ */ jsxs38("div", {
11447
+ children: /* @__PURE__ */ jsxs39("div", {
11505
11448
  ref: cardRef,
11506
11449
  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)]",
11507
11450
  children: [
11508
- /* @__PURE__ */ jsx46("span", {
11451
+ /* @__PURE__ */ jsx47("span", {
11509
11452
  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]",
11510
- children: /* @__PURE__ */ jsx46("span", {
11453
+ children: /* @__PURE__ */ jsx47("span", {
11511
11454
  className: "skippr:line-clamp-2",
11512
11455
  children: notification.message
11513
11456
  })
11514
11457
  }),
11515
- /* @__PURE__ */ jsx46("button", {
11458
+ /* @__PURE__ */ jsx47("button", {
11516
11459
  type: "button",
11517
11460
  onClick: () => {
11518
11461
  notification.activate();
@@ -11521,18 +11464,18 @@ function LauncherNotification({
11521
11464
  "aria-label": "Start",
11522
11465
  title: "Start",
11523
11466
  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]",
11524
- children: /* @__PURE__ */ jsx46(Play, {
11467
+ children: /* @__PURE__ */ jsx47(Play, {
11525
11468
  className: "skippr:size-[8px] skippr:fill-current",
11526
11469
  strokeWidth: 2
11527
11470
  })
11528
11471
  }),
11529
- hasMultiple && /* @__PURE__ */ jsx46("button", {
11472
+ hasMultiple && /* @__PURE__ */ jsx47("button", {
11530
11473
  type: "button",
11531
11474
  onClick: () => setIndex((current) => (current + 1) % notifications.length),
11532
11475
  "aria-label": "Next",
11533
11476
  title: "Next",
11534
11477
  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]",
11535
- children: /* @__PURE__ */ jsx46(ChevronRight, {
11478
+ children: /* @__PURE__ */ jsx47(ChevronRight, {
11536
11479
  className: "skippr:size-[12px]",
11537
11480
  strokeWidth: 2.5
11538
11481
  })
@@ -11543,14 +11486,14 @@ function LauncherNotification({
11543
11486
  }
11544
11487
 
11545
11488
  // src/components/VoiceBarLauncher.tsx
11546
- import { jsx as jsx47, jsxs as jsxs39, Fragment as Fragment6 } from "react/jsx-runtime";
11489
+ import { jsx as jsx48, jsxs as jsxs40, Fragment as Fragment5 } from "react/jsx-runtime";
11547
11490
  function SkipprMark2() {
11548
- return /* @__PURE__ */ jsx47("svg", {
11491
+ return /* @__PURE__ */ jsx48("svg", {
11549
11492
  viewBox: "0 0 15.4044 18.4853",
11550
11493
  className: "skippr:h-[18px] skippr:w-[15px]",
11551
11494
  fill: "none",
11552
11495
  "aria-hidden": "true",
11553
- children: /* @__PURE__ */ jsx47("path", {
11496
+ children: /* @__PURE__ */ jsx48("path", {
11554
11497
  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",
11555
11498
  className: "skippr:fill-white"
11556
11499
  })
@@ -11629,7 +11572,7 @@ function LauncherChat({
11629
11572
  onClick
11630
11573
  }) {
11631
11574
  const vertical = isHorizontalEdge(edge);
11632
- return /* @__PURE__ */ jsxs39("div", {
11575
+ return /* @__PURE__ */ jsxs40("div", {
11633
11576
  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]),
11634
11577
  style: {
11635
11578
  width: vertical ? 46 : revealed ? 52 : 0,
@@ -11637,18 +11580,18 @@ function LauncherChat({
11637
11580
  opacity: revealed ? 1 : 0
11638
11581
  },
11639
11582
  children: [
11640
- /* @__PURE__ */ jsx47("button", {
11583
+ /* @__PURE__ */ jsx48("button", {
11641
11584
  type: "button",
11642
11585
  onClick,
11643
11586
  "aria-label": "Open chat",
11644
11587
  tabIndex: revealed ? 0 : -1,
11645
11588
  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",
11646
- children: /* @__PURE__ */ jsx47(MessageSquare, {
11589
+ children: /* @__PURE__ */ jsx48(MessageSquare, {
11647
11590
  className: "skippr:size-[18px] skippr:shrink-0",
11648
11591
  strokeWidth: 2
11649
11592
  })
11650
11593
  }),
11651
- /* @__PURE__ */ jsx47("span", {
11594
+ /* @__PURE__ */ jsx48("span", {
11652
11595
  className: cn("skippr:shrink-0 skippr:bg-foreground/10", vertical ? "skippr:h-px skippr:w-[22px]" : "skippr:h-[22px] skippr:w-px")
11653
11596
  })
11654
11597
  ]
@@ -11685,7 +11628,7 @@ function VoiceBarLauncher({
11685
11628
  }) {
11686
11629
  const containerRef = useRef41(null);
11687
11630
  const closeTimerRef = useRef41(null);
11688
- const onDropPos = useCallback31((pos) => {
11631
+ const onDropPos = useCallback30((pos) => {
11689
11632
  const el = containerRef.current;
11690
11633
  if (!el)
11691
11634
  return;
@@ -11694,16 +11637,16 @@ function VoiceBarLauncher({
11694
11637
  }, [onDrop]);
11695
11638
  const { wasDraggedRef } = useVoiceBarDrag(containerRef, onDropPos, null, setDragging);
11696
11639
  const horizontal = isHorizontalEdge(dock.edge);
11697
- const [cardOpen, setCardOpen] = useState37(false);
11698
- const [loginOpen, setLoginOpen] = useState37(false);
11699
- const [hovered, setHovered] = useState37(false);
11700
- useEffect48(() => {
11640
+ const [cardOpen, setCardOpen] = useState36(false);
11641
+ const [loginOpen, setLoginOpen] = useState36(false);
11642
+ const [hovered, setHovered] = useState36(false);
11643
+ useEffect47(() => {
11701
11644
  if (!needsLogin)
11702
11645
  setLoginOpen(false);
11703
11646
  }, [needsLogin]);
11704
11647
  const hasNotif = notifications.length > 0;
11705
11648
  const dotColor = notifications.find((item) => item.kind === NOTIFICATION_KIND.Module)?.accentColor ?? notifications[0]?.accentColor ?? NOTIF_ACCENT_COLOR;
11706
- useEffect48(() => {
11649
+ useEffect47(() => {
11707
11650
  const el = containerRef.current;
11708
11651
  if (!el)
11709
11652
  return;
@@ -11749,15 +11692,15 @@ function VoiceBarLauncher({
11749
11692
  }
11750
11693
  onChat?.();
11751
11694
  };
11752
- const closeLogin = useCallback31(() => {
11695
+ const closeLogin = useCallback30(() => {
11753
11696
  setLoginOpen(false);
11754
11697
  onLoginDismiss();
11755
11698
  }, [onLoginDismiss]);
11756
- const loginCard = loginOpen && needsLogin && /* @__PURE__ */ jsx47("div", {
11699
+ const loginCard = loginOpen && needsLogin && /* @__PURE__ */ jsx48("div", {
11757
11700
  style: loginCardWrapperStyle2(dock.edge),
11758
11701
  "data-skippr-no-drag": "",
11759
11702
  onPointerDown: (event) => event.stopPropagation(),
11760
- children: /* @__PURE__ */ jsx47(VoiceBarLoginCard, {
11703
+ children: /* @__PURE__ */ jsx48(VoiceBarLoginCard, {
11761
11704
  onDismiss: closeLogin
11762
11705
  })
11763
11706
  });
@@ -11767,53 +11710,53 @@ function VoiceBarLauncher({
11767
11710
  return;
11768
11711
  setCardOpen((open2) => !open2);
11769
11712
  };
11770
- const closeCard = useCallback31(() => setCardOpen(false), []);
11713
+ const closeCard = useCallback30(() => setCardOpen(false), []);
11771
11714
  if (mode === "strip") {
11772
11715
  const expanded = hovered && !!onChat;
11773
11716
  const length = expanded ? 84 : 40;
11774
11717
  const thickness = expanded ? 36 : 10;
11775
- return /* @__PURE__ */ jsxs39("div", {
11718
+ return /* @__PURE__ */ jsxs40("div", {
11776
11719
  ref: containerRef,
11777
11720
  style: dockStyleFlush(dock),
11778
11721
  className: "skippr:fixed skippr:z-[9999] skippr:touch-none skippr:cursor-grab",
11779
11722
  children: [
11780
- /* @__PURE__ */ jsx47("div", {
11723
+ /* @__PURE__ */ jsx48("div", {
11781
11724
  style: horizontal ? { width: length, height: thickness } : { width: thickness, height: length },
11782
11725
  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]),
11783
- children: expanded ? /* @__PURE__ */ jsxs39(Fragment6, {
11726
+ children: expanded ? /* @__PURE__ */ jsxs40(Fragment5, {
11784
11727
  children: [
11785
- /* @__PURE__ */ jsx47("button", {
11728
+ /* @__PURE__ */ jsx48("button", {
11786
11729
  type: "button",
11787
11730
  onClick: open,
11788
11731
  "aria-label": "Open Agent",
11789
11732
  className: STRIP_ICON_BUTTON,
11790
- children: /* @__PURE__ */ jsx47(Play, {
11733
+ children: /* @__PURE__ */ jsx48(Play, {
11791
11734
  className: "skippr:size-[13px] skippr:fill-current",
11792
11735
  strokeWidth: 2
11793
11736
  })
11794
11737
  }),
11795
- /* @__PURE__ */ jsx47("span", {
11738
+ /* @__PURE__ */ jsx48("span", {
11796
11739
  className: cn("skippr:shrink-0 skippr:bg-foreground/10", horizontal ? "skippr:h-[16px] skippr:w-px" : "skippr:h-px skippr:w-[16px]")
11797
11740
  }),
11798
- /* @__PURE__ */ jsx47("button", {
11741
+ /* @__PURE__ */ jsx48("button", {
11799
11742
  type: "button",
11800
11743
  onClick: openChat,
11801
11744
  "aria-label": "Open chat",
11802
11745
  className: STRIP_ICON_BUTTON,
11803
- children: /* @__PURE__ */ jsx47(MessageSquare, {
11746
+ children: /* @__PURE__ */ jsx48(MessageSquare, {
11804
11747
  className: "skippr:size-[14px]",
11805
11748
  strokeWidth: 2
11806
11749
  })
11807
11750
  })
11808
11751
  ]
11809
- }) : /* @__PURE__ */ jsx47("button", {
11752
+ }) : /* @__PURE__ */ jsx48("button", {
11810
11753
  type: "button",
11811
11754
  onClick: open,
11812
11755
  "aria-label": "Open Agent",
11813
11756
  className: "skippr:absolute skippr:inset-0 skippr:cursor-grab skippr:bg-transparent skippr:p-0"
11814
11757
  })
11815
11758
  }),
11816
- hasNotif && (expanded ? /* @__PURE__ */ jsx47("button", {
11759
+ hasNotif && (expanded ? /* @__PURE__ */ jsx48("button", {
11817
11760
  type: "button",
11818
11761
  onClick: toggleCard,
11819
11762
  "aria-label": "Show notifications",
@@ -11822,7 +11765,7 @@ function VoiceBarLauncher({
11822
11765
  "--skippr-pulse-color": dotColor
11823
11766
  },
11824
11767
  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])
11825
- }) : /* @__PURE__ */ jsx47("button", {
11768
+ }) : /* @__PURE__ */ jsx48("button", {
11826
11769
  type: "button",
11827
11770
  onClick: toggleCard,
11828
11771
  "aria-label": "Show notifications",
@@ -11832,7 +11775,7 @@ function VoiceBarLauncher({
11832
11775
  },
11833
11776
  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])
11834
11777
  })),
11835
- hasNotif && cardOpen && /* @__PURE__ */ jsx47(LauncherNotification, {
11778
+ hasNotif && cardOpen && /* @__PURE__ */ jsx48(LauncherNotification, {
11836
11779
  notifications,
11837
11780
  dock,
11838
11781
  mode,
@@ -11842,37 +11785,37 @@ function VoiceBarLauncher({
11842
11785
  ]
11843
11786
  });
11844
11787
  }
11845
- return /* @__PURE__ */ jsxs39("div", {
11788
+ return /* @__PURE__ */ jsxs40("div", {
11846
11789
  ref: containerRef,
11847
11790
  style: dockStyleFlush(dock),
11848
11791
  className: "skippr:fixed skippr:z-[9999] skippr:touch-none skippr:cursor-grab",
11849
11792
  children: [
11850
- /* @__PURE__ */ jsxs39("div", {
11793
+ /* @__PURE__ */ jsxs40("div", {
11851
11794
  style: { gap: onChat && hovered ? 2 : 0 },
11852
11795
  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]),
11853
11796
  children: [
11854
- onChat && /* @__PURE__ */ jsx47(LauncherChat, {
11797
+ onChat && /* @__PURE__ */ jsx48(LauncherChat, {
11855
11798
  revealed: hovered,
11856
11799
  edge: dock.edge,
11857
11800
  onClick: openChat
11858
11801
  }),
11859
- /* @__PURE__ */ jsx47("button", {
11802
+ /* @__PURE__ */ jsx48("button", {
11860
11803
  type: "button",
11861
11804
  onClick: open,
11862
11805
  "aria-label": "Open Agent",
11863
11806
  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",
11864
- children: logoUrl ? /* @__PURE__ */ jsx47("img", {
11807
+ children: logoUrl ? /* @__PURE__ */ jsx48("img", {
11865
11808
  src: logoUrl,
11866
11809
  alt: "",
11867
11810
  className: "skippr:block skippr:size-[46px] skippr:rounded-full skippr:object-cover"
11868
- }) : /* @__PURE__ */ jsx47("span", {
11811
+ }) : /* @__PURE__ */ jsx48("span", {
11869
11812
  className: "skippr:flex skippr:size-[46px] skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-launcher",
11870
- children: /* @__PURE__ */ jsx47(SkipprMark2, {})
11813
+ children: /* @__PURE__ */ jsx48(SkipprMark2, {})
11871
11814
  })
11872
11815
  })
11873
11816
  ]
11874
11817
  }),
11875
- hasNotif && /* @__PURE__ */ jsx47("button", {
11818
+ hasNotif && /* @__PURE__ */ jsx48("button", {
11876
11819
  type: "button",
11877
11820
  onClick: toggleCard,
11878
11821
  "aria-label": "Show notifications",
@@ -11883,7 +11826,7 @@ function VoiceBarLauncher({
11883
11826
  },
11884
11827
  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]")
11885
11828
  }),
11886
- hasNotif && cardOpen && /* @__PURE__ */ jsx47(LauncherNotification, {
11829
+ hasNotif && cardOpen && /* @__PURE__ */ jsx48(LauncherNotification, {
11887
11830
  notifications,
11888
11831
  dock,
11889
11832
  mode,
@@ -11895,7 +11838,7 @@ function VoiceBarLauncher({
11895
11838
  }
11896
11839
 
11897
11840
  // src/components/VoiceBar.tsx
11898
- import { jsx as jsx48 } from "react/jsx-runtime";
11841
+ import { jsx as jsx49 } from "react/jsx-runtime";
11899
11842
  function VoiceBar({ revealed }) {
11900
11843
  const ctx = useContext24(LiveAgentContext);
11901
11844
  if (!ctx) {
@@ -11914,8 +11857,8 @@ function VoiceBar({ revealed }) {
11914
11857
  setBarPos,
11915
11858
  setAutoStartAfterLogin
11916
11859
  } = ctx;
11917
- const [launcherDock, setLauncherDock] = useState38(() => readSavedDock("launcher"));
11918
- const onLauncherDrop = useCallback32((next) => {
11860
+ const [launcherDock, setLauncherDock] = useState37(() => readSavedDock("launcher"));
11861
+ const onLauncherDrop = useCallback31((next) => {
11919
11862
  setLauncherDock(next);
11920
11863
  persistDock("launcher", next);
11921
11864
  }, []);
@@ -11937,7 +11880,7 @@ function VoiceBar({ revealed }) {
11937
11880
  return null;
11938
11881
  }
11939
11882
  if (launcherMode !== LAUNCHER_MODE.None && !sessionLive && isMinimized) {
11940
- return /* @__PURE__ */ jsx48(VoiceBarLauncher, {
11883
+ return /* @__PURE__ */ jsx49(VoiceBarLauncher, {
11941
11884
  dock: effectiveLauncherDock,
11942
11885
  mode: launcherMode,
11943
11886
  logoUrl: appearance?.logoUrl ?? null,
@@ -11952,7 +11895,7 @@ function VoiceBar({ revealed }) {
11952
11895
  });
11953
11896
  }
11954
11897
  const effectiveBarPos = barPos ?? defaultBarPos();
11955
- return /* @__PURE__ */ jsx48(VoiceBarFrame, {
11898
+ return /* @__PURE__ */ jsx49(VoiceBarFrame, {
11956
11899
  pos: effectiveBarPos,
11957
11900
  canFold,
11958
11901
  notifications,
@@ -11962,7 +11905,7 @@ function VoiceBar({ revealed }) {
11962
11905
  }
11963
11906
 
11964
11907
  // src/components/LiveAgent.tsx
11965
- import { jsx as jsx49, jsxs as jsxs40, Fragment as Fragment8 } from "react/jsx-runtime";
11908
+ import { jsx as jsx50, jsxs as jsxs41, Fragment as Fragment7 } from "react/jsx-runtime";
11966
11909
  var SPLASH_NOT_PLACED_WARNING = "[Skippr] The splash screen is enabled but no <SplashScreen> is rendered, so end users cannot start a session. Import SplashScreen from @skippr/live-agent-sdk and place it inside <LiveAgent>.";
11967
11910
  var SPLASH_MULTI_MOUNT_WARNING = "[Skippr] More than one <SplashScreen> is mounted. Render exactly one — each instance keeps its own microphone, screen and dismissal state.";
11968
11911
  function readSavedPosition() {
@@ -11982,7 +11925,7 @@ function readSavedLauncherBottom() {
11982
11925
  }
11983
11926
  }
11984
11927
  function AgentCursorMount({ animated }) {
11985
- return /* @__PURE__ */ jsx49(AgentCursor, {
11928
+ return /* @__PURE__ */ jsx50(AgentCursor, {
11986
11929
  target: useAgentCursor(),
11987
11930
  animated
11988
11931
  });
@@ -11991,7 +11934,7 @@ function PlanPanelOpener() {
11991
11934
  const plan = usePlanUpdates();
11992
11935
  const { expandPanel } = useLiveAgent();
11993
11936
  const surfacedPlanIdRef = useRef42(null);
11994
- useEffect49(() => {
11937
+ useEffect48(() => {
11995
11938
  if (plan?.state !== "proposed" || surfacedPlanIdRef.current === plan.planId)
11996
11939
  return;
11997
11940
  surfacedPlanIdRef.current = plan.planId;
@@ -12031,21 +11974,21 @@ function LiveAgent(props) {
12031
11974
  const auth = useAuth({ appKey });
12032
11975
  const usesHostAuth = !!getUserToken || !!userToken || !!authTokenProp;
12033
11976
  const effectiveAuthToken = usesHostAuth ? authTokenProp : auth.authToken ?? undefined;
12034
- const [activeModule, setActiveModule] = useState39(null);
12035
- const [sessionAgentMode, setSessionAgentMode] = useState39(null);
12036
- const [isExchanging, setIsExchanging] = useState39(false);
12037
- const minimizeOnSessionStart = useCallback33(() => {
11977
+ const [activeModule, setActiveModule] = useState38(null);
11978
+ const [sessionAgentMode, setSessionAgentMode] = useState38(null);
11979
+ const [isExchanging, setIsExchanging] = useState38(false);
11980
+ const minimizeOnSessionStart = useCallback32(() => {
12038
11981
  if (minimizable) {
12039
11982
  setIsMinimized(true);
12040
11983
  setIsPanelOpen(false);
12041
11984
  }
12042
11985
  }, [minimizable]);
12043
- const expandOnSessionStartError = useCallback33(() => {
11986
+ const expandOnSessionStartError = useCallback32(() => {
12044
11987
  setIsMinimized(false);
12045
11988
  setIsPanelOpen(true);
12046
11989
  }, []);
12047
11990
  const isExchangeDisconnectingRef = useRef42(false);
12048
- const minimizeOnSessionDisconnect = useCallback33(() => {
11991
+ const minimizeOnSessionDisconnect = useCallback32(() => {
12049
11992
  if (isExchangeDisconnectingRef.current)
12050
11993
  return;
12051
11994
  setActiveModule(null);
@@ -12095,29 +12038,29 @@ function LiveAgent(props) {
12095
12038
  });
12096
12039
  const isRoomReleasedRef = useRef42(false);
12097
12040
  isRoomReleasedRef.current = !isConnected || isPausing || isDisconnecting;
12098
- const handleRoomDisconnected = useCallback33(() => {
12041
+ const handleRoomDisconnected = useCallback32(() => {
12099
12042
  if (isExchangeDisconnectingRef.current || isRoomReleasedRef.current)
12100
12043
  return;
12101
12044
  disconnect();
12102
12045
  }, [disconnect]);
12103
- const [isPanelOpen, setIsPanelOpen] = useState39(defaultOpen);
12104
- const [isMinimized, setIsMinimized] = useState39(minimizable && !defaultOpen);
12105
- const [pendingStart, setPendingStart] = useState39(null);
12106
- const [sidebarTab, setSidebarTab] = useState39("agenda");
12107
- const [phasesSnapshot, setPhasesSnapshot] = useState39([]);
12108
- const [startMuted, setStartMuted] = useState39(false);
12109
- const [textMode, setTextMode] = useState39(false);
12110
- const [panelExpanded, setPanelExpanded] = useState39(false);
12111
- const togglePanelExpanded = useCallback33(() => setPanelExpanded((prev) => !prev), []);
12046
+ const [isPanelOpen, setIsPanelOpen] = useState38(defaultOpen);
12047
+ const [isMinimized, setIsMinimized] = useState38(minimizable && !defaultOpen);
12048
+ const [pendingStart, setPendingStart] = useState38(null);
12049
+ const [sidebarTab, setSidebarTab] = useState38("agenda");
12050
+ const [phasesSnapshot, setPhasesSnapshot] = useState38([]);
12051
+ const [startMuted, setStartMuted] = useState38(false);
12052
+ const [textMode, setTextMode] = useState38(false);
12053
+ const [panelExpanded, setPanelExpanded] = useState38(false);
12054
+ const togglePanelExpanded = useCallback32(() => setPanelExpanded((prev) => !prev), []);
12112
12055
  const panelRef = useRef42(null);
12113
12056
  const controlBarRef = useRef42(null);
12114
12057
  const voiceBarRef = useRef42(null);
12115
- const [isDragging, setIsDragging] = useState39(false);
12116
- const setTextModeState = useCallback33((enabled) => {
12058
+ const [isDragging, setIsDragging] = useState38(false);
12059
+ const setTextModeState = useCallback32((enabled) => {
12117
12060
  setTextMode(enabled);
12118
12061
  }, []);
12119
12062
  const showControlBar = isConnected || isStarting || isPausing;
12120
- useEffect49(() => {
12063
+ useEffect48(() => {
12121
12064
  if (!isConnected)
12122
12065
  setTextModeState(false);
12123
12066
  }, [isConnected, setTextModeState]);
@@ -12140,7 +12083,11 @@ function LiveAgent(props) {
12140
12083
  const isBootAuthPending = usesHostAuth ? !!appKey && !isAuthenticated && !authFailed : !!appKey && !auth.hasResolvedStoredToken;
12141
12084
  const isAwaitingModules = isAuthenticated ? !hasResolvedModules : isBootAuthPending;
12142
12085
  const isLauncherRevealed = useOnceTrue(!isAwaitingModules);
12143
- const { goals: adoptionGoals, attendGoal } = useAdoptionGoals({
12086
+ const {
12087
+ goals: adoptionGoals,
12088
+ hasResolved: hasResolvedAdoptionGoals,
12089
+ attendGoal
12090
+ } = useAdoptionGoals({
12144
12091
  enabled: !isSessionLive || activeModule?.mode === AGENT_MODE.AlwaysOn || sessionAgentMode === AGENT_MODE.AlwaysOn,
12145
12092
  bearerToken,
12146
12093
  authedFetch
@@ -12148,7 +12095,7 @@ function LiveAgent(props) {
12148
12095
  const buddyActive = isBuddyActive(appearance) && variant !== "sidebar" && !hostAgentId;
12149
12096
  const buddyShape = appearance?.buddy?.shape ?? DEFAULT_BUDDY_SHAPE;
12150
12097
  const effectiveHostAgentId = buddyActive ? undefined : hostAgentId;
12151
- const startSession = useCallback33((opts) => startSessionRaw(buddyActive ? { ...opts, agentControls: buddyEffectiveControls(opts.agentControls) } : opts), [startSessionRaw, buddyActive]);
12098
+ const startSession = useCallback32((opts) => startSessionRaw(buddyActive ? { ...opts, agentControls: buddyEffectiveControls(opts.agentControls) } : opts), [startSessionRaw, buddyActive]);
12152
12099
  const defaultAgentId = buddyActive ? defaultSelection.agentId : hostAgentId ?? defaultSelection.agentId;
12153
12100
  const defaultModule = availableModules.find((m) => m.id === defaultAgentId) ?? null;
12154
12101
  const operatingModule = buddyActive ? defaultModule : activeModule ?? (effectiveHostAgentId ? availableModules[0] ?? null : null);
@@ -12159,7 +12106,7 @@ function LiveAgent(props) {
12159
12106
  const shouldAnimateCursor = operatingModule?.uiPreferences?.animateCursor ?? animateAgentCursor;
12160
12107
  const buddyDefaultMissing = buddyActive && hasResolvedModules && !modulesError && !defaultModule && !isSessionLive;
12161
12108
  const resumableSession = useMemo8(() => getResumableSession(operatingModule), [operatingModule]);
12162
- const resumeSession = useCallback33(async () => {
12109
+ const resumeSession = useCallback32(async () => {
12163
12110
  if (!resumableSession)
12164
12111
  return;
12165
12112
  if (operatingModule) {
@@ -12172,7 +12119,7 @@ function LiveAgent(props) {
12172
12119
  existingSessionId: resumableSession.id
12173
12120
  });
12174
12121
  }, [resumableSession, operatingModule, startSession, baseAgentControls]);
12175
- const selectModule = useCallback33(async (moduleId, opts) => {
12122
+ const selectModule = useCallback32(async (moduleId, opts) => {
12176
12123
  if (isExchangeDisconnectingRef.current)
12177
12124
  return;
12178
12125
  const found = availableModules.find((m) => m.id === moduleId);
@@ -12206,7 +12153,7 @@ function LiveAgent(props) {
12206
12153
  autoStarted: opts?.autoStarted
12207
12154
  });
12208
12155
  }, [availableModules, startSession, isSessionLive, operatingModule, disconnect]);
12209
- const startAdoptionSession = useCallback33((goal) => {
12156
+ const startAdoptionSession = useCallback32((goal) => {
12210
12157
  attendGoal(goal.goalId);
12211
12158
  const found = availableModules.find((m) => m.id === goal.agentId);
12212
12159
  if (found)
@@ -12218,16 +12165,16 @@ function LiveAgent(props) {
12218
12165
  adoptionGoalId: goal.goalId
12219
12166
  });
12220
12167
  }, [attendGoal, availableModules, startSession]);
12221
- const previewStart = useCallback33((pending) => {
12168
+ const previewStart = useCallback32((pending) => {
12222
12169
  setPendingStart(pending);
12223
12170
  setIsMinimized(false);
12224
12171
  }, []);
12225
- const [welcomeDismissed, setWelcomeDismissed] = useState39(false);
12226
- const dismissWelcome = useCallback33(() => setWelcomeDismissed(true), []);
12227
- const [savedPosition] = useState39(readSavedPosition);
12228
- const [currentPosition, setCurrentPosition] = useState39(savedPosition ?? "right");
12172
+ const [welcomeDismissed, setWelcomeDismissed] = useState38(false);
12173
+ const dismissWelcome = useCallback32(() => setWelcomeDismissed(true), []);
12174
+ const [savedPosition] = useState38(readSavedPosition);
12175
+ const [currentPosition, setCurrentPosition] = useState38(savedPosition ?? "right");
12229
12176
  const positionLockedRef = useRef42(savedPosition !== null);
12230
- const setPositionWithPersist = useCallback33((pos) => {
12177
+ const setPositionWithPersist = useCallback32((pos) => {
12231
12178
  positionLockedRef.current = true;
12232
12179
  setCurrentPosition(pos);
12233
12180
  try {
@@ -12235,18 +12182,18 @@ function LiveAgent(props) {
12235
12182
  } catch {}
12236
12183
  }, []);
12237
12184
  const serverPosition = appearance?.position ?? null;
12238
- useEffect49(() => {
12185
+ useEffect48(() => {
12239
12186
  if (!serverPosition || positionLockedRef.current)
12240
12187
  return;
12241
12188
  setCurrentPosition(serverPosition);
12242
12189
  }, [serverPosition]);
12243
- const [savedLauncherBottom] = useState39(readSavedLauncherBottom);
12190
+ const [savedLauncherBottom] = useState38(readSavedLauncherBottom);
12244
12191
  const hasDraggedRef = useRef42(savedLauncherBottom !== null);
12245
12192
  const verticalAlignRef = useRef42(hostVerticalAlign ?? "bottom");
12246
- const [launcherBottomPx, setLauncherBottomPxState] = useState39(() => savedLauncherBottom !== null ? clampLauncherBottom(savedLauncherBottom) : verticalAlignToBottomPx(verticalAlignRef.current));
12247
- const [popsDown, setPopsDown] = useState39(() => launcherPopsDown(launcherBottomPx));
12193
+ const [launcherBottomPx, setLauncherBottomPxState] = useState38(() => savedLauncherBottom !== null ? clampLauncherBottom(savedLauncherBottom) : verticalAlignToBottomPx(verticalAlignRef.current));
12194
+ const [popsDown, setPopsDown] = useState38(() => launcherPopsDown(launcherBottomPx));
12248
12195
  const serverVerticalAlign = appearance?.verticalAlign ?? null;
12249
- useEffect49(() => {
12196
+ useEffect48(() => {
12250
12197
  if (!serverVerticalAlign || hostVerticalAlign !== undefined || hasDraggedRef.current)
12251
12198
  return;
12252
12199
  verticalAlignRef.current = serverVerticalAlign;
@@ -12254,7 +12201,7 @@ function LiveAgent(props) {
12254
12201
  setLauncherBottomPxState(next);
12255
12202
  setPopsDown(launcherPopsDown(next));
12256
12203
  }, [serverVerticalAlign, hostVerticalAlign]);
12257
- const setLauncherBottomPx = useCallback33((px) => {
12204
+ const setLauncherBottomPx = useCallback32((px) => {
12258
12205
  hasDraggedRef.current = true;
12259
12206
  setLauncherBottomPxState(px);
12260
12207
  setPopsDown(launcherPopsDown(px));
@@ -12264,18 +12211,18 @@ function LiveAgent(props) {
12264
12211
  }, []);
12265
12212
  const launcherBottomPxRef = useRef42(launcherBottomPx);
12266
12213
  launcherBottomPxRef.current = launcherBottomPx;
12267
- const [chatActivityAt, setChatActivityAt] = useState39(0);
12268
- const reportChatActivity = useCallback33(() => {
12214
+ const [chatActivityAt, setChatActivityAt] = useState38(0);
12215
+ const reportChatActivity = useCallback32(() => {
12269
12216
  const now = Date.now();
12270
12217
  setChatActivityAt((last) => now - last < CHAT_ACTIVITY_THROTTLE_MS ? last : now);
12271
12218
  }, []);
12272
- const [chatDraft, setChatDraft] = useState39("");
12273
- const [autoStartAfterLogin, setAutoStartAfterLogin] = useState39(false);
12274
- const commitLauncherDrop = useCallback33(({ side, bottomPx }) => {
12219
+ const [chatDraft, setChatDraft] = useState38("");
12220
+ const [autoStartAfterLogin, setAutoStartAfterLogin] = useState38(false);
12221
+ const commitLauncherDrop = useCallback32(({ side, bottomPx }) => {
12275
12222
  setPositionWithPersist(side);
12276
12223
  setLauncherBottomPx(bottomPx);
12277
12224
  }, [setPositionWithPersist, setLauncherBottomPx]);
12278
- const [barPos, setBarPosState] = useState39(() => readSavedBarPos());
12225
+ const [barPos, setBarPosState] = useState38(() => readSavedBarPos());
12279
12226
  const barPosRatioRef = useRef42(null);
12280
12227
  if (barPos !== null) {
12281
12228
  barPosRatioRef.current = {
@@ -12289,7 +12236,7 @@ function LiveAgent(props) {
12289
12236
  yRatio: def.y / window.innerHeight
12290
12237
  };
12291
12238
  }
12292
- const setBarPos = useCallback33((next) => {
12239
+ const setBarPos = useCallback32((next) => {
12293
12240
  setBarPosState(next);
12294
12241
  persistBarPos(next);
12295
12242
  barPosRatioRef.current = {
@@ -12297,7 +12244,7 @@ function LiveAgent(props) {
12297
12244
  yRatio: next.y / window.innerHeight
12298
12245
  };
12299
12246
  }, []);
12300
- useEffect49(() => {
12247
+ useEffect48(() => {
12301
12248
  const syncToViewport = () => {
12302
12249
  const next = hasDraggedRef.current ? clampLauncherBottom(launcherBottomPxRef.current) : verticalAlignToBottomPx(verticalAlignRef.current);
12303
12250
  setLauncherBottomPxState(next);
@@ -12307,7 +12254,7 @@ function LiveAgent(props) {
12307
12254
  window.addEventListener("resize", syncToViewport);
12308
12255
  return () => window.removeEventListener("resize", syncToViewport);
12309
12256
  }, []);
12310
- useEffect49(() => {
12257
+ useEffect48(() => {
12311
12258
  const syncBarToViewport = () => {
12312
12259
  const ratios = barPosRatioRef.current;
12313
12260
  if (!ratios)
@@ -12320,28 +12267,28 @@ function LiveAgent(props) {
12320
12267
  window.addEventListener("resize", syncBarToViewport);
12321
12268
  return () => window.removeEventListener("resize", syncBarToViewport);
12322
12269
  }, []);
12323
- const openPanel = useCallback33(() => setIsPanelOpen(true), []);
12324
- const closePanel = useCallback33(() => setIsPanelOpen(false), []);
12325
- const togglePanel = useCallback33(() => setIsPanelOpen((prev) => !prev), []);
12326
- const expandPanel = useCallback33(() => {
12270
+ const openPanel = useCallback32(() => setIsPanelOpen(true), []);
12271
+ const closePanel = useCallback32(() => setIsPanelOpen(false), []);
12272
+ const togglePanel = useCallback32(() => setIsPanelOpen((prev) => !prev), []);
12273
+ const expandPanel = useCallback32(() => {
12327
12274
  setIsMinimized(false);
12328
12275
  setIsPanelOpen(true);
12329
12276
  }, []);
12330
- const minimizePanel = useCallback33(() => {
12277
+ const minimizePanel = useCallback32(() => {
12331
12278
  if (!minimizable)
12332
12279
  return;
12333
12280
  setIsMinimized(true);
12334
12281
  setIsPanelOpen(false);
12335
12282
  }, [minimizable]);
12336
- const revealBar = useCallback33(() => {
12283
+ const revealBar = useCallback32(() => {
12337
12284
  setPendingStart(null);
12338
12285
  setIsMinimized(false);
12339
12286
  }, []);
12340
- const pauseSessionAndMinimize = useCallback33(async () => {
12287
+ const pauseSessionAndMinimize = useCallback32(async () => {
12341
12288
  await pauseSession();
12342
12289
  minimizePanel();
12343
12290
  }, [pauseSession, minimizePanel]);
12344
- const startDefaultSession = useCallback33(() => {
12291
+ const startDefaultSession = useCallback32(() => {
12345
12292
  const target = availableModules.find((m) => m.id === defaultAgentId);
12346
12293
  if (!target)
12347
12294
  return;
@@ -12353,7 +12300,7 @@ function LiveAgent(props) {
12353
12300
  existingSessionId: defaultSelection.sessionId ?? undefined
12354
12301
  });
12355
12302
  }, [defaultAgentId, availableModules, defaultSelection.sessionId, startSession]);
12356
- const startPrimarySession = useCallback33(() => {
12303
+ const startPrimarySession = useCallback32(() => {
12357
12304
  if (pendingStart) {
12358
12305
  const pending = pendingStart;
12359
12306
  setPendingStart(null);
@@ -12371,7 +12318,7 @@ function LiveAgent(props) {
12371
12318
  bearerToken,
12372
12319
  selectModule
12373
12320
  });
12374
- useEffect49(() => {
12321
+ useEffect48(() => {
12375
12322
  if (!autoStartAfterLogin)
12376
12323
  return;
12377
12324
  if (bearerToken === null || !hasResolvedModules || isSessionLive)
@@ -12389,7 +12336,7 @@ function LiveAgent(props) {
12389
12336
  startPrimarySession
12390
12337
  ]);
12391
12338
  const isSplashConfigured = appearance?.launcherMode === LAUNCHER_MODE.Template && appearance.splash?.enabled === true;
12392
- const idleHistoryEnabled = !isSessionLive && !isPaused && (isPanelOpen || isSplashConfigured) && isAuthenticated;
12339
+ const idleHistoryEnabled = !isSessionLive && (isSplashConfigured || isPanelOpen && !isPaused) && isAuthenticated;
12393
12340
  const {
12394
12341
  messages: idleHistoryMessages,
12395
12342
  phases: idleHistoryPhases,
@@ -12404,11 +12351,11 @@ function LiveAgent(props) {
12404
12351
  phases: idleHistoryPhases,
12405
12352
  isLoading: isLoadingHistory
12406
12353
  }), [idleHistoryMessages, idleHistoryPhases, isLoadingHistory]);
12407
- const [splashDismissed, setSplashDismissed] = useState39(false);
12408
- const dismissSplash = useCallback33(() => setSplashDismissed(true), []);
12409
- const reopenSplash = useCallback33(() => setSplashDismissed(false), []);
12354
+ const [splashDismissed, setSplashDismissed] = useState38(false);
12355
+ const dismissSplash = useCallback32(() => setSplashDismissed(true), []);
12356
+ const reopenSplash = useCallback32(() => setSplashDismissed(false), []);
12410
12357
  const splashMountCountRef = useRef42(0);
12411
- const notifySplashMount = useCallback33(() => {
12358
+ const notifySplashMount = useCallback32(() => {
12412
12359
  splashMountCountRef.current += 1;
12413
12360
  if (splashMountCountRef.current > 1)
12414
12361
  console.warn(SPLASH_MULTI_MOUNT_WARNING);
@@ -12416,7 +12363,7 @@ function LiveAgent(props) {
12416
12363
  splashMountCountRef.current -= 1;
12417
12364
  };
12418
12365
  }, []);
12419
- useEffect49(() => {
12366
+ useEffect48(() => {
12420
12367
  if (!isSplashConfigured)
12421
12368
  return;
12422
12369
  queueMicrotask(() => {
@@ -12515,6 +12462,7 @@ function LiveAgent(props) {
12515
12462
  hasResolvedModules,
12516
12463
  appearance,
12517
12464
  adoptionGoals,
12465
+ hasResolvedAdoptionGoals,
12518
12466
  startAdoptionSession,
12519
12467
  attendGoal,
12520
12468
  buddyActive,
@@ -12603,76 +12551,77 @@ function LiveAgent(props) {
12603
12551
  hasResolvedModules,
12604
12552
  appearance,
12605
12553
  adoptionGoals,
12554
+ hasResolvedAdoptionGoals,
12606
12555
  startAdoptionSession,
12607
12556
  attendGoal,
12608
12557
  buddyActive,
12609
12558
  buddyShape
12610
12559
  ]);
12611
12560
  if (noModulesAvailable || buddyDefaultMissing) {
12612
- return /* @__PURE__ */ jsx49(LiveAgentContext.Provider, {
12561
+ return /* @__PURE__ */ jsx50(LiveAgentContext.Provider, {
12613
12562
  value: ctx,
12614
12563
  children
12615
12564
  });
12616
12565
  }
12617
- return /* @__PURE__ */ jsx49(LiveAgentContext.Provider, {
12566
+ return /* @__PURE__ */ jsx50(LiveAgentContext.Provider, {
12618
12567
  value: ctx,
12619
- children: /* @__PURE__ */ jsxs40(LiveKitRoom, {
12568
+ children: /* @__PURE__ */ jsxs41(LiveKitRoom, {
12620
12569
  serverUrl: connection?.livekitUrl,
12621
12570
  token: connection?.token,
12622
12571
  connect: shouldConnect,
12623
12572
  audio: !startMuted,
12624
12573
  onDisconnected: handleRoomDisconnected,
12625
12574
  children: [
12626
- /* @__PURE__ */ jsxs40(Fragment7, {
12575
+ /* @__PURE__ */ jsxs41(Fragment6, {
12627
12576
  children: [
12628
- connection && !textMode && /* @__PURE__ */ jsx49(RoomAudioRenderer, {}),
12629
- /* @__PURE__ */ jsxs40(SessionHoldProvider, {
12577
+ connection && !textMode && /* @__PURE__ */ jsx50(RoomAudioRenderer, {}),
12578
+ /* @__PURE__ */ jsxs41(SessionHoldProvider, {
12630
12579
  children: [
12631
- connection && captureMode === CAPTURE_MODE.Screenshare && /* @__PURE__ */ jsx49(AutoStartMedia, {
12580
+ connection && captureMode === CAPTURE_MODE.Screenshare && /* @__PURE__ */ jsx50(AutoStartMedia, {
12632
12581
  pendingScreenStream,
12633
12582
  pushOrTapMicMode: isRequestResponseMicMode(agentControls?.micMode),
12634
12583
  startMuted
12635
12584
  }),
12636
- connection && captureMode === CAPTURE_MODE.Auto && /* @__PURE__ */ jsx49(DomCapture, {
12585
+ connection && captureMode === CAPTURE_MODE.Auto && /* @__PURE__ */ jsx50(DomCapture, {
12637
12586
  pushOrTapMicMode: isRequestResponseMicMode(agentControls?.micMode),
12638
12587
  startMuted
12639
12588
  }),
12640
- /* @__PURE__ */ jsxs40(ShadowHost, {
12589
+ /* @__PURE__ */ jsxs41(ShadowHost, {
12641
12590
  accentColor: appearance?.accentColor ?? null,
12642
12591
  children: [
12643
- connection && captureMode === CAPTURE_MODE.Auto && agentControls?.highlight && /* @__PURE__ */ jsx49(HighlightOverlay, {}),
12644
- connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx49(PageActionHandler, {}),
12645
- connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx49(PlanPanelOpener, {}),
12646
- connection && captureMode === CAPTURE_MODE.Auto && (agentControls?.highlight || agentControls?.actions) && /* @__PURE__ */ jsx49(AgentCursorMount, {
12592
+ connection && captureMode === CAPTURE_MODE.Auto && agentControls?.highlight && /* @__PURE__ */ jsx50(HighlightOverlay, {}),
12593
+ connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx50(PageActionHandler, {}),
12594
+ connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx50(PlanPanelOpener, {}),
12595
+ connection && captureMode === CAPTURE_MODE.Auto && (agentControls?.highlight || agentControls?.actions) && /* @__PURE__ */ jsx50(AgentCursorMount, {
12647
12596
  animated: shouldAnimateCursor
12648
12597
  }),
12649
- /* @__PURE__ */ jsx49(VoiceTurnProvider, {
12650
- children: /* @__PURE__ */ jsx49(TranscriptionsProvider, {
12651
- children: /* @__PURE__ */ jsx49("div", {
12598
+ /* @__PURE__ */ jsx50(VoiceTurnProvider, {
12599
+ children: /* @__PURE__ */ jsx50(TranscriptionsProvider, {
12600
+ children: /* @__PURE__ */ jsx50("div", {
12652
12601
  id: WIDGET_ROOT_ID,
12653
- children: variant === "sidebar" ? /* @__PURE__ */ jsxs40(Fragment8, {
12602
+ children: variant === "sidebar" ? /* @__PURE__ */ jsxs41(Fragment7, {
12654
12603
  children: [
12655
- isMinimized && !showControlBar && isLauncherRevealed && /* @__PURE__ */ jsx49(MinimizedBubble, {
12604
+ isMinimized && !showControlBar && isLauncherRevealed && /* @__PURE__ */ jsx50(MinimizedBubble, {
12656
12605
  welcomeMessage,
12657
12606
  welcomeDismissed,
12658
12607
  onDismissWelcome: dismissWelcome
12659
12608
  }),
12660
- showControlBar && !hideControls && /* @__PURE__ */ jsx49(SessionControlBar, {}),
12661
- /* @__PURE__ */ jsx49(SidebarTrigger, {}),
12662
- /* @__PURE__ */ jsx49(Sidebar, {
12609
+ showControlBar && !hideControls && /* @__PURE__ */ jsx50(SessionControlBar, {}),
12610
+ /* @__PURE__ */ jsx50(SidebarTrigger, {}),
12611
+ /* @__PURE__ */ jsx50(Sidebar, {
12663
12612
  hideControls,
12664
12613
  hideHeader,
12665
12614
  startSessionLabel
12666
12615
  })
12667
12616
  ]
12668
- }) : !isLauncherRevealed ? null : buddyActive ? /* @__PURE__ */ jsx49(BuddyVoiceBar, {
12617
+ }) : !isLauncherRevealed ? null : buddyActive ? /* @__PURE__ */ jsx50(BuddyVoiceBar, {
12669
12618
  revealed: isLauncherRevealed
12670
- }) : /* @__PURE__ */ jsxs40(Fragment8, {
12619
+ }) : /* @__PURE__ */ jsxs41(Fragment7, {
12671
12620
  children: [
12672
- /* @__PURE__ */ jsx49(VoiceBar, {
12621
+ /* @__PURE__ */ jsx50(VoiceBar, {
12673
12622
  revealed: isLauncherRevealed
12674
12623
  }),
12675
- (agentControls?.chat ?? DEFAULT_CHAT_SURFACE) === CHAT_SURFACE.Room && /* @__PURE__ */ jsx49(Sidebar, {
12624
+ (agentControls?.chat ?? DEFAULT_CHAT_SURFACE) === CHAT_SURFACE.Room && /* @__PURE__ */ jsx50(Sidebar, {
12676
12625
  hideControls,
12677
12626
  hideHeader,
12678
12627
  startSessionLabel
@@ -12697,7 +12646,7 @@ function LiveAgent(props) {
12697
12646
  import { useContext as useContext26 } from "react";
12698
12647
 
12699
12648
  // src/hooks/useSplash.ts
12700
- import { useCallback as useCallback34, useContext as useContext25, useEffect as useEffect50, useMemo as useMemo9, useRef as useRef43, useState as useState40 } from "react";
12649
+ import { useCallback as useCallback33, useContext as useContext25, useEffect as useEffect49, useMemo as useMemo9, useRef as useRef43, useState as useState39 } from "react";
12701
12650
 
12702
12651
  // src/lib/splashPresentation.ts
12703
12652
  function resolveSplashSections(sections, iconUrls) {
@@ -12733,7 +12682,6 @@ function resolveSplashPresentation(splash) {
12733
12682
  }
12734
12683
 
12735
12684
  // src/hooks/useSplash.ts
12736
- var NO_PHASES = [];
12737
12685
  var SPLASH_DISABLED_WARNING = "[Skippr] <SplashScreen> is mounted but the splash screen is turned off for this workspace, so it will never render. Enable it under Appearance in the Skippr platform.";
12738
12686
  var LAUNCHER_MODE_WARNING = '[Skippr] <SplashScreen> is mounted but the launcher mode is not "template", so it will never render. Set the launcher to Template under Appearance in the Skippr platform.';
12739
12687
  function useSplash(onDismiss) {
@@ -12750,6 +12698,8 @@ function useSplash(onDismiss) {
12750
12698
  isMinimized,
12751
12699
  isAuthenticated,
12752
12700
  startPrimarySession,
12701
+ startAdoptionSession,
12702
+ hasResolvedAdoptionGoals,
12753
12703
  armScreenStream,
12754
12704
  startMuted,
12755
12705
  setStartMuted,
@@ -12762,13 +12712,13 @@ function useSplash(onDismiss) {
12762
12712
  const defaultModule = useMemo9(() => displayModules.find((module) => module.id === defaultAgentId) ?? null, [displayModules, defaultAgentId]);
12763
12713
  const splash = appearance?.splash ?? null;
12764
12714
  const launcherMode = appearance?.launcherMode ?? DEFAULT_LAUNCHER_MODE;
12765
- const [micEnabled, setMicEnabled] = useState40(false);
12766
- const [screenEnabled, setScreenEnabled] = useState40(false);
12715
+ const [micEnabled, setMicEnabled] = useState39(false);
12716
+ const [screenEnabled, setScreenEnabled] = useState39(false);
12767
12717
  const heldScreenStreamRef = useRef43(null);
12768
12718
  const screenRequestInFlightRef = useRef43(false);
12769
12719
  const splashHandedOffRef = useRef43(false);
12770
12720
  const splashInactiveRef = useRef43(false);
12771
- const enableMic = useCallback34(() => {
12721
+ const enableMic = useCallback33(() => {
12772
12722
  (async () => {
12773
12723
  let stream;
12774
12724
  try {
@@ -12782,7 +12732,7 @@ function useSplash(onDismiss) {
12782
12732
  setMicEnabled(true);
12783
12733
  })();
12784
12734
  }, []);
12785
- useEffect50(() => {
12735
+ useEffect49(() => {
12786
12736
  let cancelled = false;
12787
12737
  (async () => {
12788
12738
  if (!navigator.permissions?.query)
@@ -12799,8 +12749,8 @@ function useSplash(onDismiss) {
12799
12749
  cancelled = true;
12800
12750
  };
12801
12751
  }, []);
12802
- const toggleStartMuted = useCallback34(() => setStartMuted(!startMuted), [setStartMuted, startMuted]);
12803
- const releaseScreen = useCallback34(() => {
12752
+ const toggleStartMuted = useCallback33(() => setStartMuted(!startMuted), [setStartMuted, startMuted]);
12753
+ const releaseScreen = useCallback33(() => {
12804
12754
  const stream = heldScreenStreamRef.current;
12805
12755
  if (!stream)
12806
12756
  return;
@@ -12809,7 +12759,7 @@ function useSplash(onDismiss) {
12809
12759
  for (const track of stream.getTracks())
12810
12760
  track.stop();
12811
12761
  }, [armScreenStream]);
12812
- const enableScreen = useCallback34(() => {
12762
+ const enableScreen = useCallback33(() => {
12813
12763
  if (screenRequestInFlightRef.current)
12814
12764
  return;
12815
12765
  screenRequestInFlightRef.current = true;
@@ -12837,22 +12787,22 @@ function useSplash(onDismiss) {
12837
12787
  }
12838
12788
  })();
12839
12789
  }, [armScreenStream, releaseScreen]);
12840
- useEffect50(() => () => {
12790
+ useEffect49(() => () => {
12841
12791
  if (!splashHandedOffRef.current)
12842
12792
  releaseScreen();
12843
12793
  }, [releaseScreen]);
12844
12794
  const isLive = hasLiveSession(ctx);
12845
- useEffect50(() => {
12795
+ useEffect49(() => {
12846
12796
  if (isLive)
12847
12797
  heldScreenStreamRef.current = null;
12848
12798
  }, [isLive]);
12849
12799
  const splashInactive = splashDismissed || isLive;
12850
- useEffect50(() => {
12800
+ useEffect49(() => {
12851
12801
  splashInactiveRef.current = splashInactive;
12852
12802
  }, [splashInactive]);
12853
- useEffect50(() => notifySplashMount(), [notifySplashMount]);
12803
+ useEffect49(() => notifySplashMount(), [notifySplashMount]);
12854
12804
  const misconfigurationWarnedRef = useRef43(false);
12855
- useEffect50(() => {
12805
+ useEffect49(() => {
12856
12806
  if (!hasResolvedModules || misconfigurationWarnedRef.current)
12857
12807
  return;
12858
12808
  if (!splash?.enabled) {
@@ -12865,33 +12815,66 @@ function useSplash(onDismiss) {
12865
12815
  console.warn(LAUNCHER_MODE_WARNING);
12866
12816
  }
12867
12817
  }, [hasResolvedModules, splash?.enabled, launcherMode]);
12868
- const dismiss = useCallback34(() => {
12818
+ const dismiss = useCallback33(() => {
12869
12819
  releaseScreen();
12870
12820
  dismissSplash();
12871
12821
  onDismiss?.();
12872
12822
  }, [releaseScreen, dismissSplash, onDismiss]);
12873
- const start = useCallback34(() => {
12823
+ const start = useCallback33(() => {
12874
12824
  splashHandedOffRef.current = true;
12875
12825
  startPrimarySession();
12876
12826
  }, [startPrimarySession]);
12827
+ const startTip = useCallback33((goal) => {
12828
+ splashHandedOffRef.current = true;
12829
+ startAdoptionSession(goal);
12830
+ }, [startAdoptionSession]);
12831
+ const tips = useAdoptionTips();
12877
12832
  const presentation = useMemo9(() => resolveSplashPresentation(splash), [splash]);
12878
12833
  const iconUrls = appearance?.splashIconUrls ?? null;
12879
12834
  const sections = useMemo9(() => resolveSplashSections(splash?.sections ?? null, iconUrls), [splash?.sections, iconUrls]);
12880
- const phases = defaultModule?.mode === AGENT_MODE.AlwaysOn ? NO_PHASES : idleHistory.phases;
12835
+ const phases = idleHistory.phases;
12881
12836
  const lastCompletedPhase = useMemo9(() => phases.findLast((phase) => phase.status === "completed") ?? null, [phases]);
12882
12837
  const upcomingPhases = useMemo9(() => phases.filter((phase) => phase.status !== "completed"), [phases]);
12883
12838
  if (!isSplashConfigured || isLive || !isMinimized || !isAuthenticated || !defaultModule || splashDismissed) {
12884
12839
  return null;
12885
12840
  }
12841
+ const isAlwaysOn = defaultModule.mode === AGENT_MODE.AlwaysOn;
12842
+ if (isAlwaysOn && !hasResolvedAdoptionGoals) {
12843
+ return null;
12844
+ }
12845
+ if (!isAlwaysOn && idleHistory.isLoading) {
12846
+ return null;
12847
+ }
12886
12848
  const effectiveScreenEnabled = captureMode === CAPTURE_MODE.Screenshare ? screenEnabled : null;
12849
+ if (isAlwaysOn) {
12850
+ return {
12851
+ layout: SPLASH_LAYOUT.AlwaysOn,
12852
+ agentName: defaultModule.name,
12853
+ presentation,
12854
+ headerIconUrl: iconUrls?.[SPLASH_HEADER_ICON_SLOT] ?? null,
12855
+ attributionVisible: splash?.attributionVisible ?? DEFAULT_SPLASH_ATTRIBUTION_VISIBLE,
12856
+ tips,
12857
+ micEnabled,
12858
+ startMuted,
12859
+ screenEnabled: effectiveScreenEnabled,
12860
+ enableMic,
12861
+ toggleStartMuted,
12862
+ enableScreen,
12863
+ startTip,
12864
+ start,
12865
+ dismiss
12866
+ };
12867
+ }
12868
+ const intent = getModuleSessionState(defaultModule.currentSession, defaultModule.mode) === "resume" ? SPLASH_INTENT.Continue : SPLASH_INTENT.Start;
12887
12869
  return {
12870
+ layout: SPLASH_LAYOUT.Primary,
12888
12871
  agentName: defaultModule.name,
12889
12872
  presentation,
12890
12873
  headerIconUrl: iconUrls?.[SPLASH_HEADER_ICON_SLOT] ?? null,
12891
12874
  sections,
12892
12875
  attributionVisible: splash?.attributionVisible ?? DEFAULT_SPLASH_ATTRIBUTION_VISIBLE,
12893
- skipButtonVisible: splash?.skipButtonVisible ?? DEFAULT_SPLASH_SKIP_BUTTON_VISIBLE,
12894
- intent: getModuleSessionState(defaultModule.currentSession, defaultModule.mode) === "resume" ? SPLASH_INTENT.Continue : SPLASH_INTENT.Start,
12876
+ skipButtonVisible: (intent === SPLASH_INTENT.Continue ? splash?.continueSkipButtonVisible : splash?.startSkipButtonVisible) ?? DEFAULT_SPLASH_SKIP_BUTTON_VISIBLE,
12877
+ intent,
12895
12878
  lastCompletedPhase,
12896
12879
  upcomingPhases,
12897
12880
  micEnabled,
@@ -12905,81 +12888,49 @@ function useSplash(onDismiss) {
12905
12888
  };
12906
12889
  }
12907
12890
 
12908
- // src/components/SplashDefault.tsx
12909
- import { jsx as jsx50, jsxs as jsxs41, Fragment as Fragment9 } from "react/jsx-runtime";
12910
- var ATTRIBUTION_PREFIX2 = "Powered by";
12911
- var ATTRIBUTION_BRAND2 = "Skippr";
12912
- var ATTRIBUTION_URL2 = "https://www.skippr.ai/";
12913
- var CLOSE_LABEL = "Close";
12914
- var SCREEN_NOTICE = "Required";
12915
- var ENABLE_ACTION = "Enable";
12916
- var MEDIA_ENABLED_STATUS = "Enabled";
12917
- var MIC_MUTED_STATUS = "Muted";
12918
- var MUTE_MIC_ACTION = "Mute microphone";
12919
- var UNMUTE_MIC_ACTION = "Unmute microphone";
12920
- var CONSENT_LEAD_IN = "By starting a session";
12891
+ // src/lib/splashStyles.ts
12921
12892
  var SECTION_HEADING = "skippr:text-[11px] skippr:font-semibold skippr:uppercase skippr:tracking-[0.05em] skippr:text-[#6b6875]";
12922
12893
  var SECTION_BLOCK = "skippr:mt-[6px] skippr:flex skippr:flex-col skippr:gap-[14px] skippr:first:mt-0";
12923
- var ICON_TILE = "skippr:flex skippr:size-[38px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-[11px] skippr:bg-[#f2f0eb] skippr:text-[#2D2D3F]";
12894
+ var ICON_TILE_SHAPE = "skippr:flex skippr:size-[38px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-[11px]";
12895
+ var ICON_TILE = `${ICON_TILE_SHAPE} skippr:bg-[#f2f0eb] skippr:text-[#2D2D3F]`;
12896
+ var ICON_TILE_BRAND = `${ICON_TILE_SHAPE} skippr:bg-primary skippr:text-primary-foreground`;
12924
12897
  var ROW_TEXT = "skippr:flex skippr:min-w-0 skippr:flex-col skippr:gap-px";
12925
12898
  var ROW_TITLE = "skippr:text-[14px] skippr:font-medium skippr:text-[#2D2D3F]";
12926
12899
  var ROW_SUBTEXT = "skippr:text-[12px] skippr:text-[#6b6875]";
12927
12900
  var ROW_ICON = "skippr:size-[17px]";
12928
12901
  var ROW_ICON_STROKE = 1.8;
12929
12902
  var FOCUS_RING3 = "skippr:focus-visible:outline-2 skippr:focus-visible:outline-offset-2 skippr:focus-visible:outline-[var(--skippr-brand)]";
12930
- var GLYPH_COMPONENT = {
12931
- [SPLASH_SECTION_GLYPH.Route]: Route,
12932
- [SPLASH_SECTION_GLYPH.Messages]: MessagesSquare,
12933
- [SPLASH_SECTION_GLYPH.Pointer]: MousePointerClick
12934
- };
12935
- function SectionRow({ iconUrl, glyph, title, description }) {
12936
- const Glyph = glyph ? GLYPH_COMPONENT[glyph] : Sparkles;
12937
- return /* @__PURE__ */ jsxs41("li", {
12938
- className: "skippr:flex skippr:items-start skippr:gap-3",
12939
- children: [
12940
- /* @__PURE__ */ jsx50("span", {
12941
- className: ICON_TILE,
12942
- children: iconUrl ? /* @__PURE__ */ jsx50("img", {
12943
- src: iconUrl,
12944
- alt: "",
12945
- className: `skippr:object-contain ${ROW_ICON}`
12946
- }) : /* @__PURE__ */ jsx50(Glyph, {
12947
- className: ROW_ICON,
12948
- strokeWidth: ROW_ICON_STROKE
12949
- })
12950
- }),
12951
- /* @__PURE__ */ jsxs41("span", {
12952
- className: ROW_TEXT,
12953
- children: [
12954
- /* @__PURE__ */ jsx50("span", {
12955
- className: ROW_TITLE,
12956
- children: title
12957
- }),
12958
- /* @__PURE__ */ jsx50("span", {
12959
- className: ROW_SUBTEXT,
12960
- children: description
12961
- })
12962
- ]
12963
- })
12964
- ]
12965
- });
12966
- }
12903
+
12904
+ // src/components/SplashMediaSection.tsx
12905
+ import { jsx as jsx51, jsxs as jsxs42 } from "react/jsx-runtime";
12906
+ var SCREEN_NOTICE = "Required";
12907
+ var ENABLE_ACTION = "Enable";
12908
+ var MEDIA_ENABLED_STATUS = "Enabled";
12909
+ var MIC_MUTED_STATUS = "Muted";
12910
+ var MUTE_MIC_ACTION = "Mute microphone";
12911
+ var UNMUTE_MIC_ACTION = "Unmute microphone";
12912
+ var MEDIA_TRAILING_BOX = "skippr:shrink-0 skippr:rounded-full skippr:border skippr:px-[18px] skippr:py-[7px] skippr:text-[14px]";
12913
+ var MEDIA_PILL = `${MEDIA_TRAILING_BOX} skippr:cursor-pointer skippr:border-[rgba(45,45,63,0.12)] skippr:font-medium skippr:transition-colors`;
12914
+ var MEDIA_LINK = `${FOCUS_RING3} skippr:shrink-0 skippr:cursor-pointer skippr:rounded-[4px] skippr:text-[14px] skippr:font-medium skippr:text-brand-on-white skippr:underline-offset-2 skippr:hover:underline`;
12915
+ var MEDIA_STATUS_SHAPE = "skippr:shrink-0 skippr:text-[14px]";
12916
+ var MEDIA_STATUS_MUTED = `${MEDIA_STATUS_SHAPE} skippr:text-[#6b6875]`;
12917
+ var MEDIA_STATUS_BRAND = `${MEDIA_STATUS_SHAPE} skippr:font-medium skippr:text-brand-on-white`;
12967
12918
  function MediaRow({ icon, label, subtext, trailing }) {
12968
- return /* @__PURE__ */ jsxs41("li", {
12919
+ return /* @__PURE__ */ jsxs42("li", {
12969
12920
  className: "skippr:flex skippr:items-center skippr:gap-3",
12970
12921
  children: [
12971
- /* @__PURE__ */ jsx50("span", {
12922
+ /* @__PURE__ */ jsx51("span", {
12972
12923
  className: ICON_TILE,
12973
12924
  children: icon
12974
12925
  }),
12975
- /* @__PURE__ */ jsxs41("span", {
12926
+ /* @__PURE__ */ jsxs42("span", {
12976
12927
  className: `skippr:flex-1 ${ROW_TEXT}`,
12977
12928
  children: [
12978
- /* @__PURE__ */ jsx50("span", {
12929
+ /* @__PURE__ */ jsx51("span", {
12979
12930
  className: ROW_TITLE,
12980
12931
  children: label
12981
12932
  }),
12982
- /* @__PURE__ */ jsx50("span", {
12933
+ /* @__PURE__ */ jsx51("span", {
12983
12934
  className: ROW_SUBTEXT,
12984
12935
  children: subtext
12985
12936
  })
@@ -12989,35 +12940,31 @@ function MediaRow({ icon, label, subtext, trailing }) {
12989
12940
  ]
12990
12941
  });
12991
12942
  }
12992
- var MEDIA_TRAILING_BOX = "skippr:shrink-0 skippr:rounded-full skippr:border skippr:px-[18px] skippr:py-[7px] skippr:text-[14px]";
12993
- var MEDIA_PILL = `${MEDIA_TRAILING_BOX} skippr:cursor-pointer skippr:border-[rgba(45,45,63,0.12)] skippr:font-medium skippr:transition-colors`;
12994
- var MEDIA_LINK = `${FOCUS_RING3} skippr:shrink-0 skippr:cursor-pointer skippr:rounded-[4px] skippr:text-[14px] skippr:font-medium skippr:text-[var(--skippr-brand-on-white,#2d2b3d)] skippr:underline-offset-2 skippr:hover:underline`;
12995
- var MEDIA_STATUS = "skippr:shrink-0 skippr:text-[14px] skippr:text-[#6b6875]";
12996
12943
  function EnableButton({ onEnable }) {
12997
- return /* @__PURE__ */ jsx50("button", {
12944
+ return /* @__PURE__ */ jsx51("button", {
12998
12945
  type: "button",
12999
12946
  onClick: onEnable,
13000
12947
  className: MEDIA_LINK,
13001
12948
  children: ENABLE_ACTION
13002
12949
  });
13003
12950
  }
13004
- function MediaStatus({ label }) {
13005
- return /* @__PURE__ */ jsx50("span", {
13006
- className: MEDIA_STATUS,
12951
+ function MediaStatus({ label, className }) {
12952
+ return /* @__PURE__ */ jsx51("span", {
12953
+ className,
13007
12954
  children: label
13008
12955
  });
13009
12956
  }
13010
12957
  function MicToggle({ muted, onToggle }) {
13011
- return /* @__PURE__ */ jsx50("button", {
12958
+ return /* @__PURE__ */ jsx51("button", {
13012
12959
  type: "button",
13013
12960
  onClick: onToggle,
13014
12961
  "aria-pressed": muted,
13015
12962
  "aria-label": muted ? UNMUTE_MIC_ACTION : MUTE_MIC_ACTION,
13016
12963
  className: `${MEDIA_PILL} ${FOCUS_RING3} skippr:flex skippr:items-center skippr:justify-center ${muted ? "skippr:bg-[#f2f0eb] skippr:text-[#6b6875]" : "skippr:text-[#2D2D3F] skippr:hover:bg-[#f2f0eb]"}`,
13017
- children: muted ? /* @__PURE__ */ jsx50(MicOff, {
12964
+ children: muted ? /* @__PURE__ */ jsx51(MicOff, {
13018
12965
  className: ROW_ICON,
13019
12966
  strokeWidth: ROW_ICON_STROKE
13020
- }) : /* @__PURE__ */ jsx50(Mic, {
12967
+ }) : /* @__PURE__ */ jsx51(Mic, {
13021
12968
  className: ROW_ICON,
13022
12969
  strokeWidth: ROW_ICON_STROKE
13023
12970
  })
@@ -13025,18 +12972,305 @@ function MicToggle({ muted, onToggle }) {
13025
12972
  }
13026
12973
  function ScreenTrailing({ enabled, onEnable }) {
13027
12974
  if (enabled === null)
13028
- return /* @__PURE__ */ jsx50(MediaStatus, {
13029
- label: SCREEN_NOTICE
12975
+ return /* @__PURE__ */ jsx51(MediaStatus, {
12976
+ label: SCREEN_NOTICE,
12977
+ className: MEDIA_STATUS_BRAND
13030
12978
  });
13031
12979
  if (enabled)
13032
- return /* @__PURE__ */ jsx50(MediaStatus, {
13033
- label: MEDIA_ENABLED_STATUS
12980
+ return /* @__PURE__ */ jsx51(MediaStatus, {
12981
+ label: MEDIA_ENABLED_STATUS,
12982
+ className: MEDIA_STATUS_BRAND
13034
12983
  });
13035
- return /* @__PURE__ */ jsx50(EnableButton, {
12984
+ return /* @__PURE__ */ jsx51(EnableButton, {
13036
12985
  onEnable
13037
12986
  });
13038
12987
  }
13039
- function SplashDefault({
12988
+ function SplashMediaSection({
12989
+ copy,
12990
+ micEnabled,
12991
+ startMuted,
12992
+ screenEnabled,
12993
+ enableMic,
12994
+ toggleStartMuted,
12995
+ enableScreen
12996
+ }) {
12997
+ return /* @__PURE__ */ jsxs42("section", {
12998
+ className: SECTION_BLOCK,
12999
+ children: [
13000
+ /* @__PURE__ */ jsx51("h3", {
13001
+ className: SECTION_HEADING,
13002
+ children: copy.mediaHeading
13003
+ }),
13004
+ /* @__PURE__ */ jsxs42("ul", {
13005
+ className: "skippr:flex skippr:flex-col skippr:gap-[14px]",
13006
+ children: [
13007
+ /* @__PURE__ */ jsx51(MediaRow, {
13008
+ icon: /* @__PURE__ */ jsx51(Mic, {
13009
+ className: ROW_ICON,
13010
+ strokeWidth: ROW_ICON_STROKE
13011
+ }),
13012
+ label: copy.micLabel,
13013
+ subtext: copy.micSubtext,
13014
+ trailing: micEnabled ? /* @__PURE__ */ jsxs42("span", {
13015
+ className: "skippr:flex skippr:shrink-0 skippr:items-center skippr:gap-2",
13016
+ children: [
13017
+ /* @__PURE__ */ jsx51(MicToggle, {
13018
+ muted: startMuted,
13019
+ onToggle: toggleStartMuted
13020
+ }),
13021
+ /* @__PURE__ */ jsx51(MediaStatus, {
13022
+ label: startMuted ? MIC_MUTED_STATUS : MEDIA_ENABLED_STATUS,
13023
+ className: startMuted ? MEDIA_STATUS_MUTED : MEDIA_STATUS_BRAND
13024
+ })
13025
+ ]
13026
+ }) : /* @__PURE__ */ jsx51(EnableButton, {
13027
+ onEnable: enableMic
13028
+ })
13029
+ }),
13030
+ /* @__PURE__ */ jsx51(MediaRow, {
13031
+ icon: /* @__PURE__ */ jsx51(MonitorUp, {
13032
+ className: ROW_ICON,
13033
+ strokeWidth: ROW_ICON_STROKE
13034
+ }),
13035
+ label: copy.screenLabel,
13036
+ subtext: copy.screenSubtext,
13037
+ trailing: /* @__PURE__ */ jsx51(ScreenTrailing, {
13038
+ enabled: screenEnabled,
13039
+ onEnable: enableScreen
13040
+ })
13041
+ })
13042
+ ]
13043
+ })
13044
+ ]
13045
+ });
13046
+ }
13047
+
13048
+ // src/components/SplashAlwaysOn.tsx
13049
+ import { jsx as jsx52, jsxs as jsxs43 } from "react/jsx-runtime";
13050
+ var ATTRIBUTION_PREFIX2 = "AI Agent Powered by";
13051
+ var ATTRIBUTION_BRAND2 = "Skippr";
13052
+ var ATTRIBUTION_URL2 = "https://www.skippr.ai/";
13053
+ var CLOSE_LABEL = "Close";
13054
+ var CONSENT_LEAD_IN = "By starting a session";
13055
+ function TipRow({
13056
+ title,
13057
+ subtext,
13058
+ onStart
13059
+ }) {
13060
+ return /* @__PURE__ */ jsx52("li", {
13061
+ children: /* @__PURE__ */ jsxs43("button", {
13062
+ type: "button",
13063
+ onClick: onStart,
13064
+ className: `${FOCUS_RING3} skippr:flex skippr:w-full skippr:cursor-pointer skippr:items-start skippr:gap-3 skippr:rounded-[11px] skippr:text-left skippr:transition-colors skippr:hover:bg-[rgba(45,45,63,0.04)]`,
13065
+ children: [
13066
+ /* @__PURE__ */ jsx52("span", {
13067
+ className: ICON_TILE_BRAND,
13068
+ children: /* @__PURE__ */ jsx52(Lightbulb, {
13069
+ className: ROW_ICON,
13070
+ strokeWidth: ROW_ICON_STROKE
13071
+ })
13072
+ }),
13073
+ /* @__PURE__ */ jsxs43("span", {
13074
+ className: ROW_TEXT,
13075
+ children: [
13076
+ /* @__PURE__ */ jsx52("span", {
13077
+ className: ROW_TITLE,
13078
+ children: title
13079
+ }),
13080
+ /* @__PURE__ */ jsx52("span", {
13081
+ className: ROW_SUBTEXT,
13082
+ children: subtext
13083
+ })
13084
+ ]
13085
+ })
13086
+ ]
13087
+ })
13088
+ });
13089
+ }
13090
+ function SplashAlwaysOn({
13091
+ agentName,
13092
+ presentation,
13093
+ headerIconUrl,
13094
+ attributionVisible,
13095
+ tips,
13096
+ micEnabled,
13097
+ startMuted,
13098
+ screenEnabled,
13099
+ enableMic,
13100
+ toggleStartMuted,
13101
+ enableScreen,
13102
+ startTip,
13103
+ start,
13104
+ dismiss
13105
+ }) {
13106
+ const { copy, card } = presentation;
13107
+ return /* @__PURE__ */ jsxs43("section", {
13108
+ "aria-label": agentName,
13109
+ style: { maxWidth: card.width, maxHeight: `${card.maxHeight}vh` },
13110
+ className: "skippr:flex skippr:w-full skippr:flex-col skippr:overflow-hidden skippr:rounded-[16px] skippr:bg-white skippr:shadow-[0_0_0_1px_rgba(45,45,63,0.10),0_1px_2px_rgba(45,45,63,0.04)]",
13111
+ children: [
13112
+ /* @__PURE__ */ jsxs43("div", {
13113
+ className: "skippr:flex skippr:shrink-0 skippr:items-start skippr:justify-between skippr:gap-3 skippr:border-b skippr:border-[rgba(45,45,63,0.06)] skippr:bg-[rgba(45,45,63,0.03)] skippr:px-[22px] skippr:pt-5 skippr:pb-4",
13114
+ children: [
13115
+ /* @__PURE__ */ jsxs43("div", {
13116
+ className: "skippr:flex skippr:min-w-0 skippr:flex-col skippr:gap-1",
13117
+ children: [
13118
+ /* @__PURE__ */ jsxs43("span", {
13119
+ className: "skippr:flex skippr:min-w-0 skippr:items-center skippr:gap-1.5 skippr:text-[#2D2D3F]",
13120
+ children: [
13121
+ headerIconUrl ? /* @__PURE__ */ jsx52("img", {
13122
+ src: headerIconUrl,
13123
+ alt: "",
13124
+ className: `skippr:shrink-0 skippr:object-contain ${ROW_ICON}`
13125
+ }) : /* @__PURE__ */ jsx52(Sparkles, {
13126
+ className: `skippr:shrink-0 ${ROW_ICON}`,
13127
+ strokeWidth: ROW_ICON_STROKE,
13128
+ "aria-hidden": true
13129
+ }),
13130
+ /* @__PURE__ */ jsx52("span", {
13131
+ className: "skippr:truncate skippr:text-[18px] skippr:font-semibold skippr:tracking-[-0.0125em]",
13132
+ children: agentName
13133
+ })
13134
+ ]
13135
+ }),
13136
+ attributionVisible && /* @__PURE__ */ jsxs43("a", {
13137
+ href: ATTRIBUTION_URL2,
13138
+ target: "_blank",
13139
+ rel: "noopener noreferrer",
13140
+ className: `${FOCUS_RING3} skippr:flex skippr:w-fit skippr:cursor-pointer skippr:items-center skippr:gap-1.5 skippr:rounded-[4px] skippr:text-[14px] skippr:text-[#6b6875] skippr:transition-colors skippr:hover:text-[#2D2D3F]`,
13141
+ children: [
13142
+ /* @__PURE__ */ jsx52(LogoMark, {
13143
+ decorative: true,
13144
+ className: "skippr:size-[13px]"
13145
+ }),
13146
+ ATTRIBUTION_PREFIX2,
13147
+ " ",
13148
+ /* @__PURE__ */ jsx52("span", {
13149
+ className: "skippr:font-medium skippr:text-[#2D2D3F] skippr:underline skippr:underline-offset-2",
13150
+ children: ATTRIBUTION_BRAND2
13151
+ })
13152
+ ]
13153
+ })
13154
+ ]
13155
+ }),
13156
+ /* @__PURE__ */ jsx52("button", {
13157
+ type: "button",
13158
+ onClick: dismiss,
13159
+ "aria-label": CLOSE_LABEL,
13160
+ className: `${FOCUS_RING3} skippr:ml-auto skippr:flex skippr:size-6 skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:text-[#6b6875] skippr:transition-colors skippr:hover:bg-[#f2f0eb] skippr:hover:text-[#2D2D3F]`,
13161
+ children: /* @__PURE__ */ jsx52(X, {
13162
+ className: "skippr:size-4",
13163
+ strokeWidth: 2
13164
+ })
13165
+ })
13166
+ ]
13167
+ }),
13168
+ /* @__PURE__ */ jsxs43("div", {
13169
+ className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:gap-[14px] skippr:overflow-y-auto skippr:px-[22px] skippr:pt-[18px]",
13170
+ children: [
13171
+ /* @__PURE__ */ jsxs43("section", {
13172
+ className: SECTION_BLOCK,
13173
+ children: [
13174
+ /* @__PURE__ */ jsx52("h3", {
13175
+ className: SECTION_HEADING,
13176
+ children: copy.tipsHeading
13177
+ }),
13178
+ /* @__PURE__ */ jsx52("ul", {
13179
+ className: "skippr:flex skippr:flex-col skippr:gap-[14px]",
13180
+ children: tips.length > 0 ? tips.map((tip) => /* @__PURE__ */ jsx52(TipRow, {
13181
+ title: tip.displayMessage,
13182
+ subtext: tip.objective,
13183
+ onStart: () => startTip(tip)
13184
+ }, tip.goalId)) : /* @__PURE__ */ jsx52(TipRow, {
13185
+ title: copy.tipsEmptyTitle,
13186
+ subtext: copy.tipsEmptyDescription,
13187
+ onStart: start
13188
+ })
13189
+ })
13190
+ ]
13191
+ }),
13192
+ /* @__PURE__ */ jsx52(SplashMediaSection, {
13193
+ copy,
13194
+ micEnabled,
13195
+ startMuted,
13196
+ screenEnabled,
13197
+ enableMic,
13198
+ toggleStartMuted,
13199
+ enableScreen
13200
+ })
13201
+ ]
13202
+ }),
13203
+ /* @__PURE__ */ jsxs43("div", {
13204
+ className: "skippr:shrink-0 skippr:px-[22px] skippr:pt-[22px] skippr:pb-[22px]",
13205
+ children: [
13206
+ /* @__PURE__ */ jsxs43("button", {
13207
+ type: "button",
13208
+ onClick: start,
13209
+ className: `${FOCUS_RING3} skippr:flex skippr:w-full skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:gap-2 skippr:rounded-full skippr:bg-primary skippr:px-5 skippr:py-[13px] skippr:text-[16px] skippr:font-semibold skippr:text-primary-foreground skippr:transition-all skippr:hover:bg-primary/90`,
13210
+ children: [
13211
+ /* @__PURE__ */ jsx52(Sparkles, {
13212
+ className: "skippr:size-4",
13213
+ strokeWidth: ROW_ICON_STROKE,
13214
+ "aria-hidden": true
13215
+ }),
13216
+ copy.tipsCta
13217
+ ]
13218
+ }),
13219
+ /* @__PURE__ */ jsx52(ConsentNotice, {
13220
+ leadIn: CONSENT_LEAD_IN,
13221
+ className: "skippr:mt-3"
13222
+ })
13223
+ ]
13224
+ })
13225
+ ]
13226
+ });
13227
+ }
13228
+
13229
+ // src/components/SplashPrimary.tsx
13230
+ import { jsx as jsx53, jsxs as jsxs44, Fragment as Fragment8 } from "react/jsx-runtime";
13231
+ var ATTRIBUTION_PREFIX3 = "AI Agent Powered by";
13232
+ var ATTRIBUTION_BRAND3 = "Skippr";
13233
+ var ATTRIBUTION_URL3 = "https://www.skippr.ai/";
13234
+ var CLOSE_LABEL2 = "Close";
13235
+ var CONSENT_LEAD_IN2 = "By starting a session";
13236
+ var GLYPH_COMPONENT = {
13237
+ [SPLASH_SECTION_GLYPH.Route]: Route,
13238
+ [SPLASH_SECTION_GLYPH.Messages]: MessagesSquare,
13239
+ [SPLASH_SECTION_GLYPH.Pointer]: MousePointerClick
13240
+ };
13241
+ function SectionRow({ iconUrl, glyph, title, description }) {
13242
+ const Glyph = glyph ? GLYPH_COMPONENT[glyph] : Sparkles;
13243
+ return /* @__PURE__ */ jsxs44("li", {
13244
+ className: "skippr:flex skippr:items-start skippr:gap-3",
13245
+ children: [
13246
+ /* @__PURE__ */ jsx53("span", {
13247
+ className: ICON_TILE,
13248
+ children: iconUrl ? /* @__PURE__ */ jsx53("img", {
13249
+ src: iconUrl,
13250
+ alt: "",
13251
+ className: `skippr:object-contain ${ROW_ICON}`
13252
+ }) : /* @__PURE__ */ jsx53(Glyph, {
13253
+ className: ROW_ICON,
13254
+ strokeWidth: ROW_ICON_STROKE
13255
+ })
13256
+ }),
13257
+ /* @__PURE__ */ jsxs44("span", {
13258
+ className: ROW_TEXT,
13259
+ children: [
13260
+ /* @__PURE__ */ jsx53("span", {
13261
+ className: ROW_TITLE,
13262
+ children: title
13263
+ }),
13264
+ /* @__PURE__ */ jsx53("span", {
13265
+ className: ROW_SUBTEXT,
13266
+ children: description
13267
+ })
13268
+ ]
13269
+ })
13270
+ ]
13271
+ });
13272
+ }
13273
+ function SplashPrimary({
13040
13274
  agentName,
13041
13275
  presentation,
13042
13276
  headerIconUrl,
@@ -13056,111 +13290,111 @@ function SplashDefault({
13056
13290
  dismiss
13057
13291
  }) {
13058
13292
  const { copy, card } = presentation;
13059
- return /* @__PURE__ */ jsxs41("section", {
13293
+ return /* @__PURE__ */ jsxs44("section", {
13060
13294
  "aria-label": agentName,
13061
13295
  style: { maxWidth: card.width, maxHeight: `${card.maxHeight}vh` },
13062
13296
  className: "skippr:flex skippr:w-full skippr:flex-col skippr:overflow-hidden skippr:rounded-[16px] skippr:bg-white skippr:shadow-[0_0_0_1px_rgba(45,45,63,0.10),0_1px_2px_rgba(45,45,63,0.04)]",
13063
13297
  children: [
13064
- /* @__PURE__ */ jsxs41("div", {
13298
+ /* @__PURE__ */ jsxs44("div", {
13065
13299
  className: "skippr:flex skippr:shrink-0 skippr:items-start skippr:justify-between skippr:gap-3 skippr:border-b skippr:border-[rgba(45,45,63,0.06)] skippr:bg-[rgba(45,45,63,0.03)] skippr:px-[22px] skippr:pt-5 skippr:pb-4",
13066
13300
  children: [
13067
- /* @__PURE__ */ jsxs41("div", {
13301
+ /* @__PURE__ */ jsxs44("div", {
13068
13302
  className: "skippr:flex skippr:min-w-0 skippr:flex-col skippr:gap-1",
13069
13303
  children: [
13070
- /* @__PURE__ */ jsxs41("span", {
13304
+ /* @__PURE__ */ jsxs44("span", {
13071
13305
  className: "skippr:flex skippr:min-w-0 skippr:items-center skippr:gap-1.5 skippr:text-[#2D2D3F]",
13072
13306
  children: [
13073
- headerIconUrl ? /* @__PURE__ */ jsx50("img", {
13307
+ headerIconUrl ? /* @__PURE__ */ jsx53("img", {
13074
13308
  src: headerIconUrl,
13075
13309
  alt: "",
13076
13310
  className: `skippr:shrink-0 skippr:object-contain ${ROW_ICON}`
13077
- }) : /* @__PURE__ */ jsx50(Sparkles, {
13311
+ }) : /* @__PURE__ */ jsx53(Sparkles, {
13078
13312
  className: `skippr:shrink-0 ${ROW_ICON}`,
13079
13313
  strokeWidth: ROW_ICON_STROKE,
13080
13314
  "aria-hidden": true
13081
13315
  }),
13082
- /* @__PURE__ */ jsx50("span", {
13316
+ /* @__PURE__ */ jsx53("span", {
13083
13317
  className: "skippr:truncate skippr:text-[18px] skippr:font-semibold skippr:tracking-[-0.0125em]",
13084
13318
  children: agentName
13085
13319
  })
13086
13320
  ]
13087
13321
  }),
13088
- attributionVisible && /* @__PURE__ */ jsxs41("a", {
13089
- href: ATTRIBUTION_URL2,
13322
+ attributionVisible && /* @__PURE__ */ jsxs44("a", {
13323
+ href: ATTRIBUTION_URL3,
13090
13324
  target: "_blank",
13091
13325
  rel: "noopener noreferrer",
13092
13326
  className: `${FOCUS_RING3} skippr:flex skippr:w-fit skippr:cursor-pointer skippr:items-center skippr:gap-1.5 skippr:rounded-[4px] skippr:text-[14px] skippr:text-[#6b6875] skippr:transition-colors skippr:hover:text-[#2D2D3F]`,
13093
13327
  children: [
13094
- /* @__PURE__ */ jsx50(Logo, {
13328
+ /* @__PURE__ */ jsx53(LogoMark, {
13095
13329
  decorative: true,
13096
13330
  className: "skippr:size-[13px]"
13097
13331
  }),
13098
- ATTRIBUTION_PREFIX2,
13332
+ ATTRIBUTION_PREFIX3,
13099
13333
  " ",
13100
- /* @__PURE__ */ jsx50("span", {
13334
+ /* @__PURE__ */ jsx53("span", {
13101
13335
  className: "skippr:font-medium skippr:text-[#2D2D3F] skippr:underline skippr:underline-offset-2",
13102
- children: ATTRIBUTION_BRAND2
13336
+ children: ATTRIBUTION_BRAND3
13103
13337
  })
13104
13338
  ]
13105
13339
  })
13106
13340
  ]
13107
13341
  }),
13108
- /* @__PURE__ */ jsx50("button", {
13342
+ /* @__PURE__ */ jsx53("button", {
13109
13343
  type: "button",
13110
13344
  onClick: dismiss,
13111
- "aria-label": CLOSE_LABEL,
13345
+ "aria-label": CLOSE_LABEL2,
13112
13346
  className: `${FOCUS_RING3} skippr:ml-auto skippr:flex skippr:size-6 skippr:shrink-0 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-full skippr:text-[#6b6875] skippr:transition-colors skippr:hover:bg-[#f2f0eb] skippr:hover:text-[#2D2D3F]`,
13113
- children: /* @__PURE__ */ jsx50(X, {
13347
+ children: /* @__PURE__ */ jsx53(X, {
13114
13348
  className: "skippr:size-4",
13115
13349
  strokeWidth: 2
13116
13350
  })
13117
13351
  })
13118
13352
  ]
13119
13353
  }),
13120
- /* @__PURE__ */ jsxs41("div", {
13354
+ /* @__PURE__ */ jsxs44("div", {
13121
13355
  className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:gap-[14px] skippr:overflow-y-auto skippr:px-[22px] skippr:pt-[18px]",
13122
13356
  children: [
13123
- intent === SPLASH_INTENT.Start ? sections.length > 0 && /* @__PURE__ */ jsxs41("section", {
13357
+ intent === SPLASH_INTENT.Start ? sections.length > 0 && /* @__PURE__ */ jsxs44("section", {
13124
13358
  className: SECTION_BLOCK,
13125
13359
  children: [
13126
- /* @__PURE__ */ jsx50("h3", {
13360
+ /* @__PURE__ */ jsx53("h3", {
13127
13361
  className: SECTION_HEADING,
13128
13362
  children: copy.howItWorksHeading
13129
13363
  }),
13130
- /* @__PURE__ */ jsx50("ul", {
13364
+ /* @__PURE__ */ jsx53("ul", {
13131
13365
  className: "skippr:flex skippr:flex-col skippr:gap-[14px]",
13132
- children: sections.map((section) => /* @__PURE__ */ jsx50(SectionRow, {
13366
+ children: sections.map((section) => /* @__PURE__ */ jsx53(SectionRow, {
13133
13367
  ...section
13134
13368
  }, section.id))
13135
13369
  })
13136
13370
  ]
13137
- }) : /* @__PURE__ */ jsxs41(Fragment9, {
13371
+ }) : /* @__PURE__ */ jsxs44(Fragment8, {
13138
13372
  children: [
13139
- lastCompletedPhase && /* @__PURE__ */ jsxs41("section", {
13373
+ lastCompletedPhase && /* @__PURE__ */ jsxs44("section", {
13140
13374
  className: SECTION_BLOCK,
13141
13375
  children: [
13142
- /* @__PURE__ */ jsx50("h3", {
13376
+ /* @__PURE__ */ jsx53("h3", {
13143
13377
  className: SECTION_HEADING,
13144
13378
  children: copy.lastAccomplishmentHeading
13145
13379
  }),
13146
- /* @__PURE__ */ jsxs41("div", {
13380
+ /* @__PURE__ */ jsxs44("div", {
13147
13381
  className: "skippr:flex skippr:items-start skippr:gap-3",
13148
13382
  children: [
13149
- /* @__PURE__ */ jsx50("span", {
13150
- className: "skippr:flex skippr:size-[38px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-[11px] skippr:bg-brand/10 skippr:text-brand",
13151
- children: /* @__PURE__ */ jsx50(Check, {
13383
+ /* @__PURE__ */ jsx53("span", {
13384
+ className: ICON_TILE_BRAND,
13385
+ children: /* @__PURE__ */ jsx53(Check, {
13152
13386
  className: ROW_ICON,
13153
13387
  strokeWidth: 2.2
13154
13388
  })
13155
13389
  }),
13156
- /* @__PURE__ */ jsxs41("span", {
13390
+ /* @__PURE__ */ jsxs44("span", {
13157
13391
  className: ROW_TEXT,
13158
13392
  children: [
13159
- /* @__PURE__ */ jsx50("span", {
13393
+ /* @__PURE__ */ jsx53("span", {
13160
13394
  className: ROW_TITLE,
13161
13395
  children: lastCompletedPhase.name
13162
13396
  }),
13163
- /* @__PURE__ */ jsx50("span", {
13397
+ /* @__PURE__ */ jsx53("span", {
13164
13398
  className: ROW_SUBTEXT,
13165
13399
  children: lastCompletedPhase.description
13166
13400
  })
@@ -13170,30 +13404,30 @@ function SplashDefault({
13170
13404
  })
13171
13405
  ]
13172
13406
  }),
13173
- upcomingPhases.length > 0 && /* @__PURE__ */ jsxs41("section", {
13407
+ upcomingPhases.length > 0 && /* @__PURE__ */ jsxs44("section", {
13174
13408
  className: SECTION_BLOCK,
13175
13409
  children: [
13176
- /* @__PURE__ */ jsx50("h3", {
13410
+ /* @__PURE__ */ jsx53("h3", {
13177
13411
  className: SECTION_HEADING,
13178
13412
  children: copy.upNextHeading
13179
13413
  }),
13180
- /* @__PURE__ */ jsx50("ol", {
13414
+ /* @__PURE__ */ jsx53("ol", {
13181
13415
  className: "skippr:flex skippr:flex-col skippr:gap-3",
13182
- children: upcomingPhases.map((phase, index2) => /* @__PURE__ */ jsxs41("li", {
13416
+ children: upcomingPhases.map((phase, index2) => /* @__PURE__ */ jsxs44("li", {
13183
13417
  className: "skippr:flex skippr:items-start skippr:gap-3",
13184
13418
  children: [
13185
- /* @__PURE__ */ jsx50("span", {
13419
+ /* @__PURE__ */ jsx53("span", {
13186
13420
  className: "skippr:flex skippr:size-[26px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-[#f2f0eb] skippr:text-[12px] skippr:font-semibold skippr:text-[#6b6875]",
13187
13421
  children: index2 + 1
13188
13422
  }),
13189
- /* @__PURE__ */ jsxs41("span", {
13423
+ /* @__PURE__ */ jsxs44("span", {
13190
13424
  className: ROW_TEXT,
13191
13425
  children: [
13192
- /* @__PURE__ */ jsx50("span", {
13426
+ /* @__PURE__ */ jsx53("span", {
13193
13427
  className: `skippr:truncate ${ROW_TITLE}`,
13194
13428
  children: phase.name
13195
13429
  }),
13196
- /* @__PURE__ */ jsx50("span", {
13430
+ /* @__PURE__ */ jsx53("span", {
13197
13431
  className: ROW_SUBTEXT,
13198
13432
  children: phase.description
13199
13433
  })
@@ -13206,65 +13440,26 @@ function SplashDefault({
13206
13440
  })
13207
13441
  ]
13208
13442
  }),
13209
- /* @__PURE__ */ jsxs41("section", {
13210
- className: SECTION_BLOCK,
13211
- children: [
13212
- /* @__PURE__ */ jsx50("h3", {
13213
- className: SECTION_HEADING,
13214
- children: copy.mediaHeading
13215
- }),
13216
- /* @__PURE__ */ jsxs41("ul", {
13217
- className: "skippr:flex skippr:flex-col skippr:gap-[14px]",
13218
- children: [
13219
- /* @__PURE__ */ jsx50(MediaRow, {
13220
- icon: /* @__PURE__ */ jsx50(Mic, {
13221
- className: ROW_ICON,
13222
- strokeWidth: ROW_ICON_STROKE
13223
- }),
13224
- label: copy.micLabel,
13225
- subtext: copy.micSubtext,
13226
- trailing: micEnabled ? /* @__PURE__ */ jsxs41("span", {
13227
- className: "skippr:flex skippr:shrink-0 skippr:items-center skippr:gap-2",
13228
- children: [
13229
- /* @__PURE__ */ jsx50(MediaStatus, {
13230
- label: startMuted ? MIC_MUTED_STATUS : MEDIA_ENABLED_STATUS
13231
- }),
13232
- /* @__PURE__ */ jsx50(MicToggle, {
13233
- muted: startMuted,
13234
- onToggle: toggleStartMuted
13235
- })
13236
- ]
13237
- }) : /* @__PURE__ */ jsx50(EnableButton, {
13238
- onEnable: enableMic
13239
- })
13240
- }),
13241
- /* @__PURE__ */ jsx50(MediaRow, {
13242
- icon: /* @__PURE__ */ jsx50(MonitorUp, {
13243
- className: ROW_ICON,
13244
- strokeWidth: ROW_ICON_STROKE
13245
- }),
13246
- label: copy.screenLabel,
13247
- subtext: copy.screenSubtext,
13248
- trailing: /* @__PURE__ */ jsx50(ScreenTrailing, {
13249
- enabled: screenEnabled,
13250
- onEnable: enableScreen
13251
- })
13252
- })
13253
- ]
13254
- })
13255
- ]
13443
+ /* @__PURE__ */ jsx53(SplashMediaSection, {
13444
+ copy,
13445
+ micEnabled,
13446
+ startMuted,
13447
+ screenEnabled,
13448
+ enableMic,
13449
+ toggleStartMuted,
13450
+ enableScreen
13256
13451
  })
13257
13452
  ]
13258
13453
  }),
13259
- /* @__PURE__ */ jsxs41("div", {
13454
+ /* @__PURE__ */ jsxs44("div", {
13260
13455
  className: "skippr:shrink-0 skippr:px-[22px] skippr:pt-[22px] skippr:pb-[22px]",
13261
13456
  children: [
13262
- /* @__PURE__ */ jsxs41("button", {
13457
+ /* @__PURE__ */ jsxs44("button", {
13263
13458
  type: "button",
13264
13459
  onClick: start,
13265
13460
  className: `${FOCUS_RING3} skippr:flex skippr:w-full skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:gap-2 skippr:rounded-full skippr:bg-primary skippr:px-5 skippr:py-[13px] skippr:text-[16px] skippr:font-semibold skippr:text-primary-foreground skippr:transition-all skippr:hover:bg-primary/90`,
13266
13461
  children: [
13267
- /* @__PURE__ */ jsx50(Sparkles, {
13462
+ /* @__PURE__ */ jsx53(Sparkles, {
13268
13463
  className: "skippr:size-4",
13269
13464
  strokeWidth: ROW_ICON_STROKE,
13270
13465
  "aria-hidden": true
@@ -13272,14 +13467,14 @@ function SplashDefault({
13272
13467
  intent === SPLASH_INTENT.Start ? copy.startCta : copy.continueCta
13273
13468
  ]
13274
13469
  }),
13275
- skipButtonVisible && /* @__PURE__ */ jsx50("button", {
13470
+ skipButtonVisible && /* @__PURE__ */ jsx53("button", {
13276
13471
  type: "button",
13277
13472
  onClick: dismiss,
13278
13473
  className: `${ROW_SUBTEXT} ${FOCUS_RING3} skippr:mt-2 skippr:block skippr:w-full skippr:cursor-pointer skippr:py-1 skippr:text-center skippr:transition-colors skippr:hover:text-[#2D2D3F]`,
13279
13474
  children: copy.dismissLabel
13280
13475
  }),
13281
- /* @__PURE__ */ jsx50(ConsentNotice, {
13282
- leadIn: CONSENT_LEAD_IN,
13476
+ /* @__PURE__ */ jsx53(ConsentNotice, {
13477
+ leadIn: CONSENT_LEAD_IN2,
13283
13478
  className: "skippr:mt-3"
13284
13479
  })
13285
13480
  ]
@@ -13289,7 +13484,7 @@ function SplashDefault({
13289
13484
  }
13290
13485
 
13291
13486
  // src/components/SplashOverlay.tsx
13292
- import { jsx as jsx51 } from "react/jsx-runtime";
13487
+ import { jsx as jsx54 } from "react/jsx-runtime";
13293
13488
  var SPLASH_OVERLAY_BACKDROP = "rgba(45, 45, 63, 0.45)";
13294
13489
  var SPLASH_OVERLAY_Z_INDEX = 9999;
13295
13490
  var BACKDROP_STYLE = {
@@ -13310,7 +13505,7 @@ function SplashOverlay({ width, maxHeight }) {
13310
13505
  }
13311
13506
  if (!ctx.isSplashConfigured)
13312
13507
  return null;
13313
- return /* @__PURE__ */ jsx51(SplashOverlayCard, {
13508
+ return /* @__PURE__ */ jsx54(SplashOverlayCard, {
13314
13509
  accentColor: ctx.appearance?.accentColor ?? null,
13315
13510
  width,
13316
13511
  maxHeight
@@ -13328,15 +13523,19 @@ function SplashOverlayCard({
13328
13523
  width: width === undefined ? state.presentation.card.width : clampSplashWidth(width),
13329
13524
  maxHeight: maxHeight === undefined ? state.presentation.card.maxHeight : clampSplashMaxHeight(maxHeight)
13330
13525
  };
13331
- return /* @__PURE__ */ jsx51("div", {
13526
+ const presentation = { ...state.presentation, card };
13527
+ return /* @__PURE__ */ jsx54("div", {
13332
13528
  style: BACKDROP_STYLE,
13333
- children: /* @__PURE__ */ jsx51("div", {
13529
+ children: /* @__PURE__ */ jsx54("div", {
13334
13530
  style: { ...CARD_STYLE, maxWidth: card.width },
13335
- children: /* @__PURE__ */ jsx51(ShadowHost, {
13531
+ children: /* @__PURE__ */ jsx54(ShadowHost, {
13336
13532
  accentColor,
13337
- children: /* @__PURE__ */ jsx51(SplashDefault, {
13533
+ children: state.layout === SPLASH_LAYOUT.AlwaysOn ? /* @__PURE__ */ jsx54(SplashAlwaysOn, {
13338
13534
  ...state,
13339
- presentation: { ...state.presentation, card }
13535
+ presentation
13536
+ }) : /* @__PURE__ */ jsx54(SplashPrimary, {
13537
+ ...state,
13538
+ presentation
13340
13539
  })
13341
13540
  })
13342
13541
  })
@@ -13344,7 +13543,7 @@ function SplashOverlayCard({
13344
13543
  }
13345
13544
  // src/components/SplashScreen.tsx
13346
13545
  import { useContext as useContext27 } from "react";
13347
- import { jsx as jsx52 } from "react/jsx-runtime";
13546
+ import { jsx as jsx55 } from "react/jsx-runtime";
13348
13547
  function SplashScreen({ className, onDismiss }) {
13349
13548
  const ctx = useContext27(LiveAgentContext);
13350
13549
  if (!ctx) {
@@ -13353,18 +13552,20 @@ function SplashScreen({ className, onDismiss }) {
13353
13552
  const state = useSplash(onDismiss);
13354
13553
  if (!state)
13355
13554
  return null;
13356
- return /* @__PURE__ */ jsx52(ShadowHost, {
13555
+ return /* @__PURE__ */ jsx55(ShadowHost, {
13357
13556
  className,
13358
13557
  accentColor: ctx.appearance?.accentColor ?? null,
13359
- children: /* @__PURE__ */ jsx52(SplashDefault, {
13558
+ children: state.layout === SPLASH_LAYOUT.AlwaysOn ? /* @__PURE__ */ jsx55(SplashAlwaysOn, {
13559
+ ...state
13560
+ }) : /* @__PURE__ */ jsx55(SplashPrimary, {
13360
13561
  ...state
13361
13562
  })
13362
13563
  });
13363
13564
  }
13364
13565
  // src/hooks/useIsLocalSpeaking.ts
13365
- import { useIsSpeaking as useIsSpeaking2, useLocalParticipant as useLocalParticipant14 } from "@livekit/components-react/hooks";
13566
+ import { useIsSpeaking as useIsSpeaking2, useLocalParticipant as useLocalParticipant13 } from "@livekit/components-react/hooks";
13366
13567
  function useIsLocalSpeaking() {
13367
- const { localParticipant } = useLocalParticipant14();
13568
+ const { localParticipant } = useLocalParticipant13();
13368
13569
  return useIsSpeaking2(localParticipant);
13369
13570
  }
13370
13571
  // src/hooks/useIsSessionHeld.ts