@skippr/live-agent-sdk 0.11.0 → 0.13.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
CHANGED
|
@@ -517,7 +517,7 @@ function ChatHeader({ onClose }) {
|
|
|
517
517
|
// src/components/MeetingControls.tsx
|
|
518
518
|
import { useLocalParticipant as useLocalParticipant3 } from "@livekit/components-react";
|
|
519
519
|
import { ScreenSharePresets } from "livekit-client";
|
|
520
|
-
import { useCallback as useCallback4, useEffect as useEffect2, useState as useState3 } from "react";
|
|
520
|
+
import { useCallback as useCallback4, useEffect as useEffect2, useRef, useState as useState3 } from "react";
|
|
521
521
|
|
|
522
522
|
// src/lib/format.ts
|
|
523
523
|
function formatTime(seconds) {
|
|
@@ -525,18 +525,45 @@ function formatTime(seconds) {
|
|
|
525
525
|
const s = (seconds % 60).toString().padStart(2, "0");
|
|
526
526
|
return `${m}:${s}`;
|
|
527
527
|
}
|
|
528
|
+
function parseNumber(s) {
|
|
529
|
+
const n = Number(s);
|
|
530
|
+
return n > 0 ? n : null;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
// src/components/SessionWarningBanner.tsx
|
|
534
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
535
|
+
var SESSION_WARNING_THRESHOLD_SECS = 60;
|
|
536
|
+
function SessionWarningBanner({ remaining }) {
|
|
537
|
+
if (remaining === null || remaining <= 0 || remaining > SESSION_WARNING_THRESHOLD_SECS)
|
|
538
|
+
return null;
|
|
539
|
+
return /* @__PURE__ */ jsx3("div", {
|
|
540
|
+
"data-testid": "session-warning-banner",
|
|
541
|
+
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",
|
|
542
|
+
children: "Session ending soon"
|
|
543
|
+
});
|
|
544
|
+
}
|
|
528
545
|
|
|
529
546
|
// src/components/MeetingControls.tsx
|
|
530
|
-
import { jsx as
|
|
547
|
+
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
531
548
|
function MeetingControls({ onHangUp }) {
|
|
549
|
+
const maxCallDuration = useAgentState("maxCallDuration", parseNumber, null);
|
|
532
550
|
const { localParticipant } = useLocalParticipant3();
|
|
533
551
|
const isMuted = !localParticipant.isMicrophoneEnabled;
|
|
534
552
|
const isScreenSharing = localParticipant.isScreenShareEnabled;
|
|
535
|
-
const
|
|
553
|
+
const endTimeRef = useRef(null);
|
|
554
|
+
const [remaining, setRemaining] = useState3(null);
|
|
536
555
|
useEffect2(() => {
|
|
537
|
-
|
|
556
|
+
if (maxCallDuration === null || endTimeRef.current !== null)
|
|
557
|
+
return;
|
|
558
|
+
endTimeRef.current = Date.now() + maxCallDuration * 1000;
|
|
559
|
+
const tick = () => {
|
|
560
|
+
const secs = Math.ceil((endTimeRef.current - Date.now()) / 1000);
|
|
561
|
+
setRemaining(Math.max(secs, 0));
|
|
562
|
+
};
|
|
563
|
+
tick();
|
|
564
|
+
const id = setInterval(tick, 1000);
|
|
538
565
|
return () => clearInterval(id);
|
|
539
|
-
}, []);
|
|
566
|
+
}, [maxCallDuration]);
|
|
540
567
|
const toggleMute = useCallback4(async () => {
|
|
541
568
|
try {
|
|
542
569
|
await localParticipant.setMicrophoneEnabled(isMuted);
|
|
@@ -559,58 +586,65 @@ function MeetingControls({ onHangUp }) {
|
|
|
559
586
|
toggleMute().then(() => toggleScreenShare());
|
|
560
587
|
}, []);
|
|
561
588
|
return /* @__PURE__ */ jsxs2("div", {
|
|
562
|
-
className: "skippr:flex skippr:items-center skippr:justify-between skippr:border-b skippr:px-4 skippr:py-3",
|
|
563
589
|
children: [
|
|
590
|
+
/* @__PURE__ */ jsx4(SessionWarningBanner, {
|
|
591
|
+
remaining
|
|
592
|
+
}),
|
|
564
593
|
/* @__PURE__ */ jsxs2("div", {
|
|
565
|
-
className: "skippr:flex skippr:items-center skippr:
|
|
594
|
+
className: "skippr:flex skippr:items-center skippr:justify-between skippr:border-b skippr:px-4 skippr:py-3",
|
|
566
595
|
children: [
|
|
567
|
-
/* @__PURE__ */
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
596
|
+
/* @__PURE__ */ jsxs2("div", {
|
|
597
|
+
className: "skippr:flex skippr:items-center skippr:gap-2",
|
|
598
|
+
children: [
|
|
599
|
+
/* @__PURE__ */ jsx4(Button, {
|
|
600
|
+
size: "icon-sm",
|
|
601
|
+
variant: isMuted ? "destructive" : "outline",
|
|
602
|
+
onClick: toggleMute,
|
|
603
|
+
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
604
|
+
children: isMuted ? /* @__PURE__ */ jsx4(MicOff, {
|
|
605
|
+
className: "skippr:size-4"
|
|
606
|
+
}) : /* @__PURE__ */ jsx4(Mic, {
|
|
607
|
+
className: "skippr:size-4"
|
|
608
|
+
})
|
|
609
|
+
}),
|
|
610
|
+
/* @__PURE__ */ jsx4(Button, {
|
|
611
|
+
size: "icon-sm",
|
|
612
|
+
variant: isScreenSharing ? "default" : "outline",
|
|
613
|
+
onClick: toggleScreenShare,
|
|
614
|
+
"aria-label": isScreenSharing ? "Stop sharing" : "Share screen",
|
|
615
|
+
children: isScreenSharing ? /* @__PURE__ */ jsx4(MonitorOff, {
|
|
616
|
+
className: "skippr:size-4"
|
|
617
|
+
}) : /* @__PURE__ */ jsx4(Monitor, {
|
|
618
|
+
className: "skippr:size-4"
|
|
619
|
+
})
|
|
620
|
+
})
|
|
621
|
+
]
|
|
622
|
+
}),
|
|
623
|
+
remaining !== null && /* @__PURE__ */ jsx4("span", {
|
|
624
|
+
className: cn("skippr:text-sm skippr:font-medium skippr:tabular-nums", remaining <= SESSION_WARNING_THRESHOLD_SECS ? "skippr:text-red-600 skippr:animate-pulse" : "skippr:text-muted-foreground"),
|
|
625
|
+
children: formatTime(remaining)
|
|
577
626
|
}),
|
|
578
|
-
/* @__PURE__ */
|
|
627
|
+
/* @__PURE__ */ jsx4(Button, {
|
|
579
628
|
size: "icon-sm",
|
|
580
|
-
variant:
|
|
581
|
-
onClick:
|
|
582
|
-
"aria-label":
|
|
583
|
-
children:
|
|
584
|
-
className: "skippr:size-4"
|
|
585
|
-
}) : /* @__PURE__ */ jsx3(Monitor, {
|
|
629
|
+
variant: "destructive",
|
|
630
|
+
onClick: onHangUp,
|
|
631
|
+
"aria-label": "Hang up",
|
|
632
|
+
children: /* @__PURE__ */ jsx4(PhoneOff, {
|
|
586
633
|
className: "skippr:size-4"
|
|
587
634
|
})
|
|
588
635
|
})
|
|
589
636
|
]
|
|
590
|
-
}),
|
|
591
|
-
/* @__PURE__ */ jsx3("span", {
|
|
592
|
-
className: "skippr:text-sm skippr:font-medium skippr:tabular-nums skippr:text-muted-foreground",
|
|
593
|
-
children: formatTime(elapsed)
|
|
594
|
-
}),
|
|
595
|
-
/* @__PURE__ */ jsx3(Button, {
|
|
596
|
-
size: "icon-sm",
|
|
597
|
-
variant: "destructive",
|
|
598
|
-
onClick: onHangUp,
|
|
599
|
-
"aria-label": "Hang up",
|
|
600
|
-
children: /* @__PURE__ */ jsx3(PhoneOff, {
|
|
601
|
-
className: "skippr:size-4"
|
|
602
|
-
})
|
|
603
637
|
})
|
|
604
638
|
]
|
|
605
639
|
});
|
|
606
640
|
}
|
|
607
641
|
|
|
608
642
|
// src/components/MessageList.tsx
|
|
609
|
-
import { useEffect as useEffect3, useRef } from "react";
|
|
643
|
+
import { useEffect as useEffect3, useRef as useRef2 } from "react";
|
|
610
644
|
|
|
611
645
|
// src/components/ChatInput.tsx
|
|
612
646
|
import { useState as useState4 } from "react";
|
|
613
|
-
import { jsx as
|
|
647
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
614
648
|
function ChatInput({ sendChatMessage, isSendingChat }) {
|
|
615
649
|
const [inputText, setInputText] = useState4("");
|
|
616
650
|
const canSend = inputText.trim().length > 0 && !isSendingChat;
|
|
@@ -626,7 +660,7 @@ function ChatInput({ sendChatMessage, isSendingChat }) {
|
|
|
626
660
|
onSubmit: handleSubmit,
|
|
627
661
|
className: "skippr:flex skippr:items-center skippr:gap-2 skippr:border-t skippr:border-border skippr:px-3 skippr:py-2",
|
|
628
662
|
children: [
|
|
629
|
-
/* @__PURE__ */
|
|
663
|
+
/* @__PURE__ */ jsx5("input", {
|
|
630
664
|
type: "text",
|
|
631
665
|
value: inputText,
|
|
632
666
|
onChange: (e) => setInputText(e.target.value),
|
|
@@ -634,12 +668,12 @@ function ChatInput({ sendChatMessage, isSendingChat }) {
|
|
|
634
668
|
className: cn("skippr:flex-1 skippr:rounded-lg skippr:border skippr:border-border skippr:bg-background", "skippr:px-3 skippr:py-2 skippr:text-sm skippr:text-foreground", "skippr:placeholder:text-muted-foreground skippr:outline-none", "skippr:focus:ring-1 skippr:focus:ring-ring"),
|
|
635
669
|
disabled: isSendingChat
|
|
636
670
|
}),
|
|
637
|
-
/* @__PURE__ */
|
|
671
|
+
/* @__PURE__ */ jsx5("button", {
|
|
638
672
|
type: "submit",
|
|
639
673
|
disabled: !canSend,
|
|
640
674
|
"aria-label": "Send message",
|
|
641
675
|
className: cn("skippr:flex skippr:size-9 skippr:shrink-0 skippr:items-center skippr:justify-center", "skippr:rounded-lg skippr:bg-primary skippr:text-primary-foreground", "skippr:transition-opacity", !canSend && "skippr:opacity-50 skippr:cursor-not-allowed"),
|
|
642
|
-
children: /* @__PURE__ */
|
|
676
|
+
children: /* @__PURE__ */ jsx5(SendHorizontal, {
|
|
643
677
|
className: "skippr:size-4"
|
|
644
678
|
})
|
|
645
679
|
})
|
|
@@ -648,12 +682,12 @@ function ChatInput({ sendChatMessage, isSendingChat }) {
|
|
|
648
682
|
}
|
|
649
683
|
|
|
650
684
|
// src/components/ChatMessage.tsx
|
|
651
|
-
import { jsx as
|
|
685
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
652
686
|
function ChatMessage({ message }) {
|
|
653
687
|
const isUser = message.role === "user";
|
|
654
|
-
return /* @__PURE__ */
|
|
688
|
+
return /* @__PURE__ */ jsx6("div", {
|
|
655
689
|
className: cn("skippr:flex skippr:w-full skippr:px-4 skippr:py-1", isUser ? "skippr:justify-end" : "skippr:justify-start"),
|
|
656
|
-
children: /* @__PURE__ */
|
|
690
|
+
children: /* @__PURE__ */ jsx6("div", {
|
|
657
691
|
className: cn("skippr:max-w-[85%] skippr:whitespace-pre-wrap skippr:rounded-2xl skippr:px-4 skippr:py-2.5 skippr:text-sm skippr:leading-relaxed", isUser ? "skippr:rounded-br-sm skippr:bg-primary skippr:text-primary-foreground" : "skippr:rounded-bl-sm skippr:bg-muted skippr:text-foreground"),
|
|
658
692
|
children: message.content
|
|
659
693
|
})
|
|
@@ -661,20 +695,20 @@ function ChatMessage({ message }) {
|
|
|
661
695
|
}
|
|
662
696
|
|
|
663
697
|
// src/components/TypingIndicator.tsx
|
|
664
|
-
import { jsx as
|
|
698
|
+
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
665
699
|
function TypingIndicator() {
|
|
666
|
-
return /* @__PURE__ */
|
|
700
|
+
return /* @__PURE__ */ jsx7("div", {
|
|
667
701
|
className: "skippr:flex skippr:items-center skippr:gap-1 skippr:px-4 skippr:py-3",
|
|
668
702
|
children: /* @__PURE__ */ jsxs4("div", {
|
|
669
703
|
className: "skippr:flex skippr:items-center skippr:gap-1 skippr:rounded-2xl skippr:rounded-bl-sm skippr:bg-muted skippr:px-4 skippr:py-2.5",
|
|
670
704
|
children: [
|
|
671
|
-
/* @__PURE__ */
|
|
705
|
+
/* @__PURE__ */ jsx7("span", {
|
|
672
706
|
className: "skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:0ms]"
|
|
673
707
|
}),
|
|
674
|
-
/* @__PURE__ */
|
|
708
|
+
/* @__PURE__ */ jsx7("span", {
|
|
675
709
|
className: "skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:150ms]"
|
|
676
710
|
}),
|
|
677
|
-
/* @__PURE__ */
|
|
711
|
+
/* @__PURE__ */ jsx7("span", {
|
|
678
712
|
className: "skippr:size-1.5 skippr:animate-bounce skippr:rounded-full skippr:bg-muted-foreground/60 skippr:[animation-delay:300ms]"
|
|
679
713
|
})
|
|
680
714
|
]
|
|
@@ -683,14 +717,14 @@ function TypingIndicator() {
|
|
|
683
717
|
}
|
|
684
718
|
|
|
685
719
|
// src/components/MessageList.tsx
|
|
686
|
-
import { jsx as
|
|
720
|
+
import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
687
721
|
function MessageList({
|
|
688
722
|
messages,
|
|
689
723
|
isStreaming,
|
|
690
724
|
sendChatMessage,
|
|
691
725
|
isSendingChat
|
|
692
726
|
}) {
|
|
693
|
-
const scrollRef =
|
|
727
|
+
const scrollRef = useRef2(null);
|
|
694
728
|
const lastMessage = messages.length > 0 ? messages[messages.length - 1] : undefined;
|
|
695
729
|
useEffect3(() => {
|
|
696
730
|
scrollRef.current?.scrollIntoView({ behavior: "smooth" });
|
|
@@ -699,22 +733,22 @@ function MessageList({
|
|
|
699
733
|
return /* @__PURE__ */ jsxs5("div", {
|
|
700
734
|
className: "skippr:flex skippr:min-h-0 skippr:flex-1 skippr:flex-col",
|
|
701
735
|
children: [
|
|
702
|
-
/* @__PURE__ */
|
|
736
|
+
/* @__PURE__ */ jsx8("div", {
|
|
703
737
|
className: "skippr:min-h-0 skippr:flex-1 skippr:overflow-y-auto",
|
|
704
738
|
children: /* @__PURE__ */ jsxs5("div", {
|
|
705
739
|
className: "skippr:flex skippr:flex-col skippr:gap-1 skippr:py-3",
|
|
706
740
|
children: [
|
|
707
|
-
messages.map((message) => /* @__PURE__ */
|
|
741
|
+
messages.map((message) => /* @__PURE__ */ jsx8(ChatMessage, {
|
|
708
742
|
message
|
|
709
743
|
}, message.id)),
|
|
710
|
-
showTyping && /* @__PURE__ */
|
|
711
|
-
/* @__PURE__ */
|
|
744
|
+
showTyping && /* @__PURE__ */ jsx8(TypingIndicator, {}),
|
|
745
|
+
/* @__PURE__ */ jsx8("div", {
|
|
712
746
|
ref: scrollRef
|
|
713
747
|
})
|
|
714
748
|
]
|
|
715
749
|
})
|
|
716
750
|
}),
|
|
717
|
-
/* @__PURE__ */
|
|
751
|
+
/* @__PURE__ */ jsx8(ChatInput, {
|
|
718
752
|
sendChatMessage,
|
|
719
753
|
isSendingChat
|
|
720
754
|
})
|
|
@@ -723,12 +757,12 @@ function MessageList({
|
|
|
723
757
|
}
|
|
724
758
|
|
|
725
759
|
// src/components/QuickActions.tsx
|
|
726
|
-
import { jsx as
|
|
760
|
+
import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
727
761
|
function QuickActions({ onStartSession, isStarting, error }) {
|
|
728
762
|
return /* @__PURE__ */ jsxs6("div", {
|
|
729
763
|
className: "skippr:flex skippr:flex-1 skippr:flex-col skippr:items-center skippr:gap-6 skippr:overflow-y-auto skippr:px-4 skippr:py-4",
|
|
730
764
|
children: [
|
|
731
|
-
/* @__PURE__ */
|
|
765
|
+
/* @__PURE__ */ jsx9("p", {
|
|
732
766
|
className: "skippr:mb-1 skippr:text-sm skippr:text-muted-foreground",
|
|
733
767
|
children: "How can I help you today?"
|
|
734
768
|
}),
|
|
@@ -738,15 +772,15 @@ function QuickActions({ onStartSession, isStarting, error }) {
|
|
|
738
772
|
onClick: onStartSession,
|
|
739
773
|
disabled: isStarting,
|
|
740
774
|
children: [
|
|
741
|
-
isStarting ? /* @__PURE__ */
|
|
775
|
+
isStarting ? /* @__PURE__ */ jsx9(LoaderCircle, {
|
|
742
776
|
className: "skippr:size-4 skippr:animate-spin skippr:text-primary"
|
|
743
|
-
}) : /* @__PURE__ */
|
|
777
|
+
}) : /* @__PURE__ */ jsx9(MessageCircleQuestionMark, {
|
|
744
778
|
className: "skippr:size-4 skippr:text-primary"
|
|
745
779
|
}),
|
|
746
780
|
isStarting ? "Starting..." : "Start Session"
|
|
747
781
|
]
|
|
748
782
|
}),
|
|
749
|
-
error && /* @__PURE__ */
|
|
783
|
+
error && /* @__PURE__ */ jsx9("p", {
|
|
750
784
|
className: "skippr:text-xs skippr:text-destructive",
|
|
751
785
|
children: error
|
|
752
786
|
})
|
|
@@ -755,17 +789,17 @@ function QuickActions({ onStartSession, isStarting, error }) {
|
|
|
755
789
|
}
|
|
756
790
|
|
|
757
791
|
// src/components/SessionAgenda.tsx
|
|
758
|
-
import { jsx as
|
|
792
|
+
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
759
793
|
function SessionAgenda({ phases, questions = [] }) {
|
|
760
794
|
if (phases.length === 0) {
|
|
761
795
|
return /* @__PURE__ */ jsxs7("div", {
|
|
762
796
|
className: "skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",
|
|
763
797
|
children: [
|
|
764
|
-
/* @__PURE__ */
|
|
798
|
+
/* @__PURE__ */ jsx10("h3", {
|
|
765
799
|
className: "skippr:text-sm skippr:font-semibold",
|
|
766
800
|
children: "Agenda"
|
|
767
801
|
}),
|
|
768
|
-
/* @__PURE__ */
|
|
802
|
+
/* @__PURE__ */ jsx10("p", {
|
|
769
803
|
className: "skippr:text-xs skippr:text-muted-foreground",
|
|
770
804
|
children: "Waiting for session..."
|
|
771
805
|
})
|
|
@@ -775,11 +809,11 @@ function SessionAgenda({ phases, questions = [] }) {
|
|
|
775
809
|
return /* @__PURE__ */ jsxs7("div", {
|
|
776
810
|
className: "skippr:flex skippr:flex-col skippr:gap-3 skippr:p-4",
|
|
777
811
|
children: [
|
|
778
|
-
/* @__PURE__ */
|
|
812
|
+
/* @__PURE__ */ jsx10("h3", {
|
|
779
813
|
className: "skippr:text-sm skippr:font-semibold",
|
|
780
814
|
children: "Agenda"
|
|
781
815
|
}),
|
|
782
|
-
/* @__PURE__ */
|
|
816
|
+
/* @__PURE__ */ jsx10("ul", {
|
|
783
817
|
className: "skippr:flex skippr:flex-col skippr:gap-2",
|
|
784
818
|
children: phases.map((phase) => {
|
|
785
819
|
const phaseQuestions = questions.filter((q) => q.phaseName === phase.name);
|
|
@@ -791,10 +825,10 @@ function SessionAgenda({ phases, questions = [] }) {
|
|
|
791
825
|
/* @__PURE__ */ jsxs7("div", {
|
|
792
826
|
className: "skippr:flex skippr:items-center skippr:gap-2 skippr:text-sm",
|
|
793
827
|
children: [
|
|
794
|
-
/* @__PURE__ */
|
|
828
|
+
/* @__PURE__ */ jsx10(PhaseIcon, {
|
|
795
829
|
status: phase.status
|
|
796
830
|
}),
|
|
797
|
-
/* @__PURE__ */
|
|
831
|
+
/* @__PURE__ */ jsx10("span", {
|
|
798
832
|
className: cn(phase.status === "completed" && "skippr:text-muted-foreground skippr:line-through", phase.status === "active" && "skippr:font-medium skippr:text-primary"),
|
|
799
833
|
children: phase.name
|
|
800
834
|
})
|
|
@@ -818,26 +852,26 @@ function SessionAgenda({ phases, questions = [] }) {
|
|
|
818
852
|
}
|
|
819
853
|
function PhaseIcon({ status }) {
|
|
820
854
|
if (status === "completed") {
|
|
821
|
-
return /* @__PURE__ */
|
|
855
|
+
return /* @__PURE__ */ jsx10("div", {
|
|
822
856
|
className: "skippr:flex skippr:size-4 skippr:shrink-0 skippr:items-center skippr:justify-center skippr:rounded-full skippr:bg-primary",
|
|
823
|
-
children: /* @__PURE__ */
|
|
857
|
+
children: /* @__PURE__ */ jsx10(Check, {
|
|
824
858
|
className: "skippr:size-2.5 skippr:text-primary-foreground",
|
|
825
859
|
strokeWidth: 3
|
|
826
860
|
})
|
|
827
861
|
});
|
|
828
862
|
}
|
|
829
863
|
if (status === "active") {
|
|
830
|
-
return /* @__PURE__ */
|
|
864
|
+
return /* @__PURE__ */ jsx10(LoaderCircle, {
|
|
831
865
|
className: "skippr:size-4 skippr:shrink-0 skippr:text-primary skippr:animate-spin"
|
|
832
866
|
});
|
|
833
867
|
}
|
|
834
|
-
return /* @__PURE__ */
|
|
868
|
+
return /* @__PURE__ */ jsx10(Circle, {
|
|
835
869
|
className: "skippr:size-4 skippr:shrink-0 skippr:text-muted-foreground"
|
|
836
870
|
});
|
|
837
871
|
}
|
|
838
872
|
|
|
839
873
|
// src/components/Sidebar.tsx
|
|
840
|
-
import { jsx as
|
|
874
|
+
import { jsx as jsx11, jsxs as jsxs8, Fragment } from "react/jsx-runtime";
|
|
841
875
|
function Sidebar() {
|
|
842
876
|
const { isConnected, isStarting, error, startSession, disconnect, isPanelOpen, closePanel } = useLiveAgent();
|
|
843
877
|
useEffect4(() => {
|
|
@@ -850,24 +884,24 @@ function Sidebar() {
|
|
|
850
884
|
document.body.style.transition = "";
|
|
851
885
|
};
|
|
852
886
|
}, []);
|
|
853
|
-
return /* @__PURE__ */
|
|
887
|
+
return /* @__PURE__ */ jsx11("div", {
|
|
854
888
|
className: cn("skippr:fixed skippr:top-0 skippr:right-0 skippr:h-full skippr:z-[9999]", "skippr:bg-background skippr:border-l skippr:border-border", "skippr:flex skippr:flex-col", "skippr:transition-all skippr:duration-300 skippr:ease-in-out skippr:overflow-hidden", !isPanelOpen && "skippr:w-0 skippr:border-l-0"),
|
|
855
889
|
style: { width: isPanelOpen ? SIDEBAR_WIDTH : undefined },
|
|
856
890
|
children: isConnected ? /* @__PURE__ */ jsxs8(Fragment, {
|
|
857
891
|
children: [
|
|
858
|
-
/* @__PURE__ */
|
|
892
|
+
/* @__PURE__ */ jsx11(ChatHeader, {
|
|
859
893
|
onClose: closePanel
|
|
860
894
|
}),
|
|
861
|
-
/* @__PURE__ */
|
|
895
|
+
/* @__PURE__ */ jsx11(ConnectedContent, {
|
|
862
896
|
onDisconnect: disconnect
|
|
863
897
|
})
|
|
864
898
|
]
|
|
865
899
|
}) : /* @__PURE__ */ jsxs8(Fragment, {
|
|
866
900
|
children: [
|
|
867
|
-
/* @__PURE__ */
|
|
901
|
+
/* @__PURE__ */ jsx11(ChatHeader, {
|
|
868
902
|
onClose: closePanel
|
|
869
903
|
}),
|
|
870
|
-
/* @__PURE__ */
|
|
904
|
+
/* @__PURE__ */ jsx11(QuickActions, {
|
|
871
905
|
onStartSession: startSession,
|
|
872
906
|
isStarting,
|
|
873
907
|
error
|
|
@@ -883,9 +917,9 @@ function ConnectedContent({ onDisconnect }) {
|
|
|
883
917
|
const { phases } = usePhaseUpdates();
|
|
884
918
|
const { questions } = useQuestionUpdates();
|
|
885
919
|
if (!isConnected) {
|
|
886
|
-
return /* @__PURE__ */
|
|
920
|
+
return /* @__PURE__ */ jsx11("div", {
|
|
887
921
|
className: "skippr:flex skippr:flex-1 skippr:items-center skippr:justify-center",
|
|
888
|
-
children: /* @__PURE__ */
|
|
922
|
+
children: /* @__PURE__ */ jsx11("p", {
|
|
889
923
|
className: "skippr:text-sm skippr:text-muted-foreground",
|
|
890
924
|
children: "Connecting..."
|
|
891
925
|
})
|
|
@@ -894,22 +928,22 @@ function ConnectedContent({ onDisconnect }) {
|
|
|
894
928
|
const isAgentSpeaking = agentState === "speaking";
|
|
895
929
|
return /* @__PURE__ */ jsxs8(Fragment, {
|
|
896
930
|
children: [
|
|
897
|
-
/* @__PURE__ */
|
|
931
|
+
/* @__PURE__ */ jsx11(MeetingControls, {
|
|
898
932
|
onHangUp: onDisconnect
|
|
899
933
|
}),
|
|
900
934
|
/* @__PURE__ */ jsxs8("div", {
|
|
901
935
|
className: "skippr:flex skippr:min-h-0 skippr:flex-1",
|
|
902
936
|
children: [
|
|
903
|
-
/* @__PURE__ */
|
|
937
|
+
/* @__PURE__ */ jsx11("div", {
|
|
904
938
|
className: "skippr:w-[260px] skippr:shrink-0 skippr:overflow-y-auto skippr:border-r",
|
|
905
|
-
children: /* @__PURE__ */
|
|
939
|
+
children: /* @__PURE__ */ jsx11(SessionAgenda, {
|
|
906
940
|
phases,
|
|
907
941
|
questions
|
|
908
942
|
})
|
|
909
943
|
}),
|
|
910
|
-
/* @__PURE__ */
|
|
944
|
+
/* @__PURE__ */ jsx11("div", {
|
|
911
945
|
className: "skippr:flex skippr:min-w-0 skippr:flex-1 skippr:flex-col",
|
|
912
|
-
children: /* @__PURE__ */
|
|
946
|
+
children: /* @__PURE__ */ jsx11(MessageList, {
|
|
913
947
|
messages: allMessages,
|
|
914
948
|
isStreaming: isAgentSpeaking,
|
|
915
949
|
sendChatMessage,
|
|
@@ -923,27 +957,27 @@ function ConnectedContent({ onDisconnect }) {
|
|
|
923
957
|
}
|
|
924
958
|
|
|
925
959
|
// src/components/SidebarTrigger.tsx
|
|
926
|
-
import { jsx as
|
|
960
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
927
961
|
var TRIGGER_GAP = 16;
|
|
928
962
|
var TRIGGER_DEFAULT_RIGHT = 24;
|
|
929
963
|
function SidebarTrigger() {
|
|
930
964
|
const { isPanelOpen, togglePanel } = useLiveAgent();
|
|
931
|
-
return /* @__PURE__ */
|
|
965
|
+
return /* @__PURE__ */ jsx12(Button, {
|
|
932
966
|
size: "icon-lg",
|
|
933
967
|
onClick: togglePanel,
|
|
934
968
|
className: "skippr:fixed skippr:bottom-6 skippr:z-[9998] skippr:size-14 skippr:rounded-full skippr:shadow-lg skippr:transition-all skippr:duration-300",
|
|
935
969
|
style: { right: isPanelOpen ? SIDEBAR_WIDTH + TRIGGER_GAP : TRIGGER_DEFAULT_RIGHT },
|
|
936
970
|
title: isPanelOpen ? "Close chat" : "Chat with us",
|
|
937
|
-
children: isPanelOpen ? /* @__PURE__ */
|
|
971
|
+
children: isPanelOpen ? /* @__PURE__ */ jsx12(X, {
|
|
938
972
|
className: "skippr:size-6"
|
|
939
|
-
}) : /* @__PURE__ */
|
|
973
|
+
}) : /* @__PURE__ */ jsx12(MessageCircle, {
|
|
940
974
|
className: "skippr:size-6"
|
|
941
975
|
})
|
|
942
976
|
});
|
|
943
977
|
}
|
|
944
978
|
|
|
945
979
|
// src/components/LiveAgent.tsx
|
|
946
|
-
import { jsx as
|
|
980
|
+
import { jsx as jsx13, jsxs as jsxs9, Fragment as Fragment2 } from "react/jsx-runtime";
|
|
947
981
|
function LiveAgent({
|
|
948
982
|
agentId,
|
|
949
983
|
authToken,
|
|
@@ -988,15 +1022,15 @@ function LiveAgent({
|
|
|
988
1022
|
]);
|
|
989
1023
|
const widgetContent = /* @__PURE__ */ jsxs9(Fragment2, {
|
|
990
1024
|
children: [
|
|
991
|
-
connection && /* @__PURE__ */
|
|
992
|
-
/* @__PURE__ */
|
|
993
|
-
/* @__PURE__ */
|
|
1025
|
+
connection && /* @__PURE__ */ jsx13(RoomAudioRenderer, {}),
|
|
1026
|
+
/* @__PURE__ */ jsx13(SidebarTrigger, {}),
|
|
1027
|
+
/* @__PURE__ */ jsx13(Sidebar, {}),
|
|
994
1028
|
children
|
|
995
1029
|
]
|
|
996
1030
|
});
|
|
997
|
-
return /* @__PURE__ */
|
|
1031
|
+
return /* @__PURE__ */ jsx13(LiveAgentContext.Provider, {
|
|
998
1032
|
value: ctx,
|
|
999
|
-
children: connection ? /* @__PURE__ */
|
|
1033
|
+
children: connection ? /* @__PURE__ */ jsx13(LiveKitRoom, {
|
|
1000
1034
|
serverUrl: connection.livekitUrl,
|
|
1001
1035
|
token: connection.token,
|
|
1002
1036
|
connect: shouldConnect,
|
package/dist/skippr-sdk.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-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-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-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-relaxed:1.625;--skippr-radius-2xl:1rem;--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-bounce:bounce 1s infinite;--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\:fixed{position:fixed}.skippr\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\:bottom-6{bottom:calc(var(--skippr-spacing)*6)}.skippr\:z-\[9998\]{z-index:9998}.skippr\:z-\[9999\]{z-index:9999}.skippr\:mb-1{margin-bottom:calc(var(--skippr-spacing)*1)}.skippr\:ml-6{margin-left:calc(var(--skippr-spacing)*6)}.skippr\:flex{display:flex}.skippr\:inline-flex{display:inline-flex}.skippr\:size-1\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}.skippr\:size-2\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}.skippr\:size-3\.5{width:calc(var(--skippr-spacing)*3.5);height:calc(var(--skippr-spacing)*3.5)}.skippr\:size-4{width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}.skippr\:size-6{width:calc(var(--skippr-spacing)*6);height:calc(var(--skippr-spacing)*6)}.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-14{width:calc(var(--skippr-spacing)*14);height:calc(var(--skippr-spacing)*14)}.skippr\:h-6{height:calc(var(--skippr-spacing)*6)}.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-auto{height:auto}.skippr\:h-full{height:100%}.skippr\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\:w-\[260px\]{width:260px}.skippr\:w-full{width:100%}.skippr\:max-w-\[85\%\]{max-width:85%}.skippr\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\:flex-1{flex:1}.skippr\:shrink-0{flex-shrink:0}.skippr\:animate-bounce{animation:var(--skippr-animate-bounce)}.skippr\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\:cursor-not-allowed{cursor:not-allowed}.skippr\:flex-col{flex-direction:column}.skippr\:items-center{align-items:center}.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-3{gap:calc(var(--skippr-spacing)*3)}.skippr\:gap-6{gap:calc(var(--skippr-spacing)*6)}.skippr\:overflow-hidden{overflow:hidden}.skippr\:overflow-y-auto{overflow-y:auto}.skippr\:rounded-2xl{border-radius:var(--skippr-radius-2xl)}.skippr\:rounded-full{border-radius:3.40282e38px}.skippr\:rounded-lg{border-radius:var(--radius)}.skippr\:rounded-md{border-radius:calc(var(--radius) - 2px)}.skippr\:rounded-br-sm{border-bottom-right-radius:calc(var(--radius) - 4px)}.skippr\:rounded-bl-sm{border-bottom-left-radius:calc(var(--radius) - 4px)}.skippr\:border{border-style:var(--tw-border-style);border-width:1px}.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-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.skippr\:border-border,.skippr\:border-input{border-color:oklch(88.22% 0 0)}.skippr\:bg-background{background-color:oklch(98.21% 0 0)}.skippr\:bg-destructive{background-color:oklch(62.71% .1936 33.339)}.skippr\:bg-muted{background-color:oklch(95.21% 0 0)}.skippr\:bg-muted-foreground\/60{background-color:oklab(50.32% 0 0/.6)}.skippr\:bg-primary{background-color:oklch(43.41% .0392 41.9938)}.skippr\:bg-primary-foreground\/20{background-color:oklab(100% 0 0/.2)}.skippr\:bg-secondary{background-color:oklch(92% .0651 74.3695)}.skippr\:p-4{padding:calc(var(--skippr-spacing)*4)}.skippr\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\:py-1{padding-block:calc(var(--skippr-spacing)*1)}.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\: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\:leading-none{--tw-leading:1;line-height:1}.skippr\:leading-relaxed{--tw-leading:var(--skippr-leading-relaxed);line-height:var(--skippr-leading-relaxed)}.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-normal{white-space:normal}.skippr\:whitespace-nowrap{white-space:nowrap}.skippr\:whitespace-pre-wrap{white-space:pre-wrap}.skippr\:text-destructive{color:oklch(62.71% .1936 33.339)}.skippr\:text-foreground{color:oklch(24.35% 0 0)}.skippr\:text-muted-foreground{color:oklch(50.32% 0 0)}.skippr\:text-primary{color:oklch(43.41% .0392 41.9938)}.skippr\:text-primary-foreground{color:oklch(100% 0 0)}.skippr\:text-secondary-foreground{color:oklch(34.99% .0685 40.8288)}.skippr\:text-white{color:var(--skippr-color-white)}.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\:opacity-50{opacity:.5}.skippr\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:ring-offset-background{--tw-ring-offset-color:oklch(98.21% 0 0)}.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-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\:duration-300{--tw-duration:.3s;transition-duration:.3s}.skippr\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\:\[animation-delay\:0ms\]{animation-delay:0s}.skippr\:\[animation-delay\:150ms\]{animation-delay:.15s}.skippr\:\[animation-delay\:300ms\]{animation-delay:.3s}.skippr\:placeholder\:text-muted-foreground::placeholder{color:oklch(50.32% 0 0)}@media (hover:hover){.skippr\:hover\:bg-accent:hover{background-color:oklch(93.1% 0 0)}.skippr\:hover\:bg-destructive\/90:hover{background-color:oklab(62.71% .16174 .106401/.9)}.skippr\:hover\:bg-primary-foreground\/20:hover{background-color:oklab(100% 0 0/.2)}.skippr\:hover\:bg-primary\/90:hover{background-color:oklab(43.41% .0291341 .0262268/.9)}.skippr\:hover\:bg-secondary\/80:hover{background-color:oklab(92% .0175401 .0626926/.8)}.skippr\:hover\:text-accent-foreground:hover{color:oklch(24.35% 0 0)}.skippr\:hover\:text-primary-foreground:hover{color:oklch(100% 0 0)}}.skippr\:focus\:ring-1:focus{--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\:focus\:ring-ring:focus{--tw-ring-color:oklch(43.41% .0392 41.9938)}.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-ring:focus-visible{--tw-ring-color:oklch(43.41% .0392 41.9938)}.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\:disabled\:pointer-events-none:disabled{pointer-events:none}.skippr\:disabled\:opacity-50:disabled{opacity:.5}.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)}}@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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@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}}
|
|
2
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-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-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-600:oklch(57.7% .245 27.325);--skippr-color-red-700:oklch(50.5% .213 27.518);--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-relaxed:1.625;--skippr-radius-2xl:1rem;--skippr-ease-in-out:cubic-bezier(.4,0,.2,1);--skippr-animate-spin:spin 1s linear infinite;--skippr-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--skippr-animate-bounce:bounce 1s infinite;--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\:fixed{position:fixed}.skippr\:top-0{top:calc(var(--skippr-spacing)*0)}.skippr\:right-0{right:calc(var(--skippr-spacing)*0)}.skippr\:bottom-6{bottom:calc(var(--skippr-spacing)*6)}.skippr\:z-\[9998\]{z-index:9998}.skippr\:z-\[9999\]{z-index:9999}.skippr\:mb-1{margin-bottom:calc(var(--skippr-spacing)*1)}.skippr\:ml-6{margin-left:calc(var(--skippr-spacing)*6)}.skippr\:flex{display:flex}.skippr\:inline-flex{display:inline-flex}.skippr\:size-1\.5{width:calc(var(--skippr-spacing)*1.5);height:calc(var(--skippr-spacing)*1.5)}.skippr\:size-2\.5{width:calc(var(--skippr-spacing)*2.5);height:calc(var(--skippr-spacing)*2.5)}.skippr\:size-3\.5{width:calc(var(--skippr-spacing)*3.5);height:calc(var(--skippr-spacing)*3.5)}.skippr\:size-4{width:calc(var(--skippr-spacing)*4);height:calc(var(--skippr-spacing)*4)}.skippr\:size-6{width:calc(var(--skippr-spacing)*6);height:calc(var(--skippr-spacing)*6)}.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-14{width:calc(var(--skippr-spacing)*14);height:calc(var(--skippr-spacing)*14)}.skippr\:h-6{height:calc(var(--skippr-spacing)*6)}.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-auto{height:auto}.skippr\:h-full{height:100%}.skippr\:min-h-0{min-height:calc(var(--skippr-spacing)*0)}.skippr\:w-0{width:calc(var(--skippr-spacing)*0)}.skippr\:w-\[260px\]{width:260px}.skippr\:w-full{width:100%}.skippr\:max-w-\[85\%\]{max-width:85%}.skippr\:min-w-0{min-width:calc(var(--skippr-spacing)*0)}.skippr\:flex-1{flex:1}.skippr\:shrink-0{flex-shrink:0}.skippr\:animate-bounce{animation:var(--skippr-animate-bounce)}.skippr\:animate-pulse{animation:var(--skippr-animate-pulse)}.skippr\:animate-spin{animation:var(--skippr-animate-spin)}.skippr\:cursor-not-allowed{cursor:not-allowed}.skippr\:flex-col{flex-direction:column}.skippr\:items-center{align-items:center}.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-3{gap:calc(var(--skippr-spacing)*3)}.skippr\:gap-6{gap:calc(var(--skippr-spacing)*6)}.skippr\:overflow-hidden{overflow:hidden}.skippr\:overflow-y-auto{overflow-y:auto}.skippr\:rounded-2xl{border-radius:var(--skippr-radius-2xl)}.skippr\:rounded-full{border-radius:3.40282e38px}.skippr\:rounded-lg{border-radius:var(--radius)}.skippr\:rounded-md{border-radius:calc(var(--radius) - 2px)}.skippr\:rounded-br-sm{border-bottom-right-radius:calc(var(--radius) - 4px)}.skippr\:rounded-bl-sm{border-bottom-left-radius:calc(var(--radius) - 4px)}.skippr\:border{border-style:var(--tw-border-style);border-width:1px}.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-l-0{border-left-style:var(--tw-border-style);border-left-width:0}.skippr\:border-border,.skippr\:border-input{border-color:oklch(88.22% 0 0)}.skippr\:bg-background{background-color:oklch(98.21% 0 0)}.skippr\:bg-destructive{background-color:oklch(62.71% .1936 33.339)}.skippr\:bg-muted{background-color:oklch(95.21% 0 0)}.skippr\:bg-muted-foreground\/60{background-color:oklab(50.32% 0 0/.6)}.skippr\:bg-primary{background-color:oklch(43.41% .0392 41.9938)}.skippr\:bg-primary-foreground\/20{background-color:oklab(100% 0 0/.2)}.skippr\:bg-red-50{background-color:var(--skippr-color-red-50)}.skippr\:bg-secondary{background-color:oklch(92% .0651 74.3695)}.skippr\:p-4{padding:calc(var(--skippr-spacing)*4)}.skippr\:px-2{padding-inline:calc(var(--skippr-spacing)*2)}.skippr\:px-3{padding-inline:calc(var(--skippr-spacing)*3)}.skippr\:px-4{padding-inline:calc(var(--skippr-spacing)*4)}.skippr\:px-6{padding-inline:calc(var(--skippr-spacing)*6)}.skippr\: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\:text-center{text-align:center}.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\:leading-none{--tw-leading:1;line-height:1}.skippr\:leading-relaxed{--tw-leading:var(--skippr-leading-relaxed);line-height:var(--skippr-leading-relaxed)}.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-normal{white-space:normal}.skippr\:whitespace-nowrap{white-space:nowrap}.skippr\:whitespace-pre-wrap{white-space:pre-wrap}.skippr\:text-destructive{color:oklch(62.71% .1936 33.339)}.skippr\:text-foreground{color:oklch(24.35% 0 0)}.skippr\:text-muted-foreground{color:oklch(50.32% 0 0)}.skippr\:text-primary{color:oklch(43.41% .0392 41.9938)}.skippr\:text-primary-foreground{color:oklch(100% 0 0)}.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:oklch(34.99% .0685 40.8288)}.skippr\:text-white{color:var(--skippr-color-white)}.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\:opacity-50{opacity:.5}.skippr\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.skippr\:ring-offset-background{--tw-ring-offset-color:oklch(98.21% 0 0)}.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-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\:duration-300{--tw-duration:.3s;transition-duration:.3s}.skippr\:ease-in-out{--tw-ease:var(--skippr-ease-in-out);transition-timing-function:var(--skippr-ease-in-out)}.skippr\:outline-none{--tw-outline-style:none;outline-style:none}.skippr\:\[animation-delay\:0ms\]{animation-delay:0s}.skippr\:\[animation-delay\:150ms\]{animation-delay:.15s}.skippr\:\[animation-delay\:300ms\]{animation-delay:.3s}.skippr\:placeholder\:text-muted-foreground::placeholder{color:oklch(50.32% 0 0)}@media (hover:hover){.skippr\:hover\:bg-accent:hover{background-color:oklch(93.1% 0 0)}.skippr\:hover\:bg-destructive\/90:hover{background-color:oklab(62.71% .16174 .106401/.9)}.skippr\:hover\:bg-primary-foreground\/20:hover{background-color:oklab(100% 0 0/.2)}.skippr\:hover\:bg-primary\/90:hover{background-color:oklab(43.41% .0291341 .0262268/.9)}.skippr\:hover\:bg-secondary\/80:hover{background-color:oklab(92% .0175401 .0626926/.8)}.skippr\:hover\:text-accent-foreground:hover{color:oklch(24.35% 0 0)}.skippr\:hover\:text-primary-foreground:hover{color:oklch(100% 0 0)}}.skippr\:focus\:ring-1:focus{--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\:focus\:ring-ring:focus{--tw-ring-color:oklch(43.41% .0392 41.9938)}.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-ring:focus-visible{--tw-ring-color:oklch(43.41% .0392 41.9938)}.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\:disabled\:pointer-events-none:disabled{pointer-events:none}.skippr\:disabled\:opacity-50:disabled{opacity:.5}.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)}}@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-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}
|