@skippr/live-agent-sdk 0.80.0 → 0.81.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.
- package/dist/esm/lib-exports.js +344 -330
- package/dist/skippr-sdk.css +1 -1
- package/dist/skippr-sdk.js +105 -105
- package/dist/types/capture/agentActionSignal.d.ts +3 -5
- package/dist/types/components/StopActionsIcon.d.ts +5 -0
- package/dist/types/hooks/useActionControl.d.ts +1 -3
- package/dist/types/hooks/usePlanUpdates.d.ts +1 -1
- package/package.json +1 -1
package/dist/esm/lib-exports.js
CHANGED
|
@@ -2569,22 +2569,15 @@ function onSnapshotRequest(handler) {
|
|
|
2569
2569
|
function requestSnapshotAfterAction() {
|
|
2570
2570
|
snapshotRequestHandler?.();
|
|
2571
2571
|
}
|
|
2572
|
-
var
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
|
|
2576
|
-
return;
|
|
2577
|
-
actionsPaused = paused;
|
|
2578
|
-
for (const cb of pausedSubscribers)
|
|
2579
|
-
cb(paused);
|
|
2580
|
-
}
|
|
2581
|
-
function isActionsPaused() {
|
|
2582
|
-
return actionsPaused;
|
|
2572
|
+
var stopSubscribers = new Set;
|
|
2573
|
+
function stopActions() {
|
|
2574
|
+
for (const subscriber of stopSubscribers)
|
|
2575
|
+
subscriber();
|
|
2583
2576
|
}
|
|
2584
|
-
function
|
|
2585
|
-
|
|
2577
|
+
function onActionsStopped(subscriber) {
|
|
2578
|
+
stopSubscribers.add(subscriber);
|
|
2586
2579
|
return () => {
|
|
2587
|
-
|
|
2580
|
+
stopSubscribers.delete(subscriber);
|
|
2588
2581
|
};
|
|
2589
2582
|
}
|
|
2590
2583
|
var actionsBusy = false;
|
|
@@ -2593,16 +2586,16 @@ function setActionsBusy(busy) {
|
|
|
2593
2586
|
if (actionsBusy === busy)
|
|
2594
2587
|
return;
|
|
2595
2588
|
actionsBusy = busy;
|
|
2596
|
-
for (const
|
|
2597
|
-
|
|
2589
|
+
for (const subscriber of busySubscribers)
|
|
2590
|
+
subscriber(busy);
|
|
2598
2591
|
}
|
|
2599
2592
|
function isActionsBusy() {
|
|
2600
2593
|
return actionsBusy;
|
|
2601
2594
|
}
|
|
2602
|
-
function subscribeActionsBusy(
|
|
2603
|
-
busySubscribers.add(
|
|
2595
|
+
function subscribeActionsBusy(subscriber) {
|
|
2596
|
+
busySubscribers.add(subscriber);
|
|
2604
2597
|
return () => {
|
|
2605
|
-
busySubscribers.delete(
|
|
2598
|
+
busySubscribers.delete(subscriber);
|
|
2606
2599
|
};
|
|
2607
2600
|
}
|
|
2608
2601
|
|
|
@@ -3597,6 +3590,7 @@ import { useDataChannel as useDataChannel2 } from "@livekit/components-react/hoo
|
|
|
3597
3590
|
import { useCallback as useCallback9, useEffect as useEffect16, useRef as useRef10 } from "react";
|
|
3598
3591
|
var STEP_MAX_WAIT_MS = 5000;
|
|
3599
3592
|
var POST_ACTION_SETTLE_SNAPSHOT_MS = 300;
|
|
3593
|
+
var TRAILING_ACTION_FLUSH_AFTER_STOP_MS = 1000;
|
|
3600
3594
|
var textDecoder2 = new TextDecoder;
|
|
3601
3595
|
function parseScrollDirection(value) {
|
|
3602
3596
|
return value === "down" || value === "up" || value === "top" || value === "bottom" ? value : null;
|
|
@@ -3816,6 +3810,8 @@ function PageActionHandler() {
|
|
|
3816
3810
|
const drainingRef = useRef10(false);
|
|
3817
3811
|
const settleTimerRef = useRef10(null);
|
|
3818
3812
|
const endStepRef = useRef10(null);
|
|
3813
|
+
const actionsStoppedRef = useRef10(false);
|
|
3814
|
+
const ignoreActionsArrivingBeforeRef = useRef10(0);
|
|
3819
3815
|
const runStep = useCallback9((action) => {
|
|
3820
3816
|
return new Promise((resolve) => {
|
|
3821
3817
|
if (action.type === "scroll_page") {
|
|
@@ -3869,7 +3865,7 @@ function PageActionHandler() {
|
|
|
3869
3865
|
onAct: () => {
|
|
3870
3866
|
clearTimeout(fallback);
|
|
3871
3867
|
const resolved = action.type === "click" ? resolveClickTarget(element) : element;
|
|
3872
|
-
if (mountedRef.current && !
|
|
3868
|
+
if (mountedRef.current && !actionsStoppedRef.current && element.isConnected && !isActionBlocked(element) && !isActionBlocked(resolved)) {
|
|
3873
3869
|
acted = true;
|
|
3874
3870
|
runAgentAction(() => performAction(action, element));
|
|
3875
3871
|
requestSnapshotAfterAction();
|
|
@@ -3889,30 +3885,20 @@ function PageActionHandler() {
|
|
|
3889
3885
|
if (drainingRef.current)
|
|
3890
3886
|
return;
|
|
3891
3887
|
drainingRef.current = true;
|
|
3888
|
+
actionsStoppedRef.current = false;
|
|
3892
3889
|
setActionsBusy(true);
|
|
3893
|
-
let pausedMidQueue = false;
|
|
3894
3890
|
try {
|
|
3895
3891
|
while (mountedRef.current && queueRef.current.length > 0) {
|
|
3896
|
-
|
|
3897
|
-
pausedMidQueue = true;
|
|
3898
|
-
break;
|
|
3899
|
-
}
|
|
3900
|
-
const action = queueRef.current[0];
|
|
3892
|
+
const action = queueRef.current.shift();
|
|
3901
3893
|
if (!action)
|
|
3902
3894
|
break;
|
|
3903
|
-
|
|
3904
|
-
if (isActionsPaused() && !acted) {
|
|
3905
|
-
pausedMidQueue = true;
|
|
3906
|
-
break;
|
|
3907
|
-
}
|
|
3908
|
-
queueRef.current.shift();
|
|
3895
|
+
await runStep(action);
|
|
3909
3896
|
}
|
|
3910
3897
|
} finally {
|
|
3911
3898
|
drainingRef.current = false;
|
|
3912
3899
|
if (mountedRef.current) {
|
|
3913
3900
|
clearCursorTarget("act");
|
|
3914
|
-
|
|
3915
|
-
setActionsBusy(false);
|
|
3901
|
+
setActionsBusy(false);
|
|
3916
3902
|
}
|
|
3917
3903
|
}
|
|
3918
3904
|
}, [runStep]);
|
|
@@ -3920,6 +3906,8 @@ function PageActionHandler() {
|
|
|
3920
3906
|
const action = parsePageAction(msg.payload);
|
|
3921
3907
|
if (!action)
|
|
3922
3908
|
return;
|
|
3909
|
+
if (Date.now() < ignoreActionsArrivingBeforeRef.current)
|
|
3910
|
+
return;
|
|
3923
3911
|
queueRef.current.push(action);
|
|
3924
3912
|
drain();
|
|
3925
3913
|
}, [drain]);
|
|
@@ -3936,16 +3924,18 @@ function PageActionHandler() {
|
|
|
3936
3924
|
};
|
|
3937
3925
|
}, []);
|
|
3938
3926
|
useEffect16(() => {
|
|
3939
|
-
return
|
|
3940
|
-
|
|
3941
|
-
|
|
3942
|
-
|
|
3943
|
-
|
|
3944
|
-
|
|
3945
|
-
|
|
3946
|
-
|
|
3927
|
+
return onActionsStopped(() => {
|
|
3928
|
+
actionsStoppedRef.current = true;
|
|
3929
|
+
ignoreActionsArrivingBeforeRef.current = Date.now() + TRAILING_ACTION_FLUSH_AFTER_STOP_MS;
|
|
3930
|
+
queueRef.current.length = 0;
|
|
3931
|
+
endStepRef.current?.();
|
|
3932
|
+
if (settleTimerRef.current)
|
|
3933
|
+
clearTimeout(settleTimerRef.current);
|
|
3934
|
+
clearCursorTarget("act");
|
|
3935
|
+
clearCursorTarget("guide");
|
|
3936
|
+
setActionsBusy(false);
|
|
3947
3937
|
});
|
|
3948
|
-
}, [
|
|
3938
|
+
}, []);
|
|
3949
3939
|
useDataChannel2(PAGE_ACTIONS_TOPIC, onMessage);
|
|
3950
3940
|
return null;
|
|
3951
3941
|
}
|
|
@@ -3961,20 +3951,20 @@ function useActionControl() {
|
|
|
3961
3951
|
const { localParticipant } = useLocalParticipant5();
|
|
3962
3952
|
const plan = usePlanUpdates();
|
|
3963
3953
|
const [busy, setBusy] = useState12(isActionsBusy);
|
|
3964
|
-
const [actionsPaused2, setPaused] = useState12(false);
|
|
3965
3954
|
useEffect17(() => subscribeActionsBusy(setBusy), []);
|
|
3966
3955
|
const actionsActive = busy || plan?.state === "executing";
|
|
3967
|
-
const
|
|
3968
|
-
|
|
3969
|
-
setPaused(next);
|
|
3970
|
-
setActionsPaused(next);
|
|
3956
|
+
const requestStop = useCallback10(async () => {
|
|
3957
|
+
stopActions();
|
|
3971
3958
|
try {
|
|
3972
|
-
await localParticipant.publishData(textEncoder5.encode(JSON.stringify({ type:
|
|
3959
|
+
await localParticipant.publishData(textEncoder5.encode(JSON.stringify({ type: "abort" })), {
|
|
3960
|
+
reliable: true,
|
|
3961
|
+
topic: ACTION_CONTROL_TOPIC
|
|
3962
|
+
});
|
|
3973
3963
|
} catch (error) {
|
|
3974
|
-
console.error("Failed to send action
|
|
3964
|
+
console.error("Failed to send action abort:", error);
|
|
3975
3965
|
}
|
|
3976
|
-
}, [
|
|
3977
|
-
return { actionsActive,
|
|
3966
|
+
}, [localParticipant]);
|
|
3967
|
+
return { actionsActive, stopActions: requestStop };
|
|
3978
3968
|
}
|
|
3979
3969
|
|
|
3980
3970
|
// src/hooks/useAgentVoiceState.ts
|
|
@@ -4315,13 +4305,39 @@ function PushToTalkMic({
|
|
|
4315
4305
|
});
|
|
4316
4306
|
}
|
|
4317
4307
|
|
|
4318
|
-
// src/components/
|
|
4308
|
+
// src/components/StopActionsIcon.tsx
|
|
4319
4309
|
import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
4310
|
+
function StopActionsIcon({ className }) {
|
|
4311
|
+
return /* @__PURE__ */ jsxs8("svg", {
|
|
4312
|
+
viewBox: "0 0 24 24",
|
|
4313
|
+
fill: "none",
|
|
4314
|
+
stroke: "currentColor",
|
|
4315
|
+
strokeWidth: "2",
|
|
4316
|
+
strokeLinecap: "round",
|
|
4317
|
+
strokeLinejoin: "round",
|
|
4318
|
+
className,
|
|
4319
|
+
"aria-hidden": "true",
|
|
4320
|
+
children: [
|
|
4321
|
+
/* @__PURE__ */ jsx10("path", {
|
|
4322
|
+
d: "m4 4 7.07 17 2.51-7.39L21 11.07Z"
|
|
4323
|
+
}),
|
|
4324
|
+
/* @__PURE__ */ jsx10("line", {
|
|
4325
|
+
x1: "3",
|
|
4326
|
+
y1: "21",
|
|
4327
|
+
x2: "21",
|
|
4328
|
+
y2: "3"
|
|
4329
|
+
})
|
|
4330
|
+
]
|
|
4331
|
+
});
|
|
4332
|
+
}
|
|
4333
|
+
|
|
4334
|
+
// src/components/TapToTalkMic.tsx
|
|
4335
|
+
import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
4320
4336
|
function TapToTalkMic({ isCapturingSpeech, showLabel, onToggle }) {
|
|
4321
4337
|
const { barRefs, isTalking } = useMicLevel(isCapturingSpeech);
|
|
4322
4338
|
const label = isCapturingSpeech ? "Tap to send" : "Tap to talk";
|
|
4323
4339
|
const withLabel = isCapturingSpeech || showLabel;
|
|
4324
|
-
return /* @__PURE__ */
|
|
4340
|
+
return /* @__PURE__ */ jsxs9("button", {
|
|
4325
4341
|
type: "button",
|
|
4326
4342
|
onClick: onToggle,
|
|
4327
4343
|
"aria-label": "Tap to talk",
|
|
@@ -4329,22 +4345,22 @@ function TapToTalkMic({ isCapturingSpeech, showLabel, onToggle }) {
|
|
|
4329
4345
|
title: label,
|
|
4330
4346
|
className: cn("skippr:flex skippr:h-[38px] skippr:shrink-0 skippr:items-center skippr:justify-center skippr:gap-2 skippr:rounded-full skippr:bg-bubble skippr:text-white skippr:cursor-pointer", withLabel ? "skippr:px-3.5" : "skippr:w-[38px]", isCapturingSpeech ? "skippr:animate-skippr-rec-ring skippr:motion-reduce:animate-none" : "skippr:hover:bg-[#3a384b]"),
|
|
4331
4347
|
children: [
|
|
4332
|
-
/* @__PURE__ */
|
|
4348
|
+
/* @__PURE__ */ jsx11("span", {
|
|
4333
4349
|
className: "skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center",
|
|
4334
|
-
children: isCapturingSpeech ? /* @__PURE__ */
|
|
4350
|
+
children: isCapturingSpeech ? /* @__PURE__ */ jsx11(Square, {
|
|
4335
4351
|
className: "skippr:size-4 skippr:text-brand",
|
|
4336
4352
|
fill: "currentColor"
|
|
4337
|
-
}) : /* @__PURE__ */
|
|
4353
|
+
}) : /* @__PURE__ */ jsx11(Mic, {
|
|
4338
4354
|
className: "skippr:size-5"
|
|
4339
4355
|
})
|
|
4340
4356
|
}),
|
|
4341
|
-
withLabel && /* @__PURE__ */
|
|
4357
|
+
withLabel && /* @__PURE__ */ jsx11("span", {
|
|
4342
4358
|
className: "skippr:whitespace-nowrap skippr:text-[13px] skippr:font-medium",
|
|
4343
4359
|
children: label
|
|
4344
4360
|
}),
|
|
4345
|
-
isCapturingSpeech && isTalking && /* @__PURE__ */
|
|
4361
|
+
isCapturingSpeech && isTalking && /* @__PURE__ */ jsx11("span", {
|
|
4346
4362
|
className: "skippr:flex skippr:h-6 skippr:shrink-0 skippr:items-center skippr:gap-[3px]",
|
|
4347
|
-
children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */
|
|
4363
|
+
children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */ jsx11("span", {
|
|
4348
4364
|
ref: (el) => {
|
|
4349
4365
|
barRefs.current[index2] = el;
|
|
4350
4366
|
},
|
|
@@ -4357,7 +4373,7 @@ function TapToTalkMic({ isCapturingSpeech, showLabel, onToggle }) {
|
|
|
4357
4373
|
}
|
|
4358
4374
|
|
|
4359
4375
|
// src/components/SessionControlBar.tsx
|
|
4360
|
-
import { jsx as
|
|
4376
|
+
import { jsx as jsx12, jsxs as jsxs10, Fragment } from "react/jsx-runtime";
|
|
4361
4377
|
var STANDBY_BAR_WIDTH = 168;
|
|
4362
4378
|
var READY_BAR_WIDTH = 238;
|
|
4363
4379
|
var PAUSED_BAR_WIDTH = 248;
|
|
@@ -4390,21 +4406,21 @@ function AgentActivity({
|
|
|
4390
4406
|
noiseGate: AGENT_NOISE_GATE
|
|
4391
4407
|
});
|
|
4392
4408
|
const label = isActing ? "Working" : AGENT_STATE_LABELS[state] ?? "";
|
|
4393
|
-
return /* @__PURE__ */
|
|
4409
|
+
return /* @__PURE__ */ jsxs10("span", {
|
|
4394
4410
|
role: "status",
|
|
4395
4411
|
className: "skippr:flex skippr:items-center skippr:gap-1.5 skippr:text-bubble",
|
|
4396
4412
|
"aria-label": isActing ? "Agent is acting" : `Agent is ${state}`,
|
|
4397
4413
|
children: [
|
|
4398
|
-
/* @__PURE__ */
|
|
4414
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4399
4415
|
className: "skippr:flex skippr:size-5 skippr:shrink-0 skippr:items-center skippr:justify-center",
|
|
4400
|
-
children: isActing ? /* @__PURE__ */
|
|
4416
|
+
children: isActing ? /* @__PURE__ */ jsx12(MousePointerClick, {
|
|
4401
4417
|
strokeWidth: 2,
|
|
4402
4418
|
className: "skippr:size-5 skippr:[animation:skippr-finger-tap_1.1s_ease-in-out_infinite]"
|
|
4403
|
-
}) : /* @__PURE__ */
|
|
4419
|
+
}) : /* @__PURE__ */ jsxs10(Fragment, {
|
|
4404
4420
|
children: [
|
|
4405
|
-
state === "speaking" && /* @__PURE__ */
|
|
4421
|
+
state === "speaking" && /* @__PURE__ */ jsx12("span", {
|
|
4406
4422
|
className: "skippr:flex skippr:h-5 skippr:items-center skippr:gap-[2px]",
|
|
4407
|
-
children: Array.from({ length: AGENT_BARS }).map((_, index2) => /* @__PURE__ */
|
|
4423
|
+
children: Array.from({ length: AGENT_BARS }).map((_, index2) => /* @__PURE__ */ jsx12("span", {
|
|
4408
4424
|
ref: (el) => {
|
|
4409
4425
|
barRefs.current[index2] = el;
|
|
4410
4426
|
},
|
|
@@ -4412,21 +4428,21 @@ function AgentActivity({
|
|
|
4412
4428
|
style: { height: AGENT_BAR_IDLE_HEIGHT_PX }
|
|
4413
4429
|
}, index2))
|
|
4414
4430
|
}),
|
|
4415
|
-
state === "thinking" && /* @__PURE__ */
|
|
4431
|
+
state === "thinking" && /* @__PURE__ */ jsxs10("span", {
|
|
4416
4432
|
className: "skippr:flex skippr:items-center skippr:gap-[3px]",
|
|
4417
4433
|
children: [
|
|
4418
|
-
/* @__PURE__ */
|
|
4434
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4419
4435
|
className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:0ms]"
|
|
4420
4436
|
}),
|
|
4421
|
-
/* @__PURE__ */
|
|
4437
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4422
4438
|
className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:150ms]"
|
|
4423
4439
|
}),
|
|
4424
|
-
/* @__PURE__ */
|
|
4440
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4425
4441
|
className: "skippr:size-[5px] skippr:rounded-full skippr:bg-current skippr:animate-bounce skippr:[animation-delay:300ms]"
|
|
4426
4442
|
})
|
|
4427
4443
|
]
|
|
4428
4444
|
}),
|
|
4429
|
-
state === "listening" && /* @__PURE__ */
|
|
4445
|
+
state === "listening" && /* @__PURE__ */ jsxs10("svg", {
|
|
4430
4446
|
viewBox: "0 0 24 24",
|
|
4431
4447
|
className: "skippr:size-5",
|
|
4432
4448
|
fill: "none",
|
|
@@ -4436,10 +4452,10 @@ function AgentActivity({
|
|
|
4436
4452
|
strokeLinejoin: "round",
|
|
4437
4453
|
"aria-hidden": "true",
|
|
4438
4454
|
children: [
|
|
4439
|
-
/* @__PURE__ */
|
|
4455
|
+
/* @__PURE__ */ jsx12("path", {
|
|
4440
4456
|
d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z"
|
|
4441
4457
|
}),
|
|
4442
|
-
/* @__PURE__ */
|
|
4458
|
+
/* @__PURE__ */ jsx12("circle", {
|
|
4443
4459
|
cx: "12",
|
|
4444
4460
|
cy: "12",
|
|
4445
4461
|
r: "2.5",
|
|
@@ -4452,7 +4468,7 @@ function AgentActivity({
|
|
|
4452
4468
|
]
|
|
4453
4469
|
})
|
|
4454
4470
|
}),
|
|
4455
|
-
/* @__PURE__ */
|
|
4471
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4456
4472
|
className: "skippr:text-[11px] skippr:font-medium skippr:capitalize",
|
|
4457
4473
|
children: label
|
|
4458
4474
|
})
|
|
@@ -4491,7 +4507,7 @@ function SessionControlBar() {
|
|
|
4491
4507
|
const { wasDraggedRef } = useLauncherDrag(controlBarRef, commitLauncherDrop, panelFollowers, setIsDragging);
|
|
4492
4508
|
const { isMuted, toggleMute, isScreenSharing, toggleScreenShare } = useMediaControls();
|
|
4493
4509
|
const { state, mediaStreamTrack: agentMediaStreamTrack } = useAgentVoiceState();
|
|
4494
|
-
const { actionsActive,
|
|
4510
|
+
const { actionsActive, stopActions: stopActions2 } = useActionControl();
|
|
4495
4511
|
const { isHeld, countdown, toggle: togglePause } = useSessionHoldContext();
|
|
4496
4512
|
const micMode = agentControls?.micMode;
|
|
4497
4513
|
const pushOrTapMicMode = isRequestResponseMicMode(micMode);
|
|
@@ -4535,7 +4551,7 @@ function SessionControlBar() {
|
|
|
4535
4551
|
const showPushToTalkHint = isPushToTalk && isReady && !isHeld && !isCapturingSpeech && !isPanelOpen && !pushToTalkHintSeen;
|
|
4536
4552
|
const showScreenShareToggle = captureMode === CAPTURE_MODE.Screenshare;
|
|
4537
4553
|
const showActionControl = captureMode === CAPTURE_MODE.Auto && actionsActive;
|
|
4538
|
-
const voiceTurnAgentBusy = agentActive || showActionControl
|
|
4554
|
+
const voiceTurnAgentBusy = agentActive || showActionControl;
|
|
4539
4555
|
const screenShareExtra = showScreenShareToggle ? SCREEN_SHARE_EXTRA_WIDTH : 0;
|
|
4540
4556
|
const actionControlExtra = showActionControl ? ACTION_CONTROL_EXTRA_WIDTH : 0;
|
|
4541
4557
|
let barWidth = STANDBY_BAR_WIDTH;
|
|
@@ -4562,88 +4578,88 @@ function SessionControlBar() {
|
|
|
4562
4578
|
return;
|
|
4563
4579
|
action();
|
|
4564
4580
|
};
|
|
4565
|
-
const panelToggleButton = /* @__PURE__ */
|
|
4581
|
+
const panelToggleButton = /* @__PURE__ */ jsx12("button", {
|
|
4566
4582
|
type: "button",
|
|
4567
4583
|
onClick: ifNotDragged(togglePanel),
|
|
4568
4584
|
"aria-label": isPanelOpen ? "Close panel" : agendaModule && !textMode ? "Open agenda" : "Open chat",
|
|
4569
4585
|
className: cn(SQUARE_BUTTON, "skippr:text-neutral-700", textMode ? "skippr:hover:bg-neutral-100" : "skippr:bg-neutral-100 skippr:hover:bg-neutral-200"),
|
|
4570
|
-
children: /* @__PURE__ */
|
|
4586
|
+
children: /* @__PURE__ */ jsx12(MessageSquare, {
|
|
4571
4587
|
className: "skippr:size-5"
|
|
4572
4588
|
})
|
|
4573
4589
|
});
|
|
4574
|
-
return /* @__PURE__ */
|
|
4590
|
+
return /* @__PURE__ */ jsxs10("div", {
|
|
4575
4591
|
ref: controlBarRef,
|
|
4576
4592
|
style: { bottom: launcherBottomPx },
|
|
4577
4593
|
className: cn("skippr:fixed skippr:z-[9999] skippr:touch-none skippr:cursor-grab", position === "right" ? "skippr:right-3" : "skippr:left-3"),
|
|
4578
4594
|
children: [
|
|
4579
|
-
isCapturingSpeech && !isPanelOpen && /* @__PURE__ */
|
|
4595
|
+
isCapturingSpeech && !isPanelOpen && /* @__PURE__ */ jsx12("div", {
|
|
4580
4596
|
className: cn("skippr:absolute skippr:bottom-full skippr:z-[10000] skippr:mb-2 skippr:max-w-[280px] skippr:rounded-[14px] skippr:bg-bubble skippr:px-3.5 skippr:py-2 skippr:text-[13px] skippr:text-white skippr:shadow-[0_10px_32px_rgba(0,0,0,0.18)] skippr:[animation:skippr-agent-in_200ms_ease-out]", position === "right" ? "skippr:right-0" : "skippr:left-0"),
|
|
4581
|
-
children: liveUserTranscript ? liveUserTranscript : /* @__PURE__ */
|
|
4597
|
+
children: liveUserTranscript ? liveUserTranscript : /* @__PURE__ */ jsx12("span", {
|
|
4582
4598
|
className: "skippr:text-white/60",
|
|
4583
4599
|
children: "Listening…"
|
|
4584
4600
|
})
|
|
4585
4601
|
}),
|
|
4586
|
-
/* @__PURE__ */
|
|
4602
|
+
/* @__PURE__ */ jsxs10("div", {
|
|
4587
4603
|
style: { width: isReady && pushOrTapMicMode ? "auto" : barWidth },
|
|
4588
4604
|
className: cn("skippr:group skippr:relative skippr:flex skippr:h-[54px] skippr:items-center skippr:justify-center skippr:gap-2", "skippr:rounded-[20px] skippr:bg-white skippr:p-2", "skippr:shadow-[0_10px_32px_rgba(0,0,0,0.18)] skippr:ring-1 skippr:ring-black/5", "skippr:transition-[width,margin] skippr:duration-300 skippr:ease-out", "skippr:[animation:skippr-toolset-pop_440ms_cubic-bezier(0.22,1,0.36,1)]", isReady && (position === "right" ? "skippr:mr-7" : "skippr:ml-7")),
|
|
4589
4605
|
children: [
|
|
4590
|
-
!isReady && /* @__PURE__ */
|
|
4606
|
+
!isReady && /* @__PURE__ */ jsxs10("span", {
|
|
4591
4607
|
className: "skippr:flex skippr:h-[38px] skippr:items-center skippr:justify-center skippr:gap-2 skippr:text-[13px] skippr:font-medium skippr:text-bubble skippr:[animation:skippr-stage-fade_240ms_ease-out]",
|
|
4592
4608
|
children: [
|
|
4593
|
-
/* @__PURE__ */
|
|
4609
|
+
/* @__PURE__ */ jsxs10("span", {
|
|
4594
4610
|
className: "skippr:flex skippr:items-center skippr:gap-[3px]",
|
|
4595
4611
|
children: [
|
|
4596
|
-
/* @__PURE__ */
|
|
4612
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4597
4613
|
className: "skippr:size-1.5 skippr:rounded-full skippr:bg-bubble skippr:animate-bounce skippr:[animation-delay:0ms]"
|
|
4598
4614
|
}),
|
|
4599
|
-
/* @__PURE__ */
|
|
4615
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4600
4616
|
className: "skippr:size-1.5 skippr:rounded-full skippr:bg-bubble skippr:animate-bounce skippr:[animation-delay:150ms]"
|
|
4601
4617
|
}),
|
|
4602
|
-
/* @__PURE__ */
|
|
4618
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4603
4619
|
className: "skippr:size-1.5 skippr:rounded-full skippr:bg-bubble skippr:animate-bounce skippr:[animation-delay:300ms]"
|
|
4604
4620
|
})
|
|
4605
4621
|
]
|
|
4606
4622
|
}),
|
|
4607
|
-
/* @__PURE__ */
|
|
4623
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4608
4624
|
children: "Standing by…"
|
|
4609
4625
|
})
|
|
4610
4626
|
]
|
|
4611
4627
|
}),
|
|
4612
|
-
isReady && /* @__PURE__ */
|
|
4628
|
+
isReady && /* @__PURE__ */ jsxs10("div", {
|
|
4613
4629
|
className: cn("skippr:flex skippr:items-center skippr:gap-2 skippr:[animation:skippr-stage-fade_240ms_ease-out]", isHeld && "skippr:w-full skippr:justify-start"),
|
|
4614
4630
|
children: [
|
|
4615
|
-
/* @__PURE__ */
|
|
4631
|
+
/* @__PURE__ */ jsx12("button", {
|
|
4616
4632
|
type: "button",
|
|
4617
4633
|
onClick: ifNotDragged(togglePause),
|
|
4618
4634
|
"aria-label": isHeld ? "Resume" : "Pause",
|
|
4619
4635
|
title: isHeld ? "Resume" : "Pause",
|
|
4620
4636
|
className: cn(SQUARE_BUTTON, isHeld ? "skippr:bg-bubble skippr:text-white skippr:hover:bg-[#3a384b]" : "skippr:bg-neutral-100 skippr:text-neutral-700 skippr:hover:bg-neutral-200"),
|
|
4621
|
-
children: isHeld ? /* @__PURE__ */
|
|
4637
|
+
children: isHeld ? /* @__PURE__ */ jsx12(Play, {
|
|
4622
4638
|
className: "skippr:size-5",
|
|
4623
4639
|
fill: "currentColor"
|
|
4624
|
-
}) : /* @__PURE__ */
|
|
4640
|
+
}) : /* @__PURE__ */ jsx12(Pause, {
|
|
4625
4641
|
className: "skippr:size-5",
|
|
4626
4642
|
fill: "currentColor"
|
|
4627
4643
|
})
|
|
4628
4644
|
}),
|
|
4629
|
-
isHeld ? /* @__PURE__ */
|
|
4645
|
+
isHeld ? /* @__PURE__ */ jsxs10(Fragment, {
|
|
4630
4646
|
children: [
|
|
4631
|
-
/* @__PURE__ */
|
|
4647
|
+
/* @__PURE__ */ jsx12(PausedCountdown, {
|
|
4632
4648
|
secondsRemaining: countdown
|
|
4633
4649
|
}),
|
|
4634
4650
|
panelToggleButton
|
|
4635
4651
|
]
|
|
4636
|
-
}) : /* @__PURE__ */
|
|
4652
|
+
}) : /* @__PURE__ */ jsxs10(Fragment, {
|
|
4637
4653
|
children: [
|
|
4638
|
-
!textMode && pushOrTapMicMode && /* @__PURE__ */
|
|
4654
|
+
!textMode && pushOrTapMicMode && /* @__PURE__ */ jsxs10("div", {
|
|
4639
4655
|
className: "skippr:flex skippr:h-[38px] skippr:items-center skippr:gap-2",
|
|
4640
4656
|
children: [
|
|
4641
|
-
micMode === MIC_MODE.PushToTalk ? /* @__PURE__ */
|
|
4657
|
+
micMode === MIC_MODE.PushToTalk ? /* @__PURE__ */ jsx12(PushToTalkMic, {
|
|
4642
4658
|
isCapturingSpeech,
|
|
4643
4659
|
showLabel: !voiceTurnAgentBusy,
|
|
4644
4660
|
onStart: startPushToTalk,
|
|
4645
4661
|
onCommit: commitPushToTalk
|
|
4646
|
-
}) : /* @__PURE__ */
|
|
4662
|
+
}) : /* @__PURE__ */ jsx12(TapToTalkMic, {
|
|
4647
4663
|
isCapturingSpeech,
|
|
4648
4664
|
showLabel: !voiceTurnAgentBusy,
|
|
4649
4665
|
onToggle: () => {
|
|
@@ -4651,47 +4667,47 @@ function SessionControlBar() {
|
|
|
4651
4667
|
reportActivity();
|
|
4652
4668
|
}
|
|
4653
4669
|
}),
|
|
4654
|
-
voiceTurnAgentBusy && /* @__PURE__ */
|
|
4670
|
+
voiceTurnAgentBusy && /* @__PURE__ */ jsx12("span", {
|
|
4655
4671
|
className: "skippr:flex skippr:items-center skippr:[animation:skippr-agent-in_200ms_ease-out_240ms_both]",
|
|
4656
|
-
children: /* @__PURE__ */
|
|
4672
|
+
children: /* @__PURE__ */ jsx12(AgentActivity, {
|
|
4657
4673
|
state,
|
|
4658
|
-
isActing: showActionControl
|
|
4674
|
+
isActing: showActionControl,
|
|
4659
4675
|
mediaStreamTrack: agentMediaStreamTrack
|
|
4660
4676
|
})
|
|
4661
4677
|
})
|
|
4662
4678
|
]
|
|
4663
4679
|
}),
|
|
4664
|
-
!textMode && !pushOrTapMicMode && /* @__PURE__ */
|
|
4680
|
+
!textMode && !pushOrTapMicMode && /* @__PURE__ */ jsxs10("div", {
|
|
4665
4681
|
className: "skippr:relative skippr:h-[38px]",
|
|
4666
4682
|
style: { width: MIC_REGION_WIDTH },
|
|
4667
4683
|
children: [
|
|
4668
|
-
!isTalking && /* @__PURE__ */
|
|
4684
|
+
!isTalking && /* @__PURE__ */ jsx12("span", {
|
|
4669
4685
|
className: "skippr:absolute skippr:inset-y-0 skippr:right-0 skippr:flex skippr:items-center skippr:justify-center skippr:[animation:skippr-agent-in_200ms_ease-out_240ms_both]",
|
|
4670
4686
|
style: { width: AGENT_ACTIVITY_WIDTH },
|
|
4671
|
-
children: /* @__PURE__ */
|
|
4687
|
+
children: /* @__PURE__ */ jsx12(AgentActivity, {
|
|
4672
4688
|
state,
|
|
4673
|
-
isActing: showActionControl
|
|
4689
|
+
isActing: showActionControl,
|
|
4674
4690
|
mediaStreamTrack: agentMediaStreamTrack
|
|
4675
4691
|
})
|
|
4676
4692
|
}),
|
|
4677
|
-
/* @__PURE__ */
|
|
4693
|
+
/* @__PURE__ */ jsxs10("button", {
|
|
4678
4694
|
type: "button",
|
|
4679
4695
|
onClick: ifNotDragged(() => void toggleMute()),
|
|
4680
4696
|
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
4681
4697
|
className: cn("skippr:group skippr:absolute skippr:top-0 skippr:left-0 skippr:z-10 skippr:flex skippr:h-[38px] skippr:items-center skippr:gap-2.5 skippr:overflow-hidden skippr:rounded-[12px] skippr:bg-bubble skippr:text-white skippr:cursor-pointer skippr:transition-[width] skippr:duration-300 skippr:ease-out", isTalking ? "skippr:justify-start skippr:pl-3.5" : "skippr:justify-center"),
|
|
4682
4698
|
style: { width: isTalking ? MIC_REGION_WIDTH : MIC_SQUARE_WIDTH },
|
|
4683
4699
|
children: [
|
|
4684
|
-
/* @__PURE__ */
|
|
4700
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4685
4701
|
className: cn("skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-center skippr:transition-colors", isMuted ? "skippr:text-red-400 skippr:group-hover:text-red-300" : "skippr:text-white skippr:group-hover:text-white/80"),
|
|
4686
|
-
children: isMuted ? /* @__PURE__ */
|
|
4702
|
+
children: isMuted ? /* @__PURE__ */ jsx12(MicOff, {
|
|
4687
4703
|
className: "skippr:size-5"
|
|
4688
|
-
}) : /* @__PURE__ */
|
|
4704
|
+
}) : /* @__PURE__ */ jsx12(Mic, {
|
|
4689
4705
|
className: "skippr:size-5"
|
|
4690
4706
|
})
|
|
4691
4707
|
}),
|
|
4692
|
-
/* @__PURE__ */
|
|
4708
|
+
/* @__PURE__ */ jsx12("span", {
|
|
4693
4709
|
className: cn("skippr:h-6 skippr:flex-1 skippr:items-center skippr:justify-center skippr:gap-[3px] skippr:transition-opacity skippr:duration-200", isTalking ? "skippr:flex skippr:opacity-100" : "skippr:hidden"),
|
|
4694
|
-
children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */
|
|
4710
|
+
children: Array.from({ length: MIC_BARS }).map((_, index2) => /* @__PURE__ */ jsx12("span", {
|
|
4695
4711
|
ref: (el) => {
|
|
4696
4712
|
barRefs.current[index2] = el;
|
|
4697
4713
|
},
|
|
@@ -4703,30 +4719,26 @@ function SessionControlBar() {
|
|
|
4703
4719
|
})
|
|
4704
4720
|
]
|
|
4705
4721
|
}),
|
|
4706
|
-
showScreenShareToggle && /* @__PURE__ */
|
|
4722
|
+
showScreenShareToggle && /* @__PURE__ */ jsx12("button", {
|
|
4707
4723
|
type: "button",
|
|
4708
4724
|
onClick: ifNotDragged(() => void toggleScreenShare()),
|
|
4709
4725
|
"aria-label": isScreenSharing ? "Stop sharing screen" : "Share screen",
|
|
4710
4726
|
className: cn(SQUARE_BUTTON, isScreenSharing ? "skippr:bg-bubble skippr:text-white skippr:hover:bg-[#3a384b]" : "skippr:bg-neutral-100 skippr:text-neutral-700 skippr:hover:bg-neutral-200"),
|
|
4711
|
-
children: isScreenSharing ? /* @__PURE__ */
|
|
4727
|
+
children: isScreenSharing ? /* @__PURE__ */ jsx12(MonitorOff, {
|
|
4712
4728
|
className: "skippr:size-5"
|
|
4713
|
-
}) : /* @__PURE__ */
|
|
4729
|
+
}) : /* @__PURE__ */ jsx12(Monitor, {
|
|
4714
4730
|
className: "skippr:size-5"
|
|
4715
4731
|
})
|
|
4716
4732
|
}),
|
|
4717
4733
|
panelToggleButton,
|
|
4718
|
-
showActionControl && /* @__PURE__ */
|
|
4734
|
+
showActionControl && /* @__PURE__ */ jsx12("button", {
|
|
4719
4735
|
type: "button",
|
|
4720
|
-
onClick: ifNotDragged(() => void
|
|
4721
|
-
"aria-label":
|
|
4722
|
-
title:
|
|
4723
|
-
className: cn(SQUARE_BUTTON,
|
|
4724
|
-
children:
|
|
4725
|
-
className: "skippr:size-5"
|
|
4726
|
-
fill: "currentColor"
|
|
4727
|
-
}) : /* @__PURE__ */ jsx11(Square, {
|
|
4728
|
-
className: "skippr:size-5",
|
|
4729
|
-
fill: "currentColor"
|
|
4736
|
+
onClick: ifNotDragged(() => void stopActions2()),
|
|
4737
|
+
"aria-label": "Stop actions",
|
|
4738
|
+
title: "Stop actions",
|
|
4739
|
+
className: cn(SQUARE_BUTTON, "skippr:bg-red-100 skippr:text-red-600 skippr:hover:bg-red-200"),
|
|
4740
|
+
children: /* @__PURE__ */ jsx12(StopActionsIcon, {
|
|
4741
|
+
className: "skippr:size-5"
|
|
4730
4742
|
})
|
|
4731
4743
|
})
|
|
4732
4744
|
]
|
|
@@ -4735,28 +4747,28 @@ function SessionControlBar() {
|
|
|
4735
4747
|
}, textMode ? "ready-text" : "ready")
|
|
4736
4748
|
]
|
|
4737
4749
|
}),
|
|
4738
|
-
showPushToTalkHint && /* @__PURE__ */
|
|
4739
|
-
isReady && !isDragging && /* @__PURE__ */
|
|
4750
|
+
showPushToTalkHint && /* @__PURE__ */ jsx12(PushToTalkHint, {}),
|
|
4751
|
+
isReady && !isDragging && /* @__PURE__ */ jsx12("button", {
|
|
4740
4752
|
type: "button",
|
|
4741
4753
|
onClick: ifNotDragged(() => void pauseSession()),
|
|
4742
4754
|
disabled: isPausing,
|
|
4743
4755
|
"aria-label": "End session",
|
|
4744
4756
|
"aria-busy": isPausing,
|
|
4745
4757
|
className: cn("skippr:absolute skippr:top-1/2 skippr:z-20 skippr:flex skippr:h-[54px] skippr:w-[50px] skippr:-mt-[27px] skippr:items-center", position === "right" ? "skippr:-right-8 skippr:justify-start skippr:pl-2.5" : "skippr:-left-8 skippr:justify-end skippr:pr-2.5", "skippr:rounded-[16px] skippr:bg-red-500 skippr:text-white", "skippr:shadow-[0_4px_14px_rgba(239,68,68,0.45)]", "skippr:transition-colors skippr:duration-150", "skippr:[animation:skippr-toolset-pop_280ms_cubic-bezier(0.22,1,0.36,1)]", isPausing ? "skippr:cursor-default" : "skippr:cursor-pointer skippr:hover:bg-red-600"),
|
|
4746
|
-
children: /* @__PURE__ */
|
|
4758
|
+
children: /* @__PURE__ */ jsxs10("span", {
|
|
4747
4759
|
className: "skippr:relative skippr:flex skippr:size-5 skippr:items-center skippr:justify-center",
|
|
4748
4760
|
children: [
|
|
4749
|
-
/* @__PURE__ */
|
|
4761
|
+
/* @__PURE__ */ jsx12(X, {
|
|
4750
4762
|
className: cn("skippr:size-4 skippr:transition-opacity skippr:duration-200", isPausing && "skippr:opacity-40"),
|
|
4751
4763
|
strokeWidth: 2.5
|
|
4752
4764
|
}),
|
|
4753
|
-
isPausing && /* @__PURE__ */
|
|
4765
|
+
isPausing && /* @__PURE__ */ jsxs10("svg", {
|
|
4754
4766
|
viewBox: "0 0 24 24",
|
|
4755
4767
|
fill: "none",
|
|
4756
4768
|
"aria-hidden": "true",
|
|
4757
4769
|
className: "skippr:absolute skippr:inset-0 skippr:size-full skippr:animate-spin skippr:motion-reduce:hidden",
|
|
4758
4770
|
children: [
|
|
4759
|
-
/* @__PURE__ */
|
|
4771
|
+
/* @__PURE__ */ jsx12("circle", {
|
|
4760
4772
|
cx: "12",
|
|
4761
4773
|
cy: "12",
|
|
4762
4774
|
r: "10.5",
|
|
@@ -4764,7 +4776,7 @@ function SessionControlBar() {
|
|
|
4764
4776
|
strokeOpacity: "0.2",
|
|
4765
4777
|
strokeWidth: "1.5"
|
|
4766
4778
|
}),
|
|
4767
|
-
/* @__PURE__ */
|
|
4779
|
+
/* @__PURE__ */ jsx12("circle", {
|
|
4768
4780
|
cx: "12",
|
|
4769
4781
|
cy: "12",
|
|
4770
4782
|
r: "10.5",
|
|
@@ -4785,7 +4797,7 @@ function SessionControlBar() {
|
|
|
4785
4797
|
// src/components/ShadowHost.tsx
|
|
4786
4798
|
import { useLayoutEffect as useLayoutEffect2, useRef as useRef15, useState as useState15 } from "react";
|
|
4787
4799
|
import { createPortal } from "react-dom";
|
|
4788
|
-
import { jsx as
|
|
4800
|
+
import { jsx as jsx13, Fragment as Fragment2 } from "react/jsx-runtime";
|
|
4789
4801
|
var PROPERTIES_STYLE_ID = "skippr-tw-properties";
|
|
4790
4802
|
var PROPERTY_RULE = /@property\s+[^{]+\{[^}]*\}/g;
|
|
4791
4803
|
function hoistTailwindProperties(css) {
|
|
@@ -4803,7 +4815,7 @@ function ShadowHost({ children }) {
|
|
|
4803
4815
|
const hostRef = useRef15(null);
|
|
4804
4816
|
const [shadowRoot, setShadowRoot] = useState15(null);
|
|
4805
4817
|
const css = `/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
4806
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--skippr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--skippr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--skippr-color-red-50:oklch(97.1% .013 17.38);--skippr-color-red-100:oklch(93.6% .032 17.717);--skippr-color-red-200:oklch(88.5% .062 18.334);--skippr-color-red-300:oklch(80.8% .114 19.571);--skippr-color-red-400:oklch(70.4% .191 22.216);--skippr-color-red-500:oklch(63.7% .237 25.331);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-amber-50:oklch(98.7% .022 95.277);--skippr-color-amber-100:oklch(96.2% .059 95.617);--skippr-color-amber-400:oklch(82.8% .189 84.429);--skippr-color-amber-700:oklch(55.5% .163 48.998);--skippr-color-amber-950:oklch(27.9% .077 45.635);--skippr-color-green-100:oklch(96.2% .044 156.743);--skippr-color-green-200:oklch(92.5% .084 155.995);--skippr-color-green-700:oklch(52.7% .154 150.069);--skippr-color-emerald-400:oklch(76.5% .177 163.223);--skippr-color-neutral-100:oklch(97% 0 0);--skippr-color-neutral-200:oklch(92.2% 0 0);--skippr-color-neutral-500:oklch(55.6% 0 0);--skippr-color-neutral-700:oklch(37.1% 0 0);--skippr-color-black:#000;--skippr-color-white:#fff;--skippr-spacing:.25rem;--skippr-text-xs:.75rem;--skippr-text-xs--line-height:calc(1/.75);--skippr-text-sm:.875rem;--skippr-text-sm--line-height:calc(1.25/.875);--skippr-font-weight-medium:500;--skippr-font-weight-semibold:600;--skippr-leading-tight:1.25;--skippr-leading-snug:1.375;--skippr-leading-relaxed:1.625;--skippr-ease-out:cubic-bezier(0,0,.2,1);--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-blur-sm:8px;--skippr-default-transition-duration:.15s;--skippr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--skippr-default-font-family:var(--skippr-font-sans);--skippr-default-mono-font-family:var(--skippr-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--skippr-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--skippr-default-font-feature-settings,normal);font-variation-settings:var(--skippr-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--skippr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--skippr-default-mono-font-feature-settings,normal);font-variation-settings:var(--skippr-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.skippr\\:pointer-events-none{pointer-events:none}.skippr\\:absolute{position:absolute}.skippr\\:fixed{position:fixed}.skippr\\:relative{position:relative}.skippr\\:sticky{position:sticky}.skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\\:inset-y-0{inset-block:calc(var(--skippr-spacing)*0)}.skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\\:top-1\\/2{top:50%}.skippr\\:top-full{top:100%}.skippr\\:-right-8{right:calc(var(--skippr-spacing)*-8)}.skippr\\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\\:right-3{right:calc(var(--skippr-spacing)*3)}.skippr\\:right-5{right:calc(var(--skippr-spacing)*5)}.skippr\\:right-6{right:calc(var(--skippr-spacing)*6)}.skippr\\:-bottom-1{bottom:calc(var(--skippr-spacing)*-1)}.skippr\\:-bottom-9{bottom:calc(var(--skippr-spacing)*-9)}.skippr\\:bottom-3{bottom:calc(var(--skippr-spacing)*3)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-full{bottom:100%}.skippr\\:-left-8{left:calc(var(--skippr-spacing)*-8)}.skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\\:left-1\\/2{left:50%}.skippr\\:left-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-\\[9998\\]{z-index:9998}.skippr\\:z-\\[9999\\]{z-index:9999}.skippr\\:z-\\[10000\\]{z-index:10000}.skippr\\:order-first{order:-9999}.skippr\\:order-last{order:9999}.skippr\\:mx-auto{margin-inline:auto}.skippr\\:-mt-\\[5px\\]{margin-top:-5px}.skippr\\:-mt-\\[27px\\]{margin-top:-27px}.skippr\\:mt-0\\.5{margin-top:calc(var(--skippr-spacing)*.5)}.skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\\:mt-1\\.5{margin-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:mt-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\\:mr-7{margin-right:calc(var(--skippr-spacing)*7)}.skippr\\:-mb-\\[5px\\]{margin-bottom:-5px}.skippr\\:mb-1\\.5{margin-bottom:calc(var(--skippr-spacing)*1.5)}.skippr\\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:mb-3{margin-bottom:calc(var(--skippr-spacing)*3)}.skippr\\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:ml-0\\.5{margin-left:calc(var(--skippr-spacing)*.5)}.skippr\\:ml-1{margin-left:calc(var(--skippr-spacing)*1)}.skippr\\:ml-7{margin-left:calc(var(--skippr-spacing)*7)}.skippr\\:flex{display:flex}.skippr\\: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-\\[5px\\]{width:5px;height:5px}.skippr\\:size-\\[38px\\]{width:38px;height:38px}.skippr\\:size-full{width:100%;height:100%}.skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}.skippr\\:h-0\\.5{height:calc(var(--skippr-spacing)*.5)}.skippr\\:h-1{height:calc(var(--skippr-spacing)*1)}.skippr\\:h-1\\.5{height:calc(var(--skippr-spacing)*1.5)}.skippr\\:h-2{height:calc(var(--skippr-spacing)*2)}.skippr\\:h-3{height:calc(var(--skippr-spacing)*3)}.skippr\\:h-3\\.5{height:calc(var(--skippr-spacing)*3.5)}.skippr\\:h-4{height:calc(var(--skippr-spacing)*4)}.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-\\[18\\.5px\\]{height:18.5px}.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\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\\:min-h-11{min-height:calc(var(--skippr-spacing)*11)}.skippr\\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\\:w-3\\.5{width:calc(var(--skippr-spacing)*3.5)}.skippr\\:w-4{width:calc(var(--skippr-spacing)*4)}.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-8{width:calc(var(--skippr-spacing)*8)}.skippr\\:w-10{width:calc(var(--skippr-spacing)*10)}.skippr\\:w-40{width:calc(var(--skippr-spacing)*40)}.skippr\\:w-\\[2px\\]{width:2px}.skippr\\:w-\\[3px\\]{width:3px}.skippr\\:w-\\[15\\.4px\\]{width:15.4px}.skippr\\:w-\\[36px\\]{width:36px}.skippr\\:w-\\[38px\\]{width:38px}.skippr\\:w-\\[50px\\]{width:50px}.skippr\\:w-fit{width:fit-content}.skippr\\:w-full{width:100%}.skippr\\:max-w-64{max-width:calc(var(--skippr-spacing)*64)}.skippr\\:max-w-72{max-width:calc(var(--skippr-spacing)*72)}.skippr\\:max-w-\\[80\\%\\]{max-width:80%}.skippr\\: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\\:flex-1{flex:1}.skippr\\:shrink-0{flex-shrink:0}.skippr\\:origin-bottom-left{transform-origin:0 100%}.skippr\\:origin-bottom-right{transform-origin:100% 100%}.skippr\\:origin-center{transform-origin:50%}.skippr\\:origin-left{transform-origin:0}.skippr\\:origin-right{transform-origin:100%}.skippr\\:origin-top-left{transform-origin:0 0}.skippr\\:origin-top-right{transform-origin:100% 0}.skippr\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-x-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\\: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-finger-tap_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-finger-tap}.skippr\\:\\[animation\\:skippr-orb-in_320ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{animation:.32s cubic-bezier(.34,1.3,.64,1) skippr-orb-in}.skippr\\:\\[animation\\:skippr-stage-fade_240ms_ease-out\\]{animation:.24s ease-out skippr-stage-fade}.skippr\\:\\[animation\\:skippr-tip-in_360ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)_backwards\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) backwards skippr-tip-in}.skippr\\:\\[animation\\:skippr-toolset-pop_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-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-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\\: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-\\[2px\\]{gap:2px}.skippr\\:gap-\\[3px\\]{gap:3px}:where(.skippr\\:space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.skippr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skippr\\:overflow-hidden{overflow:hidden}.skippr\\:overflow-y-auto{overflow-y:auto}.skippr\\:rounded{border-radius:.25rem}.skippr\\:rounded-2xl{border-radius:1.125rem}.skippr\\:rounded-\\[1rem\\]{border-radius:1rem}.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-lg{border-radius:.625rem}.skippr\\:rounded-md{border-radius:.5rem}.skippr\\:rounded-sm{border-radius:.375rem}.skippr\\:rounded-xl{border-radius:.875rem}.skippr\\:rounded-l-\\[18px\\]{border-top-left-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-tl-md{border-top-left-radius:.5rem}.skippr\\:rounded-r-\\[18px\\]{border-top-right-radius:18px;border-bottom-right-radius:18px}.skippr\\:border{border-style:var(--tw-border-style);border-width:1px}.skippr\\:border-0{border-style:var(--tw-border-style);border-width:0}.skippr\\:border-2{border-style:var(--tw-border-style);border-width:2px}.skippr\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.skippr\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.skippr\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.skippr\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.skippr\\:border-\\[\\#2bc0ae\\]{border-color:#2bc0ae}.skippr\\:border-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,.skippr\\:border-input{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-primary\\/20{border-color:oklab(29.9244% .0107414 -.0305411/.2)}.skippr\\:border-r-border{border-right-color:oklch(92.3% .003 48.717)}.skippr\\:border-l-border{border-left-color:oklch(92.3% .003 48.717)}.skippr\\:bg-\\[\\#2bc0ae\\]{background-color:#2bc0ae}.skippr\\:bg-\\[\\#2bc0ae\\]\\/50{background-color:oklab(72.9347% -.121518 -.00545585/.5)}.skippr\\:bg-\\[\\#f4ecd8\\]{background-color:#f4ecd8}.skippr\\:bg-amber-50{background-color:var(--skippr-color-amber-50)}.skippr\\:bg-amber-400{background-color:var(--skippr-color-amber-400)}.skippr\\:bg-background{background-color:oklch(100% 0 0)}.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:color-mix(in oklab,var(--skippr-color-black)7.0%,transparent)}}.skippr\\:bg-bubble{background-color:#2d2b3d}.skippr\\:bg-bubble\\/95{background-color:oklab(29.9244% .0107414 -.0305411/.95)}.skippr\\:bg-card{background-color:oklch(100% 0 0)}.skippr\\:bg-current{background-color:currentColor}.skippr\\:bg-destructive{background-color:#d94f4f}.skippr\\:bg-emerald-400{background-color:var(--skippr-color-emerald-400)}.skippr\\:bg-foreground{background-color:oklch(14.7% .004 49.25)}.skippr\\:bg-green-100{background-color:var(--skippr-color-green-100)}.skippr\\:bg-launcher{background-color:#2d2d3f}.skippr\\:bg-muted-foreground\\/20{background-color:oklab(55.3% .00687528 .0110332/.2)}.skippr\\:bg-muted-foreground\\/40{background-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:bg-muted\\/50{background-color:oklab(97% -.000282743 .000959196/.5)}.skippr\\:bg-neutral-100{background-color:var(--skippr-color-neutral-100)}.skippr\\:bg-primary{background-color:#2d2b3d}.skippr\\:bg-primary-foreground\\/20{background-color:oklab(100% 0 5.96046e-8/.2)}.skippr\\:bg-primary\\/10{background-color:oklab(29.9244% .0107414 -.0305411/.1)}.skippr\\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\\:bg-red-100{background-color:var(--skippr-color-red-100)}.skippr\\:bg-red-400{background-color:var(--skippr-color-red-400)}.skippr\\:bg-red-500{background-color:var(--skippr-color-red-500)}.skippr\\:bg-secondary{background-color:#ffdfb5}.skippr\\:bg-transparent{background-color:#0000}.skippr\\:bg-white,.skippr\\:bg-white\\/15{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/15{background-color:color-mix(in oklab,var(--skippr-color-white)15%,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\\:fill-brand{fill:#2bc0ae}.skippr\\:fill-primary\\/30{fill:oklab(29.9244% .0107414 -.0305411/.3)}.skippr\\:stroke-black\\/15{stroke:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:stroke-black\\/15{stroke:color-mix(in oklab,var(--skippr-color-black)15%,transparent)}}.skippr\\:stroke-bubble{stroke:#2d2b3d}.skippr\\:p-0{padding:calc(var(--skippr-spacing)*0)}.skippr\\:p-0\\.5{padding:calc(var(--skippr-spacing)*.5)}.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\\:px-1{padding-inline:calc(var(--skippr-spacing)*1)}.skippr\\:px-1\\.5{padding-inline:calc(var(--skippr-spacing)*1.5)}.skippr\\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\\:px-2\\.5{padding-inline:calc(var(--skippr-spacing)*2.5)}.skippr\\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\\:px-3\\.5{padding-inline:calc(var(--skippr-spacing)*3.5)}.skippr\\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\\:px-8{padding-inline:calc(var(--skippr-spacing)*8)}.skippr\\: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\\:pt-1\\.5{padding-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:pr-2\\.5{padding-right:calc(var(--skippr-spacing)*2.5)}.skippr\\:pr-3{padding-right:calc(var(--skippr-spacing)*3)}.skippr\\:pb-2{padding-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:pl-1\\.5{padding-left:calc(var(--skippr-spacing)*1.5)}.skippr\\:pl-2\\.5{padding-left:calc(var(--skippr-spacing)*2.5)}.skippr\\:pl-3\\.5{padding-left:calc(var(--skippr-spacing)*3.5)}.skippr\\:text-center{text-align:center}.skippr\\:text-left{text-align:left}.skippr\\:font-mono{font-family:var(--skippr-font-mono)}.skippr\\:text-sm{font-size:var(--skippr-text-sm);line-height:var(--tw-leading,var(--skippr-text-sm--line-height))}.skippr\\:text-xs{font-size:var(--skippr-text-xs);line-height:var(--tw-leading,var(--skippr-text-xs--line-height))}.skippr\\:text-\\[10px\\]{font-size:10px}.skippr\\:text-\\[11px\\]{font-size:11px}.skippr\\:text-\\[13px\\]{font-size:13px}.skippr\\:leading-5{--tw-leading:calc(var(--skippr-spacing)*5);line-height:calc(var(--skippr-spacing)*5)}.skippr\\:leading-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\\:leading-tight{--tw-leading:var(--skippr-leading-tight);line-height:var(--skippr-leading-tight)}.skippr\\:font-medium{--tw-font-weight:var(--skippr-font-weight-medium);font-weight:var(--skippr-font-weight-medium)}.skippr\\:font-semibold{--tw-font-weight:var(--skippr-font-weight-semibold);font-weight:var(--skippr-font-weight-semibold)}.skippr\\:whitespace-nowrap{white-space:nowrap}.skippr\\:text-\\[\\#2bc0ae\\]{color:#2bc0ae}.skippr\\:text-amber-700{color:var(--skippr-color-amber-700)}.skippr\\:text-amber-950{color:var(--skippr-color-amber-950)}.skippr\\:text-background{color:oklch(100% 0 0)}.skippr\\:text-black,.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:#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-green-700{color:var(--skippr-color-green-700)}.skippr\\:text-muted-foreground{color:oklch(55.3% .013 58.071)}.skippr\\:text-muted-foreground\\/30{color:oklab(55.3% .00687528 .0110332/.3)}.skippr\\:text-muted-foreground\\/40{color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:text-muted-foreground\\/60{color:oklab(55.3% .00687528 .0110332/.6)}.skippr\\:text-muted-foreground\\/70{color:oklab(55.3% .00687528 .0110332/.7)}.skippr\\:text-neutral-500{color:var(--skippr-color-neutral-500)}.skippr\\:text-neutral-700{color:var(--skippr-color-neutral-700)}.skippr\\:text-primary{color:#2d2b3d}.skippr\\:text-primary-foreground{color:#fff}.skippr\\:text-primary-foreground\\/70{color:oklab(100% 0 5.96046e-8/.7)}.skippr\\:text-red-400{color:var(--skippr-color-red-400)}.skippr\\:text-red-600{color:var(--skippr-color-red-600)}.skippr\\:text-red-700{color:var(--skippr-color-red-700)}.skippr\\:text-secondary-foreground{color:#613700}.skippr\\:text-white,.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\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.skippr\\:line-through{text-decoration-line:line-through}.skippr\\:placeholder-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}.skippr\\:opacity-0{opacity:0}.skippr\\:opacity-40{opacity:.4}.skippr\\:opacity-75{opacity:.75}.skippr\\:opacity-100{opacity:1}.skippr\\:shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[-6px_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_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_4px_12px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_4px_14px_rgba\\(0\\,0\\,0\\,0\\.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_8px_24px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_8px_24px_rgba\\(45\\,43\\,61\\,0\\.35\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#2d2b3d59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_8px_30px_rgba\\(0\\,0\\,0\\,0\\.16\\)\\,0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#00000029),0 4px 12px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_10px_32px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 10px 32px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-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-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:ring-black\\/5{--tw-ring-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--skippr-color-black)5%,transparent)}}.skippr\\:ring-brand{--tw-ring-color:#2bc0ae}.skippr\\:ring-foreground\\/10{--tw-ring-color:oklab(14.7% .00261104 .00303026/.1)}.skippr\\:ring-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-white\\/30{--tw-ring-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-white\\/30{--tw-ring-color:color-mix(in oklab,var(--skippr-color-white)30%,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-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[opacity\\,transform\\,height\\]{transition-property:opacity,transform,height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[width\\,margin\\]{transition-property:width,margin;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:duration-75{--tw-duration:75ms;transition-duration:75ms}.skippr\\:duration-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\\.56\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.skippr\\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\\:ease-out{--tw-ease:var(--skippr-ease-out);transition-timing-function:var(--skippr-ease-out)}.skippr\\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\\:select-none{-webkit-user-select:none;user-select:none}.skippr\\:\\[animation-delay\\:0ms\\]{animation-delay:0s}.skippr\\:\\[animation-delay\\:150ms\\]{animation-delay:.15s}.skippr\\:\\[animation-delay\\:200ms\\]{animation-delay:.2s}.skippr\\:\\[animation-delay\\:300ms\\]{animation-delay:.3s}.skippr\\:\\[animation-delay\\:400ms\\]{animation-delay:.4s}.skippr\\:\\[overflow-anchor\\:none\\]{overflow-anchor:none}.skippr\\:group-focus-within\\:scale-100:is(:where(.skippr\\:group):focus-within *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-focus-within\\:opacity-100:is(:where(.skippr\\:group):focus-within *){opacity:1}@media (hover:hover){.skippr\\:group-hover\\:scale-100:is(:where(.skippr\\:group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-hover\\:text-red-300:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-red-300)}.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:group-hover\\:opacity-100:is(:where(.skippr\\:group):hover *){opacity:1}}.skippr\\:placeholder\\:text-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}@media (hover:hover){.skippr\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--skippr-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:hover\\:bg-\\[\\#3a384b\\]:hover{background-color:#3a384b}.skippr\\:hover\\:bg-accent:hover{background-color:#e7e5e4}.skippr\\:hover\\:bg-amber-100:hover{background-color:var(--skippr-color-amber-100)}.skippr\\:hover\\:bg-bubble:hover{background-color:#2d2b3d}.skippr\\:hover\\:bg-destructive\\/90:hover{background-color:oklab(61.4357% .15892 .0698893/.9)}.skippr\\:hover\\:bg-green-200:hover{background-color:var(--skippr-color-green-200)}.skippr\\:hover\\:bg-muted: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:oklab(29.9244% .0107414 -.0305411/.9)}.skippr\\:hover\\:bg-red-200:hover{background-color:var(--skippr-color-red-200)}.skippr\\:hover\\:bg-red-600:hover{background-color:var(--skippr-color-red-600)}.skippr\\:hover\\:bg-secondary\\/80:hover{background-color:oklab(91.9963% .0175391 .0626889/.8)}.skippr\\:hover\\:bg-white\\/10:hover{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--skippr-color-white)10%,transparent)}}.skippr\\:hover\\:text-accent-foreground:hover{color:oklch(21.6% .006 56.043)}.skippr\\:hover\\:text-foreground:hover{color:oklch(14.7% .004 49.25)}.skippr\\:hover\\:text-primary-foreground:hover{color:#fff}.skippr\\:hover\\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.skippr\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:focus-visible\\:ring-brand:focus-visible{--tw-ring-color:#2bc0ae}.skippr\\:focus-visible\\:ring-bubble\\/60:focus-visible{--tw-ring-color:oklab(29.9244% .0107414 -.0305411/.6)}.skippr\\:focus-visible\\:ring-ring:focus-visible{--tw-ring-color:oklch(70.9% .01 56.259)}.skippr\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.skippr\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.skippr\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--skippr-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.skippr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.skippr\\:disabled\\:opacity-50:disabled{opacity:.5}.skippr\\:disabled\\:opacity-60:disabled{opacity:.6}@media (prefers-reduced-motion:reduce){.skippr\\:motion-reduce\\:hidden{display:none}.skippr\\:motion-reduce\\: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)}}@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 #2bc0ae8c}70%{box-shadow:0 0 0 11px #2bc0ae00}to{box-shadow:0 0 #2bc0ae00}}@keyframes skippr-ptt-transmit{0%{box-shadow:0 0 #2bc0ae99,0 0 #2bc0ae59}70%{box-shadow:0 0 0 9px #2bc0ae00,0 0 0 16px #2bc0ae00}to{box-shadow:0 0 #2bc0ae00,0 0 #2bc0ae00}}@keyframes skippr-annotation-pulse{0%,to{box-shadow:0 0 #2bc0ae80}50%{box-shadow:0 0 0 6px #2bc0ae00}}@keyframes skippr-speak-ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes skippr-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes skippr-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes skippr-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-wave{0%,to{opacity:.4;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-bubble-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-tip-in{0%{opacity:0;transform:translateY(14px)scale(.96)}60%{opacity:1;transform:translateY(-2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-pill-content{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes skippr-banner-look{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes skippr-finger-tap{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(2px)rotate(-6deg)}}@keyframes skippr-toolset-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes skippr-stage-fade{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes skippr-agent-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes skippr-orb-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.skippr-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.skippr-no-scrollbar::-webkit-scrollbar{display:none}:host{color:var(--color-foreground)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes 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}}`;
|
|
4818
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--skippr-font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--skippr-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--skippr-color-red-50:oklch(97.1% .013 17.38);--skippr-color-red-100:oklch(93.6% .032 17.717);--skippr-color-red-200:oklch(88.5% .062 18.334);--skippr-color-red-300:oklch(80.8% .114 19.571);--skippr-color-red-400:oklch(70.4% .191 22.216);--skippr-color-red-500:oklch(63.7% .237 25.331);--skippr-color-red-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--skippr-color-amber-50:oklch(98.7% .022 95.277);--skippr-color-amber-100:oklch(96.2% .059 95.617);--skippr-color-amber-400:oklch(82.8% .189 84.429);--skippr-color-amber-700:oklch(55.5% .163 48.998);--skippr-color-amber-950:oklch(27.9% .077 45.635);--skippr-color-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-leading-tight:1.25;--skippr-leading-snug:1.375;--skippr-leading-relaxed:1.625;--skippr-ease-out:cubic-bezier(0,0,.2,1);--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-ping:ping 1s cubic-bezier(0,0,.2,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--skippr-blur-sm:8px;--skippr-default-transition-duration:.15s;--skippr-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--skippr-default-font-family:var(--skippr-font-sans);--skippr-default-mono-font-family:var(--skippr-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--skippr-default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--skippr-default-font-feature-settings,normal);font-variation-settings:var(--skippr-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--skippr-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--skippr-default-mono-font-feature-settings,normal);font-variation-settings:var(--skippr-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.skippr\\:pointer-events-none{pointer-events:none}.skippr\\:absolute{position:absolute}.skippr\\:fixed{position:fixed}.skippr\\:relative{position:relative}.skippr\\:sticky{position:sticky}.skippr\\:inset-0{inset:calc(var(--skippr-spacing)*0)}.skippr\\:inset-y-0{inset-block:calc(var(--skippr-spacing)*0)}.skippr\\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\\:top-1\\/2{top:50%}.skippr\\:top-full{top:100%}.skippr\\:-right-8{right:calc(var(--skippr-spacing)*-8)}.skippr\\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\\:right-3{right:calc(var(--skippr-spacing)*3)}.skippr\\:right-5{right:calc(var(--skippr-spacing)*5)}.skippr\\:right-6{right:calc(var(--skippr-spacing)*6)}.skippr\\:-bottom-1{bottom:calc(var(--skippr-spacing)*-1)}.skippr\\:-bottom-9{bottom:calc(var(--skippr-spacing)*-9)}.skippr\\:bottom-3{bottom:calc(var(--skippr-spacing)*3)}.skippr\\:bottom-20{bottom:calc(var(--skippr-spacing)*20)}.skippr\\:bottom-full{bottom:100%}.skippr\\:-left-8{left:calc(var(--skippr-spacing)*-8)}.skippr\\:left-0{left:calc(var(--skippr-spacing)*0)}.skippr\\:left-1\\/2{left:50%}.skippr\\:left-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-\\[9998\\]{z-index:9998}.skippr\\:z-\\[9999\\]{z-index:9999}.skippr\\:z-\\[10000\\]{z-index:10000}.skippr\\:order-first{order:-9999}.skippr\\:order-last{order:9999}.skippr\\:mx-auto{margin-inline:auto}.skippr\\:-mt-\\[5px\\]{margin-top:-5px}.skippr\\:-mt-\\[27px\\]{margin-top:-27px}.skippr\\:mt-0\\.5{margin-top:calc(var(--skippr-spacing)*.5)}.skippr\\:mt-1{margin-top:calc(var(--skippr-spacing)*1)}.skippr\\:mt-1\\.5{margin-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:mt-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\\:mr-7{margin-right:calc(var(--skippr-spacing)*7)}.skippr\\:-mb-\\[5px\\]{margin-bottom:-5px}.skippr\\:mb-1\\.5{margin-bottom:calc(var(--skippr-spacing)*1.5)}.skippr\\:mb-2{margin-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:mb-3{margin-bottom:calc(var(--skippr-spacing)*3)}.skippr\\:mb-4{margin-bottom:calc(var(--skippr-spacing)*4)}.skippr\\:ml-0\\.5{margin-left:calc(var(--skippr-spacing)*.5)}.skippr\\:ml-1{margin-left:calc(var(--skippr-spacing)*1)}.skippr\\:ml-7{margin-left:calc(var(--skippr-spacing)*7)}.skippr\\:flex{display:flex}.skippr\\: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-\\[5px\\]{width:5px;height:5px}.skippr\\:size-\\[38px\\]{width:38px;height:38px}.skippr\\:size-full{width:100%;height:100%}.skippr\\:h-0{height:calc(var(--skippr-spacing)*0)}.skippr\\:h-0\\.5{height:calc(var(--skippr-spacing)*.5)}.skippr\\:h-1{height:calc(var(--skippr-spacing)*1)}.skippr\\:h-1\\.5{height:calc(var(--skippr-spacing)*1.5)}.skippr\\:h-2{height:calc(var(--skippr-spacing)*2)}.skippr\\:h-3{height:calc(var(--skippr-spacing)*3)}.skippr\\:h-3\\.5{height:calc(var(--skippr-spacing)*3.5)}.skippr\\:h-4{height:calc(var(--skippr-spacing)*4)}.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-\\[18\\.5px\\]{height:18.5px}.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\\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\\:min-h-11{min-height:calc(var(--skippr-spacing)*11)}.skippr\\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\\:w-3\\.5{width:calc(var(--skippr-spacing)*3.5)}.skippr\\:w-4{width:calc(var(--skippr-spacing)*4)}.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-8{width:calc(var(--skippr-spacing)*8)}.skippr\\:w-10{width:calc(var(--skippr-spacing)*10)}.skippr\\:w-40{width:calc(var(--skippr-spacing)*40)}.skippr\\:w-\\[2px\\]{width:2px}.skippr\\:w-\\[3px\\]{width:3px}.skippr\\:w-\\[15\\.4px\\]{width:15.4px}.skippr\\:w-\\[36px\\]{width:36px}.skippr\\:w-\\[38px\\]{width:38px}.skippr\\:w-\\[50px\\]{width:50px}.skippr\\:w-fit{width:fit-content}.skippr\\:w-full{width:100%}.skippr\\:max-w-64{max-width:calc(var(--skippr-spacing)*64)}.skippr\\:max-w-72{max-width:calc(var(--skippr-spacing)*72)}.skippr\\:max-w-\\[80\\%\\]{max-width:80%}.skippr\\: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\\:flex-1{flex:1}.skippr\\:shrink-0{flex-shrink:0}.skippr\\:origin-bottom-left{transform-origin:0 100%}.skippr\\:origin-bottom-right{transform-origin:100% 100%}.skippr\\:origin-center{transform-origin:50%}.skippr\\:origin-left{transform-origin:0}.skippr\\:origin-right{transform-origin:100%}.skippr\\:origin-top-left{transform-origin:0 0}.skippr\\:origin-top-right{transform-origin:100% 0}.skippr\\:-translate-x-1\\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:-translate-x-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\\: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-finger-tap_1\\.1s_ease-in-out_infinite\\]{animation:1.1s ease-in-out infinite skippr-finger-tap}.skippr\\:\\[animation\\:skippr-orb-in_320ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)\\]{animation:.32s cubic-bezier(.34,1.3,.64,1) skippr-orb-in}.skippr\\:\\[animation\\:skippr-stage-fade_240ms_ease-out\\]{animation:.24s ease-out skippr-stage-fade}.skippr\\:\\[animation\\:skippr-tip-in_360ms_cubic-bezier\\(0\\.34\\,1\\.3\\,0\\.64\\,1\\)_backwards\\]{animation:.36s cubic-bezier(.34,1.3,.64,1) backwards skippr-tip-in}.skippr\\:\\[animation\\:skippr-toolset-pop_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-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-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\\: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-\\[2px\\]{gap:2px}.skippr\\:gap-\\[3px\\]{gap:3px}:where(.skippr\\:space-y-0\\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*.5)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*.5)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.skippr\\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--skippr-spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--skippr-spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}.skippr\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.skippr\\:overflow-hidden{overflow:hidden}.skippr\\:overflow-y-auto{overflow-y:auto}.skippr\\:rounded{border-radius:.25rem}.skippr\\:rounded-2xl{border-radius:1.125rem}.skippr\\:rounded-\\[1rem\\]{border-radius:1rem}.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-lg{border-radius:.625rem}.skippr\\:rounded-md{border-radius:.5rem}.skippr\\:rounded-sm{border-radius:.375rem}.skippr\\:rounded-xl{border-radius:.875rem}.skippr\\:rounded-l-\\[18px\\]{border-top-left-radius:18px;border-bottom-left-radius:18px}.skippr\\:rounded-tl-md{border-top-left-radius:.5rem}.skippr\\:rounded-r-\\[18px\\]{border-top-right-radius:18px;border-bottom-right-radius:18px}.skippr\\:border{border-style:var(--tw-border-style);border-width:1px}.skippr\\:border-0{border-style:var(--tw-border-style);border-width:0}.skippr\\:border-2{border-style:var(--tw-border-style);border-width:2px}.skippr\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.skippr\\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.skippr\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.skippr\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.skippr\\:border-\\[\\#2bc0ae\\]{border-color:#2bc0ae}.skippr\\:border-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,.skippr\\:border-input{border-color:oklch(92.3% .003 48.717)}.skippr\\:border-primary\\/20{border-color:oklab(29.9244% .0107414 -.0305411/.2)}.skippr\\:border-r-border{border-right-color:oklch(92.3% .003 48.717)}.skippr\\:border-l-border{border-left-color:oklch(92.3% .003 48.717)}.skippr\\:bg-\\[\\#2bc0ae\\]{background-color:#2bc0ae}.skippr\\:bg-\\[\\#2bc0ae\\]\\/50{background-color:oklab(72.9347% -.121518 -.00545585/.5)}.skippr\\:bg-\\[\\#f4ecd8\\]{background-color:#f4ecd8}.skippr\\:bg-amber-50{background-color:var(--skippr-color-amber-50)}.skippr\\:bg-amber-400{background-color:var(--skippr-color-amber-400)}.skippr\\:bg-background{background-color:oklch(100% 0 0)}.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-black\\/\\[0\\.07\\]{background-color:color-mix(in oklab,var(--skippr-color-black)7.0%,transparent)}}.skippr\\:bg-bubble{background-color:#2d2b3d}.skippr\\:bg-bubble\\/95{background-color:oklab(29.9244% .0107414 -.0305411/.95)}.skippr\\:bg-card{background-color:oklch(100% 0 0)}.skippr\\:bg-current{background-color:currentColor}.skippr\\:bg-destructive{background-color:#d94f4f}.skippr\\:bg-emerald-400{background-color:var(--skippr-color-emerald-400)}.skippr\\:bg-foreground{background-color:oklch(14.7% .004 49.25)}.skippr\\:bg-launcher{background-color:#2d2d3f}.skippr\\:bg-muted-foreground\\/20{background-color:oklab(55.3% .00687528 .0110332/.2)}.skippr\\:bg-muted-foreground\\/40{background-color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:bg-muted\\/50{background-color:oklab(97% -.000282743 .000959196/.5)}.skippr\\:bg-neutral-100{background-color:var(--skippr-color-neutral-100)}.skippr\\:bg-primary{background-color:#2d2b3d}.skippr\\:bg-primary-foreground\\/20{background-color:oklab(100% 0 5.96046e-8/.2)}.skippr\\:bg-primary\\/10{background-color:oklab(29.9244% .0107414 -.0305411/.1)}.skippr\\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\\:bg-red-100{background-color:var(--skippr-color-red-100)}.skippr\\:bg-red-400{background-color:var(--skippr-color-red-400)}.skippr\\:bg-red-500{background-color:var(--skippr-color-red-500)}.skippr\\:bg-secondary{background-color:#ffdfb5}.skippr\\:bg-transparent{background-color:#0000}.skippr\\:bg-white,.skippr\\:bg-white\\/15{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:bg-white\\/15{background-color:color-mix(in oklab,var(--skippr-color-white)15%,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\\:fill-brand{fill:#2bc0ae}.skippr\\:fill-primary\\/30{fill:oklab(29.9244% .0107414 -.0305411/.3)}.skippr\\:stroke-black\\/15{stroke:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:stroke-black\\/15{stroke:color-mix(in oklab,var(--skippr-color-black)15%,transparent)}}.skippr\\:stroke-bubble{stroke:#2d2b3d}.skippr\\:p-0{padding:calc(var(--skippr-spacing)*0)}.skippr\\:p-0\\.5{padding:calc(var(--skippr-spacing)*.5)}.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\\:px-1{padding-inline:calc(var(--skippr-spacing)*1)}.skippr\\:px-1\\.5{padding-inline:calc(var(--skippr-spacing)*1.5)}.skippr\\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\\:px-2\\.5{padding-inline:calc(var(--skippr-spacing)*2.5)}.skippr\\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\\:px-3\\.5{padding-inline:calc(var(--skippr-spacing)*3.5)}.skippr\\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\\:px-8{padding-inline:calc(var(--skippr-spacing)*8)}.skippr\\: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\\:pt-1\\.5{padding-top:calc(var(--skippr-spacing)*1.5)}.skippr\\:pr-2\\.5{padding-right:calc(var(--skippr-spacing)*2.5)}.skippr\\:pr-3{padding-right:calc(var(--skippr-spacing)*3)}.skippr\\:pb-2{padding-bottom:calc(var(--skippr-spacing)*2)}.skippr\\:pl-1\\.5{padding-left:calc(var(--skippr-spacing)*1.5)}.skippr\\:pl-2\\.5{padding-left:calc(var(--skippr-spacing)*2.5)}.skippr\\:pl-3\\.5{padding-left:calc(var(--skippr-spacing)*3.5)}.skippr\\:text-center{text-align:center}.skippr\\:text-left{text-align:left}.skippr\\:font-mono{font-family:var(--skippr-font-mono)}.skippr\\:text-sm{font-size:var(--skippr-text-sm);line-height:var(--tw-leading,var(--skippr-text-sm--line-height))}.skippr\\:text-xs{font-size:var(--skippr-text-xs);line-height:var(--tw-leading,var(--skippr-text-xs--line-height))}.skippr\\:text-\\[10px\\]{font-size:10px}.skippr\\:text-\\[11px\\]{font-size:11px}.skippr\\:text-\\[13px\\]{font-size:13px}.skippr\\:leading-5{--tw-leading:calc(var(--skippr-spacing)*5);line-height:calc(var(--skippr-spacing)*5)}.skippr\\:leading-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\\:leading-tight{--tw-leading:var(--skippr-leading-tight);line-height:var(--skippr-leading-tight)}.skippr\\:font-medium{--tw-font-weight:var(--skippr-font-weight-medium);font-weight:var(--skippr-font-weight-medium)}.skippr\\:font-semibold{--tw-font-weight:var(--skippr-font-weight-semibold);font-weight:var(--skippr-font-weight-semibold)}.skippr\\:whitespace-nowrap{white-space:nowrap}.skippr\\:text-\\[\\#2bc0ae\\]{color:#2bc0ae}.skippr\\:text-amber-700{color:var(--skippr-color-amber-700)}.skippr\\:text-amber-950{color:var(--skippr-color-amber-950)}.skippr\\:text-background{color:oklch(100% 0 0)}.skippr\\:text-black,.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:#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\\/40{color:oklab(55.3% .00687528 .0110332/.4)}.skippr\\:text-muted-foreground\\/60{color:oklab(55.3% .00687528 .0110332/.6)}.skippr\\:text-muted-foreground\\/70{color:oklab(55.3% .00687528 .0110332/.7)}.skippr\\:text-neutral-500{color:var(--skippr-color-neutral-500)}.skippr\\:text-neutral-700{color:var(--skippr-color-neutral-700)}.skippr\\:text-primary{color:#2d2b3d}.skippr\\:text-primary-foreground{color:#fff}.skippr\\:text-primary-foreground\\/70{color:oklab(100% 0 5.96046e-8/.7)}.skippr\\:text-red-400{color:var(--skippr-color-red-400)}.skippr\\:text-red-600{color:var(--skippr-color-red-600)}.skippr\\:text-red-700{color:var(--skippr-color-red-700)}.skippr\\:text-secondary-foreground{color:#613700}.skippr\\:text-white,.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\\:tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,)var(--tw-slashed-zero,)var(--tw-numeric-figure,)var(--tw-numeric-spacing,)var(--tw-numeric-fraction,)}.skippr\\:line-through{text-decoration-line:line-through}.skippr\\:placeholder-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}.skippr\\:opacity-0{opacity:0}.skippr\\:opacity-40{opacity:.4}.skippr\\:opacity-75{opacity:.75}.skippr\\:opacity-100{opacity:1}.skippr\\:shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[-6px_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_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_4px_12px_rgba\\(0\\,0\\,0\\,0\\.12\\)\\]{--tw-shadow:0 4px 12px var(--tw-shadow-color,#0000001f);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_4px_14px_rgba\\(0\\,0\\,0\\,0\\.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_8px_24px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_8px_24px_rgba\\(45\\,43\\,61\\,0\\.35\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#2d2b3d59);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_8px_30px_rgba\\(0\\,0\\,0\\,0\\.16\\)\\,0_4px_12px_rgba\\(0\\,0\\,0\\,0\\.08\\)\\]{--tw-shadow:0 8px 30px var(--tw-shadow-color,#00000029),0 4px 12px var(--tw-shadow-color,#00000014);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-\\[0_10px_32px_rgba\\(0\\,0\\,0\\,0\\.18\\)\\]{--tw-shadow:0 10px 32px var(--tw-shadow-color,#0000002e);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-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-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:ring-1{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:ring-black\\/5{--tw-ring-color:var(--skippr-color-black)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-black\\/5{--tw-ring-color:color-mix(in oklab,var(--skippr-color-black)5%,transparent)}}.skippr\\:ring-brand{--tw-ring-color:#2bc0ae}.skippr\\:ring-foreground\\/10{--tw-ring-color:oklab(14.7% .00261104 .00303026/.1)}.skippr\\:ring-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-white\\/30{--tw-ring-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:ring-white\\/30{--tw-ring-color:color-mix(in oklab,var(--skippr-color-white)30%,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-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[opacity\\,transform\\,height\\]{transition-property:opacity,transform,height;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[width\\,margin\\]{transition-property:width,margin;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-\\[width\\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--skippr-default-transition-timing-function));transition-duration:var(--tw-duration,var(--skippr-default-transition-duration))}.skippr\\:duration-75{--tw-duration:75ms;transition-duration:75ms}.skippr\\:duration-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\\.56\\,0\\.64\\,1\\)\\]{--tw-ease:cubic-bezier(.34,1.56,.64,1);transition-timing-function:cubic-bezier(.34,1.56,.64,1)}.skippr\\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\\:ease-out{--tw-ease:var(--skippr-ease-out);transition-timing-function:var(--skippr-ease-out)}.skippr\\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\\:select-none{-webkit-user-select:none;user-select:none}.skippr\\:\\[animation-delay\\:0ms\\]{animation-delay:0s}.skippr\\:\\[animation-delay\\:150ms\\]{animation-delay:.15s}.skippr\\:\\[animation-delay\\:200ms\\]{animation-delay:.2s}.skippr\\:\\[animation-delay\\:300ms\\]{animation-delay:.3s}.skippr\\:\\[animation-delay\\:400ms\\]{animation-delay:.4s}.skippr\\:\\[overflow-anchor\\:none\\]{overflow-anchor:none}.skippr\\:group-focus-within\\:scale-100:is(:where(.skippr\\:group):focus-within *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-focus-within\\:opacity-100:is(:where(.skippr\\:group):focus-within *){opacity:1}@media (hover:hover){.skippr\\:group-hover\\:scale-100:is(:where(.skippr\\:group):hover *){--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x)var(--tw-scale-y)}.skippr\\:group-hover\\:text-red-300:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-red-300)}.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:group-hover\\:text-white\\/80:is(:where(.skippr\\:group):hover *){color:color-mix(in oklab,var(--skippr-color-white)80%,transparent)}}.skippr\\:group-hover\\:opacity-100:is(:where(.skippr\\:group):hover *){opacity:1}}.skippr\\:placeholder\\:text-muted-foreground::placeholder{color:oklch(55.3% .013 58.071)}@media (hover:hover){.skippr\\:hover\\:-translate-y-0\\.5:hover{--tw-translate-y:calc(var(--skippr-spacing)*-.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:hover\\:bg-\\[\\#3a384b\\]:hover{background-color:#3a384b}.skippr\\:hover\\:bg-accent:hover{background-color:#e7e5e4}.skippr\\:hover\\:bg-amber-100:hover{background-color:var(--skippr-color-amber-100)}.skippr\\:hover\\:bg-bubble:hover{background-color:#2d2b3d}.skippr\\:hover\\:bg-destructive\\/90:hover{background-color:oklab(61.4357% .15892 .0698893/.9)}.skippr\\:hover\\:bg-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:oklab(29.9244% .0107414 -.0305411/.9)}.skippr\\:hover\\:bg-red-200:hover{background-color:var(--skippr-color-red-200)}.skippr\\:hover\\:bg-red-600:hover{background-color:var(--skippr-color-red-600)}.skippr\\:hover\\:bg-secondary\\/80:hover{background-color:oklab(91.9963% .0175391 .0626889/.8)}.skippr\\:hover\\:bg-white\\/10:hover{background-color:var(--skippr-color-white)}@supports (color:color-mix(in lab, red, red)){.skippr\\:hover\\:bg-white\\/10:hover{background-color:color-mix(in oklab,var(--skippr-color-white)10%,transparent)}}.skippr\\:hover\\:text-accent-foreground:hover{color:oklch(21.6% .006 56.043)}.skippr\\:hover\\:text-foreground:hover{color:oklch(14.7% .004 49.25)}.skippr\\:hover\\:text-primary-foreground:hover{color:#fff}.skippr\\:hover\\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}.skippr\\:focus-visible\\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\\:focus-visible\\:ring-brand:focus-visible{--tw-ring-color:#2bc0ae}.skippr\\:focus-visible\\:ring-bubble\\/60:focus-visible{--tw-ring-color:oklab(29.9244% .0107414 -.0305411/.6)}.skippr\\:focus-visible\\:ring-ring:focus-visible{--tw-ring-color:oklch(70.9% .01 56.259)}.skippr\\:focus-visible\\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.skippr\\:focus-visible\\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.skippr\\:active\\:translate-y-0:active{--tw-translate-y:calc(var(--skippr-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.skippr\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.skippr\\:disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.skippr\\:disabled\\:opacity-50:disabled{opacity:.5}.skippr\\:disabled\\:opacity-60:disabled{opacity:.6}@media (prefers-reduced-motion:reduce){.skippr\\:motion-reduce\\:hidden{display:none}.skippr\\:motion-reduce\\: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)}}@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 #2bc0ae8c}70%{box-shadow:0 0 0 11px #2bc0ae00}to{box-shadow:0 0 #2bc0ae00}}@keyframes skippr-ptt-transmit{0%{box-shadow:0 0 #2bc0ae99,0 0 #2bc0ae59}70%{box-shadow:0 0 0 9px #2bc0ae00,0 0 0 16px #2bc0ae00}to{box-shadow:0 0 #2bc0ae00,0 0 #2bc0ae00}}@keyframes skippr-annotation-pulse{0%,to{box-shadow:0 0 #2bc0ae80}50%{box-shadow:0 0 0 6px #2bc0ae00}}@keyframes skippr-speak-ripple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.8)}}@keyframes skippr-bar{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}@keyframes skippr-breathe{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes skippr-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes skippr-wave{0%,to{opacity:.4;transform:scaleY(.4)}50%{opacity:1;transform:scaleY(1)}}@keyframes skippr-bubble-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-tip-in{0%{opacity:0;transform:translateY(14px)scale(.96)}60%{opacity:1;transform:translateY(-2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes skippr-pill-content{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes skippr-banner-look{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes skippr-finger-tap{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(2px)rotate(-6deg)}}@keyframes skippr-toolset-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes skippr-stage-fade{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes skippr-agent-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes skippr-orb-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.skippr-no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.skippr-no-scrollbar::-webkit-scrollbar{display:none}:host{color:var(--color-foreground)}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes 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}}`;
|
|
4807
4819
|
useLayoutEffect2(() => {
|
|
4808
4820
|
const host = hostRef.current;
|
|
4809
4821
|
if (!host || !css)
|
|
@@ -4818,10 +4830,10 @@ function ShadowHost({ children }) {
|
|
|
4818
4830
|
setShadowRoot(root);
|
|
4819
4831
|
}, [css]);
|
|
4820
4832
|
if (!css)
|
|
4821
|
-
return /* @__PURE__ */
|
|
4833
|
+
return /* @__PURE__ */ jsx13(Fragment2, {
|
|
4822
4834
|
children
|
|
4823
4835
|
});
|
|
4824
|
-
return /* @__PURE__ */
|
|
4836
|
+
return /* @__PURE__ */ jsx13("div", {
|
|
4825
4837
|
ref: hostRef,
|
|
4826
4838
|
children: shadowRoot && createPortal(children, shadowRoot)
|
|
4827
4839
|
});
|
|
@@ -5044,7 +5056,7 @@ function useTextMode() {
|
|
|
5044
5056
|
}
|
|
5045
5057
|
|
|
5046
5058
|
// src/components/ChatHeader.tsx
|
|
5047
|
-
import { jsx as
|
|
5059
|
+
import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
5048
5060
|
function ChatHeader() {
|
|
5049
5061
|
const ctx = useContext12(LiveAgentContext);
|
|
5050
5062
|
if (!ctx) {
|
|
@@ -5066,33 +5078,33 @@ function ChatHeader() {
|
|
|
5066
5078
|
const followsPanel = variant === "floating" && isPanelOpen;
|
|
5067
5079
|
const dragFollowers = followsPanel ? [panelRef, controlBarRef] : null;
|
|
5068
5080
|
const { wasDraggedRef } = useLauncherDrag(headerRef, commitLauncherDrop, dragFollowers, setIsDragging);
|
|
5069
|
-
return /* @__PURE__ */
|
|
5081
|
+
return /* @__PURE__ */ jsxs11("header", {
|
|
5070
5082
|
ref: headerRef,
|
|
5071
5083
|
className: cn("skippr:sticky skippr:top-0 skippr:z-10 skippr:flex skippr:shrink-0 skippr:items-center skippr:justify-between skippr:border-b skippr:border-border skippr:bg-primary skippr:px-4 skippr:py-3", followsPanel && "skippr:cursor-grab skippr:touch-none skippr:select-none"),
|
|
5072
5084
|
children: [
|
|
5073
|
-
/* @__PURE__ */
|
|
5085
|
+
/* @__PURE__ */ jsxs11("div", {
|
|
5074
5086
|
className: "skippr:flex skippr:items-center skippr:gap-3",
|
|
5075
5087
|
children: [
|
|
5076
|
-
isConnected && /* @__PURE__ */
|
|
5077
|
-
isConnected && /* @__PURE__ */
|
|
5088
|
+
isConnected && /* @__PURE__ */ jsx14(HeaderModeToggle, {}),
|
|
5089
|
+
isConnected && /* @__PURE__ */ jsxs11("div", {
|
|
5078
5090
|
className: "skippr:flex skippr:items-center skippr:gap-1.5 skippr:rounded-full skippr:bg-primary-foreground/20 skippr:px-2.5 skippr:py-1",
|
|
5079
5091
|
children: [
|
|
5080
|
-
/* @__PURE__ */
|
|
5092
|
+
/* @__PURE__ */ jsxs11("span", {
|
|
5081
5093
|
className: "skippr:relative skippr:flex skippr:size-1.5",
|
|
5082
5094
|
children: [
|
|
5083
|
-
/* @__PURE__ */
|
|
5095
|
+
/* @__PURE__ */ jsx14("span", {
|
|
5084
5096
|
className: "skippr:absolute skippr:inline-flex skippr:h-full skippr:w-full skippr:animate-ping skippr:rounded-full skippr:bg-red-400 skippr:opacity-75"
|
|
5085
5097
|
}),
|
|
5086
|
-
/* @__PURE__ */
|
|
5098
|
+
/* @__PURE__ */ jsx14("span", {
|
|
5087
5099
|
className: "skippr:relative skippr:inline-flex skippr:size-1.5 skippr:rounded-full skippr:bg-red-400"
|
|
5088
5100
|
})
|
|
5089
5101
|
]
|
|
5090
5102
|
}),
|
|
5091
|
-
/* @__PURE__ */
|
|
5103
|
+
/* @__PURE__ */ jsx14("span", {
|
|
5092
5104
|
className: "skippr:text-[10px] skippr:font-medium skippr:text-primary-foreground",
|
|
5093
5105
|
children: "REC"
|
|
5094
5106
|
}),
|
|
5095
|
-
/* @__PURE__ */
|
|
5107
|
+
/* @__PURE__ */ jsx14("span", {
|
|
5096
5108
|
className: "skippr:text-[10px] skippr:font-mono skippr:text-primary-foreground",
|
|
5097
5109
|
children: formatTime(elapsed)
|
|
5098
5110
|
})
|
|
@@ -5100,7 +5112,7 @@ function ChatHeader() {
|
|
|
5100
5112
|
})
|
|
5101
5113
|
]
|
|
5102
5114
|
}),
|
|
5103
|
-
minimizable && /* @__PURE__ */
|
|
5115
|
+
minimizable && /* @__PURE__ */ jsx14("button", {
|
|
5104
5116
|
type: "button",
|
|
5105
5117
|
onClick: () => {
|
|
5106
5118
|
if (!wasDraggedRef.current)
|
|
@@ -5109,7 +5121,7 @@ function ChatHeader() {
|
|
|
5109
5121
|
"aria-label": "Close",
|
|
5110
5122
|
title: "Close",
|
|
5111
5123
|
className: "skippr:flex skippr:h-8 skippr:w-8 skippr:cursor-pointer skippr:items-center skippr:justify-center skippr:rounded-lg skippr:text-primary-foreground/70 skippr:transition-colors skippr:hover:bg-white/10 skippr:hover:text-primary-foreground skippr:focus-visible:outline-none skippr:focus-visible:ring-2 skippr:focus-visible:ring-brand",
|
|
5112
|
-
children: /* @__PURE__ */
|
|
5124
|
+
children: /* @__PURE__ */ jsx14(X, {
|
|
5113
5125
|
className: "skippr:h-4 skippr:w-4"
|
|
5114
5126
|
})
|
|
5115
5127
|
})
|
|
@@ -5119,12 +5131,12 @@ function ChatHeader() {
|
|
|
5119
5131
|
function HeaderModeToggle() {
|
|
5120
5132
|
const { textMode, toggleTextMode } = useTextMode();
|
|
5121
5133
|
const { isHeld } = useSessionHoldContext();
|
|
5122
|
-
return /* @__PURE__ */
|
|
5134
|
+
return /* @__PURE__ */ jsxs11("fieldset", {
|
|
5123
5135
|
"aria-label": "Response mode",
|
|
5124
5136
|
disabled: isHeld,
|
|
5125
5137
|
className: "skippr:flex skippr:items-center skippr:gap-0.5 skippr:rounded-lg skippr:bg-white/15 skippr:p-0.5 skippr:text-xs skippr:font-medium skippr:ring-1 skippr:ring-white/30 skippr:disabled:opacity-50",
|
|
5126
5138
|
children: [
|
|
5127
|
-
/* @__PURE__ */
|
|
5139
|
+
/* @__PURE__ */ jsx14("button", {
|
|
5128
5140
|
type: "button",
|
|
5129
5141
|
"aria-pressed": !textMode,
|
|
5130
5142
|
disabled: isHeld,
|
|
@@ -5135,7 +5147,7 @@ function HeaderModeToggle() {
|
|
|
5135
5147
|
className: cn("skippr:rounded-md skippr:px-2.5 skippr:py-1 skippr:transition-colors skippr:focus-visible:outline-none skippr:focus-visible:ring-2 skippr:focus-visible:ring-brand skippr:disabled:cursor-not-allowed", isHeld ? "skippr:cursor-not-allowed" : "skippr:cursor-pointer", textMode ? "skippr:font-semibold skippr:text-primary-foreground" : "skippr:bg-white skippr:text-primary skippr:shadow-sm"),
|
|
5136
5148
|
children: "Voice"
|
|
5137
5149
|
}),
|
|
5138
|
-
/* @__PURE__ */
|
|
5150
|
+
/* @__PURE__ */ jsx14("button", {
|
|
5139
5151
|
type: "button",
|
|
5140
5152
|
"aria-pressed": textMode,
|
|
5141
5153
|
disabled: isHeld,
|
|
@@ -5151,26 +5163,26 @@ function HeaderModeToggle() {
|
|
|
5151
5163
|
}
|
|
5152
5164
|
|
|
5153
5165
|
// src/components/LoadingDots.tsx
|
|
5154
|
-
import { jsx as
|
|
5166
|
+
import { jsx as jsx15, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
5155
5167
|
function LoadingDots({ label }) {
|
|
5156
|
-
return /* @__PURE__ */
|
|
5168
|
+
return /* @__PURE__ */ jsxs12("div", {
|
|
5157
5169
|
className: "skippr:flex skippr:items-center skippr:gap-2 skippr:py-4",
|
|
5158
5170
|
children: [
|
|
5159
|
-
/* @__PURE__ */
|
|
5171
|
+
/* @__PURE__ */ jsxs12("div", {
|
|
5160
5172
|
className: "skippr:flex skippr:gap-1",
|
|
5161
5173
|
children: [
|
|
5162
|
-
/* @__PURE__ */
|
|
5174
|
+
/* @__PURE__ */ jsx15("span", {
|
|
5163
5175
|
className: "skippr:size-1.5 skippr:rounded-full skippr:bg-muted-foreground/40 skippr:animate-bounce skippr:[animation-delay:0ms]"
|
|
5164
5176
|
}),
|
|
5165
|
-
/* @__PURE__ */
|
|
5177
|
+
/* @__PURE__ */ jsx15("span", {
|
|
5166
5178
|
className: "skippr:size-1.5 skippr:rounded-full skippr:bg-muted-foreground/40 skippr:animate-bounce skippr:[animation-delay:150ms]"
|
|
5167
5179
|
}),
|
|
5168
|
-
/* @__PURE__ */
|
|
5180
|
+
/* @__PURE__ */ jsx15("span", {
|
|
5169
5181
|
className: "skippr:size-1.5 skippr:rounded-full skippr:bg-muted-foreground/40 skippr:animate-bounce skippr:[animation-delay:300ms]"
|
|
5170
5182
|
})
|
|
5171
5183
|
]
|
|
5172
5184
|
}),
|
|
5173
|
-
/* @__PURE__ */
|
|
5185
|
+
/* @__PURE__ */ jsx15("p", {
|
|
5174
5186
|
className: "skippr:text-xs skippr:text-muted-foreground",
|
|
5175
5187
|
children: label
|
|
5176
5188
|
})
|
|
@@ -5183,7 +5195,7 @@ import { useCallback as useCallback16, useEffect as useEffect25, useRef as useRe
|
|
|
5183
5195
|
|
|
5184
5196
|
// src/components/ui/button.tsx
|
|
5185
5197
|
import { forwardRef as forwardRef3 } from "react";
|
|
5186
|
-
import { jsx as
|
|
5198
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
5187
5199
|
var variantClasses = {
|
|
5188
5200
|
default: "skippr:bg-primary skippr:text-primary-foreground skippr:hover:bg-primary/90",
|
|
5189
5201
|
destructive: "skippr:bg-destructive skippr:text-white skippr:hover:bg-destructive/90",
|
|
@@ -5202,7 +5214,7 @@ var sizeClasses = {
|
|
|
5202
5214
|
"icon-lg": "skippr:size-10"
|
|
5203
5215
|
};
|
|
5204
5216
|
var Button = forwardRef3(({ className, variant = "default", size = "default", ...props }, ref) => {
|
|
5205
|
-
return /* @__PURE__ */
|
|
5217
|
+
return /* @__PURE__ */ jsx16("button", {
|
|
5206
5218
|
className: cn("skippr:inline-flex skippr:items-center skippr:justify-center skippr:gap-2 skippr:whitespace-nowrap skippr:rounded-md skippr:text-sm skippr:font-medium skippr:ring-offset-background skippr:transition-all skippr:cursor-pointer skippr:focus-visible:outline-none skippr:focus-visible:ring-2 skippr:focus-visible:ring-ring skippr:focus-visible:ring-offset-2 skippr:disabled:pointer-events-none skippr:disabled:opacity-50 skippr:shrink-0 skippr:[&_svg]:pointer-events-none skippr:[&_svg:not([class*='size-'])]:size-4 skippr:[&_svg]:shrink-0", variantClasses[variant], sizeClasses[size], className),
|
|
5207
5219
|
ref,
|
|
5208
5220
|
...props
|
|
@@ -5211,7 +5223,7 @@ var Button = forwardRef3(({ className, variant = "default", size = "default", ..
|
|
|
5211
5223
|
Button.displayName = "Button";
|
|
5212
5224
|
|
|
5213
5225
|
// src/components/LoginFlow.tsx
|
|
5214
|
-
import { jsx as
|
|
5226
|
+
import { jsx as jsx17, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
5215
5227
|
var OTP_LENGTH = 6;
|
|
5216
5228
|
var DIGIT_KEYS = ["d0", "d1", "d2", "d3", "d4", "d5"];
|
|
5217
5229
|
function LoginFlow({ requestOtp, verifyOtp, error, isSubmitting }) {
|
|
@@ -5232,7 +5244,7 @@ function LoginFlow({ requestOtp, verifyOtp, error, isSubmitting }) {
|
|
|
5232
5244
|
await requestOtp(email);
|
|
5233
5245
|
}, [requestOtp, email]);
|
|
5234
5246
|
if (step === "otp") {
|
|
5235
|
-
return /* @__PURE__ */
|
|
5247
|
+
return /* @__PURE__ */ jsx17(OtpStep, {
|
|
5236
5248
|
email,
|
|
5237
5249
|
onSubmit: handleVerifyOtp,
|
|
5238
5250
|
onResend: handleResend,
|
|
@@ -5241,7 +5253,7 @@ function LoginFlow({ requestOtp, verifyOtp, error, isSubmitting }) {
|
|
|
5241
5253
|
isSubmitting
|
|
5242
5254
|
});
|
|
5243
5255
|
}
|
|
5244
|
-
return /* @__PURE__ */
|
|
5256
|
+
return /* @__PURE__ */ jsx17(EmailStep, {
|
|
5245
5257
|
email,
|
|
5246
5258
|
onEmailChange: setEmail,
|
|
5247
5259
|
onSubmit: handleRequestOtp,
|
|
@@ -5255,30 +5267,30 @@ function EmailStep({ email, onEmailChange, onSubmit, error, isSubmitting }) {
|
|
|
5255
5267
|
if (email.trim())
|
|
5256
5268
|
onSubmit(email.trim());
|
|
5257
5269
|
}
|
|
5258
|
-
return /* @__PURE__ */
|
|
5270
|
+
return /* @__PURE__ */ jsxs13("div", {
|
|
5259
5271
|
className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",
|
|
5260
5272
|
children: [
|
|
5261
|
-
/* @__PURE__ */
|
|
5273
|
+
/* @__PURE__ */ jsxs13("div", {
|
|
5262
5274
|
className: "skippr:mb-4 skippr:text-center",
|
|
5263
5275
|
children: [
|
|
5264
|
-
/* @__PURE__ */
|
|
5276
|
+
/* @__PURE__ */ jsx17(Mail, {
|
|
5265
5277
|
className: "skippr:mx-auto skippr:mb-2 skippr:size-6 skippr:text-primary"
|
|
5266
5278
|
}),
|
|
5267
|
-
/* @__PURE__ */
|
|
5279
|
+
/* @__PURE__ */ jsx17("p", {
|
|
5268
5280
|
className: "skippr:text-sm skippr:font-medium skippr:text-foreground",
|
|
5269
5281
|
children: "Sign in to continue"
|
|
5270
5282
|
}),
|
|
5271
|
-
/* @__PURE__ */
|
|
5283
|
+
/* @__PURE__ */ jsx17("p", {
|
|
5272
5284
|
className: "skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",
|
|
5273
5285
|
children: "Your email will be used to identify you across sessions"
|
|
5274
5286
|
})
|
|
5275
5287
|
]
|
|
5276
5288
|
}),
|
|
5277
|
-
/* @__PURE__ */
|
|
5289
|
+
/* @__PURE__ */ jsxs13("form", {
|
|
5278
5290
|
onSubmit: handleSubmit,
|
|
5279
5291
|
className: "skippr:flex skippr:flex-col skippr:gap-3",
|
|
5280
5292
|
children: [
|
|
5281
|
-
/* @__PURE__ */
|
|
5293
|
+
/* @__PURE__ */ jsx17("input", {
|
|
5282
5294
|
type: "email",
|
|
5283
5295
|
placeholder: "you@example.com",
|
|
5284
5296
|
value: email,
|
|
@@ -5287,15 +5299,15 @@ function EmailStep({ email, onEmailChange, onSubmit, error, isSubmitting }) {
|
|
|
5287
5299
|
required: true,
|
|
5288
5300
|
className: "skippr:w-full skippr:rounded-md skippr:border skippr:border-border skippr:bg-background skippr:px-3 skippr:py-2 skippr:text-sm skippr:text-foreground skippr:placeholder-muted-foreground skippr:outline-none focus:skippr:ring-2 focus:skippr:ring-primary/30 focus:skippr:border-primary disabled:skippr:opacity-50"
|
|
5289
5301
|
}),
|
|
5290
|
-
/* @__PURE__ */
|
|
5302
|
+
/* @__PURE__ */ jsx17(Button, {
|
|
5291
5303
|
type: "submit",
|
|
5292
5304
|
disabled: isSubmitting || !email.trim(),
|
|
5293
5305
|
className: "skippr:w-full",
|
|
5294
|
-
children: isSubmitting ? /* @__PURE__ */
|
|
5306
|
+
children: isSubmitting ? /* @__PURE__ */ jsx17(LoaderCircle, {
|
|
5295
5307
|
className: "skippr:size-4 skippr:animate-spin"
|
|
5296
5308
|
}) : "Continue"
|
|
5297
5309
|
}),
|
|
5298
|
-
error && /* @__PURE__ */
|
|
5310
|
+
error && /* @__PURE__ */ jsx17("p", {
|
|
5299
5311
|
className: "skippr:text-xs skippr:text-center skippr:text-destructive",
|
|
5300
5312
|
children: error
|
|
5301
5313
|
})
|
|
@@ -5375,22 +5387,22 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
|
|
|
5375
5387
|
submittedRef.current = false;
|
|
5376
5388
|
inputRefs.current[0]?.focus();
|
|
5377
5389
|
}
|
|
5378
|
-
return /* @__PURE__ */
|
|
5390
|
+
return /* @__PURE__ */ jsxs13("div", {
|
|
5379
5391
|
className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:px-4 skippr:py-4",
|
|
5380
5392
|
children: [
|
|
5381
|
-
/* @__PURE__ */
|
|
5393
|
+
/* @__PURE__ */ jsxs13("div", {
|
|
5382
5394
|
className: "skippr:mb-4 skippr:text-center",
|
|
5383
5395
|
children: [
|
|
5384
|
-
/* @__PURE__ */
|
|
5396
|
+
/* @__PURE__ */ jsx17("p", {
|
|
5385
5397
|
className: "skippr:text-sm skippr:font-medium skippr:text-foreground",
|
|
5386
5398
|
children: "Enter verification code"
|
|
5387
5399
|
}),
|
|
5388
|
-
/* @__PURE__ */
|
|
5400
|
+
/* @__PURE__ */ jsxs13("p", {
|
|
5389
5401
|
className: "skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",
|
|
5390
5402
|
children: [
|
|
5391
5403
|
"We sent a 6-digit code to",
|
|
5392
5404
|
" ",
|
|
5393
|
-
/* @__PURE__ */
|
|
5405
|
+
/* @__PURE__ */ jsx17("span", {
|
|
5394
5406
|
className: "skippr:font-medium skippr:text-foreground",
|
|
5395
5407
|
children: email
|
|
5396
5408
|
})
|
|
@@ -5398,13 +5410,13 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
|
|
|
5398
5410
|
})
|
|
5399
5411
|
]
|
|
5400
5412
|
}),
|
|
5401
|
-
/* @__PURE__ */
|
|
5413
|
+
/* @__PURE__ */ jsxs13("form", {
|
|
5402
5414
|
onSubmit: handleSubmit,
|
|
5403
5415
|
className: "skippr:flex skippr:flex-col skippr:gap-3",
|
|
5404
5416
|
children: [
|
|
5405
|
-
/* @__PURE__ */
|
|
5417
|
+
/* @__PURE__ */ jsx17("div", {
|
|
5406
5418
|
className: "skippr:flex skippr:justify-center skippr:gap-1.5",
|
|
5407
|
-
children: digits.map((digit, index2) => /* @__PURE__ */
|
|
5419
|
+
children: digits.map((digit, index2) => /* @__PURE__ */ jsx17("input", {
|
|
5408
5420
|
ref: (el) => {
|
|
5409
5421
|
inputRefs.current[index2] = el;
|
|
5410
5422
|
},
|
|
@@ -5419,29 +5431,29 @@ function OtpStep({ email, onSubmit, onResend, onBack, error, isSubmitting }) {
|
|
|
5419
5431
|
className: "skippr:h-10 skippr:w-10 skippr:rounded-md skippr:border skippr:border-border skippr:bg-background skippr:text-center skippr:text-sm skippr:font-semibold skippr:text-foreground skippr:outline-none focus:skippr:ring-2 focus:skippr:ring-primary/30 focus:skippr:border-primary disabled:skippr:opacity-50"
|
|
5420
5432
|
}, DIGIT_KEYS[index2]))
|
|
5421
5433
|
}),
|
|
5422
|
-
error && /* @__PURE__ */
|
|
5434
|
+
error && /* @__PURE__ */ jsx17("p", {
|
|
5423
5435
|
className: "skippr:text-xs skippr:text-center skippr:text-destructive",
|
|
5424
5436
|
children: error
|
|
5425
5437
|
}),
|
|
5426
|
-
/* @__PURE__ */
|
|
5438
|
+
/* @__PURE__ */ jsx17(Button, {
|
|
5427
5439
|
type: "submit",
|
|
5428
5440
|
disabled: isSubmitting || digits.join("").length !== OTP_LENGTH,
|
|
5429
5441
|
className: "skippr:w-full",
|
|
5430
|
-
children: isSubmitting ? /* @__PURE__ */
|
|
5442
|
+
children: isSubmitting ? /* @__PURE__ */ jsx17(LoaderCircle, {
|
|
5431
5443
|
className: "skippr:size-4 skippr:animate-spin"
|
|
5432
5444
|
}) : "Verify"
|
|
5433
5445
|
}),
|
|
5434
|
-
/* @__PURE__ */
|
|
5446
|
+
/* @__PURE__ */ jsxs13("div", {
|
|
5435
5447
|
className: "skippr:flex skippr:items-center skippr:justify-between skippr:text-xs",
|
|
5436
5448
|
children: [
|
|
5437
|
-
/* @__PURE__ */
|
|
5449
|
+
/* @__PURE__ */ jsx17("button", {
|
|
5438
5450
|
type: "button",
|
|
5439
5451
|
onClick: onBack,
|
|
5440
5452
|
disabled: isSubmitting,
|
|
5441
5453
|
className: "skippr:text-muted-foreground hover:skippr:text-foreground skippr:transition-colors disabled:skippr:opacity-50",
|
|
5442
5454
|
children: "Change email"
|
|
5443
5455
|
}),
|
|
5444
|
-
/* @__PURE__ */
|
|
5456
|
+
/* @__PURE__ */ jsx17("button", {
|
|
5445
5457
|
type: "button",
|
|
5446
5458
|
onClick: handleResend,
|
|
5447
5459
|
disabled: isSubmitting || resendCooldown > 0,
|
|
@@ -5461,7 +5473,7 @@ import { useCallback as useCallback17, useLayoutEffect as useLayoutEffect3, useR
|
|
|
5461
5473
|
|
|
5462
5474
|
// src/components/ChatInput.tsx
|
|
5463
5475
|
import { useEffect as useEffect26, useRef as useRef21, useState as useState19 } from "react";
|
|
5464
|
-
import { jsx as
|
|
5476
|
+
import { jsx as jsx18, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
5465
5477
|
var MAX_INPUT_HEIGHT = 60;
|
|
5466
5478
|
function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
|
|
5467
5479
|
const [inputText, setInputText] = useState19("");
|
|
@@ -5498,13 +5510,13 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
|
|
|
5498
5510
|
handleSubmit(e);
|
|
5499
5511
|
}
|
|
5500
5512
|
}
|
|
5501
|
-
return /* @__PURE__ */
|
|
5513
|
+
return /* @__PURE__ */ jsx18("form", {
|
|
5502
5514
|
onSubmit: handleSubmit,
|
|
5503
5515
|
className: "skippr:border-t skippr:border-border skippr:p-3",
|
|
5504
|
-
children: /* @__PURE__ */
|
|
5516
|
+
children: /* @__PURE__ */ jsxs14("div", {
|
|
5505
5517
|
className: "skippr:flex skippr:items-center skippr:gap-2 skippr:rounded-xl skippr:bg-background skippr:ring-1 skippr:ring-foreground/10 skippr:px-3 skippr:py-2",
|
|
5506
5518
|
children: [
|
|
5507
|
-
/* @__PURE__ */
|
|
5519
|
+
/* @__PURE__ */ jsx18("textarea", {
|
|
5508
5520
|
ref: textareaRef,
|
|
5509
5521
|
rows: 1,
|
|
5510
5522
|
value: inputText,
|
|
@@ -5514,12 +5526,12 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
|
|
|
5514
5526
|
className: "skippr:flex-1 skippr:resize-none skippr:overflow-y-auto skippr:bg-transparent skippr:text-sm skippr:leading-5 skippr:text-foreground skippr:placeholder:text-muted-foreground skippr:outline-none",
|
|
5515
5527
|
style: { maxHeight: `${MAX_INPUT_HEIGHT}px` }
|
|
5516
5528
|
}),
|
|
5517
|
-
/* @__PURE__ */
|
|
5529
|
+
/* @__PURE__ */ jsx18("button", {
|
|
5518
5530
|
type: "submit",
|
|
5519
5531
|
disabled: !canSend,
|
|
5520
5532
|
"aria-label": "Send message",
|
|
5521
5533
|
className: cn("skippr:flex skippr:size-8 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-lg skippr:transition-colors", canSend ? "skippr:bg-primary skippr:text-primary-foreground skippr:hover:bg-primary/90" : "skippr:bg-muted-foreground/20 skippr:text-muted-foreground/60"),
|
|
5522
|
-
children: /* @__PURE__ */
|
|
5534
|
+
children: /* @__PURE__ */ jsx18(Send, {
|
|
5523
5535
|
className: "skippr:size-3.5"
|
|
5524
5536
|
})
|
|
5525
5537
|
})
|
|
@@ -5529,7 +5541,7 @@ function ChatInput({ sendChatMessage, isSendingChat, autoFocus = false }) {
|
|
|
5529
5541
|
}
|
|
5530
5542
|
|
|
5531
5543
|
// src/components/ChatMessage.tsx
|
|
5532
|
-
import { jsx as
|
|
5544
|
+
import { jsx as jsx19, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
5533
5545
|
function formatTimestamp(ts) {
|
|
5534
5546
|
return new Date(ts).toLocaleTimeString("en-US", {
|
|
5535
5547
|
hour: "numeric",
|
|
@@ -5539,16 +5551,16 @@ function formatTimestamp(ts) {
|
|
|
5539
5551
|
}
|
|
5540
5552
|
function ChatMessage({ message }) {
|
|
5541
5553
|
const isAgent = message.role === "assistant";
|
|
5542
|
-
return /* @__PURE__ */
|
|
5554
|
+
return /* @__PURE__ */ jsx19("div", {
|
|
5543
5555
|
className: cn("skippr:flex skippr:gap-2", isAgent ? "skippr:items-start" : "skippr:justify-end"),
|
|
5544
|
-
children: /* @__PURE__ */
|
|
5556
|
+
children: /* @__PURE__ */ jsxs15("div", {
|
|
5545
5557
|
className: cn("skippr:flex skippr:max-w-[80%] skippr:flex-col", isAgent ? "skippr:items-start" : "skippr:items-end"),
|
|
5546
5558
|
children: [
|
|
5547
|
-
/* @__PURE__ */
|
|
5559
|
+
/* @__PURE__ */ jsx19("div", {
|
|
5548
5560
|
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"),
|
|
5549
5561
|
children: message.content
|
|
5550
5562
|
}),
|
|
5551
|
-
message.timestamp && /* @__PURE__ */
|
|
5563
|
+
message.timestamp && /* @__PURE__ */ jsx19("span", {
|
|
5552
5564
|
className: "skippr:mt-1 skippr:px-1 skippr:text-[10px] skippr:text-muted-foreground/60",
|
|
5553
5565
|
children: formatTimestamp(message.timestamp)
|
|
5554
5566
|
})
|
|
@@ -5559,27 +5571,27 @@ function ChatMessage({ message }) {
|
|
|
5559
5571
|
|
|
5560
5572
|
// src/components/PlanCard.tsx
|
|
5561
5573
|
import { useEffect as useEffect27 } from "react";
|
|
5562
|
-
import { jsx as
|
|
5574
|
+
import { jsx as jsx20, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
5563
5575
|
var APPROVE_MESSAGE = "Yes, go ahead.";
|
|
5564
5576
|
var CANCEL_MESSAGE = "No, cancel that.";
|
|
5565
5577
|
var COMPLETED_CARD_VISIBLE_MS = 2500;
|
|
5566
5578
|
function StepIcon({ status }) {
|
|
5567
5579
|
if (status === "done") {
|
|
5568
|
-
return /* @__PURE__ */
|
|
5580
|
+
return /* @__PURE__ */ jsx20(CircleCheck, {
|
|
5569
5581
|
className: "skippr:size-4 skippr:text-chart-3"
|
|
5570
5582
|
});
|
|
5571
5583
|
}
|
|
5572
5584
|
if (status === "failed") {
|
|
5573
|
-
return /* @__PURE__ */
|
|
5585
|
+
return /* @__PURE__ */ jsx20(CircleX, {
|
|
5574
5586
|
className: "skippr:size-4 skippr:text-destructive"
|
|
5575
5587
|
});
|
|
5576
5588
|
}
|
|
5577
5589
|
if (status === "active") {
|
|
5578
|
-
return /* @__PURE__ */
|
|
5590
|
+
return /* @__PURE__ */ jsx20(Circle, {
|
|
5579
5591
|
className: "skippr:size-4 skippr:fill-primary/30 skippr:text-primary"
|
|
5580
5592
|
});
|
|
5581
5593
|
}
|
|
5582
|
-
return /* @__PURE__ */
|
|
5594
|
+
return /* @__PURE__ */ jsx20(Circle, {
|
|
5583
5595
|
className: "skippr:size-4 skippr:text-muted-foreground/30"
|
|
5584
5596
|
});
|
|
5585
5597
|
}
|
|
@@ -5591,37 +5603,37 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
|
|
|
5591
5603
|
const timer = setTimeout(onDismiss, COMPLETED_CARD_VISIBLE_MS);
|
|
5592
5604
|
return () => clearTimeout(timer);
|
|
5593
5605
|
}, [plan.state, onDismiss]);
|
|
5594
|
-
return /* @__PURE__ */
|
|
5606
|
+
return /* @__PURE__ */ jsxs16("div", {
|
|
5595
5607
|
className: "skippr:rounded-2xl skippr:rounded-tl-md skippr:bg-card skippr:p-3.5 skippr:ring-2 skippr:ring-brand",
|
|
5596
5608
|
children: [
|
|
5597
|
-
/* @__PURE__ */
|
|
5609
|
+
/* @__PURE__ */ jsx20("p", {
|
|
5598
5610
|
className: "skippr:mb-3 skippr:text-sm skippr:font-semibold skippr:leading-snug skippr:text-foreground",
|
|
5599
5611
|
children: "Plan"
|
|
5600
5612
|
}),
|
|
5601
|
-
/* @__PURE__ */
|
|
5613
|
+
/* @__PURE__ */ jsx20("div", {
|
|
5602
5614
|
className: "skippr:space-y-2",
|
|
5603
|
-
children: plan.steps.map((step) => /* @__PURE__ */
|
|
5615
|
+
children: plan.steps.map((step) => /* @__PURE__ */ jsxs16("div", {
|
|
5604
5616
|
className: "skippr:flex skippr:items-center skippr:gap-2",
|
|
5605
5617
|
children: [
|
|
5606
|
-
/* @__PURE__ */
|
|
5618
|
+
/* @__PURE__ */ jsx20(StepIcon, {
|
|
5607
5619
|
status: step.status
|
|
5608
5620
|
}),
|
|
5609
|
-
/* @__PURE__ */
|
|
5621
|
+
/* @__PURE__ */ jsx20("p", {
|
|
5610
5622
|
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"),
|
|
5611
5623
|
children: step.label
|
|
5612
5624
|
})
|
|
5613
5625
|
]
|
|
5614
5626
|
}, step.index))
|
|
5615
5627
|
}),
|
|
5616
|
-
awaitingApproval && /* @__PURE__ */
|
|
5628
|
+
awaitingApproval && /* @__PURE__ */ jsxs16("div", {
|
|
5617
5629
|
className: "skippr:mt-3.5 skippr:flex skippr:gap-2",
|
|
5618
5630
|
children: [
|
|
5619
|
-
/* @__PURE__ */
|
|
5631
|
+
/* @__PURE__ */ jsx20(Button, {
|
|
5620
5632
|
className: "skippr:flex-1 skippr:py-2",
|
|
5621
5633
|
onClick: () => sendChatMessage(APPROVE_MESSAGE),
|
|
5622
5634
|
children: "Approve"
|
|
5623
5635
|
}),
|
|
5624
|
-
/* @__PURE__ */
|
|
5636
|
+
/* @__PURE__ */ jsx20(Button, {
|
|
5625
5637
|
variant: "outline",
|
|
5626
5638
|
className: "skippr:flex-1 skippr:py-2",
|
|
5627
5639
|
onClick: () => sendChatMessage(CANCEL_MESSAGE),
|
|
@@ -5634,26 +5646,26 @@ function PlanCard({ plan, sendChatMessage, onDismiss }) {
|
|
|
5634
5646
|
}
|
|
5635
5647
|
|
|
5636
5648
|
// src/components/TypingIndicator.tsx
|
|
5637
|
-
import { jsx as
|
|
5649
|
+
import { jsx as jsx21, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
5638
5650
|
function TypingIndicator() {
|
|
5639
|
-
return /* @__PURE__ */
|
|
5651
|
+
return /* @__PURE__ */ jsx21("div", {
|
|
5640
5652
|
className: "skippr:flex skippr:items-start skippr:gap-2 skippr:animate-skippr-tab-fade",
|
|
5641
|
-
children: /* @__PURE__ */
|
|
5653
|
+
children: /* @__PURE__ */ jsxs17("div", {
|
|
5642
5654
|
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",
|
|
5643
5655
|
children: [
|
|
5644
|
-
/* @__PURE__ */
|
|
5656
|
+
/* @__PURE__ */ jsx21("span", {
|
|
5645
5657
|
children: "Agent is analyzing your screen"
|
|
5646
5658
|
}),
|
|
5647
|
-
/* @__PURE__ */
|
|
5659
|
+
/* @__PURE__ */ jsxs17("span", {
|
|
5648
5660
|
className: "skippr:inline-flex skippr:items-center skippr:gap-[2px]",
|
|
5649
5661
|
children: [
|
|
5650
|
-
/* @__PURE__ */
|
|
5662
|
+
/* @__PURE__ */ jsx21("span", {
|
|
5651
5663
|
className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:0ms]"
|
|
5652
5664
|
}),
|
|
5653
|
-
/* @__PURE__ */
|
|
5665
|
+
/* @__PURE__ */ jsx21("span", {
|
|
5654
5666
|
className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:200ms]"
|
|
5655
5667
|
}),
|
|
5656
|
-
/* @__PURE__ */
|
|
5668
|
+
/* @__PURE__ */ jsx21("span", {
|
|
5657
5669
|
className: "skippr:size-1 skippr:rounded-full skippr:bg-primary skippr:animate-skippr-thinking-dot skippr:[animation-delay:400ms]"
|
|
5658
5670
|
})
|
|
5659
5671
|
]
|
|
@@ -5664,10 +5676,10 @@ function TypingIndicator() {
|
|
|
5664
5676
|
}
|
|
5665
5677
|
|
|
5666
5678
|
// src/components/MessageList.tsx
|
|
5667
|
-
import { jsx as
|
|
5679
|
+
import { jsx as jsx22, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
5668
5680
|
var BOTTOM_THRESHOLD_PX = 32;
|
|
5669
5681
|
function isPlanVisible(plan) {
|
|
5670
|
-
return !!plan && plan.steps.length > 0 && plan.state !== "abandoned";
|
|
5682
|
+
return !!plan && plan.steps.length > 0 && plan.state !== "abandoned" && plan.state !== "aborted";
|
|
5671
5683
|
}
|
|
5672
5684
|
function MessageList({
|
|
5673
5685
|
messages,
|
|
@@ -5720,49 +5732,49 @@ function MessageList({
|
|
|
5720
5732
|
container.scrollTop = container.scrollHeight;
|
|
5721
5733
|
}, [messages.length, lastMessage?.content]);
|
|
5722
5734
|
const showTyping = isStreaming && lastMessage?.role === "assistant" && lastMessage.content === "";
|
|
5723
|
-
return /* @__PURE__ */
|
|
5735
|
+
return /* @__PURE__ */ jsxs18("div", {
|
|
5724
5736
|
className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
|
|
5725
5737
|
children: [
|
|
5726
|
-
/* @__PURE__ */
|
|
5738
|
+
/* @__PURE__ */ jsxs18("div", {
|
|
5727
5739
|
className: "skippr:relative skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
|
|
5728
5740
|
children: [
|
|
5729
|
-
/* @__PURE__ */
|
|
5741
|
+
/* @__PURE__ */ jsxs18("div", {
|
|
5730
5742
|
ref: containerRef,
|
|
5731
5743
|
onScroll: handleScroll,
|
|
5732
5744
|
className: "skippr:min-h-0 skippr:flex-1 skippr:space-y-4 skippr:overflow-y-auto skippr:p-4 skippr:[overflow-anchor:none]",
|
|
5733
5745
|
children: [
|
|
5734
|
-
messages.length === 0 && !showTyping && (readOnly ? /* @__PURE__ */
|
|
5746
|
+
messages.length === 0 && !showTyping && (readOnly ? /* @__PURE__ */ jsx22("p", {
|
|
5735
5747
|
className: "skippr:px-2 skippr:py-6 skippr:text-center skippr:text-sm skippr:text-muted-foreground",
|
|
5736
5748
|
children: "No messages in this conversation yet."
|
|
5737
|
-
}) : /* @__PURE__ */
|
|
5749
|
+
}) : /* @__PURE__ */ jsx22(LoadingDots, {
|
|
5738
5750
|
label: "Waiting for conversation to begin..."
|
|
5739
5751
|
})),
|
|
5740
|
-
messages.map((message) => /* @__PURE__ */
|
|
5752
|
+
messages.map((message) => /* @__PURE__ */ jsx22(ChatMessage, {
|
|
5741
5753
|
message
|
|
5742
5754
|
}, message.id)),
|
|
5743
|
-
showTyping && /* @__PURE__ */
|
|
5755
|
+
showTyping && /* @__PURE__ */ jsx22(TypingIndicator, {})
|
|
5744
5756
|
]
|
|
5745
5757
|
}),
|
|
5746
|
-
showJumpToLatest && /* @__PURE__ */
|
|
5758
|
+
showJumpToLatest && /* @__PURE__ */ jsx22("button", {
|
|
5747
5759
|
type: "button",
|
|
5748
5760
|
onClick: jumpToLatest,
|
|
5749
5761
|
"aria-label": "Jump to latest message",
|
|
5750
5762
|
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",
|
|
5751
|
-
children: /* @__PURE__ */
|
|
5763
|
+
children: /* @__PURE__ */ jsx22(ChevronDown, {
|
|
5752
5764
|
className: "skippr:size-4"
|
|
5753
5765
|
})
|
|
5754
5766
|
})
|
|
5755
5767
|
]
|
|
5756
5768
|
}),
|
|
5757
|
-
sendChatMessage && isPlanVisible(plan) && plan.planId !== dismissedPlanId && /* @__PURE__ */
|
|
5769
|
+
sendChatMessage && isPlanVisible(plan) && plan.planId !== dismissedPlanId && /* @__PURE__ */ jsx22("div", {
|
|
5758
5770
|
className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
|
|
5759
|
-
children: /* @__PURE__ */
|
|
5771
|
+
children: /* @__PURE__ */ jsx22(PlanCard, {
|
|
5760
5772
|
plan,
|
|
5761
5773
|
sendChatMessage,
|
|
5762
5774
|
onDismiss: dismissPlan
|
|
5763
5775
|
}, plan.planId)
|
|
5764
5776
|
}),
|
|
5765
|
-
!readOnly && sendChatMessage && /* @__PURE__ */
|
|
5777
|
+
!readOnly && sendChatMessage && /* @__PURE__ */ jsx22(ChatInput, {
|
|
5766
5778
|
sendChatMessage,
|
|
5767
5779
|
isSendingChat,
|
|
5768
5780
|
autoFocus
|
|
@@ -5772,49 +5784,49 @@ function MessageList({
|
|
|
5772
5784
|
}
|
|
5773
5785
|
|
|
5774
5786
|
// src/components/SessionAgenda.tsx
|
|
5775
|
-
import { jsx as
|
|
5787
|
+
import { jsx as jsx23, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
5776
5788
|
function SessionAgenda({ phases, hasStarted }) {
|
|
5777
5789
|
if (phases.length === 0 || !hasStarted) {
|
|
5778
|
-
return /* @__PURE__ */
|
|
5790
|
+
return /* @__PURE__ */ jsx23("div", {
|
|
5779
5791
|
className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
|
|
5780
|
-
children: /* @__PURE__ */
|
|
5792
|
+
children: /* @__PURE__ */ jsx23(LoadingDots, {
|
|
5781
5793
|
label: "Waiting for agenda to load..."
|
|
5782
5794
|
})
|
|
5783
5795
|
});
|
|
5784
5796
|
}
|
|
5785
|
-
return /* @__PURE__ */
|
|
5797
|
+
return /* @__PURE__ */ jsx23("div", {
|
|
5786
5798
|
className: "skippr:flex-1 skippr:overflow-y-auto skippr:px-4 skippr:py-4",
|
|
5787
|
-
children: /* @__PURE__ */
|
|
5799
|
+
children: /* @__PURE__ */ jsx23("div", {
|
|
5788
5800
|
className: "skippr:space-y-1",
|
|
5789
5801
|
children: phases.map((phase) => {
|
|
5790
5802
|
const isActive = phase.status === "active";
|
|
5791
5803
|
const isCompleted = phase.status === "completed";
|
|
5792
|
-
return /* @__PURE__ */
|
|
5804
|
+
return /* @__PURE__ */ jsxs19("div", {
|
|
5793
5805
|
className: cn("skippr:flex skippr:items-start skippr:gap-2.5 skippr:rounded-lg skippr:p-2 skippr:transition-colors", isActive && "skippr:bg-primary/10"),
|
|
5794
5806
|
children: [
|
|
5795
|
-
/* @__PURE__ */
|
|
5807
|
+
/* @__PURE__ */ jsx23("div", {
|
|
5796
5808
|
className: "skippr:mt-0.5",
|
|
5797
|
-
children: isCompleted ? /* @__PURE__ */
|
|
5809
|
+
children: isCompleted ? /* @__PURE__ */ jsx23(CircleCheck, {
|
|
5798
5810
|
className: "skippr:size-4 skippr:text-chart-3"
|
|
5799
|
-
}) : isActive ? /* @__PURE__ */
|
|
5811
|
+
}) : isActive ? /* @__PURE__ */ jsx23(Circle, {
|
|
5800
5812
|
className: "skippr:size-4 skippr:fill-primary/30 skippr:text-primary"
|
|
5801
|
-
}) : /* @__PURE__ */
|
|
5813
|
+
}) : /* @__PURE__ */ jsx23(Circle, {
|
|
5802
5814
|
className: "skippr:size-4 skippr:text-muted-foreground/30"
|
|
5803
5815
|
})
|
|
5804
5816
|
}),
|
|
5805
|
-
/* @__PURE__ */
|
|
5817
|
+
/* @__PURE__ */ jsxs19("div", {
|
|
5806
5818
|
className: "skippr:min-w-0 skippr:flex-1",
|
|
5807
5819
|
children: [
|
|
5808
|
-
/* @__PURE__ */
|
|
5820
|
+
/* @__PURE__ */ jsx23("p", {
|
|
5809
5821
|
className: cn("skippr:text-sm", isCompleted && "skippr:text-muted-foreground skippr:line-through", isActive && "skippr:font-medium skippr:text-foreground", phase.status === "pending" && "skippr:text-muted-foreground"),
|
|
5810
5822
|
children: phase.name
|
|
5811
5823
|
}),
|
|
5812
|
-
phase.highlights.length > 0 && /* @__PURE__ */
|
|
5824
|
+
phase.highlights.length > 0 && /* @__PURE__ */ jsx23("ul", {
|
|
5813
5825
|
className: "skippr:mt-1 skippr:space-y-0.5",
|
|
5814
|
-
children: phase.highlights.map((text) => /* @__PURE__ */
|
|
5826
|
+
children: phase.highlights.map((text) => /* @__PURE__ */ jsxs19("li", {
|
|
5815
5827
|
className: cn("skippr:flex skippr:items-center skippr:gap-1.5 skippr:text-[11px] skippr:leading-tight", isCompleted ? "skippr:text-muted-foreground/40 skippr:line-through" : "skippr:text-muted-foreground/70"),
|
|
5816
5828
|
children: [
|
|
5817
|
-
/* @__PURE__ */
|
|
5829
|
+
/* @__PURE__ */ jsx23("span", {
|
|
5818
5830
|
className: "skippr:size-1 skippr:shrink-0 skippr:rounded-full skippr:bg-current"
|
|
5819
5831
|
}),
|
|
5820
5832
|
text
|
|
@@ -5831,12 +5843,12 @@ function SessionAgenda({ phases, hasStarted }) {
|
|
|
5831
5843
|
}
|
|
5832
5844
|
|
|
5833
5845
|
// src/components/SessionWarningBanner.tsx
|
|
5834
|
-
import { jsx as
|
|
5846
|
+
import { jsx as jsx24 } from "react/jsx-runtime";
|
|
5835
5847
|
var SESSION_WARNING_THRESHOLD_SECS = 60;
|
|
5836
5848
|
function SessionWarningBanner({ remaining }) {
|
|
5837
5849
|
if (remaining === null || remaining <= 0 || remaining > SESSION_WARNING_THRESHOLD_SECS)
|
|
5838
5850
|
return null;
|
|
5839
|
-
return /* @__PURE__ */
|
|
5851
|
+
return /* @__PURE__ */ jsx24("div", {
|
|
5840
5852
|
"data-testid": "session-warning-banner",
|
|
5841
5853
|
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",
|
|
5842
5854
|
children: "Session ending soon"
|
|
@@ -5844,7 +5856,7 @@ function SessionWarningBanner({ remaining }) {
|
|
|
5844
5856
|
}
|
|
5845
5857
|
|
|
5846
5858
|
// src/components/Sidebar.tsx
|
|
5847
|
-
import { jsx as
|
|
5859
|
+
import { jsx as jsx25, jsxs as jsxs20, Fragment as Fragment3 } from "react/jsx-runtime";
|
|
5848
5860
|
var PANEL_GAP_PX = 12;
|
|
5849
5861
|
var PANEL_VIEWPORT_MARGIN_PX = 24;
|
|
5850
5862
|
var PANEL_MAX_HEIGHT_PX = 460;
|
|
@@ -5918,13 +5930,13 @@ function Sidebar({
|
|
|
5918
5930
|
document.body.style.transition = "";
|
|
5919
5931
|
};
|
|
5920
5932
|
}, [isSidebar, isPanelOpen, position]);
|
|
5921
|
-
return /* @__PURE__ */
|
|
5933
|
+
return /* @__PURE__ */ jsxs20("div", {
|
|
5922
5934
|
ref: internalCtx?.panelRef,
|
|
5923
5935
|
className: cn("skippr:fixed skippr:z-[9999]", "skippr:bg-card", "skippr:flex skippr:flex-col", "skippr:overflow-hidden", isFloating && "skippr:border skippr:border-border skippr:rounded-2xl skippr:shadow-[0_8px_30px_rgba(0,0,0,0.16),0_4px_12px_rgba(0,0,0,0.08)]", isFloating && (position === "right" ? "skippr:right-6" : "skippr:left-6"), isFloating && "skippr:transition-[opacity,transform,height] skippr:duration-300 skippr:ease-in-out", isFloating && (popsDown ? position === "right" ? "skippr:origin-top-right" : "skippr:origin-top-left" : position === "right" ? "skippr:origin-bottom-right" : "skippr:origin-bottom-left"), isFloating && !isPanelOpen && "skippr:scale-0 skippr:opacity-0 skippr:pointer-events-none", isFloating && isPanelOpen && "skippr:scale-100 skippr:opacity-100", isSidebar && "skippr:top-0 skippr:h-full", isSidebar && "skippr:transition-[width] skippr:duration-300 skippr:ease-in-out", isSidebar && position === "right" && "skippr:right-0 skippr:border-l skippr:border-l-border", isSidebar && position === "left" && "skippr:left-0 skippr:border-r skippr:border-r-border", isSidebar && !isPanelOpen && "skippr:w-0 skippr:border-0"),
|
|
5924
5936
|
style: { width: isPanelOpen ? SIDEBAR_WIDTH : undefined, ...floatingStyle },
|
|
5925
5937
|
children: [
|
|
5926
|
-
!hideHeader && /* @__PURE__ */
|
|
5927
|
-
authFailed ? /* @__PURE__ */
|
|
5938
|
+
!hideHeader && /* @__PURE__ */ jsx25(ChatHeader, {}),
|
|
5939
|
+
authFailed ? /* @__PURE__ */ jsx25(AuthError, {}) : isAuthenticated ? /* @__PURE__ */ jsx25(AuthenticatedContent, {
|
|
5928
5940
|
isConnected,
|
|
5929
5941
|
isPaused,
|
|
5930
5942
|
isPausing,
|
|
@@ -5940,12 +5952,12 @@ function Sidebar({
|
|
|
5940
5952
|
onTalk: startDefaultSession,
|
|
5941
5953
|
talkLabel: startSessionLabel,
|
|
5942
5954
|
talkDisabled
|
|
5943
|
-
}) : usesHostAuth || isValidating ? /* @__PURE__ */
|
|
5955
|
+
}) : usesHostAuth || isValidating ? /* @__PURE__ */ jsx25("div", {
|
|
5944
5956
|
className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
|
|
5945
|
-
children: /* @__PURE__ */
|
|
5957
|
+
children: /* @__PURE__ */ jsx25(LoadingDots, {
|
|
5946
5958
|
label: "Loading..."
|
|
5947
5959
|
})
|
|
5948
|
-
}) : /* @__PURE__ */
|
|
5960
|
+
}) : /* @__PURE__ */ jsx25(LoginFlow, {
|
|
5949
5961
|
requestOtp,
|
|
5950
5962
|
verifyOtp,
|
|
5951
5963
|
error: authError,
|
|
@@ -5977,61 +5989,61 @@ function AuthenticatedContent({
|
|
|
5977
5989
|
if (isStarting && !isConnected) {
|
|
5978
5990
|
transitionLabel = "Reconnecting...";
|
|
5979
5991
|
}
|
|
5980
|
-
return /* @__PURE__ */
|
|
5992
|
+
return /* @__PURE__ */ jsxs20(Fragment3, {
|
|
5981
5993
|
children: [
|
|
5982
|
-
isConnected && /* @__PURE__ */
|
|
5983
|
-
showAgenda && /* @__PURE__ */
|
|
5994
|
+
isConnected && /* @__PURE__ */ jsx25(ConnectedBanner, {}),
|
|
5995
|
+
showAgenda && /* @__PURE__ */ jsxs20("div", {
|
|
5984
5996
|
className: "skippr:flex skippr:items-center skippr:gap-2 skippr:border-b skippr:border-border skippr:px-3 skippr:py-1",
|
|
5985
5997
|
children: [
|
|
5986
|
-
/* @__PURE__ */
|
|
5998
|
+
/* @__PURE__ */ jsxs20("button", {
|
|
5987
5999
|
type: "button",
|
|
5988
6000
|
className: cn("skippr:relative skippr:inline-flex skippr:cursor-pointer skippr:items-center skippr:gap-1.5 skippr:rounded-lg skippr:px-3 skippr:py-1.5 skippr:text-sm skippr:font-medium skippr:transition-all", activeTab === "chat" ? "skippr:text-foreground" : "skippr:text-muted-foreground skippr:hover:text-foreground"),
|
|
5989
6001
|
onClick: () => onTabChange("chat"),
|
|
5990
6002
|
children: [
|
|
5991
|
-
/* @__PURE__ */
|
|
6003
|
+
/* @__PURE__ */ jsx25(MessageCircle, {
|
|
5992
6004
|
className: "skippr:size-3.5"
|
|
5993
6005
|
}),
|
|
5994
6006
|
"Chat",
|
|
5995
|
-
activeTab === "chat" && /* @__PURE__ */
|
|
6007
|
+
activeTab === "chat" && /* @__PURE__ */ jsx25("span", {
|
|
5996
6008
|
className: "skippr:absolute skippr:-bottom-1 skippr:left-3 skippr:right-3 skippr:h-0.5 skippr:rounded-full skippr:bg-foreground"
|
|
5997
6009
|
})
|
|
5998
6010
|
]
|
|
5999
6011
|
}),
|
|
6000
|
-
/* @__PURE__ */
|
|
6012
|
+
/* @__PURE__ */ jsxs20("button", {
|
|
6001
6013
|
type: "button",
|
|
6002
6014
|
className: cn("skippr:relative skippr:inline-flex skippr:cursor-pointer skippr:items-center skippr:gap-1.5 skippr:rounded-lg skippr:px-3 skippr:py-1.5 skippr:text-sm skippr:font-medium skippr:transition-all", activeTab === "agenda" ? "skippr:text-foreground" : "skippr:text-muted-foreground skippr:hover:text-foreground"),
|
|
6003
6015
|
onClick: () => onTabChange("agenda"),
|
|
6004
6016
|
children: [
|
|
6005
|
-
/* @__PURE__ */
|
|
6017
|
+
/* @__PURE__ */ jsx25(Calendar, {
|
|
6006
6018
|
className: "skippr:size-3.5"
|
|
6007
6019
|
}),
|
|
6008
6020
|
"Agenda",
|
|
6009
|
-
activeTab === "agenda" && /* @__PURE__ */
|
|
6021
|
+
activeTab === "agenda" && /* @__PURE__ */ jsx25("span", {
|
|
6010
6022
|
className: "skippr:absolute skippr:-bottom-1 skippr:left-3 skippr:right-3 skippr:h-0.5 skippr:rounded-full skippr:bg-foreground"
|
|
6011
6023
|
})
|
|
6012
6024
|
]
|
|
6013
6025
|
})
|
|
6014
6026
|
]
|
|
6015
6027
|
}),
|
|
6016
|
-
/* @__PURE__ */
|
|
6028
|
+
/* @__PURE__ */ jsx25("div", {
|
|
6017
6029
|
className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
|
|
6018
|
-
children: isDisconnecting ? /* @__PURE__ */
|
|
6030
|
+
children: isDisconnecting ? /* @__PURE__ */ jsx25("div", {
|
|
6019
6031
|
className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
|
|
6020
|
-
children: /* @__PURE__ */
|
|
6032
|
+
children: /* @__PURE__ */ jsx25(LoadingDots, {
|
|
6021
6033
|
label: "Ending session..."
|
|
6022
6034
|
})
|
|
6023
|
-
}) : inSession ? /* @__PURE__ */
|
|
6035
|
+
}) : inSession ? /* @__PURE__ */ jsxs20(Fragment3, {
|
|
6024
6036
|
children: [
|
|
6025
|
-
transitionLabel && /* @__PURE__ */
|
|
6037
|
+
transitionLabel && /* @__PURE__ */ jsx25("div", {
|
|
6026
6038
|
className: "skippr:shrink-0 skippr:border-b skippr:border-border skippr:bg-muted/50 skippr:px-3 skippr:py-1.5 skippr:text-center skippr:text-xs skippr:text-muted-foreground",
|
|
6027
6039
|
children: transitionLabel
|
|
6028
6040
|
}),
|
|
6029
|
-
/* @__PURE__ */
|
|
6041
|
+
/* @__PURE__ */ jsx25(ConnectedBody, {
|
|
6030
6042
|
activeTab: effectiveTab,
|
|
6031
6043
|
autoFocusChat
|
|
6032
6044
|
})
|
|
6033
6045
|
]
|
|
6034
|
-
}) : /* @__PURE__ */
|
|
6046
|
+
}) : /* @__PURE__ */ jsx25(IdleHistory, {
|
|
6035
6047
|
activeTab: effectiveTab,
|
|
6036
6048
|
history: idleHistory,
|
|
6037
6049
|
onTalk,
|
|
@@ -6040,22 +6052,22 @@ function AuthenticatedContent({
|
|
|
6040
6052
|
error
|
|
6041
6053
|
})
|
|
6042
6054
|
}),
|
|
6043
|
-
!hideControls && /* @__PURE__ */
|
|
6055
|
+
!hideControls && /* @__PURE__ */ jsx25("div", {
|
|
6044
6056
|
className: "skippr:shrink-0 skippr:border-t skippr:border-border",
|
|
6045
|
-
children: /* @__PURE__ */
|
|
6057
|
+
children: /* @__PURE__ */ jsxs20("div", {
|
|
6046
6058
|
className: "skippr:flex skippr:items-center skippr:justify-center skippr:gap-1 skippr:px-4 skippr:pt-1.5 skippr:pb-2 skippr:text-[10px] skippr:text-muted-foreground",
|
|
6047
6059
|
children: [
|
|
6048
|
-
/* @__PURE__ */
|
|
6060
|
+
/* @__PURE__ */ jsxs20("svg", {
|
|
6049
6061
|
viewBox: "21 21 109 109",
|
|
6050
6062
|
className: "skippr:size-3",
|
|
6051
6063
|
fill: "none",
|
|
6052
6064
|
"aria-hidden": "true",
|
|
6053
6065
|
children: [
|
|
6054
|
-
/* @__PURE__ */
|
|
6066
|
+
/* @__PURE__ */ jsx25("path", {
|
|
6055
6067
|
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",
|
|
6056
6068
|
fill: "currentColor"
|
|
6057
6069
|
}),
|
|
6058
|
-
/* @__PURE__ */
|
|
6070
|
+
/* @__PURE__ */ jsx25("path", {
|
|
6059
6071
|
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",
|
|
6060
6072
|
className: "skippr:fill-brand"
|
|
6061
6073
|
})
|
|
@@ -6069,17 +6081,17 @@ function AuthenticatedContent({
|
|
|
6069
6081
|
});
|
|
6070
6082
|
}
|
|
6071
6083
|
function AuthError() {
|
|
6072
|
-
return /* @__PURE__ */
|
|
6084
|
+
return /* @__PURE__ */ jsxs20("div", {
|
|
6073
6085
|
className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:justify-center skippr:px-6 skippr:py-4 skippr:text-center",
|
|
6074
6086
|
children: [
|
|
6075
|
-
/* @__PURE__ */
|
|
6087
|
+
/* @__PURE__ */ jsx25(CircleAlert, {
|
|
6076
6088
|
className: "skippr:mb-3 skippr:size-7 skippr:text-destructive"
|
|
6077
6089
|
}),
|
|
6078
|
-
/* @__PURE__ */
|
|
6090
|
+
/* @__PURE__ */ jsx25("p", {
|
|
6079
6091
|
className: "skippr:text-sm skippr:font-medium skippr:text-foreground",
|
|
6080
6092
|
children: "We couldn't verify your session"
|
|
6081
6093
|
}),
|
|
6082
|
-
/* @__PURE__ */
|
|
6094
|
+
/* @__PURE__ */ jsx25("p", {
|
|
6083
6095
|
className: "skippr:mt-1 skippr:text-xs skippr:text-muted-foreground",
|
|
6084
6096
|
children: "Please contact administrator."
|
|
6085
6097
|
})
|
|
@@ -6088,7 +6100,7 @@ function AuthError() {
|
|
|
6088
6100
|
}
|
|
6089
6101
|
function ConnectedBanner() {
|
|
6090
6102
|
const remaining = useSessionRemaining();
|
|
6091
|
-
return /* @__PURE__ */
|
|
6103
|
+
return /* @__PURE__ */ jsx25(SessionWarningBanner, {
|
|
6092
6104
|
remaining
|
|
6093
6105
|
});
|
|
6094
6106
|
}
|
|
@@ -6101,43 +6113,43 @@ function IdleHistory({
|
|
|
6101
6113
|
error
|
|
6102
6114
|
}) {
|
|
6103
6115
|
if (history2.isLoading) {
|
|
6104
|
-
return /* @__PURE__ */
|
|
6116
|
+
return /* @__PURE__ */ jsx25("div", {
|
|
6105
6117
|
className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
|
|
6106
|
-
children: /* @__PURE__ */
|
|
6118
|
+
children: /* @__PURE__ */ jsx25(LoadingDots, {
|
|
6107
6119
|
label: "Loading conversation..."
|
|
6108
6120
|
})
|
|
6109
6121
|
});
|
|
6110
6122
|
}
|
|
6111
|
-
return /* @__PURE__ */
|
|
6123
|
+
return /* @__PURE__ */ jsxs20("div", {
|
|
6112
6124
|
className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:animate-skippr-tab-fade",
|
|
6113
6125
|
children: [
|
|
6114
|
-
activeTab === "agenda" ? /* @__PURE__ */
|
|
6126
|
+
activeTab === "agenda" ? /* @__PURE__ */ jsx25("div", {
|
|
6115
6127
|
className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto",
|
|
6116
|
-
children: /* @__PURE__ */
|
|
6128
|
+
children: /* @__PURE__ */ jsx25(SessionAgenda, {
|
|
6117
6129
|
phases: history2.phases,
|
|
6118
6130
|
hasStarted: history2.phases.length > 0
|
|
6119
6131
|
})
|
|
6120
|
-
}) : /* @__PURE__ */
|
|
6132
|
+
}) : /* @__PURE__ */ jsx25(MessageList, {
|
|
6121
6133
|
messages: history2.messages,
|
|
6122
6134
|
isStreaming: false,
|
|
6123
6135
|
readOnly: true
|
|
6124
6136
|
}),
|
|
6125
|
-
/* @__PURE__ */
|
|
6137
|
+
/* @__PURE__ */ jsxs20("div", {
|
|
6126
6138
|
className: "skippr:shrink-0 skippr:border-t skippr:border-border skippr:p-3",
|
|
6127
6139
|
children: [
|
|
6128
|
-
/* @__PURE__ */
|
|
6140
|
+
/* @__PURE__ */ jsxs20("button", {
|
|
6129
6141
|
type: "button",
|
|
6130
6142
|
onClick: onTalk,
|
|
6131
6143
|
disabled: talkDisabled,
|
|
6132
6144
|
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",
|
|
6133
6145
|
children: [
|
|
6134
|
-
/* @__PURE__ */
|
|
6146
|
+
/* @__PURE__ */ jsx25(Mic, {
|
|
6135
6147
|
className: "skippr:size-4"
|
|
6136
6148
|
}),
|
|
6137
6149
|
talkLabel
|
|
6138
6150
|
]
|
|
6139
6151
|
}),
|
|
6140
|
-
error && /* @__PURE__ */
|
|
6152
|
+
error && /* @__PURE__ */ jsx25("p", {
|
|
6141
6153
|
className: "skippr:mt-2 skippr:text-center skippr:text-xs skippr:text-destructive",
|
|
6142
6154
|
children: error
|
|
6143
6155
|
})
|
|
@@ -6156,17 +6168,17 @@ function ConnectedBody({
|
|
|
6156
6168
|
const { agentControls, isPaused } = useLiveAgent();
|
|
6157
6169
|
const { isHeld } = useSessionHoldContext();
|
|
6158
6170
|
if (activeTab === "agenda") {
|
|
6159
|
-
return /* @__PURE__ */
|
|
6171
|
+
return /* @__PURE__ */ jsx25("div", {
|
|
6160
6172
|
className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto skippr:animate-skippr-tab-fade",
|
|
6161
|
-
children: /* @__PURE__ */
|
|
6173
|
+
children: /* @__PURE__ */ jsx25(SessionAgenda, {
|
|
6162
6174
|
phases,
|
|
6163
6175
|
hasStarted: allMessages.length > 0 || agentState === "speaking"
|
|
6164
6176
|
})
|
|
6165
6177
|
}, "agenda");
|
|
6166
6178
|
}
|
|
6167
|
-
return /* @__PURE__ */
|
|
6179
|
+
return /* @__PURE__ */ jsx25("div", {
|
|
6168
6180
|
className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col skippr:animate-skippr-tab-fade",
|
|
6169
|
-
children: /* @__PURE__ */
|
|
6181
|
+
children: /* @__PURE__ */ jsx25(MessageList, {
|
|
6170
6182
|
messages: allMessages,
|
|
6171
6183
|
isStreaming: agentState === "speaking",
|
|
6172
6184
|
sendChatMessage,
|
|
@@ -6182,9 +6194,9 @@ function ConnectedBody({
|
|
|
6182
6194
|
import { useContext as useContext14 } from "react";
|
|
6183
6195
|
|
|
6184
6196
|
// src/components/Logo.tsx
|
|
6185
|
-
import { jsx as
|
|
6197
|
+
import { jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
6186
6198
|
function Logo({ className }) {
|
|
6187
|
-
return /* @__PURE__ */
|
|
6199
|
+
return /* @__PURE__ */ jsxs21("svg", {
|
|
6188
6200
|
width: "1em",
|
|
6189
6201
|
height: "1em",
|
|
6190
6202
|
viewBox: "0 0 200 200",
|
|
@@ -6194,20 +6206,20 @@ function Logo({ className }) {
|
|
|
6194
6206
|
"aria-label": "Skippr",
|
|
6195
6207
|
className,
|
|
6196
6208
|
children: [
|
|
6197
|
-
/* @__PURE__ */
|
|
6209
|
+
/* @__PURE__ */ jsx26("rect", {
|
|
6198
6210
|
width: "200",
|
|
6199
6211
|
height: "200",
|
|
6200
6212
|
rx: "40",
|
|
6201
6213
|
fill: "#2D2D3F"
|
|
6202
6214
|
}),
|
|
6203
|
-
/* @__PURE__ */
|
|
6215
|
+
/* @__PURE__ */ jsxs21("g", {
|
|
6204
6216
|
transform: "translate(100 100) scale(0.8) translate(-100 -100)",
|
|
6205
6217
|
children: [
|
|
6206
|
-
/* @__PURE__ */
|
|
6218
|
+
/* @__PURE__ */ jsx26("path", {
|
|
6207
6219
|
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",
|
|
6208
6220
|
fill: "white"
|
|
6209
6221
|
}),
|
|
6210
|
-
/* @__PURE__ */
|
|
6222
|
+
/* @__PURE__ */ jsx26("path", {
|
|
6211
6223
|
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",
|
|
6212
6224
|
className: "skippr:fill-brand"
|
|
6213
6225
|
})
|
|
@@ -6218,7 +6230,7 @@ function Logo({ className }) {
|
|
|
6218
6230
|
}
|
|
6219
6231
|
|
|
6220
6232
|
// src/components/SidebarTrigger.tsx
|
|
6221
|
-
import { jsx as
|
|
6233
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
6222
6234
|
function SidebarTrigger() {
|
|
6223
6235
|
const {
|
|
6224
6236
|
isPanelOpen,
|
|
@@ -6237,23 +6249,23 @@ function SidebarTrigger() {
|
|
|
6237
6249
|
if (isMinimized || isConnected || isStarting || isPausing)
|
|
6238
6250
|
return null;
|
|
6239
6251
|
const handleClick = isPanelOpen && minimizable ? minimizePanel : togglePanel;
|
|
6240
|
-
return /* @__PURE__ */
|
|
6252
|
+
return /* @__PURE__ */ jsx27("button", {
|
|
6241
6253
|
type: "button",
|
|
6242
6254
|
onClick: handleClick,
|
|
6243
6255
|
title: isPanelOpen ? "Close chat" : "Open chat",
|
|
6244
6256
|
"aria-label": isPanelOpen ? "Close chat" : "Open chat",
|
|
6245
6257
|
style: { bottom: triggerBottomPx(launcherBottomPx, popsDown) },
|
|
6246
6258
|
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"),
|
|
6247
|
-
children: isPanelOpen ? /* @__PURE__ */
|
|
6259
|
+
children: isPanelOpen ? /* @__PURE__ */ jsx27(ChevronDown, {
|
|
6248
6260
|
className: "skippr:size-5"
|
|
6249
|
-
}) : /* @__PURE__ */
|
|
6261
|
+
}) : /* @__PURE__ */ jsx27(Logo, {
|
|
6250
6262
|
className: "skippr:size-12"
|
|
6251
6263
|
})
|
|
6252
6264
|
});
|
|
6253
6265
|
}
|
|
6254
6266
|
|
|
6255
6267
|
// src/components/LiveAgent.tsx
|
|
6256
|
-
import { jsx as
|
|
6268
|
+
import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
6257
6269
|
function readSavedLauncherBottom() {
|
|
6258
6270
|
try {
|
|
6259
6271
|
const saved = Number.parseInt(localStorage.getItem("skippr_widget_bottom") ?? "", 10);
|
|
@@ -6263,7 +6275,7 @@ function readSavedLauncherBottom() {
|
|
|
6263
6275
|
}
|
|
6264
6276
|
}
|
|
6265
6277
|
function AgentCursorMount({ animated }) {
|
|
6266
|
-
return /* @__PURE__ */
|
|
6278
|
+
return /* @__PURE__ */ jsx28(AgentCursor, {
|
|
6267
6279
|
target: useAgentCursor(),
|
|
6268
6280
|
animated
|
|
6269
6281
|
});
|
|
@@ -6412,12 +6424,14 @@ function LiveAgent(props) {
|
|
|
6412
6424
|
const resumeSession = useCallback18(async () => {
|
|
6413
6425
|
if (!resumableSession)
|
|
6414
6426
|
return;
|
|
6427
|
+
if (operatingModule)
|
|
6428
|
+
setActiveModule(operatingModule);
|
|
6415
6429
|
await startSession({
|
|
6416
6430
|
agentId: resumableSession.agentId,
|
|
6417
6431
|
agentControls,
|
|
6418
6432
|
existingSessionId: resumableSession.id
|
|
6419
6433
|
});
|
|
6420
|
-
}, [resumableSession, startSession, agentControls]);
|
|
6434
|
+
}, [resumableSession, operatingModule, startSession, agentControls]);
|
|
6421
6435
|
const selectModule = useCallback18((moduleId, opts) => {
|
|
6422
6436
|
const found = availableModules.find((m) => m.id === moduleId);
|
|
6423
6437
|
if (!found)
|
|
@@ -6668,45 +6682,45 @@ function LiveAgent(props) {
|
|
|
6668
6682
|
adoptionGoals,
|
|
6669
6683
|
startAdoptionSession
|
|
6670
6684
|
]);
|
|
6671
|
-
return /* @__PURE__ */
|
|
6685
|
+
return /* @__PURE__ */ jsx28(LiveAgentContext.Provider, {
|
|
6672
6686
|
value: ctx,
|
|
6673
|
-
children: /* @__PURE__ */
|
|
6687
|
+
children: /* @__PURE__ */ jsxs22(LiveKitRoom, {
|
|
6674
6688
|
serverUrl: connection?.livekitUrl,
|
|
6675
6689
|
token: connection?.token,
|
|
6676
6690
|
connect: shouldConnect,
|
|
6677
6691
|
audio: true,
|
|
6678
6692
|
onDisconnected: handleRoomDisconnected,
|
|
6679
6693
|
children: [
|
|
6680
|
-
connection && !textMode && /* @__PURE__ */
|
|
6681
|
-
connection && captureMode === CAPTURE_MODE.Screenshare && /* @__PURE__ */
|
|
6694
|
+
connection && !textMode && /* @__PURE__ */ jsx28(RoomAudioRenderer, {}),
|
|
6695
|
+
connection && captureMode === CAPTURE_MODE.Screenshare && /* @__PURE__ */ jsx28(AutoStartMedia, {
|
|
6682
6696
|
pendingScreenStream,
|
|
6683
6697
|
pushOrTapMicMode: isRequestResponseMicMode(agentControls?.micMode)
|
|
6684
6698
|
}),
|
|
6685
|
-
connection && captureMode === CAPTURE_MODE.Auto && /* @__PURE__ */
|
|
6699
|
+
connection && captureMode === CAPTURE_MODE.Auto && /* @__PURE__ */ jsx28(DomCapture, {
|
|
6686
6700
|
pushOrTapMicMode: isRequestResponseMicMode(agentControls?.micMode)
|
|
6687
6701
|
}),
|
|
6688
|
-
/* @__PURE__ */
|
|
6702
|
+
/* @__PURE__ */ jsxs22(ShadowHost, {
|
|
6689
6703
|
children: [
|
|
6690
|
-
connection && captureMode === CAPTURE_MODE.Auto && agentControls?.highlight && /* @__PURE__ */
|
|
6691
|
-
connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */
|
|
6692
|
-
connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */
|
|
6693
|
-
connection && captureMode === CAPTURE_MODE.Auto && (agentControls?.highlight || agentControls?.actions) && /* @__PURE__ */
|
|
6704
|
+
connection && captureMode === CAPTURE_MODE.Auto && agentControls?.highlight && /* @__PURE__ */ jsx28(HighlightOverlay, {}),
|
|
6705
|
+
connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx28(PageActionHandler, {}),
|
|
6706
|
+
connection && captureMode === CAPTURE_MODE.Auto && agentControls?.actions && /* @__PURE__ */ jsx28(PlanPanelOpener, {}),
|
|
6707
|
+
connection && captureMode === CAPTURE_MODE.Auto && (agentControls?.highlight || agentControls?.actions) && /* @__PURE__ */ jsx28(AgentCursorMount, {
|
|
6694
6708
|
animated: shouldAnimateCursor
|
|
6695
6709
|
}),
|
|
6696
|
-
/* @__PURE__ */
|
|
6697
|
-
children: /* @__PURE__ */
|
|
6698
|
-
children: /* @__PURE__ */
|
|
6699
|
-
children: /* @__PURE__ */
|
|
6710
|
+
/* @__PURE__ */ jsx28(SessionHoldProvider, {
|
|
6711
|
+
children: /* @__PURE__ */ jsx28(VoiceTurnProvider, {
|
|
6712
|
+
children: /* @__PURE__ */ jsx28(TranscriptionsProvider, {
|
|
6713
|
+
children: /* @__PURE__ */ jsxs22("div", {
|
|
6700
6714
|
id: WIDGET_ROOT_ID,
|
|
6701
6715
|
children: [
|
|
6702
|
-
isMinimized && !showControlBar && /* @__PURE__ */
|
|
6716
|
+
isMinimized && !showControlBar && /* @__PURE__ */ jsx28(MinimizedBubble, {
|
|
6703
6717
|
welcomeMessage,
|
|
6704
6718
|
welcomeDismissed,
|
|
6705
6719
|
onDismissWelcome: dismissWelcome
|
|
6706
6720
|
}),
|
|
6707
|
-
showControlBar && !hideControls && /* @__PURE__ */
|
|
6708
|
-
/* @__PURE__ */
|
|
6709
|
-
/* @__PURE__ */
|
|
6721
|
+
showControlBar && !hideControls && /* @__PURE__ */ jsx28(SessionControlBar, {}),
|
|
6722
|
+
/* @__PURE__ */ jsx28(SidebarTrigger, {}),
|
|
6723
|
+
/* @__PURE__ */ jsx28(Sidebar, {
|
|
6710
6724
|
hideControls,
|
|
6711
6725
|
hideHeader,
|
|
6712
6726
|
startSessionLabel
|